By using this site, you agree to our Privacy Policy and our Terms of Use. Close
DarkTemplar said:

Are you a programmer? (For me you seem to understand very well how .net works)

I have been programming in .net for years and I have also experience in gaming programing with .net. I remember when MS anounnced .net for XBox360 and they said basically everithing you sumarized above. I was in the middle of my graduation at that time and I started to study a lot about it with my colleagues. So what you just wrote was suposed to happen this gen.

However C and C++ (and Lua for scripting) are stil the industry patterns even for the XBox360. Why?  .net is still slow compared to C and C++ so demanding games cannot use it yet. Also most of the modern engines (like the Unreal Engine) provide those features that you said and many others. Currently game development is at a level where the language of the code generated by an engine is almost irrelevant.

But of course MS can try some sort of trick to make .net the most used language in the NextBox so lets wait and see!

I don't consider myself a programmer, no.  Programmers are gifted in the art of coding.  I am challenged, though capable.  Some of the people I am acquainted with though were not only the first people to use .Net but the first to write about it.  I am, at the heart of the matter, a system administrator and well read.  My experience is working with developers to create efficient code.  So, while I suck at writing code, I'm reasonably good at finding bad code.

C# and VB.Net are the languages of XNA.  While I don't believe VB.Net is optimized for gaming, with XNA Microsoft did optimize C# for gaming.  In fact, anything available on XBLIG is most definitely developed using C# or VB.Net.  The challenge with C# is not speed, but memory.  Having said that, you are correct in that  C++ is the primary language for developing games by professional developers.  However, Microsoft still provides consistent libraries.  It may not mean a developer doesn't have to learn new properties or methods of an API, but they won't have to relearn what they already know.  You aren't going to get that going from an NVidia GPU to an AMD GPU, nor are you going to get that going from the Cell to an AMD processor. 

True, a game engine such as UE3 can significantly reduce the back-end work of development.  However, if a developer without the aid of any game engine wrote code on all six systems, by far the most significant amount of reusable code would be available to developers between the Xbox 360 and the next Xbox.  The only thing of significant merit changing are the referenced libraries* and any newer features available that a developer would want to take advantage of on the next Xbox.  I would be surprised if the Wii's APIs carried over to the Wii U, or the PS3's APIs carried over to the PS4.

I'm not sure what you mean by the language game engines generate is irrelevant?  Game engines are a framework, not a code generator.  They simply provide additional libraries for developers to reference so they don't have to develop that code on their own, and typically they provide consistent libraries between systems for code portability.  In that respect, they reduce the amount of coding necessary to that of the actual game code.  Developers would still write code in in a given language be it C# or C++ (as an example), and compile it referencing those libraries.  Ultimately, the language the game engine is developed in is irrelevant because it is the programming language that the game developer uses that matters. 

My guess is that with the next Xbox Microsoft will make C# the primary language for development.  This is what they are doing with Windows 8, and I suspect they'll make the push with the next Xbox as well.  Whether or not the larger studios use it, I don't know.  I doubt third-party developers would use anything but C++ because it provides the best code portability.  However, it won't mean Microsoft won't push for C#. 

 * For reference to non-developers, in compiled languages libraries must be referenced to use in coding and to compile.  A library cannot be referenced if it is not available on the system the code is being compiled on.  However, at runtime, if the calls made are supported by the API (compatible) then the application/game will run without issue.  Compatibility issues arise when a referenced library, property, or method does not exist.