XNA is great for game programming, but it gets to be a bit non-standard when it comes to having to import files.
In terms of design, I'm using XML files for the customization. XML files are pretty easy to understand, and you can design it for example, with one ship per file, or several per file. Most people prefer one ship per file for example because it's easy to manage. However, the real flaunt with using XML files is that I can create a in-game editor or a custom game editor very easily. XNA can serialize any object if you specify it. Serialization means to have 'saved data'. It can be used to save a game file in it's current state, or save a individual ship setting to where it currently is. So if I get to it, you could modify the ships directly in game and then save (Serialize) and it will update all the files automatically. And the coding to serialize is bloody easy too.
This is the base of an XNA. Right now there isn't alot of information in it (Including modules). Again, even if someone doesn't understand this, it can be used as a in game editor, eventually. This portion will prob change since it's not fully XNA compatible with the game content loader. but it's similar to this.
Code: Select all
<ShipDesign> <ID>1000</ID> <ModelID>101</ModelID> <Name>Corvette</Name> <Cost>10000</Cost> <HP>1000</HP> <MaxSpeed>100</MaxSpeed> <Acceleration>1</Acceleration> <LinearDamping>0.1</LinearDamping> <RotationSpeed>3</RotationSpeed> <Scale>1.0</Scale> <Thrusters> <ThrusterDesign> <topOffset>1.0</topOffset> <leftOffset>0.8</leftOffset> </ThrusterDesign> </Thrusters> </ShipDesign>
Again, the time right now is mostly handled on loading custom data, but it also has to build it too, like the textures/etc before hand, then load the XNA files.
In terms of models, you can use blender (free) to export any sort of model, including models from Google Sketchup, which are virtually all free to use in game. It's pretty easy. Lighting and any sort of shadowing is done in game, right now I'm still working on tweaking this, but there is a base lighting right now that I'm happy with. It will be adjustable of course.
Because stuff needs to be built into XNA ready files, loading takes a bit longer. The game should also only build only files that NEED to be built, so a sort of cache system, this is another big project piece I am working on. Internal stuff. That way you minimize the delay, and like most games, cache the data once and reuse it whenever needed. Most games first time loading ends up being a tad longer.
In terms of an alpha, I want to have a base game padded down. Being able to modify most things (Not the in game editor, but files for now.) having basic AI and some sort of general gameplay in sandbox mode.
So far though, I am super happy with the game engine and how it's all going. For being basic, if you saw the video I had, it's actually not too bad eyecandy wise for the top down game, even though nothing has really been added yet.