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.


irrlicht/ogre3d vs unity/shiva


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

#1 ryan mccabe   Members   -  Reputation: 161

Like
0Likes
Like

Posted 20 March 2011 - 01:12 AM

Hello,
Ive been reading around and playing with various engines. Ive even considered SFML or SDl; however, its probably time for some input.

I have two aims, first and foremost I want to showcase my 3d graphics in an interactive setting with some kind of games industry standard. Second I want to make a turn based 3d galcitic civ / freelancer rpg, at least that's the idea for now. I'm in a BA philosophy but I'm also currently taking as many computer science courses as i can which will amount to almost all my option credits, essentially a second minor. This is my impasse: from what i can tell I have three options (excluding building from openGL, or DX) and I dont know which is 'best'. Where I go when I get here is up in the air, but I have no delusions of applying to the bioware here and working on mass effect 3 or 4 with just a portfolio of art and an indie game. Also, Im not and dont want to be a game designer, I just want to be a game artist who knows enough about whats going on to be a contributor past artwork, and to ensure that my artwork, works.

Unity/Shiva. Unity is much easier and loads assets in a fraction of the time, so i can see it being the common recommendation. ShiVa PLE is better looking and to get it to market costs ~200 bucks. Shadows are a killer for a space sim, just sayin. Anyway, there are other options in this vein like c4 or other 'engines' with cheap indie licenses, so features aren't a primary concern. The reason this is a single option is that they give the user a locked in yet complete set of tools for making a game, like a game in a box. . . sorta.

Irrlicht/Ogre3d. I like Irrlicht because it just seems to look better in the end. But again features arent the concern here. These two are like the mid range engines. Not a game in a box or WYSIWYG, but still not completely off the leash. Seems like a solid foundation for making a game they way I want and learning ins and outs as I go. But lots of ground to cover before i get to even start setting up a large game.

SDL/SFML. Again features notwithstanding, this is the library route, take some libs and mash them together into my game. Tons of freedom, greatest amount of learning, but my end result will inevitably suffer.

My approach will be to establish modular tech demos for different aspects of the game, set up the combat system with ship visuals and mechanics so that I can plug in combat where I need it. World, home base / territory, and leveling systems will each be modules. Ill build them one at a time from a design doc. Each one will start small connecting them from the beginning and Ill be checking the connection as i build on their complexity.

I really hope Im not coming across as another out of the blue "hey Ill make a game" person. The thing is I have a large chunk of my assets and the skills to quickly build more, but Ive seen extremely skilled, AAA quality, artists labor in obscurity. Why I think this is, is that they just have impressive artwork, built for a niche, and nowhere to go. Essentially, I want to build somewhere to go and diversify my skill set while I'm at it. Where I'm at with this is Ive done the unity SHMUP, messed with ShiVa (model loading and assets handling kills this engine IMO), toyed with irrlicht (got the demo up and running, gone through some tutorials), built SDL tic tac toe, and made a few command window text games in class. Essentially Ive sampled from everywhere I can think of except directly building an engine with openGL which i understand to be a waste.

The questions: what is you advice? which option seems to fit best with a portfolio piece, indie game, do I take the easy way and use unity, or will irrlicht give me a super shiny looking game in the end? Maybe I'm underestimating the library route?

Thanks.

Sponsor:

#2 DarkRonin   Members   -  Reputation: 614

Like
0Likes
Like

Posted 20 March 2011 - 03:01 AM

I would personally go with Ogre (which is different from irrlicht - I am sure you know this ;) )

It has a massive community and tons of samples/examples. If you post a question on the forums, you could almost be that you will have a response in under ten minutes and most of the time that same response has the correct answer. B)

#3 sjaakiejj   Members   -  Reputation: 130

Like
0Likes
Like

Posted 20 March 2011 - 07:35 AM

In contrast to Lonewolf, I'd actually go (and did go) with Irrlicht. I've worked with Ogre3D and Irrlicht, though I can't say anything about Unity3D or Shiva, but from my experience, it's easier to get something running nicely on Irrlicht, then it is on Ogre. I felt that for Ogre I had to do quite a bit more to get something working, and from what I can remember, Ogre doesn't offer basic collision detection, where as Irrlicht does.

In the end though, it's a matter of personal preference more then anything else.

#4 ryan mccabe   Members   -  Reputation: 161

Like
0Likes
Like

Posted 21 March 2011 - 12:20 PM

Ive looked into the ogre/irrlicht option some more and Im confused about world building. I realize that this is a general issue when going the coding route. I was hopping someone could point me in the right direction.

I guess what I need to know is how to instantiate objects into a world, and possibly how I instantiate the world itself. I can do it with something simple where everything fits onto the screen like a SHUMP or small arcade game. But I would really like some help getting going with building an expansive and extensible world. Any guidance is greatly appreciated.

#5 sjaakiejj   Members   -  Reputation: 130

Like
0Likes
Like

Posted 21 March 2011 - 05:14 PM

Ive looked into the ogre/irrlicht option some more and Im confused about world building. I realize that this is a general issue when going the coding route. I was hopping someone could point me in the right direction.

I guess what I need to know is how to instantiate objects into a world, and possibly how I instantiate the world itself. I can do it with something simple where everything fits onto the screen like a SHUMP or small arcade game. But I would really like some help getting going with building an expansive and extensible world. Any guidance is greatly appreciated.




What aspect of world building are you thinking about? And it's different for both Ogre and Irrlicht, so you'll have to compare the two and make a decision on which one to use before starting to think how to instantiate things. Additionally, I would go through some tutorials first to get to know the engine. Most of what you asked you can derive from those.

#6 DigitalDisciple   Members   -  Reputation: 102

Like
0Likes
Like

Posted 22 March 2011 - 03:37 PM

I started using Unity recently and I really like it. The IDE is really well-built and it's great that you can do your scripting in C# or JavaScript. I haven't tried the other engines you mentioned so I don't really have a basis for comparison but I recommend giving Unity a try. This guy has some good tutorials:



#7 TSlappy   Members   -  Reputation: 121

Like
0Likes
Like

Posted 23 March 2011 - 03:33 AM

I tried both: irrlicht and OGRE.
Irrlicht is really easy in a few days I was able to create simple 2D clicker game, but for 3D graphics I assume that it is awkward.
Then i switched to OGRE and I found it excellent for 3D graphics - there is a lot of examples, tutorials and frameworks and I think it is better for commercial games and applications.
There are also ports of Ogre to all platforms (PC, Mac, Linux, X360, iPhone, Android) and a great community!

#8 arasmussen   Members   -  Reputation: 111

Like
0Likes
Like

Posted 23 March 2011 - 11:15 AM

(excluding building from openGL, or DX)


Why?

If you're looking for a portfolio piece to show off to a game company, or to get hired with, they aren't going to want to see what you can do with a full-blown off-the-shelf game engine like Unity or UDK. Those full game engines are doing ALL the work, and really what you are showing off is your artistic ability, not your ability do develop games.

I find writing OpenGL to be cleaner and easier than Ogre3D. I haven't personally tried Irrlicht, but I believe a lot more work has been put into Ogre3D, and I posted a poll a few weeks ago and most people voted Ogre3D over Irrlicht.

Not to mention NeHe posted excellent tutorials on OpenGL. They are very easy to understand, and to go in your own direction and get started on your own projects, based on what NeHe's examples.

#9 solenoidz   Members   -  Reputation: 531

Like
1Likes
Like

Posted 23 March 2011 - 11:47 AM

You should at least try OpenGL or Direct3D once in your life. Actually you should try them all the time, no matter if those tries are complete failure for you and you continue to return to those engines, crying. :)
Eventually at some point you will feel like you actually understand those APIs and feel comfortable and free with them. You will start to question certain implemenation details and approaches in the full blown engines, and at the end you will scrap them and start your own engine the way you like it. At that point only the sky is the limit.
In fact, if you want to make a game for some reason NOW no matter what, use engines. If you are just interested in 3D graphics and could deducate time and effort - start learning lower level API. You will eventually go further and the programing experience that you'll gain durring the learning process will be priceless for writting the game itself. If you can write reasonably complex 3D graphics using low level API, you most probably could write reasonably complex gameplay and stuff.
Otherwise , you culd spend your life using other people work and fool yourself your are a professional game developer, no matter how good the results look and how fast those results are achieved.
I just wanted to tell you- try some OpenGL / Direct3D examples first. Some of them are even more simple and good looking than setting an Ogre development environment and creating a game loop.

#10 sjaakiejj   Members   -  Reputation: 130

Like
0Likes
Like

Posted 23 March 2011 - 11:56 AM

Otherwise , you culd spend your life using other people work and fool yourself your are a professional game developer, no matter how good the results look and how fast those results are achieved.
I just wanted to tell you- try some OpenGL / Direct3D examples first. Some of them are even more simple and good looking than setting an Ogre development environment and creating a game loop.


Can't quite agree with what you say. High level abstractions such as 3D Graphics Engines are able to abstract away a lot of the often more difficult details of how OpenGL or DirectX work. To learn how to build games with OpenGL is definitely important, but I'd say it's also something that you'd do after you know how a game works, not before. Otherwise you're just making it much more complicated for yourself.

