[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

Where Do i Start in Game Programing??

Posted on 2006-06-03
38
Medium Priority
?
2,586 Views
Last Modified: 2013-12-04
hi i was woundering if anyone could help me all my life ive wanted to know how to make a computer game and i one day make my own game.
my skills are very very basic if any one could help me and tell me how to start and where to start so i could maybe start programing a ver very basic game maybe or something anything would help thanx :P
0
Comment
Question by:jordanthai
  • 13
  • 7
  • 5
  • +6
35 Comments
 
LVL 30

Accepted Solution

by:
Irwin Santos earned 100 total points
ID: 16825332
0
 
LVL 10

Assisted Solution

by:Andrew Beers
Andrew Beers earned 100 total points
ID: 16832873
nehe.gamedev.com

That is the only resource you need aside from a compiler and basic C++ and Mathematics Knowledge.   The resource that many gamedev companies use is Maya or 3D Studio to generate the textures they want to use applied to basic shapes (also they use these to generate their biped and quadraped characters)

Getting into gamedev is tough... doing it as a hobby takes time and research.  But your biggest step is getting into C++ and OpenGL which Nehe is the best tutorial site that almost all of us started from.  :-)

If you have any more questions don't hesitate to ask!

Good Luck,
Aqua
0
 
LVL 1

Expert Comment

by:lplayer
ID: 16840256
An excellent place to start, which not only covers programming but also some of the game theory and mathmatics needed:

http://www-cs-students.stanford.edu/~amitp/gameprog.html

Look no further as thi slinks answers all your questions.

Les
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
LVL 18

Expert Comment

by:Jose Parrot
ID: 16856509
Hi Jordanthai,

Game programming is one of the most challenger areas. On need to love games, for first. Must have a solid language knowledge, in general C++. Most tools ara OpenGL stuff, so I agree with the hint on NeHe, a very good suggestion. But, even the programmer must have a 3D mindm that is, must be capable of thing in 3D.

Others are devoted to post production, so more interested in effects. Things like lights, shadows, fog, smog. Others like the physics, by focusing on explosions, collision detection, gravity simulation.

Others have focus on algorithms for LOD (level of detail) a real difficult field.

Others do preffer solve problems on skins, textures, reality.

Dou you have already a special area of interest?

Jose
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 16856892
jordanthai,

I guess I should further clarify my explination aside from basic Nehe link.  To get started in your C++ and OpenGL knowledge Nehe is the place to be but to start getting deeper into the fray of game development you need to start looking into the following areas:

3D Geometry with lots of Trig including Matrix mutations of 3D objects.
-Game Development works in 3D space in a Euclidean Plane with X,Y,Z coordinates.  You will need to start out simple more than likely looking at 2D matrix transformations then moving to more complex 3D matrix mutations of 3D objects.  These are heavily based on trig. identities and simplifications of more complex trig functions to further your optimization of code.  (As calculating deforming bodies, collision detection, particle engines, gravity, and sound etc take a lot of processing time so code optimization is key)

3D space understanding
-You must understand how things work in 3D space, since you are constantly dealing with 3D objects and 3D coordinates it helps if you have a slight background in engineering or drafting in a program like AutoCAD to get the full understanding of 3D space working.  Some people can visualize this very quickly and others have to work at it.  So your understanding of 3D space is essential for any fluent game programmer.

Your tool kits workings:
Most tool kits used are in either OpenGL or DirectX so knowing how the pipeline works in both development kits is a must.  You can pick to specialize in either or.. (I for instance specialize in OpenGL and know only enough to get me by in DirectX.. which is the more Microsoft oriented development kit where OpenGL is universally accepted)
The OpenGL pipe works backwards so you have to study up on this to understand prerendering, animation, movement, collision, event capturing and post rendering.  This will allow you to more fluidly code your applications without worry of thinking.. did this happen first before that or did this happen first?

C++:
Any game at the moment if 3D computationally complex is in C++... Sure Java is working on JOGL and VB has some nice things for 2D windowed applications but for actually designing intense 3D renders C++ with imbedded assembly procedures is a absolute MUST... So first bone up on your C++ then on your x86 Assembler to further optimize your code.

Then you can start your brancing as Jose has specified.  If you are wanting to tackle all of this yourself you will need to understand physics and animation.  Even your lighting as Jose talked about is still based in the relm of Physics and lighting.  Thus why I always reccomend any prospective game developer to get their feet wet in the realm of physics.

Moving into explosions and fog.. these are things frequently coded with Particle engines or prerendered animation cycles, aka, if you have an explosion you can prerender the frames in 3D space so you don't have to on the fly compile these steps.  However fog is done a variety of ways.. the particle engine being the most realistic and other fog variations being fairly fake and odd looking in real time renderings in simulation with light.  However to run particle based fog and interaction with lighting you need one heck of a computer and graphics card to manage the complex calculations needed to be done.

Another great area that is IMHO the most fun is fluidic state simulations, which enters an entirely new relm of simulation.  This has only really started to make new leaps and bounds in the past few years but documentation on this area is vast.. Google Search will quickly become your friend unless perhaps you have loads of time and points here on EE to ask a million questions.  (I personally wouldn't mind the boost in activity here in the Game Dev. Topic Area)

Another big things is texturing... the LoD Jose spoke of... There are complex functions for swapping texture levels and omission of rendering to simplify your rendering process... the textures you want to use close up are preloaded at the initial run time, aka.. it reads in the texture files before you ever start to play the game.  Then you can on the fly swap between complex textures that are larger files and light textures which are smaller files further optimizing your game play.  BIG area of study if you really want to dig deep into it.  You can look at this in the issue of.. you can't see details of cities and coast lines of earth from space but the closer you get to the earths surface the more details that you can see... this is the same approach done in game development to lighten the processors work load.

The algorithm focus is essential for any area of game development, you can't just write a game without efficient code... doing so will cause games to crash, lag, and memory leaks.

The areas of study go on and on from sound distortion, loudness to more areas of complex bounding, deforming bodies, collision detection and various strategies for each depending on what you intend to accomplish there in.

The field of study is HUGE, but your first beginning steps is to bone up on your C++ and begin to understand the inner-workings of OpenGL or DirectX (whichever poison you choose).  After that you can begin looking into more complex fields of focus like collision detection, particle engines, complex texturing, lighting, fog effects, precompiled objects, prerendered objects, billboarding, sound, etc.. I could write twice as much as I have already just explaining the different areas of focus that go into even the simplest of games.

My suggestion for you is to begin with writing a tetris game in OpenGL... the logic is fairly simple as are the animations, once you can get this 2D idea down you can move into further more complex ideas like a very simple FPS game.  ((Another thing you will need to look at when moving into a 3D enviroment is figuring out where your mouse is pointing and interpriting that into your 3D world... your mouse coord's are in 2D and you have to figure a line from your line of sight to the mouse point and then determine intersection from the 2D display coord to the 3D mouse intersection coord on click events and mouse move... Not a simple task.. but there are many versions of code to do this so you won't have to write one from scratch without help.. :-)    )

If you have any further questions on something I've said or something I have yet to bring up please ask.. but this should be all you need to know regarding getting started.. getting into advanced game development is a different question entirely.

Good Luck!

~Aqua~
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 16856901
((jordanthai -- You might want to consider making this a 500 point question... this isn't really a light question... it's a huge question with lots of different areas to explain and cover... just a suggestion from one of your Experts.. :-)  ))
0
 
LVL 8

Assisted Solution

by:Autogard
Autogard earned 100 total points
ID: 16865088
I think I am much like you in that I always wanted to try my hand at making computer games, but I didn't know where to start.

You should give pygame (http://www.pygame.org) a look.  It uses python and doesn't take much to get started for creating anywhere from simple games to more complex 3D games.
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 16865279
pygame using python won't get you into anything truly new and innovative with complexity.. I've looked at it and it's efficiency is too low due to it being too high level of a language to generate complex code interfacing with the CPU... However for someone starting out it wouldn't hurt becuase most people that start into learning game dev. never advance much beyond simple 3D primitives and simple animation and very simple collision detection if even that far...

But if you are truly serious OpenGL and C++ is your only way to go.

~Aqua
0
 
LVL 8

Expert Comment

by:Autogard
ID: 16865780
Well the question was "Where Do I Start" ;) and I think pygame is a great place to start out without having to get into beefy OpenGL and C++ programs.  Pygame also can do GL stuff.  But no, I haven't done any benchmarking on the efficiency.
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 16894517
But OpenGL and C++ are beefy for a reason!  *winks*  Maybe because they are the uhhh... BEST?  Or the industry standard for all things... :-P

But yea.. to get your feet wet pygame will do it... in comparison of capabilities it sucks but.. it'll do it... then again if you wanna make pixies jump and not really accomplish much you could always use ALICE too... :-P

~Aqua

