Is it such possible to create fast games without using C/C++ ?

Started by
50 comments, last by shadowomf 11 years, 3 months ago
Case in point - MineCraft (java)

Minecraft isn't exactly "fast", In Minecraft I get 30-40 fps in most other games I get 60-75, In my game Engine I get 110-130 fps its written in C/C++ and looks a lot better than Minecraft. It all depends how fast you want to go. To write really really fast games you don't necessarily need C++ but you do need a compiled (or assembled) language. That said Minecraft is still fast enough to play and be amazingly fun (it used to have terrible performance back in alpha/beta) and alot of games written in other languages are fast enough. So unless you want your game to run really really fast you could use java or python or something.

Those whose to say that the "performance" issues are not entirely Java? Like Simon stated above me, I could see those "performance" issues coming from all the cubes/voxels it must always manage.

Advertisement

Comparing a C/C++ run-time to the Java/.NET framework dependency is a bit too much?

It's not that different. You can always package the JRE into an executable, which achieves much the same end.

Excelsior produces a nifty-albeit-expensive AOT java compiler to simplify the process, or there are a variety of less-friendly-but-cheaper open-source options (GCJ, LLVM + VMKIT, etc.)

Speaking on behalf of Excelsior: We had an $10 charity deal in the end of 2012, have been extending discounts to indie developers and small companies for quite some time, and if your game is non-commercial, you may qualify for a totally free license, like the authors of Culrtis II, Rogue's Tale, etc.

[quote name='SimonForsman' timestamp='1357956453' post='5020579']
If a statically linked library contains a security hole and you don't patch your software immediatly you expose your users to unnecessary risks, if a dynamically linked library contains a security hole the user will get an updated version of the library installed automatically by the OS(Atleast on those with a modern package management system, Windows still only sends out updates for Microsofts software, but the RTE for C++ on Windows is Microsoft software and it does get security fixes, some critical, through Windows Update) as soon as it is available.
[/quote]

For single player games not that big issue (though it is still an issue). However you can always provide a patch for your game (regular patches are a good idea anyway).

Two more things. Games have often a much shorter lifetime than other software, which reduces the chance that a huge bug is found in the msvcrt. And games get patched more often than other software. Sometime old versions of some office/commercial software is used for years without any updates (never change a running system).

Note microsoft is the exception here, since they have a unique distribution channel shipped with their os. For most other third party libraries you will probably be better of to ship a new version of the library by yourself using a patch/update/whatever since you can't expect the user to update them.

[quote name='SimonForsman' timestamp='1357956453' post='5020579']
Static linking is the lazy route, making sure your application installs properly is the proper way to go.
[/quote]

I would happily take the lazy route, adding another step where the msvc redist installer opens up and confuses the averange computer user isn't exactly great. Besides if you're doing a hobbist project (something for yourself and your friends), copy&paste install is much easier than building a installer and convincing people to run it.

Yes I know I'm really lazy and don't like to okay->agree->continue->browser->accept->done if a simple ctrl+c, ctrl+v can work too.

[quote name='iMalc' timestamp='1358017057' post='5020797']
Case in point - MineCraft (java)
[/quote]

As mentioned before not something all would consider fast.

I don't think it sucks performance wise, but the gameplay in general is a bit more on the calm side.

This topic is closed to new replies.

Advertisement