mahalis

LD31

Playing with pendulum physics

 

Started this last night and it’s finally kinda fun. I think the goal is to get the thing through the other things in as few clicks as possible.

 

pendulum physics

Tags: love2d, physics

Starting to art

 

 

It’s beginning to look a bit more like a thing. I’d like to make the rope attach at the mouth, but having the attachment off center-of-mass makes the physics wacky (and less fun), and drawing the line at a different position than the attachment makes it really confusing. Might be best just to move the center of mass to the mouth.

Also, the rings look dopey. I don’t know what to replace them with.

Screen Shot 2014-12-06 at 6.03 p 3

Tags: love2d, physics

Two birds, two stones, only one stone is a fishbowl and the other is fire

Found solutions to both things I was having trouble with in the last post. First, the physics got really unpredictable and less fun when I had the line attached to Wanda’s mouth—you’d sort of wobble around the place, not unlike an actual fish on a line, which is less fun than this is trying to be. Kinda killed the freewheeling feel. Solution: bowl! Voilà: identical physics to the prototype.

Also: fire! I didn’t like the life-preserver rings I was using as targets earlier, and I don’t know why I didn’t go with flaming hoops in the first place—seems much more traditional. This is what they look like. Drew three separate fire images on the ring; would have done more, but I got tired of it, because, as you can see, I am not an artist. :)

mockup updated

Tags: fire, love2d, physics

“you were the embodiment of grace”

Almost done. Added sound effects—a ding when you hit walls (me flicking a glass, pitch-shifted) and a little chord when you hit a target (GarageBand’s grand piano). Also added something simple and dumb that I’m disproportionately pleased with: the end screen picks a random compliment for you.

http://vid.mobypicture.com/50f2098875e71461423f412605c54183.mp4

Tags: Fish, garageband, love2d, physics, sound

LD33

I’m in

Excited for this one—some of the themes look like a lot of fun and I can’t wait to see what people come up with. I’m going to have even less time free this weekend than I did last time around (though that turned out pretty well), so… aggressive scoping ahoy!

Still using LÖVE as the engine, either Paper like last time or Photoshop / Cinema4D for art, whatever I have lying around in my apartment for sound effects, and GarageBand for music if I have time.

Eight hours to go—let’s do this!

Tags: LD #33

Movement!

Got the player movement feeling good—it’s just an approach function with upper and lower bounds on the effective speed. The background looks nicer without 256-color GIF compression. :)

working movement

Comments

Evergreen Games
22. Aug 2015 · 20:14 UTC
I have the exact same movement!

Boats!

You are a sea monster, working tirelessly to scuttle the supply ships bringing vital things to the village on the shore. Latch onto boats with your many tentacles, drag them into each other, and send their crew and cargo to a watery grave.

boats

Each boat will be labeled with what it’s carrying, for instance “reading-lamp oil”, “bunny medicine”, and “orphan food”. You’re really not a nice creature.

Crashing boats!

Got a ton of gameplay done. It’s kinda fun already, though the dragging-boats-around doesn’t quite feel right yet. I might have to make the player bounce out of collisions as well—passing through the boats is kind of unsatisfying. Still, progress!

play

Tags: LD #33

Words!

Now you know what’s in the boats you’re sinking. Ain’t being a monster grand?

labels

Tags: LD #33

LD34

Art! Music!

Spent the morning getting some background music together and the rest of the day working on art. The music I think turned out pretty well, though it’d be easy to spend ages more tinkering with it; the art’s looking all right, but there’s still a lot of visual flourishes and whatnot I plan to add if there’s time. Onward!

Screen Shot 2015-12-12 at 11.57 p

 

Tags: art, love2d, music

LD35

Cat Tidying Continues

Taking a break from code to figure out the scene layout. Cats arrive via the pneumatic tube on the left (because where else would they come from?), you poke them into the shape you want on the table in the middle, then you place them in the box on the right. Once the box is full, a lid—with a bow on it, natch—drops on, the box moves off, and a new one appears. Thoughts?

scene-1

Tags: art, cats, gameplay

LD 38

Surface Tension

https://www.youtube.com/watch?v=qaBrdryRF2E

Finally got around to getting some gameplay footage. This was a lot of fun to work on—first time I’ve tried to use Unreal for a game jam in many years, but it went way better than I was expecting. Check out the result!

Looking for games!

Hey folks! I finally have some time to check out y’all’s games—been working through a bunch of cool-looking ones I ran across earlier, but if you’d like me to try out yours, just post the link here.

Meanwhile (you knew this was coming, right?), I’d be most grateful if you’d take a minute to play my entry, Surface Tension. It’s a simple-but-challenging, top-down-ish shooter set on a lovely grass-covered donut.

https://www.youtube.com/watch?v=qaBrdryRF2E

LD 39

Shutdown’s up!

cover image

Finally got this submitted! For once I had the full weekend to work and scoped it small enough to have time for a bunch of polish. I’m really happy with how it turned out—take a look!

Shaders in Shutdown

Hey folks! I want to do a little post-mortem / how-stuff-works post about one of the parts of my game that I thought turned out well, and hopefully encourage people to try the same kind of approach in future projects. This is what your character in Shutdown looks like:

entity 2.gif

…and this is how much code it takes to draw it:

love.graphics.draw(quadMesh)

