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

0 Members and 1 Guest are viewing this topic.

Re: engine MOD - free solarsystem travelling, planetary engine
I think that we can try to make everything downwards compatible and the engine doesn't require all too much changes.
The idea to have a plugin is also possible I think. We just need to perform all manipulations and queries to a scene object over an interface.
The planetary surface can be split up into objects, too.
As far as I can remember, "the babylon project" used an object as terrain. It wouldn't change all too much. The only thing is that some objects will be generated automatically (e.g. Planetary surface chunks and asteroids).
My spacesim project blog:
http://simerge.wordpress.com/

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: engine MOD - free solarsystem travelling, planetary engine
While everyone is complaining about procedural planets being something unFS2-like let me point out that I'd rather see this used for procedural asteroids and asteroid fields. That's definitely FS2-ish and would be a most welcome addition as it would give us many things people have asked for (multiple fields, fields with a less clear boundary, larger asteroid variety, etc).
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]

 

Offline Shade

  • 211
Re: engine MOD - free solarsystem travelling, planetary engine
Well. My initial reaction was "coool". So far, regardless of comments that some of the stuff isn't really what Freespace is about (comments which I agree with), that reaction stands. Even if it's not Freespace-ish, it's still cool, and I'm sure there are mods or TCs that would love to have it :)
Report FS_Open bugs with Mantis  |  Find the latest FS_Open builds Here  |  Interested in FRED? Check out the Wiki's FRED Portal | Diaspora: Website / Forums
"Oooooooooooooooooooooooooooooooooooooooh ****ing great. 2200 references to entry->index and no idea which is the one that ****ed up" - Karajorma
"We are all agreed that your theory is crazy. The question that divides us is whether it is crazy enough to have a chance of being correct." - Niels Bohr
<Cobra|> You play this mission too intelligently.

 

Offline Wanderer

  • Wiki Warrior
  • 211
  • Mostly harmless
Re: engine MOD - free solarsystem travelling, planetary engine
Well... I had planned script that would keep erasing and regenerating (or moving) asteroids as player moves around to create an illusion of an immense asteroid field... But the hack would have been clearly visible (unless using very, very dark background). But getting such option in some distant future to the code would be great.

And as for adding additional stuff during the mission... Doable.. scripts already allow for placing additional ships/weapons/asteroids/debris to the mission. Only issue is that IIRC FRED hangs itself if you try to access those ships (non-existing according to FRED). But they work nicely via scripts.

And perhaps the larger universe thing wouldnt be very FreeSpaceish but then again IMHO there is a world of difference between FreeSpace (game universe) and the FreeSpace Open (game engine)
Do not meddle in the affairs of coders for they are soggy and hard to light

 

Offline jr2

  • The Mail Man
  • 212
  • It's prounounced jayartoo 0x6A7232
    • Steam
Re: engine MOD - free solarsystem travelling, planetary engine
How hard would it be to do a "Xtaylor" (well, ok "Xrazorjack") build, just to see how it would work, and to find any compatibility errors?

EDIT: BTW, skipjack, if you wanted to take a shot at mixing it in with the FS2 engine yourself and make an experimental build, directions for getting the Source Code are here... not sure if you can / want to / should, but you're a coder, and I'm not... so there you have it.  Ask the SCP dudes about anything else.  :D
« Last Edit: September 25, 2007, 09:42:52 am by jr2 »

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: engine MOD - free solarsystem travelling, planetary engine
well nukemod would certainly use theese features. i wanted to do some atmospheric stuff. btrl would definately use it as they have alot of saurface level stuff in battlestar. and the lack of scenery is one of those things which freespace tends to lack in contrast with newer games. this could be one of the things to push the engine forward from what would be considered old skool. keeping the engine semi-modern.
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 Flipside

  • əp!sd!l£
  • 212
Re: engine MOD - free solarsystem travelling, planetary engine
Well, there's no doubt that RazorJacks' procedural knowledge will be useful one way or another ;)

I really hope something can be done about this, but this is something that just screams 'plan of attack'.

 
Re: engine MOD - free solarsystem travelling, planetary engine
:) A "plan of attack" would be:

The thing is that every object in FS2 is instanced with the structure called "object" (in object.h). Our problem is now that their coordinates are lying in the global coordinate system. What we need is to place every object into the local coordinate system of a parental segment later.
Currently, FS2 performs calculations with the object's coordinates by accessing position variables directly.
So the next step would be to forbid any direct access to these variables and use an interface instead.
The interface could contain functions like these:
- Delta vector between object1 and object2
- Distance between object1 and object2
- get local position
- set local position
aso.

After that we can implement the back-end behind this interface in different manner. And it allows us to switch between the current FS2 engine and the extensions.

I would like to get some help because there are over 2000 accesses all over the source. If we get it working then we have done near the half way to the finish.

By the way, I renamed the structures "object" to "object_t" today because it's a problem to distinguish between the datatype and the word "object" in the code. (You can get my updates from: www.razorjack.de/code.zip)
« Last Edit: September 25, 2007, 12:34:43 pm by razorjack »
My spacesim project blog:
http://simerge.wordpress.com/

 

Offline hip63

  • 28
  • The DVD Builder Guy
    • hip63's Groovy Galaxy
Re: engine MOD - free solarsystem travelling, planetary engine
on the issue of backwards compatibility:

How about a stand alone mod like TBP or BtRL?

hp63 :p
operator: "So what do you need? Besides a miracle. " hip63: "Games. Lots of Games. "
EVGA X58 Motherboard, Intel i7 920 @ 3.8 (OC) GHz Quad Core, Zalman Copper Cooler, 6GB OCZ DDR3 memory, EVGA Nvidia GTX275 (1.8gb mem onboard), 4x 1TB Western Digital SATA II Drives + 1 WD Velociraptor HDD (OS), DVD Drive, Zalman 1000w PSU, Antec Twelve Hundred Case, Windows 7 Ultimate x64, Dell 2007WFP Widescreen Flat Panel Pure Gaming Evil Baby!

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: engine MOD - free solarsystem travelling, planetary engine
i finally managed to get your demo to work, had to go do a dll hunt though. anyway i was rather impressed at the speed of the engine and at the reasonably smooth transitions. i had to try really hard to get the thing to eat up 40% of my cpu resources. my computer is pretty much top of the line with only extream gamer machines ahead of it. but i figure with the time it would take to get this feature in that should be about the norm.

you could probibly take advantage of dual-cores to generate terrain and bsp data on the fly in another thread. while youre in one level of terrain you could incrementally do calculations for adjacent detail levels so that when its time to make a transition that data is waiting around in memory. freespace itself would operate entirely in thread 1, while thread 2 has all the procedural stuff. you could probibly also adapt this to do procedural greebeling on largr spacecraft like imperial star destroyers, that is if theres any surplus cpu time for that thread :D

i take it your system uses regular float vectors for local stuff and a long integer vector as somewhat of a multiple and essentially is used as a frame-of-referance. so like if an object's local y axis passes 10000 then the y axis for its sector increases by 1 and 10000 is subtracted from local y. for small objects like ships and asteroids and some small moons or ice dwarves, youd only really need to worry about transforms and renders of those objects if theyre within your current sector as well as adjacent sectors. that gives me some ideas for my own engine.

large objects may need to be bigger. like a star would fill up multiple sectorsi wouldnt know how to tacke that problem. youd probibly have to break your object up along the sector bounds, then you could render 1 per sector. it sounds rather complicated.
« Last Edit: September 25, 2007, 12:56:22 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 Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: engine MOD - free solarsystem travelling, planetary engine
on the issue of backwards compatibility:

How about a stand alone mod like TBP or BtRL?

hp63 :p

more features for em :D

the problem with making a mod or a tc in this engine is that its continually evolving. and a modder must, like the coders, commit to fixing their bugs for the long term. this is why nukemod is continuously evolving.
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 Inquisitor

Re: engine MOD - free solarsystem travelling, planetary engine
interesting.
No signature.

 
Re: engine MOD - free solarsystem travelling, planetary engine
i finally managed to get your demo to work, had to go do a dll hunt though. anyway i was rather impressed at the speed of the engine and at the reasonably smooth transitions. i had to try really hard to get the thing to eat up 40% of my cpu resources. my computer is pretty much top of the line with only extream gamer machines ahead of it. but i figure with the time it would take to get this feature in that should be about the norm.

The terrain engine is taken nearly line for line form www.frustum.org. But it's not suitable I found it out.
But I won't continue to develop my engine if I manage to make the FS2 engine mod to work.

you could probibly take advantage of dual-cores to generate terrain and bsp data on the fly in another thread. while youre in one level of terrain you could incrementally do calculations for adjacent detail levels so that when its time to make a transition that data is waiting around in memory. freespace itself would operate entirely in thread 1, while thread 2 has all the procedural stuff. you could probibly also adapt this to do procedural greebeling on largr spacecraft like imperial star destroyers, that is if theres any surplus cpu time for that thread :D

You're right. Normally this should be done in threads. By the way, the idea with generating models is interesting. I would like to use different routines for different object types. a voxel engine for asteroids from the guy (http://www.home.zonnet.nl/petervenis/index.htm). For big capital ships we can better take mount static chunks instead of compiling a BSP model. But there are other problems now :)

