• 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
CoffeeCoder

Unity
What language is better to learn - C# vs. Java

18 posts in this topic

Hi all!

I'm a rather experienced DarkBASIC user who is currently trying to learn new, more versatile languages. I've dabbled in everything from Python to C++ and everything in-between but haven't officially started learning much of anything from them yet. I can't decide which is better to learn.

I'm quite interested in multi-platform development, so naturally Java seems to be the better route to go, but I'm also aware that the MonoDevelop project allows .Net code to run across all platforms these days, so C# sees a safe bet as well. What's your personal opinion?

Personally, I think C# looks a little friendlier, and in Unity it makes a lot more sense for scripting, but I'm also interested in general applications as well. Should I just learn both?

Thanks for any insight!
0

Share this post


Link to post
Share on other sites
My personal choice would be C# too, but language-wise they are similar enough that learning one and you will cover 90-95% of the other. I think that the frameworks and IDEs are more important factors than language syntax in this case.
1

Share this post


Link to post
Share on other sites
Not much point "learning" both at this point since they're so similar, i use both and like both for various tasks. The main advantage C# has for games is XNA and Unity, there just isn't any real competitors to those frameworks/engines in Java. (There are great libraries for Java aswell but they're not as easy to use imo)
0

Share this post


Link to post
Share on other sites
I used to program in Java in school, but professionally I turned out to be a C# developer.

Personally, I'd go with C# just for the fact it's a heck a lot easier to interop with native code. And you have a finer control over memory, e.g. structs, unsafe code, etc.

FYI, whatever you choose...for Java - jMonkeyEngine, Ardor3D are two of the more well known graphics engines out there, and LWJGL for a good OpenGL binding. Edited by Starnick
0

Share this post


Link to post
Share on other sites
Java is more cross-platform than C#.
However you can use C# with Unity and XNA, they both increase portability, which probably is not possible through language itself.

It depends what kind of portability you're looking for. If you wish to create apps for phones you can use C++ with some library (or w/e it's called), for example Marmalade, or create own one: create small Java (Android) or Objectivec (iOS) program that would run your C++ program and there you go, it's portable (my friend does this at his work).
0

Share this post


Link to post
Share on other sites
[quote]It depends what kind of portability you're looking for.[/quote]

Well, I'm not really looking into mobile options yet (though I do plan to develop for WP8+ and Android, eventually), I was just talking about desktop platforms.

[quote]...language-wise they are similar enough that learning one and you will cover 90-95% of the other.[/quote]

Yeah, I had heard this previously from other places, and sort of experienced it when I tried out coding in Java after studying C# for a day sometime ago. There were still quite a few differences, but it was just syntax - the basic structure seemed to be completely the same.

Thanks for your input, everyone! Sounds like C# is the way to go for now. :)
0

Share this post


Link to post
Share on other sites
My first real language that I taught myself (other than web script languages) was C#. It's still my favorite for general purpose applications. C# isn't the best for cross-platform, but if you are mostly going to write Windows applications, C# and the .NET Framework offer you more. Finally, once you know C#, Java comes secondhand, they are *very* similar.
0

Share this post


Link to post
Share on other sites
[quote name='zalzane' timestamp='1349896807' post='4988816']
http://msdn.microsof...y/ms229005.aspx - More flexible exception throwing
[/quote]
That's wrong cos Java offers checked and unchecked exceptions.

[quote name='zalzane' timestamp='1349896807' post='4988816']
http://msdn.microsof...y/ee207183.aspx - Co/contravariance
[/quote]
What feature doesn't Java possess??
-1

Share this post


Link to post
Share on other sites
[quote name='ppgamedev' timestamp='1349909997' post='4988895']
That's wrong cos Java offers checked and unchecked exceptions.
[/quote]

But its standard library uses checked exceptions, requiring you in turn to check them.

[quote name='ppgamedev' timestamp='1349909997' post='4988895']
What feature doesn't Java possess??
[/quote]

It doesn't allow co and contravariance in its generic definitions. You cannot make a generic class that supports T (and subtypes) or T (and super types). It's T or nothing.
0

