For anything that can be said that's bad about microsoft; they certainly encourage amateur developers at times, and that's good for the industry; encouraging more people to learn and use a general and reasonably powerful programming language rather than the modkit for their current favorite FPS/RPG isn't a bad thing. Ok, you wouldn't want to write Halo 4 in C# + XNA, but a professional dev team should know that anyway.

XNA isn't really a 'full' game framework. It does graphics, input and sound, it does some work towards importing graphics data; not much else. That aside, you can write games in C#+XNA, you can write games in Java, you can write games in Visual/QBasic. You could probably write games in COW ( http://www.bigzaphod.org/cow/ ) if you had a way to call graphics libraries or talk to a runtime.

Again though, my stance is that engines and high-load libraries *should be* written in C++ or a lower level language that compiles to machine code, where *should be* can be replaced with *nearly always are* if an irrefutable fact is desired. However, any language that compiles to equivalent machine code and exposes a neat C[++] call interface is equal in any metric that matters.

Personally, I wouldn't mind writing lower-load aspects of some of my projects in a more domain-specific language.. but.. I've yet to encounter one that really appeals to me.


Programming ...... if the programming is good the game will be fine and it takes a hell lot effort to make a game ..


OK. OK. OK. I get it. you guys are bubble bursters.

here i was happy in my microsoft sponsored illusion that if i work real hard at c# i can someday develop games. now it seems that i have little choice but learn c and c++! :-)

>> microsoft sponsored illusion

they had this article sometime back that all new game development for both windows and x box is going to be with XNA.


all amateur development.

Real xbox developers use the XDK which is handed out at great cost, in very limited numbers by microsoft


If you work real hard in C# you'll learn some neccessary skills and they'll transfer. Ask yourself this; do you seriously think that you, alone, are going to make a game that exceeds C#'s capabilities? If not, use C#! If you start 'a game' in C# and find it's beyond C#'s capabilities, for whatever reason; you'll have got quite proficient in many aspects of [games] programming, and you'll understand which parts would benefit from being written in another language, and why.

As jbennet implied - the major consoles all have devkits that only professional, established developers can get hold of. Whilst there are alternatives for amateurs, to some degree available in all of the popular languages; the fact is: if you do all the games programming you like, in every language, and learn everything; you're still an amateur until you're employed as a professional. I didn't learn C++ until I'd learnt and heavily used lots of other languages beforehand; that didn't make it particularly easier to learn C++, but I did learn alot of principles about programming games without the pressure of learning a complicated, unforgiving language at the same time. Now, not to brag, but I can knock up a 3D movement, collision detection and basic physics system, from scratch, in days; and I'd still say I'm "learning", because everytime I make one I do it slightly differently/better in some way. It took me months to do it the first time ( in C++; but I'd also experimented with many of the 3D principles, for at least a year before that, in Java ).

I doubt that anyone nay-saying here actually IS a professional game developer ( I certainly am not ); so don't let anyone here burst your bubble. Experiment, learn, etc.


>>burst bubble

lol. i was just kidding. the point is you guys made it clear that game development needed c++.

>>unforgiving language

if you were talking about c++ then you can say it again. the language is absolutely merciless. and i have heard that c is even worse.

>>experiment. learn.

i am planning to. i always suspected that is was going to be c++ but for a second i was hopefull. c# is a very easy language if you compare it with c++. :-)


c and c++ arent related. I hate it when people make that assumption. In fact, C# is a lot more like java


you probably meant to say C# and C++ arent related. true. i never implied otherwise.

in fact. there is no similarity between c# and c++ except that they are both curly bracket languages.

but if you meant to say c and c++ then you are wrong. they are very much related.


i think i can finally add something worthwhile. i dont think that c# is up to scratch for game programming and i think that the same applies to java although i can be wrong there.

i just finished writting a program in c#. it is about 250 lines but it reads 1230 records from a file. it then checks the database to see if the information in the file record is already in the database and if it is in error based, amongst other things, on what is already there. then it either writes it to the database, the error file or to a remainder file since a criteria applies as to whether or not it should be written to the database or not.

the program runs on a pentium four with 500 megs of ram. it takes about 30 seconds when i run it without publishing it first. that means i just press the dark green arrow for run and the IDe first build it and then runs it.

microsoft claims that the virtual machine is not slower or much slower than C++. in fact it claims better performance since just in time compiling can better take advantage of a given processor. but it is slow. as i said almost half a minute. i admit that i ran the program with the debug which is slower than the full publish but even so. if the program takes 30 seconds to proccess 1000 records then there is little hope of these languages possing a rivalry to C++ in the gaming industry.

faster or better hardware in the future will not improve java or c#'s chances. future hardware will enable them then to accomplish what c++ can accomplish today but by then C++ developers will build even better games with the future hardware.


When you work with databases (i presume some SQL database), the client language makes little difference. Database communication is very slow compared to anything that happens in a game engine. And those are two very different applications. Was your application perhaps so slow, because it called "commit" after each insert, or queryed a large table not using the primary key? Database performance was what slowed you app down, not C#.

Besides, does Java still have the fastest XML parser around? It too tells nothing about performance as a language for a game engine either.

As 3D rendering relies more and more on GPU algorithms, the language of the program runing on the CPU is less important. A shader program on the GPU runs with same speed, it doesnt matter if it was created from a C or Java program.



maybe you are right. for each record the app uses a select query on the database twice. and neither time does it use the primary key. no commit was used though although i dont know if any automatic commit was called by database or app or dot net framework. also i admit to having written it not for the best possible speed( no need). the database was closed and reopened for each write( but there was only 130 writes) and for each group of two checks.

still. i have run small c++ programs as well as small c# programs. the c++ runs at speed so fast that before you even remove your mouse pointer from the button it is done. but the c# can have you waiting a few seconds.


well this could go half and half. if your looking to make a shitty browser based game that ever one seems to love like runescape. go with java and java your heart out. if your looking to make a good game engine that makes a good game that everyone loves, go with c++. thats what i think atleast. as far the whole java speed compared to c++ i don't know what my opion is on that. i'll have to look in on it and let you go. but for now i'm saying c++ is faster.

Votes + Comments
Unnecessary profanity and ill-informed speculation.
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.