Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My entity/component/system engine is coming along quite nicely; I have two very different apps working on the same executable. (One 2-d scroller, one 3D Asteroids-type game).

In the interest of getting something working, I've been creating XML definitions of the games, and editing them using a small custom tool that does little more than ensure that I don't add components that don't exist, and that the files are valid XML.

I'm at something of an apex or flection point in that the tools and process I'm using really aren't suitable for production.

Hand-editing large XML files is an error-prone, painful process. (JSON is well supported and pithy, but still requires visual syntax checking.) I could switch to a database such as SQLite, but I have yet to find a good graphical interface (something along the lines of SQL Server Management Studio would be nice).

Are there any COTS tools that can ease this process? I found a C# SQLite implementation with a basic ORM, but it doesn't support complex types like Vector3 or Rectangle. I can serialize these into strings or edit the ORM code to support those types, but then I wind up with my own branch of an OSS component which invites maintenance headaches further down the road.

Another thought was to just do everything in SQL Server and generate the XML from there, and have a tool that keeps the DB schema in sync with the component types in my engine, which is similar to using an ORM.

What's a good solution for this problem? I've read that bigger studios (as in, more than one guy) build their own tools for this kind of thing. I can do that, but I'd really rather be writing my game than building a tool set that only I will ever see.

To clarify: how do those that use entity/component/system engines create and maintain their data that defines the game?

share|improve this question

closed as off-topic by Josh Petrie Dec 14 '15 at 19:22

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about "how to get started," "what to learn next," or "which technology to use" are discussion-oriented questions which involve answers that are either based on opinion, or which are all equally valid. Those kinds of questions are outside the scope of this site. Visit our help center for more information." – Josh Petrie
If this question can be reworded to fit the rules in the help center, please edit the question.

Kind of related to this:… And it includes my answer on how I maintain the data for my game. – Byte56 Oct 2 '12 at 22:13
@Byte56 I might close this as a duplicate. You should write a book about this stuff. – David Lively Oct 2 '12 at 22:31
It's not a duplicate. Might be worth copying the relevant info from that question to here. Ultimately though it seems like either you want an XML editor, which is easy to find, or you want a component-specific tool, which won't exist outside of the engine it was developed for as there are no standards in component-driven game development. – Kylotan Oct 2 '12 at 22:34
@DavidLively Well, my answer over there doesn't address the error-prone-ness of hand editing the files. So I think this question is still valid. However, I think the answer is going to be: write a tool. You should leave it up as a good answer would help me too :). – Byte56 Oct 2 '12 at 22:45
@Kylotan I might be looking for something that is an XML editor or SQLite interface, but with the ability to display textures, etc. instead of just a path or identifier. That's probably custom tool territory - but since I can see how to do that in an engine-agnostic manner, I'm hoping someone else already has, or that there's an out-of-left-field approach that I haven't thought of. – David Lively Oct 2 '12 at 22:48