Sign in to follow this  
Morzorr

Where to start, game-programming wise..

Recommended Posts

Ok, so I've been studying some C++ thanks to C++ Primer 5th edition, and I'm comfortable with my knowledge on C++ to begin the ventuer into game design. Problem is, I have no idea where to start.

Wheres the best place to start then everyone? Best books to work through (assuming I have 0 knowledge on game creation, but comfortable knowledge on c++), best engines to work with, 2d, 3d or text? I hame no frame to begin this learning journey and am in desperate need of some guidance. I have alot of ideas but its going to take alot of work to get to the technical level required before I even think of development or implementation etc.

Like I say, not bothered about any finishes, just the start! If you could run me from start to finish, that'd be fantastic ;) but I'll settle for any help I can get at the minute. Thanks very much.

PS, on a more random note, the method of learning I was thinking about was a learn-as-you-go-right-in-the-deep-end approach and go straight into 3d programming and grind it out there, right from the bottom. Is this a sensible approach? If it is, what engines should I use etc?

HELP!

Share this post


Link to post
Share on other sites
This is a pretty decent game engine, not really good for 3D MMO's (still looking for one of those) but it might be good for beginners such as yourself. :cool:

http://www.yoyogames.com/gamemaker/windows

Share this post


Link to post
Share on other sites
[quote name='Morzor' timestamp='1311016620' post='4836966']
Ok, so I've been studying some C++ thanks to C++ Primer 5th edition, and I'm comfortable with my knowledge on C++ to begin the ventuer into game design. Problem is, I have no idea where to start.

Wheres the best place to start then everyone? Best books to work through (assuming I have 0 knowledge on game creation, but comfortable knowledge on c++), best engines to work with, 2d, 3d or text? I hame no frame to begin this learning journey and am in desperate need of some guidance. I have alot of ideas but its going to take alot of work to get to the technical level required before I even think of development or implementation etc.

Like I say, not bothered about any finishes, just the start! If you could run me from start to finish, that'd be fantastic ;) but I'll settle for any help I can get at the minute. Thanks very much.

PS, on a more random note, the method of learning I was thinking about was a learn-as-you-go-right-in-the-deep-end approach and go straight into 3d programming and grind it out there, right from the bottom. Is this a sensible approach? If it is, what engines should I use etc?

HELP!
[/quote]

No, that is a very bad approach. The fact that youre planning to use C++ is already enough of a hurdle youll need to overcome. Going into 3d right away is a sure fire way to fail. If you want to stick with C++, there are some options. SDL/SFML are good libraries to get you going, also Allegro is really good from what Ive heard. Make some simple, SIMPLE games. Even starting with a text based adventure would benefit you, alot of the ideas there are carried into games with graphics. What is your ultimate goal? Are you interested in doing this from a programmers perspective? Or would you rather just eliminate as much as possible and focus on design aspects? If your more of the design type, it might be a good idea to grab something like GameMaker and forget C++. If you actually feel like you want to learn the inner workings and stuff, do what I said and start SMALL. Put it this way, if your only concern is to make finished, playable, flashy games, C++ is an awful idea. If you really want to learn engine stuff along the way, I would still say C++ is a bad idea :) but since you will be working at the engine level anyways, I guess its ok.

Share this post


Link to post
Share on other sites
[quote name='Morzor' timestamp='1311016620' post='4836966']
Where to start, game-programming wise.. Need some help. I'm so clueless.
[/quote]
Have you looked at this forum's FAQs yet? You had to scroll right past the link to read this.

Share this post


Link to post
Share on other sites
[quote name='Tom Sloper' timestamp='1311023604' post='4837034']
[quote name='Morzor' timestamp='1311016620' post='4836966']
Where to start, game-programming wise.. Need some help. I'm so clueless.
[/quote]
Have you looked at this forum's FAQs yet? You had to scroll right past the link to read this.
[/quote]


Yeah, mentioning beginning with python and was it c#? Ok, Tom, in your opinion, what is your approach to beginning game programming, the rough steps you took, or rather would advise to becomming a reputable game designer and programmer, language, libraries, engines, etc?

Share this post


Link to post
Share on other sites
[quote name='Morzor' timestamp='1311026124' post='4837057']
[quote name='Tom Sloper' timestamp='1311023604' post='4837034']
[quote name='Morzor' timestamp='1311016620' post='4836966']
Where to start, game-programming wise.. Need some help. I'm so clueless.
[/quote]
Have you looked at this forum's FAQs yet? You had to scroll right past the link to read this.
[/quote]


Yeah, mentioning beginning with python and was it c#? Ok, Tom, in your opinion, what is your approach to beginning game programming, the rough steps you took, or rather would advise to becomming a reputable game designer and programmer, language, libraries, engines, etc?
[/quote]

You still havent answered the main question. Do you want to be a PROGRAMMER? In the sense of writing game engine code, physics, AI, etc? Or do you want to take more of a design approach and do less technical stuff? This is an important question to answer, because it will dictate the best first steps.

