• 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
Hordeon

[Help] Getting into game programing

21 posts in this topic

Hello everyone, I recently joined gamedev.net, my name is Rokas, I'm 16years old. I am willing to study C++ or any other programming science thats required to do game programming.

To start off my adventure I wanted to ask a few questions:

1) I watch Bucky (youtube it: thenewboston) on youtube and his c++ tutorials, they are simple, how good you would rate his tutorials? Are they worth watching? I think yes, but maybe you can offer better learning materials to start off?

2) Where to find tutorials on how to build my own game engine? (Since obviously if i want to become a good programmer - I would much better prefer to do it myself!) Where I can find more information about functions that are required to make games (most popular ones, etc) Ofc, I know If statement is the most important in making games, but i mean what else i need? Is there any simple websites, that could provide me superb useful info?

3) How long the process of learning should take, before I can build my very first 2D indie rpg-type game? I mean, sure I'm not a genious, but post how long you took, to become "good" and "confident" to create games from scratch (engine, etc.)

Thanks and sorry for Imperfect English. My main language isn't English :)

1

Share this post


Link to post
Share on other sites

All of your questions are realtive to the ammount of time and effort you want to put into learning.

My advice, start small and work your way towards a goal (and make sure to completely finish that goal before you start another project).

 

Using C++ and whatever library you choose to develop with its going to take you several months of hard work learning and programming to make a 2d rpg type game (Unless you kept it really really simple).

 

Start out with some text based stuff, maybe a simple combat testing application where you use math to determine damage taken, or a mock fight simulation.

 

Once you get that all figured out start looking how you need to strucure your programs in C++, I think fundamentally if I had spent more time learning about proper structure and flow starting out I would have been much better off now.

 

Books, read lots of books, probably one of the most helpful things for me.

 

Some things you need to determine:

- What kind of graphics library are you going to use

- If not a home brew engine what game engine will I use

1

Share this post


Link to post
Share on other sites

[quote name='yewbie' timestamp='1357663151' post='5019073']
- What kind of graphics library are you going to use
- If not a home brew engine what game engine will I use
[/quote]

I'm a firm believer in 2d graphics. or 2,5d.
I would like to learn to create my own engine.

Also I will put my whole life to programming! That's what I'm planning to do. Computer is my addiction. Not just games - whole Computer, all processes, etc. But I wanna become a gamedev, because people need games to refresh their soul. It's art, it's refreshing, that feeling of accomplishment, when you start from scratch and build a successful game! I'm planning to buy C++ books, my mom already ordered them from amazon.com. And yes, I do testing in C++, i'm trying to build text RPG atm :) Since I know it's not that hard, mainly just integers, reals, strings etc.

1

Share this post


Link to post
Share on other sites

Lots of people will advise you not to learn C++ as your first language, but I learned the whole C++ in one month during last summer and jumped into OpenGL and SFML(Graphics library) right away and made my first game, Snake in one week.

Then I made my second game Pong. Now I'm working a bomberman clone. It's going very well so far.

Btw, I was 15 by then..

3) How long the process of learning should take, before I can build my very first 2D indie rpg-type game? I mean, sure I'm not a genious, but post how long you took, to become "good" and "confident" to create games from scratch (engine, etc.)
0

Share this post


Link to post
Share on other sites

You asked about the tutorials on thenewboston by Bucky.  I found them very valuable.  Use them as a suppliment to your learning if you want.  Also use other tutorials that you find.  I find tutorials great because each 'instructor' may teach you something another didn't or something you just did not figure out from the books.

1

Share this post


Link to post
Share on other sites
... to become "good" and "confident" to create games from scratch (engine, etc.)

 

Game development and engine development are completely separate disciplines, at least in this day and age.
 

If you're interested in making games then I would suggest you try out some of the different off-the-shelf frameworks and engines out there (Unity/2D toolkit, XNA, Torque2D, etc.). These take care of a lot of "boiler-plate" stuff for you, and allow you to focus on actual "game programming" (i.e. focusing on "what" happens, instead of "how" it happens)

