What do I need to become an indie game developer?

Started by
12 comments, last by Gian-Reto 9 years, 7 months ago

Hello all,

I'm new to the forum and I want to become an indie game developer. I have a lot of experience programming in PHP and Node.js but only some basic knowledge about c++ and delphi. [I hate java sad.png ] Now I have some question about game development.

First I will show my target. I want to produce a high-freedom sandbox game whose background is a brand-new mainland. The player builds his own town and compete with other AI or players. It is quite something more than the combination of mount&blade and tropical.

First and the most important... Which IDE should I use? My old computer was equipped with i5-450m and 8G memory and I tried to use visual studio 2012 on that. Sadly the vs runs laggy. My new computer is a laptop with I7-4710HQ with 16GB memory and I want to know if it can run smoothly. Otherwise I don't want to mess up my OS with the complex dependencies vs 2012 or 2014 come with...

The second one is about game engines. I had played(yes not studied only played) with UDK before. Now I'm wondering if I need to use one of the existing game engines such as source engine or unreal. I don't know if it would cost me more to study the engine than write an engine by myself. (I'll be grateful if anyone can explain how the engines co-works with the core logic. Are they using messages or just calling each other?)

Thirdly, since I'm approximately new to c++, I will start from some easy samples and I found a lot of useful links on another topic http://www.gamedev.net/topic/661184-where-to-start-as-a-game-programmer/ . What I'm questioning is that what should I study after that? Artificial intelligence or anything else?

Great thanks!

Advertisement
Your game idea might be possible for one or a few people, but it might be rather big. Taking baby steps can be really annoying as a game developer, I find it annoying. But it will still help you in the long run, because getting knee deep in an unfinished large game can be even worse without much experience. I recommend picking a language and starting with Pong.

Source: I have been making games using programs like Game Maker for many years, and still can't make something that rivals a commercial GameCube game, even with Unity.

Your game idea might be possible for one or a few people, but it might be rather big. Taking baby steps can be really annoying as a game developer, I find it annoying. But it will still help you in the long run, because getting knee deep in an unfinished large game can be even worse without much experience. I recommend picking a language and starting with Pong.

Source: I have been making games using programs like Game Maker for many years, and still can't make something that rivals a commercial GameCube game, even with Unity.

Yes I'm devoted to take the first steps and the most important question is the selection of IDE... I'll edit the post. Thanks

If your goal is to make a game, don't write your own engine. Use Unreal, Unity, or one of the other existing engines. The popular ones all have good tutorials, start with one of those so you can learn the engine.

There are people who enjoy writing engine-level code, or who have an idea that can't easily be expressed in an existing engine, but unless that's your specific goal you'll get a lot more accomplished if you leverage existing code and libraries.

1) Whatever language and IDE you choose to start of is pretty much up to you. All the languages relevant to game dev share common roots (C, basically), so if you pick Python, C++, C#, Java, or Whatever is up to you. PHP usually is less ideal unless you are trying to create some kind of website/game crossover.

There are both frameworks and engines out there that support these languages, and there are many other IDEs available besides VS.

Be aware that your first few tries will most probably not be very effective and productive, so start small, and try to learn the basics. Implement a game loop, get some 2D Stuff moving on a canvas, stuff like that. Finish something. Be proud of it, no matter how it looks!

2) Make sure you don't get bogged down in developing a large scale engine, if that is not what you want to do! Starting from scratch is very good for learning purposes, and can be a good idea later on either for small projects or projects with very specific needs that cannot be fullfilled by existing engines.

But it is highly unproductive to start from scratch with every project, and it is a good idea to use a pre-existing engine, that is why almost all big studios and AAA projects nowadays do just that.

Look into Unity or Unreal Engine 4. Both are free or low cost, have large communities and a lot of tutorials. You will need to learn C++ or C# for developing for them, but that shouldn't be a big problem for a seasoned PHP dev.

3) your target sounds, depending on the scope and art style, quite managable, if rather large for a single developer. Make sure you are aware that you have a multiyear learning process ahead, and then a most probably multiyear development process, if you keep working on it as lone wolf and part time (I guess you still need to pay your bills).

If this is okay with you, next thing is to be aware that art is a whole new world unto its own, needing at least as much time and learning time as coding and game design if you also want to tackle that by yourself. It might be a good idea to think of what you want to do for art when you are ready to start your target project. You can buy stock art, try to collect enough free art, find an artist to outsource art to (some work for free, but its way easier to find an artist if you can pay), do the art yourself (easy for simple 2D games, potentially a big problem for complex 3D Art).

Getting more experienced in C++ would be a better start. Not to offend you but, there are reasons why it's recommended for you to build small programs before going into game design. You will be using a lot of pointers. And it's errors are usually hard to track alone in a small one. When you put that in a real time program, and you don't know how to effectively handle it, your program will be crashing a lot.

If you are new to C++, BACK OFF. I am not going to lie, but game development is not an easy task. Especially if you don't plan on using a popular Game development engine. This means Unreal or Unity. These aren't considered actual game engines, but kits. As they make it easier for the user to make games, but hold a limited functionality. And a style that is easy to detect.

I honestly recommend taking a few classes in person to learn C++ before you continue. You will be able to ask your professor for help. Learn concepts that will only be discovered if you even knew their names. Plus you'll need a strong foundation in math. So toss Calculus at minimum.

Then there are books, but they don't go to far outside of the scope of their titles. Even then, it's a limited subject, and encourages only their style.

But if you use a GDE, then that's a different story

Now then.

The IDE you use should be compatible with the language you use. Also, do a bit of research on them. It wouldn't make much sense if you use an IDE who has a lot of bells and whistles, but it will only work for one language. I use Visual Studios because it has some nice debugging features. Takes a bit to learn it, but it helped me a lot with finding logic and pointer errors.

For your second question. Probably the source engine would be your best bet. If you plan on using an IDE, then this one is absolutely invaluable. But why the source engine? Well, it's a full completed engine that gives you access to nearly all of it's code. This means that you can fine tune the engine to match your needs. And even upgrade/add more features. It's also easier to adapt other people's work into code. Most code is done in some version of C. The publishing rights are free I believe once you have been green lighted on steam.

Getting more experienced in C++ would be a better start. Not to offend you but, there are reasons why it's recommended for you to build small programs before going into game design. You will be using a lot of pointers. And it's errors are usually hard to track alone in a small one. When you put that in a real time program, and you don't know how to effectively handle it, your program will be crashing a lot.

If you are new to C++, BACK OFF. I am not going to lie, but game development is not an easy task. Especially if you don't plan on using a popular Game development engine. This means Unreal or Unity. These aren't considered actual game engines, but kits. As they make it easier for the user to make games, but hold a limited functionality. And a style that is easy to detect.

I honestly recommend taking a few classes in person to learn C++ before you continue. You will be able to ask your professor for help. Learn concepts that will only be discovered if you even knew their names. Plus you'll need a strong foundation in math. So toss Calculus at minimum.

Then there are books, but they don't go to far outside of the scope of their titles. Even then, it's a limited subject, and encourages only their style.

But if you use a GDE, then that's a different story

Now then.

The IDE you use should be compatible with the language you use. Also, do a bit of research on them. It wouldn't make much sense if you use an IDE who has a lot of bells and whistles, but it will only work for one language. I use Visual Studios because it has some nice debugging features. Takes a bit to learn it, but it helped me a lot with finding logic and pointer errors.

For your second question. Probably the source engine would be your best bet. If you plan on using an IDE, then this one is absolutely invaluable. But why the source engine? Well, it's a full completed engine that gives you access to nearly all of it's code. This means that you can fine tune the engine to match your needs. And even upgrade/add more features. It's also easier to adapt other people's work into code. Most code is done in some version of C. The publishing rights are free I believe once you have been green lighted on steam.

Thank you Tangletail. Would you please give some advise about unity? Since it is based on C# I think it may be easier to get on the track.

1) Whatever language and IDE you choose to start of is pretty much up to you. All the languages relevant to game dev share common roots (C, basically), so if you pick Python, C++, C#, Java, or Whatever is up to you. PHP usually is less ideal unless you are trying to create some kind of website/game crossover.

There are both frameworks and engines out there that support these languages, and there are many other IDEs available besides VS.

Be aware that your first few tries will most probably not be very effective and productive, so start small, and try to learn the basics. Implement a game loop, get some 2D Stuff moving on a canvas, stuff like that. Finish something. Be proud of it, no matter how it looks!

2) Make sure you don't get bogged down in developing a large scale engine, if that is not what you want to do! Starting from scratch is very good for learning purposes, and can be a good idea later on either for small projects or projects with very specific needs that cannot be fullfilled by existing engines.

But it is highly unproductive to start from scratch with every project, and it is a good idea to use a pre-existing engine, that is why almost all big studios and AAA projects nowadays do just that.

Look into Unity or Unreal Engine 4. Both are free or low cost, have large communities and a lot of tutorials. You will need to learn C++ or C# for developing for them, but that shouldn't be a big problem for a seasoned PHP dev.

3) your target sounds, depending on the scope and art style, quite managable, if rather large for a single developer. Make sure you are aware that you have a multiyear learning process ahead, and then a most probably multiyear development process, if you keep working on it as lone wolf and part time (I guess you still need to pay your bills).

If this is okay with you, next thing is to be aware that art is a whole new world unto its own, needing at least as much time and learning time as coding and game design if you also want to tackle that by yourself. It might be a good idea to think of what you want to do for art when you are ready to start your target project. You can buy stock art, try to collect enough free art, find an artist to outsource art to (some work for free, but its way easier to find an artist if you can pay), do the art yourself (easy for simple 2D games, potentially a big problem for complex 3D Art).

Gian-Rito thank you for your reply. Yes I'm worried about the art. Maybe I need to find an artist immediately after I launch the project(of course when I studied enough). Now I'll give it a shot on Unity(maybe.....)

