The roadmap to procedural planets

Post Reply
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

The roadmap to procedural planets

Post by klauss »

I'm going to have some time soon-ishly.

I'm going to make the physics engine uniform. The multi-step simulation was all nice, but the glitches are never-ending.

My plan for physics is:
  • Uniform, high-degree(2nd degree most probably), variable-tick interpolation and integration
  • Replace 3D hash table structures with oc-heaps instead, for accurate physics queries involving size and arbitrary shapes
  • Tickless collision checks and AI scheduling (integration with variable tick to next scheduled decision point)
    • This means separating AI from unit physical modeling
    • Mechanics advance with independent resolution from AI decisions
  • Capsule collision checks for collision-critical objects (missiles, mines, significants).
That can be in steps (each bullet point a step), and it relates to planetary code how?

Well... the last step implies a lot of overhaul of the collision detection and AI logic, which is the one that really doesn't like procedural planets now. We can also have procedural asteroid belts because of the tickless AI (asteroid AI would reschedule for infinty).

So, after that step, comes the funny part:
  • Procedural unit hooks - unit-spawning volumes and the callbacks necessary to make them happen.
  • Procedural asteroid fields (the easiest)
  • Procedural planets. This includes gas giants and cloud patches, hence the complication and need for hooks.
It's a huge project, but it can be approached in steps, so it's doable. I think.

Help is welcome :)
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
ezee
Intrepid Venturer
Intrepid Venturer
Posts: 703
Joined: Tue Feb 11, 2014 12:47 am
Location: FRANCE
Contact:

Re: The roadmap to procedural planets

Post by ezee »

" Help is welcome "

Hi Klauss .
I'm new in the community , and i just realized that you are a coder for vegastrike .
I am also a coder in c++ with some little experience in python with Panda3D engine .
My last work was with the ogre3d engine .
I am also a blender user .

Perhaps i will be able to help you in your devs , but sure your comments about the game engine of vegastrike are precious to
me . I think i will download the sources and see by myself how the engine is designed , to be able to follow you where you go.
Perhaps a Doxygen doc would be appreciable for all the coders here ?

Anyway... Are you talking about create your own physics engine ?
Why don't you use bullet engine for physics ?
If i remember well , all the samples are written with opengl rendering .

I don't know enough about the specs of vega engine , so let me find some documentation about it ( if you have some magic links to share , please do it ! )

May the force be with you !

Code: Select all

 if (!track.HasWeapons())
            {
                // So what are you going to threaten me with? Exhaustion gas?
                return ThreatLevel::None;
            }
Vegastrike evolved
DEV YOUTUBE CHANNEL
Vegastrike evolved wiki
loki1950
The Shepherd
Posts: 5799
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Re: The roadmap to procedural planets

Post by loki1950 »

Just a bit history ezee the original engine was a fork of the Crystal Space engine from way back all of that code is now gone :shock: as there where licensing issues(not compatible with GPL) and the current code is staring to be more modular so much easier to understand and maintain :) for which we can thank klauss and safemode for all the refactoring involved.

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Re: The roadmap to procedural planets

Post by klauss »

ezee wrote: Perhaps a Doxygen doc would be appreciable for all the coders here ?
:lol:
Yeah, sure. The laugh there is because the engine is so terribly poorly badly documented. Only the newest parts have doxy-style comments, but it's not yet enough to get the full picture.
ezee wrote:Anyway... Are you talking about create your own physics engine ?
Pretty much yeah
ezee wrote:Why don't you use bullet engine for physics ?
We're already using opcode, which does most of the hard stuff. What remains is very VS-specific. None of the physics engines out there support our use case: huge systems, lots of units, needs for lots of precision, and huge-system-specific optimizations.

Last time I checked bullet, it had some small but significant shortcomings which I forgot now. I should check again.
ezee wrote:I don't know enough about the specs of vega engine , so let me find some documentation about it ( if you have some magic links to share , please do it ! )
I know this is a sucky answer, but the only documentation on the physics side that I'm aware of, is the code itself.

One of the big bullet points on the refactoring from the OP, now I notice, would be
  • Documentation, documentation, documentation
ezee wrote:May the force be with you !
Nods jedi-like
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
ezee
Intrepid Venturer
Intrepid Venturer
Posts: 703
Joined: Tue Feb 11, 2014 12:47 am
Location: FRANCE
Contact:

Re: The roadmap to procedural planets

Post by ezee »

