Help me change my life and career.

Started by
30 comments, last by M6dEEp 11 years, 9 months ago
Well maybe look into C# with XNA instead? You can create games for pc and xbox fairly easily and c# is useable in popular indie game engines such as unity3d. For those saying java is a poor choice.....don't listen to them, it is a top notch OOP/OOD language to start with and you can learn most important programming concepts with it. Infact, learning the niceities and the pragmatic good programming practices couldnt come from a better language than Java.

With two of you, you have to be realistic, creating games is a tough job and something I didnt even realise is.....you have to really put the hours in to become a good programmer. Just to give you a little story I am not so different from you except I come from IT. I do a lot of windows and linux bash scripting (some python also) for my job (I used to do a lot of php as a freelance web designer prior to that). I started with Java as a learning experience and have been doing so for a year. I feel quiet happy to move onto C# and xna at the moment. I think some devs are arguing that its a dead fish now (XNA that is) with the arrival of metro and windows 8, but in my eyes any framework that allows me quick and safe development for two and more platforms is a good thing. I doubt very much that C# is going anywhere and the fact its useable in unity3d like I mentioned....is a good thing.

Writing a game in Java alone, from scratch, could be a little daunting for a first project. Check out different free java game engines though (might be a good stepping stone) Some guy called notch from Mojang made a game called Minecraft with Java, on his own. So it is possible, but not recommended for a first outing.
Please Add Rep if I helped // Working on untitled 2D platformer (more to come soon)
Twitter - @MarkPashby
Advertisement

I think some devs are arguing that its a dead fish now (XNA that is) with the arrival of metro and windows 8

Just to tack this on if OP is thinking about XNA: I'm biased of course (using XNA now) but SlimDX and SharpDX provide two refactor targets should XNA truly become a deprecation problem in your game code. If you design your components and interfaces wisely, at the drop-dead point of XNA you could rewrite the XNA-reliant portions for either of these two alternate libraries. Or if you're not going to bother targeting Windows 8 / Metro, you'll be fine.

Hazard Pay :: FPS/RTS in SharpDX (gathering dust, retained for... historical purposes)
DeviantArt :: Because right-brain needs love too (also pretty neglected these days)


  • Choose a platform to focus on. I recommend iOS. Android is too fragmented and given where you are right now, you don't want to deal with that.
  • Then the language comes naturally for the platform: C++, Objective C. You can't go wrong with C++ for game development or many other things for that matter.

If you focus on iOS you will have a wealth of information and a big community to help you as you go. You will not be alone and you will be motivated.
As you go, do not neglect web developement. Have an healthy interrest in HTML, CSS, Javascrip, PHP. At one point or another, you will need them. And follow Microsoft platform (XNA) developement and Android as well. You need to know what is going on there.

Disclaimer: I have never developped for Android. I have done a bit of Objective C. I am a heavy C/C++ developper. I have worked for EA and Ubisoft (they are heavy on C/C++).

