|Viking||Date: Thursday, 13.09.2012, 01:34 | Message # 1|
|Hi there, first off I love this program! Thanks!! |
I've got an idea for a fairly simple way to proceduraly make a huge variety of fairly realistic ships using the assets already present in the engine.
In the simplest sense it is a miniature solar system, made up of simplified versions of existing celestial objects to serve as the various components of the ship. Instead of calculating the various orbits you just need to save a list of objects within the system and some basic data about each... temperature, brightness, material and mass. Unlike a full sized star system the objects within can be scaled arbitrarily relative to each other, you can have a half tonne "asteroid", a 3 tonne "star", a 5 tonne "Ice Giant" and a 2 tonne rocky planet with a couple 1 tonne moons. Round it out with an asteroid belt full of a hundred 1 kilogram rocks.
Every kind of celestial object can be used to represent a ship function, making the mining and crafting system relatively simple to implement. For example...
Black Hole = Hyperdrive / Zero Point Reactor
Star = Fusion Rocket / Reactor / Radiators
forming a scale from blue "giants" as high thrust, high isp, down to Brown Dwarfs as low thrust low isp
Gas or Ice "giant" = Reaction Mass / Coolant
Water gives, I believe, roughly three times as much thrust but a third deltaV as hydrogen. Much better as coolant
Rocky Planet = Mass Driver
Both a weapon and tool, mass drivers are a must in any space sim! Used to collect and launch cargo and weapons!
Moons and Asteroids = Cargo (smaller ships built the same way as the larger) and dumb ammo respectively
The mining system that follows is that you can absorb a little bit of whatever celestial object you are currently on. So to gather ammo for your mass driver you would land on a rock, to gather hydrogen or water you would fly through a Jovian atmosphere or land on a comet, to charge up your fusion rocket you would need to buzz a star... no need to alter the actual celestial body or leave any trace you were there. Gathering a few tonnes of hydrogen won't dent a Gas Giant and even a small asteroid won't miss a hundred kilos of gravel!
The crafting system would be interconnected with the thermal management system... you essentially need to apply or dissapate energy depending on what you are crafting. That is also why I figure using a mini-star as the reactor and radiators makes sense... doing anything involving lots of energy will be highly visible from anywhere within a solar system... the mechanism for that is built in already, so use it! Each individual component has both a temperature and a brightness... the engine also calculates how much light is shining on the ship... so you need to be in the shade to cool down and in the sun to heat up, absent any other kind of control. I say give a bit of albedo (brightness) control for thermal management and use the heat to craft. Heat a mini-jovian to make a mini-star, cool a star to make a mini-jovian... for rocky bodies you could simply use the temperature range for life to allow the conversion of one object to another (break a moon into asteroid, combine asteroids into moon...). The brightness ratio of every object within the ship would be adjustable to represent heat flow between the various components, a mini-ice planet would be as important to crafting as a mini-star, but a mini-black hole would do both!
So... that's the basic pseudom-math description of my ship design process (add noise functions and you've got trillions of different ship designs!)... now how to make this jumble look anything like a ship?! Well... it won't be a "ship" in the traditional sense but rather a Nanotech "Von Neumann Machine" in any of several configurations. I like the "Bush Robot" idea myself, but a cloud of Utility Fog or just an ovoid pod work just as well. You could start the game with just a pod, a single spheroid object of a whatever type you want for the kind of gameplay you have in mind (black hole for instant god mode exploration, single mass driver for a little pod that can only roll around until it finds energy and reaction mass), but I think starting with a bit of everything would work best.
For the Bush and Cloud the process is almost identical, with just a single extra step for the bush. Once you have more than one kind of pod in your "ship cluster" (your little pebble rolled out of the shade and into a puddle, now you have a pebble and a raindrop!!) you determine the most massive object and treat it as the "star" in the mini solar system. Put the "planets" (that are just the next tier of objects in terms of mass and can be any type of mini-celestial object) in a spherical shell around the star, able to take arbitrary positions anywhere on the imaginary surface. Draw a line (the same as the vector arrows on planets but in miniature) connecting each mini-planet to the mini-sun. It should look like it has arms! Now add the next tier of objects as moons around each planet, with connecting lines the same way as the planets around the sun and it has fractal arms that you can animate procedurally! I figure you would point the relevant mini-planet at the target for whatever action and then just randomly swirl it's moons around, so aim the mini-ice planet in the direction you want to apply thrust and spin up any moons associated to it. The asteroids can just form a spheroid haze like a nini-nebula or a solid spheroid, depending on how you want your Neumann to look and the LoD. If you want a simple ovoid pod look for your ship then just lock all the moons and planets positions at 0 and form the asteroids into an egg shape around the barycenter to form a fat nosed pod.