Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Drew Harry

63
Posts
2
Topics
16
Followers
9
Following
A member registered Feb 02, 2017 · View creator page →

Creator of

Recent community posts

Thank you so much for this feedback! It’s certainly the game I’m the most proud of. But weirdly, it got much LESS of a positive reaction than runner did. I thought this would be more of a crowd pleaser with actual progression, biomes, traditional combat!

I realized the week after the jam I made my life far harder than necessary with the knock back animations. I should have just put arrow icons in each tile visualizing final destinations. The push animations were at least a day of dev time and they never fully worked the way I wanted. Weird stuff like showing wall collisions got very complex.

Balance is so tricky when the numbers get chunky. The difference between 0, 1, and 2 knockback feels HUGE in terms of tactical implications. And then figuring out wall damage versus weapon damage. I don’t think this is right, yet. I’ve considered cyclone only working on the cardinal directions, maybe there’s a facing system and it’s the front arc only, cooldowns, … I also suspect that balancing with HP alone is a problem. It may be better to have hp, armor, and stability – armor reduces weapon damage, stability reduces knockback. Then you can get enemies with more flavor, and builds can specialize a bit more. You may be a damage build versus a knockback build, and struggle with the opposite enemy types. But then I need UI to visualize all this complexity!

Now that the library I used, Prism, hit 1.0 I want to rebuild and extend. I feel like there’s so much here that I could build on. More enemies, more weapons, huge upgrade path potential, more flavorful level generation, a meta structure for different missions/runs leading into “one final job”, and much more. More than runner or gridlock, I have a sense the bones here are good and can sustain a lot more weight.

I’m encouraged to hear it worked with Proton. I’ve been contemplating a Steam Machine to replace my PC, but was concerned I might not have access to the *DRLs. Was it hard/annoying to setup?

Ooooozing style. Love it. I didn’t get deep enough in to feel super challenged. But the vibe of melee attacks + ranged attacks was felt good. Hyperjump was a cool conceit that both made the world feel a little different and felt like I had some superpowers even within a room to close quickly with an enemy.

Readability was a little tough. Should I be scared of that symbol? The vibe I guess is “learn to read the matrix.” But having essentially one hue for everything didn’t exactly make that easy. :D

Had a strong sense of build variation possible. I didn’t play enough to really know how viable they were. Reminded me of Jupiter Hell in that regard. And of course they are all thematic. :D

Does what it says! Basic roguelike vibes. Exploring feels good, level-ups are chunky, I like the action-based weapon+skill+potion system. Combat isn’t the most complex, nor are builds really a clearly differentiated or intentional element. But as you said with your goals, you’re ticking some functionality boxes here and it delivers on all that stuff. Love the art, did you do that??

Some small bugg-y notes – spiders can throw webs to places they can’t see, and bombs can explode through walls. Similar root cause I assume.

Wow, what a complete package! Very cool core mechanic with the inverting spirit/real worlds. Robust item system, cool visuals. Loved when I saw the ghosts in both worlds. No win for me yet. My only critique is one of personal taste; there is some skill expression here but it’s also quite possible to lose due to an unlucky run of traps. Many people may not mind; that’s a common rogue-like feature.

Delivers on the Brough-like promise! I don’t have a win yet, but I definitely understand the core mechanics. Tight and sharp.

It’s a little odd that actions don’t consume the CTX queue, so it’s often desirable to get a move on lock and then stop moving as much as possible to not mess it up.

Something about the move select / target keyboard patterns didn’t ever quite get intuitive to me. Not sure why or what to suggest. It’s hard with PICO8 input limits. But I have a hunch something more simple is out there.

It’s not that I don’t understand what they’d do mechanically. But when I stare at the list and think “do I want this?” I have different reactions.

Heal – 1 is not a ton, and the way I tend to die is facing big dice that for whatever reason end up on high pips and I don’t feel like I die much to 1s and 2s. Plus if heal is on a lower number, often the way I’ll get it to trigger is by having to take damage. So the way heal is valuable is if (1) I’m taking small damage regularly, and (2) I can get the heal side up, adjacent to an enemy, and that enemy either will die to my heal side directly OR it does less damage than I’ll heal.

This dynamic is at play with all of them in different ways. How much do I value a shield? Poison? Sleep? The situations where those are impactful are kind of marginal. So I value them a lot less than I value “do more damage.” Which is why I love ranged; it is both intuitive and always straightforwardly good.

