A brief summary to this point
I began the notion for creating a game several months ago when a friend of mine mentioned XNA and what it was all about. I was very intrigued and began to do a little research on various game development topics and what was needed to proceed. Several weeks later I was ready to commence the game development cycle and did so by creating a basic platform on which a variety of 2D games could be built. At least, that was my intention. I tried to design the architecture for the game to be as generic and extensible as possible. Doing this took a great deal of time and effort to understand and translate from paper to code. As this is my first attempt, the platform is far from ideal, but currently it is at least functional.
Essentially the game is created using the following classes:
IntangibleEntity: Defines any object that can exist within the game. Each contains a TangibleEntity and an ActionSet that further define its characteristics. IntangibleEntity objects get updated.
TangibleEntity: The texture for the IntangibleEntity. These objects get drawn.
Action: Anything the entity can do (move, shoot, etc.)
ActionSet: A collection of actions.
Area: A collection of entities.
Level: Contains one Area for all Intangible entities and another for all Tangible entities as well as the methods with which to build a level from an XML document.
The XML schema still needs some work in terms of organization and structure, but that will likely happen with my next project. Currently the critical functionality is present; the player can move, shoot both primary and secondary bullets, and change weapons. Backgrounds can be created and scrolled at different speeds to create a parallax effect for depth and realism. There is a basic tile engine that is also functional, but I have yet to develop a level editor to make full use of the engine. This is something I most certainly want to complete before I begin my next project.
I recently hired an artist to create several ship, weapon, and background representations for the game that will hopefully bring everything to life. I am very impressed with his work thus far and hopefully I will have some samples to display in the near future.
There are a number of things on my “To do” list, most of which will hopefully be resolved in the next few months. I am currently making use of the Farseer Physics Engine developed by Jeff Weber and am extremely grateful for his efforts. At this time he is working on a new version that will add more functionality and efficiency; once that is released, I will integrate it into my game and confirm that I am able to make use of the updates without breaking my existing code. I also wish to further develop several of the weapons in the game, namely the flame thrower and homing missiles. One of the last primary tasks is to begin writing AI for the enemy ships. This is something that I am still learning and will likely take some time, but I am very excited to embrace the challenge.
There is much more that I have to say, but that is a brief and somewhat disjointed compendium of my progress to this point. I am also working on a design document that details the game play and the characters within. Once it is complete, I will post it for anyone wishing to read and or critique what I have written. Thanks for reading!
-Josh

Leave a Reply