Are there any big Commercial Games in C?

Started by
15 comments, last by Hodgman 15 years, 11 months ago
With C++ being so popular, I was just curious if there are any Big time commercial games in C or if people are still using C to develop commercial quality games?
Advertisement
Is there a specific reason why you ask? No project comes immediately to mind, but we might be able to answer your underlying question even without knowing which games are written in C.
You really need to try a few languages and choose the one you find easiest. Bear in mind that it may be 10 years before you make a "big commercial game" so don't be in such a hurry.
Don't thank me, thank the moon's gravitation pull! Post in My Journal and help me to not procrastinate!
Well, the root of my question is that I'm a Java developer who's interested in moving over to C or C++ for Games development. However, judging from the questions/comments I see in forums, it appears that the majority of Game developers uses C++. With that in mind, it appears pointless in learning C - although C may have a shorter learning curve than C++?
Quote:
However, judging from the questions/comments I see in forums, it appears that the majority of Game developers uses C++. With that in mind, it appears pointless in learning C


So you believe it's "pointless" to learn a language just because the majority of game developers don't use it? You couldn't be more wrong. First of all, do you really think that professional gamedevs only know C++? They probably know a dozen of languages. And second, are you a professional developer? No. So you don't have to work with the constraints they do(compiler support, legacy). Learn a lot of languages, and pick the best one for the job judging by *your* conditions and requirements, not by someone else's. For example, I know C++ but I have decided that I program mainly in Python, because it serves me better. Merely imitating professionals and using whatever tool they happen to use doesn't make you a better programmer.
I wonder, how you could avoid learning C while learning C++... C is basically a subset of C++.

But to your question: I think that Doom, Quake 1 and/or 2 were written in pure C. But I'm not 100 percent sure.
Quote:Original post by gp343
However, judging from the questions/comments I see in forums, it appears that the majority of Game developers uses C++.

The majority of game developers on forums never finish their games, either.

Quote:...C may have a shorter learning curve than C++?

Not really, and certainly not to a Java developer. Besides, C++ is an imperfect superset of C, so you can employ almost all C techniques in C++, though you really should learn C++ techniques and idioms.

Either choice is functionally adequate. There may be external constraints for you that will dictate one language over others, but as far as intrinsics go, C, C++, Java, Python, etc, etc, etc are all valid choices for game development.
Well, 'learning C' is not something you can avoid when doing C++. It's practically the same language, the only difference is in techniques used due to the fact that C doesn't have an object-oriented flow.

But, when it comes down to it, I can tell you that yes, some game developers do use normal C. I work for a console games developer, and the engine we use is mostly standard C style, with a few classes here and there.

Just use whatever style/approach you feel comfortable using. TBH i prefer the class-based approach, but have to accept writing normal C style code for the majority of my work.

Don't rule anything out, just make sure you're familiar with the different techniques used in old-style C code, in case you find yourself needing to use them yourself.
Quote:Original post by Dinsdale
I wonder, how you could avoid learning C while learning C++... C is basically a subset of C++.


You could avoid learning, for example, the C way of handling strings(with char*, strcmp,strcpy and whatnot) and learn the C++ way of handling strings(std::strings). You could avoid malloc and use new. You could avoid learning the likes of printf,scanf and learn streams. You could avoid learning how to implement virtual function tables by learning how to use virtual functions. Same for a lot of things that are handled differently in C and C++.
Quote:Original post by mikeman
You could avoid learning, for example, the C way of handling strings(with char*, strcmp,strcpy and whatnot) and learn the C++ way of handling strings(std::strings). You could avoid malloc and use new. You could avoid learning the likes of printf,scanf and learn streams. You could avoid learning how to implement virtual function tables by learning how to use virtual functions. Same for a lot of things that are handled differently in C and C++.


Yes. But those things are not language constructs, those are more or less the same in both. It's more a 'coding style' question. You can always use malloc/free in C++ if you want :)



This topic is closed to new replies.

Advertisement