Blink and speed feel almost … bad to me. If I was good, they might be powerful. But I’m already struggling to get on the right side, and speed in particular makes that harder to think about. It may be good, but for a new player it contributed to my feeling of “it’s hard to plan moves.”

I see your point about taking away the hardness. I would personally experiment with projecting the pip you would be on in the spaces around you and just see. Sometimes making the mechanical state of the world explicit can reveal deeper strategies faster. Your brain is not doing the basic prediction problem and then is doing deeper strategy. That may not be true. But it could unlock the item issues I’m describing if I can see clearly “oh I could maneuver myself into a state where I could hit poison on that big guy and get away cleanly” and then I value poison a lot more.

It’s not that I don’t understand what they’d do mechanically. But when I stare at the list and think “do I want this?” I have different reactions.

Heal – 1 is not a ton, and the way I tend to die is facing big dice that for whatever reason end up on high pips and I don’t feel like I die much to 1s and 2s. Plus if heal is on a lower number, often the way I’ll get it to trigger is by having to take damage. So the way heal is valuable is if (1) I’m taking small damage regularly, and (2) I can get the heal side up, adjacent to an enemy, and that enemy either will die to my heal side directly OR it does less damage than I’ll heal.

This dynamic is at play with all of them in different ways. How much do I value a shield? Poison? Sleep? The situations where those are impactful are kind of marginal. So I value them a lot less than I value “do more damage.” Which is why I love ranged; it is both intuitive and always straightforwardly good.

Blink and speed feel almost … bad to me. If I was good, they might be powerful. But I’m already struggling to get on the right side, and speed in particular makes that harder to think about. It may be good, but for a new player it contributed to my feeling of “it’s hard to plan moves.”

I see your point about taking away the hardness. I would personally experiment with projecting the pip you would be on in the spaces around you and just see. Sometimes making the mechanical state of the world explicit can reveal deeper strategies faster. Your brain is not doing the basic prediction problem and then is doing deeper strategy. That may not be true. But it could unlock the item issues I’m describing if I can see clearly “oh I could maneuver myself into a state where I could hit poison on that big guy and get away cleanly” and then I value poison a lot more.

It’s not that I don’t understand what they’d do mechanically. But when I stare at the list and think “do I want this?” I have different reactions.

Heal – 1 is not a ton, and the way I tend to die is facing big dice that for whatever reason end up on high pips and I don’t feel like I die much to 1s and 2s. Plus if heal is on a lower number, often the way I’ll get it to trigger is by having to take damage. So the way heal is valuable is if (1) I’m taking small damage regularly, and (2) I can get the heal side up, adjacent to an enemy, and that enemy either will die to my heal side directly OR it does less damage than I’ll heal.

This dynamic is at play with all of them in different ways. How much do I value a shield? Poison? Sleep? The situations where those are impactful are kind of marginal. So I value them a lot less than I value “do more damage.” Which is why I love ranged; it is both intuitive and always straightforwardly good.

Blink and speed feel almost … bad to me. If I was good, they might be powerful. But I’m already struggling to get on the right side, and speed in particular makes that harder to think about. It may be good, but for a new player it contributed to my feeling of “it’s hard to plan moves.”

I see your point about taking away the hardness. I would personally experiment with projecting the pip you would be on in the spaces around you and just see. Sometimes making the mechanical state of the world explicit can reveal deeper strategies faster. Your brain is not doing the basic prediction problem and then is doing deeper strategy. That may not be true. But it could unlock the item issues I’m describing if I can see clearly “oh I could maneuver myself into a state where I could hit poison on that big guy and get away cleanly” and then I value poison a lot more.

Cute and simple concept. I like how this turns “waiting” on its head. Part of what annoys me most in traditional roguelike combat is that there’s this gameyness about who gets the first hit in, and it’s either always the player (if the enemy is melee; you just wait and they come in range then you hit) or the enemy (if the enemy is ranged). I really like how “wait” comes with this risk of what side you’ll roll. Thematic and cool.

Maybe it’s my brain, but I had a hard time predicting/thinking through “oh I want a high pip number (or special pip like ranged), I should make this move then that move and I’ll get what I want and the enemy will be in position.” Maybe there is UI refinement that would make this easier to hold in my head.

The upgrades didn’t always makes sense to me, and some seemed great (ranged, especially) and others I didn’t really get how I’d use.

