• Advertisement
Sign in to follow this  

Unity Suggestion for a cross-platform C++ 3D game engine/framework

This topic is 1079 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi,

 

I'm looking for a C++ 3D game engine/framework which is either free or cheap for indie developer, available for commercial use.

Those are the features I need

  • Free or cheap for indie developer and available for commercial use
  • Written in C++ (preferably C++11 - not mandatory)
  • Cross platform: Windows, Linux and Mac. Consoles/smartphones are not mandatory.
  • OpenGL 3.x+
  • Graphics Subsystem with Scene graph, animation, particles, font, sprites
  • Sound subsystem (either in the framework it self, or ability to attach 3d party API like OpenAL)
  • Physics Subsystem (either in the framework it self, or ability to attach 3d party framework like Bullet/ODE)
  • GUI subsystem (either in the framework it self, or ability to attach 3d party framework like CEGUI)
  • Input subsystem with support for keyboard, mouse and gamepad
  • Scripting support either using Lua or JavaScript (v8)
  • Tools to create content OR ability to use Blender as content creation tool
  • Preferably and not mandatory - Entity subsystem using Component based design.

A big list I got there.. Hope such beast exists.

 

[Edit] I know there is Unity3D, but for me it looks like a tool where you create content, put it all together, write few scripts and you got a game. While I do want to make games, I also get great satisfaction from Programming.

 

[Edit2] Its not mandatory that this will be one library. This could be a set of libraries that work together with each other. I'm ready to implement the glue code and missing functionality.

 

[Edit3] I got a suggestion about this http://mosra.cz/blog/magnum-features.php It have support for modern OpenGL, OpenAL and Bullet physics. I assume its possible to attach GUI, scripting and Entity system of my own to it.

 

Thank you in advance!

Edited by skwee

Share this post


Link to post
Share on other sites
Advertisement

If you cann't handle Ogre3D (which in my opinion is far from being messy or confusing) then i wonder if you could handle the "features" you want to have with any engine.

To me it sounds that you are looking for a pure api engine which might be easier to start with but more diificult to deal with later.

 

Have a look here: http://devmaster.net/devdb/engines

Share this post


Link to post
Share on other sites

AticAtac

I don't want to turn this thread into pros/cons of Ogre3D. Ogre is complex and big. When I used it, I didn't like it. I might reconsider my decision, but I first to check other alternatives first.

 

Mussi

Thanks, Ill check the features and will consider if I want to buy it or not.

 

Other suggestions are welcomed.

Share this post


Link to post
Share on other sites

Yea, Ogre3D is usually the first framework people recommend.

 

But for me Ogre3D is very bloat, big, confusing and messy. The learning curve is very high, their examples are not good enough, a lot of polymorphism to support both OpenGL and DirectX, messy plugin system, bad architecture (over-usage of Singleton pattern).

I want something more clear both in design and in usage.

I don't know about you, but Ogre3D architecture uses singletons very well, its architecture is very good imho.

 

The engine may be bloated, but that's expected once a library gets widely used. The fact that it has something you won't use doesn't affect your development.

 

You could simply go ahead and code DirectX and OpenGL directly if that really is a problem.

 

Take a look at Polycode, I've never used it myself (got frustrated by the lack of documentation back then) but it is very good.

Edited by dejaime

Share this post


Link to post
Share on other sites

dejaime

Well, again, Ogre3D is a matter of taste. I didn't like it.

 

I could code DX or OGL, but this is what I'm trying to avoid, since I want to make games and not engines.

 

Polycode looks nice! Ill check it better in comparison to Magnum I mentioned earlier. Those two looks very solid for me!

Share this post


Link to post
Share on other sites

V3ntr1s

Yeah, Irrlicht looks good.

 

Anyway, looks like many people are happy with Ogre3D and I'm probably misinformed or still padawan in game making. Therefor I'd like to ask:

All the guys who suggested Ogre3D: did you make any game or went further than running the Ogre3D examples? Did you successfully integrated sound, physics, ui, scripting into Ogre3D? Maybe I just got frustrated by the examples, therefor I have wrong understanding of Ogre3D

 

Thanks in advance.

Edited by skwee

Share this post


Link to post
Share on other sites

Mussi

Yes I know that Ogre is just a graphics engine. But it have "Addons" for OpenAL, ODE, CEGUI and etc.

What do you recommend then, apart from C4?

 

JTippetts

Thanks! Heard about Urho. Looks very good. Need to investigate its feature. Will do so a bit later.

[Edit] Saw your edit. Yea it looks like exactly what I need. OpenGL, Lua and even with LuaJit, bullet, audio, UI. One thing I did not find, is async resource loading, but even if it does not exists, I can roll my own (though I have the feeling Urho3D does have one). Also nice to see that it comes with SDL2.0 which is also great! However it looks like no OpenGL 3.x+ support.

Edited by skwee

Share this post


Link to post
Share on other sites


Yes I know that Ogre is just a graphics engine. But it have "Addons" for OpenAL, ODE, CEGUI and etc.

What do you recommend then, apart from C4?

Setting up those libraries to work with Ogre3D isn't as simple as downloading and installing an add-on for some software. I recommend you go for a game engine that satisfies most of your needs in order to create the game you want to create. Why would you put together bits and pieces to create something that you already know you want, a game engine.

Share this post


Link to post
Share on other sites

JTippetts, thanks for the Urho3D promotion (again smile.png) To clarify a bit, I have high respect for Ogre for teaching me about scene graphs, 3D math, rendering and animation. But as I learned more, I began to understand the deficiencies.

 

And yes, just to confirm, Urho3D only uses OpenGL up to the 2.0 spec and some extensions. It also does not load resources in the background, as of now.

Share this post


Link to post
Share on other sites

dejaime

Well, again, Ogre3D is a matter of taste. I didn't like it.

 

I could code DX or OGL, but this is what I'm trying to avoid, since I want to make games and not engines.

 

Polycode looks nice! Ill check it better in comparison to Magnum I mentioned earlier. Those two looks very solid for me!

Yes, I understand that, but your statement that it has a bad architecture is not a matter of taste; that's what I meant to correct. Ogre3D has a very simple and, more importantly, functional architecture.

 

Also, making engines is a part of making games, there are just some cases where you can find this part of your job done for you by someone else. Usually this doesn't happen when you step up from simple games to complex games, so we go engine hunting for something that doesn't exist; this is when one has to step up and really do the not-so-satisfying job of implementing boring stuff...

Edited by dejaime

Share this post


Link to post
Share on other sites

[Edit] I know there is Unity3D, but for me it looks like a tool where you create content, put it all together, write few scripts and you got a game.

While I do want to make games, I also get great satisfaction from Programming.

Hello. I hadn't read this edit of yours before.

 

In what way do you expect to create any game other than creating content and putting it together? Whatever engine you pick, these are the things that you will always have to do.

I don't understand how this, for you, is a negative point towards Unity.

Note that I didn't mention the scripting because it's included in "content" as well (shaders and logic code are assets just like art and sound). 

 

Regarding that "write a few scripts" clause:

A) You won't write a few or a lot of scripts; You will write the precise amount that you need for your game to work - it depends on the complexity of your game, not the engine that you're using.

B) Any original game with original content that you set to make will be a challenging task and require a lot of scripts, regardless of the tool you use.

 

Getting satisfaction from programming vs scripting.

Scripting is programming, only without requiring an explicit compilation step: http://stackoverflow.com/a/17253557

You will still deal with algorithms, conditioning, program flow, debugging etc., if this is what gives you satisfaction.

 

So I suggest that you revise your opinion of Unity and other engines that you may have disregarded because of this, as they might just be what you're looking for.

Instead of seeing features as "taking away control from you", try to see them as "facilitating production" so that you can reach your goal faster: make a finished, polished game.

Regards.

Edited by Kryzon

Share this post


Link to post
Share on other sites

Leadwerks supports pretty much everything on your list. If you code in C++ (it has lua also) you can structure your game however you want. It doesn't lock you, or highly suggest a design pattern like Unity does. This can be good or bad but you said you like coding so I would think you would love it.

 

