• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
menyo

[java] Java overtaking C in game development?

38 posts in this topic

[quote name='menyo' timestamp='1290751823' post='4737914']
Wow, lotsa comments.

I have been running trough the java tutorials from thenewboston (a guy from youtube). So as i have read it's wise to continue learning java as i can always learn C, C++ or C# afterwards. With the C language i ment C in general, i did't know they where that different from eachother.
[/quote]

C# has alot more in common with Java than it has with C really so yes, they are quite different, all four languages (C, C++, C# and Java) have similar syntax though.

This for example is valid code in all 4 languages, With C# and Java the function has to belong to a class, with C++ its optional and in C it can't (C doesn't support classes)
[code]
int coolfunction(int x, int y) {
return x*y;
}
[/code]

classes are effectivly created the same way in C# and Java

[code]
public class MyClass {
private int variable;
public void fun(int x) {
variable+=x;
}
public MyClass() {
variable=0;
}
}
[/code]

in c++ its normally done like this

[code]
//Myclass.h

class MyClass {
private:
int variable;
public:
void fun(int x);
MyClass();
}

//Myclass.cpp

void MyClass::fun(int x) {
variable+=x;
}
MyClass::MyClass() {
variable=0;
}
[/code]
1

Share this post


Link to post
Share on other sites
[quote name='_swx_' timestamp='1290570639' post='4737076']
AFAIK Android doesn't really use Java, it uses Dalvik. This is the reason Google was sued by Oracle.
[/quote]


AFAIK Android do use Java.

The thing is that Google developed his own Java Virtual Machine, was is also perfectly legal, what Oracle is sueing for is that the say Google break some Copyrights in their Standart libarys and perhaps some licening and patent sutff in the Dalvik VM.

See for example the opensource Java VM open JDK, which is actually supported by Oracle.

1

Share this post


Link to post
Share on other sites
[quote name='_swx_' timestamp='1290569828' post='4737072']
current-gen consoles don't even support it.[/quote]

Well thats sort'a wrong as I know the Xbox 360 has java support and I think the PS3 may have it
-2

Share this post


Link to post
Share on other sites
[quote name='SillyCow' timestamp='1290573803' post='4737086']

3) Limited to microsoft platforms.
[/quote]

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.
0

Share this post


Link to post
Share on other sites
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! :)
1

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
@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.
0

Share this post


Link to post
Share on other sites
^^ this.

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

[url="%3Cbr%20/%3Ehttp://social.msdn.microsoft.com/Forums/en/Vsexpressvc/thread/3030a179-f7be-4f40-84ff-debd6d290b2c"] http://social.msdn.microsoft.com/Forums/en/Vsexpressvc/thread/3030a179-f7be-4f40-84ff-debd6d290b2c[/url]
0

Share this post


Link to post
Share on other sites
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.
-4

Share this post


Link to post
Share on other sites
[quote name='Blithweevile' timestamp='1310504220' post='4834503']
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.
[/quote]

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)
0

Share this post


Link to post
Share on other sites
[quote name='Hodgman' timestamp='1310517229' post='4834572']
I heard that IBM were phasing out computers in favor of abacus development. Probably not much point learning computers now.
[/quote]

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*
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0