Author Topic: engine MOD - free solarsystem travelling, planetary engine  (Read 11382 times)

0 Members and 1 Guest are viewing this topic.

engine MOD - free solarsystem travelling, planetary engine
Hello,

I've got the idea to extend the freespace SCP engine with a couple of new abilities of intrasystemal cruising and seamless planetary atmosphere flights. The technical side of this question is almost done and I've got a working demo:

Screenshots:
http://www.gamedev.net/community/forums/topic.asp?topic_id=442406

Executable:
http://www.razorjack.de/demo.zip

If you want to run the demo you require following preferences:
SSE2 capatibility
DirectX9 (december 2006 release or better)
latest VC2005 runtimes downloadable from microsoft

Please take note that my terrain engine is the main performance consumer. The work around the terrain is almost undone and the routines were all hacked together within a half week, but they do a good work -
To begin with the mod I need a programmer with experience of different terrain types (especially ROAM) to write better terrain routines. And I need also a programmer who is able to work with freespace source code.
My spacesim project blog:
http://simerge.wordpress.com/

 

Offline Bob-san

  • Wishes he was cool
  • 210
  • It's 5 minutes to midnight.
Re: engine MOD - free solarsystem travelling, planetary engine
It looks good, but my question is what would happen if we put this code into our engine? Will it break backwards compatibility (with FreeSpace 2 Vanilla, an important feature for many people)? Will it really be put into the code? There are several hard-coded maximums in this game--one of them being a maximum distance from the origin (600K km, IIRC) that the player can go. Also, how we utilize an upgrade of this magnitude? If it's not compatible with an existing or new 3rd party out-of-game creator, how will we be able to use this feature?

There's a number of other things to consider--I'm saying this looks like a huge expansion on our engine, but will it really work and is it really worth it? I'm no programmer, but this seems very hard to implement without completely rewriting our code.

Oh, and...

:welcomeblue:
NGTM-1R: Currently considering spending the rest of the day in bed cuddling.
GTSVA: With who...?
Nuke: chewbacca?
Bob-san: The Rancor.

 

Offline Hippo

  • Darth water-horse
  • 211
  • Grazing.
    • All Hands to War
Re: engine MOD - free solarsystem travelling, planetary engine
Play freelancer
VBB Survivor -- 387 Posts -- July 3 2001 - April 12 2002
VWBB Survivor -- 100 Posts -- July 10 2002 - July 10 2004

AHTW

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: engine MOD - free solarsystem travelling, planetary engine
i think the problem with sticking something like this into this engion would be more or less a lack of space. freespace has a fixed mission radius, so youd either end up with the freelancer effect where everythings scaled down rediculously, or you have scenes with room only for a single planet or part of a planet. not that i dont want a full and realistically modeled solar system with full on newtonian, and realistic atmoshpere with lift and drag and gravity built in.. but i dont think this engine is ready yet.

you also have the problem that youre pretty much using all microsoft apis, rather than cross platform stuff. i dont think coders like taylor and goob want to add any features that wont be available for all platforms.
« Last Edit: September 24, 2007, 04:21:07 pm by Nuke »
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 

Offline DaBrain

  • Screensniper
  • 212
    • Shadows of Lylat board
Re: engine MOD - free solarsystem travelling, planetary engine
Hmmm, he's actually offering his help to improve FS2 in a way a lot of people wanted it to improve it. At least for some mod projects.

And it's not just an idea, but he actually build a demo version... so what's up with the negative attitude here?

I quite like the idea. :)


Nuke is right though. D3D isn't really supported very well anymore and nobody seems to be fixing it. And even if we brought it back to the current OpenGL level, the planetary system just mustn't be API/platform dependant.
--------------------------------------------------
SoL is looking for a sound effect artist
Please PM me in case you want to apply
---------------------------------
Shadows of Lylat - A Freespace 2 total conversion
(hosted by Game-Warden)
----------------------------------

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: engine MOD - free solarsystem travelling, planetary engine
i w3ould really love to have this feature though. but you cant just slap engine a ontop of engine b and expect it to work. ive wretten a rather crappy graphics enngine, capable of drawing two 12-line models (i havent put polies in yet) simultaniously an an amazing rate of 45 frames a second! now if i tried to add that to freespace for like 3d hud gauges, id have to deal with a completely different aproach to basic classes. such as my vector class may not be compatable with freespace's struct. and i always have to convert back and fourth between class a and struct b. ineffitiency overwealming. reinventing the wheel in about a dozen places.

you can implement it but that means you must also commit to fixing any bugs you may introduce by addint it. lest get your feature rolled back from stable, or worse yet rolled back from head. the scp requires long term developers who are willing to maintain their features. last thing i want is to start augmenting my mod to use another feature and then have that feature rolled back just as im ready to put something cool out. then i got to wait 6+ months for those features to be stable enough to make head, and then take a couple more years before the feature is in an offitial stable build.
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 
Re: engine MOD - free solarsystem travelling, planetary engine
i think the problem with sticking something like this into this engion would be more or less a lack of space. freespace has a fixed mission radius, so youd either end up with the freelancer effect where everythings scaled down rediculously, or you have scenes with room only for a single planet or part of a planet. not that i dont want a full and realistically modeled solar system with full on newtonian, and realistic atmoshpere with lift and drag and gravity built in.. but i dont think this engine is ready yet.

Wrong...
Well, I know that there is a big problem with float numbers. The thing is that the precision gets lost for greater numbers. People are using double precision vectors to aid this situation a little more. I've solved this problem already and I'm still using single precision vectors.
The trick is really simple. I don't use global coordinates. Instead I'm putting on object into it's segment with a local coordinate system. And I allow an object to switch between segments.
In other words, I can have as much "space" as I want without any freelancer effects.

If there are still questions about it, then launch my demo and press F10. You will see that the camera position vector doesn't exceed number greater than -5000 to 5000 (roughly).
By the way, note that the Y axis is always showing upwards from the planet's surface. And you can also test the Day&Night cycle feature and note that the camera position isn't changing.

you also have the problem that youre pretty much using all microsoft apis, rather than cross platform stuff. i dont think coders like taylor and goob want to add any features that wont be available for all platforms.

Wrong, too. :D
The API doesn't matter. As far as you might notice, Freespace 2 originally could switch between DirectX and Glide.
In the same way I'm not dependant from APIs as much. The backbone of my small engine is the scenegraph. And I don't make any calls to DirectX or OpenGL from there.

It looks good, but my question is what would happen if we put this code into our engine? Will it break backwards compatibility (with FreeSpace 2 Vanilla, an important feature for many people)? Will it really be put into the code? There are several hard-coded maximums in this game--one of them being a maximum distance from the origin (600K km, IIRC) that the player can go. Also, how we utilize an upgrade of this magnitude? If it's not compatible with an existing or new 3rd party out-of-game creator, how will we be able to use this feature?

There's a number of other things to consider--I'm saying this looks like a huge expansion on our engine, but will it really work and is it really worth it? I'm no programmer, but this seems very hard to implement without completely rewriting our code.

It's a very complicated question ... As far as I know the original sexp instructions I don't expect that the script would suffer from this extension. If you want to convert existing missions you will only have to assign the absolute origin to a position in the solar system(or better to a segment in the solar system).

The downwards compatibility is more a problem for existing source code modifications of FS2. You must know that the original FS2 didn't have a scenegraph (Maybe a small one, which assign turret positions to a ship). Generally, by using a scenegraph(like the one from me) you are forced to treat every coordinates as local coordinates of different scenenodes (= segments in some of my cases).

E.g. because we can't guarantee that an object is in the same node with an other object we can't ask for their relative location directly. Instead we must check their parent nodes and translate the coordinates of one of them by need. I expect, that the performance of AI routines will suffer a little bit (I hope not too much).
Another fact is that the distances can be too great and some calulations would lose precisions. And it is also possible that a location can't be determined exactly anymore (e.g. when objects are in opposite corners of the world). Maybe we will need some more instructions for sexp to handle this problem. The same counts for the AI routines. But this is never the case for missions of the current FS2 version.

The third fact is that I'm using a out-of-core paging mechanism and the application doesn't know the existance of outpaged object untill their segments are paged in. The application will have to explore all the segments within a radius from a given position. So one of important sexp extensions could be this exploration request.

you can implement it but that means you must also commit to fixing any bugs you may introduce by addint it. lest get your feature rolled back from stable, or worse yet rolled back from head. the scp requires long term developers who are willing to maintain their features. last thing i want is to start augmenting my mod to use another feature and then have that feature rolled back just as im ready to put something cool out. then i got to wait 6+ months for those features to be stable enough to make head, and then take a couple more years before the feature is in an offitial stable build.

That's a problem ... But there is nothing unnatural.
« Last Edit: September 24, 2007, 05:56:04 pm by razorjack »
My spacesim project blog:
http://simerge.wordpress.com/

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: engine MOD - free solarsystem travelling, planetary engine

Wrong...
Well, I know that there is a big problem with float numbers. The thing is that the precision gets lost for greater numbers. People are using double precision vectors to aid this situation a little more. I've solved this problem already and I'm still using single precision vectors.
The trick is really simple. I don't use global coordinates. Instead I'm putting on object into it's segment with a local coordinate system. And I allow an object to switch between segments.
In other words, I can have as much "space" as I want without any freelancer effects.

If there are still questions about it, then launch my demo and press F10. You will see that the camera position vector doesn't exceed number greater than -5000 to 5000 (roughly).
By the way, note that the Y axis is always showing upwards from the planet's surface. And you can also test the Day&Night cycle feature and note that the camera position isn't changing.

i wouldnt go as far as saying im totally wrong. the problem of the mission area has been discussed to death, in detail, before. this thread has several pages of requests by modders and rebuttals by coders full of reasons why the feature should and should not be added, respectively. the reasoning behind it was different but the essence is the same, make the game area bigger. anyway it got controversial enought to get the thread locked.

now your solution might work in your demo but it would require low-level code changes throughout alot of the fs2 code base. and as far as that goes fs2 isnt one of the most user friendly codebases out there. i remember cries of disgust at all the gotos and the speggetification that was there. the code is alot more organized now. but it took several years to get the codebase to where it is.

Quote
Wrong, too. :D
The API doesn't matter. As far as you might notice, Freespace 2 originally could switch between DirectX and Glide.
In the same way I'm not dependant from APIs as much. The backbone of my small engine is the scenegraph. And I don't make any calls to DirectX or OpenGL from there.

i was more or less trying to be informative about the needs of the fs2 codebase as far as perfered libraries and apis. i know from my expirience with using apis is that the can be shuffeled in and out at will sometimes with very little tweaking. least the ones i used made that easy. what youre doing seems to be creating a means to do procedural planetary system, save fr probibly some mapping features really has nothing to do with rendering but rather creating the data to be rendered.

anyway dont get me wrong i really do hope you make me eat my words. youre feature just seems to be a little too good to be true though. sorry if i sounded rude with my initial posts, havent sleped in a couple days. but if youre serious and you can get the other coders to support your idea , go for it. you might want to post in the scp forum to get their attention. youre talking to the modders not the programmers here :D
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 

Offline jr2

  • The Mail Man
  • 212
  • It's prounounced jayartoo 0x6A7232
    • Steam
Re: engine MOD - free solarsystem travelling, planetary engine
you might want to post in the scp forum to get their attention. youre talking to the modders not the programmers here :D

...which is right here:D

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
Re: engine MOD - free solarsystem travelling, planetary engine
This sounds like an opportunity. Come on, people, let's not be all prickly - can't we give this a shot? Worst it can do is fail.

Razorjack, I'd love to see this work.

 

Offline Goober5000

  • HLP Loremaster
  • Moderator
  • 214
    • Goober5000 Productions
Re: engine MOD - free solarsystem travelling, planetary engine
Um... wow.

This looks really, really, cool; but it also has the potential to seriously conflict with a whole lot of other things in the SCP (such as stability and balance), so we need to tread carefully here.

Why does it require DX9?  Did you do a complete graphical upgrade, or something?  Keep in mind that the primary engine in the SCP now is OGL.

 

Offline StratComm

  • The POFressor
  • 212
  • Cameron Crazy
    • http://www.geocities.com/cek_83/index.html
Re: engine MOD - free solarsystem travelling, planetary engine
It's a great concept; not terribly groundbreaking as a concept but that doesn't mean it's worth exploring.  But I don't believe it belongs in the SCP either, because of both the aforementioned compatibility and stability issues, but also because that's not what Freespace ever pretended to be.  It would be a new feature, but I just have to ask at what point things stray so far from the way the engine is currently used that they become bloat.  I know I've been rare enough around here that my opinion doesn't count for much (if it ever did), but those are my 2 cents.
who needs a signature? ;)
It's not much of an excuse for a website, but my stuff can be found here

"Holding the last thread on a page comes with an inherent danger, especially when you are edit-happy with your posts.  For you can easily continue editing in points without ever noticing that someone else could have refuted them." ~Me, on my posting behavior

Last edited by StratComm on 08-23-2027 at 08:34 PM

 

Offline Flipside

  • əp!sd!l£
  • 212
Re: engine MOD - free solarsystem travelling, planetary engine
Personally, I think your knowledge of procedural generation etc could be far more useful if you joined the team and worked alongside them, that way you could work alongside the graphical developments in FS2 to ensure you get the most from your engine.

The original Freespace 2 engine, from what I understand, doesn't much like generating objects in-game, because of the way the BSP Tree works, so this would, if used, have to overcome that somehow, and still deal with things like collisions, not to mention having an AI that is capable of dealing with it. ;)

As you say, procedural generation can be a resource hog, but that's becoming less and less of an issue as people upgrade their rigs, in many ways it's time to worry about forward compatability as much as backwards.

As has been said, it's an uphill task, generating the terrain itself is not the only aspect of the job, though it is a large percentage of it, texturing, placement of buildings/features etc etc would also have to be considered.

Personally, I'd love to see it, but it would also be one of the biggest, and probably most difficult changes to the Engine yet, but in this case, I think you could help the SCP guys more than they could help you ;)

 

Offline Turey

  • Installer dude
  • 211
  • The diminutive form of Turambar.
    • FreeSpace Open Installer Homepage
Re: engine MOD - free solarsystem travelling, planetary engine
It's a great concept; not terribly groundbreaking as a concept but that doesn't mean it's worth exploring.  But I don't believe it belongs in the SCP either, because of both the aforementioned compatibility and stability issues, but also because that's not what Freespace ever pretended to be.  It would be a new feature, but I just have to ask at what point things stray so far from the way the engine is currently used that they become bloat.  I know I've been rare enough around here that my opinion doesn't count for much (if it ever did), but those are my 2 cents.

* Turey agrees.
Creator of the FreeSpace Open Installer.
"Calm. The ****. Down." -Taristin
why would an SCP error be considered as news? :wtf: *smacks Cobra*It's a feature.

 

Offline Hippo

  • Darth water-horse
  • 211
  • Grazing.
    • All Hands to War
Re: engine MOD - free solarsystem travelling, planetary engine
It's a great concept; not terribly groundbreaking as a concept but that doesn't mean it's worth exploring.  But I don't believe it belongs in the SCP either, because of both the aforementioned compatibility and stability issues, but also because that's not what Freespace ever pretended to be.  It would be a new feature, but I just have to ask at what point things stray so far from the way the engine is currently used that they become bloat.  I know I've been rare enough around here that my opinion doesn't count for much (if it ever did), but those are my 2 cents.

* Turey agrees.
* Hippo agrees.
VBB Survivor -- 387 Posts -- July 3 2001 - April 12 2002
VWBB Survivor -- 100 Posts -- July 10 2002 - July 10 2004

AHTW

 

Offline Flipside

  • əp!sd!l£
  • 212
Re: engine MOD - free solarsystem travelling, planetary engine
You do, I'll admit have to look at usefullness over work involved, it's really down to those who doing the coding itself though.

 
Re: engine MOD - free solarsystem travelling, planetary engine
Could this be treated as a plugin to the engine?  If you don't need it, then it won't get loaded (i.e. bloated)
That's cool and ....disturbing at the same time o_o  - Vasudan Admiral

"Don't play games with me. You just killed someone I like, that is not a safe place to stand. I'm the Doctor. And you're in the biggest library in the universe. Look me up."

"Quick everyone out of the universe now!"

 

Offline StratComm

  • The POFressor
  • 212
  • Cameron Crazy
    • http://www.geocities.com/cek_83/index.html
Re: engine MOD - free solarsystem travelling, planetary engine
I just realized that read wrong.  Should have said "... it's not worth exploring."

If freespace could be made extensible enough to accept a plugin of that magnitude then that would be interesting.  Sounds like a ton of work though.
who needs a signature? ;)
It's not much of an excuse for a website, but my stuff can be found here

"Holding the last thread on a page comes with an inherent danger, especially when you are edit-happy with your posts.  For you can easily continue editing in points without ever noticing that someone else could have refuted them." ~Me, on my posting behavior

Last edited by StratComm on 08-23-2027 at 08:34 PM

 

Offline BS403

  • 29
  • I'm just sitting in my Cave.
Re: engine MOD - free solarsystem travelling, planetary engine
Well this sucks it says i don't have any compatible Direct3D devices. so i can't play the demo.

edit:sounds like an interesting idea, but hard to get it to work without ruining backwards compatibility.
http://woogleville.myminicity.com/

Homer: Aw, twenty dollars! I wanted a peanut!
Homer's Brain: Twenty dollars can buy many peanuts.
Homer: Explain how.
Homer's Brain: Money can be exchanged for goods and services.
Homer: Woo-hoo!

 

Offline jr2

  • The Mail Man
  • 212
  • It's prounounced jayartoo 0x6A7232
    • Steam
Re: engine MOD - free solarsystem travelling, planetary engine
Mph.  You know at least the SWC could use this... prolly some others, too... let's have a show of hands: Who would like to try to outrun the Shivvers in a daring escape from the surface of Vasuda Prime?  ;)