[java] Java overtaking C in game development?

Started by
37 comments, last by The_Neverending_Loop 12 years, 9 months ago


3) Limited to microsoft platforms.


Lies....look at the ExEn project. It runs C#/XNA games on I Phone/Pad/Touch, silverlight and is working on an an OSX and android versions.

Remember to mark someones post as helpful if you found it so.

Journal:

http://www.gamedev.net/blog/908-xxchesters-blog/

Portfolio:

http://www.BrandonMcCulligh.ca

Company:

www.gwnp.ca

Advertisement
Some good replies already on here... but just to give you some overview of the languages in question, maybe a slightly different perspective...

C - You don't want go near C. As has been mentioned, it is very low-level and is an old language.. were you doing OS development, it would be a different story but as it stands, C is really the wrong tool for the job when it comes to developing games. Unless you hate yourself or want a challenge of that sort, or something. :)

C++ - While this is still the most widely-used language in game development, and enjoys an almost elite status as a language, I feel the need to point out what has not been mentioned here yet: C++ is kind of messy. It was designed in the 80s as C with support for object orientation, and was also intended to be backwards compatible with C from the offset. This is a reason for it's popularity, but is also a reason for a very cluttered design - it's not that C++ is bad, but it has lots of mechanics and features which lots of people don't ever use - and are quite frankly unnecessary. The fact that the language is multi-paradigm (imperative with a strange sort of object orientation which isn't 100% what OOP should be) can also be potentially confusing.

Please understand that I'm not saying C++ is a bad language - it is not - but of all these languages, it has the most cluttered design, and is potentially the most difficult. The major thing that sets it apart from java and C# is that in C++, you have to handle your memory manually. You must keep tabs on everything you create and delete it at the correct time, as well as dealing with references to memory - if you mess that sort of thing up (which is very easy to do), the resultant errors are disasterous. But on the other side of the coin, memory management gives you a fantastic level of control and when done right is quite elegant. See, Java and C# still carry out the same sort of memory management tasks, except they're handled implicitly - in those cases it's still important to be aware of what it's actually doing.

Java - contrary to what other people say, Java is, I feel, rather similar to C++. They are not totally different animals, but have some important differences and do at times require different practices. Java was created with portability in mind - since it runs off a virtual machine, you can run it off anything... as long as the platform decides to support it. Which is not the case with consoles :( . Still, java is a cleaner, sometimes more elegant language than C++, and it incorporates a more elegant object orientation model, but it still has it's own pitfalls. It's a generally easier language though, and this is mainly thanks to lack of memory management.

C# - this was designed with lessons learnt from both java and C++. Again ,it's actually not that dissimilar (it's not like comparing Fortran, smalltalk, Lisp, etc.... C++, java and C# all fall under the same family), and I feel that C# has the most elegant design of all these languages. It discards unnecessary elements of C++ and redefines some elements to make more use out of hem. Note that C# is a new language in most respects, and does not share the relationship that C and C++ share - it is a new design effort without backwards compatibility in mind. So the naming is a little confusing. :) Overall, a great language, but very much rooted in microsoft , if that bothers you.

Whew...sorry... bit of a long post. Bottom line is: stay away from C, and between the other 3 languages mentioned here, I'd say C++ is a bad one to start with. You'll learn much more comfortably with C# and Java, and the transition to C++ is not too difficult to make once you learn the others! That is, if you choose to. They all have great API's backing them, it's simply a choice of which you like best and what exactly you aim to do. You can make a great game in any of these. And have fun! :)
I think Java and LWJGL are great to use to jump into game develop because I find I don't have to focus as much on developing classes to do my file IO, like config loading. I find the the difference in standard built-in libraries between C++ and Java makes it hard to rapidly prototype and just get my ideas down in C++. It is like once I make something in Java though it is easy to fill in the rest of the gaps in C++ though. Maybe if you are a lot more experienced programmer you won't have that problem though, but these are just my thoughts as far as development goes. Check out Slick2D as well it speeds it up even more and works hand in hand with LWJGL.
Has anyone really been far as decided to use even go want to do look more like?
@Deranged, There are no limitations on commercial use of the express editions of visual studio 2010 express. However, if you want to release your XNA game on xbox or windows phone 7 (not PC) then you have to pay an annual subscription fee to microsoft in a similar way to how you would pay a subscription to apple to be able to upload apps to the appstore. Once a game is on the xbox, as part of your terms and conditions you MUST provide a trial version that is free and a non-trial version which you must charge for. Therefore, if they were to have a no-commercial-use clause in the visual studio license this would conflict with their terms and conditions for XBOX Live Indie Games.

I am confident enough on this to use it at work, too.

Older versions that were trial versions used to put popup messages into the code iirc and watermark them as built with the trial version, since version 2005 at least, when it became completely free, they do not.

Microsoft's rationale behind this is to encourage uptake of windows by developers. More developers means more quality software and a bigger market share for MS.
^^ this.

You only have to register VC express ed., then it's free to use for building commercial apps:

http://social.msdn.microsoft.com/Forums/en/Vsexpressvc/thread/3030a179-f7be-4f40-84ff-debd6d290b2c
It is I, the spectaculous Don Karnage! My bloodthirsty horde is on an intercept course with you. We will be shooting you and looting you in precisely... Ten minutes. Felicitations!
I know this thread is a bit old, but last I heard, Microsoft was discontinuing support for C#. I don't don't know C#, I'm a java person, but I don't think C# is such a good language to learn anymore. If Microsoft is discontinuing support, then it's probably on the decline. I'd say python or java to start out. Java was my first language, and as long as you're driven, it isn't too hard to learn.

I know this thread is a bit old, but last I heard, Microsoft was discontinuing support for C#. I don't don't know C#, I'm a java person, but I don't think C# is such a good language to learn anymore. If Microsoft is discontinuing support, then it's probably on the decline. I'd say python or java to start out. Java was my first language, and as long as you're driven, it isn't too hard to learn.


What ? since when ?
you got any source for that ?

C# is under active development and is the only supported language for WP7 (Which Microsoft is pushing quite hard to try to get a share of the rapidly growing smartphone market).

Its possible that they are ending support for the earlier versions but thats normal. (The latest version of the C# language is 4.0 which was released in april last year and 5.0 is on its way)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
I heard that IBM were phasing out computers in favor of abacus development. Probably not much point learning computers now.

I heard that IBM were phasing out computers in favor of abacus development. Probably not much point learning computers now.


And they called me mad when they saw me with my abacus... HA! whos laughign now! *Moves one bead to the left representing my victory vs the nay-sayers*

This topic is closed to new replies.

Advertisement