hello loki !
Perfect 6th sense you have !
Yeah , i was looking for the root of the engine .
Thank you !!

Klauss and safemode are the fundators of the actual engine so ? .
Okay ...
i've tried years ago Crystal Space , then mooved to irrlicht , to Panda3D then landed in Ogre3D .
That's for my personal background .



EDIT : Thank you Klauss for your answers

I've found some useful infos in the wiki concerning the engine himself and the roadmap :
http://wiki.vega-strike.org/Development:Roadmap#Engine
I will read that to make my opinion about the situation .
Procedurals planet are planned with the ogre renderer i guess ?

Re edit :

Okay , i have the source file and the doxygen doc now .
So , are you actually using that class ? :

Code: Select all

PhysicsSystem Class Reference
#include <physics.h>

Public Member Functions
 	PhysicsSystem (float M, float I, QVector *pos, Vector *p, Vector *q, Vector *r)
 
virtual void 	Rotate (const Vector &axis)
 
virtual void 	JettisonReactionMass (const Vector &Direction, float speed, float mass)
 
virtual void 	JettisonMass (const Vector &Direction, float speed, float mass)
 
virtual void 	ResistiveLiquidTorque (float ResistiveForceCoef)
 
virtual void 	ResistiveTorque (float ResistiveForceCoef)
 
virtual void 	ResistiveLiquidForce (float ResistiveForceCoef)
 
virtual void 	ResistiveForce (float ResistiveForceCoef)
 
virtual void 	ResistiveThrust (float strength)
 
virtual void 	ResistiveTorqueThrust (float strength, const Vector &Position)
 
virtual void 	ApplyForce (const Vector &Vforce, float time)
 
virtual void 	ApplyTorque (const Vector &Vforce, const Vector &Location, float time)
 
virtual void 	ApplyLocalTorque (const Vector &Vforce, const Vector &Location, float time)
 
virtual void 	ApplyBalancedLocalTorque (const Vector &Vforce, const Vector &Location, float time)
 
void 	ApplyImpulses (float Time)
 
void 	SetVelocity (Vector v)
 
void 	SetAngularVelocity (Vector w)
 
const Vector & 	GetVelocity () const
 
const Vector & 	GetAngularVelocity () const
 
virtual void 	Update ()
And are you talking about a rewrite of this class ?
Or an inheritance perhaps ?
you said :
We're already using opcode
Do you have a link please ?
ah ! i've found it -> http://www.codercorner.com/Opcode.htm

Code: Select all

 if (!track.HasWeapons())
            {
                // So what are you going to threaten me with? Exhaustion gas?
                return ThreatLevel::None;
            }
Vegastrike evolved
DEV YOUTUBE CHANNEL
Vegastrike evolved wiki
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Re: The roadmap to procedural planets

Post by klauss »

ezee wrote: Klauss and safemode are the fundators of the actual engine so ? .
No, no... hellcatv and jacks are. But they've long since been little to no involved, concerned with other aspects of RL.
ezee wrote:So , are you actually using that class ?
I believe so, if it's what I think it is.
ezee wrote:And are you talking about a rewrite of this class ?
Or an inheritance perhaps ?
Both
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
TBeholder
Elite Venturer
Elite Venturer
Posts: 752
Joined: Sat Apr 15, 2006 2:40 am
Location: chthonic safety

Re: The roadmap to procedural planets

Post by TBeholder »

Also, does anyone still here knows how terrain and continuous terrain work right now?
"Two Eyes Good, Eleven Eyes Better." -Michele Carter
Darkmage
Merchant
Merchant
Posts: 57
Joined: Tue Mar 11, 2003 7:21 am
Location: Melbourne, Australia
Contact:

Re: The roadmap to procedural planets

Post by Darkmage »

Planets are simply height maps loaded into the engine. The game then spheremaps the heightmaps onto the planet. You define it all with XML tags. I played with it when it was first added by Daniel. If you need to discuss it in detail hit me up via gmail or IRC. I would like to add water to the planets. I think this is simple, We just add a new sphere. Define the water depth as a percentage variable/whatever within the XML, the game engine should then use that depth value to calculate the radius of the sphere. It should not exceed the height of the height map (unless you want an underwater planet). We could make a planet designer which would be a cut down version of the game that just loads planet data and doesn't fire up the AI/Music etc. I think we should look into using the engine more to make our editing tools.
If you're interested in helping with mission editor/engine development contact me at jcarthew@gmail.com or irc.freenode.net #vegastrike.
Post Reply