The roadmap to procedural planets

The roadmap to procedural planets

Postby klauss » Wed Feb 05, 2014 7:25 pm

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
User avatar
klauss
Elite
Elite
 
Posts: 7243
Topics: 55
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Share On:

Share on Facebook Facebook Share on Twitter Twitter Share on Digg Digg

Re: The roadmap to procedural planets

Postby ezee » Fri Feb 14, 2014 3:43 am

" 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
ezee
Intrepid Venturer
Intrepid Venturer
 
Posts: 703
Topics: 65
Joined: Tue Feb 11, 2014 12:47 am
Location: FRANCE

Re: The roadmap to procedural planets

Postby loki1950 » Fri Feb 14, 2014 4:54 am

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
User avatar
loki1950
The Shepherd
 
Posts: 5772
Topics: 53
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa

Re: The roadmap to procedural planets

Postby klauss » Fri Feb 14, 2014 5:21 am

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
User avatar
klauss
Elite
Elite
 
Posts: 7243
Topics: 55
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Re: The roadmap to procedural planets

Postby ezee » Fri Feb 14, 2014 5:31 am

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
ezee
Intrepid Venturer
Intrepid Venturer
 
Posts: 703
Topics: 65
Joined: Tue Feb 11, 2014 12:47 am
Location: FRANCE

Re: The roadmap to procedural planets

Postby klauss » Fri Feb 14, 2014 6:53 pm

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
User avatar
klauss
Elite
Elite
 
Posts: 7243
Topics: 55
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Re: The roadmap to procedural planets

Postby TBeholder » Fri Feb 14, 2014 9:01 pm

Also, does anyone still here knows how terrain and continuous terrain work right now?
"Two Eyes Good, Eleven Eyes Better." -Michele Carter
User avatar
TBeholder
Elite Venturer
Elite Venturer
 
Posts: 750
Topics: 38
Joined: Sat Apr 15, 2006 2:40 am
Location: chthonic safety

Re: The roadmap to procedural planets

Postby Darkmage » Wed Dec 07, 2016 1:44 pm

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.
Darkmage
Merchant
Merchant
 
Posts: 57
Topics: 12
Joined: Tue Mar 11, 2003 7:21 am
Location: Melbourne, Australia



Return to Coding

Who is online

Users browsing this forum: No registered users and 1 guest

cron