I think Android, and Microsoft have good platforms as well. But if you need to focus right now, go with iOS.
Good luck!
People seem to make it sound like in C/C++ you could potentially blow your PC up in a puff of purple smoke. Don't let the word "dangerous" scare you forever into higher level languages such as python or java. Dangerous simply means if your program compiles fine but behaves wrong you'll get a little popup telling you the program hung. Big deal. It used to be worse with blue screen of death (even that wasn't lethal to HW) but that currently requires bad kernel code (drivers)
I'm going to go out on the limb and say learn C++ first. Java can be easier for some people, but the transition from Java to C++ is a rather bad one. Many may suggest C# while its very elegant, I wouldn't considering the primary tool used to develop games unless you intend to use XNA, its better used for tool development. Languages like C# tend to wrap everything up for you in nice easy to use objects that you don't have to think too much about.

I don't like the idea of people suggesting that C# is a stepping stone to what they perceive as harder languages, you can easily learn C++ right away if you want. It is not conceptually harder to learn C++, its just like any other language, plus its very powerful. Once you know C++ you will begin to understand a lot of lower level coding going on, and be able to truly understand what a computer is doing. Especially if you eventually take up assembly. This in return makes you a better programmer within all languages.

Plus you will never get anywhere in life, yet alone game programming if you shy away from what is hard.

However if your planning on focusing on android you need to know java, if you prefer to do iOS you need to know Objective-C.
Irrespective of whether or not XNA is dead (I can personally see XNA and DirectX converging under a new name in the future - a neat way to avoid internet "pleasantness" around the time of DirectX 13 too...) it still remains a great platform for getting the fundamentals down. Concepts that you learn with it will be transferrable to other platforms, even if code itself won't.

I have no experience with Android but L. Spiro's answer got a good laugh here (not so funny for those on the other side, I would imagine).

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

I'm not a big android fan either. I'm very anxious to know how Surface will fare. Think about what exposure your programs would get and how easy it'd be to port from pc to mobile using plain C++/DX

[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[background=rgb(250, 251, 252)]Should I travel to the Himalayas and become a monk?[/background]

[/font]
[/quote]
Nobody has commented on this yet so I might as well do it...

I consider doing something similar to this myself after a couple of decades as a software engineer.
I love writing software and create systems and I have done so against all odds all this time so I might as well be a monk doing it


I'm going to go out on the limb and say learn C++ first. Java can be easier for some people, but the transition from Java to C++ is a rather bad one. Many may suggest C# while its very elegant, I wouldn't considering the primary tool used to develop games unless you intend to use XNA, its better used for tool development. Languages like C# tend to wrap everything up for you in nice easy to use objects that you don't have to think too much about.

I don't like the idea of people suggesting that C# is a stepping stone to what they perceive as harder languages, you can easily learn C++ right away if you want. It is not conceptually harder to learn C++, its just like any other language, plus its very powerful. Once you know C++ you will begin to understand a lot of lower level coding going on, and be able to truly understand what a computer is doing. Especially if you eventually take up assembly. This in return makes you a better programmer within all languages.

Plus you will never get anywhere in life, yet alone game programming if you shy away from what is hard.

However if your planning on focusing on android you need to know java, if you prefer to do iOS you need to know Objective-C.


I completely respect your opinion of course. I was just mentioning C# is a very useable/used language for game development. I wasnt suggesting that it's a a stepping stone to a harder language, I am saying it was a good choice for me to do this and offered it as a suggestion to the OP. I have some good sources from Rob Miles (c# Yellow book, which is free I might add and his XNA 4.0 book, which is not free but so far I have found it a very good introduction into using the XNA framework).

Of course in an ideal world you would go from bare metal assembly up the ropes to C/C++ and then to the managed languages with frameworks. However, in a world with two friends making a game part time.....you will want to see results fast from a motivational point of view, so maybe a managed language with some pre-defined frameworks are a better choice to start with?
Please Add Rep if I helped // Working on untitled 2D platformer (more to come soon)
Twitter - @MarkPashby

And in the end, the Android market just makes it a waste of your time.
They have only 20% of the share and you have to code tons of special cases for all kinds of devices with different capabilities, as apposed to iOS in which there are basically only 3 classes of devices (none of which require any special coding to handle), 3 total resolutions to handle, etc. So not only are you reaching the larger share, you are also saving yourself from a large pain in the ass, multiplied by a larger pain in the ass.


So your choices are to code in Java and drop any notion of iOS, code in Objective-C and drop any notion of Android, or code in C++ in order to keep both on the table.
Since the obvious choice is C++, you then have to decide between the pain of supporting both Android and iOS, or the easy feeling of just supporting iOS.

Ultimately the choice is fairly clear, and you can save yourself hundreds of dollars by not having to buy a wide variety of Android devices too!


L. Spiro


Hmm seems to me that you don't understand what you're talking about. For ex. with:

http://code.google.com/p/libgdx/

you can code in Java for ALL mobile devices. Or if you prefer C++ like me, use for ex. Gamekit.

Also already today Android market share is higher than Mac.- Furthermore it doesn't need to pay a fee for the market use.
On Android all you have to do is get the resolution and keyboard. Hence nearly as simple as on IOS. And without risk of getting sued for your nose :-)

This topic is closed to new replies.

Advertisement