Sign in to follow this  
R blissett

best laid plans

Recommended Posts

R blissett    100
Hi Im just starting to look into making a game, A racing motorcycle sim is the plan as there nothing out there any good for us virtual scratchers. There going to be two of us working on the project, One has basic/intermediate C++ and the other basic/intermediate 3d modeling skills. (Im trying to learn C++ as well but finding it heavy going and the books a pretty dry read tbh). We also started working though some basic game making books, Im enjoying game maker apprentice, It also gave us a reality check that this will be a 7-10 year project more than likly. Question is: What the best way to plan the game out please? As this is all were going to be able to work on untill our skill progress.

Share this post


Link to post
Share on other sites
jpetrie    13138
Quote:

Question is: What the best way to plan the game out please? As this is all were going to be able to work on untill our skill progress.

Forget about it.

In order to become a better programmer, you need to practice. And in order to that you need to finish smaller projects. You, at least, are probably going to have to put aside the idea of working on this big project until you develop some smaller ones first, to build up your skills.

Once you are at a point where you feel your skill level equates with the skill level required to make the kind of game you want, then you can consider how to plan and develop it. There is no "best" way to do that -- there is only the way that works the best for your team, and that's something you're going to have to decide on your own.

Share this post


Link to post
Share on other sites
R blissett    100
Maybe i asked the wrong question, I should'nt of put what the "best" way, but how do you guys do plan games out.

Im aware i can't make the game i would like at the moment.

Share this post


Link to post
Share on other sites
iMalc    2466
I would plan to start working on something you'd like to make where you know in advance how to do roughly 70% of it and are reasonably sure you can work out the remaining 30% along the way.
That's pretty much how I did things, and it stops the project from being too challenging and hence offputting, or too easy and hence boring.
Actual percentages may vary for the individual.

Share this post


Link to post
Share on other sites
kseh    3840
This recent thread talks about how people keep track of their thoughts. I also use a personal wiki.

Also, this page seems to have some general level stuff to think about.

Me, I pretty much just make it all up as I go along. But I suppose in general consider what I want to do, think about what I need to get it done, research as needed, try out whatever I came up for a solution, make notes regarding success or failure, and then repeat.

Share this post


Link to post
Share on other sites
M2tM    948
Jpetrie is correct. Forget about it and learn to program free of any expectations of banging out a game. Start small and work your way up. Expect about a year of doing command prompt work learning the language until you work your way into a GUI environment of some kind...

But if you're asking what I do, there is no recipe for success. I'll talk briefly about the design aspect, however:

I have one moderately popular game mod I put out (Vampirism Beast for Wc3), I can only really speak to that. Basically I took an existing type of game, played the hell out of it. Then I started simple by developing a derivative of the game with a few new items and improved game balance. Then I sped up the progression system so people had a more active and engaging game and added more content.

The game evolved to include many elements not in the original concept of that kind of game and only the core gameplay mechanics are similar to the original. The key to its success was to iterate over the game design often and really take feedback into consideration.

This similar concept has worked with success for League of Legends and Heroes of Newerth which both went different directions with something similar to my approach.

___

There have been entire books written about the software development life-cycle. Code Complete covers this among other things and I recommend it (just don't take its word on absolutely -everything- it's mostly very good but has some weird ideas about pseudo code which I have -never- encountered in the wild for example.)

Share this post


Link to post
Share on other sites
TheTroll    883
The problem is you are asking how to plan to build an interstellar spaceship without understanding what the parts are that you even need to build the ship.

Until you understand the basics you can't start to plan how to do something more advanced.

You can't do a Marathon before you even learn to turn over.

theTroll

Share this post


Link to post
Share on other sites
Nypyren    12074
Prepare yourself first by realizing that you will have to rewrite a lot of code before you reach the final solution.

Now... start:

Define all goals. Break each goal into parts recursively until the parts are simple enough that you know how to implement them OR find out that you need to learn more. At this point they're 'tasks'. Keep a tree/graph of how each larger goal breaks down into its parts since this will be useful later...

You won't be able to progress while there are any unknowns (or missing goals), so solve those first. You need to fill in gaps in your knowledge (google, trial-and-error, etc). Feedback from learning new things may require modification of your existing goals/tasks.

After you have *everything* broken down into known tasks, take all pairs of tasks and determine what their relationship is as far as you understand it (peer system, subsystem, helper, totally unrelated, etc). You can start with a big 2D matrix, but eventually you'll want to simplify it into a node/edge graph of some kind (UML or whatever you want). You'll need to integrate these relationships into your task breakdown graph.

Examine the task relationships and try to determine how each implementation task will interact with anything it's related to. See if there are common things that you can simplify/share. Consider how you would deal with these things in your implementation language. See if there are any conflicts or spots where you suspect implementation might get ugly. Make modifications if you can at this point (they *will* be necessary).