It's Lua scripting has more of a pattern to it. You can mix and match C++ & Lua. I've exposed RakNet to it's Lua bindings so you can do a lot with it.

 

It's OpenGL and the new version (out in dec) is the latest version and Linux support.

 

It has Mac, Windows, Android, & iOS with Linux coming in Dec.

 

It's entity based which makes programming with it really fun and easy.

 

It has a nice and clean API.

 

It has a nice editor and supporting tools.

 

No GUI but you can plug whatever 3rd party into it.

Edited by rpiller

Share this post


Link to post
Share on other sites

 


Yes I know that Ogre is just a graphics engine. But it have "Addons" for OpenAL, ODE, CEGUI and etc.

What do you recommend then, apart from C4?

Setting up those libraries to work with Ogre3D isn't as simple as downloading and installing an add-on for some software. I recommend you go for a game engine that satisfies most of your needs in order to create the game you want to create. Why would you put together bits and pieces to create something that you already know you want, a game engine.

 

Thats the most sane suggestion I got smile.png But still there is an issue, read the last paragraph of this post.

 

Kryzon

Panda looks nice, and to be honest I have nothing against python.

 

AgentC

Thanks for clarifying this information!

 

dejaime

Fair point, I take my words back. I'm not the man to judge about Ogre architecture, however I still dislike it, maybe because I havent really went that far with it, maybe because its tutorials are bad for me.

By the way, you have a point it "engine is part of a game", sounds like a wise suggestion.

 

Kryzon

About Unity.

I know what programming is, and I know what scripting is (I am a programmer with more than 10 years experience in both compiling and interpreted languages).

And I know that scripting could be fun. But for me, and maybe I'm mistaken, Unity, looks like a tool for someone who dont like to program or dont know to program. I see it more as a tool for modelers and general content creators (audio, graphics) but not for programmers. Learning scripting language like JavaScript is a matter of hours or maximum few days. I know it, because I work in an internet industry when every one who read few tutorials about JS programs web sites. I do not under estimate those people, dont get me wrong. But I get great satisfaction from programming, if you are programmer who really likes it and can code for 12 hours in a row, you should understand me. Also, Unity does not have Linux client and I dont have access to windows machine right now.

 

rpiller

Thanks, Ill take a look into it.

 

Godmil

Isnt UDK a sort of Unity?

 

 

The problem with programming, is that no body really cares how the code looks. It could be the best architecture code you will ever see, but if the graphics is not astonishing, if there is no sound effect, no story, well it will be hard to success in the field of game development. I'm a one man team, I can't handle everything alone, imagine me writing something similar to Ogre3D, then adding physics to it, sound, UI, AI, scripting. It will take me years just to do this, and thats even before I wrote a single line of my game.

So what I'm trying to accomplish is to be satisfied in the field I like and to reach my goal. This requires from me to do some compromises.

And the problem is that I cannot find the golden center between enough challenging programming and ability to complete a game (even for the level of pre-release to show to other people who might be interested in funding the game and or joining as part of the team).

Edited by skwee

Share this post


Link to post
Share on other sites

I would also you go with Unity. Your are mistaken in thinking that it's a tool for "artists", in fact you can't even model in the editor AFAIK. The scene viewer is there to help you build a scene and that's all.

You can certainly do clever programming with it with various languages (not ony Javascript) and you can even fairly easily extend the editor to create your own tools. The only lack of control you have is over things you don't really need much control anyway, like the main loop of your game...

 

I have used Ogre before, and indeed the samples suck. I built a game engine (and a 2D platformer game prototype with it) with scripting (Mono), sound, physics etc and the more I wanted to do with Ogre, the more it would set me back. I tried to contribute patches, but response was so slow that I gave up doing it. It works fine if you don't intend to be able to customize every little thing.

Also, I'm not sure about it's D3D renderer, but the GL one is pretty badly optimized, generating a HUGE amount of redundant calls.

 

After finishing the game prototype with Ogre I decided I would've been able to do a much better game in much less time with Unity, and have since begun to explore it. I'm more into extending the editor for now to create tools for level creating (working great so far), but I'm loving it!

Share this post


Link to post
Share on other sites

