Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


What's next after knowing how to program?

  • You cannot reply to this topic
15 replies to this topic

#1 hydrox3   Members   -  Reputation: 120

Like
1Likes
Like

Posted 26 April 2015 - 06:57 AM

Hi, I've been lately interested in game development. Computer has always been my passion since the early years of my life. I started programming at age 15 with PHP, MySQL, Javascript ecc, I also had some experience with Python, Perl and C/C++. Right now I feel being at a good level in web development, doing some websites for privates or small companies. I am at the second years of Computer Engineering (I'm 21 years old), in which we studied some C and C++. I am surely not an expert about it, however I know where to put my hands so I don't feel exactly a beginner in programming, but I know I'm certainly a beginner in game development. I've tried both UE4 and Unity (especially the last one), and I felt comfortable with developing a game with them, however I'm not really sure if they are what I'm looking for. My interest in game development is understanding the mechanisms of how games really work. My goal is to became a programmer in a game development studio, I'm not sure yet if I want to be an engine programmer or a game programmer, but I feel that if I become great in Unity, I will only be able to create a game in Unity and in nothing else. So after all this introduction to myself (excuse me if I bothered you with all of this personal informations) I jump right to my question: what's next for me? I read about SFML/SDL, but I don't know if they are really for me, I don't know if I need to know DirectX/OpenGL ecc. If I search on internet how to start game development, everyone seems to give the same answer: pick an engine and start doing games with it; if someone is at level 0, the answer to the question is: grab a programming language and study it.

My case it's neither.

 

Thank you for reading



Sponsor:

#2 Glass_Knife   Moderators   -  Reputation: 6222

Like
8Likes
Like

Posted 26 April 2015 - 07:25 AM

but I feel that if I become great in Unity, I will only be able to create a game in Unity and in nothing else.

 

 

Not only is this true, you will not understand what is going on in all those black-box components, making it difficult to fix problems.

 

My advice:

 

There are different ways you can go, depending on what you want to learn.  One area of study is 3D graphics.  How do graphics cards work?  What is really going on?  To learn about all this stuff you can make software renderers from scratch.  This is not easy, but you will learn a lot.

 

Libraries like SDL, SFML, freeglut, GLFW, and DirectX give you a framework for low level access while handling all the common things all games need.  DirectX is a little different because it only works on Windows and doesn't give you a window framework, but making a generic game window from scratch is easy and well documented.  The other libraries are all for OpenGL, and work on any platform, handling the window code.  

 

All of these libraries give you low-level access to rendering, input, and sound, which is all you need to make a game.  If you are interested in learning how these libraries work, the opengl ones are all open source.  You could write your own, or review the code to see how they do things.  You will learn a lot from reading their code, so don't discount that.

 

The third option is to use one of the above libraries and make some games.  None of those libraries are hiding anything like the game engines.  But after using them at a low level you will begin to understand why those game engines exist.  There is a lot of framework code to write, debug, and optimize, and every times something changes you have to go back and check everything again.  For one person making a game this can be too much.  But there is nothing wrong with doing it yourself.

 

Hopefully that gives you some ideas so you can pick a direction, research it, and ask some more specific questions.


I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532


#3 hydrox3   Members   -  Reputation: 120

Like
0Likes
Like

Posted 26 April 2015 - 08:19 AM

Thank you for the quick answer, I wanted to know if libraries like SDL or SFML were hiding something like game engines and you have clarified my doubt. I think I will pick this way, starting to make games with one of those libraries, searching tutorials online.

I found those two books:

http://www.amazon.com/Game-Engine-Architecture-Second-Edition/dp/1466560010/ref=pd_sim_b_6?ie=UTF8&refRID=1WNS71KRWV3Z3CSTV03X

http://www.amazon.com/dp/0990582906/ref=rdr_ext_sb_ti_sims_3

 

I'm not sure which of the two is better for my case, I think the first one but I'm not completely sure.



#4 Glass_Knife   Moderators   -  Reputation: 6222

Like
4Likes
Like

Posted 26 April 2015 - 08:53 AM

Actually, I'd start with this one: 

 

The Black Art of Multiplatform Game Programming 

by Jazon Yamamoto 

Link: http://amzn.com/1305110382

 

The "Game Engine Architecture" book is good if you want to make a game engine like Unity or Unreal.  I don't know anything about the game patterns book, but with so many reviews it looks great.

 

That book I recommended is new.  It came out the same time as my book, and it has done really well.  I think the title is bad, because is doesn't stress the fact that it teaches game programming with SDL.


I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532


#5 wicked250   Members   -  Reputation: 1690

Like
2Likes
Like

Posted 26 April 2015 - 10:07 AM

You question really comes down to what you want to do... You either want to make game engines or you want to make games. If you want to make games, you should be using an engine instead of trying to recreate the wheel and most certainly will be spending 98% of your time making the engine and probably never see a game since engines can take years of a single persons life. If that is the route you want to go that is awesome, but I guess if you don't know you should start delving into the abyss of understanding lower-level graphics programming. 

 

If you want to start off small to wrap your head around more of game programming from a mid-level I second the suggestion for SFML I have used in many many times, I even started my own DirectX version years ago, turns out that is when I realized I wanted to be a game programmer not a game engine developer. So maybe this is something you have to do to figure that out as well. Good luck to you hope my advice helps you out.



#6 hydrox3   Members   -  Reputation: 120

Like
1Likes
Like

Posted 26 April 2015 - 01:29 PM

You question really comes down to what you want to do... You either want to make game engines or you want to make games. If you want to make games, you should be using an engine instead of trying to recreate the wheel and most certainly will be spending 98% of your time making the engine and probably never see a game since engines can take years of a single persons life. If that is the route you want to go that is awesome, but I guess if you don't know you should start delving into the abyss of understanding lower-level graphics programming. 

 

If you want to start off small to wrap your head around more of game programming from a mid-level I second the suggestion for SFML I have used in many many times, I even started my own DirectX version years ago, turns out that is when I realized I wanted to be a game programmer not a game engine developer. So maybe this is something you have to do to figure that out as well. Good luck to you hope my advice helps you out.

That is the fact. I want to create games without using an engine



#7 Lactose!   GDNet+   -  Reputation: 4771

Like
2Likes
Like

Posted 26 April 2015 - 01:31 PM

You might be interested in Handmade Hero.


Project journal, check it out!

http://www.gamedev.net/blog/1830-lactoses-journal/

 

Hello to all my stalkers.


#8 hydrox3   Members   -  Reputation: 120

Like
0Likes
Like

Posted 26 April 2015 - 02:38 PM

I've already seen that, it really looks great but maybe too long (for now about 90 lessons of about 1h30 and is not even close to conclusion). You all talk about to choose to create a game or a game engine, however if I create a game from scratch, am I creating indirectly a game engine exclusively for that game?



#9 yellowsputnik   Members   -  Reputation: 893

Like
3Likes
Like

Posted 26 April 2015 - 03:20 PM

If you write everything from scratch, then technically you've made a game engine. But if you don't try to make that code work for other (abstract, non-existing) games but instead just try to get your game to work, then that doesn't really matter. The bad thing about trying to write a game engine is that it takes away a lot of time and effort from finishing the game. In the end, you'll most likely not finish the game you were trying to create in the first place.

 

I wouldn't recommend writing absolutely everything from scratch, if that's your intention. Think about what you want to learn to do and find ready-made libraries, sdks etc for the rest. There's no shame in relying on the work of others for parts of your game. And some of these things are real time wasters, you can spend weeks getting some tiny feature to work just right on a specific computer while others have already solved that problem and provided the solution for you to use.



#10 hydrox3   Members   -  Reputation: 120

Like
2Likes
Like

Posted 26 April 2015 - 04:00 PM

Yes absolutely I intend to use some libraries, that's is the other "bad thing" about Handmade Hero is that he literally writes everything and this is not what I intend to do (of course this is great for educational purpose). I think the question has come to this way: for me the best thing to do is to write almost everything. So I ask another question: what are the C++ libraries that I would (eventually) need?

 

I also want to thank everybody for the answers, I am really amazed by the willingness of this community :)



#11 Khatharr   Crossbones+   -  Reputation: 3686

Like
2Likes
Like

Posted 26 April 2015 - 05:49 PM

what are the C++ libraries that I would (eventually) need?

 
Start doing what you're going to do, and when you find a need for a library, ask about what options are available and how they compare. A lot of libs are in active development, and things can shift quickly if a new lib shows up and solves an old problem. If you sit around collecting everything then by the time you're ready to make use of it, you'll find that it's all become deprecated.


void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

#12 wintertime   Crossbones+   -  Reputation: 2510

Like
0Likes
Like

Posted Yesterday, 02:38 AM

That is the fact. I want to create games without using an engine

 

Those libraries offer a middle ground, between using an overcomplicated engine (which takes long to learn all the bells and whistles, as its made for professionals who after learning it once can churn out a number of less innovative games) and writing everything from scratch (for training yourself on tiny things and professionals doing bleeding edge games).

The clever way is to find some nice premade libraries, which already do most of the time-consuming low-level things (which get often cited as a reason for using an engine) and only writing the highlevel code for the game loop and connecting the different premade parts (libraries) into a whole. Though, there are also pitfalls, like using badly designed or coded libraries or extra code from converting data back and forth for each library to understand it. It also takes time to find and evaluate all different libraries for each use.

Be wary of frameworks, as they could be a the opposite of a library (where the overall structure is given and you have to fill in many of the details) or just a misnamed library (cause some think framework sounds more fancy).


Edited by wintertime, Yesterday, 02:48 AM.


#13 jacmoe   Crossbones+   -  Reputation: 1596

Like
0Likes
Like

Posted Yesterday, 07:02 AM

"Pick an engine" ..

I agree, but there are many engines you can pick.

Everything but the kitchen-sink engines or dedicated engines that does a subset of what you need. SFML, GLFW and SDL fall into that latter category.

And I think they are a good choice when you are starting out.

 

Writing an engine from scratch sounds daunting, but - contrary to what you might think - all it is is you choosing what you want from a large pool of specialized game programming libraries: rendering, input, physics, imageloading,..

You decide!

The problem doesn't lie in how to program at a low level, but how to get those libraries to coexist and writing code that glue them together.

 

Then you can decide to write a game engine or an engine for a game.

The last option is IMO always the best option. ;)

 

Unreal Engine started out that way. Id Tech started out that way. Source engine as well.

In fact, I don't think any engine worth using hasn't been used to create at least a couple of games before being mature for wider use.

Engine development is incremental. Especially for indies, because we don't have an army of coders to create tools, etc.


Edited by jacmoe, Yesterday, 07:33 AM.

More signal, less noise

#14 hydrox3   Members   -  Reputation: 120

Like
0Likes
Like

Posted Today, 02:22 AM

This is indeed what I want to do, create an engine for a game. I'm starting with some SFML tutorial, hoping to succeed at getting into it.
I am not completely sure about what book should I buy, that Game Engine book looks really appealing.

#15 yellowsputnik   Members   -  Reputation: 893

Like
0Likes
Like

Posted Today, 02:40 AM

I got quite some useful information from Game Coding Complete (4th edition). It's also fairly fun to read.

 

I'm reading Game Engine Architecture atm. It seems like it's more of an overview book to me. That's not necessarily bad, but it might have been more useful to me if I had read it earlier.

 

Introduction To Game Development (2nd edition) was also quite good, more details than Game Engine Architecture, a lot of information.



#16 hydrox3   Members   -  Reputation: 120

Like
0Likes
Like

Posted Today, 03:14 AM

Looking at GCC, it looks great. However it uses DirectX, and I want to use something multiplatform (right now I'm using OS X), can I use it anyway or is it specifically for DirectX?





PARTNERS