Tuesday, October 30, 2007

ArcLib Logo Contest Final Showdown!

The ArcLib Logo contest final showdown has begun! There have been a lot of good logo submissions, and there is still time to submit a new killer logo.

Here is the link to the final logo contest thread. As you can see, if you decide to submit a logo based on the specifications given in that thread, you can guarantee you'll win if you submit the only one and it is somewhat decent.

Good luck!

Monday, October 29, 2007

TankWars Editor Interface Complete

I've completed the TankWars level editor interface... you can now change the tiles on the tilemap and place game objects on the screen such as Tanks, Helicopters, and rocks. My group member is working on loading and saving a level with XML, and once that is done, the editor will be able to load up levels, edit them, and then save them back as XML files.

The editor is really simple and consists only of 'hotkeys' to edit. The most difficult part for me was simply trying to think in terms of a scene graph, but that took me a day or so and then I figured it out. The way I have my scenegraph set up right now is like so...

WorldTransformNode
-> TileMap (draw all the tiles)
--> Mouse notify node (sends signals to tilemap when mouse is clicked, gives relative mouse coordinates to the tilemap, based on transformation)

The advantage of the scenegraph is not having to calculate transformations myself, which saves a lot of hassle and is worth it once it is figured out.

Also, one of the aspects of Arc v.3 that I'm looking forward to is a large reduction of code without any loss of features :) This will be accomplished by moving all physics code to another project, simplification of the scenegraph, and reliance on Tango's template containers, as well as a possible re-factor.

Tuesday, October 23, 2007

TankWars Update...

Here is a little update on my semester long class project that is now 'officially' started.

The TankWars main screen is pretty much complete, it just needs a 'resume' button and a title. It has a 'New Game' button, an 'Editor' button, and an 'Exit' button. When the new game button is pressed, it takes you to a screen that shows a TileMap in a world transform node that can be controlled with the players keys.

Nothing too fancy yet...

I myself am semi-new to the scenegraph in Arc, I havn't really done too much with it until now. I got myself running with it pretty quickly from the scenegraph test, however. The scenegraph is probably not the most newbie friendly concept, and today I thought that it might help to store a scenegraph scene in an XML file and have some sort of scenegraph builder program. It would shorten the users code dramatically, and the scenegraph could be seen visibly as it should be. Until then, ArcLib users need to be pretty proficient in programming to use it.

Wednesday, October 17, 2007

Development halted for a week or two...

Alright, development has pretty much halted for a week or two. This week I have 3 midterms and this weekend I went to the ACM conference and watched presentations by the founder of the XKCD web comic, the guy who wrote the digg.com software, the authors of Girl Genius web comics, and a few other presentations.

When I get time, I'll be working on TankWars.

Thursday, October 4, 2007

Flashbacks from the past...

Today, I delighted myself by stumbling on one of my old school WarBots projects. Before I started ArcLib, the project was actually called WarBots and was meant to finish a game that me and my friends attempted to build in High School but never got very far because the lame school admins shutdown the project from their lack of competence (grrr... see: http://warcoders.sourceforge.net/ for more info on what the project was meant to be and how far we got).

Anyway... I ran the exe and amazed myself at what I could accomplish in 2005 with limited D and OpenGL knowledge back in the day, when compiler numbers were still in the .70's and one had to write their own bindings from scratch.

For the curious, here's the way to access the files via SVN.

1. svn co -r 172 http://svn.dsource.org/projects/arclib/ warbots/
2. cd 'warbots\trunk\current'
2. Run 'game.exe'

To interact with the game, click the building, click 'train unit,' type 'miner' then hit enter. Then proceed to witness the miner vehicle collect metal scrap on the map. It uses per-pixel collision detection and a lua script to define the miner's AI.

I'm also amazed that SVN actually kept /EVERYTHING/, I'm afraid to know how much space my project takes up on poor old dsource.

The part that gets me is that I didn't even realize how far I got on that project.

And, as time passed, I decided I needed to write a good generic 2D game library before attempting to write any more game code. I've discovered that large projects have a 'point of no return' where, once the project reaches a certain size or complexity, more and more manpower must be used to achieve less and less of a result.

WarBots reached that complexity for a 1 man project, and ArcLib was the answer to reduce it. Look how far it's gotten me ;)

Wednesday, October 3, 2007

Current Development Highlights ...

1. ChristianK was able to figure out the problem with one of the D files crashing. Apparently it has to do with forward references and enums, and putting an enum in its own file fixes the problem. For the curious, here is the actual bug link.

2. Box2d is almost able to compile, there are just a few last minute memory management codes that need to be implemented and some other small fixes in b2World before it will be able to compile. After it can compile, then the next stage is getting it to work.

3. When working on my TankWars game, I ran up against an OPTLINK bug. Thankfully, that was fixed by using the beta linker found in the bugzilla issue. All that is done for the project is the project layout and a simple 'main screen' for the game with 3 buttons, New Game, Editor, and Exit.

4. I'm really busy. Most of my time will go to my new TankWars project I'm working on for a class, and if I do get any free time, I will be working mostly on the Box2d4d port.

5. ChristianK has implemented some really sweet particle effects in the current development version of arc & asteroids.

6. Tango's logging system is really nice. Each module can have it's own logger, and each logger is part of a tree hierarchy, so you can grab a hold of the root logger and then output all the information of each logger anywhere you want, I like to use the FileAppender. The output looks like this.