Sign in to follow this  

Question about object editing in game engine design.

This topic is 2956 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

Hello, I have a question about object editing in game engine design. 1) Ok, so in my engine (nearly completely designed) I have many different types of "Entities". These are simply different types of things that interact in the application. There are physical entities (solid), dynamic entities (update/change etc.). There are controller entities (provide input) etc. There are many of them. There uniform/shared behavior is implemented in base classes but have virtual methods which deriving objects can inherit from to provide the object specific needs. My question is ... in a game ENGINE object editor, how should I provide the user a robust solution to inheriting from these entities and creating application specific unique objects? For example ... I could have an object editor that allows you to inherit from entity classes by selecting certain fields and have a field that allows the implementation of the virtual methods using the functionalities of the engine (predefined functions of the engine etc). That is one approach. My concern with this approach is that the people using my engine would require at least SOME C++ programming experience, and possibly some math and physics too. I am new to engine design except for this project which I have been working on FOREVER. But to be honest I have never really studied the user interfaces of other engines/object editors. I have scripts for most game features (so no C++/math/physics required) but for the objects THEMSELVES, I really cannot envision a solution that bypasses the use of C++ and/or math/physics knowledge ... so ... that reduces the clientel to people with that knowledge which I do not like. So my question is ... how would you recommend implementing an object editor that allows users of the engine to edit and create application specific and unique objects with as little background knowledge needed in C++/Math/Physics? Thank you for your help. Jeremy

Share this post


Link to post
Share on other sites
You could do it with a component and attribute system - entities are just containers for data and behaviors, and extra behaviors can be implemented in script if needed. Then the editor becomes simple - add properties of predefined type and select the needed behaviors. You could take some inspiration from the Unity engine or look at the various (often vague) articles about component systems in games.

But you can also just provide script hooks for user scripts (onDie, onPlayerSpotted, onFoo) as well as allow the user to edit the private fields (provide defaults which are looked up from some kind of entity template). You could also some form of local variable storage to the entity for the scripts to share. The key is, I think, to make your entities as generic as possible. You don't need the user to derive a SlowTank from a Tank class if he can just instantiate a Vehicle and setModel=Tank, setSpeed=0.5

Another note, you're working forever on the engine because you're making an engine, not a game. Ask yourself if someone else will really ever use your engine for anything (and forego the likes of Unity, Unreal, Source or even Ogre, Irrlicht, etc). Then think about making a game yourself instead (assuming you want to make a game using your engine, that is).

Share this post


Link to post
Share on other sites

This topic is 2956 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.

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