About TyrusPeace (twitter: @TyrusPeace)

I code for a living and makes games and comics in my free time. I blog at tyrus.tumblr.com.


Ludum Dare 32
Ludum Dare 31
Ludum Dare 29
Ludum Dare 28
Ludum Dare 25
Ludum Dare 23
Ludum Dare 22
Ludum Dare 21

TyrusPeace's Trophies

LD31 LP Video w/ Ythmevge
Awarded by Sandcrawler
on December 10, 2014
Best Use of Hexagons Award
Awarded by b.stolk
on April 23, 2012

TyrusPeace's Archive

Treeling: taking it a little too easy

Posted by (twitter: @TyrusPeace)
Saturday, August 22nd, 2015 8:06 pm

Random tree colors! ...that should've been done about 6 hours earlier.
Random tree colors! …that should’ve been done about 6 hours earlier.

It’s hitting me pretty hard that we’ve been working on this moving thing since two thursdays ago. Also, now that I’m doing game development full time, this feels like a bit of a step back from that. I’m already rearin’ to go on that project! I’ve still been poking at this, but mostly I’ve just been testing out Visual Studio as a Unity text editor while lazing around. Visual Studio is excellent with Unity. I’ve been using TextMate forever on my Mac, but hadn’t bothered finding a MonoDevelop replacement on Windows until now.

Good luck, everyone! I hope my colorful trees at least motivate someone.

Treeling: A start.

Posted by (twitter: @TyrusPeace)
Saturday, August 22nd, 2015 12:12 am



I hit the ground running with a few ideas right off the bat, but Ludum Dare’s a good bit later for me than it was last time since I’ve moved a couple time zones. Combine that with many, many failed tree trunk models, and all I’ve got for tonight is an art test and a stew of gameplay ideas:


I doubt the hills will make it.

Naturally, my first focus tomorrow morning will be generating a bunch of random trees. Oops.

Good luck everyone! Get your dare on!


Posted by (twitter: @TyrusPeace)
Thursday, April 23rd, 2015 11:10 pm

HUGO THE LASERCAT KING’s Ludum Dare submission page

Leading up to the last couple of Ludum Dares I’d tried to convince my friends John and Daniel to participate in the jam as a team. They work on games together in their free time, but they kept saying they didn’t feel ready for something like this.  I wanted to show them that they were. I’d pawed at game development for years – without finishing anything – before my first game jam. I learned so much from actually finishing something!
So this time: “YOU GUUUUYS. Let’s do a Ludum Dare jam. 72 hours starting at 6:30 at my place…” And we did it!

Day 0

Our setup issues were akin to setting up a LAN party for some reason. Oh well. Daniel and I bounced ideas off each other while John was gettin’ his wifi on. By the time John came back we had a page full of different ideas, but he just looked at us incredulously because our first idea was “SWARM (kittens controlled by laser pointer?)”, and we’d bothered having other ideas.

Good point. Although I’m still curious about “Rocket launcher that explodes into puppies & rainbows?”
We got our code repo going, made an art test level with a box scooting around next to a hole, got super excited about Daniel’s excellent concept art, and called it a night.

Day 1

I’m not sure Daniel’s had much experience with animation work, but he proved to be a total boss at it.

We’d gotten ourselves to the cusp of a ton of progress the night before, and that morning we got sprite rendering and laser pointer mob control working.

It was super motivating! Naturally, things slowed down a lot as we started considering our next steps, both technically and design-wise. It’s really easy to get caught up in this sort of thing when working by yourself. With a group, it’s even more dangerous. We mostly shook it off by just jumping into the next “make Hugo prettier” task. Animating Hugo, getting shadows to work with sprites, making the laser track the pointer strapped to his head, etc.

Also we ran the mob of cats off the edge. A lot.


Day 2

For me this was, mostly, my last day of work on the jam. This was the part I was excited to introduce others to. The “oh shit let’s make a game out of this go go go!” part.

We started the day in a tough place, though. No weapons, no puzzles, no nothin’. We ran in circles for a bit trying to design everything. Then we prioritized the bare minimums for actually being able to create a level: physics props to play with and make the levels prettier, exits, buttons for puzzley stuff, and enemies.


I definitely spent a lot of time making the exit shiny. And launchy.

By 9pm we had the first level done, and then the other two levels were done within another five hours. That’s all the levels.


We made it so that the main character could take damage/die (whilst yowling in protest), added music, and suddenly things felt like an actual game.


Day 3

The last day! Enemies got their sprites, animations and deaths, title/closing screens were added, and, most importantly, we added 18 cat sounds that Daniel recorded himself making.

The technical requirements of supporting 2D art are certainly higher than what I’m used to. Adding all of those animations took much of the day.


By the time I’d returned to our dev house, we had to sadly acknowledge that any more art Daniel was drawing was just not something we had time to get into the game. He then set about knocking things against each other to make what will go down in history as the best “robot bad guy blowing up” sound known to humanity.

Then: playtesting, packaging up the game, debating our favorite screenshots, going back and repackaging the game real quick so we could include an improved readme, and sitting there with rattled nerves for a bit after submitting the game.

The cats rain down. The cats rain down.

Celebrating: Irish car bombs, Cornish pasties, beers, watching John having a second car bomb by himself and being oh so proud, dessert, packing up, and splitting up for some much deserved sleep.



So did it work? Did Ludum Dare turn us into a radballs crack team of super fast game devs?

Daniel: “I think I learned a lot on this project about that skill of decision-making, partly because it’s so gratifying to be able to repeatedly come up with ideas and then bring them to life. I’m much more motivated to try to find a pace of creation as fast and (mostly) consistent as the one we had.”

Yaaaay! That’s why I love Ludum Dare. Thanks to my friends, and the thousands of other inspiring jammers this Ludum Dare, for doing this.

You can check out HUGO THE LASERCAT KING here.

Toward the finish line.

Posted by (twitter: @TyrusPeace)
Monday, April 20th, 2015 1:38 am

Exits and levels and dying and stuff! Yeah, those things that always get put off until the end… let’s do it! Good luck, Ludum Dareians!


Bug of the day:


Posted by (twitter: @TyrusPeace)
Sunday, April 19th, 2015 4:05 am

First: this GIF.

Secondly: our progress is good!

The herd of cats, and King Laser Cat Hugo himself, are both rather incredibly well animated by Daniel, and we’re starting to add in a smattering of scenery, too! It’s working pretty well with the otherwise sparse backgrounds.

The cat balls follow the laser dot in an exceedingly amusing fashion. I was able to get sprites receiving lights and casting shadows in Unity with only mild pain! It took a couple ideas and some luck.



We’re at that dangerous phase where we’re getting distracted by our own game. Hopefully we’ll have a reasonable bit of fun for folks to play with soon :)!

Bug of the day: cat butt laser or giant cat balls.

Good night and good luck, everyone! Get dat sleep!

Everything is working perfectly.

Posted by (twitter: @TyrusPeace)
Sunday, April 19th, 2015 2:23 am


LASER CAT KING: Time for lunch!

Posted by (twitter: @TyrusPeace)
Saturday, April 18th, 2015 3:08 pm


Daniel’s animation work continues at pace, and John’s getting the sprite animation logic necessary to actually get it lookin’ byoots in game.

Good luck everyone! Thanks for inspirational efforts!


Posted by (twitter: @TyrusPeace)
Saturday, April 18th, 2015 4:09 am

Hugo has a laser pointer attached to his head.

All cats follow his beam. All cats follow his will. Hugo is the Laser Cat King.

Obey your god, cats. The dot has arrived, and it is red.

We are jamming! Art by Daniel.

Blue Window: post mortem

Posted by (twitter: @TyrusPeace)
Monday, December 8th, 2014 8:22 am


My entry, Blue Window, is submitted for the compo and playable here.

This was my most relaxed Ludum Dare dev cycle yet! A lot of things went right for this, but the biggest one was that I was in “content production mode”, just designing levels, by the end of the first day. I naturally did end up coding up some new toys for the last few levels a few hours before submitting, though ;).

Day 0

I got all self righteous and puffy about the the topic, so I set out to do something in 3D despite the implied design restrictions. I’ve seen a good few other entries with “one screen in a 3D world” concepts, so I’m not exactly breaking the mold here. I’m pretty happy with the concept, though.

I had a prototype of the rendering working in a few hours:

Unity’s RenderTexture and using different layers for objects that were only visible via the screen were most of the work here. The rest was spent fiddling with the overall art style and the screen camera’s rendering settings to make the screen’s contents look unique/different from the rest of the world.

I had a go at making the screen’s texture size dynamic based on your screen resolution and bailed once I had unexpected aspect ratio problems. Fortunately, I think having pixelation in there helped it look more like an in-game object, rather than just some magical hovering portal.

My chief focus for the first night was getting the actual crux of the game design implemented: being able to click on the screen while it’s up to activate/deactivate otherwise invisible objects in the world.

This involved raycasting from the mouse world position for the player’s camera until it hit the “blue window”‘s screen, and then using that to find the pixel coordinates of the clicked location in its texture. Then I figured out the world position of that texture coordinate in the blue window’s coordinate system, raycast from there, and figured out what the user was hovering/clicking.

It ended up being a fairly late night, working from about an hour after the 7pm announcement time to 2am after a fairly late and strenuous day of real-world work. It was a great start to Ludum Dare, though!

Day 1

I accidentally left my alarm on and woke up at 7am. That sucked.

While inspiration carried me pretty late into the first night, I’d definitely had a long week leading into this, and I felt it waking up the next morning. I stumbled and bumbled through until I could get my footing. I managed to test the physics of what I’d implemented and then Chipotle finally opened. This really just involved making those pillars physics objects and then fiddling with the logic for that activate/deactivate label *a lot* so that it would stay somewhere comprehensible once things started moving.

By 7pm I’d gotten vertical fog and respawning working, stuck a bunch of hanging text into a level, and had a mostly functional tutorial.

I’m pretty slow at implementing vertical fog for someone that spends so much of his free time working on a game about clouds.

After coding the level exit logic I then moved on to designing the next two levels.

bluewindow-exit bluewindow2bluewindow3

On designing puzzles:

From the designer’s perspective I’ve always had a hard time with puzzles. It’s very hard to not see *every* bit of progress that the user makes in a game as “move forward, click on things until progress is possible, repeat”. Naturally, that’s not how I want the player to feel.

I tend to just see through the design of my own game, so I concentrated on making things fun, pretty, and with relatively obvious but explorable game mechanics leading into a bit of player education before any challenging stuff. Basically,  I gave up designing fancy puzzles and blew things up instead.

Day 2

I spent the first half of my last day fiddling around with GarageBand, making a song to play to. Then I finally managed to write that “resume playing from the last spot you were at before the level loaded” script that all of my Ludum Dare entries have desperately needed. When reading the docs on the playback time I was fetching warned that compressed streams could be off by some amount of time. Perfect! It results in the music stuttering and/or glitching when you respawn sometimes. I like the effect.

Actually, I probably spent most of that morning tearfully singing along with Rivers and Roads. The dog didn’t seem to care for it, but it was a pretty good way to reboot.

After taking time out for a rather nice lunch with my parents, I figured I’d had a nice long break from all of that coding stuff and dove back into it to make a new obstacle for the last few levels of Blue Window:

I made a normal boring “1 beam, no spinning” version of this as well, but naturally the spinny 4 beam version of the death beams was the most exciting one. That was done by 2:30, leaving me 4.5 hours until submission time to actually use the thing.

I’d set a goal of doubling my level count on the last day, and I managed it! One level each for introducing single beam and spinning quad beam lasers, and then one last level with a ton of lasers and a bunch of spheres to drop while running downhill.

bluewindow4 bluewindow5

Last minute “crises”:

  • My lasers killed performance! They did a lot of raycasting to figure out where to end the beam… and I just had left a debug print in there. Deleting it fixed everything. Hooray!
  • My lasers couldn’t detect players while they weren’t moving. They have a collider for most other situations, but that tends to break down if it’s moved into the player rather than the other way around. I added a hack to that raycasting bit to detect players as well.
  • There was no way to exit the game. How do I always forget that? I slapped my keyboard until I had an Application.Quit() getting called for escape key down events.
  • The last level is kind of a pain in the ass to beat and it started quite a bit harder than that, so actually testing the thing in my jittery Ludum-Dare-finishing state took a stupid-long time.

And that was my Ludum Dare! I should go to work now. After that I’ll have a fun evening playing your games! Great work, everyone! It was your posts and progress that kept me inspired and on task throughout this.

Blue Window on Ludum Dare



Last minute addition: spinny death lasers!

Posted by (twitter: @TyrusPeace)
Sunday, December 7th, 2014 2:32 pm

Four and a half hours left and I’m adding this guy to the mix:

Hopefully I have time to use it well in the last few levels. Good luck everyone! It’s awesome o’clock.

Levels are happenin’

Posted by (twitter: @TyrusPeace)
Sunday, December 7th, 2014 12:41 am

I currently have three levels. I hope to double that by the end of this thing.

I don’t make particularly cerebral puzzles.


I made this tower a lot shorter because I found the climb boring.

I’m going to bed now! Maybe I’ll putz around with GarageBand a bit to make music, though. Everything’s silent now. It works strangely well, but that’s not the plan.

I want to try adding lasers tomorrow, because they’re lasers. Lasers.


Posted by (twitter: @TyrusPeace)
Saturday, December 6th, 2014 7:01 pm

I spent far too long figuring out how to get this text and fog looking half decent. The good news is that the player can now jump into fog and reload the level, presumably due to some terrible fog-related death. Maybe they’ll be just fine, though. What if there’s a dude selling popsicles down there? Things could be pretty nice.

The player education process so far

Now I’ve got to make more levels. Hopefully I’ll have time to make more challenging/interactive obstacles, too.

So. Hungry.

Posted by (twitter: @TyrusPeace)
Saturday, December 6th, 2014 11:40 am

Time for a lunch break :)!

Oh jeez I am doing this.

Posted by (twitter: @TyrusPeace)
Saturday, December 6th, 2014 2:00 am

I really should be working on Cloudbase Prime right now. But this topic! I got indignant! “Entire Game on One Screen”, you say? Trying to dictate game design via a Ludum Dare topic, voters? I scoff at thee. I scoff. I’ll show you one screen.

Initial technology test after figuring out how RenderTextures work in Unity:

Yes, I made a gif of a Vine because I couldn’t figure out how to embed it. That is a real thing I did.

The rest of today was spent fiddling getting the basic tech of being able to bring up your screen and then click things on it while viewing the world through it. This was tricky because I had to figure out the position in the world the mouse was at on the screen according to the player’s camera, and then translate that to pixel coordinates for the *screen’s* camera, and then dance a jig when the whole stupid thing actually worked.

You can bring up your screen and activate/deactivate things to bring them into the “real” world in game now. Yay!

Once things are activated they can collide/fall/etc. Hopefully I can come up with some interesting puzzles for this.

From Below (the kraken-throws-exploding-whale game!): Post Mortem

Posted by (twitter: @TyrusPeace)
Tuesday, April 29th, 2014 11:01 pm

This is my most complete game for a Ludum Dare yet! It’s too easy to just sprint through, but I still have fun swimming around, bein’ all krakeny, and hunting the few different enemy types I managed to make.


From Below’s Ludum Dare entry page


Day 0:

I was really pulling for Deep Space as a topic, and I should be working on Cloudbase Prime, so I almost sat out for LD29. My wife sounded disappointed, though. I told her I was thinking of a kraken game once the topic came up and she was all for it. So I cracked open Unity and Blender and got to it. I pretty much just made some bitchin’ tentacles on the first night. They’re a line renderer that I made render some bezier curves from bone to bone, using every second bone as a middle curve target for its neighbors. Seemed like a sweet idea! But then every other joint ended up having an ugly non-smooth edge. I tried averaging out the positions after switching which bones I used as the curve target. That just undid my curve work, which was sadly obvious in retrospect :P. So I just rendered those “overlap” corners twice instead of averaging them and got the cool stripy/jointed look in the game today!


Game jams get wonderful when something goes wrong and I can just say “fuck it, I’m featuring it!” This was one of those times.


Day 1:

The main image I had in my head when imagining a kraken game was descending into the depths, dark where nothing else could see you, and coming out to strike. I never did get those stealth elements into the game (most of your enemies are submarines; it wouldn’t have made much sense for them to care about light any way), but I got the darkness and that feeling of depth it added to the game.

I did this by changing the camera’s fog color as your character’s depth changed, and also attaching a shton of colored, mostly transparent planes to the top/bottom of the player, so that looking up and down always looked brighter/darker, regardless of the current background/fog color. I then added a water ceiling to the game and spent enough time staring at the screen afterward to go and make four separate idle animations that each tentacle independently cycles through at random, at different intervals for each so that they don’t synchronize with each other incidentally too often. That made me feel much, much more like a kraken. That’s when I realized I needed separate controls for each tentacle. It’d be silly and just feel wrong to have these nice writhing tentacles and only use one or two of them! A huge goal for me in this LD was to “finish” my game before going to sleep at the end of day 1 (Saturday). I totally failed at that goal, but aiming for it made a huge difference in terms of focus and drive. I at least had my central game mechanic done before going to bed: being able to attack, grab, and throw enemies and hapless whales. I rewarded my grand progress with an early morning shower, made the music while poking at GarageBand on my couch until 4:40am, and passed out on the couch.


Day 2:

I was happy with my progress the night before, but waking up at 6:20am guaranteed I felt like total shit. Food, coffee, sunlight, and showing my wife what I’d worked on the night before got me going again. A big feature of the game is that you can hold down a key to look toward the nearest enemy. This helps the goal of eliminating every enemy in a given wave be less frustrating, and also makes you feel more like you’re a hunter that can actually sense its prey. Moving the camera while the player is also mouse-looking it is a problem I got stumped on last week for Cloudbase Prime. The game jam approach of “nope, screw that idea, that’ll take more than half an hour to try,” applied a few times solved the issue in a jiffy. Homing missiles (uh, torpedoes, I guess…) were straightforward enough, and after that, subs were up and running shortly, reusing the wandering logic I added for the whale with some extra “never ever fly off the map pretty please because then the player will be stuck forever and hate me,” logic added in.


The best bug ever:


too many missiles: animated gfycat here.

I did leave in a bug where enemies can keep firing missiles at you after they’re defeated, and while they’re grabbed by your tentacles. I tried to fix it, but fortunately decided it wasn’t worth the time since it feels pretty badass to have the enemy firing at you in desperation before you chuck it at the dirt or a whale or its sub-bro-in-arms and watch it all explode. UI, health, copy/pasting a bigger submarine, throwing it on top of the water so it’s suddenly a boat, and making it shoot half a dozen slow, fat, super damaging missiles, and I was done! Barely, at the last possible moment. The rushed, clumsy, fantastic wrapping of the project is my favorite part of every Ludum Dare.


Family, breaks:

This weekend was really, really nice in Arizona. We’re the land of 100 degree Easters and it was firmly in the 70s. The weather was amazing. I went out in the yard whenever I needed a break and watered plants/stared into space with my wife and the dog while the wind howled. My wife’s support was great. When trying to work a ridiculously long amount of time in a row, simple stupid things like not eating food or drinking coffee at the right time can make a huge difference. The meals! Salmon crepe, bleu cheese and steak sandwich, beef udon… I was downright taken care of and I’d feel silly if I didn’t feel so damn lucky.

I met my folks for dinner in the middle of LD and showed them a Vine of the game’s tentacles. They told me the clouds looked great. There… are not clouds in this game. Perspective helps.


Wow, I wrote way too much. You can check out From Below here.

Great work, everyone! I’ve been judging games for the last two nights and have been genuinely enjoying it. Ludum Dare’s an inspiring thing.

Six hours left. Let’s do this thing!

Posted by (twitter: @TyrusPeace)
Sunday, April 27th, 2014 12:05 pm


May your Internets be swift, and your computars be not-crashy.

[cache: storing page]