Monday, 15 March 2010

Map reading

I opened up our code last night after a 3 month break, and started working on the map engine. I’m very excited by making that into a configuration file-driven game component for controlling the maps, their layout and textures, resource points etc. This engine is being written in such a way that the resources are read in “on the fly” and processed using the XNA content pipeline. This will also mean custom map development will be made very easy by means of creating a new configuration file that defines the map and the resources to use.

Watch this space!

Saturday, 3 October 2009

Moving into the world of 3D animation

Hi All,

As you are aware it has been a while since our last update and there is one main reason for this....blender! I will come onto this subject shortly however; first I would like to talk about Aaron's effort since our last blog.

Aaron has finished the camera controls as well as rewriting the initial libraries. We now have a full 3D world with a full rotatable camera with a zoom function. On top of that thanks to Aarons rewriting of the libraries we have concise and understandable code. As mentioned in a previous blog Aaron and I have high standards of cleanliness in code which will only help us for the duration of our project.

Now to blender, for those that haven't heard blender is a free Open Source application for the creation of 2D and 3D objects. Over the past month my sole aim for the project was to learn my way around blender and start creating units. A simple task most would think, however those who have used blender would agree that the learning curve for blender is very steep. Most of the past month has been sitting in front of my laptop reading tutorials and making mistakes!

At this point I would like to mention the site we have been using to learn blender. http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro is a fantastic and easy to use site that I would not have got very far. I would also like to mention Dan Squire, a colleague who has also helped us with getting to grips with blender.

After finally getting to grips the workings of blender we have found the creating of objects surprising simple, so much so that I am now spending my evenings pushing my imagination for creating a new and original kind of unit. At the moment I have created two units (both tanks as these seemed the easiest and most sensible place to start), and screenshots will be up on facebook shortly (http://www.facebook.com/group.php?gid=90603989414)

Hopefully by the next update we will have videos of selectable and movable units rather than just photos. This should be in the next couple of weeks at which point there will be another blog update.

Thanks for keeping up with our project and feel free to add any feedback or ask any questions

Nick

Sunday, 16 August 2009

Game world code coming together

July has not only seen me move flat and Nick starting to cycle to work in an effort to reduce the beer belly, but we've also managed to get textures and backgrounds loaded, as well as the separate input handler and camera classes talking together, meaning that we can move the camera around the game world by using the arrow keys of the keyboard or left thumb stick of the Xbox 360 controller.

I'll be concentrating on getting zoom and rotation sorted within the game world, then thats pretty much all of the camera stuff done. The controls will be built as the game develops, so in terms of those aspects of the game we're doing OK. Nick has done some cracking work with the creation and rendering of the game world, so he'll be developing that as well as putting some focus on the heads up display or similar too (where status is reflected on screen as well as what you currently are able to do etc).

I will be working on (apart from fixing the camera class) some sketches for the 3d sprites and thinking about their realization in 3d Studio Max or similar.

All in all its going to be a busy month to mid-September, but one in which we will hopefully have something worth of showing at the end of it!

Aaron

Wednesday, 22 July 2009

XNA 3.1, moving and camera

So given that XNA3.1 is out and in full swing over on http://creators.xna.com, myself and Nick have downloaded and are working with it already. I've sorted out the input handler class and the game camera is almost sorted too, including zoom, rotation, etc.

The next item on the agenda is the creation of the world, and more importantly the maps and their implementation. This has been a cause of headache for us for a little while now. The creation of a pluggable, expandable, maintainable, and probably most importantly, useable tool for map editing will most certainly be a by-product of our project. Granted, the main effort in map development is the actual graphics, but with an underlying structure in code and pluggable properties, we can think about map packs and user-created maps after release of the game.

To top it off I've moved flat this past month, and have never felt so disconnected without internet! Still, the downtime has given me some time to continue grinding away on the game instead of procrastinating!

Saturday, 13 June 2009

Cross platform controls

I've been working hard getting the controls sorted for both PC and the Xbox 360 game code base. Our project will be written firstly on a PC but with every bit of logic being the same regardless of platform, only the controls should change when the game is ported to the Xbox (to account for the Xbox 360 controller). XNA studio allows for the use of "#if XBOX" and "#if !XBOX" pre-processor directives which instruct the compiler to compile specific bits of code, leaving out code not related to the target platform. In theory, the use of pre-processor directives means that we can code for both the Xbox and PC platforms at the same time, and when the code is compiled, only the relevant code actually makes it into the executable for that platform.

Being a software engineer by trade, I like to enforce standards of cleanliness in code (in addition to comments, whitespace, naming conventions, etc). Given he fact that we're writing the game for two platforms at once, I've decided to move the input handling from the main game class to a separate class which will contain these pre-processor directives. Granted this means that this class will be messy, but at least it keeps any calling class cleaner in terms of the code it has to call, because there is only one method to call which handles the input from any outside class.

Another way we're going to keep all game engine implementation the same regardless of platform is by wrapping every operation of the engine in a separate method, no matter how small. This may cause more work initially, but if the game input class calls a method called "MoveCamaraLeft" regardless of the platform being use, we can be stringent about what the game engine will do. This will of course make our game debugging easier too.

Sunday, 7 June 2009

And so it begins...

Hello all and welcome to the first of what will be many blog entries during the development, testing and release of an Xbox 360 and PC game (title yet to be decided) written by Aaron Allport and Nick Greenhill. Essentially, it is going to a Real-Time Strategy game (RTS).

On this blog we hope to share our thoughts, issues and resolutions, as well as gauge interest and listen to any constructive criticism readers may have.

So far we've set up our hosted SVN repository, and created the game project. Nick is making a start on the "cube" structure that will ultimately be the game-playing space, whilst I concentrate on the control system.

For those that are interested, we're building our game using Microsoft Visual Studio 2008 using the XNA 3.0 Framework. We aim to have a playable beta version of the game out around September/October time.

Here's to the beginning!

Aaron