#11 solenoidz   Members   -  Reputation: 531

Like
0Likes
Like

Posted 23 March 2011 - 01:32 PM

Well.. yep. You are maybe right.
The basic concepts about 3D rendering are interesting and very useful to know. Sometimes lots of abstraction could bloat the code and even make it more complicated than it is. Many engine developers invent their own concepts and force the users to learn and use them, but very often behind those concepts lie simple and elegant things. The more flexible way for doing stuff is to learn how they work on the low level. For example invest time to learn how per pixel lighting is calculated in a shader. It's some basic vector math, it's not rocket science after all.
This time will be the more well invested than to learn how to setup a bunch of parameters in a third party engine. At the end of the day you probably will not have a nice screenshot to show, but you you will know how lighting works, you will be free to go further independently.Posted Image

#12 ryan mccabe   Members   -  Reputation: 161

Like
0Likes
Like

Posted 26 March 2011 - 02:10 PM

Wow, kind of the opposite of what I expected. I read a few posts, i think even an article, on not writing your own engine. I thought using openGL or directX would be a target too high for a lone developer. I'll be done my degree in 2 years and in that time frame I'd like to get the bulk of the game done. I also figured using a low level api would consume all that time just trying to get rendering, collisions, sfx up and running. Ill definitly check into those assumptions now though, thank you guys.

#13 Kelly G   Members   -  Reputation: 358

Like
0Likes
Like

Posted 26 March 2011 - 03:21 PM

. I thought using openGL or directX would be a target too high for a lone developer


I owuld think so too. I think there is some disagreement here because your goal's seem to conflict, depending on how one interprets them.

So first, it sounds like you want to get into graphics programming, and have some achievement in that area so that you can show that off, and second you want to make a game.

A fully made game engine like Unity and Shiva is good for making a game because all of the graphics programming is essentially finished. You can make game much more quickly because you can focus on just the game logic, but you won't be able to take any credit for the graphics except maybe the art assets. Unity does allow you to write your own shaders, though.

If you want to actually do graphics programming, you need to start with the very rudimentary graphics APIs such as Direct 3D/ OpenGL because that is the only way to really control what really goes on during the rendering and craft your own methods. It will also give you insight into how computer graphics rendering generally works. This will be very time-consuming and will make it more difficult to make your own game.

So you kind-off have to weigh which is more important.

#14 Gorbstein   Members   -  Reputation: 120

Like
0Likes
Like

Posted 26 March 2011 - 03:59 PM

It's a complicated question. Graphics and game engines do a lot of things that people tend to take for granted, and even if you decide to get a bit lower level, they can take a lot of the pain away by doing some of the tedious things for you. Why re-invent the wheel?

Think about getting models and images into your game. Are you going to enjoy messing around with input streams and memory to write your own loaders for whatever file types you use, or would you rather just tell an engine to load a model and hey.. you have your image and vertex data sitting waiting to be used?

On the flipside, while engines can be useful, I always felt that those engines weren't doing things the way I liked. Their interpretation of an entity for example, was quite different from what I had in mind. Or what I'm not writing a game that uses traditional structures or rendering techniques...?

However the good thing thing is that just because you use some features of an engine doesn't mean you need to use all of them. Maybe like me you will find the place to be is using the best of both worlds?

As someone who spent a long time learning OpenGL first and then diving into both Irrlicht and Ogre, I found that the more I used them, the more I decided to implement many of their functions myself. For example, Irrlicht has a fairly good particle engine which is easy to use. However, it didn't do what I want, so I wrote my own in a couple of days. Not only does it do exactly what I want, it interfaces with my game better AND it turned out to be faster. That generally happens when you tailor things to a specific use rather than a one size fits all approach.

However, if I had to sit and write my own jpeg or png decoder and sit and work out the intricacies of the 3ds file format, I wouldn't have had the time to do this. So I still like to have an engine to take some grunt work away.

Currently I use Irrlicht as a big utility library, with some useful bits and pieces here and there. Everything else I do myself.

The best part was I could get stuff up and running quickly.. only when it didn't fit my exact needs did I have to do the hard work.


David

#15 nfries88   Members   -  Reputation: 259

Like
0Likes
Like

Posted 26 March 2011 - 04:57 PM

Definitely go with the open-source options (Irrlicht, Ogre, SDL, SFML).
If you're writing a 2D game, SDL and SFML are excellent and light-weight options.
If you're writing a 3D game, I don't have a ton of input... but from what I've seen of their respective documentations, Irrlicht is a little closer to SDL and SFML in API, which is a plus in my book (but maybe not in others').
Looking for paid or open-source C++ programming work. Been programming since 2005. No degree.




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