Since I’m “in the market” for a job right now, and I see of course many game programming jobs which arent java… most of them obviously
I’m wondering, if you are “skilled and experienced in programming” - which is relative - how much trouble would you have developing in another language
for example I have minimal knowledge of C# and some more C++
but C# seemed very easy and java like
C++ is harder, but I mean its just learning the framework n stuff, refreshing your C++ wouldn’t be all that hard
like for example if the use unity, which I dont particularly like, but whatever, it doesnt seem hard to learn
As far as I know, java will only help you in development in pc and android games. C++ can get you on android, ios, consoles, computers. C# will get you to microsoft consoles, pc games, and stuff.
I think the most widely used language for commercial and popular games as of today all together is C++. I don’t think there’s a way to tell though.
Regardless of the current situation this is true for historical reasons. Most game engines and code has been written in C++ and hence most companies would be using it and will keep using it. Any changes would bring in a significant cost.
If you’re experienced with graphics and OpenGL, another route is tool dev for Maya/Blender/Houdini/etc. This usually involves C++ and Python, some level of OpenGL knowledge, various 3D concepts and math, GUI programming, etc. Many film, animation and game studios require developers to write tools for the artists and the pipeline itself.
It’s a very rewarding job – nothing better than seeing your name in the credits of a feature film!
For Java, Android app/game dev is a booming market.
The more common programming languages you know, the better.
Once you’ve learnt the syntax, learning the rest of the language is just a matter of working out how to use the Graphics, IO, and Input functions (Unless you’ve been using a library that is only for a specific language).
Not quite true. Usually there are just tiny objective-c layer and everything game specific is just c++. This way you don’t lock your code base for that platform and you can use better c++ tooling. At least we and almost everyone I know in the industry do this.
Objectice-c is retarded and mac is really bad as dev machine. Visual studio with c++ is the way to go at iOs land.
Back to topic.
My full portfolio was including java, openGL and android. Still I landed c++ job for iOs. Language swap wasn’t hard at all.
Edit: Btw libGdx ios support will give access to both biggest mobile platform with single code base using just java.
I disagree that Mac is a bad development platform. XCode and Visual Studio are both bad in my eyes, but if you are going to do C/C++ development, the Unix(-like) ecosystem is really a great one for development. In particular, I appreciate package managers and often wish there was an equivalent on Windows that didn’t suck. I think it’s funny how you talk about the superior tooling of C++, when you also talk about developing on Windows. I find the set of tools for software development to be lacking on Windows when compared to other operating systems, operating system families, platforms, whatever.
Also, if you have only ever developed software on a Windows computer, then you have no right to have an opinion. I can’t say that I find the taste of alcohol gross because I haven’t tried it (oh, I’m so innocent), and if I did, it would be childish and it would show that I rely all too much on first impressions.
I compared mac against windows. Talking about Unix is just red herring. Apples vs oranges and you argument that you like bananas better. I am developing games for iOS so I have to use Mac everyday and its always as frustrating.
Macs are lot more expensive than pc’s and developer need fast computer to make things like compiling or running at debug mode fast enough. Even if you could do things with hackintosh I don’t see it worth the effort.
I have work experience from linux, mac, windows and various languages, IDE’s and compilers. At the end my opinion is that visual studio is best that you can get for c++ and Ecplipse for java.
I really don’t see how I am comparing apples and oranges when I’m talking about two programming ecosystems, Unix-like and Windows. Talking about Unix is relevant as that includes the Mac, Linux and BSD operating systems, and I argument that Mac is a better programming platform because you can access all these tools natively without having to rely on Cygwin for them.
I really don’t see how programmers need fast machines more than any other profession, in fact, it might be beneficial for you, as a developer, to write and test your code on a computer that performs worse than the computer you would normally use. Compiling and debugging times, yes, but incremental compilation greatly eases the first.
As for the price of Macs, yes, it’s high. That’s right. I wouldn’t encourage anyone to spend their hard-earned money on one unless they were an Apple fanboy, and then there’s no use in discouraging them from it. But, as I argued earlier, a computer doesn’t have to have top-specs to be viable as a development machine.
If you find Mac development frustrating, then I think you must be doing something wrong, as I don’t find it more frustrating than programming anywhere else, that is, a bit every now and then. I have also programmed a little bit of everything a little bit of everywhere, but that’s not relevant at all.
While I do agree, you should realize that real game development isnt just writing code, I use Maya, Photoshop and audio software on a regular basis while working on games. Also video editing software for various stuff like trailers.
A machine should run fast when Maya, Photoshop, a web browser with many tabs and an IDE is open - and that needs some power :0
My build time is around 5s and loading time another 3s and this is iOs game. This 8s wait before I can see code changes is killing me. Edit and continue is not that much faster either.
This 8second wait is so long that most of the changes does not even need it anymore because almost everything is made hot loadable and most of the game is just plain data so no need for compiling. These numbers are with top end pc.
Iteration is king and everything that make iterating faster or even instant is worth of effort and money.
At home I use fast laptop but compiling time is lot slower about 40 second. This is so long wait that you usually forget what you was doing and can cause pause up to 15 minute. Interruptions ruin workflow.
Iterations mean better quality.
Forcing your self to use slow dev machine just that you can test it also with slow machine is idiotic. I am graphics programmer I first need to make it work, then make it pretty and then optimize it if needed. Slow machines are only for last step and even that can be done at later stages of project when you know what are the bottlenecks and you have more options to solve these problems.
And in case of mobile development dev machine is totally different thing that device that is used for playing.
Ah, I can’t argue with that. Though Maya and Photoshop are more of an artists tools than a programmer’s.
You are doing mobile development, which is not what I was talking about, and not relevant to the argument at all. I see no point in replying to your attempt to twist this argument from an argument about development platforms into an argument about development platforms for mobile games and applications.
Before I quit, however, I must comment on how slow you really think it is. I have Eclipse running with incremental compiling and I can see my changes almost instantaneously (about one and a half second for LWJGL to create the display, and all data and media to be loaded), though I am not doing mobile dev. Some rough specs of this tiny machine include a 2.5GHz processor and 2GB of RAM, running OS X 10.8.
In my experience, since Java and C# are derived from C++, it doesn’t hurt to have a solid understanding of the language if you’re expecting to need to be flexible.
I also think bare C++ is a good way to understand low level complexities that might result in issues later on, specially during optimization.
I work professionally with all three languages, and although there is a push towards C# and .NET development, we can never get truly rid of C++ as it is essential for compatibility issues (drivers and the like). Since games have to acomodate different hardware types, it is probable some form of lower-level code will be needed, specially for memory management.
We might also face in the near future a demand for developments under Linux, with throws C# out the window and makes Java iffy.
But it’s just my experience/opinion.
Oh, and apparently Blackberry is moving from Java to native C++ development for their new OS/Devices. It doesn’t surprise me that mobile development moves away from Java and into native code, seeing how critical resource management is in those environments.
Indeed, I found the decision to use Java for mobile development in the first place stupid. The argument that there is an established developer community around Java isn’t a very good one either, the same thing exists for C/C++.
Is there an official article that you have that confirms this information? Java development is really shaky as it is due to these security leaks, and now it is losing its grip on mobile devices. Ouch!
Seems like development for mobile is definitely going to be HTML5+JS and pure OpenGL ES now…