So, I want to become a game devolper...

Started by
14 comments, last by CBravo 7 years, 7 months ago
Hello! My name is Khaled, around two years ago till now I was really interested in programming games for Mobile, ios and Android for to be precise, unfortunly I didn't get the chance to, anyway I was struggling to know what in the world should I do to start out, I searched for days and weeks to know where to start but always ended up lost still, I have a decent back ground now since, hopefully you kind folks can help me out.


So first, the always asked question.. What language should I use?

As I said earlier, and please consider this and tell me if there are better alternatives..
I want to program games but maybe in the future to program applications.
I want to program for mobile as well, for now android and ios but why not windows phone and so on too? If possible.
In the future too why not make it also cross platform with windows or consoles if possible!


Now keeping that in mind, first question, programing language to choose!
So the FAQ says C# and Python but does Python support mobiles? Even better does the IDEs that support mobile platform any good? If any?? Or should I just move to another platform or even choose another language?



IDE
Which IDE supports mobile gaming and which supports apps, for example I have heared of xamarin and visual studio which happens to have xamrin in it somehow, what do either of them support or are they even any good in gaming? Xamarin lead me chocos sharp, urhosharp and monosharp so I just added unity3d and havok, in other words.. Wtf I mean of course I will start 2D..right? But why not 3D in the near future or what is the best 2D one vs the unity for example, and which is best for the future? And which is best for now as a beginner?


Sources to learn all that!
I heard of Udicy or something but Iam still not sure



Conclusion
Now I relize I have asked all questions in the world about programing, the answer of life and every all questions in the known universe but lets try our best to sum up all the answers with their explenations to help out new devolpers as my self so try to be as detailed as you can, thank you sooo much! Sorry if there are any missunderstanding and have a great day eveyone!

Your very friendly pal
Khaled
Skype: Khaledmoharram125
Kik: Khaledmoharram
Gmail: Khaledmoharram1
Advertisement

I like C# a lot, you can grab Visual Studio community and immediately start building apps that run on Android, iOS, and Windows (phone/desktop/Xbox). Really can't ask for much more.

Unity3D is a solid choice for games, but it won't get you much in terms of building non-game applications.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

I like C# a lot, you can grab Visual Studio community and immediately start building apps that run on Android, iOS, and Windows (phone/desktop/Xbox). Really can't ask for much more.
Unity3D is a solid choice for games, but it won't get you much in terms of building non-game applications.

Awsome, thank you aton! How ever as much as your answer is so perfect and straight forward, it does lack a little of details why and what about the other things, never less your answer is really helpful,

if anyone else has answers to the other questions and explanations for example what even is xamrin doing in visual studio? Last time I installed visual studio it says I need Xamrin to program for mobile platforms, Xamrin says just that + windows, then whats the point of visual studio? Xbox and windows phone? And such.

Other Similer questions are what is the point of all the other game programing apps if they are no match for unity3D, what about the henerchy project by Havok?

Last and simple question, what programming language should I learn next? I heared c++ is a pretty great choice. And finally the where to learn.


The additional details aren't forwarded to the great @Promit in pirticuler hence the quote but are just a smaller version of what he already solved, also if any one has another openion to him or such, all answers are massivly apriciated as not only it helps my self, iam planning to use all you great folks info to implient them in an easier way for people to know what should they do when they start programing. You can say pretty much anything or feature you want to say about things and them vs other programing stuff.. Etc.. Consider the topic name to be '' Programming info '' where anyone can contribute, thanks all and have a wanderful day.

I heared c++ is a pretty great choice

In the long run C++ is a language you will probably be expected to know as a professional game developer, although many of the rising generation are less familiar with it. You'll need to know a language for systems-level work, and these days C++ is the main language for that.

C++ is not a good choice for a first programming language. It is has a harsh learning curve, it is easy to do things wrong, and the language assumes the programmer knows exactly what they are doing (which for beginners is usually false).

If you're already familiar with programming and know basically what you are doing it may be time to learn it.

what even is xamrin doing in visual studio? Last time I installed visual studio it says I need Xamrin to program for mobile platforms, Xamrin says just that + windows, then whats the point of visual studio?

Visual studio is an IDE, or Integrated Development Environment. That's a text editor, debugger, development tool, and a bunch of other stuff all bundled together.

Xamarin is a set of software libraries that can help you build software on some environments, but it isn't required.

what is the point of all the other game programing apps if they are no match for unity3D, what about the henerchy project by Havok?

Analogy: What is the point of all the other car makers, nobody is a match for Ford Motor Company?

There are many programs and libraries and systems because there are many different needs and preferences.

You mentioned C#, and Unity uses that for development. If you were focused on C++ then Unreal may have been the more natural suggestion.

I heared c++ is a pretty great choice



In the long run C++ is a language you will probably be expected to know as a professional game developer, although many of the rising generation are less familiar with it. You'll need to know a language for systems-level work, and these days C++ is the main language for that.

C++ is not a good choice for a first programming language. It is has a harsh learning curve, it is easy to do things wrong, and the language assumes the programmer knows exactly what they are doing (which for beginners is usually false).

If you're already familiar with programming and know basically what you are doing it may be time to learn it.

what even is xamrin doing in visual studio? Last time I installed visual studio it says I need Xamrin to program for mobile platforms, Xamrin says just that + windows, then whats the point of visual studio?


Visual studio is an IDE, or Integrated Development Environment. That's a text editor, debugger, development tool, and a bunch of other stuff all bundled together.

Xamarin is a set of software libraries that can help you build software on some environments, but it isn't required.

what is the point of all the other game programing apps if they are no match for unity3D, what about the henerchy project by Havok?


Analogy: What is the point of all the other car makers, nobody is a match for Ford Motor Company?

There are many programs and libraries and systems because there are many different needs and preferences.


You mentioned C#, and Unity uses that for development. If you were focused on C++ then Unreal may have been the more natural suggestion.
Thanks alot for your reply, much apriciated however if iam to comment..
The first point is top notch, thanks.

The second one however still makes less sence to me, I mean if microsoft bought Xamarin and both of them can program stuff for windows I think, VS still tells me to install Xamarin for mobile devolpment, which platforms do either target?

For the third point, That was not what I ment, what I ment was if Unity was so perfect, why would a whole ton of people use the other Engines? And if such Ford was better, cheaper, faster and simply best in everyway its stupid to choose any type of other cars, but because it doesn't is why people would choose the other cars, my same question here, what are the advantages of the other engines? Thank you so much again for replying neverless :)


Alright thank you alot people, my question for my solo purpose has now been confirmed, turns out my researches weren't in vain! You two lovely people brought me peace at last!


A little note here now, as I mentioned earlier, I just want it to be an easier way for people to know where to start, the world needs more rich programmers!

However, if this topic is in anyway annoying, repeatative, stupid or in anyway bothers someone for a good reason, please tell me and I will take it down at once and iam sorry for sny inconvenience.

If not then here is the new set of questions!

These set of questions pretty much for the web devolper folks although I doubt they would be less experinced than new programers being a more specific genre.

And just to confirm my points, Swift for ios, java for android?

Three questions here,
Why would someone use Java/Swift or what so ever instead of c#/c++ or generaly just c++ if they are going to devolpe for the single platform?

IDE for Java or what so ever


Please note, that I do relize that there are differences in these languages with pros and cons, iam not asking which is the 'best' programing language/IDE is to use, iam asking why is this better than that under the following circumstances or even more precise what are the differences between this and that is what would make me wander which is the best under such circumstances.

Those would be, anew devolper, an old dev, platform, and either game app or non-game app, for now I got pretty much everything when it comes to devolping apps *exept why is that better than that?* still lack the other questions to be answered, thank you all for your precious time!
Trying again with that updated information.


