Which language is the best?

Started by
21 comments, last by ToohrVyk 17 years, 3 months ago
Quote:Original post by Spoonbender
Quote:Original post by Ravuya
There is no "best" language -- I've seen admirable prototypical MMO games done in Erlang, Scheme, C++, C#, C, Java, Python, Smalltalk and about a hundred other languages.

You have? Cool, I'd love to see the Erlang MMO :D
It was one of the guys I know from GDorg, but his direct inspiration was this article which offered a remarkable amount of scalability.

I'll see if I can dredge up something on the MMORPG front.
Advertisement



Some prefer oysters while others prefer snails (and some prefer both)......

--------------------------------------------[size="1"]Ratings are Opinion, not Fact
first of all you must distinguish the game engine and the game play
for the former C\C++ or c# are probably a must
For the latter a script language such as Lua or Phyton or the ones supplied with the game engine are normaly the best choice
For complex game play a combination script language \ C++ is the top
Pretty much any (compiled, I guess, for speed) language is fine, with an interpreted scripting language being a good choice for some of the game logic if you want your game to be moddable (which includes expansion packs and the like).

VB.net should be fine if that's what you're used to, and it will allow you to use C# developers for some parts if you want.
Quote:Original post by alunharford
Brainfuck is *the* language for portability.
It's not a nice language for people who've never programmed in assembly, but it's SERIOUSLY easy to write a compiler for.


Ook! is vastly superior to brainfuck in all aspects.
You are correct though, BF is easy to write compilers for, though an optimizing compiler might be tricky.
[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!
As any of the other posts, this one is only a comment and an advice.

I would recommend that before choosing a programming language, you should shift your attention to more important issues at the beginning of the development of your game. More important questions at this stage include:

What is the target platform? (Windows, Linux, etc)
Is it portable, i.e., does it run in Windows and Linux (and other OS's), or does it run exclusively in a single OS?
Are the graphics 3d or 2d?
Is graphical performance critical? (Smaller games do not require the best graphics card)
Is there a deadline? Is time even a factor?
What is the game genre (RPG, RTS, something completely new)?
Is the game static or expandable? E.g.: Are there exactly N weapons (if any) in the game, or is there a possibility to customize and add your own weapons? Will there be new types of enemies or not?
Will you need a script engine?
Is it open source?
What is more important to you: the development of the game (to learn how a graphics/physics/sound engine is done) or the game environment (story, characters, look and feel, etc)? If development isn't that important I recommend using third-party engines (Ogre3d or irrlicht, etc) so you can focus on what really is important.

These questions should be answered before choosing a programming language.
Don't choose a language because you are more comfortable with it. Choose one that gives you more power to do what you want to do.

Some side notes.
I would recommend reading books on game development and architecture (if not yet done) before jumping to the code. The one I like the most is "Game Architecture and Design", from authors Andrew Rollings and Dave Morris. The book is somewhat pricey so I would only recommend buying it if the game is going to be a medium to large project.
Also, for medium and large projects I recommend learning UML or, at least, create your own scheme.
I believe this is the best advice I can give you: if you plan to do more games after this one, write as much info during the development phase as you can, so you can learn from past mistakes and have better productivity in the next one.

I hope this post will help you to achieve your goals.
My passive agressiveness can be so devastating. - Alanis Morissette, "Everything"
Chef is also a very "productive" language, if you like cooking...

Now, being serious I'd recommend Java / C# for their productivity, though I must say I'm addicted to C++.
I'd say C++. I only say this because when making an MMO game you want your client and server in the same language. Java can be used for the server though, so anything is possible. Also since an MMO game will take you years to make fully, you'll be making or using a GUI so your map editor will be in the same language.

VB.NET is for application design, just so you know. (I've made a working MMO with it, but I don't recommend it, the only thing it has that makes things easy is the networking is almost 100% done for you).
NcatDesigner: C++ and Java are still industry standard, but be sure to investigate other general domain languages, such as c# and ruby among others. (And don't forget these languages support C integration for machine-critical code!)

VB will get you quick access to the vast .net standard library, but beware the VB language is old and full of pitfalls; it is arguably more treacherous than C++ because it has similar hidden complexities without the exhaustive semantic warnings that at least alert you to effects that might not have been intended.

Best advice is of course to get on IRC channels, subscribe to mailing lists and practice practice practice using any other languages that interest you. This is the only way learn what works.
Yeah, I'd go for C++.

No, it's not the best language, but it's so widely used that it makes little sense not to use it. Tutorials and examples are everywhere, the knowledge-base behind it is HUGE, and there are a tonne of programmers for it (Which makes recruiting easier).

Java and C# are also good options due to their wide use, but C# is still new, and I've never seen Java used for professional games outside of the mobile arena and a few select casual games (If anyone has any proof to the contrary I'd be glad to accept it). I can't say why that is, however (Speed? Lack of SDKs?), as I've never actually used it.

This topic is closed to new replies.

Advertisement