StateOff

LD32

Bird vs. Zombies #indiesvsgamers

Last week a bird pooped on my friend’s head. That day five people stared at their smartphones in the metro. One was only holding it tight like Gollum would hold the ring.
Add the jam theme “Arcade” and 72 hours of madness to get this:

Bird vs. Zombies

At its core it is a Side-Scroller, but your “Ammo” is basically bird poop. If hit, the “Zombies” will throw their smartphone at you. And will be free!

I have no fancy intros, you get 100% fun for your entertainment dollar. I am happy that I was able to create a progression of 5 levels which each have a new experience. To beat the high-score you have to finish all 5 Levels. The more “Zombies” you “free” the better your score but also the harder it gets.

I am very proud of my first game jam entry ever. Game Jam Survival Guide saved me the worst nightmares.

Bird vs. Zombies

I used Unity 5.1 with nothing more than VS and the GameJoltAPI package (which is great but not stable at the current state! Beware of some quirks). I was very happy that most of the logic was done with a single smart “Spawner” behavior that could spawn randomly or with constant delay – in order or randomly from a pool of prefabs. This was used for spawning Smartphones, poop, the street, the actors, drone beams, powerups and the background.

The AI for the various parts comes from individual behaviors on the gameobjects.

For the bird I used a super neat State pattern from Game Programming Patterns. Highly recommended book! This made it easy to create hit state behaviour or the finishing landing.

I love the little details: Like the “bombs” and smartphones explode on impact with the ground, you can poop the smartphone mid-air, or the smartphones also kill the drones …

Hope you enjoy it as much as I did.

Timelapse Making of (spot the Unity crashes :) )

Tags: #indiesvsgamers

LD 40

Team StateOffGames is in! Any tips for Twitch-stream?

Did a few jams but my first LD and first time streaming live @stateoffgames

May have the youngest jammer in the team (4 weeks old)

Team - :monkey_face: StateOff (Programming, Art, Noise) - :baby: MSB (Pooping, Background Noise)

Tools - :robot: C99/C11 - :joystick: Allegro based GameBoy-Framework (160x144, 4 Colors only, 8x8 Tiles) - :notepadspiral: CLion & Vim - :art: Aseprite, Gimp, BMD Fusion - :computer: Linux (+Win and macincloud.com for ports) - :keyboard: AwesomeWM & tmux - :musicalnote: BFXR, BeepBox.co or similar - :baby_bottle: Diet DrPepper, Milk - :poop: Pampers

Good luck everyone!

State of LDJAM40 == how I feel now

recording.gif

Will be streaming at twitch at http://twitch.tv/stateoffgames around 16:00 EST

Great work everyone!

Need more coffee - LDJAM40 Entry

Here's the game:

https://ldjam.com/events/ludum-dare/40/$57678

recording.gif

Hope the submission worked, got some bug reports on the site :/

Added a Win32 Version

Unfortunately the web version does not export properly (I guess because of the shader I wrote).

I hope you will still download and enjoy it.

Also I noticed that after sleeping a day this game is super hard :-D

I was able to beat it again, but I would love to hear in the comments if someone else succeeded.

Btw. nice work everyone!

-- StateOff

recording.gif

https://ldjam.com/events/ludum-dare/40/need-more-coffee

"Need more coffee" shader effect

I was asked in the comments how the "coffee-effect" is done.

It pretty much boils down to a screen space (fragment) shader that is driven by a float I call "phase". This was made in godot but should apply to any shader.

There is essentially a combination of 3 phases which define the amplitude, frequency and speed (time factor) of a sine function.

Based on the phase I interpolate between each phase, so e.g. phase 1 defines:

float amp_1 = 0.0075 float speed_1 = 3.0 float freq_1 = 10

I get the final value by interpolating (lerp/mix) between phase 0 and 1:

amp = mix(0, amp_1, phase1) speed = mix(0, speed_1, phase1) freq = mix(0, freq_1, phase1)

The real magic happens in the final function that takes the original screen space coordinate (uv) with the sine function:

uv.x = uv.x * (1 - 2 * amp) + amp uv.x = mix(uv.x - amp, uv.x + amp, (1 + sin(speed * TIME + uv.y * freq))*0.5)

What's up with al these offsets? Well the input uv coordinates range from 0.0-1.0f.

That means that if the sine is applied directly the wave goes below 0 in x and above 1. This ends up in a clamp or duplicate pixel which looks really bad.

So instead we offset the whole effect by the amplitude and scale the final image. Sine we gradually move the amplitude up it is barely noticeable but fixes the ugly effect on the edges of the screen.

That's it. Here the full effect visualized in an ideal world where the coffee cup is never empty:

needemmore/emcoffee_shader.gif

Note how the heart beat also gets faster with the phase :)

Don't forget to play at:

https://ldjam.com/events/ludum-dare/40/need-more-coffee

LD 42

Alternating Space

So that's what happens when you are running out of space.

ld42em2018-08-11/em04-09.gif

Good night folks.

Alternating Space - Almost there

About 10 levels, sound and some music, done!

Only need to iron out some minor bugs. This has been fun.

ld43_2018-08-12 00-19.gif

Prepare your brains for some mirror action :v:

My tools so far: - Linux laptop (Fedora 28) - Godot 3 (gdscript) - Tiled (and Tiled Plugin for GD) - aseprite 1.2.7 - LMMS - Audacity - Peek (for gifs) - BlackMagicDesign Fusion (for backdrop) - Coffee

Looking forward to play yours! Good luck everyone.

Ludum Dare 46

Elemental Keeper in Zig

First card game done with the zig programming language and SDL2

Progress so far:

ld46 2020-04-19 03-49.gif

Elemental Defender

Main character, foes, text rendering and window scaling

LD46  2020-04-19 15-48-48.png

Zig + SDL2 + Aseprite = ♥

Elemental Defender Game Play

Playable via Mouse and Keyboard.

Todo: Music, sound and maybe more animations. Tough since I have no tweening in this bare-bone setup - would need to come up with something. Let's see after work ...

ld46 2020-04-20 03-58.gif

Zig + SDL2 + Aseprite = ♥