@@BobsMudHut The idea of "timeless" objects could be incorporated smoother and lore wise. Just consider that an alternative timeline can converge or HAD converged with the main timeline - since they are alternate forms of current objects which slipped into your timeline they weren't/aren't effected by your history and it's alterations! maybe timeless enemies could be a threat?
Will you ever do a video about your backstory? You came out of nowhere and are clearly extremely skilled. It would be really fun hearing about your past projects and learning.
My one piece of superfluous advice is that I’m worried with the introduction of time inversion, you’ll start to think you’re getting too complicated with it. Please don’t think that. This game has one of the coolest concepts and mechanics I’ve ever seen and I want it to continue to get more and more batshit insane.
Smart move to drop the multiplayer. When I started watching these devlogs I immediately figured that you might be fighting off more than you can chew. Time manipulation, clones, combat, advanced movement is already a lot for a solo dev, adding multiplayer opens a whole other can of worms. Digging the progress so far, keep at it!
my suggestion for the particles, is to just make two different particle systems (one forward, and one made to look like its playing in reverse), and then just have it choose which one to use based on the time scale.
Yeah this. I don’t see the point of recording and calculating the particles in reverse. Just have a forward and reverse particle flow. I don’t think anyone would notice if they’re not exactly reversed. Especially since the perf savings would probably be substantial
And for presentation, you can spend some time on each particle system pair figuring out when to stop the forward particles and start the reverse ones. Example: if you have a perfect loop every 2.4 seconds, delay the switch until that moment so both particles are in the same place at the same time. It might even be worth doing a "hard" switch rather than blending/fading between systems or starting/stopping them. In my mind, the hardest part of this whole approach would be crafting the inverse particle systems, while the most time-consuming is probably measuring, aligning and tuning the switch.
Nice job my man, loving your work! About the fan animation (i don't know much about coding and particle effects), how about when time reverse you just change the direction and starting point of the particle effect. Instead from Fan the to the sky, Put the air limit to the fan.
Omg im subscribed to like 530 youtubers, i sooo wanted to find your channel among those lmao, i remember subscribing to you on your second video and wanting to see more, but youtube just didn't recommend your channel to me, now i have been sorting my channels with an app, now i can put you in "game developers" and finally keep seeing this journy
i remember watching the first devlog a long time ago, now that i have come back, i see a lot has changed, i'm happy that you haven't abandoned this game and i wish you luck on your journey
Wow I have to say the concepts are only getting better after each devlog! Time mechanics have always been fascinating to me, (I really like 'Braid' for example) I'm SO looking forward to this! If I had to say one thing, is that it might become a problem how big the scope is, not only because of time investment in your part, but also in terms of game design; fitting puzzles, combat & open world experiences in the same game requires a fine balance. Anyways, wish you best of luck on developing this game! Cheers.
Been following for a while, things are really shaping up! You've done some great work. I do hope the colors for the various time flows will be customizable in the options menu for color blind people.
Yep, I made sure that all of the coloring was done via an instanced MaterialPropertyBlock on the shader so that it would be easy to implement custom colors once I get a settings menu up and running.
About rewinding the particle system: you could design particles to look the same forward and backward. Also changing color to explain the change might help even if they dont play backwards
its amazing that a indie developer with a sense of humor is making a game that actualy rivals the zelda series in time manipulation. Keep up the good work also why do i feal like Vorgarath will be the final boss.
Some ideas for the particles bug could be making a reverse animation for each particle in the game and switch it with the forward version at the time of rewinding or saving the time a particle has been playing as a variable and telling it to only play for that long. Now that I write this doing both seems the best
I’ve never got to the point in game development in unity to add particles in a game but I assume you can start the animation at different points on the timeline of the animation. And for the puzzles that were built with box dungeon designs I don’t see anything stopping you from making some of the islands have buildings and the puzzles have some parts indoors and some outdoors depending on what you want
There might be some way of storing particles as an animation but this would be really impractical for the long running animations, it would eat up WAY too much memory. There is a reason particle systems are simulated on demand. I might end up doing some more traditional box/dungeon designs but the majority of the puzzles are going to be on floating islands.
Im ready for some mind bending puzzles. A suggestion, I think it would add to the environment to perhaps have some waterfalls off of the islands, I think it could look nice.
Always a good day when i see a bobsmudhut devlog drop.🎉 I also see other people already shared the idea of playing reversed particals instead of reversing forward particals. Never used the system myself, but from what was described, seems like it would be less taxing.
It's similar to the shader idea I had in that if I can get it to work its less performance intensive. It's still a lot of work to set it up properly though.
It looks amazing, been following your journey for a while! Rooting for you! Have you considered making a variant of "Backwards" for each VFX? They seem simple enough to do, then you only have to play the backwards version while rewinding time.
I feel like a good way to visualise things that are being reversed through time relative to the player would be to invert the colours. So have a shader that inverts everything inside a mask and have that appear over anything that is inverted relative to the player, then over that have everything invert when the player is inverted so that the existing shader uninverts things that are inverted relative to the inverted player.
About The problem with your particle system, can't you just flip the wind particles 180° so that they blow downwards? I mean it might not look too "Revinded" but with a few tweaks I'm sure you could make it look good? Your game looks really intresting! Congrats
Thanks Floky! Flipping the particles works most of the time but when the player first starts rewinding the switch between the forward/backwards particles would be pretty jarring. It might end up as part of the final solution. I have a feeling I'll need to have a big combination of lots of different things.
Hi! I can't imagine the headache dealing with all the time-related stuff. Programming trivial stuff is already hard enough, but implementing all that time stuff is bending my mind! :o I am working on a save/load system for my project currently which makes me wonder how hard it can be for your project with all these cached time data/states? :D Godspeed!
For your particle system problem. Does reaching the loop point reset the “cache” needed for backwards playback. You could make multiple short particle systems for the same effect. Each with slightly different loop times, so you end up with a stacked effect that doesn’t have an obvious loop point. The result would be 5 or so short loops with varying times being rewinded. Instead of one very long loop.
This is an interesting idea I haven't thought of. I don't think it would work for all particle systems but in theory it would work for something like the windstreams where there are only 5-6 active at any given time. I'll give it a shot!
Thanks for reminding me about this! Unfortunately this severely limits the kinds of particle effects you can make so it won't work for a lot of use cases. In theory it should work for some of my particles. Although a quick test reveals that even if I don't get the warning that a particle system is not procedural I still have really bad rewind performance so it looks like some investigation wild be needed.
Hey, i would advise using modulo reset with the particles with max limit. When you have repeating particle systems like fans, you can just find the perfect reseting point and it will look great without seeing the actual reset. That is how i solved this problem in my time rewind library.
Modulo reset was one of the first things I tried (and am still doing to some degree). It works for particle systems that loop seamlessly. But for effects like the wind rising the wind streams appear in a slightly different place every time so when the modulo wraps it around there is a very noticeable change in the wind particles.
I can't even comprehend how you implement inversion in this game. This is amazing and creative also is the "inverted" state a smoke and mirror type deal? (using tags/layers and you manually code the interaction) or you ACTUALLY do something with the timescale, either way its still creative AF. Good luck on your project! can't wait to see the next devlog!
Not using anything like tags/layers. I have a system that smoothly records and replays continuous data like transform position/rotation, animation time, rigidbody velocity, etc. I have another system that keeps track of certain function calls and calls the forward/backwards versions of those functions at the right times. So those interactions are hardcoded in a sense, I have pickup/putdown functions on the crystal but I reuse those when placing the crystal in forward time and when rewinding.
Looks awesome, man! These puzzle mechanics are super fresh and have a ton of potential! I love the way you're thinking. Just be careful with scope. I know it's taken a while to get here, and what you have laid out, as I'm sure you are aware, is a very large scope for a solo dev. I think it could realistically take another 2+ years before you're ready to ship something near your single-player vision of just the enemies, combat, and puzzles for the size of map you've made. So, I would be very careful about considering the Chao Garden idea. It would be great fun and add depth, but it might just be too much, and losing it wouldn't detract from your game's core, the puzzles. Sometimes I think long-term solo dev is somewhat of a race. You have to try to ship your game before your skills, opportunities, or interests shift enough to make you feel that your time can be better spent on a different project. The first couple years can be euphoric, but at some point you will be trying to get the game done as soon as possible so you can move on with your life. Not that you'll necessary dislike the game (though many people end up feeling that way), it's just that we grow so much on a project like this that, after enough time, you'll be more than ready for your next bigger and better adventure. That's the joy of this life, isn't it? Keep up the amazing work, this will be a great play upon release!
I appreciate the concern. I'm not counting on this project being done anytime soon. Normally I get burnt out on a project when the coding becomes super trivial (which thanks to needing to integrate everything with the time system is probably never happening for this project), way above my abilities (which I don't think will happen for this project either, the time system is probably the hardest part and its most of the way there). That leaves the final thing that gets me burnt out which is that the game isn't fun just no matter what I try. It's pretty fun right now and through getting a lot of community feedback I'm hoping to keep it that way all the way to completion.
@@BobsMudHut Just remember that you can still be loving the project, and yet eventually feel it's time to move on. One dream leads to the next. Good luck, my friend. You've got an exciting journey ahead, and we'll be right here alongside you.
Hey man! Fellow GameDev here, i love what you do its sooo unique and special! If i could make one suggestion, maybe make the effect on the inverted/timeless objects stand out a little less. What you could do is make a particle system of swirls around the object that indicates in which direction time flows, either by color or by the actual direction the particles move. For timeless you could then just make it a pulsating particle to indicate its nature. I just think it'd make those objects feel a bit more immersive, if you know what i mean! Some other ideas i'll just throw into the room are enemies that behave in a specific timeframe, e.g Rewinded enemies that you yourself have to be rewinded in order to be able to fight them, or timeless enemies that are immune to your time powers. Also i think some random events would be cool, like one of the time rifts ripping open and freezing/rewinding time in a specific radius for a certain amount of time, which could grant extra loot when the rifts get closed, just some fun brainstorming! Keep up the great work!
Those are some good ideas! I agree the timeflow glow could maybe use a bit of tweaking. I'm definitely going to experiment with timeless enemies (and timeless weapons that do unrewindable damage). Randomish events as a specific puzzle gimmick could be interesting. Just have to be careful to strike the right balance of "fun random event" vs. "annoying unpredictable event".
Wow this game is starting to look fantastic! I have a couple ideas/pieces of constructive criticism I’d like to mention 1) Dragon eggs feel like way too much of a reward for simply completing a puzzle, the reward for a puzzle should be more minor and the dragon eggs would benefit from being boss drops or something along those lines 2) The combat will make or break your game. At the end of the day it doesn’t matter how good it looks or how complex the game is. If the combat is not simply satisfying many people will sadly avoid your game 3) The open world requires expansion. Not only does the map need to be bigger, it needs to be alive. The main reason Botw is successful is that everywhere you turn there is something to do. If there is no point exploring there is no point having an open world. I hope these can help! I recognise that some of these are probably just things that you haven’t had chance to implement and there is no pressure to do so! This is simply some friendly advice!
Probably you could get away with just making a second particle system, and just change it's direction and Deayctivate the original one. So it plays forward, but looks like it's playing backwards.
Hey, just a general tip, never test performance in the editor or disable "Others" in the profiler. Others refers to the Editor Loop, which is not executed in the final build. In general, I would recommend generating a build right from the beginning of a larger project because the first time always takes the longest. Regards, Fabi ^^
For sure editor isn't a good measure of what the exact final performance of the game will be. The cause of the slowdowns I was noticing was 100% rewinding particles/the grass though. I experienced similar slowdowns outside the editor although the base FPS was significantly higher.
@@BobsMudHut I was actually referring to 9:14 when you showed your grass optimization. Since your particles are still simple enough, you could take inspiration from Ben Cloward's Advanced Materials series for your shader. "Rain drips on the lens post-process" at around 1:44 could be helpful to you.
Hey this is really cool! Would it be impossible to switch to a different 'rewind' particle? Maybe this is more trouble than it's worth though. To make it seem natural
This is very similar to the game Braid which explores some of the time rewinding and timeless concepts you also explore. I would love to see the things Braid touched on be more fully fleshed out in your game.
How do you balance actually coding the game and making a video of what you coded? Do you do a bunch of coding for a while, write a script about what you did, then record footage to match? Or do you just kinda record your entire process and cut pieces out as you edit? Would love to know what your process is. Great content as always!!!
While I'm working if I encounter any weird bugs I or if I am about to do a bunch of stuff I might want to turn into a timelapse I record those. When I have a system mostly working and then have to do some refactoring that changes the old way it works I usually try to record that as well but sometimes I forget and then it doesn't make it into the video. But other than that all of the script writing and most of the video recording takes place at the very end.
To implement a multiplayer aspect to the game without really implementing multiplayer, is do something similar to the game Orcs Must Die!, where you come up with a way to do scoring and then have a leaderboard.
For the particle system, why not just have 2 systems, one that is the forward one, and one that is the backward time one, then just switch between the two.
instead of running the particles in reverse, why don't you have a separate set of particles that operate in reverse, then appear when you flip time? that way there's no chance that a set of particles you make in the future could drop your frames
Idea: bake the particles. Prepare a looping cache of particles. I.E 10 seconds loop. It will be easy to rewind them as you will know exact state in any frame. Making them loop may be tricky but I guess some postprocessing interpolation could solve the problem. If performance of such particles would be bad you could try gpu instancing or writing a simple shader that reads the cache.
few ideas for the particles, food for thought if nothing else: perhaps, instead of simulating up to the time you set them to, you could just have the particles be periodic, with short period, thus limiting the max playback time? alternatively, idk how performant it is, but you could use getplaybackstate/setplaybackstate on the particlesystem, to avoid having to resimulate? (idk if this works and how well it works, just something I saw in the documentation) If it's too expensive to getplaybackstate frequently, another way to limit simulation time could be by storing playbackstate periodically, and then just simulating the difference? If that's slow for many particlesystems, you could have a different offset for each, or some randomisation with the period, to spread out the getplaybackstate calls over more frames? just spitballin here. regardless, stuff looks neat, keep it up :)
Haven't seen getplaybackstate/setplaybackstate before, it didn't pop up in any of my research on rewinding particle systems. I suspect it's probably a bit too heavy on memory usage but I'll give it a try. Thanks for the suggestion!
I wasnt really feeling the game before but this video actually changed my mind. The puzzles you showed looked simple but my god do the mechanics show that you can do so much with them puzzle wise. I can just feel myself falling to insanity by this games puzzles. The game really is coming together And I can't wait for its release. Question so since you have no plans for multiplayer what about a puzzle builder, a way for the community to make puzzles that others can play. Feel like that would be cool.
The nice thing about the complexity of the time mechanics is the puzzle elements themselves can be really simple and still present a challenging puzzle. And every element I comes with 3 variations, one for each timeflow. A community puzzle builder would be cool but if I made it that would happen after the game's release. I already have a big enough scope to deal with.
for wind rewinf effect you can make a second particle system or dynamically change theyr values when reversing time so you don't have to manipulate the time of the simulation and it runs forwards still but it will look like it goes backwards just by changing the look of it?
Some people do speedrun right ? So i suggest you should add some kind of ... Grappling hook, but u have to actually aim, and it can pull levers to activate, pull objects to you, pull you to an object. I see there are islands you cant use grappling (skipping puzzles), but if you make a zone where u cant grapple, i think u should make a zone where the dots (or empty obj or transform bla bla) to grapple on dont spawn instead Lol sorry for my English, nice vid i have waited for a long time
What if the inverted bridges started as already fallen and went up to reach your feet as you walked on it? It would still work exactly the same because you can cross it in normal time and it falls when you reverse time, but it would look really cool, and make sense Edit:typo
It would create weird artifacts unfortunately. If you stopped at any point along an inverted bridge, an inverted person would see you magically floating on a half-collapsed bridge.
I really like all this but a lot of people in comment sections of future videos are gonna be like "You stole this from Tears of the Kingdom!". (Even though we didn't really know about that time rewind ability when you started this series.)
Do the particles do anything other than visuals? Perhaps the solution can be as simple as *always* running the particle effects *forward* but considering the changed object states? For the fan example at least, you could presumably get away with doing the particle effects *as if* the fan were on the opposite end of the trails, blowing downwards rather than upwards. This may not work for all your effects though...
Late comment but regarding performance and grass, it's green so maybe you can get away with making it timeless if that helps the performance, which I would assume it does
for the wind particles what if you just make a new simulation of the particles moving in the opposite direction. that way the simulation runs forward while the particles move in the opposite direction
Not to diminish your ability, but when you first mentioned multiplayer I knew that wouldn't be able to last. Multiplayer raises complexity by factors, and I've seen enough game developments with lots of money behind them need to drop/scale back multiplayer ambitions. Game is looking great though! Excited to see where it goes from here!
A lot of people were doubtful of the multiplayer (including myself to some degree). I don't regret giving it a shot because I learned a lot and didn't waste TOO much time, but there does come a point where you have to cut your losses and move on.
I imagine it would be hard to teach players about all time mechanics and their interactions. It's difficult to provide a feedback about time movement, because all you can do is like change object's color, but visually everything moves the same. I think it will be crucial to do as many playtests as possible as soon as possible. This way it won't hurt as much if some mechanics will have to be removed and it's easier to find proper direction until it's too late
For sure a lot of playtesting is needed (especially for the puzzles). Main reason I started this channel was so I could grow a community that could help with that, because I knew if I tried to do it in isolation the puzzles would end up way too convoluted and confusing.
I love Tenet, I tried creating a tenet puzzle but had to drop it due to too many uncertainty. Is this level-based? I'm a little confused, so you as the player choose what to invert or every interactable has a glow? What would make me walk back a bridge if I need to go upwards? There are a lot of parts that don't benefit solving the puzzle, such as inverting the fan? It's a cool concept but rewinding objects here conflicts with the end goal. Maybe the fan inverting allows you to stream upwards/downwards between two islands on top of each other.
When you start a puzzle certain things will have their inversion/timeless state fixed (like the fans). The only thing the player will be able to change the inverted state of is themselves and anything they can carry (like the crystal). I suppose I could add an inverter gun that the player could fire at individual objects to invert them but that will only be necessary if I run out of ideas for the current system.
@@BobsMudHut Oh, I got confused with the blue glow on the fan at 0:30. Still amazing you implemented the system. It'll be interesting to see more levels with this idea.
I think you could definitely still use those dungeon elements without it getting boring. Maybe instead of making them separate levels, make them broken-down ruins on the islands, with some going across multiple islands.
Did you try and making the simulated effects happen in reverse? Like a fan spawns particle effects low that go up, but when reversed they’d stop spawning and another particles start from the top and move down Since if a player has a fan from far away in their view (could possibly work) or afks for a moment while looking at a fan them reversing time could bring back that problem
That is something I thought about. I might need to do this anyway for things like inverted fans to have particles that go the right direction. The main problem I have is when the player rewinds when directly looking at a particle effect I could only swap from the forward to the reverse version of the particles if they were identical to each other at the same point in time (otherwise the player would notice the jump), and if I have that I might as well just have a single looping particle effect. Which is tricky to make apart from a deterministic shader since 95% of the particle effects I currently have are random and don't loop.
this game's puzzles will probably melt my mind
Hopefully not too much :)
the bridge segment at the start had me doing a jimmy neutron brain blast
@@BobsMudHut The idea of "timeless" objects could be incorporated smoother and lore wise. Just consider that an alternative timeline can converge or HAD converged with the main timeline - since they are alternate forms of current objects which slipped into your timeline they weren't/aren't effected by your history and it's alterations! maybe timeless enemies could be a threat?
@@BobsMudHut or maybe timeless objects are objects that are integral to that realities history
Will you ever do a video about your backstory? You came out of nowhere and are clearly extremely skilled. It would be really fun hearing about your past projects and learning.
Will do a video about all my projects eventually. They are all a lot more boring then this one though 😅
@@BobsMudHut It doesn't matter if the project themselves are boring, its interesting to see how someone progresses as a programmer!
My one piece of superfluous advice is that I’m worried with the introduction of time inversion, you’ll start to think you’re getting too complicated with it. Please don’t think that. This game has one of the coolest concepts and mechanics I’ve ever seen and I want it to continue to get more and more batshit insane.
I am a bit worried about complexity but the time inversion puzzles aren't going anywhere!
the time inversion mechanic isn't the same time inversion concept as seen in tenet, so it's probably a lot simpler
Smart move to drop the multiplayer. When I started watching these devlogs I immediately figured that you might be fighting off more than you can chew. Time manipulation, clones, combat, advanced movement is already a lot for a solo dev, adding multiplayer opens a whole other can of worms. Digging the progress so far, keep at it!
The puzzles are going to be so unique and mind-boggling! Keep up the great work!
I love how this game started as a sort of meme test project and now it’s becoming a fully realized unique game
This is honestly looking better and better, man! Looking great so far!
Thanks!
my suggestion for the particles, is to just make two different particle systems (one forward, and one made to look like its playing in reverse), and then just have it choose which one to use based on the time scale.
Yeah this. I don’t see the point of recording and calculating the particles in reverse. Just have a forward and reverse particle flow. I don’t think anyone would notice if they’re not exactly reversed. Especially since the perf savings would probably be substantial
And for presentation, you can spend some time on each particle system pair figuring out when to stop the forward particles and start the reverse ones. Example: if you have a perfect loop every 2.4 seconds, delay the switch until that moment so both particles are in the same place at the same time. It might even be worth doing a "hard" switch rather than blending/fading between systems or starting/stopping them.
In my mind, the hardest part of this whole approach would be crafting the inverse particle systems, while the most time-consuming is probably measuring, aligning and tuning the switch.
Or just turn the normal one upside down
Same thoughts
Honestly Love the new time shenanigans, props to you and I look forward to seeing the finished product :D
I'm looking forward to it too!
I can already imagine the insane puzzle possibilities this opens up
Every devlog seems to make the game cooler and more interesting. I can't wait to play the demo.
Nice job my man, loving your work! About the fan animation (i don't know much about coding and particle effects), how about when time reverse you just change the direction and starting point of the particle effect.
Instead from Fan the to the sky, Put the air limit to the fan.
Omg im subscribed to like 530 youtubers, i sooo wanted to find your channel among those lmao, i remember subscribing to you on your second video and wanting to see more, but youtube just didn't recommend your channel to me, now i have been sorting my channels with an app, now i can put you in "game developers" and finally keep seeing this journy
I can see why RUclips might have trouble showing you everything if you're subscribed to 500+ people haha
Sounds like the most complicated game ever created. Thank you sir.
this game will be so much fun to play
The time manipulation mechanics are very fascinating! The timeless objects will make very interesting puzzles!
i remember watching the first devlog a long time ago, now that i have come back, i see a lot has changed, i'm happy that you haven't abandoned this game and i wish you luck on your journey
All was peaceful and quiet in dragonville UNTIL ONE DAY THE EYE-NATION ATTACKED!
Youre breaking my mind with the puzzles in this game and you've gotten a sub because of it
This is awesome! I would love to see some enemies that can also effectively use these abilities, rather than just the puzzles!
This game will be so cool
Man I already struggle with puzzle games already I might just melt from not enough Brian strength… I can’t wait!
i've been watching this for about 8 minutes and my brain already hurts
keep up the good work :D
This seems like a nightmare to create lol, can't wait to see what you do next!
Wow I have to say the concepts are only getting better after each devlog! Time mechanics have always been fascinating to me, (I really like 'Braid' for example) I'm SO looking forward to this! If I had to say one thing, is that it might become a problem how big the scope is, not only because of time investment in your part, but also in terms of game design; fitting puzzles, combat & open world experiences in the same game requires a fine balance.
Anyways, wish you best of luck on developing this game! Cheers.
Programing the time stuff is amazing! You have quite the soild base. GL with your game.
I can't wait to play this game but my gosh the puzzles are going to be tricky, keep up the great work
Cool concept. I dont play puzzle games so this one isn't up my alley but I'll sub so i can follow your progress
0:24 : Time mechanic? Someone who repairs time?
That's the actual definition of mechanic as a singular.
This devlog is exactly what i needed today
I love everything about this. Good luck with the project 🖤
Been following for a while, things are really shaping up! You've done some great work. I do hope the colors for the various time flows will be customizable in the options menu for color blind people.
Yep, I made sure that all of the coloring was done via an instanced MaterialPropertyBlock on the shader so that it would be easy to implement custom colors once I get a settings menu up and running.
About rewinding the particle system: you could design particles to look the same forward and backward. Also changing color to explain the change might help even if they dont play backwards
its amazing that a indie developer with a sense of humor is making a game that actualy rivals the zelda series in time manipulation. Keep up the good work also why do i feal like Vorgarath will be the final boss.
Some ideas for the particles bug could be making a reverse animation for each particle in the game and switch it with the forward version at the time of rewinding or saving the time a particle has been playing as a variable and telling it to only play for that long. Now that I write this doing both seems the best
I’ve never got to the point in game development in unity to add particles in a game but I assume you can start the animation at different points on the timeline of the animation. And for the puzzles that were built with box dungeon designs I don’t see anything stopping you from making some of the islands have buildings and the puzzles have some parts indoors and some outdoors depending on what you want
There might be some way of storing particles as an animation but this would be really impractical for the long running animations, it would eat up WAY too much memory. There is a reason particle systems are simulated on demand. I might end up doing some more traditional box/dungeon designs but the majority of the puzzles are going to be on floating islands.
Im ready for some mind bending puzzles. A suggestion, I think it would add to the environment to perhaps have some waterfalls off of the islands, I think it could look nice.
I'll do it at some point. I've been putting it off due to a traumatic experience with procedurally generating rivers/waterfalls in the past...
Tenet is such a good movie
This like is entirely for VORGARTH THE ANNIHILATOR, LORD OF DESOLATION
HOLY, CANT WAIT TO PLAY THIS, GOOD WORK MAN
This looks incredibly fun!
Could you have 2 particle emitters for an object? One for normal time, and one for in a rewinding state?
Always a good day when i see a bobsmudhut devlog drop.🎉 I also see other people already shared the idea of playing reversed particals instead of reversing forward particals. Never used the system myself, but from what was described, seems like it would be less taxing.
It's similar to the shader idea I had in that if I can get it to work its less performance intensive. It's still a lot of work to set it up properly though.
Your particle system is mostly directional. Instead of rewinding it, just rotate it.
It looks amazing, been following your journey for a while! Rooting for you! Have you considered making a variant of "Backwards" for each VFX? They seem simple enough to do, then you only have to play the backwards version while rewinding time.
I feel like a good way to visualise things that are being reversed through time relative to the player would be to invert the colours. So have a shader that inverts everything inside a mask and have that appear over anything that is inverted relative to the player, then over that have everything invert when the player is inverted so that the existing shader uninverts things that are inverted relative to the inverted player.
About The problem with your particle system, can't you just flip the wind particles 180° so that they blow downwards? I mean it might not look too "Revinded" but with a few tweaks I'm sure you could make it look good?
Your game looks really intresting! Congrats
Thanks Floky! Flipping the particles works most of the time but when the player first starts rewinding the switch between the forward/backwards particles would be pretty jarring. It might end up as part of the final solution. I have a feeling I'll need to have a big combination of lots of different things.
I think this has a lot of potential!
those golf islands are awfully cute. i think i'm going to have to do a 3d version of joust (i'm sure there's a couple already..)
Hi! I can't imagine the headache dealing with all the time-related stuff. Programming trivial stuff is already hard enough, but implementing all that time stuff is bending my mind! :o
I am working on a save/load system for my project currently which makes me wonder how hard it can be for your project with all these cached time data/states? :D
Godspeed!
Ooooo man this game is coming along nicely
Finally, a gamedev video with a game I want to play
For your particle system problem. Does reaching the loop point reset the “cache” needed for backwards playback. You could make multiple short particle systems for the same effect. Each with slightly different loop times, so you end up with a stacked effect that doesn’t have an obvious loop point.
The result would be 5 or so short loops with varying times being rewinded. Instead of one very long loop.
This is an interesting idea I haven't thought of. I don't think it would work for all particle systems but in theory it would work for something like the windstreams where there are only 5-6 active at any given time. I'll give it a shot!
@@BobsMudHut Good luck! I joined the discord.Happy to throw in my two-cents. Lemme know how it goes.
Looks sick!
In Unity, if you make sure your particle system is *_procedural_* then it can be evaluated at any point in time without simulation.
Thanks for reminding me about this! Unfortunately this severely limits the kinds of particle effects you can make so it won't work for a lot of use cases. In theory it should work for some of my particles. Although a quick test reveals that even if I don't get the warning that a particle system is not procedural I still have really bad rewind performance so it looks like some investigation wild be needed.
Im hyped for this game, u should add a bunch of stuff into the open world
It’s like 3D Braid!
Hey, i would advise using modulo reset with the particles with max limit. When you have repeating particle systems like fans, you can just find the perfect reseting point and it will look great without seeing the actual reset. That is how i solved this problem in my time rewind library.
Modulo reset was one of the first things I tried (and am still doing to some degree). It works for particle systems that loop seamlessly. But for effects like the wind rising the wind streams appear in a slightly different place every time so when the modulo wraps it around there is a very noticeable change in the wind particles.
I can’t wait for a aneurysm of a game. Looks really fun tho.
This broke my brain just by being told about it. I'm in.
I can't even comprehend how you implement inversion in this game. This is amazing and creative
also is the "inverted" state a smoke and mirror type deal? (using tags/layers and you manually code the interaction) or you ACTUALLY do something with the timescale, either way its still creative AF. Good luck on your project! can't wait to see the next devlog!
Not using anything like tags/layers. I have a system that smoothly records and replays continuous data like transform position/rotation, animation time, rigidbody velocity, etc. I have another system that keeps track of certain function calls and calls the forward/backwards versions of those functions at the right times. So those interactions are hardcoded in a sense, I have pickup/putdown functions on the crystal but I reuse those when placing the crystal in forward time and when rewinding.
this is absolutely fantastic!
Looks awesome, man! These puzzle mechanics are super fresh and have a ton of potential! I love the way you're thinking.
Just be careful with scope. I know it's taken a while to get here, and what you have laid out, as I'm sure you are aware, is a very large scope for a solo dev. I think it could realistically take another 2+ years before you're ready to ship something near your single-player vision of just the enemies, combat, and puzzles for the size of map you've made.
So, I would be very careful about considering the Chao Garden idea. It would be great fun and add depth, but it might just be too much, and losing it wouldn't detract from your game's core, the puzzles.
Sometimes I think long-term solo dev is somewhat of a race. You have to try to ship your game before your skills, opportunities, or interests shift enough to make you feel that your time can be better spent on a different project. The first couple years can be euphoric, but at some point you will be trying to get the game done as soon as possible so you can move on with your life.
Not that you'll necessary dislike the game (though many people end up feeling that way), it's just that we grow so much on a project like this that, after enough time, you'll be more than ready for your next bigger and better adventure. That's the joy of this life, isn't it?
Keep up the amazing work, this will be a great play upon release!
I appreciate the concern. I'm not counting on this project being done anytime soon. Normally I get burnt out on a project when the coding becomes super trivial (which thanks to needing to integrate everything with the time system is probably never happening for this project), way above my abilities (which I don't think will happen for this project either, the time system is probably the hardest part and its most of the way there). That leaves the final thing that gets me burnt out which is that the game isn't fun just no matter what I try. It's pretty fun right now and through getting a lot of community feedback I'm hoping to keep it that way all the way to completion.
@@BobsMudHut Just remember that you can still be loving the project, and yet eventually feel it's time to move on. One dream leads to the next.
Good luck, my friend. You've got an exciting journey ahead, and we'll be right here alongside you.
Hey man! Fellow GameDev here, i love what you do its sooo unique and special! If i could make one suggestion, maybe make the effect on the inverted/timeless objects stand out a little less. What you could do is make a particle system of swirls around the object that indicates in which direction time flows, either by color or by the actual direction the particles move. For timeless you could then just make it a pulsating particle to indicate its nature. I just think it'd make those objects feel a bit more immersive, if you know what i mean!
Some other ideas i'll just throw into the room are enemies that behave in a specific timeframe, e.g Rewinded enemies that you yourself have to be rewinded in order to be able to fight them, or timeless enemies that are immune to your time powers. Also i think some random events would be cool, like one of the time rifts ripping open and freezing/rewinding time in a specific radius for a certain amount of time, which could grant extra loot when the rifts get closed, just some fun brainstorming!
Keep up the great work!
Those are some good ideas! I agree the timeflow glow could maybe use a bit of tweaking. I'm definitely going to experiment with timeless enemies (and timeless weapons that do unrewindable damage). Randomish events as a specific puzzle gimmick could be interesting. Just have to be careful to strike the right balance of "fun random event" vs. "annoying unpredictable event".
Wow this game is starting to look fantastic! I have a couple ideas/pieces of constructive criticism I’d like to mention
1) Dragon eggs feel like way too much of a reward for simply completing a puzzle, the reward for a puzzle should be more minor and the dragon eggs would benefit from being boss drops or something along those lines
2) The combat will make or break your game. At the end of the day it doesn’t matter how good it looks or how complex the game is. If the combat is not simply satisfying many people will sadly avoid your game
3) The open world requires expansion. Not only does the map need to be bigger, it needs to be alive. The main reason Botw is successful is that everywhere you turn there is something to do. If there is no point exploring there is no point having an open world.
I hope these can help! I recognise that some of these are probably just things that you haven’t had chance to implement and there is no pressure to do so! This is simply some friendly advice!
Yay another upload
The main character is great. I agree the floating islands are more interesting than gray dungeons.
looks awesome!
Probably you could get away with just making a second particle system, and just change it's direction and Deayctivate the original one. So it plays forward, but looks like it's playing backwards.
Hey, just a general tip, never test performance in the editor or disable "Others" in the profiler.
Others refers to the Editor Loop, which is not executed in the final build.
In general, I would recommend generating a build right from the beginning of a larger project because the first time always takes the longest.
Regards, Fabi ^^
For sure editor isn't a good measure of what the exact final performance of the game will be. The cause of the slowdowns I was noticing was 100% rewinding particles/the grass though. I experienced similar slowdowns outside the editor although the base FPS was significantly higher.
@@BobsMudHut I was actually referring to 9:14 when you showed your grass optimization. Since your particles are still simple enough, you could take inspiration from Ben Cloward's Advanced Materials series for your shader. "Rain drips on the lens post-process" at around 1:44 could be helpful to you.
Hey this is really cool!
Would it be impossible to switch to a different 'rewind' particle? Maybe this is more trouble than it's worth though. To make it seem natural
This is very similar to the game Braid which explores some of the time rewinding and timeless concepts you also explore. I would love to see the things Braid touched on be more fully fleshed out in your game.
How do you balance actually coding the game and making a video of what you coded?
Do you do a bunch of coding for a while, write a script about what you did, then record footage to match? Or do you just kinda record your entire process and cut pieces out as you edit? Would love to know what your process is.
Great content as always!!!
While I'm working if I encounter any weird bugs I or if I am about to do a bunch of stuff I might want to turn into a timelapse I record those. When I have a system mostly working and then have to do some refactoring that changes the old way it works I usually try to record that as well but sometimes I forget and then it doesn't make it into the video. But other than that all of the script writing and most of the video recording takes place at the very end.
To implement a multiplayer aspect to the game without really implementing multiplayer, is do something similar to the game Orcs Must Die!, where you come up with a way to do scoring and then have a leaderboard.
For the particle system, why not just have 2 systems, one that is the forward one, and one that is the backward time one, then just switch between the two.
Looks awesome, mechanics will have to be shown to players in an easy way otherwise it might be frustrating for them
instead of running the particles in reverse, why don't you have a separate set of particles that operate in reverse, then appear when you flip time?
that way there's no chance that a set of particles you make in the future could drop your frames
Idea: bake the particles. Prepare a looping cache of particles. I.E 10 seconds loop. It will be easy to rewind them as you will know exact state in any frame. Making them loop may be tricky but I guess some postprocessing interpolation could solve the problem. If performance of such particles would be bad you could try gpu instancing or writing a simple shader that reads the cache.
few ideas for the particles, food for thought if nothing else:
perhaps, instead of simulating up to the time you set them to, you could just have the particles be periodic, with short period, thus limiting the max playback time?
alternatively, idk how performant it is, but you could use getplaybackstate/setplaybackstate on the particlesystem, to avoid having to resimulate? (idk if this works and how well it works, just something I saw in the documentation) If it's too expensive to getplaybackstate frequently, another way to limit simulation time could be by storing playbackstate periodically, and then just simulating the difference? If that's slow for many particlesystems, you could have a different offset for each, or some randomisation with the period, to spread out the getplaybackstate calls over more frames? just spitballin here.
regardless, stuff looks neat, keep it up :)
Haven't seen getplaybackstate/setplaybackstate before, it didn't pop up in any of my research on rewinding particle systems. I suspect it's probably a bit too heavy on memory usage but I'll give it a try. Thanks for the suggestion!
I wasnt really feeling the game before but this video actually changed my mind. The puzzles you showed looked simple but my god do the mechanics show that you can do so much with them puzzle wise. I can just feel myself falling to insanity by this games puzzles. The game really is coming together And I can't wait for its release. Question so since you have no plans for multiplayer what about a puzzle builder, a way for the community to make puzzles that others can play. Feel like that would be cool.
The nice thing about the complexity of the time mechanics is the puzzle elements themselves can be really simple and still present a challenging puzzle. And every element I comes with 3 variations, one for each timeflow. A community puzzle builder would be cool but if I made it that would happen after the game's release. I already have a big enough scope to deal with.
for wind rewinf effect you can make a second particle system or dynamically change theyr values when reversing time so you don't have to manipulate the time of the simulation and it runs forwards still but it will look like it goes backwards just by changing the look of it?
I usually have captions on and I will say, starting the video was very confusing LMAO
the youtuber Acerola has a neat video about optimizing grass, might help with the performance.
i love the aesthetic!
Interesting idea
Some people do speedrun right ? So i suggest you should add some kind of ... Grappling hook, but u have to actually aim, and it can pull levers to activate, pull objects to you, pull you to an object. I see there are islands you cant use grappling (skipping puzzles), but if you make a zone where u cant grapple, i think u should make a zone where the dots (or empty obj or transform bla bla) to grapple on dont spawn instead
Lol sorry for my English, nice vid i have waited for a long time
What if the inverted bridges started as already fallen and went up to reach your feet as you walked on it? It would still work exactly the same because you can cross it in normal time and it falls when you reverse time, but it would look really cool, and make sense
Edit:typo
It would create weird artifacts unfortunately. If you stopped at any point along an inverted bridge, an inverted person would see you magically floating on a half-collapsed bridge.
I really like all this but a lot of people in comment sections of future videos are gonna be like "You stole this from Tears of the Kingdom!". (Even though we didn't really know about that time rewind ability when you started this series.)
This game is going to hirt my brain
Looks good!
I wonder if there’s any way to bake the particle animation for the fans and just play a baked instance backwards instead of actually simulating it
Do the particles do anything other than visuals?
Perhaps the solution can be as simple as *always* running the particle effects *forward* but considering the changed object states? For the fan example at least, you could presumably get away with doing the particle effects *as if* the fan were on the opposite end of the trails, blowing downwards rather than upwards.
This may not work for all your effects though...
Late comment but regarding performance and grass, it's green so maybe you can get away with making it timeless if that helps the performance, which I would assume it does
for the wind particles what if you just make a new simulation of the particles moving in the opposite direction. that way the simulation runs forward while the particles move in the opposite direction
Not to diminish your ability, but when you first mentioned multiplayer I knew that wouldn't be able to last. Multiplayer raises complexity by factors, and I've seen enough game developments with lots of money behind them need to drop/scale back multiplayer ambitions.
Game is looking great though! Excited to see where it goes from here!
A lot of people were doubtful of the multiplayer (including myself to some degree). I don't regret giving it a shot because I learned a lot and didn't waste TOO much time, but there does come a point where you have to cut your losses and move on.
I imagine it would be hard to teach players about all time mechanics and their interactions. It's difficult to provide a feedback about time movement, because all you can do is like change object's color, but visually everything moves the same. I think it will be crucial to do as many playtests as possible as soon as possible. This way it won't hurt as much if some mechanics will have to be removed and it's easier to find proper direction until it's too late
For sure a lot of playtesting is needed (especially for the puzzles). Main reason I started this channel was so I could grow a community that could help with that, because I knew if I tried to do it in isolation the puzzles would end up way too convoluted and confusing.
Would it not work to just use 2 different particle effects? A "forward" effect and a "backward" effect that activate depending on the time effect?
I love Tenet, I tried creating a tenet puzzle but had to drop it due to too many uncertainty. Is this level-based? I'm a little confused, so you as the player choose what to invert or every interactable has a glow? What would make me walk back a bridge if I need to go upwards? There are a lot of parts that don't benefit solving the puzzle, such as inverting the fan? It's a cool concept but rewinding objects here conflicts with the end goal. Maybe the fan inverting allows you to stream upwards/downwards between two islands on top of each other.
When you start a puzzle certain things will have their inversion/timeless state fixed (like the fans). The only thing the player will be able to change the inverted state of is themselves and anything they can carry (like the crystal). I suppose I could add an inverter gun that the player could fire at individual objects to invert them but that will only be necessary if I run out of ideas for the current system.
@@BobsMudHut Oh, I got confused with the blue glow on the fan at 0:30. Still amazing you implemented the system. It'll be interesting to see more levels with this idea.
I think you could definitely still use those dungeon elements without it getting boring. Maybe instead of making them separate levels, make them broken-down ruins on the islands, with some going across multiple islands.
Did you try and making the simulated effects happen in reverse?
Like a fan spawns particle effects low that go up, but when reversed they’d stop spawning and another particles start from the top and move down
Since if a player has a fan from far away in their view (could possibly work) or afks for a moment while looking at a fan them reversing time could bring back that problem
That is something I thought about. I might need to do this anyway for things like inverted fans to have particles that go the right direction. The main problem I have is when the player rewinds when directly looking at a particle effect I could only swap from the forward to the reverse version of the particles if they were identical to each other at the same point in time (otherwise the player would notice the jump), and if I have that I might as well just have a single looping particle effect. Which is tricky to make apart from a deterministic shader since 95% of the particle effects I currently have are random and don't loop.
the puzzles are gonna make as much sense as tenet, aren't they?
Dragons! Woot!