Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


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


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
47 replies to this topic

#21 skwee   Members   -  Reputation: 341

Like
2Likes
Like

Posted 04 December 2013 - 02:07 AM

 


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, 04 December 2013 - 02:40 AM.

I would love to change the world, but they won’t give me the source code.


Sponsor:

#22 HyperV   Members   -  Reputation: 869

Like
2Likes
Like

Posted 04 December 2013 - 04:32 AM

Delta Engine open source and cross platform. :D



#23 mdias   Members   -  Reputation: 793

Like
0Likes
Like

Posted 04 December 2013 - 12:26 PM

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!



#24 adam4813   Members   -  Reputation: 667

Like
2Likes
Like

Posted 04 December 2013 - 01:38 PM

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.


#25 ferrous   Members   -  Reputation: 2144

Like
0Likes
Like

Posted 04 December 2013 - 06:43 PM

There is that Havok thing, http://www.projectanarchy.com/

 

Though I only barely messed with it, so I can't really give much of an opinion on it.



#26 V3ntr1s   Members   -  Reputation: 435

Like
0Likes
Like

Posted 05 December 2013 - 03:18 AM

Has anyone used Esenthel engine? It looks nice with bunch of tools and plugins and it is 200$ for full version. I'm very interested now biggrin.png

Please share some thoughts.



#27 AticAtac   Members   -  Reputation: 334

Like
0Likes
Like

Posted 05 December 2013 - 03:59 AM

Havok-Engine was used to produce "Skyrim".

 

http://www.projectanarchy.com/ is very promising. The only thing it lacks atm is a good support for 2D, but its planed for upcoming versions.



#28 skwee   Members   -  Reputation: 341

Like
0Likes
Like

Posted 10 December 2013 - 05:56 AM

Sorry for the lack of activity, had some stuff to sort.

 

Thanks everyone for the comments. Ill process the data Ive got from this topic and will decide.

 

Thanks again for everyone!


I would love to change the world, but they won’t give me the source code.


#29 pinebanana   Members   -  Reputation: 475

Like
0Likes
Like

Posted 15 December 2013 - 01:27 AM

No one has mentioned gameplay

 

Also, if you're considering Magnum, I actually have integrated libRocket with Magnum (for rendering). You can look at the code here: https://github.com/miguelishawt/Magnum-libRocket


Edited by pinebanana, 15 December 2013 - 01:28 AM.

anax - An open source C++ entity system


#30 Hodgman   Moderators   -  Reputation: 31769

Like
5Likes
Like

Posted 15 December 2013 - 02:29 AM


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.
Scripting is programming. I'd say that "scripting" is generally used as a derisive term for "bad programming" or "seat-of-your-pants hacking" or "I'm writing code, but I don't really know how to code".

You can pick up any language from a few tutorials in a few hours and start writing bad, non-idiomatic code in it. Most JS tutorials in fact teach extremely bad programming practices... but just because a lot of people write a lot of "scripts" (i.e. bad code) in a particular language, that doesn't mean that it's not possible to do rigorous software engineering in the same language.

 

Other times, "scripting language" generally means "extension language" -- a language embedded into an app so that it can be extended. The assumption is that this is simpler than writing the app in the first place, but this doesn't mean that when using this language that you're not programming. You're writing code in a programming language, which means you can do it properly (or badly).

Many games use languages like Lua or Python as their "scripting/extension language, but many also use C or C++!! You'd find it hard to argue that "writing C isn't real programming, it's just scripting" though!

 

Anyway, unity doesn't just support JS though... You can use any CLR/CLI language, such as C#, or even C++CLI. And yes, to make any kind of complex game with unity, you'd need a programmer on the team, not just a bunch of content creators trying to hack together bad JS code tongue.png



#31 skwee   Members   -  Reputation: 341

Like
0Likes
Like

Posted 15 December 2013 - 08:17 AM

Hodgman

Thanks for the reply, I agree with you completely. However I still feel, as a programmer, that using unity is... "cheating". Maybe because of the fact that my true nature is "reinventing the wheel" and / or "understanding how this works".


I would love to change the world, but they won’t give me the source code.


#32 dejaime   Crossbones+   -  Reputation: 4119

