Discouraging
I''m a newbie at game programming (ok, if you''re already thinking of shit to pop off with about me being a newbie and not knowing what I''m talking about, go away) and I read up on various programming techniques, data structures, etc, and I''m reading TOTWGPG. I already have almost every part of my game idea layed out on paper and they just need a little more detailed implementation (I also read on game structure, and all of the various crap you need in the things). Now, before I was confident that I could get a good working game together that people would like to play. After reading a couple posts saying that you had to study and research on in-depth programming bs for long periods of time started to discourage me and really get on my nerves. Also, optimization and figuring out various techniques of game programming are annoying to go look up, try to get working, and all of that when all I''m trying to do is make a good working game. I at least want to have something working and looking good before I give myself a couple headaches and nervous breakdowns with getting all of the optimization and coding techniques implemented. From what I''ve been reading from different posts, I''m supposed to do the opposite and end up burning myself out on game programming and give a blood curdling scream anytime someone says anything about games or programming. I want to know what I should learn first (from someone that is not part of the newbie Nazis and wish to turn us into zombies from all of this overkill implementation) and then progress on to. Also, I want to know how some other people got started with game programming without going insane.
- Thanx
Slayer-X
Books. No matter what they say, buy programming books.
Congradulations! Most amatuers skip that step.
quote: I already have almost every part of my game idea layed out on paper
Congradulations! Most amatuers skip that step.
Not saying that I am beyond "Newbie Nazism" but from what I read you already seem to know the basics. "Get it working then improve upon it!"
I will say, that from the posts you see, you will see that you can improve upon you current design.
My point is this; take what you read with a grain of salt, and only improve what you See needs to be improved and otherwise, continue on the track you''re on. Only you can see what needs improved with your project.
So, best wishes and good luck.
Regards,
Jumpster
I will say, that from the posts you see, you will see that you can improve upon you current design.
My point is this; take what you read with a grain of salt, and only improve what you See needs to be improved and otherwise, continue on the track you''re on. Only you can see what needs improved with your project.
So, best wishes and good luck.
Regards,
Jumpster
Regards,JumpsterSemper Fi
Unless you''re trying to create a cutting edge game that needs to exploit every last bit of processing power, code optimization is very low priority.
Ignore my bias and any one else''s, and decide what language you want to use. I like C++, many like C, and you _can use VB if you really realy want to ;p
95% of time 5% of code gets called, that 5% is the stuff that needs to be fast. If you want to create a RTS, or a mmorpg, or a FPS, you can''t use inefficent code all over the place but all of it doesn''t need rocket power.
I''ve started over a couple of times, and each time it takes much less time to get back to where I was. If this is your first attempt the same may happen to you too, so don''t get too discouraged if you realize your code is crap, and you need to start afresh.
Make milestones and try to focus on one task at a time.
Let''s get a window on the screen.
a triangle, a chair, make the chair spin.
Lets walk around the chiar with the arrow keys
Lets add a chat box, and a couple of sockets, send & receive chat packets
Send position updates
Put a chiar on the screen for each person chatting... (I wish out modeling people would produce a person already!)
Move the chairs around with position updates
Play the footstep sound effect as you walk.
Start playing the intro .midi as you login...
and it should become easier and easier to add more stuff. If it''s getting harder, somethings wrong
Ignore my bias and any one else''s, and decide what language you want to use. I like C++, many like C, and you _can use VB if you really realy want to ;p
95% of time 5% of code gets called, that 5% is the stuff that needs to be fast. If you want to create a RTS, or a mmorpg, or a FPS, you can''t use inefficent code all over the place but all of it doesn''t need rocket power.
I''ve started over a couple of times, and each time it takes much less time to get back to where I was. If this is your first attempt the same may happen to you too, so don''t get too discouraged if you realize your code is crap, and you need to start afresh.
Make milestones and try to focus on one task at a time.
Let''s get a window on the screen.
a triangle, a chair, make the chair spin.
Lets walk around the chiar with the arrow keys
Lets add a chat box, and a couple of sockets, send & receive chat packets
Send position updates
Put a chiar on the screen for each person chatting... (I wish out modeling people would produce a person already!)
Move the chairs around with position updates
Play the footstep sound effect as you walk.
Start playing the intro .midi as you login...
and it should become easier and easier to add more stuff. If it''s getting harder, somethings wrong
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
I''ve been programming in C/C++ for about 13 years (I''m 27 now). I haven''t worked directly in the games industry, though its been an ongoing hobby for quite some time. My experience in this regard includes the first OpenGL API driver for the Genesis3D engine (from Eclipse), programming a once-quite-popular online text MUD (called Exodus), and programming the GXMOD tourney mod for Quake2. So, I''m not quite a newbie, but not quite a game industry veteran either.
Many of the most well remembered games aren''t feats of coding optimization from jolt-drunk freaks. Look at Tetris, Lemmings, Worms, etc -- none of them were very taxing games on computers even when they were first released. Its far more important that your game is FUN rather than extremely well programmed.
This is not to say good programming practice is worthless, but it
comes from experience. While I advocate reading up on what everyone else is doing in terms of programming, and learning at least the basics of different philosophies and process methods of coding (Object Orientation, some amount of Design Patterns exposure, looking at things like Xtreme Programming, etc) nothing is quite like actual experience.
My advice is to just build the game you want to build. Build it in whichever language using whatever tools you feel most comfortable with right now. Don''t listen to the people who make silly claims about how ''real games'' are all written in 100% fully optimized assembly language, etc.
Work at building the game until it functions the way you want it to function. If its too slow at that point, then use that as an opportunity to learn some optimization techniques. Its much easier to grasp onto these techniques when you see how they will directly improve code that you''ve already written... It turns optimizations into a real tool as opposed to some abstract ideal. Also, it is important to remember that detailed optimizations should ONLY EVER BE MADE when you have code that works anyway! To paraphase Knuth, premature optimization is the root of all evil! Higher level algorithming optimizations are nice to have within your design & code, but its asking way too much for someone to understand what works and doesnt work in this regard on their first project. You WILL make mistakes. This is fine. Mistakes are the Path To Learning.
On a similar note, don''t be afraid to throw away your code!! Even after many many years of coding, I still look back on code I wrote 6 months to 1 year ago and wonder what kind of a total loser I was, simply because I (and hopefully most programmers) am still continually evolving, picking up new ideas and incorporating new knowledge into projects.
In slightly more concrete terms, I''d suggest that you might try working on an existing project, rather than starting from scratch. Making even a simple game truly from scratch can be a lot of hard work, with many hours of programming before you even get a simple sprite animating on the screen. Take advantage of some existing technologies and source code where you can to save yourself having to learn everything all at once. Game mods are great for this (making a mod for Quake3, HalfLife, Unreal Tournament, etc..). You have a great engine to start from, and get to work on code with nearly immediate results for simple changes. From here you can get more and more complex until you''ve built almost an entirely different game, should that suit you.
There''s also Open Source. You can download many older game engines (such as Quake, Doom, etc) and even newer original stuff (including 2D, not just 3D) from the net. Often with the full source code. Using these as a starting point, you can take a path similar to mod coding mentioned above, with the added benefit that you have far more freedom in terms of how you can change the game. Note: You should make yourself aware of the different licensing issues when taking the Open Source route -- some of these engines allow you to create your own game for any purpose you wish..Some have restrictions on distributing the binary (for free or commercially) without also distributing your own changes to the code.... You can find out a lot about these projects (and to some degree, the license issues) at www.sourceforge.com, a hosting site for many Open Source projects (including, but not limited to, games).
If neither of these options are for you, you might at least consider using some of the many wrapper APIs that exist around lower-level APIs, making them easier to use. Again, this is primarly to avoid having you get lost in all the little details that go into a game.
A lot of game programmers have a bad attitude in terms of using existing technology. This is kind of a silly attitude. Games like Deus Ex (Yeah, I know, Ion Storm -- but its a good game...Warren Spector is no John Romero, or maybe reverse that.) prove you can build really great, fun games on existing technology without seeming like a ''me too'' game.
Ok, well in brief (heh heh) that''s some of my advice.
Many of the most well remembered games aren''t feats of coding optimization from jolt-drunk freaks. Look at Tetris, Lemmings, Worms, etc -- none of them were very taxing games on computers even when they were first released. Its far more important that your game is FUN rather than extremely well programmed.
This is not to say good programming practice is worthless, but it
comes from experience. While I advocate reading up on what everyone else is doing in terms of programming, and learning at least the basics of different philosophies and process methods of coding (Object Orientation, some amount of Design Patterns exposure, looking at things like Xtreme Programming, etc) nothing is quite like actual experience.
My advice is to just build the game you want to build. Build it in whichever language using whatever tools you feel most comfortable with right now. Don''t listen to the people who make silly claims about how ''real games'' are all written in 100% fully optimized assembly language, etc.
Work at building the game until it functions the way you want it to function. If its too slow at that point, then use that as an opportunity to learn some optimization techniques. Its much easier to grasp onto these techniques when you see how they will directly improve code that you''ve already written... It turns optimizations into a real tool as opposed to some abstract ideal. Also, it is important to remember that detailed optimizations should ONLY EVER BE MADE when you have code that works anyway! To paraphase Knuth, premature optimization is the root of all evil! Higher level algorithming optimizations are nice to have within your design & code, but its asking way too much for someone to understand what works and doesnt work in this regard on their first project. You WILL make mistakes. This is fine. Mistakes are the Path To Learning.
On a similar note, don''t be afraid to throw away your code!! Even after many many years of coding, I still look back on code I wrote 6 months to 1 year ago and wonder what kind of a total loser I was, simply because I (and hopefully most programmers) am still continually evolving, picking up new ideas and incorporating new knowledge into projects.
In slightly more concrete terms, I''d suggest that you might try working on an existing project, rather than starting from scratch. Making even a simple game truly from scratch can be a lot of hard work, with many hours of programming before you even get a simple sprite animating on the screen. Take advantage of some existing technologies and source code where you can to save yourself having to learn everything all at once. Game mods are great for this (making a mod for Quake3, HalfLife, Unreal Tournament, etc..). You have a great engine to start from, and get to work on code with nearly immediate results for simple changes. From here you can get more and more complex until you''ve built almost an entirely different game, should that suit you.
There''s also Open Source. You can download many older game engines (such as Quake, Doom, etc) and even newer original stuff (including 2D, not just 3D) from the net. Often with the full source code. Using these as a starting point, you can take a path similar to mod coding mentioned above, with the added benefit that you have far more freedom in terms of how you can change the game. Note: You should make yourself aware of the different licensing issues when taking the Open Source route -- some of these engines allow you to create your own game for any purpose you wish..Some have restrictions on distributing the binary (for free or commercially) without also distributing your own changes to the code.... You can find out a lot about these projects (and to some degree, the license issues) at www.sourceforge.com, a hosting site for many Open Source projects (including, but not limited to, games).
If neither of these options are for you, you might at least consider using some of the many wrapper APIs that exist around lower-level APIs, making them easier to use. Again, this is primarly to avoid having you get lost in all the little details that go into a game.
A lot of game programmers have a bad attitude in terms of using existing technology. This is kind of a silly attitude. Games like Deus Ex (Yeah, I know, Ion Storm -- but its a good game...Warren Spector is no John Romero, or maybe reverse that.) prove you can build really great, fun games on existing technology without seeming like a ''me too'' game.
Ok, well in brief (heh heh) that''s some of my advice.
Very good suggestions I just like to add that programming gets easier as time goes by. It''s like learning a second language. Very confusing and daunting at first but if taken in small doses it can be managed. For me english is a second language so I can tell you from my experience. You''ll be amazed what you can do with just a few function calls like implement the whole bsp tree if using recursive methods. So don''t despair and don''t get burned up. All my programs are unoptimized but hey they work When you''ll get on a programming level of John Carmack then you''ll handle optimizations with ease because at that point your brain is expanded and can think/take in info and work with it better than with the brain you have now Of course mine does the same I''m able to read and comprehend complex topics which my brain couldn''t just a few months ago, so keep at it it will come.
P.S. Don''t people realize that brain can adapt and process info better as you spend more and more time on programming??? I love my brain
P.S. Don''t people realize that brain can adapt and process info better as you spend more and more time on programming??? I love my brain
Do exactly what you want to do. Make the game, start programming. You''ll come across many problems which need answers. You''ll find the answers and learn.
cmaker- I do not make clones.
nice post gmcbay,
my advice for a newbie would be take an already SIMPLE program eg one of the crappy ones on my site and just experiment with it, change the gravity so balls bounce higher, add a new lvl or monster etc
this way you''re hopefully it''ll be fun at the same time that u learn.
but post of all remember the golden rule
"Premature optimization is the root of all evil" (Donald Knuth).
http://members.xoom.com/myBollux
my advice for a newbie would be take an already SIMPLE program eg one of the crappy ones on my site and just experiment with it, change the gravity so balls bounce higher, add a new lvl or monster etc
this way you''re hopefully it''ll be fun at the same time that u learn.
but post of all remember the golden rule
"Premature optimization is the root of all evil" (Donald Knuth).
http://members.xoom.com/myBollux
About the newbie thing, we all have to start somewhere . I remember my first program, I really need to get that code, it is something only a C++ programmer would laugh at. But I admit, I laughed at my own code when I looked back at it =P
Null and Void
At least I don't know COBOL...
http://www.crosswinds.net/~druidgames/
Null and Void
At least I don't know COBOL...
http://www.crosswinds.net/~druidgames/
I''m a little less newbie than most of you are thinking, so I guess I''ll clarify a bit. I''ve already made a simple pong game, and plenty of test programs (text based, not graphics tests, just tests for different functions, and various things like that). I understand the physics and all of that, I know how to make a game (not a professional quality one, but I know how to make a pretty good one) and all I need to do is get the right code down. That''s the annoying part to me, I understand the rest pretty well. If you need any more clarification, let me know.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement