Monday, October 13, 2008

Progress report: 10/13

After spending an hour trying to get back to sleep, I gave up and made my way to the computer. Three hours later, I'd evicted a lot of bugs.

I also rewrote the movement and blocking routines. Movement is tile-based, but I drew inspiration from Diablo II with the way that actors can move between tiles: you have to be on a tile as long as you are stationary, but movement is freeform while moving between tiles. I changed the blocking routines and gave actors a very rudimentary pathfinding engine with a 1-tile radius. Thus actors no longer get 'stuck' on 1-tile blocking objects like trees, lampposts, and tombstones.

I sped up the way that tiles from the map are loaded into memory, and the way that the tiles and objects are displayed. The engine is rediculously fast right now: I can render a screen with a 1000 objects at 240fps. There is doubtless even more room for optimization, but I'm not going to spend any more time on drawing optimization until I get more of the engine written.

Now I'm considering how best to implement the GUI. Since I'm very likely to rewrite this portion of the game multiple times, I think that the best tactic right now would be to quickly throw an interface together that features statistics and inventory, and then work on equipping items, picking items up from the ground and from containers and putting them down again.

This last paragraph highlights one of my goals for the game: I'm not setting out to program a WoW clone. I want to program a game that has the 'living world' appeal that UO attempted to have. So items, monsters, player dwellings, and NPCs will be persistant. Drop a sword in a field, come back in fifteen minutes, and that sword will still be there (of course, there will have to be a limit to this, or the world will quickly become a garbage heap).

1 comments:

BLAZER PROPHET said...

HA! That's what you get for not going back to sleep.