Database modeling

Started by
5 comments, last by Eck 10 years, 2 months ago

Is it important to learn database modeling for designing game program?

Advertisement

I found that studying database modelling techniques at university also made me become better at object-oriented and procedural programming...

Also, if it covers SQL, it's always a handy skill to have.

So if you can learn it, then why not tongue.png

I have already used SQL for persistent data in games and really had absolutely no problems. I used it for both, storing levels, object properties, [...], and save games.

Learning how to model databases will also give a whole new insight on the data concept.

It is a rather useful knowledge. Still, about it being important on designing games, well, I wouldn't say it is... but would still recommend you to study it.

Its a handy bit of knowlege for a couple reasons, 1) designing database tables is not entirely unlike designing a set of classes to express a similar concept--although you're sometimes designing with different ends in mind, and 2) databases are useful in implementing games -- Nearly all persistent (that is, kept for a long time) data in online games is stored in a database (although nosql databases are increasingly used), and databases can also be useful on the near-side of your game's build system if you have a lot of data to manage.

regarding 1 -- its not just MMORPGs using big databases in games. There are huge databases backing up the online experience for the halo games, where you can go back and look through your past games, see where you were killed, made kills, and with what weapons. I think COD is similar with possibly even more of a social-aspect. So if you want to *build* games its definitely another good tool to have in your belt, but for a pure *designer* role its probably less important (but could still be leveraged as a tool).

throw table_exception("(? ???)? ? ???");

I discovered that higher normal forms on tables that I use to represent things in games reduce code complexity by up to 80% in safe languages. Instead of having 3 loops nested in each other, I have one loop over a list targeting child objects with many different parent objects in other tables.

I found that thinking in normalised relational terms has a striking similarity to data oriented coding techniques.

It's been said before, but I'll throw my opinion in too. Learning how to model your data will help you in many ways. When you spend time thinking how to organize your data, so many things become easier including object oriented concepts and data driving your applications. It can have other side effects like helping you name things better, and forcing you to slow down to think about your design. When you have a good core data model, writing code against it becomes far easier.

It's a strong skill to have just to make you a more well rounded developer. Plus, if you find yourself unable to land a sweet game developer gig in the real world, it will help you get a "normal" job. Nearly all business applications these days have a database back-end.

- Eck

EckTech Games - Games and Unity Assets I'm working on
Still Flying - My GameDev journal
The Shilwulf Dynasty - Campaign notes for my Rogue Trader RPG

This topic is closed to new replies.

Advertisement