I would put forth my own framework, Sigma, that is still very WIP (the read me is very out-of-date). It has most bullet points you went (graphics is still shaping up, so no animations, particles, etc yet) and the sound is to be added (this weekend).

  • It is pure C++ and takes advantage of some C++11.
  • It works on Linux and Win32 (Mac testing is in the works).
  • It uses GLFW for the OS abstraction layer (user input via mouse/keyboard works but it can also do controllers).
  • OpenGL 3+ using a custom rendering engine.
  • Bullet Physics.
  • and of course HTML based UI using chrome (CEF in the works, but currently has Awesomium.
It is being used for the Trillek engine (and is what is powering the milestone 1 release). You can contribute if you would like as well since we are a small sparse team of developers that are open to work from others. And let's not forgot the link Sigma.

Share this post


Link to post
Share on other sites

This topic is 1079 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Advertisement
  • Advertisement
  • Popular Now

  • Advertisement
  • Similar Content

    • By RoKabium Games
      Another one of our new UI for #screenshotsaturday. This is the inventory screen for showing what animal fossils you have collected so far. #gamedev #indiedev #sama
    • By eldwin11929
      We're looking for programmers for our project.
      Our project is being made in Unity
      Requirements:
      -Skills in Unity
      -C#
      -Javascript
      -Node.js
      We're looking for programmers who can perform a variety of functions on our project.
      Project is a top-down hack-and-slash pvp dungeon-crawler like game. Game is entirely multiplayer based, using randomized dungeons, and a unique combat system with emphasis on gameplay.
      We have a GDD to work off of, and a Lead Programmer you would work under.
      Assignments may include:
      -Creating new scripts of varying degrees specific to the project (mostly server-side, but sometimes client-side)
      -Assembling already created monsters/characters with existing or non-existing code.
      -Creating VFX
      -Assembling already created environment models
      If interested, please contact: eldwin11929@yahoo.com
      This project is unpaid, but with royalties.
       
      ---
      Additional Project Info:
      Summary:
      Bassetune Reapers is a Player-verus-Player, competitive dungeon crawler. This basically takes on aspects of dungeon crawling, but with a more aggressive setting. Players will have the option to play as the "dungeon-crawlers" (called the 'Knights', or "Knight Class", in-game) or as the "dungeon" itself (literally called the 'Bosses', or "Boss Class", in-game). What this means is that players can choose to play as the people invading the dungeon, or as the dungeon-holders themselves.
      Key Features:
      -Intense, fast-paced combat
      -Multiple skills, weapons, and ways to play the game
      -Tons of different Bosses, Minibosses, creatures and traps to utilize throughout the dungeon
      -Multiple unique environments
      -Interesting, detailed lore behind both the game and world
      -Intricate RPG system
      -Ladder and ranking system
      -Lots of customization for both classes s of customization for both classes
    • By RoKabium Games
      Custom coffee mugs have arrived... More caffeine!
      Have a great weekend everyone! 
      #gamedev #indiedev #sama #caffeine
    • By Atwo Studios
       
      Hey guys,

      Anthony here from Atwo Studios bringing you some new updates for the new year!
      In this video I go over our game ROY, the new games and some general updates to the company!

      If you have not checked out ROY feel free to give it a try! Many people have said they enjoyed the game thus far!
      ROY: https://goo.gl/o6JJ5P
       
    • By Affgoo
      https://play.google.com/store/apps/details?id=com.NE.Alien
      still a lot of work to do, but its pretty stable  please let me know what you think <3
      Atlas Sentry is a game of destroy everything. Using your turret, simply swivel and shoot your way to victory, upgrading your weapons to unleash destruction on the variety of spaceships. The bigger your combo’s the more score you get! Earn silver as you play and then purchase new weapons and abilities to better deal with your enemy. Different enemies use different tactics and weapons, work out your own priorities in their destruction order. 

      Features: 
      **2 different game modes 
      **A level select mode with 20 difficult levels including a final boss, can you defeat it? **Arcade mode of endless destruction, how long will you last? 
      **High scores to compete against others, see who can take the top spot. 
       
  • Advertisement