Share this post


Link to post
Share on other sites
What feature doesn't Java possess??

JAVA is typeless language, thus it lucks a real pile of things. Every time I code in Java I feel like if Java was raping me. I have a big respect to people that compile functional aplications upon Java.
-5

Share this post


Link to post
Share on other sites
Interesting reads there! I have played around with both languages a bit more and have found that C# just feels better for me. I really don't know why, it just does. Java is ok, and I can definitely see using it to develop Android apps. It's not as horrid of a language as people try to make it out to be.
1

Share this post


Link to post
Share on other sites
do not aproach C# witho out managing c++ theory. It may seem an object all things safe, but do not be fooled, the fact that compiler hides management from you may be benefitial also not. especiaily object competence. A C# ot Java progamer must now fundamentals of c++
-5

Share this post


Link to post
Share on other sites
If your interests are focused on doing more client-side development, I would go with C#. If your interests are more focused on doing more back-end server development, I would go with Java. If you go the Java route and really want to learn back-end development, then I suggest also getting dirty with Glassfish or JBoss and start absorbing Enterprise Java concepts. Edited by Runesabre
0

Share this post


Link to post
Share on other sites
[quote name='JohnnyCode' timestamp='1350101592' post='4989665']
do not aproach C# witho out managing c++ theory. It may seem an object all things safe, but do not be fooled, the fact that compiler hides management from you may be benefitial also not. especiaily object competence. A C# ot Java progamer must now fundamentals of c++
[/quote]

