Advices for a student completely new to game dev

Started by
7 comments, last by MrJoshL 10 years, 10 months ago

Hey guys, so, I'm in a programming course wich includes learning programming languages, having network and hardware knowledge, but what i reeeally wanna follow is game development.

Throughout these last 2 years (the course is 3 years long as it is like 10th, 11th and 1th grade) I've learned Pascal for basic programming knowledge (functions, procedures, conditions, etc), HTML, CSS, a little bit of PHP, SQL and Visual Basic, I think next year we're going to learn Java I guess.

I don't mind developing some Android games just for fun and a little profit, but for that and computer games I need to learn C++, right?

So i have 2 questions:

- Can anyone post a link or something like that for a good guide on how to learn C++ "easily"? (Preferrably more redirectioned for game dev).

- I have searched a bit for Game Dev engines and I haven't tried any yet, shall I learn c++ first then try an engine, vice-versa or at the same time?

Any more information just ask, and thank you very much in advance smile.png

Advertisement

For programming Android and desktop games you don't need to know C++. You can develop games for both platforms using a variety of languages. If you're taking AP computer science your senior year, which I guess you may be since you said you're going to learn Java, then you'll learn the basics and can branch out into game programming in Java if you want.

It depends on what you want to do. You certainly can learn C++ and use it effectively to make games or you can pick another language. A lot of people around here will recommend Python with PyGame or C# with Unity or XNA (now more likely MonoGame). Pick which language you want. If you haven't used Python or C# and you're going to be learning Java it might be easiest to just go with Java. A lot of Android apps are written in Java. Now with more people being able to deploy to Android using C/++ and Android support for Unity there are also a lot of games being written for Android not using Java too.

If you decide to go with Java then there are a variety of options available for deployment to Android. You can use the Android APIs and OpenGL ES 1 and 2 if you want to handle everything yourself. If not, you can use http://libgdx.badlogicgames.com/'>LibGDX

which allows deployment to Android, Desktop, iOS (requires a license - not free), and the web. http://www.andengine.org/'>AndEngine is another popular one.

Edit: Apparently my links don't show up here even though they do in the editor. A quick Google search will let you find LibGDX and AndEngine.

I've been studying programming since I was 12, learning C++, python, C# , java , haskell and lua - now 18, I still have absolutely no idea how to program.

www.cprogramming.com is a great resource to start off. It teaches you the syntax of C++ which is the easiest part.

however it's STL , IPC , Multi-threading, OpenGL etc, is when it starts getting hard.

I don't think you'll ever stop learning in the software development scene.

But that why I love it so much.

GamePlay 3D

It's a new game engine "framework" written in c++ - with support for Android, Windows, Linux , iOS and Black Berry OS.

It's free and open source - the code is beautiful - use it - extend it - it's awesome.

here's the website :

www.gameplay3d.org

EDIT : Oh, and don't be a numpty - use Ubuntu. Windows is far to annoying for me personally. Then again, the reason I studied programming is primarily Linux, not game design - so I am a bit bias. (The OUYA has got my interest as of late :D)

Even if you’re on the right track, you’ll get run over if you just sit there.
—Will Rogers

"Normal" android development is done with Java. (Normal as in the official android SDK from Google is based around Java).

Since you will be learning it in school anyways, go with it, it is perfectly fine for game development.

Nowadays, choosing a language is less about the language itself, but the libraries and tools people have built around those languages.

For Java, a good library is libGDX, which is a wrapper for LWJGL.

It is for both 2D games(which you should start with) and 3D games.

libGDX is cross-platform, you can export to windows, android, iOS, or a webpage from one code base.

edit: I just noticed that David posted about libGDX too, but here's the links.

Stay gold, Pony Boy.

C++ is not the only one programming language you can use to make games. I would recommend not using C++ because from my experience it was a pain to link the graphics library with C++ without a tutorial.

Python with pygame, C# with Monogame or XNA pretty much sets up the game scene for you.

Java with its built in graphics library is also used to make games. Although you have to write the scene for the game from scratch. Where as C# with XNA does it for you.

That is not to say C++ is bad for the beginner.

The important thing is to keep moving forward and make progress when you are struggling with ideas during the game development process. In other words: do not give up! This is far more important than worrying about the language.

Learn C++ well and then you are ready for game development. If you learn it well, you have full control making your game.

http://www.cplusplus.com/doc/tutorial/

I use this during my studies of C++. Pretty good resource to learn from.

If you learn C++, you certainly wont regret it. IMO, I find it always looks more solid on a CV than most of the languages currently "trending". It shows that you understand that C++ isn't very hip and cool within the indie gamedev community but you have researched that it is the industry standard and have taken the initiative to learn it so that so you can get productive within a commercial company quickly.

As an aside, you can also use C++ for android development (without using commercial products such as Unity or Xamarin or rely on any other products with unacceptable DRM).

For resources, I really like the following

(OpenGL Tutorials) http://www.swiftless.com/opengltuts.html

(SDL Tutorials) http://lazyfoo.net/SDL_tutorials/

(Book) The C++ Programming Language - Bjarne Stroustrup

http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

Thank you all very much for the answers, really appreciated! Can someone speak a bit aabout Python with pygame?

I am totally convinced that most people new to game development should choose a game engine which fits their genre goal for games and their preferences, but some with no art abilities might want to consider an SDK instead like SharpDX, for example. After a game engine is selected, then focus on learning the main language of the engine and since you have programming experience in other languages, too, pick one for things like GUI creation and gameplay functions. You may need to learn a couple new languages for a certain development environment.

Now, that being said, there is a huge market for browser and/or hand-held mobile device games. Java programming coming soon for you and much of the experience of yours is very good for that area to get started.

Here is a list of game engines:

http://en.wikipedia.org/wiki/List_of_game_engines

There are many game engines, rendering engines, SDKs, and coding libraries not on the above list, but this will give you something in your search.

I suggest that you go to the Android main gaming community website and related sites to read about what game engines or SDKs that they use.

Links:

Another similar topic here at gamedev... http://www.gamedev.net/topic/632323-android-game-development-where-should-i-start/

Android Developers site: http://developer.android.com/index.html

So, start with the main sources of information and research from there.

Have fun! smile.png

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

Language, smanguage, it doesn't matter which one you use. There are some considerations you need to make, though. First, for any type of calculation-intensive game, you should use a compiled language, not an interpreted language. Also, you might want to consider library availability. Libraries are mostly available in languages such as C or Java, but I've seen OpenGL bindings for compiled Haskell, so you'll probably be able to find something no matter where you go. It isn't 1989 anymore, so you can rest easy knowing that it is completely possible to write a full fledged 2D or even 3D game in languages like Java (Minecraft, anyone?) and Python (Pyglet). As far as myself goes, I use C. I know I should use C++, Java, or Python and all of that, but I never really did. Another point of interest, is that there was, the other day, a user on here who is creating a language call C-UP, and it has built in parallel SIMD data types and other goodies for games programming, and it is a full language, not an API. I haven't used it (yet), but it might be worth a shot to check it out.

C dominates the world of linear procedural computing, which won't advance. The future lies in MASSIVE parallelism.

This topic is closed to new replies.

Advertisement