Nelxon Topics: Game Development

The purpose of the XDSK is to provide XNA Xbox indie game developers a list of resources to assist them with creating better games, custom engines and most of all to help them raise the bar for titles existing in the XBLIG Library. This list is aimed at developers who are already familiar with Object Oriented programming and game development. It is not a list for beginners, but it may help them get started if they have a little programming experience.

Click Here to Read More »

The last few weeks I’ve been busy at work trying to finish a project that has been in progress well over a year.  It’s a Level 4 IMI project, fully interactive simulation, where the user must learn to operate a military vehicle and communicate with his crew. This was our first Level 4 project, so it caught us off guard with it complexity, however the finish results are incredible.  With any project, planning is a must, otherwise it will take twice as long to complete and this was the case with this project. The good thing is I did learned how to work more efficiently through planning and the advantages of using XML.

Autodesk Maya 2010
When I returned to my plan for the Nelxon XNA Game Engine Level Designer, I initially decided to develop an interface with Winforms to emulate Autodesk Maya navigation controls to layout my level and design stages but then it dawn on me. Why not just use Maya as the Level Designer then create a Maya plug-in to manage the 3D assets and create XML to layout the scene in XNA. In theory, The Game would read the xml file and dynamically load the level attributes and position assets.

If done correctly, I can create reusable assets to reduce file size and create controls for the assets in XNA.  I will show the results in the next few weeks, probably after the completion of the Level 4 project at work.  I have to plan out how this is going work…

…more to come.

There is an enormous amount of resources and source code for XNA game development available online. Creating a game engine may be easier than I anticipated. Most of the components I need have already been developed and optimized. I need to figure out the best approach to integrating everything into one package. Design wise, I’m still unsure if I should develop an internal GUI or use winforms.  After several tests using windows forms (with and XNA Game embedded), there has been lots of slowdown and menu glitches.  It’s easier to design interfaces using winforms but it may faster to develop games with an internal GUI. Further testing is required.

So far this is what I have planned for the Nelxon XNA Engine…

Graphical Interfaces:

  • Content Asset Manager: import & manage models, textures, audio, etc.
  • Props Sets Builder: create props sets using primitive shapes or from imported assets
  • Vehicle Builder/Library: import, create & manage vehicles (tests changes in real time)
  • Level Builder/Library: WYSIWYG Editor to create & manage levels using assets and props sets
  • Character Builder/Library: import & manage skinned characters (setup textures, bones, etc.)
  • Animation Library: import/manager animation data to apply to skinned characters
  • Character Animation Manager: define a list of animations for the each character
  • Cinematic Editor: Tool to create in-game cut scenes
  • Scene Manager: manage all the scenes states
  • GUI Editor: import/position images & define events to create the Game’s GUI in a WYSIWYG

Other Details:

This is not the full list of the features I have planned, just the ones I plan to develop first. I will post videos and images of my progress in the upcoming weeks as well new implemented features. Also, to eliminate confusion, I’m not developing an engine to distribute or sell commercially,  I am creating it so that I can develop games easier and faster based on my work flow. I’m sharing the details about it, in case others are interested in making there own engine.

After finally getting a grasp on the C# Language and the  XNA Framework, I realize it may be beneficial to develop my own Game Engine  to increase development time.  I have experimented with other XNA Game Engines but I feel more comfortable with something I can build, manage and improve myself (instead of having to wait for an update).

This approach has many advantages. With an engine built in-house, I can completely customize it around my work flow, especially since I’m developing indie games by myself.  This seems to be a successful solution for many Game Companies that have produce AAA Titles. Uncharted 2, Resident Evil 5,  Street Fighter 4, and Tekken 6 are all examples of AAA games created with In-House Game Engines.  These are also the type of genres I am interested in producing.Uncharted 2 ScreenShot

I understand that many developers want to use the Unreal Engine or CryEngine to make a commercial game, (Yes, I do too) but I don’t have funding to buy an engine priced above $750k. Besides, why would I use those engines to design an indie game I’m only selling for $5 that will be less than 150 megs?

However, being a programmer I can develop Tools and Methods that works similar to the Unreal Engine and CryEngine. I don’t have plans of distributing my in-house engine so I can design it to look and function like programs I am currently familiar with. As long my engine produces a playable game on windows and/or Xbox 360 that’s all that matters.

One of the great things about XNA is many developers have done most of the complicated programming for me, such as physics, AI, etc.; all I have to do is integrate those things and my own tools into one pipeline.

Later this week I will post features I plan to integrate into my engine.
Note: I will still be using Sunburn as my primary Rendering Engine,  this tool is a must buy for xna indie developers.

 
Nelxon!