Visual Studio is an IDE, a text editor, debugger, project builder, and several other things bundled together. Visual Studio can work with many different tools to help you build software. Xamarin's offerings are one of many smaller libraries that you can use to help you build software You may use Visual Studio with different tools. You may use Visual Studio to develop web sites using various tools, or to develop SQL queries using various tools, or to develop Windows applications using various tools, or to develop XBox games using various tools, or to develop Windows Phone programs using various tools. Xamarin's tools are one of many different tools available. Visual Studio serves as a convenient text editor, debugger, project builder, that you use it with.

You could use whatever you want instead, maybe use Notepad for your text editor, WinDebug as your debugger, and a bunch of batch files and downloaded programs for your project builder. You can use something different like Eclipse or IntelliJ or NetBeans or MonoDevelop or others. Many people would rather use an IDE, and since Microsoft purchased Xamarin, they bundle the tool as one of many tools that works with Visual Studio.


Regarding the two big engines, they have many differences. Already mentioned, Unity uses C# for scripting, Unreal Engine uses C++. Their pricing models are different. Under the hood Unreal Engine is focused primarily on first person shooters and networked games. Based on the age comment at the top, you are likely too young to know when Unreal wasn't a game engine, but instead Unreal was a first person shooter with network play, competing with Quake Arena and a few other titles. Even though it has been through some iterations Unreal Engine is still best at games in that genre; high production value first person shooters with a networking component. Unity was built with a different motive in mind, to be a generalist engine, that shows a clearly different focus toward smaller-scale development. Unity focuses more on physics-based actions. If you are looking for different game engines with a different focus there are many out there. Game engines focused on 2D worlds and 3D worlds, game engines focused on building card games, game engines focused on JRPG games, game engines focused on platformer games (like Mario style), and more. Both Unity and Unreal Engine are free to try and free for limited use, so get both and check them out. While you are at it, try some 2D tools like GameMaker Studio or if on Apple's devices, consider GameSalad, both are free to try. Consider evaluating other tools and engines if you like, these days most are free for evaluation at least, and many have moved to a model of being free for certain small product releases.


Regarding a choice of IDE, there are many out there. NetBeans, IntelliJ, and Eclipse are good general purpose systems that tend to focus on Java development but work just fine with C++ and C#. CodeBlocks is a smaller system that tends to focus on c++ development. Emacs tries to be everything and some people love it. There are many more. All of them are different, all of them are better for various situations. As for what is best for various circumstances, that is up to the individuals. Many people have their preferred environments, and their own reason for wanting to do things. For many years Visual Studio was the very best IDE by nearly any objective measure. Over the past six years or so it has lost much of that standing partly to their own decisions that made the product less responsive for developer's needs, and partly because the competition has dramatically improved. All of the ones mentioned have free versions, try them all and see what you like.
For the third point, That was not what I ment, what I ment was if Unity was so perfect, why would a whole ton of people use the other Engines?

Ultimate perfect for everybody does not exist. (Companies try to make you belief it exists, but it doesn't.)

Suppose you have some land, and you want to build a house on it. But it's big, so you dream what to add more.

- House

- Second house in the garden

- Big garage

- Big garden

- Tool shed

- House for the ground keeper

- Pool

Pretty soon, your list will be too long for everything to fit on your land.

As a result you compromise. A house, but no second house. A not so large garden. No tool shed.

This continues, until you compromised enough to make it all fit, and then you build it, and it's perfect.... for you.

In the compromising process, you dropped things that you didn't care much about. Other people would have made other choices. They would perhaps drop the pool instead. At the end, it's also perfect... for them.

But your solution and their solution is different. This happens everywhere.

In anything that make, you have to make choices in this compromising process since you cannot include everything.

Anything you decide not to include makes it less perfect for someone else.

Yes, thank you so much both for clearing things up, you people are legands! You cleared up pretty much everything, but perhaps you missunderstood my prespective just slightly. You see, I didn't come here asking what is the best ide or programing language there are (well I technicly did hence the topic) but imagine someone stepping in the programing industry with pecific needs, for my case want to program games for mobiles! But when iam told by many people a tremendous amount of different options, I will just step right back out abd get a Mac job! I see there is no clear answer and all different IDEs and languages say they do everything in the world, perhaps languages are more pecific, IDEs aren't however, they all serve the same purpose for example I obviously won't program for 3D anytime sooner yet for some reason iam going for unity although other engines for 2D maybe better for some sort of reason, which is extremly confusing if they both do the same job with slight to major pros and cons, a new person as maybe my self would get lost through the options since the first post said VB is the best of them all then another says there are many others and VB is growing weak.. Etc, iam not saying your answers are bad, as a matter of fact they perfect in every way! Its just when you ask, ok, that does this and that does the exact same thing with afew exeptions you don't even know what are or perhaps just don't know why would you choose that.

In my case, the programing language was the easiest to choose, although with great confusion you great folks helped me out, for my needs, or pretty much any starter one, c# then c++ but when comes to IDE that makes apps or non-apps it rediclous, in my case, I will just take my chances I guess yet I simply wouldn't be that satisfied with where either the one I got is good or not for my purpose. I have tried out a tremondous amount of IDEs like eclipse - VS - Xamrian - Android studio - intelliJ - unity3D and even gamesalad and gamemaker! (Which are both pathatic by the way unfortunly since they are not exacly devolping platforms) yet Iam clueless about which one to choose, if there ars no specific answer, exacly what should I do?

As @Alberth said unltimate perfect for everybody doesn't exist which I relize but ultimate perfect for a somebody or a type of,its so general that tons of IDEs out there support it but how exacly can I be more pecific? If they all support games for mobile, then which one? Based on their featured which I hardly know of therefore the question for choosing the programing language is over ages ago but if there was somehow absolutely no answer to which gaming engine or IDE to use then at least are there any way I can be more specific for one to fall into my needs? or better, future needs?

Regarding a choice of IDE, there are many out there. NetBeans, IntelliJ, and Eclipse are good general purpose systems that tend to focus on Java development but work just fine with C++ and C#. CodeBlocks is a smaller system that tends to focus on c++ development. Emacs tries to be everything and some people love it. There are many more. All of them are different, all of them are better for various situations. As for what is best for various circumstances, that is up to the individuals. Many people have their preferred environments, and their own reason for wanting to do things. For many years Visual Studio was the very best IDE by nearly any objective measure. Over the past six years or so it has lost much of that standing partly to their own decisions that made the product less responsive for developer's needs, and partly because the competition has dramatically improved. All of the ones mentioned have free versions, try them all and see what you like.

For the third point, That was not what I ment, what I ment was if Unity was so perfect, why would a whole ton of people use the other Engines?

Ultimate perfect for everybody does not exist. (Companies try to make you belief it exists, but it doesn't.)
After re-reading extensivly only summing up the two topics, I finally got my head around it! Sure it will be terribly hard to go throw all these IDEs but ill try them over the following months and so, thanks you! If you took a moment to read my previous reply you would know what I was all confused about I hope, so aparantly its still bloody confusing like hell since I still don't know the replies to all the other answers like..

Why not use c# for android or ios if iam an android or ios only programmer? And such questions would be much apriciated! As its hard to know all that information over night, thanks again people for helping me! As for me, this is probably the best answer I can get for now unless someone has something else to add, however if there are any still un answered questions, I sure asked hella' lot of em! Please do answer if you know it or just share your precious experince! Have a fantastic day everyone!

Yours: Khaled

Why not use c# for android or ios if iam an android or ios only programmer?

You can. Although Apple's environment is built around objective C, people built binding code to let you work in C#. Android's core is Java, yet people have made C# interfaces. Xamarin is one example of those tools.

And then there are engines that completely abstract all the platform away, such as Unity. You can develop your game for Android or iOS using an engine and never touch anything outside the engine.

This topic is closed to new replies.

Advertisement