How to start on game programming properly

Started by
2 comments, last by Alberth 8 years, 4 months ago

I'm on my second year of Computer scientist I have learnt about Java and C++ and now I'm learning Data Structures, Algorithm designs such as Divide and conquer and I'm learning functional programming using Haskell. Also I have seen that on the third year of my career I can chose optional subjects like AI for games and game programming but I want to tackle game programming in my free times. The problem is where do I start? I want to code, I have learnt a little about GUI's using Swing in Java but I have seen that I can use JavaFX for simple 2D games. And what programming languaje should I stick to? My university uses Java a lot so I think I should use Java but I have seen a lot of complains about Java and that C++ or C# is better.

I'm so confused I know that I can make games with engines like Game maker but I don't want to drag and drop things I want to code. Is it recommended to go bottom-up developing a simple game? Or should I use any API?.

Sorry for my bad english, english is not my main languaje.

Advertisement

Can you make pong?

If yes, then move onto 2D platformers.

If you use java, you can use something like java3d or jogl.

You won't make anything that closely resembles a fully featured game for some time. Don't sweat it.

Most of the more serious game engines out there require some level of programming (Unity 3D, Cryengine, UE4...) hell, even Ren'Py requires it, although I guess you would rather call that scripting, but you can actually do some programming in it (like creating an RPG framework within it, I remember this one guy makinga dungeon crawler system, really cool, he made some cool games too, he was called nyaatrap or something like that) but are you sure you want to use somebody elses game engine rather than make your own? I remember one particular favorite of mine was haxeflixel, because it supported all the major platforms natively, and for those it didn't support it also supported being compiled into flash format. Just to be sure. It looks like a nice game engine for someone like you too, since it's mostly aimed at simple and 2D games, but requires quite a bit of programming skills in order to be used effectively. And just as Gl2eenDl2agon said, you're not gonna be making a full featured 3D game anytime soon, 2D however... a lot easier (but still challenging as hell!)
The problem is where do I start? I want to code, I have learnt a little about GUI's using Swing in Java but I have seen that I can use JavaFX for simple 2D games. And what programming languaje should I stick to? My university uses Java a lot so I think I should use Java but I have seen a lot of complains about Java and that C++ or C# is better.

I'm so confused I know that I can make games with engines like Game maker but I don't want to drag and drop things I want to code. Is it recommended to go bottom-up developing a simple game? Or should I use any API?.

It seems you have a good foundation in programming language knowledge, as well as some programming, so as you say, the next step is to write programs. Basically, just start anywhere, write small game programs first, like pong, tetris, 15-puzzle, and slowly scale up towards more complicated games.

Any of Java, C++ or C# is fine, I'd recommend using the one you're most comfortable with, since you don't need the problems of finding out how a new language works while coding a game for the first time.

However, in time, do have a look at the other languages too. C# is quite close to Java, C++ is more different. I don't know about worse or better. People argue all the time X is better than Y, for Z reason. I believe it's much better to find out by yourself, so you can have an informed opinion ;)

You become a better programmer by understanding several languages.

Using an API or starting from scratch can both be done, what suits you depends on your goal. If you aim to make games, a framework/api will be better, as these things are designed to help you in that. It does cost time to understand such apis though. If you aim to get a firm grasp of understanding from the bottom up, starting at the bottom is ok too. Do mind that there is a LOT of boring bottom stuff in general, which takes time too.

Edit: As Java api, you can have a look at libgdx, unreal uses c++, and unity uses C#. I have not used any of these engines though, so maybe there are other/better ones.

This topic is closed to new replies.

Advertisement