Properly designing a game?

Community Forums/General Help/Properly designing a game?

Captain Wicker (crazy hillbilly)(Posted 2013) [#1]
How do you sit down and design your games?


Matty(Posted 2013) [#2]
I pick an idea, think of the basic outline of how I want it to play...from that point most games are pretty much identical in implementation in terms of programming ..

loadstuff
coreloop
{get input, update world state, draw stuff}
unloadstuff


Sometimes I take an existing board game that I liked and think of how it could be turned into an electronic version, or I may just like the mechanics of an arcade game of sorts and want to make my own version, mix and match with other successful arcade games...for example - something like gauntlet mixed with a sci fi theme and having an economy where you can buy and sell stuff gives alien breed...


AdamStrange(Posted 2013) [#3]
mmm, I would adjust Mattys basic outline to something like this:

startup
- where you load your initial libraries, data, graphics, etc

Show start screen
- this could be omitted, or show the game in operation, but usually there are game options

If requested, Show the option page
- you might give the user options for turning of game sound and music, etc

Show hiscore page
- you might not have one

Game
- This is your actual game

shutdown
- you clean up, release libraries, save you hi score, settings, etc


The reason I've expanded the core loop into pages is it is much simpler to have that in you mind from the start. Putting these things in at the last minute is much harder than it seems.

Also bear in mind that most systems now run on events, so it might be prudent to use an event core with timers instead of just a pure loop?


RemiD(Posted 2013) [#4]
I use notepad to design my programs/video games.

I separate the text file in several parts :

Overview :
This is where i write a description of the world, of the entities, of the scenario, of the goal of the game
I try to answer to these questions :
What/Who ? Where ? When ? Why/What for ? How ?

Functionalities :
This is where i write a description of the functionalities of the game, what the user will be able to do and how the entities will behave and interact.

Components :
This is where i write a description of the components that i will need (outside of what i can create in Blitz3d)
Meshes
Textures
Animations
Sons
Fonts

Program structure :
This is where i write what functions i will need and how they will be run.

Steps :
This is where i write what steps i have to do next in order to make progress.


_PJ_(Posted 2013) [#5]
When you say design a game, do you mean actually "Design" it, as would be described in a professional design brief, or more simply how do I go about going from idea to code to finished product even?


*(Posted 2013) [#6]
I write games I would like to play, all to often at the end of the design and coding process I am bored with the idea and move to create another game but thats another story :)


TaskMaster(Posted 2013) [#7]
I do a lot of work on paper first.

I draw any interfaces there might need to be. I flow chart the game on many different levels.

Like one flow chart would be:

Intro Screen
|
Main Menu
|
Game
|
Game Over Screen
|
Back to Main menu

Then I flow chart the Main Menu, and the Game sections with their own flow charts, etc

I document the whole thing as I go in a hidden thread in the forums on my web site, so I can work on it from anywhere. At home, at work, in a coffee shop with my tablet or phone if I come up with an idea, etc...

I do this sort of stuff for any program I am writing, not just a game. I think I have about 15 different active threads in my forums for my ideas and current projects that I work on from time to time.


RemiD(Posted 2013) [#8]
I don't think you can manage to create something without having a clear vision of what you want to create... This is why creating a design document is useful, it does not need to be perfect, but i think that it needs to be detailed enough to guide the actions. Else it is easy to waste time doing useless things.

Another advantage of writing in words what you want to achieve before coding it, is the possibility to outsource some tasks to freelancers (elance.com, freelancers.com).

But some people don't need to write, they do the design in their mind. Why not ?


virtlands(Posted 2013) [#9]
You all have great ideas for program design. For me it's:

A) Invent data types, plans, equations, etc., and occasionally write it on paper.
B) I tend to make the intro screen last,....,

I have several unfinished concepts and programs that I started like 4 years ago, and I don't finish them,
because I get distracted by other stuff.


Captain Wicker (crazy hillbilly)(Posted 2013) [#10]
I have several unfinished concepts and programs that I started like 4 years ago, and I don't finish them,
because I get distracted by other stuff.

I know what you mean. lol
I remember at least 3 projects in Blitz3D I abandoned shortly after starting them. Had finished about 20% on each. :(


ima747(Posted 2013) [#11]
I think it's really whatever works for you. I tend to fall into 2 equally successful/failure prone methods:
1) Firm design plan: Outline the game concept, game play elements, build an asset list, etc.
2) Have an idea and see where it goes: This one is more likely to fail for normal people, but for me it can work. I just start with an idea, code it up quick and dirty and see where it takes me. The hard part is knowing when to tie off growth of the concept and just cram in some menus and turn it into a playable game for other people. It's VERY easy to get bored and walk away (this is generally when I force myself to finnish it up so I haven't wasted my time) or to just go on forever (I pay attention to my interest level, when it starts to fade it's time to tie it off). This isn't a good method for anyone who has trouble tying projects off cleanly, and would not work on anything more than a 1 man job I believe, but it is my preferred method since it's totally free form and lets me dive right into whatever my brain is interested in (higher productivity when you're really pumped to work on something specific).

I would urge anyone to try this: Make a game sketch. Design out what you want it to do. Make it as simple as you can stomach (does the main character need 20 different guns? does he need any actually?). Sit down and make that game. Doesn't matter if you make it crappy, just finnish it. Finishing something you set out to make like that gives you a sense of perspective that is invaluable in both designing and building things in the future. There's no other way to get the perspective that you need to be able to finish things until you've finished your first thing. It doesn't get easier to finish things, but you do get better at it which definitely helps.

That said, don't finish everything. Those abandoned experiments are invaluable learning tools in their own right... but not finishing things is a lot easier so it's not really much of a goal :)


virtlands(Posted 2013) [#12]
I like IMA747 statements,
"2) Have an idea and see where it goes: ..."

That's because code seems to evolve on its own, and it sort of self-improves as you concentrate on the project.