You know how you play a game with a cover system and then walk around the world thinking “oh that’s good cover?” OGRE gives me that feeling a little. “Oh, that’s a weapon, that’s a weapon, THATS a weapon.” But also the asymmetry that what I really fear is the puny archers.

Obviously not a full experience but it gives me the sense that this could be a fun point of view to inhabit as opposed to the “normal” frame of a weak adventurer who gets stronger over time. It’s great to feel strong out of the gate.

I would love a video of my game, RECLAIMER, if you find it interesting!

https://drewww.itch.io/reclaimer

Curious if you’d be willing to update the rexpaint version to match the v1.1 extended designs? Not a big deal, but would be helpful!

Shame about the x3 issue. Would love to have those availble in rexpaint, too. Like some others in the comments, playscii’s UI doesn’t click for me for some reason.

Dig dig dig dig dig. Love it.

This is so in your style! Obviously I love the “shift” movement. That’s maybe a hint of my style in there??

I struggle a bit with these more mysterious mechanics and my patience for working them out is relatively low. But it’s visually really compelling and the mysterious/threatening world is a cool vibe. I love how it looks when the arcane gates(?) open and warp the world around you.

So cute, love the sprites and the world. Fun to travel UP instead of DOWN.

I’m curious about TIC80 now. The limited inputs and screen of PICO8 were always a bit of a turn-off to me. Great introduction to what it can do.

Unbelievably gorgeous! What a sharp aesthetic, carried so well through the whole game.

I didn’t totallllly get the time travel bit. I didn’t feel super pushed to need it. I completed the game only using phasing for teleporting. So I think I’m really missing something important.

Thanks for playing!

Performance is probably not intentional; it’s a home grown engine with some inefficiencies in the rendering core that I need to swap out. Friends don’t let friends fillText every cell every frame! Cache those images! Or make sprites like a normal person!

I’ll play some more with the animation. I recall some reason in early prototyping why I didn’t go fully smooth, but that reason may be irrelevant now. :D

Death freeze, hmm. Can’t recreate. But if you have any JS logs it might help me find it.

I needed help figuring out the controls.

Off-the-charts levels polish and scope in here. Incredible work. Beautiful little levels and sprites. And an innovative little spell system to top it all off! So impressed.

Mind-bogglingly cool rendering style. When I heard it come out of speakers I laughed out loud. So delightful, and the way the complexity of the screen turns into sound … chef’s kiss. Especially how proximate enemies fuzz your screen and your audio in a deterministic manner. Really incredible aesthetic work here.

(1 edit)

What delightful theme-ing! A really fun twist on Invisible Inc.-style vision management. I sometimes found the perspective/click targets for selecting a movement destination to be a little confusing.

Thanks! After a failure “b” should get you back to the title screen. But restarting games successfully has always been … a challenge for me.

Alright, objectives are in.

Green targets on the minimap show where you can find your next objective.

Your target is lit up! (This is too much light, tbh, but I’ll tone it down tomorrow.)

Bump into it to steal its precious cargo.

Do it three times and you’re done! No problem!

This was, of course, harder than it looks for various reasons. But it’s working. So now we REALLY have a game on our hands. You can die, and you can win. Great!

Driving Feel

The afternoon was spent on bugs and driving feel. I prototyped the core driving mechanics before the jam to make sure it was possible and fun enough. It’s hard to write about this sort of thing because it’s so qualitative. But here’s what’s changed:

  1. Added an “energy” system so you can’t use turbo indefinitely.
  2. Fixed a bug where you couldn’t collide into a wall if you were “sliding.” This is a pretty un-generous-to-the-player change to make, but it had the effect of making turning in traffic very hard (huge turning radius) but if you turned into an alley you could make it work at max speed no problem. That unpredictability felt off to me. But I may revert this later if it’s simple too easy to crash now.
  3. Tuned steering parameters up and down a bunch. Essentially, it’s easier to make tighter turns now. The car’s turning radius is ~2 tiles now, and it used to be ~3.
  4. Fixed braking, and differentiated it from retro thrusting. You can enter movement commands “against” your movement direction, which will slow you but never stop you. To stop, hit spacebar. Whether this will be used or not, I’m not sure. It enables a perfect 90 degree turn if you time it right. I may also use it for regenerative braking? TBD.
  5. A lot of finnicky work with inputs up/down/repeat to make it feel more intentional.

Test Track

I got tired of testing these changes in the game world itself, so I added a little test track.

Cute huh? I aim to ship this track plus maybe a more complex one with more enemies so players can learn the mechanics. I hope to manage a bit more tutorialization before the end, but in case not … this will at least give you a simpler environment to get a handle on the controls.

Next Up

We’re over the hump now. What’s left?

  1. Get reload and map changing working. From the title screen, select which mode to start and load that in properly. Ideally, get a refresh working too, so you don’t have to fully reload the page like last year.
  2. Add some enemy munition variety. Right now it’s all emp-clouds, but I have ideas for more options.
  3. Figure out how to place enemies in the world in a fun way. Randomly placing cameras feels pretttty good but not perfect.
  4. Put all the pieces together and balance the core experience. Vision radius of all the enemies versus your speed versus helicopter speed. Many knobs to to turn here.
  5. Fix some world generation bugs.
  6. Crank on building out some building variation so it’s not quite so drab out there.
  7. Performance optimization top to bottom.
  8. If you complete enough objectives, go to day 2 in a different city.
  9. Make a “starting building” for the player that’s consistent.
  10. Make an “exit” building for the player that’s consistent.

Is that it? Easy.

The antagonist has arrived! In RUNTIME you’re hunted from the skies by an automated drone. Spend too much time in its spotlight and it will disable your robot and end your run.

For anyone who remembers runner from last year, you will recall the HUNTER. It chased you through the sub-basements of a corporate tower. The HELI this year has a number of advantages: it can fly anywhere, move almost as fast as you, and move diagonally. But it has a problem: it doesn’t know where you are. If any enemies manage to get a “lock” on you, they give HELI your location to come lock you down.

image.png

The CAMS are stationary but plentiful. Try to avoid their watchful eye!

When a BOOMER picks up your scent, it runs at you and explodes, leaving behind impassable terrain and usually causing a crash.

TURRETs are stationary but have a variety of munitions to ruin your day: EMP clouds (above), caltrop zones, oil slicks, and smoke screens.

The bottom right corner now hosts a mini-map that shows an abstract view of the city (incidentally, re-using my city generator models as a UI) with fog of war and indicators for the player, the HELI, and (soon) objective locations.

Overall – highly productive day. I should have swapped my day 2 and day 3 work. Getting enemies (especially the HELI antagonist) built feels really important for having something playable. I can start to feel the game now. I don’t know if it’s good but there’s something in there.

Next Up

To really close out the core gameplay loop, I need objectives. I think this is going to be special vehicles that wander the city that you need … bump? … to steal their cargo. Let’s say 3 objectives per level, you gotta get them all, and then make it to an exit point on the edge of the map. This should be relatively straightforward. The main thing I don’t have a plan for is the “steal” action. I guess bumping is the main verb at the moment, so we’ll just do that.

Then I will switch to movement tuning. The movement has to feel SO smooth and it’s far from that point. I want to add an energy system to limit turbo usage, fix some input buffering issues, fix the “drift” marks, make braking actually work (or remove it), and tune some bits of the low-speed logic. This is all vibes. Not normal roguelike work, but I’m enjoying these really micro input considerations.

(4 edits)

Images and video

Today was vehicles day! What are city streets without traffic?

I built:

  • A basic pedestrian entity, that uses a simple nav-mesh system. I place invisible entities that pedestrians look up to decide where to move to.
  • Added multi-part vehicles.
  • Intersections, with stop lights and a working “cycle” system.
  • A vehicle “consumer” that deletes vehicles nearby who get off track.

My level design collaborator filled in the remaining holes in the generator block types for roads.

I spent a lot of the day on a mistake – I thought I wanted vehicles to spawn in continuously from “deadends” in the road network. There was a certain logic to this. It turned out to be both tricky to implement (the multi-tile vehicles are finicky) and when I got it working, the streets were just flooded with traffic. Plus it made me realize that the actual network itself needed to be coherent; there could be no loops. All traffic needed to move from a source to a sink reliably.

Over dinner, I was bemoaning my poor planning to my son and as always rubber-ducking my problem made me realize my error. What if I simply … baked the vehicles into the road tiles themselves. It’s not quite as systematic. But turned out to be a lot easier and a lot more reliable.

So I exited the day with roughly what I was aiming for. A working vehicle system that the player can interact with dynamically.

Next Up

The days go fast! My high level modules left are:

  • Enemies + “death”
  • Player movement tuning (and add energy system)
  • Player abilities
  • Objectives + success
  • Multiple levels
  • UI polish (minimap?)
  • Tutorialization??

