Sunday, August 31, 2025

Sunday Night Lazy DevBlog - 8/31

 

    So, last week (or last blog. I think that was two weeks ago) I mentioned that I was putting together the first serious demo for Operation Spilled Martini. Well, good news and bad news.

    Bad news first because I'm a pessimist. The demo level I had in mind let the player explore three floors of a lair, encounter multiple traps, find a good number of gadgets, collect some loot, find a blueprint for an upgrade, and plant some explosives. It was pretty fun. It was also a lot to polish and honestly a lot to take in as a player. Mechanically, everything in that demo is functional, but every little thing from the UI of the pistol to the sound effects of the fire extinguisher all need little tweaks. I could spend the next month or two just polishing all the gadgets and mechanisms in that demo level. 

    So, that one is on hold, or maybe cancelled. Don't worry, I am sure all those burglar-able rooms, traps, and tools will get reused in the final game. You won't miss out on any content.

    Now for the good new, there is a demo right now. You can get it free on Itch.io because I haven't finished setting up the Steam page for OSM yet. It's very simple, just go down a hallway and avoid lasers that will kill you, but it's keeping in spirit with things like Charlies Angels, Mission Impossible, and Archer, the patron saints of this project. 

    I think maybe for the next build of the demo, I'll put some McGuffin in a glass case at the end of the laser hallway for people to grab. That would be fun for me. Also more complex movement for the player to dodge. Speaking of which, I am doing this game in Early Access, partially because I've never really done that before and wanted to give it a go. Even the demo will get some updates as we get closer and closer to the final release.

    Thanks for reading everyone. Here's a parting shot of the laser hallway. 

Laterz.

Sunday, August 17, 2025

Sunday Night Lazy DevBlog - 8/17

    This week I started seriously putting together an early demo for Operation Spilled Martini. This means I didn't actually add a lot to the project, mostly just moved things around. It doesn't feel great as a developer, because it feels like you aren't doing anything at all, but it's necessary to make all the mechanics I've been throwing together actually have a purpose.

    I also took a mid-week break from OSM to build a little prototype where the player can sail a small boat around an equatorial ocean. I went kayaking earlier this week and couldn't stop thinking about it.

    Anyway, I'll try to add more to both OSM and put up some more tutorials for Trash HORSE this coming week. 

    Later. 

Sunday, August 10, 2025

Sunday Night Lazy DevBlog - 8/10

      In the past, I've done write ups for my games and ended up wasting so much time on editing and graphics that I could/should have spent improving my games. I want to start keeping track of how my project progresses without getting weighed down by making a proper developer blog. So, this is my first entry for my Sunday Night Lazy DevBlog, where I just casually list all the things I've added to my current project, or whatever.

      Right now, my main project is Operation Spilled Martini, a rogue-lite dungeon crawler where you get to play as a pulp spy and break into a villains secret lair to carry out annoying missions. Here are some of the newest additions.

-Added a turret trap that currently shoots poison darts when the player is in range.

-Fixed up the trip laser trap and made the darts that shoot out of the wall more deadly.

-Polished the fire extinguisher mechanic that lets the player see the trip lasers.

-Made some amazing improvements on the pistol, including reloading and picking up extra magazines.

-Built a main menu with some pretty fucking dope graphics. 

-Built a prototype for a new trap where a giant saw blade pops out of the wall and decapitates the player.

-Spent an hour chasing a glitch and debugging different audio scripts only to realize that the volume on my headphones was turned off.

      Thanks for reading. Come back again soon. Eventually I'll have a demo for you all. 

 

HORSE Tutorial: Grab

    In this tutorial, we'll go over the script that controls the grab and throw mechanics for the paper balls in the game Trash HORSE, which can be played here, or the full game package can be downloaded here.

    This portion of the script controls whether or not the player can pick up the ball. The Distance block checks the distance between the paper ball (this) and the player (player) which is a scene variable. Once we have that distance, we use the If block to check if the distance between the player and the paper ball is less than or equal to 4 meters. So, basically checking if the player should be able to reach the ball or not, so they aren't grabbing a paper ball from across the room.

    Also in this script is the On Mouse Down block. This is to say when the player has their mouse hovering above an object and they clock the Left Mouse Button, the script will fire. The object in question needs to have a collider for this to work.

 


    New stop, we have a check to see if the player already has something in their hands. So, we have a boolean variable called Holding which is a scene variable so lots of different scripts attached to lots of different objects can check and change it. We check if Holding = false, meaning the players hands are empty, and if they are empty we move on and set the variable to true, so the players hands are now full. And now even if there is another paper ball within 4 meters, the player can't grab it.


     Next, we move the paper ball into the players "hands" by making the paper ball a child of an empty object we have attached to the First Person Controller just under the camera, or where we usually see a gun held in a generic FPS. Then we set the Local Position to 0,0,0 meaning the paper ball will be at exactly the same place as the Hold_Point and change the rotation to match.


     Next we change the Object specific variable of Held to equal true. So, the paper ball is now in position and it registers itself as being held. Then we move to the Rigidbody block, Set Constraints, and freeze all, which will stop the paper ball from moving away from the players hands. After that, we turn the collider off (Set Enabled = False) so the ball doesn't smash into the players own collider and create weird problems like the player standing on what is in their own hands.

This took so much longer than I expected, so we're going to stop here and go over the next part of the script, throwing, in the next tutorial. Again, you can test out how all of this works in the web version here on Itch.io, or if you want to dive into the scripts yourself, you can download the whole package here for Unity.

Later.


 

 

Buy Me a Coffee at ko-fi.com

Sunday, August 3, 2025

Micro Tutorial: Adding "Crouch" to the First Person Controller

 

    Alright, so I recently needed to add a crouch function to the basic Unity First Person Controller for a project I'm working on. Not sure why it doesn't have one to begin with, but whatever. Here's how I went about it.

    In the red box, we have a toggle function. When the player clicks the Left Control button, the script goes to an If block and checks the players height. Notice we are getting the players height, not scale. 2 is the players crouch height.

    If the players height is equal to 2, the script registers that the player is not crouching and goes to the blue box. There, we set the players height to 0.9 with the first block, set their waling speed down to 2, and their sprint speed down to 3. It makes them short and slow, you now, like crouching does.

    If the players height is not equal to 2, the script takes us to the yellow box, sets the player back to their normal height, which is 2, pulls the players walk speed back to 5 (but in this screenshot it pulls the speed from a variable because I want the player to be able to upgrade their move speed) and sets their sprint speed back to 8. All pretty simple. 

    I've made a version of this script before and done it in some worse ways that we can go over. I originally had a boolean Object Variable that could check if the player was couched and toggle the boolean on and off at the end of each arm. This is a lot more work than we need to do since we can just check the players height to see if they're already couched.

    I also originally had the script change the players scale on the Y axis, but this change in scale also changed the scale for any child objects of the player. So, it smashed everything in their hands. Changing their height doesn't come with that same unwanted side effects.

    Anyway, thanks for reading. Hope this works out for you.



Buy Me a Coffee at ko-fi.com