After this you can probably start writing some code with a very good idea of what to do. You'll run into all problems you haven't had the experience to forsee by now (and add them to your experience for next time). You will have to scrap some (or all!) of your code and redo some/all of the previous steps.

Share this post


Link to post
Share on other sites
M2tM    948
I actually couldn't disagree more strongly with Nypyren who has basically described the design phase of the waterfall method... Though suggested that after defining everything you may still get it wrong which is at least correct.

You need to find a part that you are comfortable implementing and do it. Then find the next part. Your overall goal should not be to have the whole system and all interactions defined before you begin, but to have a rough sense for what you are doing (we'll need 2d graphics, sound, physics, some tools etc) and then begin analyzing and implementing those individually and iterating over the implementations as you integrate.

The most important thing is to get something running early so that you can build off of a working and running piece of the game. Obviously you want to be flexible in your implementation (something you can only do with lots of experience) and try to keep yourself developing through each task. Feel free to analyze sections as you need them, but do not concern yourself with understanding every working part before you begin because that just isn't possible.

That said, before you start jumping into the actual game project you should really know the actual language you are jumping into. This is why I suggest you wait before attempting to tackle something where each part will prove impossible at your current level of skill.

Share this post


Link to post
Share on other sites
R blissett    100
Thanks for the replys and links, I was intested to know how other people planned there projects, I was kinds reverse engerneering my end goal.Then start doing research on the process and software needed while learning the basic of C++ and game making over the next 12-24 months.

Learning to making a game is 50% harder and more involved that i belived it to be.

With any luck the last chapter of game makers apprentice will make a motorcycle sim, but i can't see it

Share this post


Link to post
Share on other sites
M2tM    948
Quote:
Original post by R blissett
Thanks for the replys and links, I was intested to know how other people planned there projects, I was kinds reverse engerneering my end goal.Then start doing research on the process and software needed while learning the basic of C++ and game making over the next 12-24 months.

Learning to making a game is 50% harder and more involved that i belived it to be.

With any luck the last chapter of game makers apprentice will make a motorcycle sim, but i can't see it


Well, let's not apply random % numbers to how much harder it may or may not be than you imagined originally. It is generally accepted that we do not have the mental capacity to hold an entire medium sized program and all its interactions in our head at once. This is humbling to consider, so instead of focusing on making a "game" which will ultimately lead to a daunting and impossible task. Instead focus on making the first part of a game.

But do that by tackling the first part of starting the first part of building a game which is learning the language and tools.

And of course to do that you've got to decide how you want to approach that, maybe if you're finding C++ too "dry" you should either invest in better books, or invest in a new technology choice.

Take it one step at a time.

I have one last piece of advice for you. Do not form a team. You aren't capable of contributing at this point and they probably aren't much better off. Chances are the project will flounder and be more stress than it's worth. Learning is typically an individual activity, it is internal by its nature and everyone approaches it differently. Don't confuse your time learning with trying to do a failed game project.

Share this post


Link to post
Share on other sites
iMalc    2466
Statements like "You won't be able to progress while there are any unknowns" make me a tad uneasy. So I too somewhat respectfully disagree with Nypyren.

I found that a member of the team I joined had to work out every detail before starting and make lists containing even the most trivial of things. Even an instruction as simple as search and replace a GUID value with another had to be written down and had time estimated for it. I could have done it myself in less time than it took to write down. It wasn't that he wasn't capable of doing the development, or hadn't performed the same step many times before, it was just that he was never prepared to start until the entire work was laid out before him as a series of tasks. And no, his technique did not appear to work to his advantage. It drove me nuts!
Fortunately this person no longer works for us.

I'd like to empahsize my previous point. Don't start a project where you don't have the slightest clue how to do large parts of it. Basically don't start something you know you simply aren't capable of doing.
Also, don't start a project where you know how to do the whole thing beforehand. I once wrote an entire game from scratch in 4 hours which was the first time I ever wrote something where I knew how to do every single little bit of it in advance, and it was boring as hell.
Strike a balance where you know how to do much of it and have a rough idea about the rest.

Share this post


Link to post
Share on other sites
R blissett    100
Quote:
Original post by M2tM
maybe if you're finding C++ too "dry" you should either invest in better books, or invest in a new technology choice.



This is what i have spent the last few nights looking for, I bought C++ for dummys the first 2 chapters were fine then it just introduced to much to soon for me. I now have a book coming which will teach me a basic code then rewrite the basic code while adding alittle more and so on though the entire book,I know i learn better this way. I also got referance book coiming.

In a couple of years time when i have half a clue what im doing I think GUI with background image's and then linking GUI will my first step. Then i'll like to learn how to add a motorcycle model inside a box and rotate around it(showroom) which i could then try and turn into a skinning tool.

Step one: learn C++
step two: make space invaders

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this