It can be a good learning exercise to try to do everything by yourself, and this will definitely give you a solid foundation, but ultimately if you're doing anything bigger than pong/snake/etc. then there are huge benefits to using an OTS engine or framework.


I would suggest XNA + C# would be a good combination, as you'd still be working with a C-like language.

Edited by snugsound
0

Share this post


Link to post
Share on other sites




... to become "good" and "confident" to create games from scratch (engine, etc.)

Game development and engine devleopment are completely separate disciplines, at least in this day and age.

If you're interested in making games then I would suggest you try out some of the different off-the-shelf frameworks and engines out there (Unity/2D toolkit, XNA, Torque2D, etc.). These take care of a lot of "boiler-plate" stuff for you, and allow you to focus on actual "game programming" (i.e. focusing on "what" happens, instead of "how" it happens)

It can be a good learning excercise to try to do everything by yourself, and this will definitely give you a solid foundation, but ultimately if you're doing anything bigger than pong/snake/etc. then there are huge benefits to using an OTS engine or framework.

I would suggest XNA + C# would be a good combination, as you'd still be working with a C-like language.

I already did something like that, but I want to jump into actual programming instead of using pre-created programs. I used to create mods for Warcraft III but I stopped, also learning how to build games from 0 not from 10% is more valuable, since you will know all the structure and it is more valuable in general!

Also age doesnt matter at all! I'm compelety mature and serious. Edited by Hordeon
0

Share this post


Link to post
Share on other sites
I already did something like that, but I want to jump into actual programming instead of using pre-created programs. I used to create mods for Warcraft III but I stopped, also learning how to build games from 0 not from 10% is more valuable, since you will know all the structure and it is more valuable in general!


I suppose it depends what you consider "value". If you want to get a job in the industry some day then you will likely be working with an existing engine, unless you get a job on a tools or engine team, in which case you wouldn't be working directly on "games" per se. (I'm generalizing, mind you)

If you want to do things at lower level then I would suggest learning Direct3D and/or OpenGL, as well as an audio library like DirectSound or FMod. Maybe a Physics library like Bullet, too, depending on what you're trying to do.

For simple 2D games it's not too hard to wire something together using a combination of low-level libraries, though it can get pretty complicated once you get into 3D stuff (read: I hope you like math biggrin.png)

Edited by snugsound
0

Share this post


Link to post
Share on other sites


I already did something like that, but I want to jump into actual programming instead of using pre-created programs. I used to create mods for Warcraft III but I stopped, also learning how to build games from 0 not from 10% is more valuable, since you will know all the structure and it is more valuable in general!

I suppose it depends what you consider "value". If you want to get a job in the industry some day then you will likely be working with an existing engine, unless you get a job on a tools or engine team, in which case you wouldn't be working directly on "games" per se. (I'm generalizing, mind you)

If you want to do things at lower level then I would suggest learning Direct3D and/or OpenGL, as well as an audio library like DirectSound or FMod. Maybe a Physics library like Bullet, too, depending on what you're trying to do.

For simple 2D games it's not too hard to wire something together using a combination of low-level libraries, though it can get pretty complicated once you get into 3D stuff (read: I hope you like math biggrin.png)
To some extent I like math. Also who gets paid better? The man who knows everything or the one who rules only one section?
I wanna be Lead Designer! I wanna become Inventor and Creator. Similar to god, except in Virtual place.

Also I might want to try anyways. Which programs/libraries/engines would you recommend for a 2D game? Edited by Hordeon
0

Share this post


Link to post
Share on other sites

[quote name='Hordeon' timestamp='1357673891' post='5019162']
To some extent I like math. Also who gets paid better? The man who knows everything or the one who rules only one section?
I wanna be Lead Designer! I wanna become Inventor and Creator. Similar to god, except in Virtual place.
[/quote]

The expression is "jack of all trades, master of none". Pretty sure he doesn't get paid at all, because he can't find a job.

"Designer" roles are generally more creative than they are technical, and involve storyboarding, writing, scripting, etc. Pretty much the polar opposite of engine development.

There is no "God" in game development, unless you're working by yourself. A good team, on the other hand, is made up of people with very specific disciplines; people who really know their respective area inside and out.

You should definitely explore the different facets of game development at this early stage, but at some point you will want to decide which area appeals to you the most and really focus on that.

Good luck :)

1

Share this post


Link to post
Share on other sites
<blockquote class="ipsBlockquote" data-author="Hordeon" data-cid="5019064"><p>Hello everyone, I recently joined gamedev.net, my name is Rokas, I'm 16years old. I am willing to study C++ or any other programming science thats required to do game programming.<br /><br />To start off my adventure I wanted to ask a few questions:<br /><br />1) I watch Bucky (youtube it: thenewboston) on youtube and his c++ tutorials, they are simple, how good you would rate his tutorials? Are they worth watching? I think yes, but maybe you can offer better learning materials to start off?<br /><br />2) Where to find tutorials on how to build my own game engine? (Since obviously if i want to become a good programmer - I would much better prefer to do it myself!) Where I can find more information about functions that are required to make games (most popular ones, etc) Ofc, I know If statement is the most important in making games, but i mean what else i need? Is there any simple websites, that could provide me superb useful info?<br /><br />3) How long the process of learning should take, before I can build my very first 2D indie rpg-type game? I mean, sure I'm not a genious, but post how long you took, to become "good" and "confident" to create games from scratch (engine, etc.)<br /><br />Thanks and sorry for Imperfect English. My main language isn't English <img data-cke-saved-src="http://public.gamedev.net//public/style_emoticons/default/smile.png" src="http://public.gamedev.net//public/style_emoticons/default/smile.png" class="bbc_emoticon" title=":)" /></p></blockquote><br />

1) roughly -2/10 , they'll do more harm than good. (For C++ you really want to use books, most online tutorials teach extremely bad practices or leave out essential information)
2) Don't worry about the whole engine abstraction yet and don't look for tutorials, most are crap, if you want to learn how to program at a lower level get solid grasp of the language and check the documentation for your OS API (or use something slightly higher level like SFML)
3) Just start simple, games like pong, snake, etc are fairly straightforward and can be done once you're able to draw basic shapes. Edited by SimonForsman
1

Share this post


Link to post
Share on other sites

Honestly, I would say borrow books from the library and start from there. You can never go wrong with books. Program everyday-embrace, live and breathe it. You will not improve unless you write code. There are engines out there that you can use so you do not need to write it yourself. 

 

Good luck! 

0

Share this post


Link to post
Share on other sites
Okay, I got you all, I will search for 2d engines and learn to use (attempt) OpenGL, etc.

Another question is how to import them and use? Edited by Hordeon
0

Share this post


Link to post
Share on other sites

If you're looking to stick with C++ (Which isn't a bad choice, though perhaps not the easiest) you should probably have a look at some of the frameworks built to help with such projects.

 

 

OpenGL and DirectX are both pretty great but getting them to do 2D stuff can be complicated, and with raw OGL, you'll also have trouble with window management, input, sound and some other things. There's quite a few great libraries that abstract the things that should be trivial and make life a lot easier for the budding 2D game developer.

 

 

Simple Directmedia Layer (SDL) is probably the lowest level of the lot, but it helps significantly with things like creating windows, capturing input, loading files and the like. It's also nice as it doesn't really get in the way of using raw OpenGL for the rendering, i.e. use it for what you need and OpenGL for the rest.

 

SFML is a similar framework. It's newer and its claim to fame, as I understand it, is for being written in C++ and following OO principals (SDL is in C I believe).

 

A couple other libraries I know of are Allegro which from my limited experience seems to be pretty easy to use and is well liked among its community and Cocos2d-x which is a fairly new multi platform (PC, iOS, Android) port of iOS's Cocos2d framework.

 

All of these libraries/APIs have pretty good documentation on how to get started with using them (how to build, what to include, project setup etc...) that should get you well on your way to getting your first game or prototype made.

 

