• Advertisement
Sign in to follow this  

What do I need to become an indie game developer?

This topic is 1242 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.pngNow 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! 

Edited by zhshr

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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).

Edited by Gian-Reto

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.....)

Share this post


Link to post
Share on other sites

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.

Edited by Gian-Reto

Share this post


Link to post
Share on other sites

 

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.

Share this post


Link to post
Share on other sites

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?


:) I'm not afraid of the pointers since I studied about that before when I participate the olympic of information. Chain tables are made of pointers, isn't it? That's why I'm confident about learning cpp.
All in all, thank you for your patient reply and the book?

Share this post


Link to post
Share on other sites

 

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?


smile.png I'm not afraid of the pointers since I studied about that before when I participate the olympic of information. Chain tables are made of pointers, isn't it? That's why I'm confident about learning cpp.
All in all, thank you for your patient reply and the book?

 

 

 

This is among the most common misconceptions about C++.

 

Pointers do not make C++ hard.  Frankly they aren't exactly rocket science, in fact they are one of the most consistent and easily comprehended portions of C/C++ once you adapt to underlying idea.  No, pointers do not make C++ hard, although they do on occasion make it fragile.

 

No, what makes C++ hard is...

 

- a build system from the 1970s.

- an evolution of over 20 years, and basically 4 different languages, and all the cruft that goes with that

- the everything is optional approach

- the paltry standard libraries

- the Byzantine inheritance rules

 

Those make C++ hard, not pointers.

Share this post


Link to post
Share on other sites

 

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.

 

 

I never said he couldn't learn it. I said don't bother with developing a game till he gets more experience with C++ first. Also, C++ would be a better language to start off with than most others. A lot of languages have been based on C, and the closest one is C++. C++ gives you far more power than other programs when effectively used, and when translating from C++ to Java, you can go in with some tricks up your sleeve, and a better understanding of how to manipulate data efficiently. Even though they say that there are no pointers in Java. they are actually just masked. And holds the same concept.

 

Also, I call the two engines kits for one main reason. Though Unreal is no longer the case now that they apparently released the source code for it as well.

A. Your control over the engines specifications are -very- limited. You can only use the engine under what the developers had made it for. It'd be very difficult to efficiently make an open world game with the Unreal Engine, without having to create multiple sectors to load in. You can do this via script I think, but the process runs much slower than hard code.

B. Unity you can do this. But it's just unnecessarily difficult at times. You can buy someone elses code. But let's face it, it takes a few minutes to do it yourself once you find the required API.

 

 

 

 

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.

 

 

Unity is actually a wonderful tool. It's not as easy to use as the UDK is. If you are willing to pay the money, you can get a node based scripting system. Your main language will likely be javascript or C#.

 

I did take some time to play with the system myself. I hadn't had any luck with finding the API. And the system can get a little confusing after a while when you remove the concept of what made C++... C++

Share this post


Link to post
Share on other sites

 

I never said he couldn't learn it. I said don't bother with developing a game till he gets more experience with C++ first. Also, C++ would be a better language to start off with than most others. A lot of languages have been based on C, and the closest one is C++. C++ gives you far more power than other programs when effectively used, and when translating from C++ to Java, you can go in with some tricks up your sleeve, and a better understanding of how to manipulate data efficiently. Even though they say that there are no pointers in Java. they are actually just masked. And holds the same concept.

 

 

 

Well, to the first statement I can agree. Having a solid basic understanding of programming to me is paramount even if you want to go "(not so) easy mode" and built on top of a pre existing engine. Simple as that, if you cannot programm, all you will be able to do with engines like Unity or Unreal is to create a shiny static scene without any interaction. Wow, so level design, much game smile.png

 

Though I am not 100% sure starting of with C++ is the best of ideas. I don't think its much harder to learn as Java, or Python. Still, there are additional concepts at work here, and as Serapht said before, not the most well organised and cleanest of APIs thanks to its organic growth over many years.

 

Of course there are pointers in Java. But there is a reason why they are hidden. Its something that the expert will complain about. But its a simplification that might make a beginners life easier, and let him produce working code faster.

 

Anyway, first things first. Before trying to to clever things with pointers, he should learn what an array is, how to work with objects and methods and classes. Almost any language will teach him that.

If he wants to go after the holy grail of performance, and learn C++, he can still move from another language to C++. I even think its benefical to know as many languages as possible. Widens the horizon, looks good in your CV, and gives you more options for implementing a certain feature down the road.

 

 

 

