Follow PlanetSmith on Kickstarter! www.kickstarter.com/projects/incandescentgames/planetsmith If you have ideas for what rewards you would like to see leave them here or come to our Discord.
Man that sun moving behind the building at the end was gorgeous, you guys have created something truly amazing! Keep up the great work these videos have become one of my favourite things to see come up on my feed!
Bro I hate that every time you say to subscribe I look down to subscribe to you and then realize I can't cuz I already have which sucks. Im so excited for this game bro
my #1 ask for this game is having villager-like npcs with deeper AI -- needs they want to fulfill throughout the day. I love building cities in minecraft, but they feel so dead, I wish villagers could interact with the city on a deeper level. Working taverns or going to taverns for food, going to wells for water, going to their job, their job posting requests to other jobs (e.g. the tavern is out of bread, need the farmer to bring wheat). Behaviors changing in the rain, or snow, or when a threat appears. Providing context for the architecture is hugely important for me. That would make this the ultimate builder game imo
@@scaffus-- I have, and while there are a lot of good things about it, it suffers from being very resource intensive and slow. Also, how to integrate minecolonies into player build is kind of obscure, which stacks on top of the info dump needed to start using them. Not the best solution, especially if you don't center your base on it.
The first method is actually used in No Man’s Sky which has millions of planets. So if you plan to add procedurally generated universes then you should use that method in the future.
I think that at some point, I would love to see some mechanics that really make good on the promise ohe title and let you interact with the planet as a whole. I would, for instance, be dissapointed as a player if I couldnt dig a hole straight through the planet and jump into it. It would be one of the first things I tried!
The mechanism of the world generation and handling does limit your digging depth -- but then, in the real world that would be true also. If pressure and heat don't stop you, running out of crust and hitting the mantle certainly would.
@@autochton Thats true, but it doesnt have to be totally honest! If you reach the bottom, maybe placing a specific item lets you warp to the deepest point on the exact opposite side, and it can fake the effect. So long as it fulfills the fantasy
@@jennareynolds1403 I'd actually prefer if it was realistic, in the sense that digging deep enough just has you hit indestructible magma. Then again, minecraft's bedrock also isn't too bad as a "end of play area" boundary. Most real planets aren't Dyson Spheres. Then again, maybe as an easter egg, a small percentage could be.
Wow, I didn't know saving was so complicated :0, I expected it to be difficult, but not that much... By the way, I have two questions: 1. How often is the game saved? 2. Minecraft also has 20 ticks per second. Did you choose it that way because since it works in mc, do you assume it will work here too, or because it is the number with the best balance between performance and quality? One last thing 😅 it would be cool if you could change the tps with a command Thanks for making this amazing game ken ❤
I experimented with difrent setting but yes MC choose 20. That's fast enough you don't notice and you want it as slow as possible. Game is saved whenever anything changes. Place a block -> save, Delete a block -> save
@@IncandescentGames personally i notice the 20 tps in minecraft a lot, especially in multiplayer and moving around on server controlled entities like minecarts and horses. id much rather see it higher than 30, modern PC's can handle higher than 20 nowadays anyway
In UI design work, we have a few magic numbers to do with perception and reaction time. The first one is 100 milliseconds, or 1/10th of a second. If the reaction to a user action occurs within that time, it is perceived as instantaneous. Your brain basically goes "oop, that's fast enough I think this was no time at all", and you're good. The next is 300 ms, or 3/10ths of a second -- that's when your brain starts disconnecting actions and reactions. Something happening that long after you clicked is going to make your brain not sure the two were connected, and can lead to doubled inputs etc. So if it takes, let's say, 50 ms to place a block and see it appear, then your brain considers it instantaneous. If it takes 150ms or 200ms, you'll see it as a somewhat slow reaction to your action, enough to be noticeable. If it takes 350ms, instead, still less than half a second, your brain starts to not be sure the block was placed because you clicked then and there. So a 50ms tick length is actually pretty ideal for this sort of update cycle, as it means that even if it were to take two ticks to complete, your brain still picks it up as instant, and a process that takes longer to show results you can make gradual updates over ticks to make it flow according to the perception of it you want.
@luminance69 Minecarts and horses on a sever are handled different to how blocks are. Any inputs regarding block changes get first applied to your own _local_ game instance and THEN synced to the _server_ (or the server may say "nah, I didn't ever get any note of that stone block being broken, your local copy must be wrong" and the changes you thought you successfully did during a lag spike get "undone" by being synced from the server to the client). While any inputs to minecart movement get transferred as "commands" to the _server,_ who calculates how the entity moves, and your _local_ client only gets informed of the outcome by having the position synced from the server. Or in other words, entities don't actually "run" at that tick speed of 0.05 but at the speed of your ping. Source: I had very bad ping for a while and ample opportunity to observe the "you press forward on a boat and it starts moving 1.5 seconds later" kinds of effects.
1:55 Hm, the biggest issue is that you're working with hexagons which are ever so slightly more complicated than squares, it also depends on the shape of the chunks. You could try an oct-tree where each hexagonal block is either naturally generated or placed by the player, then if it is placed by a player, it will just store directly what is in it, and if it's natural it will get generated.
@@nati0598 Okay, but how is saving the state of the world different from the state of "the entire thing?" Maybe I forgot something you're referencing in the video?
I am very happy to see this grow ! If I can, for sure I will be on the streams, else will do you stream replay ? Like on youtube (maybe special channel or here idk). As always, love your work !
What's that globe in the bottom corner? Is that your minimap/navigation aid? If yes, it should probably rotate to keep the view direction of the player pointing up and show north/south via a rotation axis through the planet. (Or at least I would prefer that option over a player symbol with directionality. - Which is strange because for 2D navigation I prefer "north up" minimaps.)
Yeah, it's the 3 tiles on the hexagon having different brightness (and the light side tile lining up with the bright indoor of the threshold). Maybe each tile should instead have a bright and dark "side", with that shading being more pronounced than the difference between the tiles.
You could keep track if the player has made any changes in a chunk, and if not then don't save that chunk. It should be pretty simple and provide massive decrease of the file size.
Would you benefit from storing the zone as a SQLite database, with chunks stored as blobs inside the DB? That might be able to give you better incremental saves, if you know what subset of chunks changed inside a zone. You should also be able to replace gzipping the whole zone file with sqlite-zstd.
I have been making games since 2012, Released 3 solo projects on Steam/mobile already, LogicBots, Globesweeper & Globesweeper: Hex Puzzler. I'm self taught I actually did a Chemistry degree!
Out of curiosity, is it better to only save changes made to a chunk (e.g blocks placed and broke) and then generating each chunk (whether the player has or has not discovered that chunk) but if chunks has been visited and there for has changes, apply the changes to the chunk?
why don't you ignore the blocks that match with the seed's natural blocks, and only store the values of where and what blocks were placed or broken? this way, it might put the world's file sizes in the house of hundreds of kilobytes or a few megabytes (even uncompressed)
The difference would be tricky and expensive to compute, I think. Unless you store the change set as it's created, you'd have to run a difference algorithm against the generated chunk (which you'd need to store or regenerate for this), by comparing all the blocks to their counterpart in the rendered world. That would require just over 130,000 comparisons per chunk, and there's a lot of chunks just within render distance...
@@autochton To store that change set as it's created, I'd keep one "is changed" bit and save everything where that bit is true, even if it's changed back to what it was initially. But that requires another precious bit per block (or at least sub-chunk, but then you don't gain as much of a file size benefit) while the chunk is in memory. Or as you said, keep the changes in memory as a change set, but then but then you'd need to store that whole change set in memory (which may be the whole size of the chunk) _in addition to_ the initial state of the chunk, AND every lookup gets twice as complicated to write (and probably takes twice as long). And I don't know how much slower re-generating the unchanged parts of the chunk is than loading the whole thing (it might even be faster instead of slower...).
The other problem with only saving changes? As soon as you make an update to the game that changes worldgen, suddenly the player's base is inside a mountain or floating in mid-air Interesting that you called it a zone instead of a region, as Minecraft calls it; was there a particular reason?
@@alyti I have trademarked the name "Legally Distinct Naming". Please use a descriptor that is different enough to avoid customer confusion in the future, or my legal team will have to serve you with a cease and desist. Thank you for your cooperation. ;P
as someone who has played minecraft for over half my life, i must beg you to make the tick rate more than 20 tps. even 30 tps isnt that great, personally id love 48, 60 or 72, since those are highly composite numbers
What's the advantage of higher tps? The reason to keep them low is it smooths out long calculations to avoid lag. If tps is too high you will get lag spikes. It is something I can make a settings option though.
@IncandescentGames oh, glad to know! I thought of watching the stream after it was recorded, but in the moment I couldn't. Now I'm curious of what you and the chat have done there :)
@@IncandescentGames Is survival going to be the typical "defend yourself against monsters" kind of deal? I just thought it would be a cool dichotomy if you were an entity with god-like powers whose role in the world is to literally create planets and life, but you have to feed on the life you created in order to be able to survive and continue creating beautiful places. *_You_* are the monster, sucking the blood from cute scared critters. [edit:] ...or at least if that's one possible game mode. It'll probably not be to everyone's taste.
When will you add texture pack support because the default textures that you are using is not as vibrant and colourful and looking kinda dull. And in this kind of game where you have to play hours to progress no one will consider a dull looking environment to watch for hours
Follow PlanetSmith on Kickstarter! www.kickstarter.com/projects/incandescentgames/planetsmith If you have ideas for what rewards you would like to see leave them here or come to our Discord.
I love the HUD element of the planet map you added in the bottom right!
This is a nice birthday present. I mean, it's not created specifically for me, but it's nice, and it's my birthday.
That torch fire effect looks fire 0:08
it was featured in a previous video yeah!
it indeed *is* fire
Caveman correctly identifies heat and light source
Imagine if it looked water
House did NOT say that! 😭🙏
🦁
I'm just impressed by the fact that this game looks amazing, it's actually so unique!
Man that sun moving behind the building at the end was gorgeous, you guys have created something truly amazing! Keep up the great work these videos have become one of my favourite things to see come up on my feed!
I think it’s just one guy lol
Bro I hate that every time you say to subscribe I look down to subscribe to you and then realize I can't cuz I already have which sucks. Im so excited for this game bro
Same
my #1 ask for this game is having villager-like npcs with deeper AI -- needs they want to fulfill throughout the day. I love building cities in minecraft, but they feel so dead, I wish villagers could interact with the city on a deeper level. Working taverns or going to taverns for food, going to wells for water, going to their job, their job posting requests to other jobs (e.g. the tavern is out of bread, need the farmer to bring wheat). Behaviors changing in the rain, or snow, or when a threat appears.
Providing context for the architecture is hugely important for me. That would make this the ultimate builder game imo
They should also remember how you're treating them!
look up tektopia
Have you tried the mod minecolonies?
@@scaffus-- I have, and while there are a lot of good things about it, it suffers from being very resource intensive and slow. Also, how to integrate minecolonies into player build is kind of obscure, which stacks on top of the info dump needed to start using them. Not the best solution, especially if you don't center your base on it.
There should also be more advanced spacefaring archetypes.
The Minecraft inspiration is quite strong, I see, even on the technical side :)
Keep up the good work!
The first method is actually used in No Man’s Sky which has millions of planets. So if you plan to add procedurally generated universes then you should use that method in the future.
This game is so beautiful.
thanks Sebastian for the membership :D
I think that at some point, I would love to see some mechanics that really make good on the promise ohe title and let you interact with the planet as a whole. I would, for instance, be dissapointed as a player if I couldnt dig a hole straight through the planet and jump into it. It would be one of the first things I tried!
The mechanism of the world generation and handling does limit your digging depth -- but then, in the real world that would be true also. If pressure and heat don't stop you, running out of crust and hitting the mantle certainly would.
@@autochton Thats true, but it doesnt have to be totally honest! If you reach the bottom, maybe placing a specific item lets you warp to the deepest point on the exact opposite side, and it can fake the effect. So long as it fulfills the fantasy
@@jennareynolds1403 I'd actually prefer if it was realistic, in the sense that digging deep enough just has you hit indestructible magma. Then again, minecraft's bedrock also isn't too bad as a "end of play area" boundary.
Most real planets aren't Dyson Spheres. Then again, maybe as an easter egg, a small percentage could be.
"uploaded 58 seconds ago" that's officially the fastest a video has ever shown up in my feed
Same bro, I was like 55 seconds ago, dang
But my real question is if this was made less then 10 min ago, then how are there comments from 7 hours ago, is it something I don’t know?
Members get early access to videos
@@IncandescentGames ahh of course
You should implement momentum based player movement
That would be awesome if he decided to implement Newtonian (or semi-newtonian like KSP) space travel
I didn't know you were this amazing at building
Wow, I didn't know saving was so complicated :0, I expected it to be difficult, but not that much...
By the way, I have two questions: 1. How often is the game saved? 2. Minecraft also has 20 ticks per second. Did you choose it that way because since it works in mc, do you assume it will work here too, or because it is the number with the best balance between performance and quality?
One last thing 😅 it would be cool if you could change the tps with a command
Thanks for making this amazing game ken ❤
I experimented with difrent setting but yes MC choose 20. That's fast enough you don't notice and you want it as slow as possible.
Game is saved whenever anything changes. Place a block -> save, Delete a block -> save
@@IncandescentGames personally i notice the 20 tps in minecraft a lot, especially in multiplayer and moving around on server controlled entities like minecarts and horses. id much rather see it higher than 30, modern PC's can handle higher than 20 nowadays anyway
In UI design work, we have a few magic numbers to do with perception and reaction time. The first one is 100 milliseconds, or 1/10th of a second. If the reaction to a user action occurs within that time, it is perceived as instantaneous. Your brain basically goes "oop, that's fast enough I think this was no time at all", and you're good. The next is 300 ms, or 3/10ths of a second -- that's when your brain starts disconnecting actions and reactions. Something happening that long after you clicked is going to make your brain not sure the two were connected, and can lead to doubled inputs etc.
So if it takes, let's say, 50 ms to place a block and see it appear, then your brain considers it instantaneous. If it takes 150ms or 200ms, you'll see it as a somewhat slow reaction to your action, enough to be noticeable. If it takes 350ms, instead, still less than half a second, your brain starts to not be sure the block was placed because you clicked then and there.
So a 50ms tick length is actually pretty ideal for this sort of update cycle, as it means that even if it were to take two ticks to complete, your brain still picks it up as instant, and a process that takes longer to show results you can make gradual updates over ticks to make it flow according to the perception of it you want.
@luminance69
Minecarts and horses on a sever are handled different to how blocks are. Any inputs regarding block changes get first applied to your own _local_ game instance and THEN synced to the _server_ (or the server may say "nah, I didn't ever get any note of that stone block being broken, your local copy must be wrong" and the changes you thought you successfully did during a lag spike get "undone" by being synced from the server to the client). While any inputs to minecart movement get transferred as "commands" to the _server,_ who calculates how the entity moves, and your _local_ client only gets informed of the outcome by having the position synced from the server. Or in other words, entities don't actually "run" at that tick speed of 0.05 but at the speed of your ping.
Source: I had very bad ping for a while and ample opportunity to observe the "you press forward on a boat and it starts moving 1.5 seconds later" kinds of effects.
1:55 Hm, the biggest issue is that you're working with hexagons which are ever so slightly more complicated than squares, it also depends on the shape of the chunks. You could try an oct-tree where each hexagonal block is either naturally generated or placed by the player, then if it is placed by a player, it will just store directly what is in it, and if it's natural it will get generated.
I think that's what he was talking about, "saving changes" made to the world instead of the entire thing, and it didn't work.
@@nati0598 Hm, you're a little vague, what's "the entire thing?"
@@flameofthephoenix8395 Well, the state of the entire world. 1:15-1:36
@@nati0598 Okay, but how is saving the state of the world different from the state of "the entire thing?" Maybe I forgot something you're referencing in the video?
@@flameofthephoenix8395 We may be talking about different things.
Edit: by the entire thing I mean the world, one and the same.
A modding system would be extreamly cool
I thought the devlog was real time and your progress was super human
I am very happy to see this grow ! If I can, for sure I will be on the streams, else will do you stream replay ? Like on youtube (maybe special channel or here idk).
As always, love your work !
This video looked great! Previously i had reservations but they are really dissolving right now.
What's that globe in the bottom corner? Is that your minimap/navigation aid?
If yes, it should probably rotate to keep the view direction of the player pointing up and show north/south via a rotation axis through the planet.
(Or at least I would prefer that option over a player symbol with directionality. - Which is strange because for 2D navigation I prefer "north up" minimaps.)
Will add features to it in the future, made it so it's easy for me to explore biomes in creative mode
At 0:20 (and some other times) those blocks in the threshold with rhombuses on top look 3d.
*the tops look 3d
Yeah, it's the 3 tiles on the hexagon having different brightness (and the light side tile lining up with the bright indoor of the threshold). Maybe each tile should instead have a bright and dark "side", with that shading being more pronounced than the difference between the tiles.
You could keep track if the player has made any changes in a chunk, and if not then don't save that chunk. It should be pretty simple and provide massive decrease of the file size.
I believe the qurent walking speed is a bit to fast, it can work for spring mechanic tho.
this is what i was thinking. he's flinging all over the place lol
Indeed, uhh emagine having to do parcoure whit that wobbly speed lol
Would you benefit from storing the zone as a SQLite database, with chunks stored as blobs inside the DB? That might be able to give you better incremental saves, if you know what subset of chunks changed inside a zone. You should also be able to replace gzipping the whole zone file with sqlite-zstd.
What experience in game dev did you have before starting PlanetSmith?
I have been making games since 2012, Released 3 solo projects on Steam/mobile already, LogicBots, Globesweeper & Globesweeper: Hex Puzzler. I'm self taught I actually did a Chemistry degree!
What do you use to manage your tasks?
Just my head, I write on my desk pad sometimes too if I need to plan the week out.
Will there be a nether like thing in planetsmith when you go deeper into the world
Out of curiosity, is it better to only save changes made to a chunk (e.g blocks placed and broke) and then generating each chunk (whether the player has or has not discovered that chunk) but if chunks has been visited and there for has changes, apply the changes to the chunk?
Will multiple planets be supported?
Yes 🚀
Would a block like redstone break this system?
I need this game
why don't you ignore the blocks that match with the seed's natural blocks, and only store the values of where and what blocks were placed or broken? this way, it might put the world's file sizes in the house of hundreds of kilobytes or a few megabytes (even uncompressed)
The difference would be tricky and expensive to compute, I think. Unless you store the change set as it's created, you'd have to run a difference algorithm against the generated chunk (which you'd need to store or regenerate for this), by comparing all the blocks to their counterpart in the rendered world. That would require just over 130,000 comparisons per chunk, and there's a lot of chunks just within render distance...
@@autochton To store that change set as it's created, I'd keep one "is changed" bit and save everything where that bit is true, even if it's changed back to what it was initially. But that requires another precious bit per block (or at least sub-chunk, but then you don't gain as much of a file size benefit) while the chunk is in memory.
Or as you said, keep the changes in memory as a change set, but then but then you'd need to store that whole change set in memory (which may be the whole size of the chunk) _in addition to_ the initial state of the chunk, AND every lookup gets twice as complicated to write (and probably takes twice as long).
And I don't know how much slower re-generating the unchanged parts of the chunk is than loading the whole thing (it might even be faster instead of slower...).
Dang, I wish I had money.
The other problem with only saving changes? As soon as you make an update to the game that changes worldgen, suddenly the player's base is inside a mountain or floating in mid-air
Interesting that you called it a zone instead of a region, as Minecraft calls it; was there a particular reason?
Legally Distinct Naming™
@@alyti I have trademarked the name "Legally Distinct Naming". Please use a descriptor that is different enough to avoid customer confusion in the future, or my legal team will have to serve you with a cease and desist. Thank you for your cooperation.
;P
I wonder will planet smith have any lore?
Definitely
SO EXCITED!!!!! I WOULD BE A MEMBER BUT I HAVE NO MONEYaaaaaaa
as someone who has played minecraft for over half my life, i must beg you to make the tick rate more than 20 tps. even 30 tps isnt that great, personally id love 48, 60 or 72, since those are highly composite numbers
What's the advantage of higher tps? The reason to keep them low is it smooths out long calculations to avoid lag. If tps is too high you will get lag spikes. It is something I can make a settings option though.
@@IncandescentGames a setting for this would be perfect actually
I don't know man, those stairs kinda suck rn. The have a flat surface in a way that don't exist everywhere else
You will be pleased with the last livestream then!
@IncandescentGames oh, glad to know! I thought of watching the stream after it was recorded, but in the moment I couldn't. Now I'm curious of what you and the chat have done there :)
the movement looks pretty bad, you should add some acceleration/deceleration
Player controller was just thrown together so it was good enough to view the world. Will be getting a full remake soon!
@@IncandescentGames oh nice, because this is what i was worried about. Such an AMAZING game, but uncomfortable to play. keep it up man
mobs when
Not too long! Starting work on survival soon, a few bit do do first though.
@@IncandescentGames Is survival going to be the typical "defend yourself against monsters" kind of deal?
I just thought it would be a cool dichotomy if you were an entity with god-like powers whose role in the world is to literally create planets and life, but you have to feed on the life you created in order to be able to survive and continue creating beautiful places.
*_You_* are the monster, sucking the blood from cute scared critters.
[edit:] ...or at least if that's one possible game mode. It'll probably not be to everyone's taste.
yo, just saying, traveling a solar system in this game would be perfect. just saying.
When will you add texture pack support because the default textures that you are using is not as vibrant and colourful and looking kinda dull. And in this kind of game where you have to play hours to progress no one will consider a dull looking environment to watch for hours