I personally enjoy learning some low level stuuf. So I use Java/Slick library and also some C#/XNA. It allows me to learn a bunch but also be reasonably productive. If you want to learn some of the low level stuff. Some options are Java/Slick2D, C#/XNA, C++/SFML, Python/Pygame, etc.

If you care more about the finished product and want to focus on bringing together art, design, story telling, etc into a complete finished product within a reasonable amount of time, try something like Game Maker or Unity, or even modding existing games.

There is no RIGHT way to do it, it all depends on what drives YOU. Not what others have done. There are various layers at which you can choose to interact with game development... from doing it in assembly language, to using a fully featured authoring tool like Unity, and every layer in between. You need to know what you enjoy.

Share this post


Link to post
Share on other sites
[quote name='Morzor' timestamp='1311026124' post='4837057']Ok, Tom, in your opinion, what is your approach to beginning game programming, the rough steps you ... would advise to becomming a reputable game designer and programmer, language, libraries, engines, etc?
[/quote]
The approach described in the FAQs.

Share this post


Link to post
Share on other sites
[quote name='joeparrilla' timestamp='1311026399' post='4837059']
[quote name='Morzor' timestamp='1311026124' post='4837057']
[quote name='Tom Sloper' timestamp='1311023604' post='4837034']
[quote name='Morzor' timestamp='1311016620' post='4836966']
Where to start, game-programming wise.. Need some help. I'm so clueless.
[/quote]
Have you looked at this forum's FAQs yet? You had to scroll right past the link to read this.
[/quote]


Yeah, mentioning beginning with python and was it c#? Ok, Tom, in your opinion, what is your approach to beginning game programming, the rough steps you took, or rather would advise to becomming a reputable game designer and programmer, language, libraries, engines, etc?
[/quote]

You still havent answered the main question. Do you want to be a PROGRAMMER? In the sense of writing game engine code, physics, AI, etc? Or do you want to take more of a design approach and do less technical stuff? This is an important question to answer, because it will dictate the best first steps.

I personally enjoy learning some low level stuuf. So I use Java/Slick library and also some C#/XNA. It allows me to learn a bunch but also be reasonably productive. If you want to learn some of the low level stuff. Some options are Java/Slick2D, C#/XNA, C++/SFML, Python/Pygame, etc.

If you care more about the finished product and want to focus on bringing together art, design, story telling, etc into a complete finished product within a reasonable amount of time, try something like Game Maker or Unity, or even modding existing games.

There is no RIGHT way to do it, it all depends on what drives YOU. Not what others have done. There are various layers at which you can choose to interact with game development... from doing it in assembly language, to using a fully featured authoring tool like Unity, and every layer in between. You need to know what you enjoy.
[/quote]

Sorry Joe.

Well, I guess I want to be both? If I had to choose I want to be a programmer, but essentially, I want to be involved in every aspect of game creation. I want to make the games; engines, physics, AI, etc. all that stuff, which to me is priority, but in the end I want to use that to bring together a finished product.

Share this post


Link to post
Share on other sites
Thats fair, you sound like me :) Well theres something important you need to accept then, you cannot expect to be able to pump out finished games within a short time frame. You are also going to have to start small like I said. If you want to write the code yourself, something as simple as pong will provide a good challenge for you to begin with. You have to realize, if you were to make a pong game with a game creation software, the most difficult parts (collision logic, state transitions for menus) will *mostly* be done for you. Since you are doing it yourself, it will require more work and thought. I think its good that you want to do it from the ground up, but you need to understand the limitations of it, because if not you will be very disappointed. If you think that you will be able to start tomorrow, and have a minecraft clone done in a month, you are greatly mistaken. On the other hand, doing that in a tool like Unity, isnt so farfetched (I think a month is still kinda short though :) ).

So yeah, how much C++ do you really know? Honestly, unless you poured years into learning it, id say forget it. Pick something more friendly for now. Java, C#, Python, ActionScript, etc are all better choices. As a bare minimum, I suggest a decent library/game framework to put on top of the base langauge. From there, you can always add abstraction for things that you dont really care about. What I do is, I start with a simple graphics library (Slick2D), then as I am going, if I encounter something that I know can be done easily by using an existing API, and I dont really care about learning it myself, I just get the tool I need and move on. For instance in something Im working on now, I was attempting to create hacky GUIs using no GUI library, just mouse positions and all that. When I realized it was ridiculous and I couldnt give a crap about how that stuff is implemented in a GUI library, I went and got one, and it solved my dumb issues. So basically, learn what you want to learn. There is basically a tool for just about everything, its your choice whether or not you should use it, depending on how much you want to learn to do on your own

Share this post


Link to post
Share on other sites
Honestly, I would have asked the same as you. I recommend [url="directxtutorial.com"]DirectXTutorial.com[/url] alongside Introduction to 3D game programing with DirectX 10 by Frank D. Luna and Windows Programming 2008(I really have a book collection for programing, and theres to many to list and C++ Primer Plus 5th is one of my favorites(If you want me to I will)), most of which are game development books using DirectX). My opinion is that DirectX using C++ is the best way to go because it is definetly fast, and if you were to make a bigger game using DirectX 9(or other versions for future consoles) you could put it on consoles. Not that XNA can't do that but most major console games for Xbox 360 are writin in DirectX 9(Smaller and less graphicaly intense games use XNA). I honestly think that C++ is easy compared to Java and python, you just need to get used to it. Now to answer your questions Directly:

Wheres the best place to start then everyone? DirectXTutorial.com- It explanes alot, there might be some errors if you copy and paste due to some of the tutorials are for VC++ 2005, 2008, and 2010 but there easily spoted by someone good with C++.

Best books to work through (assuming I have 0 knowledge on game creation, but comfortable knowledge on c++)
Introduction to 3D game programing with DirectX 10 by Frank D. Luna and Windows Programming 2008- These books are to get you started, Read Windows Programming first, because it will help when you need to set up a window. The other book(long title :S) has a great in-depth math explanation and is in good detail.


Best engines to work with, 2d, 3d or text? - Start with small text games to get used to using OOP, but do not I MEAN DO NOT make it like PRESS ONE TO DO THIS. Make it more or less like Zork(From the book you've been reading a text game should be easy as that has lots of information for a console game). Then work up to using 2D with sprites and then eventually 3D with meshes.


Tips- When ever there is a thing in a book or a website, that says Do this using the information in this chaper or page, DO IT! And if you can't read it again and again till you can do the challange. Think you're better then you are. It's that simple, if you think of your self better then you really are you will strive to being better then you really are.(Doesn't make sense but point is make your self bigger then you accualy are.) And try hard!

Share this post


Link to post
Share on other sites
Thanks for the advice guys. Iv just downloaded introduction to c++ through game programming 3rd ed as i heard it had some fundamentals on game creation in relation to c++ and begins from the very bottom. Is this book worth the read?

Share this post


Link to post
Share on other sites
[quote name='Morzor' timestamp='1311084909' post='4837390']
Thanks for the advice guys. Iv just downloaded introduction to c++ through game programming 3rd ed as i heard it had some fundamentals on game creation in relation to c++ and begins from the very bottom. Is this book worth the read?
[/quote]

It is more for begining C++ but from a game prespective. It has alot of console things, I do not know about any Graphics though. Lots of fun console stuff, though. And great choice using C++, you won't regret it!

Share this post


Link to post
Share on other sites
If that book is sort of an intro to C++ through console game development... I highly recommend you try it. When I first started programming, something like 5 years ago... I had a book on learning python through game development. Every chapter introduced topics through small games. For instance, the chapter on Classes had you create a "critter caretaker" game, in which you could create a pet, feed it, and call various methods on it, which would cause it do write different things to the screen.

Honestly, if I had gotten some book that taught the topics in a more rigorous, mathematical way, Im not sure if I would have ever taken programming seriously. I think it is EXTREMELY important to see exciting and fun results right off the bat. The difficult more mind numbing stuff can always come later. Having fun will always move you along more quickly. Whenever I teach someone programming basics, I always use this approach. If I taught recursion to a new person by having them do a depth first search through a tree, I doubt they would be excited :)

Share this post


Link to post
Share on other sites
[url="http://www.amazon.com/Beginning-C-Through-Game-Programming/dp/1435457420/ref=sr_1_1?ie=UTF8&qid=1311098703&sr=8-1#_"]Critter Caretaker[/url] is in the book he bought, or downloaded. You must have had an older version, or is it an old book?Trust me, stick with C++, you won't regret it. When you get in to DirectX books and tutorials, it is going to be hard, but don't give up.

Share this post


Link to post
Share on other sites
[quote name='BrianTheProg' timestamp='1311098813' post='4837535']
[url="http://www.amazon.com/Beginning-C-Through-Game-Programming/dp/1435457420/ref=sr_1_1?ie=UTF8&qid=1311098703&sr=8-1#_"]Critter Caretaker[/url] is in the book he bought, or downloaded. You must have had an older version, or is it an old book?
[/quote]

Ahh, no well its just the same author, Michael Dawson. It seems that he has a few intro programming books. One in Python, C++, not sure of others. Basically the books are all the same format, with the same example games, just in different languages. This is the book I used, except this is a new edition, Im guessing using Python 3. Mine was back in 2.5

[url="http://www.amazon.com/Python-Programming-Absolute-Beginner-3rd/dp/1435455002/ref=sr_1_5?ie=UTF8&qid=1311099029&sr=8-5"]http://www.amazon.co...11099029&sr=8-5[/url]

So yeah, same author, basically the same book in another language. Highly recommended.

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