Sorry Autogard... I just cannot bring myself to send an aspiring game dev down the path of pure evil itself....
0
 
LVL 8

Expert Comment

by:Autogard
ID: 16894628
Well now, aqua9880 I think  you just opened a new door of exciting possibilities -- ALICE!  :)  Let's have a quote from their website (http://www.alice.org/whatIsAlice.htm):

"Learning to program a computer is hard.
Alice makes learning to program easier. And it's fun.
Alice makes programming more accessible to girls as well as boys."

and

"Sociological barriers are far more complex.  Alice addresses the specific needs of the subpopulation of middle school girls.  By supporting storytelling, an intrinsically motivating activity for middle school girls, Alice will make programming a means to an exciting end."

Haha.  Sorry, I had to share that; it just made me laugh!

OK, ok I'm done now -- I'll get off "the path of pure evil itself".  :)
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 16895060
Have you bothered to look at that attrocity to programming as we know it?  My university is switching that to their introductory level language, for AN ENTIRE SEMESTER!

A 2 year old could do stuff in ALICE, it takes no thought, no brain power... it takes away the slight Status that we have remaining as programmers with 4GL Languages and things like ALICE comming out of the wood work.  I don't know about most but I take pride in understanding complex logic and being able to switch between ASM and binary / Hex...  This ALICE stuff and to a lesser extent pygame are slowing leeching the little remaining benefits of being a code monkey.. and making us all look like business majors...

*shivers*

The day a business major says "Hey look I wrote this program!" and does it for a living.. I'm calling Kvorkian.

~Aqua
0
 
LVL 8

Expert Comment

by:Autogard
ID: 16895087
(I hope you noted the sarcasm in my last post)  :)

Your UNIVERSITY is doing that?  Seriously?  I mean, I can see about maybe using it in a middle school or something -- maybe an entry-level high-school class -- but university?

*shivers*
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 16895147
All of the big state universities are considering it...

When some of the professors approached me about it I said it was the worst thing they could do for the credibility of their degree... but they are doing it anyway.

People think it'll increase female enrolement and over all enrolement in the computer science degree... but I pointed out if they enrol in a class using ALICE and expect it to be that easy through the entire degree.. all they are going to do is accomplish a higher drop out rate from the computer science program... and I thought 70% was bad... wait until the new ALICE recruits get to Calc 2 or Discrete Mathematics...  *laughs*  ...God forbid when they get into Assembly or Compiler design...  If they can even make it past the intro math run.

Bah....

Idiots I say... Idiots!

~Aqua
0
 
LVL 1

Assisted Solution

by:gregtampa
gregtampa earned 100 total points
ID: 16974011
it all boils down to the basic programming language ( one of the easist ones) and a nice little program to help you do it. :) try http://darkbasic.thegamecreators.com/ they have a free 30 day full demo program with alot of tutorials and expample games for you to play with. I started here and so should you! I'm glad someone else is interested in game development. I now own my own gamming company, elf taught, but it all started at darkbasic. check it out and i hope this will solve your question! Best of luck.
0
 
LVL 1

Assisted Solution

by:putaNerd
putaNerd earned 100 total points
ID: 17049388
Just bite the bullet and learn openGL with C++.
Why?? Because openGL hardware support is in every video card, making it the best way to get flashy "realtime" graphics.
C++ has been around awhile in some form or another, most of these other THINGS are just an anomily and probably won't last - I spent a heap of time learning to program in PASCAL, what a waste of time that was - should've been learning C. I also spent a heap of time learning JAVA (an anomily that actually adds value to the community) but JAVA is not designed for your intended application.


C++ isn't that hard with the right tutorial, and personally I think that openGL is pretty simple to use. Check out neHE tutorials - you can't lose.


J.
0
 
LVL 1

Expert Comment

by:mahdiparak
ID: 17064521
http://gamedev.net

good way for start
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 17228348
putaNerd {http:#17049388}
--Repeated Information

irwinpks {http:#16825332}
--A lycos search?!

Neither of these two should get points for this.. come on.  Repost information for putaNerd and irwinpks just posted the URL to a lyco's search... If they get split points for this question what is EE comming to?!  I'd rather have my comments deleted from this question than share points with posts that have no value and honestly have no value as assists either.

~Aqua
0
 
LVL 20

Expert Comment

by:Venabili
ID: 17228395
Repeated from where?!?!? From above? Nope.. it is just one more point of view which says the same things. This a question for opinions....
I would agree for the search from irwinpks though :) Sorry - wrong click on this
0
 
LVL 20

Expert Comment

by:Venabili
ID: 17228408
And do not start on where EE goes to -- this type of questions shows now and then and everyone that had given advice gets points. Because this is not really a technical question - but more gathering opinions for a start. Agree? :)
0
 
LVL 30

Expert Comment

by:Irwin Santos
ID: 17228467
@Aqua9880.... Well, the question was an opinion type of question...and from ground 0, I gave the individual  a wealth of information, even if it is a link to a search.  Most information starts that way.  The asker in his/her own admittance, declares they are at the "basic" level.  Frankly without further input, it just breaks my contention in the mind reading department ;-)
0
 
LVL 20

Expert Comment

by:Venabili
ID: 17228729
Nope. Links to searches especially that common does NOT mean points. Maybe next time you will ask for points for google search link? Let's get serious.
0
 
LVL 30

Expert Comment

by:Irwin Santos
ID: 17228913
The asker stated in the question " very basic game maybe or something anything would help thanx"...

The serious part about this is that the question is wide open to interpretation... As a programmer myself I suggest forward vision and see what is out there. The scope has NOT been defined, and throwing links that are specific to a particular language or skillset is FRUITLESS without first determining what the asker has a passion for.

The keyword is "ANYTHING", and that can be any or all of the comments listed in this question. In all due fairness, either a share of the pot, or PAQ NO REFUND as the asker didn't maintain his/her question.
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 17234473
Anyone can go to Lycos or Google... If you don't have anything to input from your own knowledge then don't bother posting.  

You want to give a brief run down of languages?  Then do it.. you want to put your spin on what languages have strengths?  Go for it... but do NOT come into game dev posting a link to a google search!  The least you could have done to even remotely have a potential to get points from a PE like Ven is post a prior link to another Where Do I Start.. and I don't even think that right unless you took part in that EE link.

As as to the oppinion regarding putaNerd -- He summarized things that I had said multiple times already in my above posts regarding C++ being the industry standard and looking a nehe tutorials and OpenGL..  Worded slightly different but the content is exactly the same.... but I'll leave that one to your discression Ven.. my main gripe was with the points for a Lycos search...  putaNerd was more or less just a overall complaint about people reposting information that's already been supplied.

Anywho...

:-)

It's good to be back and nice to see you again Ven.  :-)

~Aqua
0
 
LVL 30

Expert Comment

by:Irwin Santos
ID: 17235352
@aqua9880..."If you don't have anything to input from your own knowledge then don't bother posting."...

Certainly RUDE of you to say that...who do you think you are??  I've been writing code before YOU were born.

Hangman
http://www.ctrlaltdel-usa.net/yabb_2_1_superman/YaBB.pl?num=1141862971

...and that game you see on the Nokia phones??

Surround
http://www.ctrlaltdel-usa.net/yabb_2_1_superman/YaBB.pl?num=1154537683

Should that Lycos search not satisfy you, then this code will.  Frankly, THIS comment should be the ACCEPTED answer. The asker requested a starting point.  Both GAME programs are written in TRS-BASIC 2.0.  Simple calls to draw and turn a point(s) or display text content. No rocket science involved..however, the true test is if jordanthai can look at the code and understand what is going on.  Programming is an analytic skill, throwing various computer languages in his/her direction only compounds and confuses the requestor without first identifying the state of the asker.





-----------------------
hi i was woundering if anyone could help me all my life ive wanted to know how to make a computer game and i one day make my own game.
my skills are very very basic if any one could help me and tell me how to start and where to start so i could maybe start programing a ver very basic game maybe or something anything would help thanx :P
-----------------------------------------
0
 
LVL 30

Expert Comment

by:Irwin Santos
ID: 17235406
Should jordanthai find my recent comment enlightening, then exploration of the FIRST comment...my comment would be the next direction.  It's apparent that he/she needs to get their feet wet, and be exposed to whatever else is out there. The sub comments provided by everyone else will fall in order, should a focal point beyond the BASIC code be realized, that would be the path to follow.

If any of you are reading too deep into this and think that my code is THE code...it is surely not...it is an example of what coding can be, and slightly modified, will work on an PC platform.
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 17237044
irwinpks:

I never said you lacked the knowledge to make a good post... I just stated that if you are not going to bother putting any form of explination or further advice aside from a simple search engine link then don't bother posting it.  

I never made any assumption that you were incapable of making a clear suggestion or put your own advice in this thread but you put no effort forth in answering this question!  Posting the results of:

http://search.lycos.com/default.asp?loc=searchbox&tab=web&query=game+programming+tutorial

Takes no talent, knowledge, and does not help the user past what they can do themselves without being a member of EE.. paid or not.

It might have been rude to point out you posted a link of a lycos query which is something a 4 year old can do now a days.. but it is rude of you to assume I made any form of assumption about your intelligence.

However if you would truly like to get into a pissing contest...   so be it over achievements or knowledge base... I'd be more than willing to scrap....  my contact information is in my profile here on EE...

Hope to hear from you if your interested in some intellectual competition... however for information here on EE... put something worthwhile in Answering the Question or don't post at all.

~Aqua

PS:  If you would like to continue this disput move it into Community Support or e-mail this conversation does not need to clutter up this Thread any further than it already has.
0
 
LVL 30

Expert Comment

by:Irwin Santos
ID: 17237207
@aqua9880..."I just stated that if you are not going to bother putting any form of explination or further advice aside from a simple search engine link then don't bother posting it."

Nothing wrong about asking the patient where they are at or stating a place to start (in fact that is what they were asking)...Before you offer them your diagnosis, perhaps you want to find out what the true problem is. That's what's wrong here.. applying a fix to the symptom, rather than the problem.

let me refer you to this...
http://www.experts-exchange.com/help.jsp#hi64

For you to even think about starting something that YOU cannot win...why bother?  Why make yourself suffer in anguish on a measely 125 points.. I make that in a heartbeat.  I consider you a THREAT to the Expert population at EE, and perhaps you should re-evaluate your statement...that you posted IN WRITING.  To continue this debate is fruitless and will serve no purpose other than wasting my time or causing you grief.  I rather be out there helping people in the OTHER 84 topic areas that you are NOT in.
0
 
LVL 30

Expert Comment

by:Irwin Santos
ID: 17237294
@aqua9880..."put something worthwhile in Answering the Question or don't post at all."

To conclude, 3 comments ago, I posted something worthwhile in addition to my first post...and THAT will stop and correct you in your tracks.
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 17382370
I will leave the following recommendation for this question in the Cleanup topic area:
   Split: irwinpks {http:#16825332} & aqua9880 {http:#16832873} & Autogard {http:#16865088} & gregtampa {http:#16974011} & putaNerd {http:#17049388}


??

putaNerd is no longer in the split and a few new people managed their way into it.  The prior reccomendation held more value Ven.  

~Aqua
0
 
LVL 20

Expert Comment

by:Venabili
ID: 17382407
The problem here are the points. There are not enough to get everyone in the split - this is what I would do basically. And now I simply got the first 6.. that's all

Split: irwinpks {http:#16825332} & aqua9880 {http:#16832873} & Autogard {http:#16865088} & gregtampa {http:#16974011} & putaNerd {http:#17049388}
 still sounds better though. Sorry :)
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 17382459
Thanx Ven..  :-)
0
 
LVL 1

Expert Comment

by:putaNerd
ID: 17398130
Ladies and Gents,
Since the small qty of points at stake here you can exclude me from points consideration if you prefer. I do this for fun more than anything else.
Aqua - Grow up. You dribbled so much crap in this post it is embarrassing for us all.


putaNerd



0
 
LVL 8

Expert Comment

by:Autogard
ID: 17398242
Let's all get our 5 points a piece and put this question to rest.  :)
0
 
LVL 10

Expert Comment

by:Andrew Beers
ID: 17401304
puta... <^>(o.~)>  

You could stand to learn a lot from me, so shove off.

"dribbled so much crap"  and embarrassing?  

putaNerd
Login Name  
-
2936
Expert Points  

Hmmmm... need I say more?

0

Featured Post

Prep for the ITIL® Foundation Certification Exam

December’s Course of the Month is now available! Enroll to learn ITIL® Foundation best practices for delivering IT services effectively and efficiently.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Recently, in one of the tech-blogs I usually read, I saw a post about the best-selling video games through history. The first place in the list is for the classic, extremely addictive Tetris. Well, a long time ago, in a galaxy far far away, I was…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
Despite its rising prevalence in the business world, "the cloud" is still misunderstood. Some companies still believe common misconceptions about lack of security in cloud solutions and many misuses of cloud storage options still occur every day. …
Look below the covers at a subform control , and the form that is inside it. Explore properties and see how easy it is to aggregate, get statistics, and synchronize results for your data. A Microsoft Access subform is used to show relevant calcul…
Suggested Courses
Course of the Month19 days, 13 hours left to enroll

873 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question