If you want to be really good, yes, you should learn about c++ and its type oriented meta programming model (and how it is very different from C# generics). You should also learn deep and pure functional programming, to be able to write really sharp C# code.

On the other hand, IMHO, starting out with just plain and simple C# is a much better approach to get you going.
0

Share this post


Link to post
Share on other sites
Microsoft is letting the MonoDevelop and Mono development teams do their thing, at least for now, in my opinion. Almost everything you need to compile and run C# games cross-platform is in the MonoDevelop IDE. With it, you get much interface support for things such as sound, GUI, physics, and more.

If you can use the Visual Studio IDE and later cross-platform port the game through Mono, then that would be better long term. I believe that MS knows this and is why they let the Mono community do their thing.

Look at SharpDevelop and SharpDX, which could potentially also be ported cross-platform through Mono if you find Mono to be better for you.

The main Unity 3D/ Mono community and several sprout communities are really rockin' in C# big time, so take a look!


Energy is favoring C#, in my opinion - for learners, but Java has gigantic libraries and active cross-platform gaming communities. The growth of Apple systems could mean a big surge in Java use for games in coming years, added to other companies with tablet and mobile needs for Java games.

Do more research, please, and let us know what framework and other things which you decide to use, okay? [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]


Clinton
0

Share this post


Link to post
Share on other sites
I always recommend C#... Now this is just my [i]personal opinion[/i] but I say C# > Java lol...

From what I've seen C# is faster, and I think it's a much cleaner and more elegant language. To me, writing C# almost feels like you're painting a picture or playing music -- it's like an art lol, whereas C and C++ are like running a power tool... but I've just never cared for Java.
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

  • Similar Content

    • By NajeNDa
      Hi there,
      I am a game programmer (C#/C++) who is looking for a project to join. I am computer science engineer plus Master Degree in Game Development, currently working in one the most renown mobile games company (2 yeras academic experience, 1 year working experience).
      I have developed several prototypes or even games almost ready to release, but I always lack of artists, so I am looking for a project already set up or few artist to begin working in something.
      My preferences are:
      Unity or Unreal Engine 4 based project (UE4 prefered) PC/Console game prefered but mobile is accepted too Not interested in VR Serious team with almost all the roles filled or pretending to be filled 3D project prefered over 2D Not more than 7 work hours per week European team (if timezone is not a problem for you, so its not for me) I am not looking for any kind of money income from games neither the team, I want to do this as a hobby and a way to improve my skills.
      Cheers
    • By INTwindwolf
      COMPANY AND THE PROJECT

      We are an indie game studio consisted of professional and friendly people. Additionally, we are a team of skilled artists and dedicated indie enthusiasts. Our current project is INT, developed on Unity Engine 5 for platforms Windows, Linux, and Mac.

      INT is a 3D Sci-fi RPG with a strong emphasis on story, role playing, and innovative RPG features such as randomized companions. The focus is on the journey through a war-torn world with fast-paced combat against hordes of enemies. The player must accomplish quests like a traditional RPG, complete objectives, and meet lively crew members who will aid in the player's survival. Throughout the game you can side and complete missions through criminal cartels, and the two major combatants, the UCE and ACP, of the Interstellar Civil War.
      For more information about us, follow the links listed below.
      INT Official website
      Steam Greenlight
      IndieDB page
      Also follow social media platforms for the latest news regarding our projects.
      Facebook
      Twitter
       
      TALENTS NEEDED
      Website Administrator
      Unity Engine Programmer
      Please note all of above are remote positions. You will not be required to travel or relocate.
       
      REVENUE-SHARE
      We are unable to offer wages or per-item payments at this time. However revenue-sharing from crowd-funding is offered to team members who contribute 15-20 hours per week to company projects, as well as maintain constant communication and adhere to deadlines. Currently the crowd-funding campaign is scheduled for the first half of year 2018. Your understanding is dearly appreciated.
       
      CONTACT
      Please click each position to view the job in detail, as well as application instructions.
      Thank you for your time! We look forward to hearing from you!
      John Shen
      HR Lead
      Starboard Games LLC
    • By McJug
      Hi,
      I'm looking for a 3D artist to join me in creating a new tower defense game with a twist. Very much a hobby project but one which I want to have a professional end product feeling, with something that we can eventually monetize. I have a lot of the base game design in my head but as a developer I'm doing the typical developer thing of thinking technically - so someone who would be enthusiastic about the idea and have input on the design too would be great.
      I usually start these things with people and they get bored so I'm left on my own with half a project - so really looking for someone who shares my enthusiasm (that doesn't mean sitting in front of a screen 24/7 either though - this is meant to be fun).
      A little about me - I am a development team leader in the real world and the last hobby project I worked on with one other developer was a puzzle game that got featured in popular IT magazine's, and ended up with over a million downloads. 
      If you're going to get in touch please provide a few samples
      Hope to be working with someone on this soon!
    • By Lb4b
      My name is Leonid, game development is a hobby of mine. CyberSphere is my third game. It's a top-down shooter in futuristic setting. I'm constantly improving my game. In the near future - the introduction of new game mode. I will be grateful for any feedback.Thank you!
      Trailer: https://www.youtube.com/watch?v=MK-saeyX1tI Google Play: https://play.google.com/store/apps/details?id=com.lb4business.cybersphere App Store: https://itunes.apple.com/app/cybersphere/id1246655623 Key features:
      Nice 3D graphics; LAN multiplayer (PVE and PVP); 28 weapons; 12 character types - futuristic tanks, walking robots, cyborgs and soldiers, each with unique special ability; 12 types of AI-controlled support drone models; Easiness of control. Gamepad supported; A variety of enemies. Robots, aliens, cyborgs, and dangerous bosses.



    • By Lb4b
      CyberSphere is a twin stick 3d shooter in sci-fi setting with multiplayer support, lots of unique characters, weapons, and enemies.
      Trailer: https://www.youtube.com/watch?v=MK-saeyX1tI Google Play: https://play.google.com/store/apps/details?id=com.lb4business.cybersphere App Store: https://itunes.apple.com/app/cybersphere/id1246655623 Key features:
      Nice 3D graphics; LAN multiplayer (PVE and PVP); 28 weapons; 12 character types - futuristic tanks, walking robots, cyborgs and soldiers, each with unique special ability; 12 types of AI-controlled support drone models; Easiness of control. Gamepad supported; A variety of enemies. Robots, aliens, cyborgs, and dangerous bosses.



  • Popular Now