C++ Alternative to Unity?

Started by
24 comments, last by Serapth 11 years, 2 months ago
My #4 is a logical conclusion, but since I don’t know about every engine out there I can’t say it is conclusive fact.
If there really is an engine out there that satisfies his conditions, then I fully retract my #4, and it can be disregarded from here out.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

Advertisement

N.B. Ogre3D isn't a game engine -- it's only a graphics engine -- but yes, there's plenty of game engines built upon it.


Yes you are right thanks for the correction
Has anyone considered that the OP may know C++ already?

Irrlicht, Ogre3d and cryengine are the 3 that come to mind.

Cryengine apparently has a clue in the name to its difficulty to even experienced C++ devs, its also only free for non commercial use (so practice purposes and making free games). If you want to sell a game with cryengine then you have to contact crytek, they offer a royalty based license (ie you give them 30% of income or something), their full license is extortionate, we are talking tens of thousands of dollars. Crysis is the only game I can think of using the cry engine (and that is what the engine was made for).

Irrlicht and ogre are both opensource and I doubt your going to run into the performance issues of ogre (I've seen to stunning examples made in ogre that ran perfectly fine on my laptops integrated GPU let alone my main rig). I don't think irrlicht is particularly quick either.

Source I could have sworn mostly used lua scripting rather than C++ but after some googling it seems you can use it. Source mods it used to be you were allowed to sell the mod files as long as you didn't bundle the engine in with it which generally means the end user has to install a source engine game on their system before being able to play your game, TF2 is free and works fine for these purposes but your end user might not want TF2. I don't know if they've changed that rule so you can only make mods if they are free or something. Just typing source into steam shows a largish list of source engined games. The license for if you want to actually include the source engine with your game is hideously expensive (thousands and thousands of dollars again).



If you do know C++ already then picking up C# for unity should be a breeze. If you don't know C++ already then C# will be easier to learn than C++ anyway. My experience with unity so far though hasn't been good but I think that might be a corrupt install rather than unity itself (my editor camera cannot move, only rotate on the spot no matter what buttons I press and yes I have checked the settings, The sample project included the guy can't shoot and the enemies don't activate. When I make a game the game camera doesn't render anything no matter whether an object is in its FOV or not. No idea what is going on and right now a reinstall isn't possible)
Indeed, if the content is simple enough Ogre3D will run it fine. But when the amount of your content grows, you are forced to optimize much earlier and more aggressively than you should need to, and may end up with a false impression of your CPU's & GPU's capabilities.

Try performing an experiment where you create a simple OpenGL or Direct3D app which draws for example 1000 or 10000 copies of an identical object on the screen, using the simplest vertex and pixel shaders possible. Then look at the rendering API calls with PIX or gDebugger. You should be seeing (assuming OpenGL)

glUniform...()
glDrawElements()
...

repeated over and over. Now repeat the experiment using Ogre3D. Make sure to use the same material for each object so that there should be no renderstate changes. Fire up PIX or gDebugger again, and you'll be seeing huge amounts of redundant API calls (despite the material being same) repeated per object.

(here's shortcuts to what you should be seeing in both cases, courtesy of gdnet member clb:
http://dl.dropbox.co...tateChanges.png
http://dl.dropbox.co...enderSystem.png)

Of course, an engine is not only about its features or performance, but also the community, and that is where Ogre3D excels. Despite this, at this point in time I don't think its legacy design and bad performance should be ignored anymore.

(let's see if this post earns me more downvotes...)
This is a list of the most common 3D game engines, there are 20 in all. The programming language of choice is given for each.


As to actually writing your game logic in C++, almost no engines work this way. CryEngine I suppose, although even it uses an internal scripting language. Simply put, game logic and C++ just don't go together all that well. There are rumours that the next Unreal Engine is going to support C++ and Kismet in place of UnrealScript and Kismet, but that sounds more to me like they are replacing UnrealScript with Kismet...


As to C++ engines with an integrated dev experience like Unity, I don't really believe that exists. The GamePlay SDK ( it's in the list ), is C++ based and has a rumoured level design editor in the works.

Scripts are simplified versions of programming languages, so that designers and other non-programmers—or programmers with extremely little skill—can work with them.


lol

Not quite!

C#, used by Unity, is a fully fledged OO language that has far more features than C++ and is therefore more complicated. It isn't more complicated to understand, because it's better engineered.

You can code in anything that compiles to CLI, including C++, and use that code in your Unity games, providing you don't mind using Visual Studio. Compile your code into C++/CLI. The DLLs can be dragged and dropped into your unity project as assets and then referenced by C# classes attached to your game objects. You will only have problems if you want your CLI code to interop with native windows code, and then only with portability to other platforms that Unity can target.
James
In case it wasn't clear from my last post.

There is an engine similar to Unity 3D that supports C++

It's called Unity 3D

You can write C++, compile it to C++/CLI DLLs, and reference those in your game object scripts.

So if you have, for instance, all your AI routines written in C++. You can keep them in C++, and only need write enough C# to make calls to the appropriate functions. Manipulating objects in the scene graph will still be done with C# but that's ok because in any C++ engine you'd write 90% of such code in a scripting language anyway, You have the added advantage that (like Java) C# is a proper language that's very close in syntax to C++ and not restricted, or weird, in the ways that scripting languages often are.
James

C#, used by Unity, is a fully fledged OO language that has far more features than C++ and is therefore more complicated

Number of features of a language != how complicated said language is...

I personally find it a little peculiar that the OP says he hasn't done any work with a game engine, but still wants one "programmable in C++". If he hasn't done any work with a game engine before he should start by writing scripts for one, even if he himself might not be a beginner programmer. Otherwise, diving into the C++ code of the actual engine would feel more like drowning...

Hello,

Today, I ,for some wierd reason, was all excited and gun-ho to start researching and programming with a game engine. The first game engine that popped into my head was Unity because, well...... C'mon its pretty well known. Anyways I go to google type in Unity and click on the website and I get suddenly amazed at what I see! Theres all this stuff that means nothing to me!! But it looks high-tech and smart!!! Anyways, 5 minutes later I start to question whether or not if I should go and download it or see what languages it can be written in. I obviously go with the smarter of the two decisions and went and checked the languages. Good thing I did that because I found that it doesn't carry C++! I was pretty sad after that, so I did a little background checks to see if there was a plugin or anything of the type and found that it would be somewhat difficult to do and it just would not be the same. (Next thought that came into my head.) "Maybe I should go to GameDev and see if they have any suggestions on what I can do now that I know what I can't do!!".
Thats where you guys come in. I haven't done any work at all with game engines so I have no idea what to search for or even know what to type into google (hahaha).

What do you guys suggest if the requirements are:

1. Has to be programmable in C++.
2. Doesn't matter the difficulty.
3. Has to have at least the very basics of a game engine (I don't know everything that is included in game engines soo......)
4. Oh, and it has to be free. [I'm not made of money here;)]


Thats it for the requirements and thanks in advance!!


You wait a few weeks and then you go to Garagegames website and download the by then Open sourced(MIT) free Torque 3D engine. You have access to all the source codes in C++ and you can use it for commercial use for free too. It uses a scripting language too that is close to C++ syntax.

After you have open up the hood and start looking at the source codes in C++ for this engine you will be grateful that engines like Unity and Torque has its own scripting languages. Unity has a very nice option of doing scripting in C# or a java script like language and Torque 3D uses Torque Script. However, Unity is not for free and costs quite a few $$$ if you want the pro version.

It makes a lot of work so much more easy when one can just script. I mean think about it. Each time you change a code in an engine you better rebuild it before you can test the result. With scripting such as Unity offer you, one is free to run it at once and check the result.

Also I second what Mizu says above.

"The only thing that interferes with my learning is my education"

Albert Einstein

"It is a miracle that curiosity survives formal education"

Albert Einstein

+1 irrlicht.

I've used orgre3d and irrlicht. I like irrlicht the best, easier to use, the api is more consistent and easy to use. Speed is great, and it comes with a free level designer. It also compatible with LOTS of formats, ogre3d only supports its .mesh format. It also has an optional audio library too.

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

This topic is closed to new replies.

Advertisement