How? Well, I lied (gasp!)—there’s more code. Everything in that animation is being drawn by a fragment shader. If you already know what that is, skip this paragraph and read on. Otherwise: a fragment shader is basically a small program that runs on the GPU for every pixel in a thing you’re drawing (in this case, a simple square). Unlike drawing libraries you might be used to, there’s nothing high-level to work with: there’s no “line here”, “circle there”, “gradient this way”; each pixel has to figure out what color it is independently. If you want half of the screen red and half of it blue, then each pixel has to do the math to figure out whether it’s on one side or the other and turn itself red or blue accordingly. This sounds complicated, but it lets you do some fantastically cool stuff—if there’s a mathematical way to express some pattern in an image, you can draw it with a fragment shader. Also, since the pixels are all independent, the GPU can do a ton of their calculations in parallel, which is way way faster than calculating each pixel in sequence.

So what’s happening in this shader is less complicated than it might seem—there’s a few basic-ish fundamental components that’re getting mixed together in a way that your eye can’t quite follow. Here’s a simplified earlier version of the thing:

entity.gif

A little easier to follow, right? There’s a layer of wide triangular stripes moving continuously outwards, and another layer of narrower stripes moving continuously inwards, and they’re being blended together with the mask of three equally-spaced triangles which are oscillating in and out from the center. There are reasonably straightforward mathematical ways to express all of those patterns in terms of a given pixel’s location on the screen—it involves a thing called signed-distance fields, which is a way bigger subject than I can get into here but a lot of which I learned from Íñigo Quilez’s excellent articles. Each pixel, again, is doing all of these distance calculations and deciding which part of the pattern it’s in to determine its color. The final, full-color image is made up of three layers of evaluation of the pattern, each using a different color and running at a slightly different speed, which gives the overall pattern a neat sort of ghosting / echoing effect.

One really convenient thing about having an entire image procedurally generated out of numbers is that you can poke at the numbers and get a way different image. In this case, I realized that there was nothing particularly requiring that the pattern be made out of triangles—all the math functions I was using just took a number of sides to use for their distance calculations. It was barely any additional code (albeit with a lot of fiddling with color values) to make a menagerie of other digital creatures for your character to be chasing after:

things 2.gif

An indispensable part of this whole process was Shadertoy, which is a website that lets you edit and preview fragment shaders in your browser. There’s a community of amazing people there who’re constantly making incredible things, all of which are open-source—I highly recommend spending some time browsing through the gallery and checking out how things work. You can see the in-progress-ish version of this “creature” shader on my page over here—edit the code (the “SIDES” bit near the top, for instance) and hit the Run button to see how the result looks.

So that’s about it—I ended up with these pretty nifty-looking animated creatures without having to draw anything and with, in the end, only 69 lines of shader code. Worth trying for your next game, no?

If you’d like to see all of these effects (and more!) in their full, non-GIF-compressed glory, Shutdown is right here. Thanks for reading!

score.gif

LD 40

Duck Guardian!

Hi folks! Hope the weekend’s treated you well. Allow me to shamelessly draw attention to the compo entry I made: Duck Guardian. It’s a physics-based arcade-y strategy game; you play as a duckling assigned to take care of your siblings, who will otherwise wander off and escape into the mysterious unknown. Check it out!

Screenshot

Duck Modeling

Hi all! Here’s a quick behind-the-scenes look at some of the art from my game.

hero.png

For making organic shapes in 3D, subdivision surfaces are your friend: the idea is that you have a low-polygon base mesh which gets smoothed—subdivided—by your modeling software, interactively, so you can make adjustments to the base mesh and quickly switch back and forth between that and the subdivided version to see what you’re getting. Here’s what the base mesh and the subdivided one look like, side-by-side:

subd comparison.png

The key thing to know about subdivision-surface modeling is how to use the density of the base mesh to control the contours of the subdivided one. You can see a couple of places on the base mesh where there’re narrow strips of polygons—around the base of the beak and around the upper edge of the body—and you can see on the subdivided mesh that that’s where the sharper edges ended up. If your polygons are all roughly the same size, you’ll have a uniformly smooth mesh, and it’ll end up looking blobby and uninteresting; figuring out where you want sharper transitions and adding more polygons there is essential to making shapes that behave appealingly. In Cinema 4D, the most useful tool for adding density is the Knife (in loop mode, usually—any extra rings of edges need to go all the way around the mesh or you’ll get weird discontinuities), but Inner Extrude and a few others can be helpful as well.

If you’d like to learn more about subdivision-surface modeling in C4D, there’s a good tutorial over here and about a million more around YouTube.

Thanks for reading—I hope you’ve found this interesting. If you’d like to see the duck in action, I highly recommend checking out the game I made it for: Duck Guardian!

LD 41

Play Typistry!

Do you like shooting monsters with a laser? Do you like typing words with a keyboard? In Typistry, you can do both!

screenshot

This is my eighth LD compo entry and the first one in a while where I categorically bit off more than I could chew—there’s a whole host of things I really wanted to get into it, but apparently making games is hard. Still, it’s fun, I’m proud of it, and I’m working on a post-jam version with a bunch of improvements; in the meantime, I’d be thrilled for y’all to check it out!

Less Gripe More Type

I’ve been working on post-jam improvements to my game, Typistry, and now they’re ready for action.

Screenshot

Version 1.1 has:

  • scoring!
  • a difficulty curve!
  • a way to heal yourself!
  • better performance!

There’s also now a Mac version—both of the original entry (for scoring) and of the new one. Want to play? Go for it.