Sign in to follow this  
num3ric

Game engine/libraires independent of the graphics engine?

Recommended Posts

[font="verdana, arial, helvetica, sans-serif"][size="2"]Say that our graphics are already built using a specific C++ staticlib (Cinder) or Ogre, is it possible to connect it with another game engine library without using its graphical components for things like AI, multiplayer, events, unit attributes, etc? (We're trying to make a small 3d/RTS/abstract game.)[/size][/font]
[font="verdana, arial, helvetica, sans-serif"] [/font]
[font="verdana, arial, helvetica, sans-serif"][size="2"]Thanks![/size][/font]
[font="verdana, arial, helvetica, sans-serif"] [/font]
[font="verdana, arial, helvetica, sans-serif"][size="2"][i]Edit: Further constraint, it should ideally be multiplatform (Windows & Mac).[/i][/size][/font]

Share this post


Link to post
Share on other sites
It really depends on the design of both systems. You need to determine how integrated the other system is with all of its components. If it is not tightly integrated, then you could create some classes with the same interface that those components are expecting in order for them to work. Basically, it is impossible to say without closely examining the architecture of both systems to make that determination.

Share this post


Link to post
Share on other sites
[quote name='landagen' timestamp='1317392106' post='4867579']
It really depends on the design of both systems. You need to determine how integrated the other system is with all of its components. If it is not tightly integrated, then you could create some classes with the same interface that those components are expecting in order for them to work. Basically, it is impossible to say without closely examining the architecture of both systems to make that determination.
[/quote]

It is called cohesion and coupling for a system. Same as civil engineering.

Share this post


Link to post
Share on other sites
[quote name='VJ01' timestamp='1317397073' post='4867617']
It is called cohesion and coupling for a system. Same as civil engineering.
[/quote]

Three times today, I've read vague or irrelevant posts from you.

On topic; What renderer are you using? is it built in house, if so then it's up to you to determine this question. As for OGRE, most likely yes. Most renderers, if they are designed with a little thought, and the well known ones are. They should be completely independent of the game logic/data. They usually expose their interface and resources need to use the renderer. It's then up to you to uses those resources how you see fit.

Same goes with most third party libraries/sdks, they are designed to work by them selves, as long as your pumping them with the information they need. ie a render isn't going to work if you don't give it meshes to draw. But it will never require you to pass a game object with things like a health variable.

Unfortunately when it comes to engines, they are typically all in one packages designed to work together seamlessly. I'm sure most of them can be torn apart to use the individual components, but that's not how most are designed.

Last question, may you post what components you're trying to piece together? You never know, someone else has probably tried the same and could shed some light.

Share this post


Link to post
Share on other sites
Hidden
[quote name='freeworld' timestamp='1317415788' post='4867723']
On topic; What renderer are you using? is it built in house, if so then it's up to you to determine this question. As for OGRE, most likely yes. Most renderers, if they are designed with a little thought, and the well known ones are. They should be completely independent of the game logic/data. They usually expose their interface and resources need to use the renderer. It's then up to you to uses those resources how you see fit.

Same goes with most third party libraries/sdks, they are designed to work by them selves, as long as your pumping them with the information they need. ie a render isn't going to work if you don't give it meshes to draw. But it will never require you to pass a game object with things like a health variable.

Unfortunately when it comes to engines, they are typically all in one packages designed to work together seamlessly. I'm sure most of them can be torn apart to use the individual components, but that's not how most are designed.

Last question, may you post what components you're trying to piece together? You never know, someone else has probably tried the same and could shed some light.
[/quote]

Right...
Well, for the moment, I'm really looking around, searching for which components I should put together... I've made a visual prototype in [url="http://libcinder.org/"]Cinder[/url] and I enjoy the fact that it is not too high level (just one layer above OpenGL). I want fine grain control over the visuals (and possibly basic physics) and no limitations from a game engine. (That being said, I might have to convert it to Ogre at some point.) However, this is not very convincing for some teammates who would rather enjoy the comfort of a game engine, especially for the game logic/network/ai. Even if the teacher prefers that we build our game engine/logic ourselves, and even if our game is a non-standard RTS, I can understand how scary it is to do it from scratch, in C++. Therefore, I'm trying to see how we can resolve this.

I would agree with this [url="http://stackoverflow.com/questions/3822707/game-engine-or-graphics-library/3823241#3823241"]stackoverflow post[/url] which explains when or when not to use game engines. In the comments, several librairies are mentioned :[color="#444444"][font="Arial,"] Ogre, FMod(or Caudio), RakNet (for network), OIS (for inputs). [/font][/color]So, I'm wondering if it really is feasible to use all of those librairies at once.

Reaching a consensus for technical decisions isn't always easy, especially if we have different visions, little experience and poor guidance from our teacher.

Share this post


Link to post
[quote name='freeworld' timestamp='1317415788' post='4867723']
[quote name='VJ01' timestamp='1317397073' post='4867617']
It is called cohesion and coupling for a system. Same as civil engineering.
[/quote]

Three times today, I've read vague or irrelevant posts from you.

On topic; What renderer are you using? is it built in house, if so then it's up to you to determine this question. As for OGRE, most likely yes. Most renderers, if they are designed with a little thought, and the well known ones are. They should be completely independent of the game logic/data. They usually expose their interface and resources need to use the renderer. It's then up to you to uses those resources how you see fit.

Same goes with most third party libraries/sdks, they are designed to work by them selves, as long as your pumping them with the information they need. ie a render isn't going to work if you don't give it meshes to draw. But it will never require you to pass a game object with things like a health variable.

Unfortunately when it comes to engines, they are typically all in one packages designed to work together seamlessly. I'm sure most of them can be torn apart to use the individual components, but that's not how most are designed.

Last question, may you post what components you're trying to piece together? You never know, someone else has probably tried the same and could shed some light.
[/quote]


Take a break from ad hominem commenting.


All posts I compose, not 'post, are most relevant and like-able and technically relevant. Your eyes are a source of illusion; do not let them be like that.

Share this post


Link to post
Share on other sites
[quote name='VJ01' timestamp='1317397073' post='4867617']
[quote name='landagen' timestamp='1317392106' post='4867579']
It really depends on the design of both systems. You need to determine how integrated the other system is with all of its components. If it is not tightly integrated, then you could create some classes with the same interface that those components are expecting in order for them to work. Basically, it is impossible to say without closely examining the architecture of both systems to make that determination.
[/quote]

It is called cohesion and coupling for a system. Same as civil engineering.
[/quote]

[color=#1C2837][size=2][quote]"Three times today, I've read vague or irrelevant posts from you."[/quote][/size][/color]


For uneducated and perhaps stupidest post:

Cohesion and coupling is part of software architecture, designing, and what not. Get a book and it would be there.
No wonder PMs have problems.


Share this post


Link to post
Share on other sites
[quote name='num3ric' timestamp='1317420931' post='4867751']
[quote name='freeworld' timestamp='1317415788' post='4867723']
On topic; What renderer are you using? is it built in house, if so then it's up to you to determine this question. As for OGRE, most likely yes. Most renderers, if they are designed with a little thought, and the well known ones are. They should be completely independent of the game logic/data. They usually expose their interface and resources need to use the renderer. It's then up to you to uses those resources how you see fit.

Same goes with most third party libraries/sdks, they are designed to work by them selves, as long as your pumping them with the information they need. ie a render isn't going to work if you don't give it meshes to draw. But it will never require you to pass a game object with things like a health variable.

Unfortunately when it comes to engines, they are typically all in one packages designed to work together seamlessly. I'm sure most of them can be torn apart to use the individual components, but that's not how most are designed.

Last question, may you post what components you're trying to piece together? You never know, someone else has probably tried the same and could shed some light.
[/quote]

Right...
Well, for the moment, I'm really looking around, searching for which components I should put together... I've made a visual prototype in [url="http://libcinder.org/"]Cinder[/url] and I enjoy the fact that it is not too high level (just one layer above OpenGL). I want fine grain control over the visuals (and possibly basic physics) and no limitations from a game engine. (That being said, I might have to convert it to Ogre at some point.) However, this is not very convincing for some teammates who would rather enjoy the comfort of a game engine, especially for the game logic/network/ai. Even if the teacher prefers that we build our game engine/logic ourselves, and even if our game is a non-standard RTS, I can understand how scary it is to do it from scratch, in C++. Therefore, I'm trying to see how we can resolve this.

I would agree with this [url="http://stackoverflow.com/questions/3822707/game-engine-or-graphics-library/3823241#3823241"]stackoverflow post[/url] which explains when or when not to use game engines. In the comments, several librairies are mentioned :[color="#444444"][font="Arial,"] Ogre, FMod(or Caudio), RakNet (for network), OIS (for inputs). [/font][/color]So, I'm wondering if it really is feasible to use all of those librairies at once.

Reaching a consensus for technical decisions isn't always easy, especially if we have different visions, little experience and poor guidance from our teacher.
[/quote]

Are you sure you won't have limitations from those various libraries? After all, an engine is simply a set of libraries. Once you hook all those libraries together you've created, more or less, an "engine".

Edit: Also, don't to afraid to toss a prototype. They're just prototypes. Sometimes it can be tough to take a prototype and shoe-horn it into workable code; it might require so much refactoring that you end up recoding it anyway, or you might lock yourself into some technology that's not suitable for full scale production.

You should really give some more details in your question. I get the feeling you're not actually asking the real question. So riddle me this, Batman:

What are you making?
Why are you making it? Is this going to be sold? Is it just for experience? Is it a student project?
How much time do you have to make it?
How big is your team?
What is their technical skill level? Are they already familiar with other engines? Can they code in C++ proficiently, and are they already familiar with DirectX/OpenGL?
Why does it need to be cross platform? (ties back into the "why are you making this" question)

Share this post


Link to post
Share on other sites
Hidden
First off, thanks for wanting to help, it's really appreciated.
[quote name='PropheticEdge' timestamp='1317434696' post='4867831']
Edit: Also, don't to afraid to toss a prototype. They're just prototypes. Sometimes it can be tough to take a prototype and shoe-horn it into workable code; it might require so much refactoring that you end up recoding it anyway, or you might lock yourself into some technology that's not suitable for full scale production.
[/quote]
Very true.

[quote name='PropheticEdge' timestamp='1317434696' post='4867831']
What are you making?
Why are you making it? Is this going to be sold? Is it just for experience? Is it a student project?
How much time do you have to make it?
How big is your team?
What is their technical skill level? Are they already familiar with other engines? Can they code in C++ proficiently, and are they already familiar with DirectX/OpenGL?
Why does it need to be cross platform? (ties back into the "why are you making this" question)
[/quote]

Here's the objective view:
We are a team of 4 students assigned to build a software project over a few months (student project). Because one guy is in the game concentration, we have to build a small strategy game. However, we agreed not to do the standard fake-3d RTS game, with bases, guns, etc. Ours would be more abstract, in 3d, in space, using planetary orbits and energy, using mainly generated OpenGL geometry, etc. Say, something like this but with gameplay and strategy: [url="http://blog.bloom.io/2011/07/11/creating-new-worlds/"]http://blog.bloom.io...ing-new-worlds/[/url]

Now, none of us have used a game engine before. Also, we all want to improve our C++ coding skills, and I think our technical skill level is not very high.

Subjective view:
- I'm the only on the team who's really comfortable with graphics (and physics-based animation) at the moment, and I'd really like to push our visuals.
- I'd rather not install windows on my machine and have to reboot every time I want to work on our project --> multiplatform development would be ideal,
- In my view, we should follow the teacher's preference and build our own game engine, including necessary tools as we go along, and maybe even using something like python or lua in some places?
- There might be a certain jealousy towards teams who use full-blown game engines.

Solutions? Opinions? (I am in the right sub-forum for all of this?)

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this