Like
4Likes
Like

Posted 15 December 2013 - 09:49 AM

Hodgman

Thanks for the reply, I agree with you completely. However I still feel, as a programmer, that using unity is... "cheating". Maybe because of the fact that my true nature is "reinventing the wheel" and / or "understanding how this works".

 

Just so you know, I am not one of those "make games not engines" devs, I think engines are part of the games and they do have their importance (I'm making one myself).

In all my projects that used scripting (not many), I used the "script" term to all non-engine programming. For an example, my resource loading used scripting; where a Lua script (a modifiable code snippet outside of my base game) tells my game what it should load, in what order.

 

It looked exactly like this:

load sprite.animated("tower1.yaml")
load sprite.animated("tower2.yaml")
load sprite.animated("tower3.yaml")
load sprite.animated("barrier1.yaml")
--load sprite.animated("barrier1horizontal.yaml")
load level.collisionData("level1.lvl") --also yaml

You can see it is really simple code and you can alter it with little effort to add, say, a barrier2 load step to a level. So, scripting can be used to simplify steps of creating a game, to add versatility and "Moddability". This script is parsed and applied during the level loading and does all the pre-loads I want. If I fail to load any resource here, it'll be loaded on runtime, stealing some performance, using a simpler memory manager that could cause fragmentation under extreme situations.

 

Scripting, when referring to enabling a script language (and not when referring to bad code), is a good practice and games like Oblivion, Warcraft 3, would not be as great as they are without scripting.

 

But today we see a rise on scripted games (like in games made entirely with scripting), using Löve2D or other game making frameworks/tools that basically use script languages to create the entire game; including some high-level-engine blobs in some cases. It limits the results you can get, since you can't really optimize and tweak as much as you'd be able to using a C++ coded engine. So you need to evaluate your game's complexity prior to choosing any of these "fast development" approaches to ensure it won't preponderate the chosen technology.

 

I, as a programmer, have used Löve2D and Haxe, tried to use Fenix (fenix-dev package) but I think it was dead by the time so I gave up. You can do things pretty fast and get results, usually better than I expected.

 

About using Unity, I think it is definitely not cheating by any means.

It is something you have to pay for. The cost for PC, Android and iThings is 4500USD, that's a lot if you'll take that from your own pocket (byebye Hawaii trip). So  it must make your life easier to make up to that cost. It gives you an easier integration of several, usually separated, engines. This integrated environment really speeds up the development of games, makes it easier and potentially cheaper, given that your team will spend less work-hours to create the exact same game. And I'm not even start with the deployment process, that can be a pain in the back if you'll be targeting too many platforms.

 

Of course, some of the most impressive games I've seen with unity (such as Dead Trigger 2 or Forced) still feel like "back to 2005" graphics and really shows a little extra weight imposed by the use of the engine. But this kind of tool is supposed to be used on this type of game and is capable of creating 95% of the games released every day with just the same quality (Ok, 95% is me guessing, but you get the point).

 

And even after knowing all this I told you, I still program in C++, and I am happy with it, since I know it aligns better with my interests at the end of the day.


Edited by dejaime, 16 December 2013 - 08:49 AM.


#33 AgentC   Members   -  Reputation: 1412

Like
0Likes
Like

Posted 15 December 2013 - 12:51 PM

Hodgman

Thanks for the reply, I agree with you completely. However I still feel, as a programmer, that using unity is... "cheating". Maybe because of the fact that my true nature is "reinventing the wheel" and / or "understanding how this works".

 

A component-based, framework-like C++ engine would not be much different to program compared to Unity. Which means just like Unity you'd utilize rendering components, physics components etc. in the scene and define your own logic components which would drive the actual game. I don't see how that kind of a programming model is cheating.

 

Of course, when/if you have a C++ engine with full source access, you can indeed see inside how it's actually driving the whole application. And some engines take a more library-like approach, where it's up to you to actually pump the application main loop, update, render, using the engine's functionality.


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)


#34 skwee   Members   -  Reputation: 341

Like
0Likes
Like

Posted 16 December 2013 - 05:13 AM

dejaime

Thanks, I understand what you are talking about, and indeed my interest is "doing it my self" rather than "doing it asap".

 

