What language should I choose for beginning game developing?

Started by
7 comments, last by Igor Andreev 10 years, 8 months ago

Hello everyone.

I'm a Web developer and thinking about learning game development.

I know, that all you need - is inspiration, small basic idea and a lot of effort. I mean, many people don't even think about language. They google, find couple of answers and start programming basic game in one of several languages.

I learned programming by myself, starting from ActionScript (1, 2, then 3). Then, when I needed a job and in my location there were only job offers for "JavaScript, PHP, MySQL, CSS, HTML" developers I stopped working with ActionScript and learned all those things.

I'm working on Mac OS, so this also affects my choice of programing language for game development.

For me, when I worked in AS 3, game development (at least 2d) was objectively easy. There class with npc, there class with damage zones, here is player, that could shoot and many other easy things that you could do in AS 3 by just writing something like (I don't really remember AS 3 now)


//Somewhere in class Game

private var gun:Gun = new Gun(30, playerOne); //ammo and controls of player one and adding gun sprite for player one

//somewhere in class Player

public function shootGun() {
    if (this.hasGun && this.hasAmmo) {
        this.gun.shoot(targetOne);
    }
}

Something like this.

All was already there for me. Creating sprites, animating it with Tween class or basic changing x/y, etc.

After 2 years of web development (without cool things like Canvas or interesting animations) I found myself in the "mindless and ignorant" state of knowing nothing about game development at all.

I searched information and found many many possibilities. I found Java and LWJGL (OpenGL), discovered, that at least 2 not bad games was written in Lua (Don't Starve and Project Zomboid), found that C++ is very good way to start developing games, but I don't really think that it's very suitable for working with on Mac OS.

I though about game engines. I though about Unity, Source, Unreal Engine.

But I did nothing for starting actual game development. Only was preparing and thinking about many ways.

One thing I know - I don't want to develop for mobile platforms. Now - for PCs or Macs.

I don't know what it is, that was holding me from starting. Fear of possibilities and choosing a "wrong way"? Maybe. Not much time? Maybe, but I'll overcome this problem.

I ask you to give me some advices, based on your experience. What languages you learned? What was useful and you started working with?

What was the biggest barrier and fear?

Advertisement

C++ works on mac. If you can code already then think about using c++/openGL. If you really want to learn in a timely fashion, and have the highest possible chance for success you will have to break out the money and pay for some books/websites/dvds.

There are lots of good books on c++ and game dev. But you'll have to learn your chosen language first. Don't think you can just jump right into making games. Making games is the elite area of programming, you have to be a very good programmer to make games. So make that your first long term goal.

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

Starting game development isn't really that hard imo. All you need is to have a game idea. Since you already are familiar with several languages then you should start with one of those. I would suggest you start with 2D at the beginning, but you are always welcome to go with 3D if that's what you want of course.

Here are some engines I'd recommend for you:

Loom Engine - You can build for Windows and Mac, also iOS and Android if you ever want too, and it uses their own language which is an AS3 + Lua style approach to coding.

libgdx - This one uses Java, which is familiar to AS3 I believe? libgdx can deploy to every platform that supports Java, so pretty much every platform. Good news about this is that with the same language you'll be able to reach any platform you want almost, and if you ever make a game that is playable on mobile and desktop, this is a great solution. Forgot to mention the performance is great.

Citrus Engine - Let's you build for Windows, Mac, Linux, iOS and Android and uses AS3 to script.

Haxe + OpenFL - Let's you build for pretty much every platform out there and has great performance. Uses the Haxe language which is familiar to AS3.

Qt-Project - Uses their own QML language which is a combination of Javascript + Css, let's you deploy to Windows, Mac, Linux and more.

For me it's always been, oh I want to make that kind of game and reach those platforms? First find multiple engines that can reach the platforms I desire, then pick the one I feel most comfortable programming in and that has the best support/community. After that it's just like a puzzle, learning to code your game, start from making your character to giving him controls and you just keep building on it. It is better if you have your game planned out though, it will allow you to code some things better knowing that you will be adding other features that are related to it. My advice kinda sucks since I'm still pretty new myself, but hopefully the engines will be helpful at least =) I also have even more engines for you if you don't want AS3 and prefer C++ or C#. Best of luck!

What was the biggest barrier and fear?

the biggest barrier is learning to use google.

On average, there is 1 thread like this every other day only on this website.. so probably there are thousands of threads like this on the internet.. and they are ALL THE SAME... really, what makes you think yours will get anything different?

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

Hello everyone.


I ask you to give me some advices, based on your experience. What languages you learned? What was useful and you started working with?

What was the biggest barrier and fear?

Hi,

I've been doing more serious game programming for about three quarters of a year now. I had some Java background, and that was honestly it.
C++ is known for being a tricky language, and it was indeed a bit of a challenge to grasp (and sometimes still throws surprises at you). However it is also the most performant language if you know what you're doing. Therefore I recommend learning the proper game-dev language right off the bat. Along with OpenGL for graphics (unless you're a directX Guru already).

The way I started was to first create a mini-project, mine was a simple 2D Rpg styled game, with farming options. It was an ideal project to learn C++ with, and to also already identify design pitfalls. Once I felt comfortable enough with it, and was reasonably satisfied with the features I had, I slowly started to work on my real 3D project.

Some books that I had laying around, or ordered additionally, are:

- Programming an RTS game with Direct 3D (relatively easy to translate to OpenGL)
- Came Coding Complete: Fourth Edition (more of a theoretical work, but has some very good design patterns in it)
A very good OpenGL site that has modern tutorials:

- http://ogldev.atspace.co.uk/

The most important thing to do is to not get stuck in over-planning things, jump in and make a game. Your first planning will be a bit messed up anyways, and you won't create the perfect design right off the bat. As you learn more, you'll get more insight into these sorts of things. Then you'll grab a book to complement your experience.

Good luck!

Cheers

I would advice you to choose an engine, unity and UDK (ue3) are propably the best at the moment (ue3 got 2013 best engine award), after you are familiar with an engine, and really know how to use it, how it works, you can start going low-level for learning purposes (something like c++ for example) but for serious games, better use an engine, remember, they are 1000ts of hours of Human work, use it. You can find more info about Both, in another thread i posted in, is in the same forum section, ca 5 places lower. something like need help to start game development or something like that.

I started with Java and just wrote 2 small games with it: Pong and a simple arcade shooter game. Learned so much more about the language writing games.

The language itself will not make a great game. It is the idea itself that does.

It is important to experiment with the code built into the language. Besides being fun, I would say you understand it better when you actually experiment. Make mistakes and learn.

The language is not a big of a deal when you are starting out. As long as you are using a language that comes with a graphics library you are set. Python, C# and Java are great for such a game project. There are libraries that do a lot of the heavy lifting for you. Save you a lot of time setting up the graphics environment and let you focus on the game logic itself.

Game development is very time consuming and challenging. It is important not to underestimate time when you are making things work from a technical standpoint. I would say just start and start writing games. Be consistent with the project and you will have a game with the features you envisioned. tongue.png


I ask you to give me some advices, based on your experience. What languages you learned? What was useful and you started working with?



What was the biggest barrier and fear?

Language I learned first was Python, then Java, and then quickly migrated to c++..

It was useful to learn c++, things like pointers and references, to me because it taught me how computers work and what you are actually doing when you are programming.

Its nice to have things happen quickly and easily but... knowing what is going on behind the scenes can help you write much much better code. For example - knowing that binding different textures to texture units is a relatively expensive operation will let you design your code from the start so that it does this as least often as possible.

My biggest fear is not finishing something I've started. I don't know why really but there is no other thing that can make me feel lame quicker than knowing I couldn't finish something I have started. So with that I always try to aim smaller and let the project grow if there is room for it to grow.

My biggest barrier has always been time. Coding is a strange thing.. its not really something you can easily just throw an hour here and there at.. it seems like you always need at least like 4 hours to work on something to get any real work done. This makes it hard to keep working on projects sometimes..

In any case - good luck and stick with it!

Everyone, thank you very much. Your answers helped me to choose language and some books to start, so making a simplest game for me will be the first goal.

Again, I'm very grateful for your stories and advices! You are all magnificent sirs here.

This topic is closed to new replies.

Advertisement