Jump to content

What programming language are CMx2 series written in?


Recommended Posts

As mentioned, the game uses OpenGL so C++ is certainly involved in the background. C++ is platform independent language that is widely used in all kind of different applications. It is however considered a difficult language to grasp due to some complex technicalities.

C# that you started with is more modern and "easier" to grasp but it is developed by Microsoft and as such it is very Windows dependent. Anyone who ever learned a programming language in depth knows that designing games is difficult especially if it's a one man show.

Steve mentioned that they have been checking out Unity which is a platform independent IDE for designing games. It basically allows the game designer to utilize built in physics and graphics engine thereby decreasing the development time. It uses C# as scripting language, if you want to try to design games it might be worth checking out.

Link to comment
Share on other sites

I did already check out Unity. It looks very interesting, but i think i am still not good enough at C# to be able properly use an already existing engine. So far i have only programmed a ballistic calculator and i am currently trying to make a tiny 2D naval battle game. My expirience in programming can not even be measured in months yet. I like it though, it is probably the most creative hobby i have ever had.

Link to comment
Share on other sites

Hmm, maybe. I am working at laptop/PC repair shop and approximately 95% of the computers that brought to us are Windows machines, so Microsoft appears to be still extremely dominant on the market. C# was recommended to me by an experienced programmer as a good language for starters because, while on the one hand it is comparably safe and easy to learn, it bears lots of similaritys with Java, C and C++, so it can serve as jump-off point in case one desires to expand ones knowledge later on.

Link to comment
Share on other sites

Well, through Steam Valve is pretty much controlling the PC market right now I'd say (I don't know the actual figures, though, they just seem pretty dominant to me), and they are clearly trying to push Linux with their new Steam-Box and SteamOS. Also Microsoft is shifting their focus away from desktop pc and more towards mobile, so I wouldn't be too suprised if Valve could actually make Linux happen in the long run, as an OS it is pretty much equal in quality to Windows.

Link to comment
Share on other sites

Hmm, maybe. I am working at laptop/PC repair shop and approximately 95% of the computers that brought to us are Windows machines, so Microsoft appears to be still extremely dominant on the market. C# was recommended to me by an experienced programmer as a good language for starters because, while on the one hand it is comparably safe and easy to learn, it bears lots of similaritys with Java, C and C++, so it can serve as jump-off point in case one desires to expand ones knowledge later on.

I concur with Redwolf that your programming skills shouldn't be bound to one particular language. I can recommend to you this book here

http://www.amazon.com/Practice-Programming-Addison-Wesley-Professional-Computing/dp/product-description/020161586X

While heavily relying on C and C++, the principles there aren't really language-specific (about the authors, Brian Kernighan is one of the inventors of the C programming language and Rob Pike is credited as one of the masterminds behind Unix, the OS from which pretty much every major OS in use draws heavily in one form or another).

Regarding Unity: it's not really MS-bound either, it's using - by default, you can set it up otherwise if you want - Mono C# implementation and Mono's IDE (Monodevelop). They are both free-software (so if Microsoft decides that it doesn't like .NET languages any more, you won't be left out hanging out in the cold) and they both work fine. This is possible because the .NET languages aren't entirely proprietary, and are subject to a standards committee similar to that of C (and C++). This standards committee existence might totally sound like a lot of red tape, but they're a guarantee on the longevity of the language.

Unity itself isn't totally bound to C#. The major problem of Unity Vanilla - that is, the one that doesn't cost you $$$ - is the very limited threading capabilities it offers and the fact that your game "engine" will have to be coded in C#. For a variety of reasons, this will be sub-optimal.

When if/you feel confident and necessary, I'd recommend to use Unity Pro - and pay the Unity people some $$$. This allows you to wrap C++ libraries and defer certain computations to a more efficient implementation of certain fundamental elements (like pathfinding, or specific physic simulations) for which C# isn't the best tool for the job.

Indeed, if you want to do cross-platform development, you'll have to figure out how to write the C++ code in a way that remains portable (that is, you can compile it with the Microsoft and the GNU compiler). That sounds like a total pain in the a** but I actually find it is something very healthy to strive for.

TL;DR: Totally learn Unity and if that means learning C#, so be it. Yet keep in mind that the important thing that a CS College undergraduate gets is not knowledge about one particular programming language or tool, but the skill we call 'Problem Solving'. Or that's what I reckon it's the important skill, anyways :)

Link to comment
Share on other sites

  • 3 weeks later...
Learning a Microsoft-only language such as C# seems like an extremely unwise career move right now.

The market segment for programmers is different to what comes in as repairs in PC workshops.

The programming market was desktop apps and server-side programming plus web frontends. A lot of people jumped onto windows-only tools as a career based on that, and they are still there.

Now you have mobile (neither IOS nor Android use any of the MS-only programming things, and they both use OpenGL variants, along with web browsers that of course also use a variant of OpenGL, not of DirectX). You have server-side programming which has some windows folks, but large amounts of the LAMP stack (which is Unix) and large amounts of shops doing whatever Google is doing server-side (also Unix). The hyper thing that I recommend people jump on when entirely new to programming is HTML5 and Javascript so that you get a foot into all those frontends.

So you have huge amounts of new programming market and most of the gain is in the non-Microsoft segments. But you still have large amounts of people who have learned no programming other than Microsoft-only tools. That can't be good for supply and demand.

Now, the main point isn't that I recommend learning Unix-only things instead.

What I say is that there are plenty choices of languages, libraries and tools out there that have implementations offered by multiple vendors and that can be used both on Windows, and Unix, and Mac.

Why would you lock yourself into a Microsoft-only programming tool in 2014?

Link to comment
Share on other sites

Once you have grasped the concept of programming properly, most languages are 'easy' to learn. Just different options and syntax. Anyway that's my experience even though I moved away from coding myself :)

In general you are right, C, Java, C++, C#, Objective-C and all that stuff are almost the same language, with Python, VisualBasic, Ruby and TCL not far away. Learning them all is a waste of time since there are actually different questions out there teaching you something useful. But not when it comes to interview questions.

You get drilled on the idiotic bits in particular languages so that they can tell whether you used them in practice.

Also, I think there is a difference between your primary language and your other languages. You should know one language really well (with all the traps). And making that language a microsoft-only language is not a wise move in 2014.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...