Jump to content

  • Log In with Google      Sign In   
  • Create Account


C++ Alternative to Unity?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
25 replies to this topic

#1 Saint Squireen   Members   -  Reputation: 181

Like
1Likes
Like

Posted 15 September 2012 - 07:43 AM

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!!

Edited by Saint Squireen, 15 September 2012 - 07:47 AM.


~Saint Squireen

Sponsor:

#2 Hodgman   Moderators   -  Reputation: 29469

Like
3Likes
Like

Posted 15 September 2012 - 08:13 AM

Maybe the Source SDK? However, for commercial use it's going to be a lot more expensive than Unity.

#3 Saint Squireen   Members   -  Reputation: 181

Like
1Likes
Like

Posted 15 September 2012 - 08:17 AM

What about for non-commercial use? Like for practice?

~Saint Squireen

#4 Hodgman   Moderators   -  Reputation: 29469

Like
0Likes
Like

Posted 15 September 2012 - 08:19 AM

It's free to all Steam users. You only need to license it if you want to sell your game.

#5 M3Gamer   Members   -  Reputation: 169

Like
1Likes
Like

Posted 15 September 2012 - 08:32 AM

try learning c# in unity game perspective: full series excellently made. here: http://www.gamertogamedeveloper.com/ dont worry its not one of those tutorials who just skip half of the stuff, he does it properly and shows you how to use it in the game, my best recommendation.

or just use Ogre3D: free and uses cpp thats all i know.

#6 AgentC   Members   -  Reputation: 1286

Like
0Likes
Like

Posted 15 September 2012 - 08:57 AM

I would strongly recommend not using Ogre3D, or at least if you do, be aware that it has very inefficient runtime performance (bad rendering API usage, overly cumbersome OO design) and with other engines you could get 3-5 times (rough guess) more drawcalls per frame while maintaining a reasonable framerate. This inefficiency is something that Ogre3D contributors themselves also recognize: http://www.ogre3d.or...=69381&start=29 . Plus, after Sinbad leaving, the leadership and direction of the project are questionable.

Some others you could look into: Panda3D, gameplay, PixelLight, SoftPixel Engine, Urho3D (self-advertisement.)

(for more, you can search at devmaster.net; choose C++ in Languages Supported field in the search options, and license options as you wish)

Every time you add a boolean member variable, God kills a kitten. Every time you create a Manager class, God kills a kitten. Every time you create a Singleton...

Urho3D (engine)  Hessian (C64 game project)


#7 Saint Squireen   Members   -  Reputation: 181

Like
0Likes
Like

Posted 15 September 2012 - 09:08 AM

Thanks guys:D

~Saint Squireen

#8 L. Spiro   Crossbones+   -  Reputation: 13270

Like
0Likes
Like

Posted 15 September 2012 - 09:39 AM

Firstly, “No to Ogre 3D”. They’ve skipped the very basics when it comes to performance in rendering, and if they managed to fail on that part who knows how far else they have managed to fail.

Secondly, it is “gung-ho”, not “gun-ho”.

Thirdly your #1 and #2 contradict each other.
It must be C++, but the difficulty doesn’t matter?
Firstly, C++ is one of the most difficult languages to learn, yet if you really considered that difficulty does not matter you would not shy away from C#, which is over twice as easy to learn.

Fourthly, Unity 3D doesn’t “carry” C++? Do you understand the whole point behind scripted languages?
Scripts are simplified versions of programming languages, so that designers and other non-programmers—or programmers with extremely little skill—can work with them.
C++ is not going to be part of any scripting package, as it would defy the whole point of a scripting language.

In order to use C++ with any engine on this planet, you will have to buy a full-sized professional company license, and that is always going to cost far more than you can afford.


What you seek does not exist.
Although I have not heard from the Source SDK in a long time. It was mentioned before and might be exceptional.


L. Spiro

Edited by L. Spiro, 15 September 2012 - 10:25 AM.

It is amazing how often people try to be unique, and yet they are always trying to make others be like them. - L. Spiro 2011
I spent most of my life learning the courage it takes to go out and get what I want. Now that I have it, I am not sure exactly what it is that I want. - L. Spiro 2013
I went to my local Subway once to find some guy yelling at the staff. When someone finally came to take my order and asked, “May I help you?”, I replied, “Yeah, I’ll have one asshole to go.”
L. Spiro Engine: http://lspiroengine.com
L. Spiro Engine Forums: http://lspiroengine.com/forums

#9 stevo58   Members   -  Reputation: 243

Like
4Likes
Like

Posted 15 September 2012 - 10:34 AM

I know you're not looking to spend money but C4 Game Engine is very C++ oriented, and it comes with demo games that you can run or even modify. Standard Edition is only $250 unless you plan on making PS3 games then Standard Edition is all you need, you can even sale the game after. Just opening up another suggestion.

I have used Ogre3D not a big fan of it either but its C++ oriented as well only good thing about it is that it's free.

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

Scripting also saves on compile time, normally saving the programmer time in the long run. Also sometimes you want to make a minor change and instead of compiling the whole program again you can modify the script

In order to use C++ with any engine on this planet, you will have to buy a full-sized professional company license, and that is always going to cost far more than you can afford.

