Thursday, January 18, 2007

Moving Along Nicely

Development continues to move forward. I managed to add some room types and build a castle structure in game to demonstrate the full capabilities of the system. Every day the system is proving how superior it was to my older system, and how superior it is to every other mud wilderness system i've ever seen. I can't wait until this is complete so I can show the world. I have a few more tweaks and improvements before I finish the base world system. Then I should be back to trying to clear all the other 'minor' items that have racked up on my to do list over the months.

Anyway, i'll post again soon hopefully.

Friday, January 12, 2007

Initial New World Integration Complete

The new world stuff is in!!!! Not only did it go together far more easily then expected, it works far better then expected as well. There is still a lot that needs to be tweaked and improved, but the worst of it is over. The next step is to rewrite the system the draws maps/loads map to and from world data. Next after that is fully integrating items into the new world system, and then adding a whole lot of room types and testing like crazy for a bit. Anyone who is interested in helping in some small tests should either post a comment here, go to the test group and post there, or contact me through the various other channels that you might have.

Hopefully now over the next two weeks or so that are left before I go back to school i'll be able to cross off a lot of the other things on my coding todo list and make more progress. For anyone that is interested, I broke 10k lines of functional code in this version, and im at 17,800 or so total lines including comments and whitespace.

C-ya all later.

Tuesday, January 09, 2007

Progress Being Made

Things are moving along nicely. The new world system seems to be pretty well designed even though it is still in its infancy. I've already done the initial integration of it, and I am now working on getting the new world to work with a modified version of the old data manager. Once this part is complete the game will be able to load and save data again. Hopefully by the end of the week I will be able to load the game and run it like normal again. Once this part is done I will once again be in the spiral of changes/tweaks to improve things and testing, I plan to actually add a good collection of room types as well. Things should be nice before I need to go back to school, where if I have any free time I can use it to slowly knock off some of the simpler tweaks and changes I have planned.

Thats all for now.

Friday, January 05, 2007

Well Im Back

I know, I know, its been forever. I disappeared for over a month finish up school. Then i've been home for a while but distracted. My brother got Medieval II: Total War for christmas, and like my beloved Shogun: Total War its a decent game. Unfortunately it feels like the game was released on a much rushed schedule, quite disappointing. There are quite a few features that either seem left off or partially done.

On a better note however I started diving into the code again today. My goal for the break is to redo the world stuff. Going to be striping and rewriting a lot of these classes to get this done. The new system is quite complex, and is being designed straight from the persistance point of view. The same way of thinking will spill over to beings and items too when I get to rewriting them. Unfortunately however there will be a lot of code to rewrite to make it all fall into place. It could be several good days of coding before I even have something I can attempt to run.

I'll try to outline the new system briefly here, maybe it will allow me to organize my thoughts for myself and make some progress in design. The world will consist of the same grid as before, but instead of being populated with rooms it will be populated with nodes. The grid will always be loaded null, and as the world tries to retrieve rooms it will check to see if the nodes should be loaded from the database. When it encounters empty nodes it will place an empty node object to represent this, saving search times the second time around.

Each node will then contain a linked list of rooms, representing the rooms at that x/y coordinate. These rooms will have altitudes to differentiate themselves. When the game selects a room to enter in a particular direction it will check the rooms in the node you wish to enter and select one based on enterance type flags, and the room's altitude relative to the player's.

To further facilitate room effects, and persistance saving and caching I plan on including a system of world actions which can be targeted to rooms or nodes, and possibly expanding to beings and items down the road. These actions could be a save or delete room, or also represent the fire or flood effects on a room, which would need to be regularly checked and updated as needed. The world object will store a queue of these actions and execute them, and requeue them as neccesary. The world will be given a set amount of the game's tick time to handle these actions. These actions should probably have a minimum number of ticks that must pass before being allowed to execute to allow things like fire effects for example from taking over and spreading more quickly during light load periods. Another option I suppose I could take would be writing some sort of scheduling tool to schedule particular events for the future, I guess i'll feel it out as I go.

Well, thats about as much as I really feel like explaining tonight, I guess i'll maybe get into more detail tomorrow as I work at this. Hopefully I wont go insane before its all done, it feels quite daunting.