Monday, 15 March 2010

Engineering SoulBear -Anthony Littlewood Developer's Blog - 2

Anyone who read my previous developer's blog will know I have been working intesively on a new project over the last few days, and have been trying to use rapid prototyping and refactoring techniques to get things working first, then update them to be more flexible and extensible later. I have found this approach to yeild fantastic results when working in smaller groups, in software development terms this technique is often refered to as "sprinting".

After spending the last two evenings, adding some more things in I deceided id add a new blog post to document my progress.

firstly menus and sound are working:

As you can see, its a menu and it works, its not exactly pretty or very interesting, but its clean simple and therefore good enough for now, and we can allways replace it with something better in the future.

I intend to write a technical blog on how I develop my menus at a later date as it is something a lot of people seem to have problems understanding when they first work on games, I have also put in a developer mode toggle so the game will bypass all of the menu's and go straight into a level, while it mabee only takes a few seconds to go though a menu all of that time adds up, considering how many times the game is closed and re-run during development, just that simple switch can save a few minuites every day.

I have also added resource archive support, this makes builds tidy at the very least.

 I have also improved the camera system, this is more of a development feature than anything else, but the camera can be decoupled from the central character and panned arround the level, obviously if there is something in the level intended for testing to have to walk to the location with the avatar is quite time consuming.

But the main tasks I have been taking on over the last few days have been focussed on refactoring my entity creation code, I have used an abstract builder, design patern as my entity manager, this basically means I register entities with the builder as "templates", then any entities I need to create, I can do simply by instancing from the templates.

Approaching entity creation this way, has meant that after a one line registration function, I can then spawn new entities from a one line creation function, or a single event(the event can be used to spawn new entities as the system is running) and all of the physics callbacks and event registration is handled automatically by the entity manager. This is another area I will cover in a future blog post.  

I hope you have enjoyed the second update following the progress of "SoulBear", I appologise for not having any nice screenys for this post but all of the work over the last few days has been code focussed, most of the groundwork is now done however so I can move my focuss back to tools and the game its self, I am also aiming at having an internal build ready by Thursday, so I should have some nice screenshots ready quite soon.

As allways if you have any questions or comments feel free to email me.

Thanks -Ant

No comments:

Post a Comment