The best advice I can give you is to keep at it and don't let failure slow you down. Best way to learn is by doing it wrong and figuring out how to fix it.

 

Cheers, and good luck! biggrin.png

0

Share this post


Link to post
Share on other sites
someone recommended me XNA engine to start with. Is it good advice?
(Microsoft XNA Game Studio 4.0) Edited by Hordeon
0

Share this post


Link to post
Share on other sites

XNA is a nice framework to work with. It acts somewhat like a lower-level library like OpenGL, but at the same time, it provides higher-level routines like models. However, like DirectX, it provides higher-level interfaces like content processing for sounds, images, textures, fonts, etc. It also provides some nice functionality for utilizing those.

 

If you were to work with OpenGL directly, you'd be writing all your content loaders yourself, or be spending the time trying to link external libraries to your project to do it for you.

0

Share this post


Link to post
Share on other sites

@Hordeon: I was the one who suggested XNA, and I stand by that recommendation. If others have recommended it to you as well then that should really vouch for it being a good option.

 

I find that using XNA (with C#) gives a good balance of ease-of-use and power/flexibility (more so than, say, Unity). You still need to write a lot of your own code, but as Vincent_M points out you don't need to spend half your time messing around with content loading, external libs, etc. It really lets you get to the point and start creating something.

Edited by snugsound
0

Share this post


Link to post
Share on other sites
@Hordeon: I was the one who suggested XNA, and I stand by that recommendation. If others have recommended it to you as well then that should really vouch for it being a good option.

 

I find that using XNA (with C#) gives a good balance of ease-of-use and power/flexibility (more so than, say, Unity). You still need to write a lot of your own code, but as Vincent_M points out you don't need to spend half your time messing around with content loading, external libs, etc. It really lets you get to the point and start creating something.


Well, I dislike unity v. much. 5% coding, 95% else. Unity is more for designers rather than real programmers. Also other engines are more flexible than unity. Maybe u know something similar to XNA, but for C++? Yep, you recommended it, but also another friend from skype.

0

Share this post


Link to post
Share on other sites
Also I will put my whole life to programming! That's what I'm planning to do. Computer is my addiction. Not just games - whole Computer, all processes, etc. But I wanna become a gamedev, because people need games to refresh their soul. It's art, it's refreshing, that feeling of accomplishment, when you start from scratch and build a successful game!

 

You description of yourself almost matches with mine word for word :D

 

I began with game developing about the same age as you are now, and my first "utility" of choice was Visual Basic.Net + XNA Framework 2.0. I know, poor choice, but VB was the only language I was confident with.

 

My first "projects" were nothing better than simple tasks, things that I consider trivial now like shooting ducks flying on screen, moving objects on screen using the keyboard etc. just to learn though process and and logic behind game. On lots of those test projects I lost my interest fairly fast (and since XNA didn't have VB support at that time, I had to c/p code from one tutorial to get the same thing I get by using XNA game creation wizard for C#), never finishing them, but regardless of that I got valuable knowledge that I could use and improve in later projects (one of them is unfinished Breakout).

 

Few years after my last VB project I switched to C# and continued working with XNA; one of projects of that time was moving a box with orange stick of it around the screen - something that is currently becoming my own clone of Battle City! Mind you, compared to many people here, I'm still very inexperienced in game developing.

 

So, what did I want to say with all this wall of text (which is something more experienced people are always emphasizing, so I'll end up repeating them):

  • Start from the very basics; how to make something appear on screen, how to control object on screen, how to prevent it to go off the screen etc.
  • Define small, simple projects you can finish with current skill level while learning something new. There are game order you can follow (like Pong => Snake  => Asteroid) but it's better if you do what you want.
  • Use tutorials and examples for reference but not as a source. In other words, don't copy-paste existing code but try to reproduce it yourself. You'll understand the logic behind code much better that way.
  • Be ambitious, but take one step at a time. With time, you'll be able to make your "dream game" without problems.

Good luck!

2

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