Breakdown of a Game Design
#1
Posted 01 September 2008 - 10:15 PM
this thread is stricly theretical information and i have various questions that need to be answered and im hoping to compile it at the end into a usefull resorce.
If in theory i would like to create a game i know i would need the following parts but shoot me where im misssing parts.
Elements of a Game Production
Design Document & Artwork
1 # Website
- Pages - Home , About , Downloads , Guide , Account , Artwork , Community Customer Care , Payment help , FAQ.
2# Copright for product ,website and insignia charicters ect
3#Games engine
4# Models, Levels, AI ,ect
5# some form of security / Anti hack system
6# Server
Questions
My main questions are how to break this down further ?
What parts of creating a game am i missing ?
Games Engine- I'm belive i would need to create a C++ based engine, The theroy would be based on planing on making any 3D game. I'm also aware that many developers will write there own engines, but I’m not nearly advanced enough yet programming wise to know where to even begin with something like that. (though I do plan to understand programming better eventually). What are the limitations for a releasing or distributing process.including Copyright ?
What kind of server power would you require for 2000 users ?
i only understand the model and level design in an SDK format such as Steam ( halflife , Team Fortress) and creating models in software such as Autodesk 3D max. Im currently learning crating websites.
I know this sounds rather impossable due to financial inplications aswell as code but please bear with me and lend me your time to create a layout a view of what it would take, Thank you for your time i look forward to your critism on the subject.
Thankyou
Neil
#2
Posted 02 September 2008 - 02:14 AM
Zerox01 said:
Zerox01 said:
2# Copright for product ,website and insignia charicters ect
3#Games engine
4# Models, Levels, AI ,ect
5# some form of security / Anti hack system
6# Server
theory:
1# Website - will make your game known long before its release and it will build anticipation
2# Copright for product - will protect your ideas
3# Games engine - the game engine will do the majority of the work leaving you to deal with only your game
reality:
1# Website - will make many unmet deadlines, build anticipation that will get forums flowing as "future players" start talking about undoable ideas and demanding expectations you cannot possibly meet. Under the pressure most people (I'd guess %97) simply collapse and give up.
2# Copright for product - you don't need one. Frankly no one is interested in an idea alone because (1) ideas are a dime a dozen and (2) no one will be able to exactly concieve and put together your unique idea and end up making something that either sucks or is unrelated totally. Don't waste your money.
3# Games engine - http://www.devmaster...ead.php?t=12862
So let me try to put the list how I generally see is successful:
1 # begin programming framework
2# get all solid game ideas down on paper (but keep in mind most of them will change in some way, either in small ways or "page one rewrite" ways)
3#Games engine
4#Games engine
5#Games engine
6#Games engine <- takes a LONG time to program, even if you're using a pre-made engine
7# tools for development which will allow for....
8# Models, Levels, AI ,ect
9# polish <- will probably take more time than the actual game itself, get tweek-happy
10# polish
11#?????????
12# PROFIT!
So why did I take the online stuff out? Because that's something you should consider after you write the engine and can see if your up to the challenge or not. I know this whole post sounds a bit pesimistic, but it's much better to overestimate than underestimate, and I'm not sure its possible to overestimate the difficulty of completing a polished game.
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
#3
Posted 02 September 2008 - 10:31 AM
As it is clear that the programming if a massive part of this i would like to devide it into sections. After more reasearch i have managed to break down the information you have given to find a much better search result and vast information. I will Split Games enignes into Engine and content to make this easyer to understand ( later ill ad a small description in detail )
I have also decided the type of route for the Games engine to follow using Roll-your-own game engines (Bespoke). Despite the cost, and many mainstream companies causing massive competition. This means the use of publicly available application interfaces, such as APIs like XNA, DirectX, OpenGL, the Windows and Linux APIs and SDL, to create an engines.
Programming Framework
Paper based ideas ( design document for programming ?)
Games Engine
- Artificial Intelligence
- Loading
- Displaying
- Animating models
- Collision detection between objects
- Culling
- Physic's input
- Graphical user interfaces
- Networking
- 3D Sound
- Multi-Platform Development
- Multi-Thread Processor Development
Game Content
- Specific models and textures
- Meaning behind object collisions and input
- Objects interact with the world
API ( Application Programming Interface )
Sdk Tools (Software Development Kit)
Polish
Further Questions:
Could someone expand on Programming Framework ?
Im still compiling the breakdown of theese various parts before ill repeat the processs, anyone help with this ?
#4
Posted 03 September 2008 - 04:39 PM
#include <arcade>
#include <computer>
#include <drinks>
#include <hardware/high_end>
#include <snacks>
#pragma <responisiblities>
...........
#5
Posted 03 September 2008 - 08:21 PM
Zerox01 said:
Quote
Paper based ideas ( design document for programming ?)
Games Engine
- Artificial Intelligence
- Loading
- Displaying
- Animating models
- Collision detection between objects
- Culling
- Physic's input
- Graphical user interfaces
- Networking
- 3D Sound
- Multi-Platform Development
- Multi-Thread Processor Development
Game Content
- Specific models and textures
- Meaning behind object collisions and input
- Objects interact with the world
API ( Application Programming Interface )
Sdk Tools (Software Development Kit)
Polish
Further Questions:
But I am wondering about you mentioning "API and SDK". Are you talking about maknig these or just using them? Making an API is inpractical (why on earth would you? There's so many excellent ones for free) and the purpose of an SDK is typically to let people outside of your group write or use the engine. You really don't need one of these if it's an in-house engine. Not only that but these tools would typically come before content creation and after the engine.
The design document for programming is generally a good idea, but I found it to be more of a hassle than a help. You can write a technical target page (name I made up) which spells out the goals of what you want in the engine. I've found things like this help keep your focus in check, but writing out the archetecture before you build is generally not too helpful.
It can be good if you're working in a group of programmers as to better communicate with eachother but what you'll find out is that the structure and pipeline of the engine will be constantly changing. You just keep finding better and better ways to do things and the document will get to be a mess real fast (a time consuming mess too).
Quote
Quote
- how portable will this be (what OS's and versions of them?)
- what shader model is required? (none(fixed function)? SM 1.1? SM2? SM3?)
- how advanced do you want the graphics (name a year like 1999 - hl1, 2004 - doom 3)
- are there any efficiency concerns with using different methods in combination? (like heavy AI + shadow volumes, ask if you don't quite get what I mean)
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
#6
Posted 04 September 2008 - 03:25 PM
starstutter said:
Zerox01 said:
- Artificial Intelligence
- Loading
- Displaying
- Animating models
- Collision detection between objects
- Culling
- Physic's input
- Graphical user interfaces
- Networking
- 3D Sound
- Multi-Platform Development
- Multi-Thread Processor Development
starstutter said:
starstutter said:
#7
Posted 04 September 2008 - 04:45 PM
#8
Posted 05 September 2008 - 07:46 PM
- how portable will this be (what OS's and versions of them?)
- what shader model is required? (none(fixed function)? SM 1.1? SM2? SM3?)
- how advanced do you want the graphics (name a year like 1999 - hl1, 2004 - doom 3)
- are there any efficiency concerns with using different methods in combination? (like heavy AI + shadow volumes, ask if you don't quite get what I mean)
Im looking for Pure windows to start with and then once the game worked id consider differand os and console systems.
When you talk about shader models i dont understand what you mean from sm1.1 but i belive i would gave to use a Unified shader model that unifies the three maing shaders (Vertex,Geometry,Pixel) shaders in OpenGL and Direct3D 10. Would this stil work with Direct3D 9?
are there any efficiency concerns with using different methods in combination? (like heavy AI + shadow volumes, ask if you don't quite get what I mean) im afraid i do not understand.
how advanced do you want the graphics (name a year like 1999 - hl1, 2004 - doom 3 ?
well to be honest id Aim for something like doom 3 ( i know this will make the process longer and harder especialy starting it on my own.)
To be honest my understanding is verry limited but i have understaken a cource in all the principles of software development / computer science.I have a nack for picking things up tho.
Kenneth :
That is not an engine, it is a list of features. The engine is what glues it together
I do understand what you are saying and i could probbably use your advice giving a name for this issue.
Overall i want to make an A-z of required parts for the total design of the game i have in mind , then i can think about how to impliment the design documents and start developing the parts neccesary posibaly with some help and financhal support. this will be a long process!
What Api are avalable , what would they cost ?
I have To create Programming /Design Documents what other documents could help in the long run ? im still learning as i go ? perhaps Website documentation ?
#9
Posted 05 September 2008 - 07:58 PM
Kenneth Gorking said:
There's a small flaw in your theory there. It hasn't been that long ago that I began work in 3D and I remember pretty clearly what it was like to try and learn all these things at once.
To the OP, if you are new to complex coding like this, I don't think it's even possible to forsee where things can go wrong because problems will arise that you didn't even know existed. It takes a long while for your mind to get used to the spider-web logic of graphics programming.
You can map it out first if you want to, but unless you're psycic or have a time machine, I guarentee you that you won't see about 3/4th's of the problems coming, and will probably have to start over again. I know, I've tried the whole "document as I go thing" about 3 times and it gained me about -%20 of productive work every time.
If you are working with a team of other experienced people of can have someone who's familiar with the technology look over it, that's fine, but I seriously doubt that's your situation.
EDIT: However, after you build one or 2 engines that actually is a good idea. But my answer was specificly about your situation.
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
#10
Posted 05 September 2008 - 08:11 PM
Zerox01 said:
Quote
Quote
The alternative is shadow maps, which are heavier on the GPU, but are almost detatched from the CPU in terms of speed and scene complexity.
Quote
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
#11
Posted 05 September 2008 - 10:02 PM
starstutter said:
I'm not quite sure what you're saying but I don't think that's possible. Those 3 shaders work together in the same pipeline, but they are all different segments (and you don't have any control over that). And unfortunatley there are no geometry shaders in DX9.
Some graphics techniques are very hard on the CPU. Shadow volumes (like in doom 3) have to be created entirley on the cpu, and then drawn in the GPU. While these volumes are very cheap on your graphics card, they can be hell on your cpu and not scale well with scene complexity. So what I was saying is, if you use shadow volumes, then you will have less processing power left over for AI, animation, physics ect.
The alternative is shadow maps, which are heavier on the GPU, but are almost detatched from the CPU in terms of speed and scene complexity.
I'm not aware of any API's (like DX and GL) that aren't free :)
in witch case i would look to use shadow maps as the game will have a lot of Ai involved, for the api does it have to be a secific api as i could of imagined it but i think ive seen DX and GL together ? also i will use DX9 not to prevent the masses from using it.
are there any areas im missing ?
#12
Posted 05 September 2008 - 10:41 PM
Website
Pages - Home , About , Downloads , Guide , Account , Artwork , Community Customer Care , Payment help , FAQ.
Copright for product ,website and insignia charicters ect
Programming Framework
Paper based ideas
Storyboad
Design Document for Programming
Design Document for Design (Game Concept Ect)
Games Engine
- Artificial Intelligence
- Loading
- Displaying
- Animating models
- Collision detection between objects
- Culling
- Physic's input
- Graphical user interfaces
- Interactive graphics (this is ultra-advanced stuff)
- Antialiasing
- Object tracking and lifetime
- Networking
- 3D Sound
- Multi-Platform Development
- Multi-Thread Processor Development
- Patch's & How to manage
Game Content
- Game Levels
- Specific models and textures
- Meaning behind object collisions and input
- Objects interact with the world
API ( Application Programming Interface ) DX / GL ?
Sdk Tools (Software Development Kit)
Polish
Anyone Help ad Detail and Specifics to this ?
#13
Posted 06 September 2008 - 01:30 AM
Zerox01 said:
EDIT: also, I am very seriously advising you not to set up a website untill the game is at least 4/5th's complete (which may be hard to judge). I would redirect you to GameDev's "Help Wanted" forums where thousands upon thousands of half-baked websites are stacked on top of eachother. They all contain vauge concept art, unattainable promises and people on their "foums" bitching at them to hurry up and finish the game.
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
#14
Posted 06 September 2008 - 02:34 PM
Reedbeta said:
Zerox01 said:
starstutter said:
#15
Posted 06 September 2008 - 03:43 PM
For now could some one tell me what the api is all about.
So with open gl windows users will not be able to join ?
Is there anything ive missed before i start to break these down ?
#16
Posted 06 September 2008 - 04:32 PM
Zerox01 said:
Quote
Ok, so DirectX and openGL are both API's. You know what this stands for and personally I think the name is a bit misleading. When I think about an "interface", I usually think about a development environment or some kind of GUI. API's though are better described as a giant collection of libraries that shove tons and tons of critical functions into pre-compiled headers.
What the DX and GL libraries mostly do is provide functions to let you access your graphics card with (relative) ease. Instead of having to roll out 6 pages of code to draw an object, you can set a few parameters and matrixes and say "DrawModel()" basicly.
Now I'm making it sound a lot easier than it will be, but without DX and GL we would all be floating up to our foreheads in slow, redundant GPU code.
Quote
Quote
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
#17
Posted 06 September 2008 - 11:20 PM
#18
Posted 07 September 2008 - 01:34 AM
Zerox01 said:
It really comes down to the problem that the more platforms the API has to run on, the less optimized it can be (because each platformed has to be optimized in its own ways). So OpenGL allows for more users, but it is somewhat slower and imo a bit harder to learn.
DirectX is exclusive to xBox and windows OS's (I'm not sure about wii, but I doubt it). The advantage though is that it's highly optimized for microsoft OS's and the hardware they run on. Also, since it is less generalized, there can be more functions that some up menial work (such as texture loading).
Now keep in mind the above paragraph is based on "last time I checked", and while I doubt much has changed, I encourage you to look into it more yourself. Just like with consumer products though, get the info from a non-bias source (aka not the official sites for either).
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
#19
Posted 07 September 2008 - 02:09 PM
Also i will look into it more , and its been noted but for now i need to split down my list much further.
Thankyou
Website
Pages - Home , About , Downloads , Guide , Account , Artwork , Community Customer Care , Payment help , FAQ.
Copright for product ,website and insignia charicters ect
Programming Framework's
- DAO
- GUI
- AI
- Animation
- Collision detection
- Culling
- Physics
- Networking
- Sound
Paper based ideas
Storyboad
Design Document for Programming
Design Document for Design (Game Concept Ect)
Games Engine
- The Renderer
- Artificial Intelligence
- Loading
- Displaying
- Animating models
- Collision detection between objects
- Culling
- Physic's input
- Graphical user interfaces
- Interactive graphics (this is ultra-advanced stuff)
- Antialiasing
- Object tracking and lifetime
- Networking
- 3D Sound
- Multi-Platform Development
- Multi-Thread Processor Development
- Patch's & How to manage
Game Content
- Game Levels
- Specific models and textures
- Meaning behind object collisions and input
- Objects interact with the world
API ( Application Programming Interface ) DX / GL ?
Sdk Tools (Software Development Kit)
Polish
I find myself looking at the 3D pipeline and came up with a following overview i found:
3D Pipeline - High-Level Overview
1. Application/Scene
Scene/Geometry database traversal
Movement of objects, and aiming and movement of view camera
Animated movement of object models
Description of the contents of the 3D world
Object Visibility Check including possible Occlusion Culling
Select Level of Detail (LOD)
2. Geometry
Transforms (rotation, translation, scaling)
Transform from Model Space to World Space (Direct3D)
Transform from World Space to View Space
View Projection
Trivial Accept/Reject Culling
Back-Face Culling (can also be done later in Screen Space)
Lighting
Perspective Divide - Transform to Clip Space
Clipping
Transform to Screen Space
3. Triangle Setup
Back-face Culling (or can be done in view space before lighting)
Slope/Delta Calculations
Scan-Line Conversion
4. Rendering / Rasterization
Shading
Texturing
Fog
Alpha Translucency Tests
Depth Buffering
Antialiasing (optional)
Display
When i look at this it takes out a large number of the same things in my list, is this actualy one of many chunks that could be calculated from my list ?
(Matching things include : Culling , Rendering , Model's and there movement )
Anyone help put this in a order based on where you would start - end?
Also after ive finished my design documents and the lists / base work where would the best place to be to start creating this project ?
#20
Posted 07 September 2008 - 02:27 PM
Zerox01 said:
Just stick to one. I also just heard that openGL occasionally has compatability and speed issues on windows. I've experienced this myself, but I thought it might have been just the program.
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users












