Sloppy Turd

Hello all 6 of my fans,

For funsies, I’ve just submitted a game called “Floppy Turd” to the app store. It’s a riff off Flappy Bird, except you play as some poo going down a sewer. Awesome! Torri Lindsay did the art.

Sloppy Turd!

The Story
Our tale begins with the flush of a toilet. That satisfying sound commences the tale of a fresh poo and his quest to make it through a sewer without losing his sense of self.

This is a riff off the popular game, Flappy Bird, with similar gameplay. The difference is that it has Realistic Poo Physics and the most satisfying flatulence sounds you’ll ever hear outside of a spicy foods restaurant. Also if you do well enough, you may even unlock a second Poo Mode!

My high score is 56. Can you beat it?

Support
Having issues with it? Why not get on Twitter and message me, @daemonpants. If that doesn’t work, shoot me an email, or leave a comment on this page.

Get you the demo!

Hey there!

If I met you at Good Game Club, it was awesome to meet you. :-) I hope you liked Travail.

If you didn’t get to play it and you wanted to, or you wanted to play more, we have available for free download the demo that we showed at Good Game Club.

Go get it!

It runs on Mac, PC, and Linux. Please let me know if you have any issues running any of the builds. There are some known bugs, but this game is still in heavy development, so hopefully you can deal with it. :-D

Thanks again for coming back to see Travail!

Travail showing Nov 13 at Good Game Club

On November 13th we’ll be showing Travail at the , an expo for indie games. There will be like 20 games there, from big names to smaller ones like us! If you want to meet us or get a hans-on play of the game, then get you there!

Casual Connect

We were at Casual Connect showing off Travail, and it was great! If you want to try the demo we were showing, get it below.

Windows
Mac OS X
Linux

Asymmetrical Multiplayer

I’ve got a Wii U, and I’ve had one since launch. Some people might scoff at that; hey, that’s cool. I generally play single player offerings on my Mac and use my consoles for party games. I have had an XBox 360 for 2 years and haven’t played it more than 6 or 7 times. Of the games I own, Nintendo Land probably gets the most time. Its big thing that it tries to push is asymmetrical multiplayer.

For those who don’t know what this relatively new term is supposed to mean, let me explain. Because one player has the game pad, which is basically a controller with its own screen, and everyone else has a wii remote, there are a lot of options open to make the game pad player function differently than the others. One of our favorite mini-games in Nintendo Land is called “Animal Crossing: Sweet Day.” In it, the game pad player controls two guards at once, and uses them to try to capture the other players before they gather a certain quota of candy. Because the game pad player has their own screen, they can go anywhere secretly, unlike in typical split-screen games.

228960-SweetDayMainImage

I bring all this up because I think Nintendo is on to something with their asymmetric gameplay. Online multiplayer games have always done stuff like this, but there’s something awesome about all being in the middle of a room yelling at each other.

When we went to Indie Press Day, we got to watch a whole lot of people play Travail. We had two computers set up next to each other, and one of my favorite things about the event was cheering on whoever happened to be trying the game at the moment. There was a certain special moment when someone asked “can we play together?” I answered no, of course. But that little question and watching all these players got me thinking.

Travail’s at its most fun when you laugh together about how dumb Bones is being. The fact that he’s unpredictable but it’s “no sweat” to die is a big part of the game. Oh you idiot, you ran off the cliff. As such, the time reversal is key to keeping the game happy and not frustrating. I had thought about multiplayer options before, but really wasn’t sure how it would work. Two characters running at once? What if someone wants to reverse time? How does the camera work? It would have to be online-only. But time reversal just couldn’t happen. So you’d have to maybe remove reversal, but then the game wouldn’t really be all that fun. So I scrapped multiplayer, or at least put it aside.

But then watching people play and playing Nintendo Land gave me an idea. There are several distinct inputs that you perform as a player in Travail. Left-click for paths, right-click for walls, tap for jumps or to trip Bones, etc. Sometimes you’re switching between each so quickly it can be hard to keep them all straight. Oops, I drew a wall when I wanted a path! That can be funny, but also a bit overwhelming.