Ogre3D uses C++ and its free, looks like we are from different planets? Plus I just suggested C4 Game Engine that also uses C++ heavily and the cost is only $250 and comes with source(I don't really see this being a wallet breaker) plus you get unlimited updates to the engine.

Edited by stevo58, 15 September 2012 - 10:41 AM.


#10 Hodgman   Moderators   -  Reputation: 29469

Like
9Likes
Like

Posted 15 September 2012 - 10:52 AM

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

This is overstepping the mark a bit, I think.

"Scripting" languages are usually used over C++ for gameplay code because it can more productive to write in these "simpler" languages.
This isn't true for all teams -- if your team are experts in C++ and aren't very familiar with other languages, then it would make perfect sense to write your "scripts" in C++, and this is often done. Other teams use even older languages, like LISP for this purpose. Quake even used a C-derivative for it's "scripting language". I've seen other games that had made their own scripting language which actually resembled a high-level assembler!

Also, this isn't to accommodate "programmers with extremely little skill" -- but different languages focus on different skills.
e.g. C is good for when you want to think about memory being a big blob of bytes, but comparatively sucks if you're thinking in higher level algorithmic terms, like using list comprehensions. On the other hand, a "simpler" language like Python allows these more advanced ideas to be expressed succinctly. You still wouldn't give Python to an extremely unskilled programmer and trust them not to ruin your project!!
Generally the guys writing the gameplay code in the "scripting" language will just have a different skill-set to the guys writing the engine in C++. Both types of programming require different types of creativity, but both require the same master-craftsmanship in order to create a quality product.
e.g. at my last job, we decided to write the game in Lua (~a dozen staff) and the engine in C++ (~3 staff). All of the programmers are experienced, talented people, who could code perfectly fine in C/C++ if we wanted them to. Some of them are veterans who've shipped dozens of console games. Choosing Lua had absolutely nothing to do with making the code accessible to unskilled programmers, it was only about choosing the language that best fit the task at hand.
Non-programmers, such as designers, never wrote Lua code -- the only code files they edited were Lua files containing only tables, where it functions as a DDL, not a programming language.

In order to use C++ with any engine on this planet, you will have to buy a full-sized professional company license

As mentioned above, the Source engine is free to use (not free to sell though) and has a C++ API. There's also all of the ID/Quake engines (free to use, in C/C++). Other cheap engines like C4 and Torque do exist though, which provide full C++ source.

Ogre3D uses C++ and its free

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.

Firstly, C++ is one of the most difficult languages to learn, yet if you really considered that difficulty does not matter you would not shy away from C#, which is over twice as easy to learn.

This is a good point -- the OP is a beginner, and C++ is a very brutal language. It is probably much easier to learn C++ if you're already a competent game programmer in another language first -- so consider trying a C# engine!
I did personally learn C++ by diving head-first into the GoldSrc engine -- this was a very slow, frustrating, painful experience, and I did write a lot of horrible, buggy code... However, 5 years later I was a competent C++ game programmer, who knew the inner C++ workings all of the many, many systems that went into creating Half-Life 1 Posted Image

Edited by Hodgman, 16 September 2012 - 12:39 AM.


#11 L. Spiro   Crossbones+   -  Reputation: 13270

Like
1Likes
Like

Posted 15 September 2012 - 10:52 AM

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
It is amazing how often people try to be unique, and yet they are always trying to make others be like them. - L. Spiro 2011
I spent most of my life learning the courage it takes to go out and get what I want. Now that I have it, I am not sure exactly what it is that I want. - L. Spiro 2013
I went to my local Subway once to find some guy yelling at the staff. When someone finally came to take my order and asked, “May I help you?”, I replied, “Yeah, I’ll have one asshole to go.”
L. Spiro Engine: http://lspiroengine.com
L. Spiro Engine Forums: http://lspiroengine.com/forums

#12 stevo58   Members   -  Reputation: 243

Like
0Likes
Like

Posted 15 September 2012 - 11:01 AM

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

#13 6677   Members   -  Reputation: 1058

Like
0Likes
Like

Posted 15 September 2012 - 11:52 AM

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)

Edited by 6677, 15 September 2012 - 11:55 AM.


#14 AgentC   Members   -  Reputation: 1286

Like
6Likes
Like

Posted 15 September 2012 - 12:34 PM

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...)

Every time you add a boolean member variable, God kills a kitten. Every time you create a Manager class, God kills a kitten. Every time you create a Singleton...

Urho3D (engine)  Hessian (C64 game project)


#15 Serapth   Crossbones+   -  Reputation: 5326

Like
2Likes
Like

Posted 15 September 2012 - 03:07 PM

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.

Edited by Serapth, 15 September 2012 - 03:09 PM.


#16 JamesTheNumberless   Members   -  Reputation: 129

Like
-1Likes
Like

Posted 15 September 2012 - 04:49 PM

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.

Edited by JamesTheNumberless, 15 September 2012 - 04:51 PM.

James

#17 JamesTheNumberless   Members   -  Reputation: 129

Like
0Likes
Like

Posted 15 September 2012 - 05:05 PM

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

#18 Mizu   Members   -  Reputation: 989

Like
1Likes
Like

Posted 15 September 2012 - 07:16 PM

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...

#19 Dwarf King   Crossbones+   -  Reputation: 1809

Like
2Likes
Like

Posted 16 September 2012 - 12:51 PM

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

 


#20 EddieV223   Members   -  Reputation: 1406

Like
1Likes
Like

Posted 16 September 2012 - 01:32 PM

+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.1 Download http://www.sfml-dev.org/download.php

SFML2.1 Tutorials http://www.sfml-dev.org/tutorials/2.1/

 

// 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

 





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS