About Store Forum Documentation Contact



Post Reply 
Space and Landscape Hybrid Game, Esenthel Possible?
Author Message
Olander Offline
Member

Post: #1
Space and Landscape Hybrid Game, Esenthel Possible?
Firstly I will state that I have been in and out of Esenthel since early in 2.0. I liked Esenthel but at that time it just was not what Unity 4 was. I purchased a Unity 4 Pro license and went to work with testing engine capabilities. What I loved about Esenthel is the open design...dream it and you can do it concept. Unity 5 and UE4 and Esenthel 3.0 are here and readily willing to be tested. Esenthel 3.0 is very nice. Unity 5 is a stability nightmare and UE4 is super robust but is very heavy handed and limited in landscape scope. Which...brings these questions to Esenthel.

Pre-note: The design is a 'Container' design. Each Container is responsible for handling any/all 'Objects' within the container. Containers speak with other containers to transfer information then distribute this information to appropriate objects for data. Different engines handle this concept differently and various persons give this different names. Basically...this is a Box/Container design in its pure form.


1 - Master Container (I call this the Module...similar in concept to Bioware's Aurora Engine) that exists at all times in the engine. It is a singular 'Container' that any other container can access for Global Data and Global Configurations.

What needs to be done in Esenthel to make this Master Container exist at all times?


2 - Space Levels and Scaling
Current design in Unity can handle 0.001 scaling for maximum level size of 100,000 Unity Units....name that whatever you want. This ends up being for 'Space-Like' travel 0.001 = 1m or 100,000km radius flatten cylinder. Large but very careful management of 0.001 calculations for positioning and such must be accounted for. UE4 is much the same except much smaller space levels making UE4 unacceptable for Space Flight.

Obviously scaling realistic space is not really possible nor is it 'Fun'. This is why I have set scaling properly and connecting flattened cylinders between systems with jump gates (static wormholes).

What would be an acceptable size of a Esenthel Space System?


3 - Ship Interiors and Walking around in them
In both Unity 5 and UE4 with the scaling setting above I was able to have the Interiors of the ships move with the ship in scaled space. The speed of the ships are fairly slow in Impulse Drive mode (sub 2000m/s). All parts (models, particle FX, etc..)...including the ship...are inside a 'Container Object' that all move together. The inside of the ship (all models) is simply turned off when outside the ship (variables tell the scripts to render or not). This design is efficient and works very well.

How would Esenthel accomplish the same or similar technique? And will there be any 'hitching' in the models and particle FX as the entire container is moved through the area?


4 - Space to Planet Transitions
Currently a very acceptable method is Fade to Black on Planet Approach then Fade from Black at some elevation above the landscape below. Cloud rendering is horrible in Unity 5 and UE4 is fast but acceptable volumetric clouds are still very system heavy. 500m is the current maximum elevation allowed to be under the cloud layers for visual quality.

Are Volumetric Clouds an option in Esenthel? And what would be the recommended elevation to Fade from Black given a 16 or 32km2 landscape in Esenthel given current rendering capabilities and culling?


5 - Space movement and physics
Current design is Non-Physics based movement. This has enormous efficiency benefits but the cycle rate of the code must be fast enough to reliably calculate at 0.0001 (1 10th of scaling). Triggers work on their own for damage and particle FX creation only when they need to. Turrets rotate smoothly and track targets like computers really should/do. Projectiles and pulse lasers are 3D objects with particle FX along for the ride. This design works in both Unity 5 and UE4 (much better in UE4). Unity 5 has many issues but most can be 'hacked' around.

Can Esenthel reliably handle the container math for this type of design?


6 - Connecting more than 1 server to a central data server
I really like the design of Esenthel from reading the server capabilities in regards to player/client to server. One thing not certain though is if running multiple server boxes with exactly the same build can connect to a completely separate build housing the 'Data'. No rendering is needed for this server. It is data and code only. This is basically for Client Unlocks and Trade Networks. Each client in an individual server can post their crafted things to a Trade Network which clients in other servers can purchase and post their own items. This is super powerful in that it makes even single user servers have access to a Global Trade Network. Global Events work in the same fashion. All servers have the event happen at the same time.

Is it possible for Esenthel to have the servers connected in such a fashion?


The rest that make up the design criteria of the game is well within the Esenthel capabilities. Testing the capabilities of game engines is very time consuming since validation testing is required. In this light I do not wish to test any more game engines as to their 'stated' capabilities. This is a 10+ year venture and is extremely important that the underlying engine is solid and capable of reliably doing the duties.

Cheers and Regards,
Olander
07-02-2016 06:57 PM
Find all posts by this user Quote this message in a reply
Olander Offline
Member

Post: #2
RE: Space and Landscape Hybrid Game, Esenthel Possible?
44 views and no replies. So I am guessing Esenthel Author nor savvy/veteran users have no answers to the questions above?

Anyone care to take stabs at these?

Going to give this another week then make the decision between Esenthel or UE4.

Cheers
Olander
07-09-2016 03:37 PM
Find all posts by this user Quote this message in a reply
Zervox Offline
Member

Post: #3
RE: Space and Landscape Hybrid Game, Esenthel Possible?
You might not like the answers.

your questions are either broad and general or they are extremely specific and specialized cases(to space games), in which case..all of them are possible.

You should read up on C++ data types, in most programming language the types has the exact same limitations, eg float's has precision errors, http://www.davenewson.com/dev/unity-note...-the-small
would define the problem of your way of scaling everything sub 1.
This same issue is one very common issue for hitching.


What do you mean by "Box Design"? what do other people tend to call this?(It would probably help)



1)What exactly do you mean with "What needs to be done in Esenthel to make this Master Container exist at all times?"?
If this is a programming question or a engine question. because this really is a programming issue and not of what an engine would prevent you.

2) It really depends on your needs and if you have a huge need for more space you must simply put 'make your own manager for this'.
"Current design in Unity can handle 0.001 scaling for maximum level size of 100,000 Unity Units....name that whatever you want. This ends up being for 'Space-Like' travel 0.001 = 1m or 100,000km radius flatten cylinder."
This is not by design, this is because of limitations of floating point in any programming language.

The way you handle a world and how you partition it, the way you handle a movement, that is design and is up to you to handle.

3) Not a limitation of any engine I know of, this sounds like floating point issue

4)Yes they are an option, but as in UE4 they are slow.(Not sure what you mean with recommended, you make it sound like all space games for a single engine is equal), most people making space games do not rely on a game engine's native world manager.

5)Within limitation of your skill of managing it and within C++ Data Types, yes then EE can surely handle all math problems reliably.

6)Most engines with the possibiliy to control connection to a server allows this. EE is no exception.

Again, sorry if the answers are not satisfactory.
(This post was last modified: 07-09-2016 05:23 PM by Zervox.)
07-09-2016 05:22 PM
Find all posts by this user Quote this message in a reply
Olander Offline
Member

Post: #4
RE: Space and Landscape Hybrid Game, Esenthel Possible?
Zervox and aceio76 Thank you for taking the time. Actually I like honest answers. smile

I do have full source on my sub with Esenthel. My experience with this engine to date are 3D art and running around in very large landscapes made from L3DT. Love the material editor! Animations work really well in Esenthel as well. I have purchased some nice things from the Esenthel shop but have not really dug into them.

I understand the floating point limitation. This is what causes the scaling of Meters to Kilometers...basically 0.001 scaling which leaves 4 decimals to play with for some sort of accuracy. This is what 'By Design' is meant for. This dictates any type of large world type environment.

To note on this....in single client environment this is not a large issue since there are methods to shift World Zero in relation to the client. Multi-player nails the world zero since more that one client may be in the same region (level). Hence the main reason for a Large Flat Cylinder for Space areas/levels/planets/belts....

I am a high end PLC Programmer (Top 100 in the world) and learned C Language whilst modding for Neverwinter Nights 1 for 10 years (Olander's Realistic Systems). Working within Bioware's Aurora Engine I learned a great deal of what to do and what not to do in regards to game structure. Bioware chose RadTools as there base then designed their GUIs and other things to have the tools work together as a Game and Toolset. It worked rather well to be honest. NWN2 is an example of how robust the RadTools were and how a company, Obsidian, expanded it but also made landscaping cumbersome and very buggy. Interesting to see both iterations.

I transferred much of my code to C# in Unity 4/5 which dug me deep into this 'engine' and found many limitations/workarounds. C++ is readable but will take a little time to adjust to Esenthel (as would UE4 ... have been using the Visual Scripting currently but this does have limitations for some things). I have no issues with digging in so to speak and no illusions that a 10-20 person team (and outside contractors) is needed to really do a game like this justice.

I can code C++ and it will be robust but I do know that my strong suit is 3D art, level design, and writing.

Now that is out of the way...more specifics and what I have gleaned from the answers.

Box Design:
Think of a Box. It is empty inside. Now place things into it to occupy the space inside. Now move the Box and everything inside moves with it. You can think of this in many ways...Folders in Windows/Mac as example.
What happens is the Box communicates to other Boxes and the special Box called Module. This makes it easy for the Box to take care of itself and the items inside this box can still be interacted with fluidly through proper Parent-Child hierarchy.

Example:
Tell a Box to turn On the rendering of Hair_0001 and the Box script says...got it...here is hair script...you there...turn On Hair_0001. Hair script says...not unlocked sorry cannot do this.

Hope that explains the name better.

1) Master Container (Module). Basically this Box (Object) needs to exist at all times and there is only 1 of them in the entire engine. This Box (Object) is responsible for Global Activities and Data Connections to a master data server....things like Global Time, Time Based Events, Trade Network, Door Auto Open and Close Delays, Game Configurations....etc. Unity and UE4 do this differently but both work well. I am not certain how Esenthel does/handle this.

2) Floating point understood. Thank you.

3) Thank you

4A) Clouds non-volumetric...check...Skybox or Mesh acceptable. Thank you.
4B) Since it is Skybox or Mesh then 500m is very acceptable for simulated landing. Thank you

5) Fair enough. This was kind of a go ahead and ask about single or multi threaded nature of the engine. I know I did not state that but in any case this sort of thing should work fine. Testing proves all. Thanks for the answer.

6) This sort of thing is way above my skills. PLC telemetry and data connections is a completely different beast to computer server and networking data (although related the data structure and protocols are completely different). I think the main question is if Esenthel with multiple dedicated servers....can each of these communicate with a master data server. With full source I do realize that this can be done so this is kind of an Engine Designer type of question for a later date. Thank you for the answer on this.

No really. The answers were completely satisfactory! I appreciate taking the time to open up honest answers.

I will give EE a solid go. I have enough art and working functionality in Unity and UE4 to make a demo for GDC2017 for investor funding...with EE I will suspend that. It will be interesting if many of the C/C# functions I have made will transfer well to EE C++...many should with slightly different syntax. Will be very interesting!

I will most definitely be asking EE Pros in the forums here if they are interested in joining this type of project. I want to make certain that there are no smoke and mirrors....this thing REALLY works prior to doing so. Looking forward to being part of the EE community.

For two decent examples on the game style...SciFy Channel's The Expanse is very similar. It was interesting to watch Season 1 and see so many similarities to my game design....crazy cool. The other would be Firefly/Serenity. An old but awesome game is a little similar as to the space flight and jumps....Independence War 2 Edge of Chaos.

Thank you
Cheers
Olander
(This post was last modified: 07-10-2016 05:15 PM by Olander.)
07-10-2016 04:59 PM
Find all posts by this user Quote this message in a reply
Zervox Offline
Member

Post: #5
RE: Space and Landscape Hybrid Game, Esenthel Possible?
(07-10-2016 04:59 PM)Olander Wrote:  1) Master Container (Module). Basically this Box (Object) needs to exist at all times and there is only 1 of them in the entire engine. This Box (Object) is responsible for Global Activities and Data Connections to a master data server....things like Global Time, Time Based Events, Trade Network, Door Auto Open and Close Delays, Game Configurations....etc. Unity and UE4 do this differently but both work well. I am not certain how Esenthel does/handle this.

2) Floating point understood. Thank you.

3) Thank you

4A) Clouds non-volumetric...check...Skybox or Mesh acceptable. Thank you.
4B) Since it is Skybox or Mesh then 500m is very acceptable for simulated landing. Thank you

5) Fair enough. This was kind of a go ahead and ask about single or multi threaded nature of the engine. I know I did not state that but in any case this sort of thing should work fine. Testing proves all. Thanks for the answer.

6) This sort of thing is way above my skills. PLC telemetry and data connections is a completely different beast to computer server and networking data (although related the data structure and protocols are completely different). I think the main question is if Esenthel with multiple dedicated servers....can each of these communicate with a master data server. With full source I do realize that this can be done so this is kind of an Engine Designer type of question for a later date. Thank you for the answer on this.

No really. The answers were completely satisfactory! I appreciate taking the time to open up honest answers.

I will give EE a solid go. I have enough art and working functionality in Unity and UE4 to make a demo for GDC2017 for investor funding...with EE I will suspend that. It will be interesting if many of the C/C# functions I have made will transfer well to EE C++...many should with slightly different syntax. Will be very interesting!

I will most definitely be asking EE Pros in the forums here if they are interested in joining this type of project. I want to make certain that there are no smoke and mirrors....this thing REALLY works prior to doing so. Looking forward to being part of the EE community.

For two decent examples on the game style...SciFy Channel's The Expanse is very similar. It was interesting to watch Season 1 and see so many similarities to my game design....crazy cool. The other would be Firefly/Serenity. An old but awesome game is a little similar as to the space flight and jumps....Independence War 2 Edge of Chaos.

Thank you
Cheers
Olander

Ah, thank you for the deeper explanations this helps sort my confusion of the questions somewhat. Box design is really known as a hierarchy design(Parent-Child), this is somewhat used in any spatial management to some degree.
EE uses this somewhat based on where it might be appropriate(for a generic implementation and not as specialized as to any 'master', EE does use Parent design for each mesh being able to have parts and split, this also allows each mesh to be told or tell a part to stop rendering and stop being processed, this I am sure you are already aware of, but this is as far it goes.

Using such an approach is most certainly possible and you can relatively easy get used to do it in Esenthel, Esenthel is actually C++ with a wrapper to handle things for you(makes it easier for people new to programming without actually losing the power of C++, you can also export it to visual studio(like I do) and program purely with C++ syntax).

I should add that Esenthel Script really isn't really a scripting language, as Script is just what Greg decided to name his (a bit cleverely way) wrapper for C++.

If you want to go deep enough you can implement any scripting language to EE(I personally love using Angelscript together with EE, as Angelscript connects really well with C++)

1) I believe now that this questions comes from Unity and Unreal Engines way to handle code, in which case I've never liked this blueprint and code drag-drop way of doing this, but in C++ for a lifetime master container that has life until program ends, all you need to do is make a global object(easily read up on at C++ sites).

4) This is not to say that you are limited to these options, as it is possible to use 3rd party systems should the day come that you need better features for the weather(SimulWeather and Sundogs SilverLining/Triton Ocean)

5) with multithreading everything as you should be aware has it's own issues, but depending on how you split what you need onto another thread it shouldn't be a problem.

6) Yes, Esenthel's Networking should allow you to connect any client to any of these and any of the master servers should be able to connect to a Lobby master.
Luckily when you get used to EE's way of handling networking, if it proves to not be 100% up to the task, it should be relatively easy to port, as my experience, that ENet and RakNet(not sure how Unity uses RakNet these days so can't say they do it the same way) handles it very similarily.

I hope these answers will prove more useful. smile
(This post was last modified: 07-10-2016 10:33 PM by Zervox.)
07-10-2016 10:24 PM
Find all posts by this user Quote this message in a reply
Olander Offline
Member

Post: #6
RE: Space and Landscape Hybrid Game, Esenthel Possible?
Thanks Zervox

Excellent explanations.

Indeed the Parent-Child design is done differently in every engine I have used. Unity has a strange way of handling the hierarchy relationships and can be really tricky to do it 100% by script. As you say, dragging and dropping becomes the go to method to link objects....and the you change something or use the RESET feature and un-link everything! FRAK!! UE4 is better but getting objects to fluidly communicate is strange and needs trigger tricks to make it happen. 4 other engines I will not go into but....the best Parent-Child system I have seen is Bioware's Aurora (NWN1). EE behaves similar to Aurora when dealing with meshes with properties. I liked that but EE looked like it needed some other things to add.....investigation time.

Unity no longer uses RakNet, it has its own uNet but it is a mess and is undocumented. It is getting much better and is built in. It seems they are trying to get people to use their hosting/matchmaking servers to log bandwidth and charge for the usage. There is one lad I know that bypassed those servers and is using his how hosting in London. I was using Forge Networking (Asset Store) which made networking super easy in Unity....but Unity being Unity these 3rd party addons break often when Unity changes things on their ends. Crazy circle. UE4 uses a built in networking good for ~70 players max. It is easy, authoritative, and robust. Never had one issue with it. EE networking specs (from reading the forums here) are well suited for Space-Life dedicated micro-servers (~200 max).

Thank You again for the excellent answers.

Cheers
Olander
07-11-2016 03:12 PM
Find all posts by this user Quote this message in a reply
Post Reply