What if another player is drawing the walls, and you’re only handling the paths? Theoretically you could accomplish many harder tasks together, and likely would drive each other crazy at certain points. “Why did you put the wall there?” This kind of exponentially increases what’s fun about Travail in the first place. Not only do you have to wonder what Bones is going to do, you also need to deal with other players who may actively impede you!

An thus has resulted our own asymmetrical multiplayer. Each player gets their own pencil and can draw whichever mechanics are assigned to them, via a simple menu. To do this, I added keyboard support (use arrows to move the pencil around) and Xbox controller support. It seems fun so far, but I haven’t played it with anyone yet!

Screen Shot 2013-06-22 at 3.34.00 PM

Why did we lose a Death Boulder and gain a Travail?

DBB-Travail

Our longer-time fans, and those who saw us on The Next Game Boss, might remember that our game used to be called Death Boulder Bones. First it was a simple story about a guy trying to collect money, then that evolved into a guy trying to rescue his wife from a kidnapping… sort of. Then she’s, like, a vessel for Cthulhu, or something. It’s complicated.

Anyway.

The biggest lesson I learned from all the judges’ feedback, all the horrible (and sometimes nice) comments on YouTube, and how poorly our Kickstarter went, was that nobody was interested in some dude running in a temple – even if there was a twist ending. That’s all well and good. But – why would I care what other people are interested in? I don’t make indie games because I really give a damn what some 12 year-old on the other end of YouTube says. They can go make a game if they have a better idea. Then they’ll learn how bloody difficult it is.

But then I realized something, and it was something very very important.

I don’t care about a dude running in a temple either. Woah. Now there was a big realization. I was so invested in loving our unique gameplay mechanic that I didn’t put much thought into anything else. I knew the art was kinda generic and meh to me. I knew the storyline was poorly thought out and was a side note. But I just didn’t really put two and two together until so many people told me the same thing.

I minored in creative writing, and I have something like 300 pages finished in a novel. I’ve written lots of short stories, and started other novels. I even used to write a webcomic. I like to write. So why the hell was I letting it play second fiddle to some gameplay mechanic? Why wouldn’t I put them hand in hand? Perhaps more importantly, why wasn’t I making a game that really meant something to me?

The most important thing to me about a game is for it to be fun. Fun to play, and fun to make. As such, it’s what I tend to focus on. But I also have not gone the whole mile to completely finish a game before (even though I have at least 20 unfinished games and more ideas than that). At some point, perhaps from spending hours and hours working on Travail and from losing all this sleep and social time, the project jumped the gap between a hobby and something important to me. It became something I couldn’t stop working on, and it went way beyond just being a fun thing.

And that’s when I really decided – this game needs to convey to the fans how important it is to me. And a dude running in a temple does not convey that. A dude running in a government facility, or an alien world, or another dimension, also doesn’t convey that. So, what does? I thought a lot about it. For months, at least, I tried to figure it out. Then, one night, it all fell together in a sudden realization as I was trying desperately to sleep.

This game is about me.

Not really me, but it’s about an artist who is modeled off me. And modeled off any other person in the world who has really bled to create. Strived so hard to get their gushing braincase ideas to translate to a page or a computer. He or she is creating a comic book. That book might be about a dude in a temple, but that’s not the real story here. The real story is a creator struggling to get his words out. To make a story that works.

And now I’m in love with this project.

New Art Sampler

Here’s a little sneak peek at what we’ve been doing. Does it look comic-booky to you? Still some work to do, like retexturing the walls, the character, changing the HUD, etc. Wait until you see the pages flip…

New Style WIP 4/17/2012

Graphics style experimentation!

In our minds, one of DBB’s biggest issues right now is that it looks kind of bland and generic at this point. The art is not bad, it just doesn’t have a specific and interesting style. Since we’re indies and we can do whatever we want, it’s kind of weird we weren’t pushing the graphical envelope.

Also, we’re sort of all over the place with what the story might be. Bones is chasing down his wife, who has gotten into some deep trouble somehow. There is a random spirit helping him (the player) who is somehow related. And no, the spirit is not his wife. :-) We have some details here that we think are cool and fun, and a bit of dialogue written. But, just like the art style, it lacks a specific direction and most important it lacks impact.

So we’re looking at ways to improve both those issues. Step one is to turn this from a game with comic book cutscenes to a straight-up-diggity comic. The entire game takes place as a comic book story. Cool beans! And the main character isn’t some random spirit, but in fact is the animator. All this time we’ve been saying “you draw walls and jumps.” But now you literally draw walls and jumps.

The first step is to make the game look more like a comic book. We’ve decided to go drastic, and convert the entire game to halftone! So I wrote a nifty shader that does the work. Basically we want the game to look a lot like this classic Superman image:

 

It still needs a lot of work, but here’s some progress.

Black & White Halftone

Black & White Halftone

The above was my first go. It only has black and white halftoning, and it has no outlines or anything. You can tell it’s pretty difficult to make out, but it’s getting somewhere! The way halftone works is that the screen is filled with a bunch of dots, and the brighter something is the smaller the dot is. Look at Bones there and you can see how the white of his shirt causes very small dots.

First Color Halftone

First Color Halftone

Here’s the first shot at color! Using dots that are Cyan, Magenta, and Yellow (because old comics used CMYK printers), we can combine them to roughly produce any color. I also added some black outlines using object geometry, because otherwise it can be very difficult to make things out. The obvious weakness here is that everything becomes kind of uniformly washed out, aside from stuff that is closer to cyan, magenta, or yellow. Now you understand why old comics so often had characters with bright red, blue, and yellow outfits! Getting complex colors out of an old CMYK printer is difficult. The browns and tans above all look kinda bleh.

Yellow-Orange Experiment

Yellow-Orange Experiment

I experimented by dropping a yellow-orange cube in to see how it looks. The result is a gorgeous looking effect, basically exactly what we’re looking for.

Green Wall Experiment

Green Wall Experiment

That led me to try out making the walls a solid teal-green color. I think they end up looking great. With some gradient-like details, they’ll look much better I think.

RGB substitution for CMYK

RGB substitution for CMYK

Next I decided to see how things would look if I used Red, Green, and Blue dots. These are the color components that computers use to represent every single color you see on your monitor (and are the primary colors of light). Unsurprisingly, the image looks significantly clearer. The big problem now, though, is that the nifty effect is lost – it just kind of feels like a crappy filter over a normal game.

Ignoring Black

Ignoring Black

If you look at cool modern comics like Sin City, they generally have a few colors that really pop because they are sparsely used elsewhere. I decided to try doing this with specific colors. Here is when black or close-to-black are rendered solid (not using halftone). It’s definitely a little heavy.

Excluding Red

Excluding Red

And here is when we exclude solid red. I like this much better, and it’s more in line with what classic comics looked like.

Excluding all CMY colors

Excluding all CMY colors

Here is the final place we’re going to leave it for now. Anything that is close to one of the “primary” colors (that is, C, M, and Y, perhaps K (black) ) is excluded from the halftone. This makes the coins look particularly interesting because they stick out so much.

What do you guys think of this style?

Writing a fun steering algorithm

The cornerstone of Death Boulder Bones’s uniqueness is how you control the character, or rather how you don’t control him. Drawing walls nearby to encourage him to turn this way is a mechanic that hasn’t, as far as I know, been used in any game to date. But, Dr. Indie Bones is a stubborn guy and is also pretty heedless of danger, so he makes little to no decisions on his own. I guess that’s what happens when you’ve had a benevolent spirit preventing you from getting harmed during your entire life.

