Making A Game That's FUN To Speedrun (I Hope)
Vložit
- čas přidán 8. 05. 2024
- Wishlist this project on Steam! store.steampowered.com/app/29...
I've now been working on developing a game in Godot for a couple of weeks, and I'm beginning to develope a vision of what I want it to be. Since fun movement mechanics and speedrunning are two things I enjoy very much, I want this to be a game where going fast is fun. This will mean keeping the controls simple, responsive and fluid!
There's still some details up in the air but I'm so excited to see this project to continue to progress, and I hope you'll enjoy accompanying me on this journey!
If you'd like to keep tabs on this project or be notified when I go live, feel free to join my Discord: / discord
Check out Donut and Lemon, the two friends whose speedruns I showed in this video!
Donut:
/ adonutirl
/ @adonutirl
Lemondrop:
/ lemondropped
/ @lemondrop6839
Here's the ShaggyDev tutorial that I referenced in the video: • 5 tips for better plat...
And a link to the beautiful pixel assets used in this game:
clembod.itch.io/warrior-free-...
anokolisa.itch.io/pocket-pack...
If you've made it this far in the description, feel free to let me know one thing you'd like to see in this upcoming game.
See you next time!
Swinkly - Hry
Yo that Lemondrop guy at the end kinda smooth with it, I hope he beats Donut's record
Yeah he kind of went dummy ridiculous with it, true WR contender
that lemondrop guy finding the sick strats to break the 30s barrier
Underrated as heck not gonna lie. The editing, narration, and everything is awesome
Thanks, your feedback really means a lot! I've been interested in content creation for quite some time, and tried a lot of different avenues with varying degrees of success. For some reason this project has seemed to "click" and hit the algorithm the right way. I'm so grateful that it's getting recommended to people who enjoy it!
This project is coming along quite well it seems! Glad you're having fun with it and getting people so invested at such an early stage of development speaks a lot to its potential! This is quite the inspiration, keep up the great work!
Thanks so much! I've honestly been floored by the response so far; I never expected the first Dev Log to take off like it did! I hope that with time I can turn this project into something truly special that a lot of people will enjoy.
Excited to see where this project goes! Looks like it has a lot of potential
Thank you - seeing the potential for something great has definitely been a big source of motivation for this game. Hopefully I can follow that through and come up with something special for you all!
2:18 canvas layer can be placed anywhere in the node tree btw
and it basically used global coords. its not offset by any of its parent nodes
so it just uses the position the screen is meant to be
i imagine canvas layer like putting stickers up on my monitor
3:47 the rain looks great! But I think it would look a bit better if it was angled a bit to make an illusion of wind. Hope you agree with this change!
Yup, I'll definitely be trying to adjust that at some point soon! Been implementing a lot of new features and that's on the list!
I just thought of this and maybe it could help for later levels, it would be really neat if you had buttons/levers that the player could interact with that would unlock shortcuts. You could make them somewhat hidden or not super obvious to incentivize playing the levels a bunch of times to find secret paths. I hope this helps and I'm excited to see the progress that you make!
This is definitely something I've thought about! Since the sprites I'm using have a sword animation, I'm thinking that you may be able to hit switches or levers with the sword to move platforms or open doorways. Maybe something to implement soon!
@@Swinkly_ are you planning to make your own character for it? i like the stretch effect while jumping, nice touch
to the canvas layer at 2:19
if it gives you more issues when changing resolutions try using containers and margins.
it would be something like
player
> camera2d
>>vbox(set it up to expand)
>>>hbox(set it up to expand)
>>>label1(align up left)
>>>label2(align up right)
>>marginContainer(set it up to expand and set the margin as needed on theme overrides)
>>label3(ready)(set it up to align center center)
Thanks so much for the info! I'm sure this'll be really helpful when testing at other resolutions (which I haven't gotten to just yet). Appreciate the help :)
Amazing parkour and the video had me hooked till the end
Really appreciate the encouraging words! I love Parkour IRL and I've just realized that the inspiration really shows in this project, lol.
I love your focus on movement. I feel like not enough developers recognize how much a unique movement set can make your game stand out.
The amount of double jumps or Celeste dashes I see people just plop in their projects without a second thought is unreal.
Agreed - I think that with platformers especially there's a tendency to feel like you have to add the "usual" movement abilities that games like Celeste feature without even asking first if your game *should* have them. I also think that it's extremely important to hone things like acceleration and jump feel, perhaps even more so than having a multitude of abilities. It doesn't matter how many moves your character has if they feel rigid or unpleasant to execute.
Put the HUD elements hierarchy as Canvas Layer > Control (with anchors set to full rect) > labels, etc
Thanks for the tip! I'll be re-doing the HUD completely at some point so I'm sure this will help.
Looking good! Nice work with the rain animation and I'm loving the overall color palette and flow you're achieving with this. Super inspiring!
Thanks so much! I definitely feel better having the moody colors after the dungeon section, so it's less of a drastic change. Really glad that you find it inspiring!
The reason you have to offset the X and Y is that (0,0) is the top left corner in screen space. Positive X goes right and positive Y goes down. Your scene is running from -192 to 192 in the X and from -128 to 128 in Y. If you look in the editor you will see a blue rectangle this is the space that will get rendered to the screen.
That makes so much sense, thank you! ☺️
@@Swinkly_ and since you made canvas layer child of camera and it inherited the coordinates of camera and they got misaligned
The hud goes right and bottom from 0,0 while the camera's 0,0 is in it's center
One thing ill note from what I've heard from gamedev tubers is that you should try and expand your playertesters out of just your friends as soon as you can-- friends are accessible, but can and will hold back tough criticism that points out issues because they're your friends!
Definitely hoping to do this as soon as I can! I think that prior to releasing a demo I'll want to at least have a main menu, a hub, and 3-5 stages that the player can try out - not sure how long that will take, but I'll do my best to get there. However, I may share work in progress demos with people in Discord before that point!
Be careful not to get too focused on making a clean "vertical slice" of the game when you are making that demo-- the endless polish loop is not forgiving
you had to offset the ui elements because it needs to be inside the "default" viewport (the purple rectangle) instead of inside the camera. it just so happens that offsetting it by half in your case made it go inside the "default" viewport
That is definitely good to know! Thanks! :)
Interesting way of doing the HUD and fixing your issue! I actually have my HUD as it's own scene and then just dragging it into the scenes I need it for and it seems avoids the issue you got completely. The movement does look incredibly smooth, I like it. I would probably suck at it but enjoy it nonetheless.
That sounds like a convenient solution! If it works with the way I have my character set up I may have to try that. Thanks so much for the positive feedback! I'm planning to probably have easy, medium and hard target times for each stage so players of all skill levels can enjoy it!
@@Swinkly_ adding the hud to the player is something you dont usually do in games, consider adding the canvas layer hud to its own scene, if it isnt too demanding performance wise, you can also add it as an autoload so you dont have to add it to every scene, having the canvas layer in its own scene will just fix its position to the screen so no matter how you move, it will always be in the same position
CanvasLayer position should be entirely unrelated to its hirachy. The large rectangular area below and right to the origin is basically the "Layer" of your screen.
Be sure to try with the anchor points of the children within canvas_layer->control_node->children
Thanks, I definitely appreciate the explanation!
@@Swinkly_ i should note that i might have messed up some things there, so definetly check the docs for ui control node and canvas layer
waaa this project is becoming so cool! please keep up the good work! 🙏❤
Thank you so much! I plan to continue working hard on this project and posting updates as often as I can 😄
Awesome video! Super cool to see another dev going down a 2d speedrunning platformer route! The game looks smooth with solid mechanics. Excited to keep tabs on your progress. You got this!!!
Thanks so much! Really appreciate the kind words. This has been a really fun project so far.
Looks awesome dude! I just started learning Godot myself so these videos are cool to watch.
Thanks! Hope you're having fun with Godot!
Yo this game looks great! Can't wait to speedrun it :)
Just watched your other video too and sounds like we have super similar stories. I'm working on a platformer in Godot as well! Keep up the great work!
That's so cool! I hope your game is going well so far. Thanks for the support!!
Regarding the ceiling drop: I would recommend you looking into state machines. They are really useful for this type of behaviour!
Yeah, eventually I think I will have to rework my code to include a state machine. Hoping it won't be too difficult! 😬
@@Swinkly_ In Godot it is an absolute joke how easy it is. Never had anything to do with game dev and when Brackeys made his tutorial I started with a simple 2d platformer and after like 2 days or so I was able to implement state machines. There are many good sources for sm's out there, don't worry! =)
Amazing work! I was wondering if you've considered also animating diagonal/angled rain (or using godot's particle system) I think it could make it slightly less uniform all of the time but it's really a personal preference. Whenever I've worked on a project in godot I tend to implement day/night and weather cycles most of the time just for fun but I think it makes the world a little more interesting.
Also, I do want to say that the progress you've made is incredible and I'm glad to see where it's going, but speaking from experience it's a good idea to take time off of it every once in a while to avoid burnout. Also, as you get better at programming and learning godot, I do recommend you update old code else you may encounter issues when you try to add new features (and plan for future features and how they may build off of each other -- one time I made a feature for one specific task which future features would need, but I didn't design it to be expandable so I ended up needing to rewrite a lot of the codebase).
Anyway, great job!
Thanks so much! I did initially try to do the rain using particles but had a lot of difficulty since I'm not too familiar with how they work. Definitely something I could revise in the future! A day and night cycle sounds really cool, but also a bit difficult, lol.
As far as my code, I've been thinking about that and - though I'm sort of dreading it - I may have to rework my controller to include a finite state machine soon. As of yet I've just been using a lot of variables like ledgegrab, justbounced, etc. which will probably make adding new abilities and functions a lot more complicated. I essentially wrote my whole controller after learning just the barebones basics of GDScript which means it is probably very inefficient. The code is a mess, but the controls feel great - hopefully that's something I can address as time goes on.
Really appreciate the input and feedback! :)
just getting back into game dev and learning godot you earned a sub
Really appreciate the sub! Hope that Godot is going well for you!!
This would be so much fun if you could make your own levels and share them with friends. I know uploading levels to a server might not be the most feasible for an indie dev but even just being able to export the level as a separate file to share over discord would be cool. Idk how hard it would be to implement, but just a suggestion.
Hey, nothing is necessarily off-limits down the road! For now I'll definitely be focusing on creating a cohesive single-player experience, but it's possible that one day I'd be able to implement a feature like that... I don't know how hard it would be either, but it's definitely a cool idea!
An awesome video highlighting an amazing game! Can’t wait for it to release to the masses and see what everyone does to the leaderboards
Thanks so much! I'm continuing to make good progress and finally on to designing more levels - can't wait to share them with everyone!
I want to play it! keep up the good work!
Brother don’t forget the story , for platformers I think there’s nothing easier to fuck up then how to deliver a story , Celeste is one of the best when it comes to delivering a good story , the gameplay has some connection to the story and the pacing is nice , they don’t put random dialogue in your face and yet they don’t make you talk to strangers , they put them in the start or the end of the level , literally the levels compose from the start of the story (the goal) in the middle , they introduce a new mechanic joining it with the peak of the story of that level (usually they mask the reason you got a new power up with an important event related to the story) and finally a satisfying ending , when they try to make you relaxed to be ready to play the new chapter ⚠️and an important note , don’t try to push the game when it comes to how long is it , it’s better when the game ends on a high note then keeping on dragging the story , one of the best indie games are the shortest (short hike / undertale / Celeste )there is another way of good story telling but it can also go wrong really quick which is the one that hollow knight used and sadly I am too lazy to break it down
For sure! Celeste is one of my FAVORITE games of all time and I totally agree that the implementation of the story in it is absolutely superb. As of yet I'm still tossing ideas around for my own story, but hopefully there will be more details about that coming soon. Going to continue working hard!
Looks amazing definitely gonna follow on this project!
Thanks so much; really appreciate the support!
Great improvement
The donut guy took the challenge too seriously (:
To be fair it was a pretty intense challenge. I'm totally not devastated that I lost 🥲
Game looks awesome, the tilemap especially is really pleasing and I think the colours work really well [thumbs up emoji]
Thanks so much! Having a nice aesthetic is definitely important to me, so I'm glad you think it looks good so far!
Actually looks hella fun!
youtube brought me here and I'm really glad that it did
it looks like a really fun game and I can't wait to speedrun it myself
good job and keep up the good work!
Thanks so much! I'm really looking forward to getting a demo out so people can try it!
The character is very cute I like it. I think there is too much stretch when you jump though. I saw some pots there, I hope you might place a bunch in a row and then you can do that fast slide through them, smashing them with nice sounds.
Thanks for the comment! Breakable pots are definitely on the agenda!
go quick go fast go faster thats what you should name the game
Lol, that definitely captures the goal of the game! I think I've settled on a title though, which I should be announcing soon 👀
Woah. You made that much progress in only a few weeks!?!? I have to ask - what is your background! I am new to your channel - is it art? I often feel like artists who pick up programming go far like this!
Thanks so much! I'm actually not an artist (or, not a very good one) and in the past I've mostly done music production! I appreciate the kind words!
Really nice game dev job and video !
Do you think it could relevant for a fast pace game to set the camera to predict player movement instead of following him ? So he has the vision in the direction he goes.
Thank you! Yeah, I think having the camera lead the player is something to look into - I don't know how to do it right at the moment but I imagine it can't be too difficult to implement. I'll put it on the agenda!
I love the movement mechanics implemented! Will there be a use for the sword on the character's back for more movement options?
Yes! Soon I'm planning to implement the sword swing as a way to interact with levers and switches, and to destroy breakable walls for a start. From there, I'll see what other uses fit with the player's movement!
@@Swinkly_ ooh nice! With the speed of movement in the game already this should lead to cool routings
so cool! looks like a fun game
Thank you! I'm really glad you think so :)
Awesome progress, how have you been distributing your time? The three separate solutions for ceiling collisions are great!
Honestly I'm not extremely organized and tend to work on whatever the most pressing issue seems to be - however, I have started with a To-Do list detailing short term, long term and in-between items that I need to implement or solve and that helps me decide what to work on next. I would say the parts that take the most time are adding new abilities/bugfixing and level design so far. I appreciate the comment!
I see a sword in her kit. So I assume there will be some monsters/opponents at a stage. I am reminded a LOT of Zeliard which also has some speedruns against it, and I hope to also see items and health etc. Looks fun!
Thank you! At the very least, the sword will be used to interact with environmental objects such as levers, switches and breakable blocks or walls. I'm undecided whether "enemies" as such will be included yet, since platforming is the focus, but there might be a way to implement them that keeps the game feeling really fast!
this looks amazing!
Thanks so much! :)
Some of the movement mechanics reminded me of ULTRAKILL which is a definite plus. I added it to my wishlist, so I’m hoping for the best for the project! : )
I haven't played Ultrakill, but now I'm curious! Thanks so much for wishlisting!
@@Swinkly_ Oooo! I think you’ll enjoy it! I’d like to see what you think of it! : D No problem, man!
awesome vibe!
Thank you! 😄
Love the art. I would have made the rain fall at a diagonal angle
I'll definitely try to make that adjustment at some point, I agree it would look much better!
Looks great
Thanks so much!
Wow very impressive video!
Thank you so much :) glad you enjoyed it!
That’s IT I’m subbed!
Also question, do you swear?
Really appreciate the sub! I swear on occasion but I try to keep it out of my videos for the most part, lol
@@Swinkly_ Ty (:
this donut guy is a monster
Definitely agrooba
1 minute in, and the movement mechanics here is literally just ultrakill 2d
looks fun
Thanks! During playtesting the mechanics have felt pretty fun imo, hoping others will agree!
Neat well done
make the rain go to the opposite direction when moving
Yeah, I'm definitely going to tweak the rain so it looks a little more natural!
Basically this game's movement is the same as ultrakill's but translated to 2d
You're the second person to say that 😂 I haven't actually played Ultrakill but now I'm curious what you guys mean!
Are you considering a community discord or anything like that for your game/game dev journey?
I've actually got a link to my Discord in the description! I am posting small updates there in between videos and I may release WIP demos on the server as well!
@@Swinkly_ Oh goodness, I missed it. Thank you.
make the rain diagonal. It will be more interesting! Great game btw!
That's definitely a good idea... I initially made it vertical because it was much easier to animate, but I think I can switch it to diagonal relatively easily.
3:03 Can you put a light how you handled those raycast, I tried but my movement looked janky
Basically the logic is - if ONLY the leftmost raycast is colliding (left edge of character barely clipping): move player's global position 6 pixels (or whatever works for you) right. Similarly, if only the rightmost raycast is colliding, nudge the character the same amount of pixels left. It does look a bit abrupt if you use a large pixel value, so I made sure to use the lowest number of pixels that would completely clear the player of colliding with the ceiling. You can also add conditional statements to prevent it from running when it shouldn't (for example, if you're sliding along the ceiling already; there's no need for this to occur).
@@Swinkly_ ok thank you so much
Hey, just as a piece of advice I would be very careful with the camera smoothing. I know it's very tempting to put in, but in speed focused games especially, having the camera lag behind the character reduces forward visibility and makes it more difficult to see where you're going. If you look at a game like Pizza Tower, the camera doesn't have any lag and just sticks to the character.
Camera smoothing is definitely something I want to keep to to avoid the motion being too jarring, but I also plan to add some lookahead so you can better see where the player is going. It'll take some tweaking but hopefully I can find the right balance.
did this guy just Summoning Salt his own devlog
Hahaha, now that you mention it, I guess I did 🤣
I LOVE speedrunning, when I can play the game I WILL beat EVERYONE!! TRY TO BEAT ME THEN!!!
I'm working hard towards putting out a public demo soon! There may also be access to early unofficial demos in the Discord channel.
Sick!
Thank you! :) I recognized your name from watching one of your platformer videos just a bit ago, lol. Best of luck on Strata, it looks great so far!
Are you going to have a visual indicator to how many wall jumps the player has left?
That is an excellent idea! I'd love to implement something like that soon.
@@Swinkly_ Like Celeste's hair color.
@@theartworkhub Yeah, I was thinking I might put some dots above the player's head when wall jumping that indicate the number of wall jumps left - might even work on adding that today!
I can't wait for Karl Jobst to make a video about how Donut was cheating to get those high-scores...
He would never!
You say that, but you sure have a lot of walls that just stop you outright. It ought to be possible to be in movement at all times instead of running head first into walls all the time imo.
I see what you're saying - I think that mostly comes down to the level design, which I'm still getting a feel for. I think that having more open levels, more sloped platforms and having obstacles and mechanics that preserve speed will help (though I suppose one could argue for a dungeon having a lot of walls is appropriate lol). Always appreciate feedback, whether positive or constructive!
@@Swinkly_ The trade off will of course be that it will become shorter, but that should be by design, if you know the level, you should ideally be able to stay in motion. That doesn't mean that there can't be obstacles, there's a speedrunner, think his name is small ant or something, he plays some pretty tight Mario maker levels where precise input is needed, if you find a sweet spot in between that and making it a bit more accessible then I think that could be a recipe for success.
if youre gonna make a sonic like game, it would be really great if you could make levels that dont force you to stop and start alot. ironically sonic is actually pretty bad at that.
Lol yeah, a lot of the classics actually have way more start and stop than people seem to remember (not that I don't love them). I'll definitely keep this in mind - maybe using more sloped platforms, more open level design and a wider variety of obstacles can help with this.
@@Swinkly_ for me the thing that ruins the sonic games is just the momemntum breaks. it doesnt have to be super fast, as long as its smooth and fluid. thats where i find games like that to be the most fun.
🆙
🙏
subscrived
Hello!
Hi! :)
Oh and running animation could be faster as well, if you want I can try to make one for you
I can actually speed up the animation within Godot's AnimatedSprite2D, which I may end up doing since the character is pretty fast! Thanks for the feedback!
@@Swinkly_ oh and also maybe you can make a mode where your like 5x faster just for fucks
2 weeks only? and you made this? and lack of coding experience? hard to believe but oookkaaayyyy~
You can accomplish a lot if you sit down and work on something for 10 straight hours! (Which I did last Saturday, lol) - I've been pouring a LOT of time into this endeavor. Godot is pretty easy to pick up and there's great resources out there so if you're willing to put in time, effort and tolerate a little frustration you'll see great results!
Found the problem with why the HUD follows the player: youre using godot 💀
More like me not understanding Godot 😂😅
Make the game faster(everything 2x)