Getting more experienced in C++ would be a better start. Not to offend you but, there are reasons why it's recommended for you to build small programs before going into game design. You will be using a lot of pointers. And it's errors are usually hard to track alone in a small one. When you put that in a real time program, and you don't know how to effectively handle it, your program will be crashing a lot.

If you are new to C++, BACK OFF. I am not going to lie, but game development is not an easy task. Especially if you don't plan on using a popular Game development engine. This means Unreal or Unity. These aren't considered actual game engines, but kits. As they make it easier for the user to make games, but hold a limited functionality. And a style that is easy to detect.

I honestly recommend taking a few classes in person to learn C++ before you continue. You will be able to ask your professor for help. Learn concepts that will only be discovered if you even knew their names. Plus you'll need a strong foundation in math. So toss Calculus at minimum.

Then there are books, but they don't go to far outside of the scope of their titles. Even then, it's a limited subject, and encourages only their style.

But if you use a GDE, then that's a different story

Now then.

The IDE you use should be compatible with the language you use. Also, do a bit of research on them. It wouldn't make much sense if you use an IDE who has a lot of bells and whistles, but it will only work for one language. I use Visual Studios because it has some nice debugging features. Takes a bit to learn it, but it helped me a lot with finding logic and pointer errors.

For your second question. Probably the source engine would be your best bet. If you plan on using an IDE, then this one is absolutely invaluable. But why the source engine? Well, it's a full completed engine that gives you access to nearly all of it's code. This means that you can fine tune the engine to match your needs. And even upgrade/add more features. It's also easier to adapt other people's work into code. Most code is done in some version of C. The publishing rights are free I believe once you have been green lighted on steam.

While I agree that C++ seems to be the de facto language still for a lot of the game dev world, you can do a lot nowadays without C++. A lot of engines give you other options, and a lot of frameworks are available for other languages (pygame for example for Python).

Also, just because someone is new to C++ does not mean he cannot learn it... if he is expierienced with other languages or just a fast learner, might not even be that hard. Pointers might be the horror, still, others made it through, why shouldn't he?

Unity and Unreal are just as much an Engine as Frostbite or CryEngine. I don't see why you call them kits. Every engine nowadays will bring an editor and stuff like that. If you mean by Kit that its easier to learn than others, maybe. If you mean by kit can be used without programming knowledge, NO! As soon as you want to do anything worthwhile, you need to program behaviour scripts in Unity. And I wouldn't trust the visual scripting tool in Unreal too much too.

Also, functionality of Unreal or Unity is just the same as with any other commercial engine. Unity free version has some limitations, true, but has other advantages over some of the other free engines out there. Unity Pro has no limitations (just costs you 1500$ per seat). Unreal is not 100% free (UDK is, but that is legacy now. Unreal 4 costs 20$ minimum), but is among the most cutting edge engines on the market. No limits there really (you even get the full source).

Cannot really comment on the Source engine, as I never used it. Heard good things about it, even some bigger studios use it, its free, so yeah, giving it a try will not hurt. And certainly, IF the TO will need to change the engine (which he probably will not for quite a long while, and maybe also lacks the expierience to do that), he can...

For a beginner though, I think the usability of the editor, the size of the Community and the amount of documentation beats almost everything else (besides the price point). Source certainly is among the better engines here, but I am not sure if the editor really holds up, or if the community and tutorials are vast enough (again, I never really dabbled in source).

Books, good point. Here is a book that is a good start:

http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=sr_1_3?ie=UTF8&qid=1411573843&sr=8-3&keywords=game+engine

I bought it, and it will tell you how a Game Engine works in a nutshell. There is even a newer edition that might be more up to date.

Gian-Rito thank you for your reply. Yes I'm worried about the art. Maybe I need to find an artist immediately after I launch the project(of course when I studied enough). Now I'll give it a shot on Unity(maybe.....)

Yes, for the time being don't worry about art. You will find enough stock art, free art or ways to proxy art (simple cubes, stuff like that) to start working on some simple games even in 3D engines.

If it stirs up your interest in doing some art yourself, with some training doing simple art is not that hard or time consuming. If not, you might be able to get an artists help if you can present them a very interesting project, or they might give you a cheap rate if your art style is rather modest.

Also, you will not need art "immediatly". The only milestone where you WILL need good looking art is just before you show your game (prototype / demo / finished game) to the public for the first time.

Don't show potential customers placeholder art. This will make a very bad first impression. Until then, feel free to use any placeholder as long as you or whoever else is working on the project can understand what the placeholder is proxying.

Books, good point. Here is a book that is a good start:

http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=sr_1_3?ie=UTF8&qid=1411573843&sr=8-3&keywords=game+engine

I bought it, and it will tell you how a Game Engine works in a nutshell. There is even a newer edition that might be more up to date.

While a solid book, certainly not beginner appropriate.

This topic is closed to new replies.

Advertisement