Tumgik
#protodungeon
thewakingcloak · 15 days
Text
Testing a new method for tall grass :)
Tumblr media
(don't worry, there won't be a random square patch of grass on the beach, this is just The Test Grass)
Before, I was using the Game Boy Zelda game trick: grass is a tile, and then I just throw a grass sprite on top of the player to make it look like they're inside it. Clever, and it's surprisingly convincing!
But now, this uses the sprite tilting method, which I've been using heavily throughout, to create "3D" grass, and it works so much better than I expected. Also more consistent with the perspective I'm going with!
Tumblr media
Wheeeeeeeee
90 notes · View notes
shalmonsdraws · 1 year
Photo
Tumblr media
more wizards this one is a wizarfication of @thewakingcloak ‘s character!
33 notes · View notes
loomimoosh · 5 years
Text
I wanna make a PMD game
It would have the graphics of Explorers with some mechanics from all the games so it’s just the best of all of them
Like the hunger meter and character select from Super Dungeon, the L-move menu and move levels from Gates, I don’t fucking remember Red&Blue Rescue aka ProtoDungeon but I’m sure there’s some cool mechanic I forgot about from that game
Plus some original ideas I had
Hang on I’mma write up a synopsis
Who’d be into that idea? Maybe not even making the actual game but just designing the best one
4 notes · View notes
thewakingcloak · 10 months
Text
this is fun :D
dashing is not an ability I had initially planned for, but it's turning into one of my favorites
78 notes · View notes
thewakingcloak · 3 months
Text
The State of Things Present
this post was available for patrons a week early! please consider supporting me over on patreon!
I kept trying to make this post fancier and better and more engaging, and then I realized I was doing that thing where I make myself too overwhelmed to actually finish and post it. The other thing was I kept gunning for a once-a-week posting, and uh… yeah that's not sustainable. So here we go!
The Ghost of Spacefarer Present appears before you He whispers, very quietly, yet in a voice that resonates: "Time to resurrect the Spacefarer"
Ok so the spacefarer (me??) was very tired, but he's awake now and doing things!
Life status
We moved! My wife and kids and I packed up and headed some miles south of our previous house. It was a risk for sure. We didn't know how things would pan out. We really needed to get away from our old environment, our old town, our old house. We loved that house, and we'd said so to each other many times even as we were halfheartedly searching for a new one. But at some point that house had become too burdened with bad memories and traumas, not to mention that after the pandemic, we had no more real roots there. Everyone had moved away, the communities we were involved with had disbanded or changed. And anyway, my wife would be starting a new teaching job down south.
We were fortunate enough to find a new house we loved, and fortunate enough to be in a position where we could actually make the move. I'm aware this is a privilege, given the economy and the market, and so I can only express my thankfulness and consider it a blessing, especially as we healed through our grief.
I have an improved office now! This is where I work on my day job (software/web dev) and my unday job (Studio Spacefarer). With my genetics stacked against me, but also with my desire to be able to keep up with my kids and be there for my family, I collected a standing desk, a walking pad treadmill thing, and an ergonomic keyboard. I'm walking or at least standing most of the day now, which has made a surprising difference already.
Tumblr media
I was gonna post a wider view of the office, but my 3yo son ran up while I was taking pictures and started "working" (mashing the keypad), so this is automatically the better pic. Them's the rules.
Anyway, in short, we made it, and it hasn't been a smooth ride the entire time, but it has been well worth it. I've been able to get back into gamedev, which has been a huge boon to my mental health too.
Speaking of… (ghostly drumroll)
Game status!
The good stuff. Here's where I'm at presently with Episode III!
The game is completable from start to end (definitely NOT feature complete)
Jumping, swimming, and dashing all work like a charm and are super fun
Three enemy types have been added, including custom A* pathfinding for the sea monster
Two new collection mechanics (one is heart containers, the other will be a small surprise)
Depth sorting and fake-3D, as mentioned previously, which lets me do lots of fun effects
Day/night are now on a new system, and cave darkness is now a thing (I tried to implement this in PD2 but couldn't figure it out)
Palette swapping for night and lighting effects now uses GameMaker's built in layer effects
Much of the game is now decorated
Updated the game's palette to be more pleasing
Better borderless windowed mode, frame toggling, etc. (I'd made a post about a third party plugin I used to do this previously, but not long after that, GameMaker added an official setting to be toggleable at runtime, so I switched to that… much easier lol)
New audio library which has been a MASSIVE boon (Juju's Vinyl)
New flexible debug/inspector mode which allows me to change values on the fly more easily
State machine rewrite using structs instead of data structures--extremely flexible and less  error-prone (in fact the data structures here were the #1 cause of crashes in Episodes I and II)
Save system rewrite, also using structs instead of data structures (thus fixing the #2 cause of crashes in the first two episodes)
Adjusted the way walls get displayed in interiors--will make a post on this later
Lots and lots and lots and lots of bug fixes
Post end status!
I'm not exactly sure how to wrap this up lol, but y'all can be encouraging me, if you have the emotional space to do so! There's still a lot left to do on PD3, and it can be very daunting at times.
Next post up will be looking forward to the future of Studio Spacefarer. I'm very excited about this! Keep an eye out!
20 notes · View notes
thewakingcloak · 1 year
Text
Tumblr media
One of the things that had been blocking me (heh heh) was various collision and 3D issues with the pushable blocks. These are all resolved!!!!!
Still workshopping the block sprite but I think we're getting there
57 notes · View notes
thewakingcloak · 1 year
Text
In order to do borderless windowed, I had to turn off the normal window frame. Yellowafterlife came up with a plugin that adds the frame back, so now you can play windowed and actually move the window around, or even play with it "maximized" with a black background. "Fullscreen" borderless windowed still works of course.
Not the most exciting update ever, but I'm getting back into the swing of things. 🙂
44 notes · View notes
thewakingcloak · 1 month
Text
Intermission
The Ghost of Spacefarer Future is working very hard on his speech and has informed me that he needs more time.
SO!
I thought I'd give y'all an update on the things while that's going on. I've been making great progress on ProtoDungeon: Episode III and wanted to share what has been accomplished:
Fixed an issue where the player would get stuck in the walk state after getting a key or item
Updated the app name on Steam from "ProtoDungeon DX" to "ProtoDungeon: Episode III"
Fixed a box that could not be pushed (turns out it was embedded in a rock face)
Prevented a key from floating on the water when it should not float on the water
Fixed dash state having no way out except to slam into a wall
Fixed rotational checks when using a joystick to move
Settled on a new tall grass sprite/tile and will include it in the game soon
Switched to GameMaker's new(ish) built-in tile collision instead of my previous cobbled-together, extra-janky tile collision script
Implemented GameMaker's new fullscreen borderless mode and included it as a display setting, meaning people can now choose between real fullscreen and real borderless fullscreen (or the other smaller resolutions of course), instead of my cobbled-together, extra-janky window positioning shenanigans
Lots of detail and polishing work! Most of what's happening right now is playing through the game over and over, noting any roadblocks or bugs, logging them, and fixing them. Also, while the game is not yet feature-complete, I've started trailer planning, meaning I'm identifying everything that needs to be done so I can create a trailer. Excited about that.
Thanks as always for following along! I'm going to go see if ol' Future Ghost fell asleep.
14 notes · View notes
thewakingcloak · 4 months
Text
The State of Things Past
this post is mirrored from the Studio Spacefarer Patreon! please consider supporting me, and you’ll get access to devlog posts, gifs, and other info before the public!
Like I mentioned in my previous post, The Waking Cloak has been in development for eight years.
ProtoDungeon: Episode III has itself been in development for a few years, pretty much since 2019 (oooof). I've gotten plenty of questions about how the project is coming, as well as the occasional question of whether The Waking Cloak / ProtoDungeon is even alive at all at this point. Thank you for asking this. It means people are still interested in these games.
Okay, but still, what happened? Why are things taking so long? Well, this post is the first in the Christmas Carol series, in which the ~Ghost of Spacefarer Past~ appears to explain things (wooo spooky explanation sounds).
Progress has been made, very slowly, on ProtoDungeon: Episode III. I'd love to have done more, but, well… in the time since I released Episode II, we continued adjusting to parenthood for our first kid, went through the pandemic, had a second baby (who is now almost 3yo), and survived through a series of really difficult events, which culminated in a move to a new house in a new town and the start of a new chapter (but that last bit we'll save that for the Ghost of Christmas Present so he feels useful).
But yeah, it's been a rough ride. My wife and I are intentionally open about what's been going on. At the same time, the internet is an extremely public place, and I don't want to overshare, or worse, trigger anything for anyone, so I'll try to keep this list brief:
Two miscarriages (the first one was late term, and absolutely, brutally devastating)
The loss of our faith community due to the pandemic
Loss of job for my wife due to the pandemic (the pandemic was unkind to teachers)
Loss of a dream job prospect for my wife (same issue)
The great Texas freeze and power outage (us huddling under blankets in shifts through the night with our newborn infant (he's fine now!))
Severe, life-threatening post-partum and post-natal depression
Family covid and two-week cabin-fever quarantines (twice, despite being vaccinated and careful)
The death of my grandma (we were not able to attend her memorial due to aforementioned covid and living on the other side of the country)
Multiple heart attacks for my father despite his active and healthy lifestyle
Autoimmune disease scare for my wife (may still be a thing, just dormant?)
etc., etc., ad infinitum.
A lot of people have had things significantly worse, so this is definitely not an attempt to "compare griefs" as it were. This is just context for, no matter how much I wanted it to be otherwise, the fact that I didn't have the mental or emotional (or temporal) space for creativity. It was one thing after another, and we were just trying to keep our heads above water.
Even when we'd mostly recovered from the hits that just kept comin', we moved away from what my wife lovingly refers to as the "trauma house", and she started a teaching job at a brand-new school. Both were good things, but they were pretty big transitions, and it takes time for the ol' brains to adjust. We love our new home now and have a bit more breathing room.
Okay but also I HAVE been working on ProtoDungeon. Dev was really sporadic, but it did happen. The next post will have more detail on the status of Episode III, but there were kind of two big things I worked on during the past three years, big shifts in the foundation of ProtoDungeon and The Waking Cloak.
First, I switched game perspective. I made a few posts about this a while back, but PD/TWC interiors were originally like Zelda interiors (where you see the insides of all four walls). There are good reasons to do this, but it was also kinda making me crazy. So I switched to a more natural front-perspective, keeping things consistent with the exteriors. It definitely was the right choice for the game I wanted to build, but it took time.
Second, and building on that, I made the game fully faux-3D. You can walk behind or in front of stuff--not something the old Zelda games did, and still pretty rare for 2D games. I was toying with the idea for a long time, but I played through an old PlayStation title, Alundra, and that convinced me it could be done. It's way harder than you might expect, and it was a massive block for me for literally years. I was able to slowly work my way past it and finally resolved it with a 3D z-tilting method, but dev slowed to a crawl.
And that's it for now! The ghost releases you from your vision of Spacefarer Past….
Thanks for reading :)
11 notes · View notes
thewakingcloak · 4 months
Text
2023: 8 Years and a Christmas Carol Devlog
this post is mirrored from the Studio Spacefarer Patreon! please consider supporting me, and you'll get access to devlog posts, gifs, and other info before the public!
Well y'all, I've been working on The Waking Cloak (and, by association, ProtoDungeon) since 2015.
Eight years.
Eight is a pretty terrifying number of years. I naively expected this do be done in maybe a few years max, so when Tumblr (the first place I started posting back in 2016) informed me was turning seven, it was quite the disorienting revelation.
I had to reprocess a lot of the emotions about how it feels to be a solo hobbyist dev, with others who are more well-funded or just with more staff and time "passing me by." Some beautiful games have come out in The Waking Cloak's genre, and are still coming out--Tunic, Death's Door, Mina the Hollower, to name a few.
That may be something that always stays with me (this definitely isn't the first post I've had with this sentiment haha). Still, I'm learning to reframe, re-teaching myself to be thankful, and actually really enjoying these other offerings folks are making. A friend of mine reminded me of the two cakes philosophy. As a developer, I see other games initially as something that will drown out my own offerings. But players will just see more games in the style they enjoy--more cakes.
All that aside, I've been really excited about where I'm going to take Studio Spacefarer next. I've been working on ProtoDungeon: Episode III behind the scenes more and more consistently (which means The Waking Cloak is getting its foundation of course). And I've got some upcoming announcements for y'all that I think you'll really like. So what's on the way? Gonna do this Christmas Carol ghost style:
The State of Things Past: Where development has been at, why it's taking so long, life status update, etc.
The State of Things Present: What's happening now, ProtoDungeon: Episode III stuff
The State of Things Yet to Come: This'll be the fun one--plans for 2024 and beyond for Studio Spacefarer, The Waking Cloak, and ProtoDungeon!
I'm hoping to be more consistent here on out. No promises--this IS a hobby--but I do have a plan too.
Until next time. :)
8 notes · View notes
thewakingcloak · 1 year
Text
update de palette!
Finally got around to updating the browns on my palette. Bit of desaturation, bit of red hue, removal of the sour greenish-yellowish-tan color which I've always hated...
This is at least the fifteenth update to this palette, which I've been working on for pretty much six years now
Left is old, right is new. Check out the shipwreck, the tree trunks, and the dark sand! I was even able to get rid of a pointless mid-brown hue!
Tumblr media Tumblr media
48 notes · View notes
thewakingcloak · 1 year
Text
Made a lil freecam so I can debug! This lets me check that everything is set up properly without having to finagle the player character into the correct position!
The debug command line is the amazing rt-shell for GameMaker!
52 notes · View notes
thewakingcloak · 2 years
Text
How to use GameMaker's filters for lighting!
Got a new lighting system for ProtoDungeon 3. Take a look!
I had a similar effect in 1 and 2:
Tumblr media
The difference? Now I'm using GameMaker's new filter system, and it seems to make things run much more performantly. I wanted to share with you how it was done!
First, a little on how the effect works:
Behold a daytime scene from ProtoDungeon 3!
Tumblr media
For a cool nighttime effect, instead of just making things darker, let's employ a Hollywood trick and shift everything blue:
Tumblr media
Okay and now the fun part: lighting! For that we just don't do the blueshift in a particular area (if you've tried this before, you know it's easier said than done)
Tumblr media
Here's how it's done!
Part 1 - The Filter
ProtoDungeon and The Waking Cloak already use palette shifting to represent nighttime thanks to Pixelated Pope's excellent palette swap shader, (which I still highly recommend for individual layers or sprites!), but there are some limitations when trying to apply a palette swap effect to the entire game, and I kept bumping up against those limitations.
Cue GameMaker's new filter layers! Filter layers are basically just built-in shaders that apply to everything below them.
Tumblr media
There's a lot of kinds of filters. Here's an example of a Contrast/Brightness filter (which I will eventually be using to replace my existing janky shader):
Tumblr media
So how did I get Night_Filter working? What I've got above isn't an out-of-the-box filter
I tried a few methods here. Color Balance, Color Filtering, and Colorize all do neat things and are more than capable of making a nice "blueshift" (and I may still use them for tweaks later). However, I wanted to stick strictly to my palette, meaning when I blueshift the daytime colors to nighttime colors, all those nighttime colors are also in my palette. Very recently, the LUT Color Grading filter was added to GameMaker, and this provided a perfect opportunity.
Tumblr media
Okay, so what is LUT Color Grading? LUT stands for "lookup table." You have an image, the LUT Texture, that contains a HECKTON of colors--in this case our table is 512x512 pixels = 262,144 colors. Each color maps via its RGB values to a specific location on the table.
Tumblr media
There are a lot more than 262,144 colors (RGB supports 16.7 million), but the filter's shader handles the "in between" colors too. It looks up the color's position on the table and changes it to whatever color is actually there. If we used the table above, it wouldn't actually do anything, because when it looks up the position of each color, it finds... that color. What we need for a palette swap is something more like this:
Tumblr media
This is what I made by taking the original LUT image (which I found in a secret GameMaker folder), opening it up in Aseprite, selecting the colors I wanted to change, and then doing a color replace at about 30% tolerance:
Tumblr media
And then did that for all the colors!
You could use any image editor if you wanted to do a simple palette swap this way. (Also, technically, it doesn't have to be at 30%. It can be much lower, but I found it could be a little finicky for some colors.)
Once you're done, you add it as a sprite in GameMaker, then select that sprite in the LUT Colour Grading filter, and voila.
Part 2 - The Lighting
Okay, so that works! Now for the lighting! Remember above where I mentioned not doing the blueshift in a particular area?
Tumblr media
Well, the issue is... you can't punch holes in layers for the lighting (I tried). I also tried a similar method to what I had before: each light is an almost-invisible, translucent circle that alters the colors just enough to not trigger the palette swap. Unfortunately, with the color lookup table, this was finicky and unreliable.
The answer? Don't do any of that. Use surfaces instead! (It's always surfaces, somehow)
So the basic idea: copy the lighted (unfiltered) areas below the LUT Color Grading filter layer to a surface before the filter is applied, then paste that surface after the filter is applied.
I know that sounds wild but bear with me.
We'll need a few things for this.
2A - Light Objects
Mine are a fair bit more complicated since I have a state machine and all kinds of activation/deactivation code. The main thing we'll be using for this is pretty simple though: keeping track of a radius and having a position (with x, y position being built in, of course).
I called it obj_light. If you wanted, you could just have the Create event do "radius = 16;" (or whatever number) and just put one of them wherever you want light to show up.
For an extra flicker effect, I use random_range every five frames between radius - 0.5 and radius + 0.5, but I'll let y'all figure that out.
2B - Light Manager
Next, we'll create an object to kinda just set stuff up. We'll call it obj_light_manager. I made it visible and persistent. In its Create event, we'll create two surfaces, one for lighting and one for masking (I'll explain that in a bit). Initially, I just made them both the same size as my base resolution (320w, 180h).
global.lightingSurface = surface_create(320, 180); global.maskLightingSurface = surface_create(320, 180);
Tumblr media
Then we'll add a few cleanup events (always clean up your surfaces so you don't have memory leaks). I put this in both Room End and Game End events:
if (surface_exists(global.lightingSurface)) surface_free(global.lightingSurface);
if (surface_exists(global.maskLightingSurface)) surface_free(global.maskLightingSurface);
Now for the magic part: in the Room Start event, we'll hook into the layer's events with layer_script_begin and layer_script_end.
var _nightFilterLayerID = layer_get_id("Night_Filter"); layer_script_begin(_nightFilterLayerID, lights_surface_create); layer_script_end(_nightFilterLayerID, lights_surface_draw);
2C - Layer begin/end scripts
Alright let's make those scripts now, lights_surface_create and lights_surface_draw. I'll drop these in pastebins with some comments since they're a bit lengthy and tumblr's code formatting is nonexistant:
lights_surface_create
lights_surface_draw
The explanation for how they work is all in there. Basically, we'll copy the light areas (not filtered yet) to a surface before the night filter takes effect in lights_surface_create, and then in lights_surface_draw we'll paste them on top of the night filter, and voila, lights!
Tumblr media
Note: since I'm using subpixels, this method produced non-subpixel lights, which was pretty jarring. In order to make this work with subpixels, I made the lighting surface the base resolution multiplied by the zoom factor, 1280x720 with a 4x default zoom. When I draw the mask surface to the lighting surface, I have to use draw_surface_stretch. Finally, instead of using layer_script_end, I had to draw global.lightingSurface stretched in the Post-Draw event after the application_surface is drawn.
Let me know what you think! Thanks for reading!
117 notes · View notes
thewakingcloak · 1 year
Text
Thank you for this amazing art of ProtoDungeon Girl @shalmonsdraws!! This matches so well what I had in my head 😁
Tumblr media
19 notes · View notes
thewakingcloak · 2 years
Text
AHHHHH
AHHHHHHH
AHHHHH
(so, development is going well...)
70 notes · View notes
thewakingcloak · 2 years
Text
I made it better! With AI, the sea monster can now chase you down properly! Yay!
57 notes · View notes