AgentC

You are correct. This is the reason that after two pages and (my assumption) at least 14 different engines suggested in the topic, I still can't find the right one for me.

One reason is because I'm having other things right now and didn't check the engines too deeply, but mainly because from what I checked, none of them matches the need of being more than raw OpenGL but still allows me to enjoy programming and reinventing the wheel. But that's me..


I would love to change the world, but they won’t give me the source code.


#35 rpiller   Members   -  Reputation: 706

Like
0Likes
Like

Posted 16 December 2013 - 12:14 PM

I'm telling ya, Leadwerks is that. You control 'int main()', and it puts a layer on top of OpenGL but still allows you to use OpenGL if you need, which very few do.



#36 FLeBlanc   Crossbones+   -  Reputation: 3117

Like
4Likes
Like

Posted 16 December 2013 - 01:11 PM

dejaime
Thanks, I understand what you are talking about, and indeed my interest is "doing it my self" rather than "doing it asap".
 
AgentC
You are correct. This is the reason that after two pages and (my assumption) at least 14 different engines suggested in the topic, I still can't find the right one for me.
One reason is because I'm having other things right now and didn't check the engines too deeply, but mainly because from what I checked, none of them matches the need of being more than raw OpenGL but still allows me to enjoy programming and reinventing the wheel. But that's me..


A huge part of modern development is learning to be flexible enough to make do with what is available. If you haven't found what you need yet among these suggestions, it is highly likely that what you are looking for doesn't exist. Your choices in that case are 1) Make one of these options work or 2) Build it yourself, and prepare for a long development cycle, since you have a fairly hefty feature list, and building such a beast is not a trivial task.

To drop in my own particular 2 bits: I second the Urho3D nomination. JT turned me onto it awhile back, and it is a pretty neat little engine. Of all of the mentioned options that I have personal experience with, it seems to be the closest to your original requirement list.

#37 skwee   Members   -  Reputation: 341

Like
0Likes
Like

Posted 17 December 2013 - 02:56 AM

rpiller

Thanks, but as it looks for now, Leadwerks does not support linux.

 

FLecBlanc

I agree with you that one of the most important qualities of a skilled developer is to be able to take the right tool and to be able to work with what is available. But we are talking about a "culture" where there are schedules, deadlines, managers, clients. I'm familiar with this at my day-day work, and sometimes I bash the head against the wall because of the things I work with, but as I stated, its a needed quality of a skilled programmer.

 

 

However, what I talk about is a hobby. Doing what you really like without having managers to sit on your head. And this is a bit different.

 

Urho3D is great, at least on a paper. I'm having difficulty to choose between Urho3D and Magnum. Those are my final candidates and only time and experience with each of them, will help me to select the right tool for me with the exact balance I need.

 

Thanks everybody for the help!


I would love to change the world, but they won’t give me the source code.


#38 rpiller   Members   -  Reputation: 706

Like
0Likes
Like

Posted 17 December 2013 - 06:45 AM


Thanks, but as it looks for now, Leadwerks does not support linux.

 

 

It does in about 2 weeks or so. The new version is about to be released with Linux support. Just want you to be informed is all.


Edited by rpiller, 17 December 2013 - 06:45 AM.


#39 skwee   Members   -  Reputation: 341

Like
0Likes
Like

Posted 17 December 2013 - 07:11 AM

Thanks rpiller! This changes the rules. Will take a deeper look into Leadwerks


Edited by skwee, 17 December 2013 - 07:12 AM.

I would love to change the world, but they won’t give me the source code.


#40 rpiller   Members   -  Reputation: 706

Like
0Likes
Like

Posted 17 December 2013 - 11:27 AM

np. The creator is really pushing Linux right now actually so the more people who buy it the better. The editor is Linux supported also so it's not just that it publishes the final game to be ran on Linux, your entire development cycle can happen on Linux if you want. He's really hoping to tap into the Linux crowd.

 

He's also making a Steam edition. This version will only support Lua. He has a base application that runs our Lua files (which you could make your entire game in). Then you release your game as a workshop item. So gamers can download the Leadwerks base exe for free, and purchase our workshop items to use with the base game exe.






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