TyrusPeace

LD29

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

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.

FromBelow-title

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!

FromBelow-tentaclewip

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.

FromBelow3

The best bug ever:

FromBelow-toomanymissiles

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.

LD31

So. Hungry.

Time for a lunch break :)!

Comments

jepster
06. Dec 2014 · 16:44 UTC
I am keeping a close eye on this game.

Halftime

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.

Levels are happenin’

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

I don’t make particularly cerebral puzzles.

screen-wip-4

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.

Last minute addition: spinny death lasers!

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.

Blue Window: post mortem

bluewindow-title

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

 

 

LD32

LASER CAT KING: Time for lunch!

CATNADO WANT LIGHT.

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!

LD33

Treeling: A start.

CM-is5VUsAA2whD

 

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:

treeling

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!

Ludum Dare 47

We're doing this! TIME MOB is on its way.

I'm working on this with my friends Andrew and Eric!

Their timezone was still working-hours when the topic announcement went out, so I worked on concepts on my own for a bit. IMG_0074.jpg

We talked about lots of things, but Time Mob's most appealing to us. We want to keep the concept's physical humor, so all members of the time mob can collide with each other. Since they'll be getting in each other's ways constantly, we store and playback the inputs, not their actual physics states.

time-mob-wip1-sm.gif

We also generate new spawn locations for each iteration of the player so that they can actually move on spawn. Helpful!

I hope to get a good 3D art test done tomorrow morning before moving on to a lot more art after that. I'm currently leaning toward old-timey time travelers who all grunt and old-man-curse at each other the whole time.

It's been years since I tried a Ludum Dare but it's proving a very fun activity with friends so far. My wife and parents have committed to watching the kids while I play with my friends making dumb games for the weekend. :pray:

Good luck everyone!

Time Mob presents: Sir Fish

We got lots done today! Buttons for activating things to help later time loops of yourself. Things like like boost pads and hover pads. And traps that don't reset with time loops, leading to all sorts of weirdness! Also here is Sir Fish, who just got some animations.

I also spent a while deciding just how much neck he'd get. Not much. ld47-fishneck.gif

Animations! Yay! ld47-fishanims2.gif

I'm a bit off from really having the art style finalized, but the end of the level portal looks nice and I'm not using the default ProBuilder texture for our terrain any more! It may well be that these abstract checkerlands are the final destination for Sir Fish. That'd be okay.

The game's playing pretty well so far! Time to sleep.

Time Mob: Day 2?

2 FAST 2 FISH ld47-2fast2fish.gif

It's too late what did we even do today.

unknown.png

Oh yeah. Prettied up the coder art on the boost, bounce, and float pads. Sounds. TONS OF LEVELS GOT MADE. Keys. Throwing of keys. Doors. Doors we can make bridges out of. Doors we can ride to the moon.

And the fish greet each other when bumping into one another now. It gets wildly annoying and we all love it so far. I think. https://twitter.com/TyrusPeace/status/1312863987579736070?s=20

Sir Fishbottom and Also Head's TIME MOB: Post Mortem

ld47-title-600.png

This is our Jam entry! You can play and judge it here!

The Last Day

The rest of my team was at their day jobs for Monday, the last day of the Jam. The weekend had been tiring for me and my wife, who put in a lot of extra kid duty thanks to this. I hung out for a late morning with her and the kids before getting back to the jam.

When I did get to work it was pretty laid back; tweaking levels and adding some juice to the boost pads. I was on schedule.

Then I spent too much time messing with these keys. TIMEMOB-keytoss.gif I made them prettier, fiddled with their throw mechanics, fixed their levels up... realized they were only in one level. Oops. So I added in a simple key intro level.

Then I realized the new levels my teammates had made last night could really use an improved follow camera. Working on that camera, adding the title screen, music, pause, clone-clearing, and controls text was a silly rush in the last couple hours. That pile of simple but crucial tasks at the end seems to be a staple of my game jams.

Eric swooped in and created the ending screen / loop counter during a break at some point. Clutch.

And then I made the WebGL build for release... and all of the shaders loaded black and the boost pads didn't work OH NOOO. FEAR.

I lowered the shader model of our toon shader and fixed a framerate dependency in our boost pads and we were good to go.

POST MORTEM

What went well:

Teamwork

It's been five years since I did a game jam. It was nice to work with a team like this again. We made a Trello with all of the gadgets and gameplay ideas. They cranked out game mechanics and levels. It was all I could do to keep up with them. I did spend an inordinate amount of time modeling a fish man though.

Concentrating level art efforts on the levels' gadgets:

TIMEMOB-lilfan.gif TIMEMOB-L8-2.gif

We talked a lot of big game about having various themes for the different levels the player visits; time travel, etc. But we didn't really have time for that. Focusing instead on the actual puzzle components made the interactive parts of our levels look a lot better and more understandable. It made gameplay clearer and more physical feeling. The fish reacting to the gadgets with little animations and shouts added to that.

Sound

We can't be judged on audio since the music isn't by us, but I'm really proud of how well it all came together.

Fish voices. I recorded these in my best/worst British fish voice. I feared these would be annoying. They are, but they're also funny enough that people seem to enjoy it. My FishTalkManager code limits the fish clones to greeting each other two times per second, max.

I found it difficult to grunt with an accent.

The warp sound is a few separate tracks of my mouth sounds and a backwards recording of an out of tune electric guitar bass string pluck.

The loungey jazz music works really well with the concept, gameplay, and voices. That MacLeod. He gets it done.

Looping inputs, not physics

TIMEMOB-rampbois-sm.gif We could have made a much more precise puzzle game, but our initial TIME MOB concept had an amusing physical humor to it that we wanted to run with.

So we let the player clones run into each other. They repeat the same actions, but if someone gets in their way or the level is changed by another clone, different things can happen.

Challenges

It's really hard to playtest other people's work while you're working on your own stuff!

Version control is a wonder. But it's also very hard to give immediate feedback on someone else's hot new level when I'd need to stop my work and pull their changes to test it out. In a jam environment, of course teammates want feedback quickly! But I'm just not always ready to stash my work and try it out.

We should have gotten used to simply screen sharing such things with each other as a combo of show-off/review. That would've been fun. Next time!

Scoping art

I kept saying I could record more voice lines, model more characters, paint more textures, etc. It's fun to imagine more jokes / art to work on, especially when talking about ideas with teammates. But it was only 3 days, and I had plenty of other tasks to work on, too.

Overall, it was really refreshing to work on a game jam, even though my day job is also game dev. The pace and the teamwork! It's a rush. And we made a game! And we like it!

* You can play Sir Fishbottom and Also Head's TIME MOB here!*