🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Tools for designing data

Started by
14 comments, last by Shaarigan 4 years, 1 month ago

This isn't a game design problem, rather a game design tool problem.

Imagine a strategy game where you need to store lots of stats such as:

name 	| hp 	| attack | defense
warrior	| 100 	| 50 	 | 50
archer 	| 50 	| 75 	 | 25

This data needs to be designed by someone. Which tools do you use?

I found two popular solutions to this: either spreadsheets (CSV and family) or SQL. Is there any other solutions? Would it make sense to use other kinds of databases like Firebase to store such data?

I'm a fan of the KISS principle so I started with spreadsheets.

As I was looking around for solutions, I found more stuff about SQL than anything else. So I started playing with SQLite to get a feel for it, only it wasn't quite as easy as a spreadsheet editor to manipulate the data. I found lots of commercial strategy game use SQL databases for such purpose. Is there tools for editing sql data that are as flexible as excel and such?

spreadsheets
Advertisement

CSV/Excel I don't think has enough capability once start getting complex data, and dozens of columns becomes hard to keep track of.

Database seem massive overkill, you probably won't have tens of thousands of unit types that need to be loaded dynamically, you can generally afford to load all the definitions into memory.

I have been using YAML for a lot of game and non-game things I wanted to edit manually, and are not worth the investment of a custom editor GUI. Generally I found it easy enough to explain to people how to edit correctly (with some decent error messages at load time). INI, JSON, XML, etc. are other options I have seen.

- id: warrior
  trained_at: barracks
  training_time: 30
  cost:
    food: 50
  hp: 50
  speed: 1
  sight: 10
  melee_weapon:
    damage: 20
    attack_Rate: 1
- id: archer
  trained_at: archery_range
  training_time: 60
  cost:
    food: 50
    wood: 20
    gold: 50
  hp: 50
  speed: 1
  sight: 20
  ranged_weapon:
    damage: 25
    range: 20
    fire_delay: 1
    reload: 10
    projectile_speed: 10
    accuracy: 0.9
  melee_weapon:
    damage: 10
    attack_rate: 2


I have seen some games use database or even custom formats, but it seems a lot of work unless there is some special need not otherwise fulfilled.

I also quite like how Factorio defines all the stuff in Lua as part of it's scripting support, rather than using some other format. This allows for some repetitive stuff to be handled in the data declaration (like where object A and B shared various properties), without needing special coding in the game for such special cases.

Study the first three normal forms, and you'll have the key to designing databases. In other words, normalize the hell out of your database. Like, instead of storing the string “Saskatoon” in the Person's city field, you have a separate Cities table, and you use a foreign key lookup.

That said, monkeying around with Excel and Word using VBScript is pretty fun!

I'm a huge Excel user/believer. But sometimes you need a spreadsheet, and sometimes what you need is a database.

-- Tom Sloper -- sloperama.com

The most advanced tool I have seen (but neither used nor studied) if nyan (https://github.com/SFTtech/nyan),​ a language designed for describing properties and hoe properties change due to events, They use it in openage (https://github.com/SFTtech/openage),​ the open source version of Age of empires II.

@SyncViews I do use this technique but for data that is easy to reason about. Parameters for camera configuration or parameters for assets can go in a Lua/YAML/INI/XML/JSON file. But I can't avoid the GUI editor. For game stats, I need to be able to compare the values easily for game balancing which means I'm gonna end up having to use some sort of spreadsheet editor anyway.

@taby Yes but which tools would you use for the situation I described?

@Tom Sloper When you use excel, does your games import straight xlsx or you export in a different format?

@Alberth This looks very powerful. I'll take a look.

There is MySQL Workbench. I prefer MySQL. Well, I prefer Oracle, but I'm not a bajillionaire, and can't afford it.

aganm said:
@Tom Sloper When you use excel, does your games import straight xlsx or you export in a different format?

I just use it in the design process, in pre-production

-- Tom Sloper -- sloperama.com

This topic is closed to new replies.

Advertisement