Java or Objective-C
Posted 03 March 2012 - 04:11 AM
I was wondering which language gives the best opportunities for a successful game developer, Java or Objective-C. Can someone please help?
Posted 03 March 2012 - 05:17 AM
Posted 03 March 2012 - 05:51 AM
Don't worry, you are wellcome!
If you must choose between only thoose two, I'd pick Objective C. The only reason beeing the iOS platform being built for it, and the commercial success of the App Store.
Since you call yourself Minecrafter, I'm guessing Minecraft is the reason you ask about Java. It is certainly possible to write games in Java, but it is not a very popular language for that purpose.
Posted 03 March 2012 - 06:27 PM
If you start out with objective c you are limited to one platform, however you are learning a language that is universally available.
C is the corner stone of modern computing, once you know C you can easily learn C++, which means you can easily learn most object orientated languages, which means you can become a useful programmer.
If you start out with java, you have to learn a language and object orientated code at the same time, on a portable but slow and, at times stupid, language.
I hate java, with a passion, partly because Sun took a good idea and butchered it, partly because I had to work on a java virtual machine and I know how it operates. It should be dead by now, I wish it was. I will be drunk for days when Sun finally give up the ghost and bury this steaming pile of sh1t.
maybe I should shut up now...
Posted 04 March 2012 - 01:14 AM
That's not true. You can use an open source compiler called gnustep for the pc. I read somewhere that Quake was written in objective c. You can use c++ or c libraries with it.
I also disagree that java is more work. The java library can actually save a lot of time and you don't have to worry about memory allocation. Just as objective c is good for Apple, java is good for Android, along with many other purposes.
Posted 04 March 2012 - 08:27 AM
Quake (up to Q3, i believe) was written in pure C. Some of the tools may have used Objective C, though. ID Software used Next cube workstations for development, so Objective C would have been a natural choice.
Posted 04 March 2012 - 01:55 PM
I'm a little biased against Objective-C mainly because the NS API is just horrible. Such long and difficult to memorize method names makes you rely heavily on an intellisense based IDE to help you out. While xCode isn't bad with that, it does miss a few. The Apple dev documentation is sub-par when you compare it to the succinctness and subject relavence MSDN provides (for C/C++/C#), so learning Obj-C will be more of a chore for you. Memory management in Objective-C is also a burden to work with sometimes. They try to help you by auto-pooling memory and garbage collecting, but sometimes I find it gets in the way. It was a bad design decision from NS to allow developers to chose their memory management. You never know when it's your responsibility to delete an object or if it's taken care of somewhere else. Pray someone wrote it down somewhere.
If the base of your question is "Should I develop for iOS or Android", you also have a 3rd choice, C/C++. My engine is C++ and runs fine on an iOS device. The only Objective-C code I need is to create a window and load resource files. The two languages also work very well together. The only time you need to go full Obj-C is when you work with Cocoa, which you can ignore if you plan to use OpenGL ES. Android also supports C/C++ via thier NDK, although I haven't tried it out yet. Their paltform is very fragmented and I think if you go this route, you should start first by using their newest SDK to avoid all the rift-raft in-between.
Posted 04 March 2012 - 03:04 PM
I think Microsoft had a pretty good idea with .Net and letting people choose different languages, although that's got to be a lot of work to maintain. It doesn't actually take that long to learn a language, but you are only going to be able to specialize on one or two, so the more applications you can use them for without learning a new language, the better. C++ is getting to be low level and not the best choice for people who just want to get something out. I think Unity is a lot better option. Engines are kind of going that way where they port to multiple platforms.
Posted 05 March 2012 - 09:56 AM
The whole idea of java was the platform independence. Then they started changing the VM so much that you had to do versions for a specific JDK, which made it platform dependant again. Just plain stupid.
C# / .Net :- Lovely to work with, but under threat.
I have had emails from people inside MS saying that .Net may be dropped, I think someone even did a press release saying that. Though I think it was recanted. Not sure what is going on anymore.
Unity seems to be the front runner at the moment, though I haven't looked at it for a while. We dropped it after talking to the developers about putting it on AGP. They were not very easy to talk to.
There seems to be two techniques in use at the moment. Compile time and run time independence.
Compile time you hit a button and get a version for a platform, hit another and get a version for a different platform.
Run time you have a single version that is translated to the target platform when loaded into memory.
Unity is compile time isn't it?
Antix game player is run time.
Any others? Might be worthwhile making a list.
Posted 05 March 2012 - 03:02 PM
Anyway, .NET solved these problems while maintaining a consistent API and provides excellent tools and UI libraries.
Posted 05 March 2012 - 03:32 PM
I'm not sure because it's using mono-develop. I"m sure most code is compiled, but I think it requires some scripts to run. A lot of people complain about the authors because they have their own ideas, I guess. I kind of wish an open source engine would have gotten popular instead of Unity, but se la vi. They have all these paid for add-ons, the pro version is expensive, but it basically works pretty good. The editors are nice. They're latest thing is not including navmesh path finding with the free version. It's always like that when you deal with a company. It's just a come on to get more money and they give you just enough to keep you. We had this with Flash and now it's Unity in 3d. There's nothing magic about it and eventually there will be open source equivalents that port to the major platforms.
Posted 05 March 2012 - 06:58 PM
I'm not sure because it's using mono-develop. I"m sure most code is compiled, but I think it requires some scripts to run.
They speciffically developed a version of mono that would compile rather than jit. This was to comply with the app store terms before the script clause was relaxed. I don't know if the special verson is still in use.
Posted 05 March 2012 - 10:02 PM
Posted 11 June 2012 - 07:39 PM
I am trying to learn Java with the ambition of going onto C++ as most audio games jobs seem to ask for C++, don't know how it is for the rest of the developer world.
All the best
Mike Tree - Music, Sound Design, Dialogue
Posted 11 June 2012 - 08:03 PM
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users