@The original post: This could work if the terrain was all smoothed with wedges and corners and what-have-you, but... I think there are better solutions.
It seems like one of the biggest reasons we can't have this type of generation of planets is because ships around the planet wouldn't be able to interact properly with it. In reality, wouldn't most weapons and things fired at a planet be destroyed in the atmosphere?
It seems like one of the biggest reasons we can't have this type of generation of planets is because ships around the planet wouldn't be able to interact properly with it. In reality, wouldn't most weapons and things fired at a planet be destroyed in the atmosphere?
I'm afraid I'm going to have to disagree with you on that one. =P there are still some people out there doing a lot of work on planets.
We all know planets aren't perfect now, but I don't think we need any huge drastic changes in order to make them more acceptable to everyone. I think even something as simple as increasing the distance of the atmosphere from the surface and giving it density (so it slows you down on entry) would help slow down the approach to planets, allowing them to be loaded in.
Maybe find a way to generate a texture of the planet's surface which then fades away as you enter atmosphere. That way it wouldn't be the one texture per planet type, so would be accurate from space to that planet's geometry. This part I'm a bit iffy on, as it was just a quick idea, but I think there are subtle tricks which could be done to help make planet's a more viable option for everyone in the future.
I'm afraid I'm going to have to disagree with you on that one. =P there are still some people out there doing a lot of work on planets.
We all know planets aren't perfect now, but I don't think we need any huge drastic changes in order to make them more acceptable to everyone. I think even something as simple as increasing the distance of the atmosphere from the surface and giving it density (so it slows you down on entry) would help slow down the approach to planets, allowing them to be loaded in.
Maybe find a way to generate a texture of the planet's surface which then fades away as you enter atmosphere. That way it wouldn't be the one texture per planet type, so would be accurate from space to that planet's geometry. This part I'm a bit iffy on, as it was just a quick idea, but I think there are subtle tricks which could be done to help make planet's a more viable option for everyone in the future.
Haha! I thought you *cought* because you didn't do anything on planets. I still do wuite a lot of stuff on or near planets, like FTL from planet to planet. Trust me, there is nothing better than watching yourself zoom past a planet in your FTL effect.
And on the thread topic:
And these kind of threads always come back on the same thing: optimise. It's getting a little old now.
Link to the reddit thread contains Schema comments about this type of planets. Well, it would be lovely, to have this kind of massive, realistic planets, but not much gameplay wise.
Erm, Let's see. go through all x and z and pull the top block's texture. Whatever the main color is, use it for that pixel. When the top block changes, change the pixel. Also, planets should be pregenerated (Basically, the server has a couple premade planets for whenever someone wanders into a planet sector.)
Ah. Where is @NeonSturm when you need him. Also, it would be nice if an actual schine member to comment on whether or not it is a good idea and why.
One problem that might occur is inaccuracy of weapons, so maybe not.
But keep them the way they are! Sure, round planets are cool, but there is nothing like a good segment jumping to make your day.
Blame my ISP. I was a three days without inet and it was horrible!
After they delivered me a broken update, I have to use a live-CD because the only browser on my second system (a pre-installed GOOGLE! chromium) cease to work, firefox opens in Gedit instead of being executed and my main system loops with restarting/crashing the X-server every 2 seconds without letting me use a console...
This has to get into starmade in some way, shape, or form. Current planet mechanics (not just the planets themselves) don't cut it. There are too many planets and they're not valuable enough. They should be rarer, bigger, and create the illusion of being round rather than segmented. Jumping across segments is wonky. The segment divisions shatter immersion. You can never have a true, round planet in a block game, but you can certainly create the illusion of one.
I have no wish to insult the work everyone has done on the current planets. Having some experience with programming myself, I imagine the code behind them is probably pretty impressive. They were a great idea. They just... I don't know. Somehow they're not satisfying. They don't feel alpha. They just feel wrong. The whole idea is flawed, cool as it is.
Here's my idea. Make planets approximately fill the sector in size (as in atmosphere nearly reaches the edges of the sector and the planet itself is maybe 250m below the surface. Allow only a few planets per system. Optimize terrain generation brutally. Then create an illusion of being spherical.
From space, the planet would look something like this:
The texture on each face would be generated from a highly-pixelated top-down image of each segment. Segments that have not yet been generated would have procedural textures that resemble the way the natural surface would generate.
When on the surface, only one or two segments would be loaded as blocks. As such, they can reasonably approximate the planet's shape by being flat. The crossover between segments is not perceptible.
See the problem yet? Those segments on the wireframe get narrower farther from the poles. From sub-actic region to sub-antarctic region, pretending the sphere is a cylinder and keeping segments the same size works. When you enter the atmosphere, the game still just has to load the right segment under you and adjust the speed at which it passes. This adjustment will not break immersion, and isn't any weirder than the fact that the shortest route for Charles Lindbergh was to constantly change his compass heading, making it feel like he was taking a curved path across a flat plane when in fact he was minimizing the length of a curve across a sphere.
The poles are where this gets weird. The best thing I can think of is that when you loaded up to the top of the "cylinder," the next chunk loaded would be the one on the other side of the cylinder at the top. This may break immersion for some players, since the north and south poles of the planets will be more or less intangible or be several different places at the same time... (Excuse me while I go reassemble my brain as it just exploded everywhere.) However, I think this is still a good compromise between what is possible with blocks and what feels real over the vast majority of the planet's surface.
Quick solution for poles: Say the magnetism at poles scrambles the ship systems and causes an immediate and utterly deadly crash on the pole surface if you get too close, so the on-board computer prevents a polar approach. It's nonsense, but we've seen that sort of silliness in various media and just swallowed it whole to get on with the plot.
Maybe if you approach the pole, the game insta-teleports you to the nearest non-pole segment. Or maybe to any random segment, saying that the pole's magnetism threw off your ship's guidance system.
Alternatively, the devs could keep working on optimizations to the existing dodecahedron planets, and then increase the number of sides to an awe-inspiring count of 62 (and correspondingly reducing the awkward angle between sides) by using... wait for it... a truncated icosidodecahedron (I don't even know where to begin pronouncing that.)
@Valiant70
I think entirely round planets are possible. If the current planet crust depth remains the same, and the smallest planets were 250m radius or more, the "block overlap" would be quite small and hardly noticeable without a giant salvager. Below the crust there could be a solid mantle just like there is with the current planets (my favorite feature of the current planets)
Also, the increase/decrease in size of blocks could stop just after the highest point of terrain, that way people could still build space elevators without them being strange looking.
This has to get into starmade in some way, shape, or form. Current planet mechanics (not just the planets themselves) don't cut it. There are too many planets and they're not valuable enough. They should be rarer, bigger, and create the illusion of being round rather than segmented. Jumping across segments is wonky. The segment divisions shatter immersion. You can never have a true, round planet in a block game, but you can certainly create the illusion of one.
I have no wish to insult the work everyone has done on the current planets. Having some experience with programming myself, I imagine the code behind them is probably pretty impressive. They were a great idea. They just... I don't know. Somehow they're not satisfying. They don't feel alpha. They just feel wrong. The whole idea is flawed, cool as it is.
Here's my idea. Make planets approximately fill the sector in size (as in atmosphere nearly reaches the edges of the sector and the planet itself is maybe 250m below the surface. Allow only a few planets per system. Optimize terrain generation brutally. Then create an illusion of being spherical.
From space, the planet would look something like this:
The texture on each face would be generated from a highly-pixelated top-down image of each segment. Segments that have not yet been generated would have procedural textures that resemble the way the natural surface would generate.
When on the surface, only one or two segments would be loaded as blocks. As such, they can reasonably approximate the planet's shape by being flat. The crossover between segments is not perceptible.
See the problem yet? Those segments on the wireframe get narrower farther from the poles. From sub-actic region to sub-antarctic region, pretending the sphere is a cylinder and keeping segments the same size works. When you enter the atmosphere, the game still just has to load the right segment under you and adjust the speed at which it passes. This adjustment will not break immersion, and isn't any weirder than the fact that the shortest route for Charles Lindbergh was to constantly change his compass heading, making it feel like he was taking a curved path across a flat plane when in fact he was minimizing the length of a curve across a sphere.
The poles are where this gets weird. The best thing I can think of is that when you loaded up to the top of the "cylinder," the next chunk loaded would be the one on the other side of the cylinder at the top. This may break immersion for some players, since the north and south poles of the planets will be more or less intangible or be several different places at the same time... (Excuse me while I go reassemble my brain as it just exploded everywhere.) However, I think this is still a good compromise between what is possible with blocks and what feels real over the vast majority of the planet's surface.
See all of those "pie slice" triangles surrounding the polar convergence point (a.k.a. pole)? They add up to a roughly circular segment... Sure, it'd give planets a flat top/bottom, and the poles would be rather laggy due to the huge circle segment, but otherwise it should work.
Also, the interesting thing about your model is that the larger the planet gets, the less awkward the borders between segments become... And the smaller the polar segment has to be!
Well, my idea was more to keep everything flat and square and have planet loading use some degree of relativity client-side. In other words, there would be no overlap! I suppose it wouldn't be too bad to have one awkward crack to jump over near each pole, but it would complicate the coding somewhat as the idea I had results in a completely different behavior from the way the current engine loads things.
What I had in mind is obviously really complicated and would require some major additions to the engine, but on the other hand the results would be really amazing. Remember that our own universe operates in relativity.
What I had in mind was more like this: each player sees the spot he/she is standing on as flat, and everything loaded as a continuous, flat square. The universe-relative angle at which the player stands is the same as if he/she were actually standing on a sphere, thus approximating the player walking on a sphere without block distortion! Relativity comes into play when two players are within visual range of each other. Each player sees all others on the surface as if they were standing on the same plane.
When a ship enters the atmosphere, a similar effect comes into play. The ship actually keeps its universe-relative angle and tracks the surface as if the point directly under it were flat. Players see the ship's angle as if it had the same angle relative to their own plane as it has to its own. In other words, everyone sees the ship as having the same angle to the surface while it is within the atmosphere.
Again, this is complex and difficult to do, but I think it is feasible. Whether or not Schema wants to put THAT much work into the engine to make it work is the question. The issue still remains what exactly to do at the poles. Given the obvious issues, I personally wouldn't mind having a bit of weirdness at the transition between normal and polar areas. The poles could be one segment and overlap with non-polar terrain. However, if my idea is implemented, the overlap will be in a perfectly flat plane, meaning there's no need to hop over it!
TL;DR - everyone's client pretends the loaded part of the planet is flat, and each object close to the planet keeps track of its angle relative to the surface directly below rather than relative to the universe.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.