Most players aren’t going to read that little bit of story, however, so instead they’ll just have this guy in their hands who seems to make all the worse choices. Why does he blindly run into lava, traps, and certain death? In our current implementation of the game, the player often wonders this. For the most part, that’s okay. Assuming our tutorials are good enough, players are generally willing to accept certain tropes and idiosyncrasies as part of the gameplay. Okay, this guy is going to just go blindly ahead, and I’m the only thing stopping him from death. That’s cool. How would the game be any fun if Bones was able to navigate the level entirely on his own?

But. This really breaks down when the character tries to get Bones to do one thing, and they expect him to do that thing, but then he goes and does something else entirely. Defiance of a player’s expectations is 100% a bad thing unless it’s done purposefully to accomplish some other thing. In our case, it’s pretty random, and no bueno. One thing we’ve constantly been told by people who play the game is that there are instances when Bones will, for no clear reason at all, go the “wrong” way.

Well, what is the wrong way? Good question. That might be sensitive to context, or it might be an overall feeling. As a result, I’ve spent a lot of time and talked with a lot of smart people to try to get a feeling for what they expect. Because then even if Bones does some totally wonky stuff, as long as the player expects it then that’s totally okay. Before I go into the approach I decided on, let me lay out the past.

The History of the Steering, and of Death Boulder Bones

Believe it or not, this 3 raycast approach, albeit with a little tweaking, is the exact one currently in Death Boulder Bones and is what we used when competing on The Next Game Boss. Why? Because, or the most part, it works. But, it works only when the walls are drawn close to or out of Bones’s vision (in other words, beyond the reach of the raycasts). If you draw a wall very close to him, it’s likely all 3 raycasts will hit, and then the way he turns can be determined entirely by minute angles in the wall or in Bones himself. That means that, every once in a while, he’ll do something you don’t expect and it will drive you crazy.

A Better Approach
Because Bones is the only one at any time who is pathfinding, I can make him do it in a far more complex manner and not care about performance. As a result, I’m not worrying so much about how many rays I’m casting or how complex the logic is. He needs to be predictable, and he needs to just work. So for this next implementation, I’m going for a more usual steering approach.

Usually, steering is combined with something like A* to get several destination nodes and then steer between them. The thing about Bones is that he has no destination. In parts of some levels he has a “preferred” rotation that he sort of rounds to, but otherwise he has absolutely no knowledge about where he is going or why. That means that finding the edges of obstacles he raycasts against and choosing the shortest way around just doesn’t make any sense to do. Because maybe he doesn’t want to go around the wall? What if we want to make him turn to the left or right instead?

This means I can’t use the usual way of steering at all. Instead, it needs to be something that causes course adjustment but doesn’t rely on having a goal of any kind. In the previous iteration, Bones would turn away from walls that were on his left or right but not in front of him, due to those 45° rays. This allowed for course adjustment without directly inhibiting his movement, which was a definite plus.

I’ve decide to experiment with losing that, and instead only making him turn if something is directly in his way. This means a few raycasts pointing straight forward and at the full width of Bones (so he can’t squeeze through spaces smaller than his waist). If those casts see nothing, he continues forwards. If they do see something, then he sends casts in a full 360° arc around him. Whichever direction is the most clear – left or right – is the way he turns.

At the very least, this approach should be predictable. No matter what, Bones will go towards the nearest empty path. It also allows me to play more interesting animations, like an “aaahh I’m surrounded!” animation when he’s completely enclosed in walls, and a “ouch I ran into a wall” animation when one suddenly sprouts in front of him. It will also allow him to run closely parallel to walls, which he couldn’t do before. This could cause weird seesawing when walking in narrow passageways (move to the left to get away from the right, now move to the right to get away from the left, over and over again), and other problematic stuff.

My main worry is that he loses some of the “flee” steering response that he previously had with 45° rays. Will it be annoying to need to completely obstruct Bones’s path to make him move, or will it feel more natural? The only answer is to try it out. If it is a problem, then I’ll just have to try a combination of the old approach and the new one.

What we went with

