building/making a game: where to start?

Started by
12 comments, last by TomKQT 10 years, 5 months ago

All good advice above, but I really like ankhd's answer.

Why?

I haven't build many games (trivial 2D things for my son, tetris, etc.), but I've been architecting and programming software since the 80's and worked on projects that have > 10 million lines of code.

ankhd's answer matches my approach to most things: "solution by dichotomy."

* Figure out the first thing you need; get it working (don't mess around with it too muxh, just get it working)

* Figure out the next, do the same

* ...

Expect to re-do every piece of the software, many times, and isolate each as much as possible so that a "re-do" doesn't have consequences elsewhere in the program.

You will not understand "how" a particular piece of the game should work until you have it working in context with many others. This leads to refacotring, re-architecting, optmization. But save those for part of the discovery process and try not to "front-load" a lot of effort that you haven't proven you need.

At some point in this process, you will have all the core elements handled: rendering, animation, physics, menus, etc., and then all you will need is a killer store-line and mode of game-play.

And then you will likely re-write or update several of your core elements :-)

Advertisement


but I've been architecting and programming software since the 80's and worked on projects that have > 10 million lines of code.

And I guarantee you didn't do all 10,000,000 lines of code yourself. Nor, I'm sure, could I pick out random groups of 25 consecutive lines of that code and you flawlessly tell me precisely what those lines are doing.

That's not degrading your ability, that's giving you an idea what you'd need to be able and do in order to build a full, worthwhile MMORPG. Maybe not 10,000,000 lines of code (though I think it may be fair to say that a AAA-rated MMORPG like Final Fantasy XIV or Elder Scrolls Online are probably in the millions), but even 1% of that is 100,000 lines of code that you would have to code, remember well enough to recall it on demand when time comes to work, fix, edit or expand on your code.

Then there's the planning involved... I admit, I'm new to game development (dreamed forever, finally starting it), so my miniscule projects I do on the fly. But MMOs by the nature of non-linear gameplay on such a grand scale is like one author writing 25 novels at one time. A project like an MMO, with all it's intricacies would necessitate planning it all out (probably in decent detail) before you even started making your first line of code.

After that, your assets. If you don't want low-quality, free 3d models (which are fine for my little work, I admit), you're either going to have to learn 3d modeling and animation which is an enormous task in itself. Believe me, I never fully appreciated people who "all they really do is make a pretty picture on computer" until I opened Blender for the first time. Now I consider their job every bit as hard as the actual programming. Third option: Shell out some money for better quality models that are hopefully animated. FYI, most of your free models aren't rigged, let alone animated, so you'd have to learn that anyway.

Other assets are your sound effects, 2d textures, etc. A 24/7 dedicated server ($75/month on the cheap end--don't bother trying to search for a free one)

After the weeks of design, weeks of getting your assets together and getting everything you need for your game.... You get to master either a gaming engine (Unity, Cry-Engine, UDK) or a Library (XNA, DirectX, Ogre, SDL, etc.) and learn all the principles associated with programming graphics (2d and 3d), sound (2d and 3d), physics, extensive I/O, and all the lovely details of network protocols, etc.

Now, if you're like I was when I was given roughly that same speech, you're going to be annoyed, ignore it, and hope somebody hits me with a speeding car tomorrow. ^_^ And you'll either try getting a tutorial (which will likely tell you what to code, but not why--leaving you with essentially no more understanding than what you have now) or try to gather a team to help... In my position--and I think yours, too--you've got nothing to show that would intrigue developers/artists with the ability you need for it, and the ones who want to be a part of it, have about as much experience at it as you do.

So, again, my advice is to do something, not necessarily easy, but achievable. Then do something else achievable. Repeat while (Achievements < Random(5, 10)). Then, when you've done that, you'll have the basic principles down, you'll have a few of your own tricks up your sleeve, have the abilities you need to pull your own weight on a MMO, and the experience you need for other expert developers being genuinely interested in your idea. At that point, you'll have yourself a small team. And then maybe a worthwhile MMO is going to be feasible.

To be fair, he stated that a MMORPG is only his future dream project, but he knows thats not going to be now.

Right now he only wants to make a 2D RPG with a tile-based map and that should be feasible if he starts with the basic features and continually adds on a few bits and pieces, following the list from ankhd.

lol, I remember when I came to the forums with dreams and aspirations of an MMORPG for my first game...

People had the decency to shatter my dreams with the reality of "You'll never manage to make a successful, complete MMORPG on your own."

Now we link them to MMO tutorials...

And they were absolutely right. Making an MMORPG as the very first game is really a very very very bad idea ;) (The author of this thread even doesn't want it, it's his dream project for the future.)

Doing an MMORPG requires pieces of code (or perfectly working code) from too many fields at the same time. You need graphics, you need sound, you need game logic (plus a scripting language would probably help a lot), you need AI and you need networking (and not just a two-player server-client match, you need a robust multiple-player system).

Making smaller steps is better. Much better ;)

This topic is closed to new replies.

Advertisement