Also, I call the two engines kits for one main reason. Though Unreal is no longer the case now that they apparently released the source code for it as well.

A. Your control over the engines specifications are -very- limited. You can only use the engine under what the developers had made it for. It'd be very difficult to efficiently make an open world game with the Unreal Engine, without having to create multiple sectors to load in. You can do this via script I think, but the process runs much slower than hard code.

B. Unity you can do this. But it's just unnecessarily difficult at times. You can buy someone elses code. But let's face it, it takes a few minutes to do it yourself once you find the required API.

 

 

hm, I see. Calling closed source engines kits makes not much sense for me, but I see your point. That IS truely a limitation with Unity and UDK.

 

Yet its a limitation you traditionally had with ALL commercial engines until very recent and until you forked over serious cash for the source.

 

Also I think this limitation is less severe than you make it look like:

The scale of the game you can build until you run into limitations you would need source code to work around is actually quite big. Some limitations are more severe than others (no 64bit support in Unity editor until Unity 5), some might be fixable with source access (for example no shadows cast unto transparent materials in Unity.... seems it was not done by Unity because of its complexity, not because its inherently impossible).

Most of the time, you can work around it, either by faking it (use decals to fake shadows on transparent meshes, works fine for static shadows), or by clever scene management (break up your scene into multiples for editor work, merge em at runtime with a streaming system). Might have been easier to just fix the engine code.... yet, changing the engine is some serious coding that will be a bad idea for not-so-expert-coders, so while the ability of community enhancements and forks sounds very appealing, I have not really missed the source that much with Unity.

 

Granted, sometimes working around limitations is quite hard to do, but clever people have developed Enhancements for the engine, that work around most of its limitations, and put them on the asset store. In Unitys case, most of them cost money, true. But then, nothing in life is really free. And there are people that prefer the simplicity of having paid work over the legal minefield that sometimes surround opensource products, thats why opensource only found its way into big businesses in very limited quantity.

This is also one reason why opensourcing your code and letting people freely modify and distribute it is a big gamble for a company. Most of their fears might be unfounded, but thousands of peoples jobs and countless millions of manhours of work are at stake, so I understand why companies like Unity are not rash in opening up their source.

 

 

Then there is an important point, why a commercial engine might still be a better idea than a free opensource one. Support. Simply put, I worked with a small engine developed by a single person for almost 2 years. While the engine was quite advanced for a lone wolf product, and cutting edge when I started using it, it quickly became stale because this single developer choose very bad directions for development, developing unecessary stuff when the engine core needed an update.

 

Of course you might say why wait for the engine developer to update the engine when you can just do it yourself with an opensource engine? Well, some people are trying to build games instead of modding the engine they are using, they might work on their project part time or as a hobby, their programming knowledge might be enough for developing the game but not for serious low level engine development.

 

 

So while I agree in part that this is an important limitation in closed source commercial engines, I don't think this should be the first thing a newcomer should worry about. And I also don't agree about the "its easy!" part. For some modifications, yes, you could modify the engine in minutes or have to develop a workaround in hours. But some systems in the engine will be less easy to modify.

 

 

 

Unity is actually a wonderful tool. It's not as easy to use as the UDK is. If you are willing to pay the money, you can get a node based scripting system. Your main language will likely be javascript or C#.

 

I did take some time to play with the system myself. I hadn't had any luck with finding the API. And the system can get a little confusing after a while when you remove the concept of what made C++... C++

 

 

No idea about Unreal really, but AFAIK from the editor point of view, Unity should be just as easy to use as Unreal, if not easier (though this goes in the direction of "X is better than Y", which is highly subjective). Really, Take my comment with a mountain of salt, as I never used UDK.

I don't get your point about the API though. The Unity API is on their homepage, well documented and presented, and easy enough to search. What did you miss?

Of course, its an API for writing behaviour scripts or editor extensions, not a "mod the engine" API. Unity is still as closed source as it can be... if that is a problem to you.

 

Well, I kinda like C#, while I am not that much fussed about C++, so I might be biased. This is now again highly subjective. Point is: C# is the language of choice for Unity development. You can develop Plugins in C++ if you want, what some asset devs did (to be able to deliver closed source compiled assets, mind you smile.png ). But of course you will not find a C++ API, as it is not what Unity was written to interface with.

So if you don't like C#, and insist on using C++ for your development, you are right, Unity is not the right choice then.

Edited by Gian-Reto

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement