Game Development Community

dev|Pro Game Development Curriculum

Enter the Magnitude Editor

by Ted Southard · 10/28/2010 (2:31 am) · 8 comments

Tools are as important as the teams that wield them. And the Magnitude Editor is designed to help your team wield content a whole lot better...

For our Epic Frontiers project, after we had pushed out the demo at the beginning of this year, we found ourselves talking more and more about lists of content, and less and less about the features of the game. The problem this started to bring to light was that we had no easy way to generate variations of items that needed to be plugged into the database, and putting thousands of items into it by hand was tedious at best. Even a custom item editor, while easing the workload, would only ease it by so much. So a little while ago, I sat down and began to create a generalized tool that could help us with various content generation tasks such as:


  1. Name Generation: Characters in our game would be assigned faction-specific names, and while we can generate them on the fly, it is more efficient to pre-generate a list of the thousands and thousands of combinations beforehand.
  2. Item Generation: Weapons in the game have varying levels of damage or other attributes that can easily increase the amount of content by several orders of magnitude (oooh, pun!). The same goes for items.
  3. Testing: Dialog generation is a big part of the mission generation system of our game. The ability to quickly feed dialog or text snippets into a generator and see all the possible combinations of those lists would help us identify problems before the data entered the game.

Those are the problems that the Magnitude Editor addresses. Indies are already at a disadvantage against AAA studios with millions in funding, and they need every tool they can get in order to level the playing field. The Magnitude Editor allows developers who need to create large lists or tables of combined text or numbers to do so incredibly easily and quickly.

www.digitalflux.com/images/magEditorGui.jpg
The editor allows for the combination of numeric ranges, text arrays, and NULL-filled columns for export to CSV or TXT format for import into a database, or if you're using this resource, directly dump the data into your ODBC connected database. The layers used for generating the output can also be imported and exported to proprietary MED files for sharing, and even hand-edited (not sure why you'd want to do that...but you can!).

Some samples of output from the tutorials in the manual (which you can get here):

Items generated in a table for import into a database:
www.digitalflux.com/images/itemGenOutput.jpg

Items generated in a table using a list of generated names as the item name:
www.digitalflux.com/images/itemGenOutput2.jpg

Descriptive item name generation (this output was used in the screenshot above):
www.digitalflux.com/images/nameGenOutput3.jpg

Character name generation:
www.digitalflux.com/images/nameGenOutput2.jpg

Mainly aimed at MMO developers, the Magnitude Editor is generalized enough that any developer needing to generate lists or tables of data for use in a game may gain some serious utility from this tool.

DigitalFlux Entertainment, LLC
"Snazzy Tools for Snazzy Developers"

About the author

Started with indie games over a decade ago, and now creates tools and tech for games. Currently working as a contractor for startups and game studios.


#1
10/28/2010 (5:42 am)
Awesome tool :)
#2
10/28/2010 (2:05 pm)
Is this just for creation ? I see the import option on the screenshot, so say at a later date, if the user wishes to rebalance item stats, as long as its all in the correct format, can this tool open your existing data to effectively mass edit a whole 'line' of weaponry for example ?
#3
10/28/2010 (2:57 pm)
@Andy: Not exactly. You can export the layers into a special .med file, and then import those. So if you wanted to, you could import the .med and change things, but it won't edit information in a database.

Not a bad idea for the future though.

BTW, there is a PDF manual available for download which covers the import/export stuff, as well as tutorials.
#4
10/30/2010 (5:10 am)
Ted, it looks interesting to me, but I'm not quite clear on the use case. It looks as if taking all the available combinations of component values and putting them together. E.g. I have a description list with one or two adjectives (chipped or not, yellow, black) and a noun (rifle, pistol) and it generates a list of names with all of them.

Could you give a walkthrough of the typical use case?
#5
10/30/2010 (3:09 pm)
Ted - how can you utilise what you place in the Magnitude editor? Getting it into a file is great, or export to a database, but what would be good is a solution that provides scripts to read that info into the game and utlise it. This would be gold.
#6
10/30/2010 (11:27 pm)
@David: You can actually find a step-by-step around page 10 of the manual, which I'll post here for everyone to see. While the lists show permutations of simple lists, the use cases can be much more complex, especially if you use lists generated by the tool as property lists to generate more complex lists, like the tutorial below:

Stage I: Creating the ItemName list


  1. Create a layer named “Description” with a type of “Property Array”, and a Field Array of “Rusted, Chipped, Scuffed, Dull, Worn, Shiny” and add it.
  2. Create another layer named “Color” with a type of “Property Array”, and a Field Array of “Red, Green, Blue, Yellow, Black, White” and add it.
  3. Create another layer named “Name” with a type of “Property Array”, and a Field Array of “Pistol, Rifle, Machine Gun, Grenade” and add that.
  4. Select “SPC Delimited” from the “Text Export Delimiting” drop-down list, and then click the “TXT Export” button and save the file as ItemName.txt. The Magnitude Editor will generate a list of 144 names. If you open the file, you should see the following:

www.digitalflux.com/images/nameGenOutput3.jpg
Now, delete the layers using the “- Layer” www.digitalflux.com/images/deleteLayer.jpg button so that the Layer List is empty.

Stage II: Creating the item datasets


  1. Create and add a layer with a name of “UID” and a type of “NULL Filled”.
  2. Create and add a layer with a name of “ItemName”, a type of “Property Array”, and check the “Use File List From:” checkbox and choose the ItemName.txt file we just created in Stage I.
  3. Create and add a layer with a name of “minDamage”, a type of “Number Array”, a Field Start of 1, Field Step of 5, and Field End of 20.
  4. Create and add a layer with a name of “maxDamage”, a type of “Number Array”, a Field Start of 25, Field Step of 5, and Field End of 50.
  5. Create and add a layer with a name of “HitPoints”, a type of “Number Array”, a Field Start of 5, Field Step of 2, and Field End of 20.
  6. Click on the “CSV Export” button and save the output. Magnitude Editor will take up to a minute to generate a CSV file with 34560 items generated! Just a tiny fraction of the output looks like this:

www.digitalflux.com/images/itemGenOutput2.jpg
So there, you can see where you can create more complex datasets that can be imported into databases for items that actually function.

I'll be posting another blog showing off some more advanced and complex stuff that can be done with the tool in the coming days as well, so if you're on the fence for this tool, then stay tune :)
#7
10/30/2010 (11:41 pm)
@JulianR: The Magnitude Editor is not an inventory system, though it is designed to be flexible enough to work with many types of these systems, as well as perform other tasks such as generating name lists, item name lists, and even dialog (if you have a system that is built for this sort of thing).

For me to write this tool against a specific inventory would effectively force everyone who uses the tool to use the inventory structure and functions that I've designed, and if you've seen the inventory system that I have in Epic Frontiers, then you'd probably agree that not every game needs those features or data structure.

What the tool is designed for is generating content that is similar, yet tedious to produce, like many MMOs and other games contain, such as items, weapons, and creatures (not to mention the previously mentioned name lists)- and doing it in a short amount of time. How the data is used is up to the designer and, again, no game- single or multiplayer- is the same where data is concerned (nor should they be).
#8
10/31/2010 (11:40 pm)
@Ted - thanks for clearing that up, looks like a worthwhile tool.