Eventually, we settled on combination approach. Bones casts out a bunch of ray pairs in a 360° arc around him, currently there are 8 separate pairs (so at 45° angles). He then uses a combination of whether the rays hit obstacles, how far they hit, and which way he is currently facing versus what way the ray is going, to create a single weighted cost value. Eventually, he decides which value has the lowest cost, and he turns towards that angle!

Walls have a huge cost – if a direction hits a wall, he’s not going to want to head that way. Angle changes are also costly, but not as much. In general he wants to keep going straight, but if there is a wall in his way he’ll definitely turn to try an alternate route. When he’s completely surrounded by walls, he’ll basically just go towards whichever area has a wall that’s farther away.

This didn’t quite work, so I actually added one last step. Once he has chosen a direction, if he’s facing that direction or almost facing it (in other words, if he’s freely running with nothing in front of him), then he’ll cast out a couple rays to his sides. If either ray hits a wall, he’ll eke a little bit away. This encourages him not to hug walls, but instead to keep a reasonably distance from them.

The History of Death Boulder Bones

Back in the day, Grandendroit was not Grandendroit. It was two guys, Eli and Seth, trying to maybe get some games out there. I have pretty much always been working on games, even though I didn’t do it via video games until I was 11, with a sweet TI-83 game called “Fight!”. As a result, I decided to take one of the most fun game prototypes I had worked on, “Sinuosity” (from 2008), and turn it into an iPhone game. I really felt like it could fill a niche and regardless was super fun. You can have a look at Sinuosity here:

Play Sinuosity at otcsw.com

Our idea was to spruce the game up by making it pretty, giving it a story, and polishing off the rough edges. We discussed theming ideas and eventually came up with the thought of making it take place in a super hero universe. We named it Lab Rinth. We named the country in the game Grandendroit. The main character became a wannabe superhero and the bad guy a super villain. Cool beans. We wrote a script, did some art, did a lot of code, ported the game to Unity, and more. We spent over a year on it, in fact.

Lab Rinth hero alternate skin

In many ways, Lab Rinth is sort of a more lite and casual Diablo. The enemies in the game were damn good at finding the player. They would use A* pathfinding to home in on the player and move exactly to where they were, even if they were on the other site of a wall that was 50 spaces of running around corners away. This was both inefficient and also semi-lame gameplay. As an experimentation, I wanted to see if they’d be more interesting if they were dumbed down a bit to simply have a steering algorithm. So they’d move in the general direction of the player and try to navigate around walls and like naturally as they turned.

Lab Rinth wooden shield

Lab Rinth wooden shield

The finer points of the pathfinding will be discussed in a later post, but the end effect was that I found the results very interesting. I noticed that if I dynamically moved the walls around while the characters moved, they reacted in emergent ways. It was almost like you could control them without actually controlling them.

First Steering Test

First Steering Test

The timing was right, because soon after there was a Ludum Dare 48 hour game competition. When the theme was announced as “Escape” and I already had these characters that simply run forever, I thought I had a great idea. Why not draw walls with the mouse so that they dynamically steer, and also block traps and things like arrows as they are fired? That turned into the 48h game, “Death Boulder Jones.” Sound familiar?

You can play Death Boulder Jones here.

Death Boulder Jones 48h screenshot

 

Soon after the competition was over, we realized that Lab Rinth was super ambitious for two guys who were working part time. Even though we got help from some other artists (Darrell included), the going was quite slow. It also is much less of an attention grabber than DBB in a lot of ways, because it doesn’t bring as many big new ideas to the table. So it was that we tabled Lab Rinth temporarily and decided to spend “just like 3 months” on our game Death Boulder Bones to get a game out there.

First Dr. Bones Concept

First Dr. Bones Concept

That was September 2011. If you’re counting, it’s now over a year later and we’re still working on it. The current charted release is July. But, I think that’s good. Instead of rushing out this hokey little game prototype, Death Boulder Bones is now a totally awesome full indie gaming experience.

Early HUD and gameplay concept