More of those than I have days left. But I think many of these will be less than a day to do. Tomorrow is probably Enemies and “death.”

I did my first devlog over on reddit yesterday. Linking here for completeness!

(1 edit)

Too late, you notice the tell-tale glint of a laser designator dancing across your visual sensors as you cross an empty intersection at high speed. A tire-shredding cluster munition is surely inbound. You drift hard to the north and pop smoke. Hopefully you can break their lock with a detour through the crowded night-market ahead and still make it to the exit with your package intact.

RUNTIME is a sequel to last year’s runner. Like the original, RUNTIME is a continuation of my interest in non-combat games. This time instead of having “moves” I wanted to make an expressive-enough input system that had emergent moves in it. More on how that will work on future days.

yes! Check out my day 1 report. RUNNER_2: RUNTIME is coming!

https://www.reddit.com/r/roguelikedev/comments/1j2ajo9/comment/mfx7tnu/

Hi Charlie! If you’re still looking for SFX specifically, I’d love to chat. Some context on what I’m making here: https://www.reddit.com/r/roguelikedev/comments/1j2ajo9/comment/mfx7tnu/

My top priority is SFX – sci-fi driving / crashing / being-targeted, and so on.

I’m dr_ewww on discord.

Wow, what a polished game! Beautiful style, great “feel” to the different attacks, nice enemy diversity. Dash feels great. I had a fun time doing “alpha strikes” with the archer, timing my projectiles to hit all at once on an enemy and knock it out without it attacking me much. I wasn’t quite clear on my meta objective beyond leveling up. I see in the comments there is a boss somewhere, but I didn’t encounter it.

Im glad you’re enjoying it! I don’t know much about stream decks. It’s just a single webpage inside. Does it have a web browser?

Either way, I’m working on a next gen version now. It will have an executable. That piece is working, but nothing else yet. 😉 it’ll be a month or two realistically. I’m learning a bunch of new tools.

congrats! I got a “fake” zero damage run yesterday. I got hit as I moved into the elevator because I didn’t notice it was in bot vision and the I don’t render vision on the elevator tile! But this looks like a legit no-hit run!

Yeah I think that’s just bad map generation on my part. I switched the map validity checker to only use 4-way movement which I think will cause it to reject maps that REQUIRE diagonal movement to get to an objective. However I haven’t yet found a map that actually DOES require that, so I’m not certain it’s working yet. :D

Thanks for playing! It was a joy to watch such a thoughtful designer and player interact with my work.

(1 edit)

I found a VERY hard to hit button in my developer commentary here: https://youtu.be/mXRjvb0w1Yc?si=22sTrqlZxpV38Oxv&t=1202

It was ultimately accessible, but it looked like it might be impossible early in the run. Maybe this is something like what you encountered?

Thanks for playing! Glad to hear you enjoyed it.

It shoulddddd be the case that the validity checker will reject the map in the case you describe. I have seen cases where players think it’s inaccessible but it’s not.

  1. You can press buttons diagonally, and the validity checker will consider that to be ok. I should just make this not ok.
  2. The path can be very far, and feel impossible if you don’t have as much confidence as I do there will be doors where you need them along the way.

Or the validity checker could be broken! It was a hard bit of code to test in a hurry. I didn’t have time to build up nice test sets that I had pre validated. So it’s quite possible there are errors that my manual testing missed.

Thanks for reading!

Oh thank you! Very good suggestions. I took many of them just now!

  • S works for jumping down
  • red circle now moves “in” rather than “out” – maybe that helps communicate this is the hunter seeking you?? this feature clearly needs to be explained better earlier on. lots of players don’t know what it is.
  • doors are now blue; agree players get confused sometimes about buttons and doors and it’s good to keep the overall objectives one color and other interactables a different color.

Diagonal movement I’ve thought some about but it’s not really viable in this version. It makes some hard assumptions right now about movement being essentially one dimensional.

Curious what you think about tuning it. It would need to be tuned to not be absurdly strong. Could just be the total distance is ~half of what you get moving in a cardinal direction to compensate for the 1.4 diagonal distance thing. Maybe handle via longer CDs. Hmm. Interesting balance question.

Added leeway, too! I know you know, but just in case anyone else is reading this later and thinking “it DOES work like that!” Rest assured it didn’t always! Thanks for the suggestions!!!

Okay, shipped that third idea. It feels great. One line change. :D