That a simplistic and unsubstantial breakdown of the matter. Please tell me, in what real tangible ways would using Java or C++ be better?
I actually find that surprising. But so what? There are pro games being developed with C# too. Iâm sure you could make a âproâ game for PCs with many languages. It doesnât necessarily mean itâs a good idea.
LOL! Are you serious? I program games professionally for consoles. There is a world of difference in in the effort it takes to get things done in C++ vs C#. I canât speak to Java since I donât know of a single game company using Java. However, C# is used all the time for tools development and itâs a *lot *easier than C++.
Sure. The concepts transfer quite well between all of the Object-Oriented C-like languages. You could also use VB.NET or something else. But being able to understand how to write code in multiple languages doesnât mean that they all take the same amount of development effort. Hereâs a few facts about C# vs C++:
Pro C#
- Compile times of C# programs are infinitely faster.
- You donât have to worry about include files or the order of declaration.
- You donât have to manually worry about every memory allocation you make.
- Intellisense support works much better in C#
- C# handling of basic things like strings, enums, etc are superior to C++
- The .NET libraries offer TONS of things that C++ lacks out-of-the-box
- Language level support for Properties and Events are superior to C++ hacks
- If you find something lacking in C#, you can invoke/wrap native C/C++ libs
- EtcâŚI donât really see the need to go on.
Pro C++
- Templates are more powerful than C#'s Generics
- You donât have to write wrappers to use C/C++ libs
- You can write programs on consoles.
Quite frankly, I think that being able to write programs on consoles is really the only major advantage for C++. If I could use C# on consoles, I would. I think you could write the ~5% of code thatâs performance critical in C++ and write the rest of your game in C#. Unfortunately, thatâs not possible. So, weâre stuck with C++ for the time being.
Platform independence is fools gold. It is much easier said than done. Itâs always admirable to write portable code. But getting your program to run well on multiple platforms usually takes a lot of work. Hell, even writing a game for Windows PCâs that works well with all of the hardware out there takes a lot of work.
Using Java doesnât magically make your program work well on everything. And choosing Java for writing games means that finding help, support libraries, etc. will be much tougher since most people use C/C++, and to a smaller degree C#.
So what?
Why would you be better off with C++ on Windows? What are some tangible benefits?
Also, as I alluded to before, I donât know of *anyone *using Java in any game company. But C# is quickly becoming the new standard for writing tools at game companies.
False. I donât know about the PSP, DS, or phones. But *none *of the consoles use OpenGL. Sure, the PS3 and Wii use something somewhat similar to OpenGL, but theyâre not really OpenGL.
The sad truth is that youâll need to write platform-specific code for rendering on *every *platform and wrap that into your own interface if you doing cross-platform games for something like the XBox360 and PS3. Hell, even DirectX isnât completely the same on the PC and the XBox. How crazy is that?
The Wii and phones are a completely different ballgame. They donât even support the same feature set as modern platforms do. Thereâs simply no way you can use the same rendering code on all platforms.
Hehe. Frankly, OpenGL is a mess. For the most part, the only people still using it are those who run a Mac or Linux as their primary platform. The OGL board screwed itself. Ridiculous extensions and a slow tedious process to standardize allowed DirectX to take over the market share. PC video card drivers arenât optimized for OGL anymore. Almost no game companies use it anymore. Itâs effectively obsolete. Sure, you can use it if you want. But unless youâre dead-set on supporting Mac/Linux, youâre cheating yourself if you do.
Nope. Itâll run, but perhaps not as efficiently, on PCs. But it wonât really help you on consoles.
Sure. For a completely 2D sprite-based game SDL is probably easier than OGL or DX. I was just saying that if your goal was to get experience in what ârealâ developers use, then you might want to go the all the way and use C++ w/ DirectX.
Sorry for the long post, and no hard feelings Ashenwraith. I just donât want to see any inaccurate information go unchecked.