Advertisement

Some newbies (like me) do love to code in C++

Started by September 27, 2012 04:06 PM
35 comments, last by jbadams 12 years, 4 months ago
Yes, C++ is going to be the primary language you'll see major game engines developed in. Console development will be C++ based for at least another 10 years. Think MS is going to license .Net to Sony and Nintendo? Doubtful.

"You can't say no to waffles" - Toxic Hippo


Think MS is going to license .Net to Sony and Nintendo? Doubtful.

The new Playstation Suite for use on the Vita and phones is based on C# and .Net, and you can also use C#/.Net on iOS, Android, etc. The new Nintendo DevKit includes a special Unity deployment and you develop in C#/.Net. It is an open standard that does not need to be licensed as the Mono implementation is not burdened. Note you can always use AOT for platform specific speed optimizations but realistically the only use for that is on platforms that do not allow JIT (i.e. iOS, Vita, WiiU?)
Advertisement
Ah, cool. I thought I had read that Mono wasn't legal so it couldn't be used for major commercial stuff like that. Checking the wiki page does sort of semi-agree with the idea that it's of questionable legality, but I guess Microsoft decided it didn't want to start suing people over it years ago.

"You can't say no to waffles" - Toxic Hippo

I was exclusivly talking about game engines.
Program the game in any fringe language.... Program the game engine in C/C++
Note:

The original poster opened a new topic (now closed), but I don't feel it was really needed given how civil this one has been thus far. His question from the other topic is as follows:

I have started a new topic, partly because the older one was eaten up by flame war, and partly because, I want to know the expert likes of game engine developers. Note: This is not a poll. I expect people having a background in HIGH PERFORMANCE AAA *GAME ENGINES* ONLY, to give out their thoughts. (To *game programmers* and game logic programmers - Don't get C#, Java, lua in between).


C++ as we know of it, is used in AAA *Vedio Game Engines* primarily because (correct me) -:

-> Technical reasons » Higher performance, Lower latency overhead, Portability, native runtime.
-> SocioTechnical reasons » Large legecy-active codebase, Availability Of libraries (the libraries will be alwayas more mature), Availability of IDEs and mature documentation. Also many scripting languages in games have a good C api (like LUA, so added up to that codebase, is our higher level lua, python codebase).
-> Social reasons » People dislike it, when MS or Oracle owns a language, People already know C++, There are no direct competetors (and if some people think that Java/C# are, they are wrong. . . C# directly competes with lua, python for game logic)( here I exclusively talk about AAA game engines, so game logic programmers, dont take harm).


C++11 solves the issue of development time, concurrency and learning curve.

Considering this, what is your say on the future of C++? Don't you think, that C++ for at least game engines will be used as long as we have vedio game consoles? Don't you think that we are so much dependent on C++ that virtually we can't do (game engines) withought it?


This is for the game engine programmers only. . . So when we are talking about unity, then be aware that its writern in C++.



You missed one important reason for continued common use of C++ -- it's often the only choice -- unless you want to implement your own compiler and standard libraries, your only choices for targeting consoles are C or C++.

- Jason Astle-Adams


Ah, cool. I thought I had read that Mono wasn't legal so it couldn't be used for major commercial stuff like that. Checking the wiki page does sort of semi-agree with the idea that it's of questionable legality, but I guess Microsoft decided it didn't want to start suing people over it years ago.


The parts of mono that are included in the standard are safe, things like WinForms (Which isn't part of the standard but is included in Mono in order for it to run .Net apps written for Windows) might be covered by patents that Microsoft hasn't made any promises about. (There hasn't been any word from Microsoft that suggests that they hold any patents that could threaten mono though),When it comes to API compatibility the Oracle vs Google ruling on dalvik pretty much established that API structures are not covered by copyright so patents are the only threat, Microsoft is not the only company that could threaten mono there and Microsofts .Net is not safe either, allthough if .Net is infringing on someones patents it will be Microsoft who takes that fight. (Oracle holds quite a few JIT and VM related patents for example)

When it comes to games you shouldn't use the Windows stuff anyway(Unless you are developing for Windows) so it is a non-issue and on Android/iOS the Windows specific stuff isn't even included AFAIK.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Advertisement
I stick with C++ because I know it, I can port to lots of platforms with it (including mobile), and I have a code-base built up with existing engines.

I don't believe it is necessarily the best - and I am intrigued in moving to VM languages like Java (which I already know) or C#. Part of the problem is it would be a big investment in changing a primary language that I use (not just learning, but also porting or rewriting code for things like a game engine), so I would want to make the right move long term, but it's still not clear to me what the right direction is for me. (Java is fragmented into at least three different versions - desktop, Android and J2ME; C# is MS-only, though there is Mono.)

Right now I write for Windows, Linux, Android, Symbian, and I'm not sure that anything other than C++ or Python fit that list. C++ has also allowed other people to easily port to OS X, BlackBerry PlayBook, Maemo and Meego. At some point in the future I'll drop Symbian, which makes C# an option if I use Mono for Android and Linux. (I do find it a bit amusing that an MS-only language has ended up being fairly cross-platform, whilst a language intended to be cross-platform has ended up less so...)

What are the choices for cross-platform game development? Obvious ones are C, C++, C#, Python. And C and C++ probably still win in terms of the number of platforms that can be supported (although admittedly, most people only care about a few at most, if they even care about more than one platform at all).

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux

Actually i agree with you, i love C++ and i'm not very experienced, but lets remember that programming languages are like tools,
some are better for something and others not and viceversa.
In my case, where i live we have gameloft and they usually look for Java/C++ programmers, so that's what we learn in school,
but there are a lot of people using C# and Python and many more languages,
not because those are better than C++ but because those languages were more suitable for what they were looking for.

I know that C++ it's a standard in the industry but i don't think this makes it The One Above All.
Ok, this question is to the game engine developers only, (please don't bring C# in between as it competes with lua, python)
Is not C++ the only virtually indispensible choice for AAA game ENGINES??? Dosent all the reasons to use it make it the only viable option even in the future?

Even John Carmack's blog posts show that, we are not going to move away from C++ till many of us are even alive. Unity, panda3d, all are in C++..... There is no choice... (AAA GAME Engines should have no limiting forces.... VMs are limiting.... Only languages competing with C++ are C , rust , D etc)

C# people, please use C# for game programming (logic) and tools.... Dont try to get into GAME ENGINES, because you simply can not.
Wait, a new poster on the forum is asking all non C++ Programmers to stop making game engines, while he only knows c++, and is acting pike an expert on all languages. Either he's a troll(Likely) or just doesn't know what hes talking about.

I'm a game programmer and computer science ninja !

Here's my 2D RPG-Ish Platformer Programmed in Python + Pygame, with a Custom Level Editor and Rendering System!

Here's my Custom IDE / Debugger Programmed in Pure Python and Designed from the Ground Up for Programming Education!

Want to ask about Python, Flask, wxPython, Pygame, C++, HTML5, CSS3, Javascript, jQuery, C++, Vimscript, SFML 1.6 / 2.0, or anything else? Recruiting for a game development team and need a passionate programmer? Just want to talk about programming? Email me here:

hobohm.business@gmail.com

or Personal-Message me on here !

This topic is closed to new replies.

Advertisement