i take it your system uses regular float vectors for local stuff and a long integer vector as somewhat of a multiple and essentially is used as a frame-of-referance. so like if an object's local y axis passes 10000 then the y axis for its sector increases by 1 and 10000 is subtracted from local y. for small objects like ships and asteroids and some small moons or ice dwarves, youd only really need to worry about transforms and renders of those objects if theyre within your current sector as well as adjacent sectors. that gives me some ideas for my own engine.

large objects may need to be bigger. like a star would fill up multiple sectorsi wouldnt know how to tacke that problem. youd probibly have to break your object up along the sector bounds, then you could render 1 per sector. it sounds rather complicated.

I don't make it all too complicated. But You're right with the integers.
To give you some more ideas, I operate on a divide and conquer principle:
At the beginning you have a single sector box containing the solar system or anything you want. Then you can subdivide it into smaller boxes and select one of them. After that you have to scale up this selected child to the size of his parent. The same subdivision+scaling process can be repeated with him and his grand children. Per iteration you can push the indicies of the children into a stack to use it as a "house number" for a given subsector (It is this integer thing you meant).
All you have is a tree structure then. Bigger objects like planets can be stored at higher level of this tree. The smallest of them like all the ships in FS2 are resisting in the leafs.
If the player ship wants to go into a high speed he can alternatively climb up the tree to get faster (The same effect when you change layers in my demo). It works like the LDS drive in I-War 2 or the SPEC drive in vegastrike.
This tree can be also rendered in multiple passes by clearing the Z-Buffer between them really easily.
My spacesim project blog:
http://simerge.wordpress.com/

 
Re: engine MOD - free solarsystem travelling, planetary engine
Anyway I wouldn't deny any help from programmers by implementing this tree algorithm into FS2.
My spacesim project blog:
http://simerge.wordpress.com/

 

Offline Mobius

  • Back where he started
  • 213
  • Porto l'azzurro Dolce Stil Novo nella fantascienza
    • Skype
    • Twitter
    • The Lightblue Ribbon | Cultural Project
Re: engine MOD - free solarsystem travelling, planetary engine
Why would a planetary environment be considered non FS2-ish? Series like Colony Wars didn't have planetary missions at the beginning.

It would give a boost to user made campaigns. There are so many things we can do in planets, like colonizations, battles, rescue operations and other original stuff :)
The Lightblue Ribbon

Inferno: Nostos - Alliance
Series Resurrecta: {{FS Wiki Portal}} -  Gehenna's Gate - The Spirit of Ptah - Serendipity (WIP) - <REDACTED> (WIP)
FreeSpace Campaign Restoration Project
A tribute to FreeSpace in my book: Riflessioni dall'Infinito

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: engine MOD - free solarsystem travelling, planetary engine
on the issue of backwards compatibility:

How about a stand alone mod like TBP or BtRL?

I doubt either mod has team members stupid enough to want to break backwards compatibility with FS2 retail. Hell I wouldn't even want to release with a non-official fs2_Open build again if I can avoid it. Let alone one forked from the the main tree.
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: engine MOD - free solarsystem travelling, planetary engine
for reverse compatability you just have to enforce the mission radius. all youre really doing is revamping the coordanate system. and if youre thorough to make sure that everything that touches that system knows how to use it.
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 chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: engine MOD - free solarsystem travelling, planetary engine
I don't know why everyone is screaming backwards compatibility.  There's not a lot of things you could add to the engine that would _have_ to break compatibility.  I'm sure there are numerous ways to implement it, as he said, which don't interfere at all with the current behavior.  And what's with the nay-saying in general?  Give the guy a break, if you have something that negative to say, try to think of a possible solution at least.  Especially since he's not been around here for very long, and the first thing people do is start telling him "it won't work"?  Come on, you guys know better than this.  And come on, assuming that DX was needed for the engine itself and not just chosen as the means of interfacing with your graphics cards?  Shame on you.  :)
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: engine MOD - free solarsystem travelling, planetary engine
as much as i dont like the reverse compatability policy it has been one of the unifiying forces behind the scp. just look at all the quake source projects and how fragmented they are. i can think of many versions of quake 1 and 2 and some have feature a and some have feature b and few have any major tcs attached to them. so its not entirely a bad thing to maintain reverse compatability, and it has made moding fairly consistant with retail.

most of the requested features can be implemented without breaking recerse compatability assuming the programmer is skilled enough and proper testing and bug reporting is done. though doing so is sometimes a monumental task. multiple docking is a good example of something noone thought possible without breaking the engine, but it turns out they made it work.
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 chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: engine MOD - free solarsystem travelling, planetary engine
I meant in this instance, I'm all for maintaining compatibility too, I just don't see this having to break it.  If nothing else, most things could be enabled/disabled via tables or something, and off by default, so the retail would never know they exist.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays