this looks so cool, i can't wait to see what you do with this game :) with something like this i think it would be cool to see cosmic megastructures like an interplanetary elevator or dyson sphere, where you can actually visit/land on them and see the smaller components making up this colossal artificial structure
@@augustine6683 This is what is done. There is no problem on the rendering side but there may be floating point accuracy issues for generation since the planets are real size.
Damn, it has so much potential, a game with space travel where you can visit realistic 1:1 scale planets/moons/asteroids AND WALK ALL ACROSS THEM without any loading screens would be very fucking cool
holy, i would love to see this with the standard qubic voxels. To also see a hose being built at an angle because of the place of the planet(romboid voxel) XD.
Yes, it wouldn't look right if I made cubic voxels. I know some people make planets out of cubes projected onto a sphere so that there are 6 oriented planes where you can build normally. But there are a lot of distortions with this method.
Star Citizen isn't 1:1 scale mostly because 1:1 likely wouldn't be as fun for most players as it may seem at first glance. The planetary bodies are 1:6 scale which still gives the sense of scale but might help with density of points of interest, and the distances between them are 1:10 which removes the need for FTL travel between bodies yet still is far enough that people can complain about the time it takes to go from one planet to another.
Thanks :) I'll probably upload more previews but there's no set schedule. I have a Twitter account and a Discord server for my game but they're empty and I don't want to manage too many people at the moment.
Oh, just under bevy 0.14 with its new features ( similar to nanite in UE ). This works fine, but how does the video card read the coordinates? Architecturally it can only read f32. Is there a conversion at some points?
I don't use Bevy's new Virtual Geometry feature for this. The GPU still reads f32 as you said, but I'm using a floating origin (big_space crate), which means the inaccuracy occurs far out in the distance, so it's imperceptible.
Imagine combining this with a game called Space Engine. It’s technically more like a software. If you are not sure what it is you can look up “space engine”. Just to be clear I’m not talking about space engineers.
I'm currently developing my game, which will be a voxel-based space exploration game on a 1:1 scale. The graphics will be inspired by Starbound and Astroneer.
@@Lemonzy you used exponential acceleration in the demo, do you intend to do something similar for travel? i think the hardest part of 1:1 exploration of space is the amount of time it can take to move between celestial bodies. It sounds like an awesome idea, and you have a beautiful demo here, so i wish you good luck!
@@robot7338 I've already thought about this problem and will probably use exponential acceleration. What I want is for travel to be something planned for the player (like having enough food) because it won't be something fast. It will be possible to walk around your ship while it's in autopilot mode. I'm not sure, but travel times will be roughly the same, depending on the ship's stats and a little on distance (maybe 5 minutes? I haven't decided yet).
@@Lemonzy This is EXACTLY the sort of thing that motivated me to start learning game development. I even wanted to use Rust. But I went with UE5 because I wanted to actually learn to make games first, then worry about all the hard work of coding later.
I don't know if I will do a tutorial, but I can explain the main ideas here: - LODs are determined by using an octree whose nodes subdivide until a certain condition is no longer true (depending on the inverse of the distance between the center of the node and the camera position) - LOD 0 is the most detailed LOD - If a node is a leaf, request the generation of this chunk (chunks are always 32x32x32 voxels, but the higher the LOD, the greater the distance between sampling points). - When a chunk is generated, request a mesh for it. I use the naive surface nets algorithm for this. Currently, there are gaps between LODs and no physics, which I plan to adress at some point.
@@Lemonzy cool. I am also trying to make a space game (more in the direction of ksp) and don't yet know how I will manage planets. But that will have to wait, I am currently testing different methods of simulating internal forces, so whatever the players will build can get squished, stretched and break apart. Funny enough I also use Voxels for this, but I will have to store them somehow xD
If you're talking about the red cube, it would work fine because it's not made of voxels, it's just to show the scale. If you say the voxels should be 1cm³, my code isn't optimized for such scales and your PC would explode.
@@DwAboutItManFr haha, I don't know if I'll take up your challenge as I don't envisage having such precision for the terrain. Maybe one day, we'll see...
Do you mean they're not voxels because they're not blocks like in Minecraft? Voxels can be anything you like, as long as they're values stored in a grid. For example, Astroneer, No Man's Sky and many other games use voxels, but they don't look like cubes.
@@thegoldenatlas753 Marching cubes is only the most widely known algorithm for generating meshes from voxel data. In fact, I don't use it, but the naive surface nets algorithm.
Really, really impressive
Finally, a game that can render your mom
Just barely, though.
@@NotoriousBlake nah, i don't think that's enough
this looks epic !!! Can't wait to see your progress on this :>
thanks :)
the landscape forming over the horizon is so nice
this looks so cool, i can't wait to see what you do with this game :)
with something like this i think it would be cool to see cosmic megastructures like an interplanetary elevator or dyson sphere, where you can actually visit/land on them and see the smaller components making up this colossal artificial structure
we just found who'll make the dream KSP2 never reached possible
Beautiful!
lmao why are you here
would be interesting to see the memory usage too
I think no mans sky potential was never fully realized.
Floating point errors boutta kill this man
yes
If you have the camera/player be the origin and instead move the world around the camera/player then floating point errors shouldn't be a problem.
@@augustine6683 This is what is done. There is no problem on the rendering side but there may be floating point accuracy issues for generation since the planets are real size.
Just add more bits, duh
It is interesting how this effects simulation. Especially for stuff far away from the player, if you would implement such things.
Damn, it has so much potential, a game with space travel where you can visit realistic 1:1 scale planets/moons/asteroids AND WALK ALL ACROSS THEM without any loading screens would be very fucking cool
You would even be able to dig through them as they are entirely built of voxels
space engine
basically space engine but it's an adventure game
Space engine(ers)
@@Lemonzy Which engine are you using?
Congrats on making the algorithm happy early!
It's wild!
Wow, it's so seamless! Gorgeous.
This is insane, would love to see some videos about how you programmed this as I'm sure would others!!!
thats just nuts man
SPACE ENGINEERS!!!
really awesome, is there an end goal for this, as in a larger project? or is this just a quick test you did?
Thank you! As I said in other comments, this is the start of my voxel-based space adventure game inspired by Starbound and Astroneer.
Subbed. I gotta see the final product.
Thats so cool. Good job!
Holy shit! Thats incredible
This is Genuinely impressive, And so smooth! What engine are you using that can support this?!
Edit: you just got yourself another sub
Thanks :D I use Bevy, a game engine coded in Rust. I also use a library (big_space) to handle the floating origin needed for such scales.
woah
holy, i would love to see this with the standard qubic voxels.
To also see a hose being built at an angle because of the place of the planet(romboid voxel) XD.
Yes, it wouldn't look right if I made cubic voxels. I know some people make planets out of cubes projected onto a sphere so that there are 6 oriented planes where you can build normally. But there are a lot of distortions with this method.
@@Lemonzy Hexagonal voxels? piramidal?
Amazing! How did you handle floating point issues?
I use a floating origin, provided by the big_space crate.
im gonna get fuckin megalophobia oh my god
that is legitimately terrifying
😅
we need more 1:1 scale space games and your helping ‼️
(the only other game with 1:1 scale stuff is star citizen which is a game i love)
Don't forget about Space Engine! (Probably doesn't count since it's not really a game)
Star Citizen isn't 1:1 scale mostly because 1:1 likely wouldn't be as fun for most players as it may seem at first glance. The planetary bodies are 1:6 scale which still gives the sense of scale but might help with density of points of interest, and the distances between them are 1:10 which removes the need for FTL travel between bodies yet still is far enough that people can complain about the time it takes to go from one planet to another.
looks stunning!
Is there a way to learn more about this project? will you upload more previews?
Thanks :) I'll probably upload more previews but there's no set schedule. I have a Twitter account and a Discord server for my game but they're empty and I don't want to manage too many people at the moment.
Wow, just wow.
YOU DID WHAT
now make Kerbal Space Program 3
haha, it won't be the same as any KSP
Star field is not taking notes rn
Curious about the implementation. Are there any references you could link?
Oh, just under bevy 0.14 with its new features ( similar to nanite in UE ). This works fine, but how does the video card read the coordinates? Architecturally it can only read f32. Is there a conversion at some points?
I don't use Bevy's new Virtual Geometry feature for this. The GPU still reads f32 as you said, but I'm using a floating origin (big_space crate), which means the inaccuracy occurs far out in the distance, so it's imperceptible.
Amazint!
Imagine combining this with a game called Space Engine. It’s technically more like a software. If you are not sure what it is you can look up “space engine”. Just to be clear I’m not talking about space engineers.
It's not really possible to combine them, but yeah I know Space Engine, it's great.
What are you making?
I'm currently developing my game, which will be a voxel-based space exploration game on a 1:1 scale. The graphics will be inspired by Starbound and Astroneer.
@@Lemonzy sounds awesome!
@@Lemonzy you used exponential acceleration in the demo, do you intend to do something similar for travel? i think the hardest part of 1:1 exploration of space is the amount of time it can take to move between celestial bodies. It sounds like an awesome idea, and you have a beautiful demo here, so i wish you good luck!
@@robot7338 I've already thought about this problem and will probably use exponential acceleration. What I want is for travel to be something planned for the player (like having enough food) because it won't be something fast. It will be possible to walk around your ship while it's in autopilot mode. I'm not sure, but travel times will be roughly the same, depending on the ship's stats and a little on distance (maybe 5 minutes? I haven't decided yet).
@@Lemonzy This is EXACTLY the sort of thing that motivated me to start learning game development. I even wanted to use Rust. But I went with UE5 because I wanted to actually learn to make games first, then worry about all the hard work of coding later.
more please hi
Egui enjoyer
I'd even say bevy-inspector-egui :)
this is too good, can u make tutorial? or explain how it works
I don't know if I will do a tutorial, but I can explain the main ideas here:
- LODs are determined by using an octree whose nodes subdivide until a certain condition is no longer true (depending on the inverse of the distance between the center of the node and the camera position)
- LOD 0 is the most detailed LOD
- If a node is a leaf, request the generation of this chunk (chunks are always 32x32x32 voxels, but the higher the LOD, the greater the distance between sampling points).
- When a chunk is generated, request a mesh for it. I use the naive surface nets algorithm for this.
Currently, there are gaps between LODs and no physics, which I plan to adress at some point.
@@Lemonzy what rendering method you are using? Is it raytracing on gpu?
@@Lemonzy ooh you are using bevy? Nicee
@@OmarDevX yep I use Bevy! No raytracing, it’s rasterized.
@@Lemonzy ok thx for the information :)
woa :o
is that rust??? im seeing Egui here
Yep, Rust and Bevy!
how do you store the data? or is it procedurally generated using a algorithm when needed?
Nothing is stored, it's generated each time. I intend to store player modifications only.
@@Lemonzy cool. I am also trying to make a space game (more in the direction of ksp) and don't yet know how I will manage planets.
But that will have to wait, I am currently testing different methods of simulating internal forces, so whatever the players will build can get squished, stretched and break apart.
Funny enough I also use Voxels for this, but I will have to store them somehow xD
@@mz00956 Wow! the internal force system sounds really cool! Good luck :D
Is this in a custom engine too?
I use the Bevy engine.
@@Lemonzy I was thinking about using Bevy, but for now my main project is making a Vulkan editor with cpp
Good luck!
What if the square was 1cm³?
If you're talking about the red cube, it would work fine because it's not made of voxels, it's just to show the scale. If you say the voxels should be 1cm³, my code isn't optimized for such scales and your PC would explode.
@@Lemonzy Speaking about the crimson hexahedron.
@@Lemonzy I challenge you to optimize it them just because i like it. : )
@@DwAboutItManFr haha, I don't know if I'll take up your challenge as I don't envisage having such precision for the terrain. Maybe one day, we'll see...
@@Lemonzy I enchallenge you to envisage it.
now modify the volume.
It's on my todo list ;)
planets arent look voxel
Do you mean they're not voxels because they're not blocks like in Minecraft? Voxels can be anything you like, as long as they're values stored in a grid. For example, Astroneer, No Man's Sky and many other games use voxels, but they don't look like cubes.
@@Lemonzy ok
@@Lemonzy Yea but don't we usually call non cubic voxels, marching cubes?
@@thegoldenatlas753 Marching cubes is only the most widely known algorithm for generating meshes from voxel data. In fact, I don't use it, but the naive surface nets algorithm.
Well that's pretty cool
Thank you lemon brother!