• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
bloisch4

A set guideline for beginning video game programmers!

11 posts in this topic

Hello Everyone! [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img] I have recently been highly interested in game development, especially the programming side of things. I have been learning C++ for the last 3 months or so, but... I just don't quite seem to have a clear vision/view/guideline for getting into game development! ~sigh~ So... I made a console text Tic Tac Toe game, and I was like, whoa! that is cool!
- [url="http://www.imageurlhost.com/images/htvx7fckuo2wlklj14m_Tic-Tac-Toe.png"]http://www.imageurlh...Tic-Tac-Toe.png[/url]
-thank you image hosting site!- [url="http://www.imageurlhost.com/images/htvx7fckuo2wlklj14m_Tic-Tac-Toe.png"]http://<a href="http...age Hosting</a>[/url]

[color=#800000]But then I think, oh man, this is a loooong way away from 2D games![/color](which is what I want to do for now), but you know, motivation keeps me typing away at this so I'll continue.
[color=#800000]~I'll ask questions on behalf of the aspiring beginner game developers out there! XD[/color]
So when I was first learning C++ I thought everthing was hard to understand. When I saw someone's code of their console Tic Tac Toe game I went 0.0 and has no idea what was going on. The thing is, a few months later I knocked out the game in an hour with no problem! So my learning process seems to be in steps. 1 -Learn the basics of C++. 2 -Make a simple console game Tic Tac Toe! 3 -???????

So now you know what I have accomplished and I will tell you my thoughts on getting a grasp on making 2D games, but I have a few questions first~

~~What programming language should I start out with?
-So I heard C++ is a hard language to go with first, but I like the logical design of it! I can't help but keep going with it. Should I switch to Java since it seems it has basically everthing a beginner would need?

~~Just how much work do I need to do before I can get into making 2D games?
-I do not know if I should jump right into learning a simple 2D graphics library like SDL or SFML or Allegro. Should I learn C++ really well, THEN move on into a graphics library?

~~Use an engine, make one, or don't use an engine?
-Ok ok, I know making an engine is way to hard and time consuming so I'll skip that idea!
-I am very confused when it comes to learning a language well, especially when it comes to using a game engine or not. So I want to get the very most out of my learning, does that mean I should use a game engine and start making games just like that? Or should I take the long run and get the experience working with a graphics library making 2D games without an engine? I figure this because I would get a better, more indepth experience making games.

~~How to pave my own way?
-Ok, so I see people who have made 2D games and I am like, "HOW DO THEY DO IT?!". So I am so engrossed with the thought of how to make a game that I really have no idea how! What I would want(not saying what I need, so correct me if I am wrong) is personal experience from others. I want someone to tell me how they did it, going from learning a language, to making 2D or 3D games! How?

~~What graphics library to use?
-This isn't so much as an issue, but I've heard things of SDL(it's C based and old), tried SFML(hate the setup with any IDE) and don't even want to think about Allegro! Can anyone give me some advice when choosing a graphics library-(choose this one, it doesn't matter what you choose, try them all).

I am at the utmost confusing time in learning game development. What should I do? Where should I start? What should I learn? How can I do it? I make it to generic, sorry. The most important thing I think every beginner looking into game development would want, is some personal experience of another person.[color=#800000] A very detailed guideline of how you got started, how you progressed, and finally where you are at now![/color] So...
Thank you very much for answering my questions, I hope this helps all the people who read this and the questions/comments that follow!
~To all you people game developing away, keep it up, you guys rock and give us beginners something to think about! [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]
N,n,n,NINJA![img]http://public.gamedev.net//public/style_emoticons/default/ph34r.png[/img] Edited by jbadams
Removed the all-but-unreadable blue and yellow font-colours (replaced with maroon).
2

Share this post


Link to post
Share on other sites
[quote name='bloisch4' timestamp='1347307058' post='4978679']
Hello Everyone! [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img] I have recently been highly interested in game development, especially the programming side of things. I have been learning C++ for the last 3 months or so, but... I just don't quite seem to have a clear vision/view/guideline for getting into game development! ~sigh~ So... I made a console text Tic Tac Toe game, and I was like, whoa! that is cool![/quote]
Congratulations! Well done.

[quote]But then I think, oh man, this is a loooong way away from 2D games!(which is what I want to do for now), but you know, motivation keeps me typing away at this so I'll continue.[/quote]
It's not too long away from 2D games - stick with text, and hold with it for another 45 days or so, then download [url="http://sfml-dev.org/"]SFML [/url]and play in 2D. But wait 45 days before doing so, and in the mean time make a text adventure game or something.

[quote]So I heard C++ is a hard language to go with first, but I like the logical design of it! I can't help but keep going with it. Should I switch to Java since it seems it has basically everthing a beginner would need?[/quote]
Nope, if C++ is working for you, stick with it.

[quote]ust how much work do I need to do before I can get into making 2D games?[/quote]
Full understanding of std::vectors, std::strings, if() else() while() and for(), == && != and ||, also pointers and references, and have a whole lot of stubborness, and you'll be ready to [u]begin[/u] playing with 2D games.

First though, make two more larger text games. I'd recommend: A RPG combat simulator ("The wizard cast Fireball! He did 15 damage."), and a text adventure game ("Go north. Get ye flask. You cannot get ye flask").

[quote]I do not know if I should jump right into learning a simple 2D graphics library like SDL or SFML or Allegro. Should I learn C++ really well, THEN move on into a graphics library?[/quote]
Yes and no. You need to learn alot of the basics, but you'll continue to learn C++ while working with graphics libraries. Use SFML, not SDL or Allegro, if you'd take my suggestion. SDL and Allegro are both 'C' programming language APIs that are good, and can be used with C++, but SFML is under more active development and is designed for C++ directly.

[quote]Use an engine, make one, or don't use an engine?[/quote]
Don't use an engine, don't make one, just make games at first.

Also, don't over-reach yourself in games. Start small, make small projects, and [u]finish[/u] them. Finishing projects is very very important.
To keep yourself in check, but also keep yourself entertained, set yourself goals: Every month make a new game, the first two weeks programming the game, the third week debugging the game, and the fourth week polishing the game. Then start anew (Or something along that idea). Then after two one-month projects, do two 2-month projects, and then do a single 4-month project and decide where to move on from there.

[quote]This isn't so much as an issue, but I've heard things of SDL(it's C based and old), tried SFML(hate the setup with any IDE) and don't even want to think about Allegro! Can anyone give me some advice when choosing a graphics library?[/quote]
Use SFML. SFML is modern, under active development, and designed directly with C++ in mind, and has good documentation and a helpful community. It's also compact, and well-designed. Setting up a library using your IDE is also confusing as a beginner, but luckily you only need to do it once per project, so it's not a big deal. The SFML community will help you with that.
1

Share this post


Link to post
Share on other sites
I have to disagree with most of what Servant just said.

There are no magic timelines and frankly, beyond having to use a 3rd party library ( and thus learn about the linking process and include files), there is nothing particularly special or difficult about using a well crafted library like SFML.

There is no particular reason why you can't learn about vectors, operators and other topics while working on a 2d game. In fact, it may be easier, especially if you are a visual learner.
0

Share this post


Link to post
Share on other sites
I'm perfectly fine with you disagreeing with me, but your response seems to misunderstand what I said, most likely from poor wording on my part.

The OP was complaining about specific issues with setting up SFML, so I said that that occurs with every library and that the SFML community (or us here) would be happy to help. I mistakenly used the word "also" when I meant "always".

I mentioned specifically that SFML [i]was [/i]well designed, and [i]encouraged [/i]it's use, not discouraged.

Let me try again:

[indent=1]Setting up and linking a 3rd party library is always confusing the first time you do it (since you mentioned it was difficult), but once you get the hang of it, it's easily done. Luckily you only have to do it once per project, and the community (either GameDev.net or the SFML community) would be happy to help resolve any specific problems you encounter. SFML setup is no harder than other libraries.[/indent]

Better?

I [i]am[/i] advocating continuing to learn C++ while using 2D libraries, but it's nice to get some of the basics down first before you try to learn two things at once. std::vector wasn't a particularly good example, but I do feel a solid understanding of the operators and basic condition statements are important (but not necessary, as I admit I made it sound) - you can definitely learn what parts you missed while working with 2D, and while learning all the other parts of the C++ language (like classes, templates, and namespaces).

I'm [i]not [/i]giving a magic timeline, but suggesting he makes a few more console projects to help him learn the basics, before he jumps in. 45 days was a "not too near, not too far" timeframe to let him get his toes a bit more wet with C++ basics before moving on.

My suggested month-long project cycle was merely to help develop the habit of completing projects, and to help enforce starting small and working his way up.

Here's the bullet points of what I said:[list]
[*]If C++ is working for you, stick with it.
[*]Learn the basics of C++ just a little longer before starting 2D graphics. ([size=2]I recommend just two more games, slightly larger scope[/size])
[*]You'll continue learning C++ even while learning 2D graphics, so you don't have to worry about it too much. ([size=2]I didn't actually say this, but I meant to![/size] [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img])
[*]Make games, not engines. Don't worry about engines yet.
[*]Finish the projects that you start, and don't overreach yourself. Start small ([size=2]I recommend creating set time-frames to keep yourself from reaching too far too fast[/size]).
[*]Set yourself goals and limitations to keep yourself focused and entertained.
[*]Use SFML.
[/list]

If you disagree with my opinion about learning operators and if statements and making one or two more console games before moving on, that's fine! The rest of my advice still stands.
And again, I think most of your complaints was from my poor wording and missing sentences I had [i]meant [/i]to add (my fault!)... I was going back and forth with dealing with technical support at a webhost I'm using (ASO) while trying to write the post, so I'm glad you made me clarify to avoid confusion.
1

Share this post


Link to post
Share on other sites
Both Servant of the Lord and Serapth nailed it. Here's a tutorial I used to get started with Allegro. it's got video, source code, and the author still actively replies to comments, etc. It was extremely helpful:

http://fixbyproximity.com/2d-game-development-course/

Also, if you ever get to this point with Allegro, I wrote a tutorial on handling joystick input, from an Xbox 360 controller for example (It's not as difficult as it sounds). Just something you might want to save for when you're a little further down the road:

http://arantwithgoodgrammar.com/archives/93

So next time you're wondering "When am I going to be good enough to do this awesome thing?" like you'll probably be thinking when you want to move to 3D game programming, just do this strategy:

First, check out a tutorial on the thing you want to do
1. Do you have the knowledge/understanding to follow what's going on in the first few introductory videos?
2. Are you excited to get started?

If you answered yes to both questions, then why not take a crack at it? If you fail, just regroup and go back to basics. It's bound to happen. Good luck
0

Share this post


Link to post
Share on other sites
[quote name='bloisch4' timestamp='1347307058' post='4978679']
~~What programming language should I start out with?
-So I heard C++ is a hard language to go with first, but I like the logical design of it! I can't help but keep going with it. Should I switch to Java since it seems it has basically everthing a beginner would need?
[/quote]
I think you should choose a language depending on what your target platform is, rather than how hard it is. C++ allows multiplatform (if you used the right libraries).
Java does allow that too, but also has more additional platforms such as Android, but at the cost of some performance. (Believe it or not, automatic garbage collection is more of a hassle than a convenience when it comes to mobile development. And please no one mention the NDK)
Personally I prefer Java (even if I weren't targeting Android), but that's because I'm focused on making small, 2D games, and Java is perfect for that. 3D... I'd switch to C++.

[quote]
~~Use an engine, make one, or don't use an engine?
-Ok ok, I know making an engine is way to hard and time consuming so I'll skip that idea!
-I am very confused when it comes to learning a language well, especially when it comes to using a game engine or not. So I want to get the very most out of my learning, does that mean I should use a game engine and start making games just like that? Or should I take the long run and get the experience working with a graphics library making 2D games without an engine? I figure this because I would get a better, more indepth experience making games.
[/quote]
I think there is no need to go as high as using a game engine, nor as low as using just a graphics library. I'd say use a framework (read:a game library) that gives you just what you need to get started, and nothing more. I'm not familiar with C++, so I don't know if SFML would qualify as such.

[quote]
~~How to pave my own way?
-Ok, so I see people who have made 2D games and I am like, "HOW DO THEY DO IT?!". So I am so engrossed with the thought of how to make a game that I really have no idea how! What I would want(not saying what I need, so correct me if I am wrong) is personal experience from others. I want someone to tell me how they did it, going from learning a language, to making 2D or 3D games! How?
[/quote]
Trust me it's quite easy to make a 2D game with the right tools. Once you have enough experience, you will be like "OMG it's this easy??!!". Making a simple 2D game is quite easy in itself.

The real trick is, just like Servant said, making a -good-, -complete- (polished) game is the real hard part. A menu? That's added difficulty of learning how to implement game states. An interface? That's the added difficulty of learning how to integrate a GUI library, and how to forward input listener events (and general events) from the GUI to the game, and vice versa. Physics? Well, you get my drift!

Adding things like the player jumping in an arc, or making the player not move when he's walking and facing a wall (something that always annoyed me in games, but now I know why they didn't fix it), or to implement player animations, these are the things that really will take up the bulk of your time.


The first game I had I got up and running, it took me 3x time to add the things I mentioned above than it was to finish the game. Of course, the good news is that it will only be hard the first time you do this and you're still learning the things. Afterwards it will come quite easily to you, and you will think "OMG it's this easy??!!" when you are done with them too. (Not to mention you will be able to reuse some of your code, which will make it take you 1/3x the time, rather than 3x)

[quote]
~~What graphics library to use?
-This isn't so much as an issue, but I've heard things of SDL(it's C based and old), tried SFML(hate the setup with any IDE) and don't even want to think about Allegro! Can anyone give me some advice when choosing a graphics library-(choose this one, it doesn't matter what you choose, try them all).
[/quote]

Well I can't advise when it comes to C++, but if you ever pick Java, LibGDX (framework) is always great to use. Slick2D is good as well, but kind of getting abandoned I think. And of course there's always the good ol' LWGL which is a bit too low level for my taste.(The other libraries are essentially wrappers for it)

[quote]
I am at the utmost confusing time in learning game development. What should I do? Where should I start? What should I learn? How can I do it? I make it to generic, sorry. The most important thing I think every beginner looking into game development would want, is some personal experience of another person.[color=#00ffff] A very detailed guideline of how you got started, how you progressed, and finally where you are at now! [/color]So...
Thank you very much for answering my questions, I hope this helps all the people who read this and the questions/comments that follow!
~To all you people game developing away, keep it up, you guys rock and give us beginners something to think about! [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]
N,n,n,NINJA![img]http://public.gamedev.net//public/style_emoticons/default/ph34r.png[/img]
[/quote]

It's not detailed, but... Well, I got started learning C++ in college, after which was followed with Java. I got forever scarred of C++ due to the data structure and algorithm course (run while you still can), so I kept with Java. In my OOP class I made what Servant of the Lord suggested you do, a text based RPG, with armor, etc..

This will help you learn the main game logic. (Adding graphics is just a simple additional step once you learn that. Really, I'm not joking, just look at my render method which does the rendering (then again I used a framework))
[CODE]
camera.update();
camera.view.setToOrtho2D(viewport.x, viewport.y, viewport.width, viewport.height);
camera.projection.setToOrtho2D(viewport.x, viewport.y, viewport.width, viewport.height);
Gdx.gl.glViewport((int) viewport.x, (int) viewport.y, (int) viewport.width, (int) viewport.height);


spritebatch.begin();
renderManager.render(spritebatch);
spritebatch.end();
[/CODE]

This small function is all that separates a text game from a 2D graphic game!!

Where was I? Oh yeah! Once I knew the game logic, I started searching for a game library, and I fell upon Slick2D, which I used to make a small top down shooter. Then I started doing the things I told you above, integrating a GUI library, physics, menu, etc..

Right now I'm aiming at doing a fully fledged platformer, but I'm still getting used to LibGDX which I started, as well as revising my game architecture, since I was pretty much abusing OOP in my previous games.


So yeah, good luck! And whatever happens, don't give up!! If I didn't keep giving up (and coming back later) I would probably have finished many games by now! Keep fighting! Things may seem hard and long, but it's only temporary. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]
0

Share this post


Link to post
Share on other sites
[quote name='Servant of the Lord' timestamp='1347309879' post='4978692']
SDL and Allegro are both 'C' programming language APIs that are good, and can be used with C++, but SFML is under more active development and is designed for C++ directly.
[/quote]

The part about SFML being the only C++ library is certainly true, but the part about active development is not. Allegro 5 is under constant development, with new releases every month or so.
1

Share this post


Link to post
Share on other sites
That's good! SDL hasn't had an update for years and though it's supposed to be receiving a major '2.0' update, an official release (aside from minor bug fixes) hasn't actually been released. If the head developer actually goes through with the major 2.0 release ([size=2]now that he's busy working on Valve's Linux port of Source Engine and Steam client[/size]), then it'll definitely revitalize SDL interest.
0

Share this post


Link to post
Share on other sites
[quote name='Servant of the Lord' timestamp='1347377522' post='4978923']
That's good! SDL hasn't had an update for years and though it's supposed to be receiving a major '2.0' update, an official release (aside from minor bug fixes) hasn't actually been released. If the head developer actually goes through with the major 2.0 release ([size=2]now that he's busy working on Valve's Linux port of Source Engine and Steam client[/size]), then it'll definitely revitalize SDL interest.
[/quote]

I'm sure he'll release it before episode 3! [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img] [img]http://public.gamedev.net//public/style_emoticons/default/ph34r.png[/img]
0

Share this post


Link to post
Share on other sites
Hey, good to know you are interested in going serious in game dev.

This site can help you learn a little more about the basics of programming:
http://www.khanacademy.org/cs

Hope it helps, happy dev !!
0

Share this post


Link to post
Share on other sites
I suggest learning some graphics library like Ogre3D or Irrlicht. Once you really understand the stack and heap, the memory management things.
0

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  
Followers 0