Prototyping

shark vs the universe
Lint Roller? I Barely Know Her
let's talk about Bridgerton tea, my ask is open
No title available

if i look back, i am lost
Cosimo Galluzzi
The Stonewall Inn
Phantogram Three

izzy's playlists!
Fai_Ryy
almost home
EXPECTATIONS
Show & Tell
𓃗

Jimmy Eat World
macklin celebrini has autism
$LAYYYTER

bliss lane

No title available
No title available

seen from Canada
seen from United States
seen from United States

seen from United States

seen from United States
seen from Colombia
seen from Pakistan
seen from United States

seen from Australia
seen from Vietnam

seen from Colombia

seen from Ecuador
seen from China

seen from Malaysia

seen from Thailand
seen from Egypt

seen from Brazil

seen from Libya
seen from Iraq
seen from Colombia
@sluicergames
Prototyping
huller: a tool to generate a collision shape from an image
I wrote a small command line tool called huller to generate a convex collision shape from an image: https://github.com/clofresh/huller
The idea is to generate the collision shape outside of your game like this:
./huller path/to/sprite.png > sprite.lua
And then in your game you can do (assuming you’re using HC):
HC = require('HC') function love.load() spriteShapeData = require('sprite') sprite = { image = love.graphics.newImage('path/to/sprite.png'), shape = HC.polygon(unpack(spriteShapeData)), } end function love.draw() sprite.shape:draw() love.graphics.draw(sprite.image) end
Now you can do all the nice collision things with HC and have it (mostly) match what the image looks like.
Last update of my internship: 2.5D!
My 6 month self-internship is coming to an end. Here's the latest iteration of the game I've developed in that time. I've decided to call it The Veldt.
Some cool stuff about it:
2.5D perspective. I know, I know, just use Unity. To be fair, I was originally going for a sidescroller, but as I was implementing the hunting mechanic, it felt too rigid to only chase a gazelle in one dimension. It was pretty fun creating the perspective camera, though I'm pretty sure I'm doing it wrong. I think I'm supposed to create a homography matrix and just multiply the 3D coordinates by it but I didn't really understand the maths so I just made it up. Gazelle herding. Now that the gazelle can move in 2 dimensions, I can use the steering algorithms I initially implemented for the overview mode right in the action mode. It feels pretty convincing, but still needs some tweaking to avoid threats more proactively. L-system trees. I planted the L-system trees in the 2.5D environment and they look pretty cool. Some of the tree types actually have a Z coordinate, so when you walk by them, they look 3D.
Spine animations. Still there, still loving it. I haven't fleshed out the gazelle or hyena walk animations, but I'm excited for what they'll look like when I do.
Hyena fight or flight. It's not obvious from the video, but the hyena is actually make a conscious cost-benefit analysis on whether to fight you for the kill or not. If he's hungry, he'll fight. If he's full, he'll flee. There's also parameters to tweak the decision based on the chances that you're going to actually fight or you're just bluffing and the chances that if you do get into a fight, that he'll win, but they're just hard-coded for now.
Try out the build and let me know what you think: Win | OSX | Linux/.love
Controls: WSAD to move, Space to jump, J to bite, K to claw.
Also, I'll be posting a retrospective going through all the stuff I did during my self-internship, what was good, what was bad and all that. Bye for now though.
Added some trees in the background with some faux depth. Gonna try to incorporate some parallax next.
Now that I have terrain in my game, I need to populate it with some trees for the leopard to climb on. To do this, I implemented a parametric L-system that I found in this paper. An L-system is like a grammar whose symbols are instructions to a LOGO turtle drawing program. A dude named Aristid Lindenmayer developed them to model plant development.
The different types of trees in the video are just different parameter values of the same system. Math and nature are truly beautiful sometimes.
For further reading, check out The Algorithmic Beauty of Plants.
Textured, randomly-generated terrain
Added some randomly-generated terrain, which can also be textured.
I switched from verlet integration to runge-kutta integration which smoothed out a lot of issues, and helped me track down some “falling through the ground” bugs, and generally tightened up the movement. Can’t really tell too much from this video compared to the last animated gif, but trust me, it’s better.
Run, leopard, run!
Programmatically controlling Spine animations
I've been having a great time using Spine to create believable animations from simple images, which would have been crazy difficult if I tried to do it by hand. So far I've just been letting the animations play in my game as I've keyed them in Spine, but today I tested out the programmatic control that the Spine runtime gives you over the bones.
Here I've tied the joystick angle to the angle of the body for small angles, and the body angle with a maximum as well as the head angle for large angles. I think it looks pretty nice. I like that the walk animation runs without disrupting the body and head angles I've programmatically set.
A new leopard
So, I'm back from a whirlwind month of wedding preparations, actually getting married, and honeymoon in Kenya. Trying to be back into a good working routine. So since I'm making a leopard game now, I was really hoping to see a leopard in person while safari'ing in Kenya, but unfortunately Mr. Leopard was shy and eluded us.
I did get to create a leopard walking animation though, in a similar vector-y style as the elephant that I posted before. Here's the walk cycle:
And here's a slightly stiff clawing animation:
I'll definitely refine those later, but it's enough to get an idea of how the leopard will look in the game. Here's a demo video of the current state of the prototype:
Up next for me is to create animations for the rabbits, have some programmatic generation of trees (l-systems!) and climbing and biting animations for the leopard. Also, do something cool with the elephant.
Until next time!
Revisiting the fun
Sorry about the lack of updates. I've let everyone down and brought shame upon my ancestors, etc, etc.
Basically August I got a stuck on what my game should actually play like. I started working on a side-scrolling prototype, with a bunch of fun Spine animations. The prototype (win/osx/linux) involves you walking down a city street among some citizens while a ethereal panther-like creature stalks through, scaring and killing the citizens as he walks by. The Spine animation was pretty cool, especially doing the panther. But I still couldn't figure out a good player interaction that played well into the theme of the game and felt fun in its own right.
In order to step back from banging my head on the wall, I gave Ludum Dare 30 a try. I've never done a Ludum Dare, so it felt pretty good to be able to put out a playable game in 48 hours. The game I did involved the player switching between controlling a frog, a raccoon and a mosquito, depending on what killed you last.
The object was to kill as many of your prey as possible. My main takeaway was that it was fun as hell to jump like a frog. No complex narratives, no strategic resource management, just pure "wheeeee look at how high I can jump!" Which is exactly how a good core mechanic should feel.
So, going back to my game, I tried to take the fun of the frog jumping and see what other kind of animals might be just as fun to play the role of. There's already a precedent for animal games, like Goat Simulator, Amazing Frog, Bear Simulator and Deer God to name some recent ones. My favorite by far though is the cult SNES classic, E.V.O: The Search for Eden.
In EVO, you eat other animals to gain evolution points to evolve different parts of your body. Depending on the parts you evolve, you might be able to jump really high, run quickly or bite through your prey like marshmallows.
I want to capture that whimsical sense of being an animal among other animals in a rich ecosystem all trying to do their own things. I want it to feel viscerally fun, and one thing in prototyping I found is that besides jumping, climbing also has that same fun feel. So, since I already have this big cat panther from my other game, why not try to use him for jumping and climbing?
So, as of right now I'm making prototyping a big cat game. A leopard specifically, since panthers are just leopards with a skin variant. Jumping, clawing, hunting, climbing, all that fun leopard stuff.
I'm hoping to get a playable build out next month after I get back from my honeymoon (in Kenya!!). I'll leave you with one of the things I'm envisioning that you'd be able to climb on, Shadow of the Colossus-style:
See you in October!
I drew this panther in GIMP using a reference image, chopped up his pieces into layers, exported to Spine, rigged him up to bones and created a 32 frame walking animation. I think he turned out pretty well until I found out that panthers don’t actually exist, so I’m not sure what he is now.
Arkham Horror-like board game prototype
In the last post, I described a creature dodging mechanic as way to resolve encounters with these hostiles things from another dimension. This implies a 1-on-1 confrontation with the creature, but what if the gameplay was more on a macro scale? Like what if the player needed to take on more of a town coordinator role and let more qualified folks after fight the thing?
One of my favorite board games is Arkham Horror, a Lovecraftian game where you run around town trying to close the gates to the other world to prevent monsters from slipping into your town and eventually awakening an Elder God that devours you and the rest of the world.
Arkham Horror very much inspired the Lovecraftian story elements that I wanted to add into my game so what if I also incorporated some of the gameplay mechanics as well?
I still wanted my game to be played in real time so I didn't want to take the turn based approach that Arkham Horror takes. But I liked that the town played a big part of the game, so I tried to figure how to involve the whole town in my game.
I prototyped this with as a 3x3 grid of town locations with the creature and you moving among these locations. If the creature is in a location, it will either kill citizens in that location or damage infrastructure.
If the citizens or infrastructure drops to 0 in a location, that location is destroyed. If the creature destroys all the locations in town, the player loses. If the creature is in the same location as the player, it damages the player, and if the player's health drops to 0, he loses as well.
When a creature damages something in a location, it leaves behind evidence. If the player is in that location, he picks up that evidence. The player can go to the police station location to use that evidence to convince the police to evacuate a location, one person per piece of evidence.
Once 10 people have been evacuated, a hero appears and starts damaging the creature, but the creature also damages the hero back and eventually can kill him. You basically need to keep collecting evidence, evacuating citizens to spawn heroes until the heroes eventually kill the creature creature kill the creature, taking care to avoid the creature.
The prototype itself isn't too much to play, but it's more of an abstraction of how the game would world.
Download:
Windows
OS X
Linux (.love)
In the full game, the player would be running through a fully fleshed out town and physically collecting the evidence and avoiding the creature if it's there.
There might be more locations that can lend a hand, like a fire station to suppress the creature from going into certain areas, or a demolition consultant to damage the creature at the expense of infrastructure.
The heroes might vary in their abilities. Maybe one hero would tank and absorb damage, another might buff the damage per second of the other heroes, or another might slow the creature.
To integrate this gameplay into the story, I think it would switch between "walking around talking to people" mode and "frantically managing the town's civil servants" in either set parts of the game or at inconveniently randomly times.
Creature dodging prototype
I wanted to come up with a mechanic let you deal with creatures you come across in a more realistic than punching them in the face or blasting them with a machine gun, because one of my design constraints is to have the game characters react to things like you would react in real life.
This made "combat" difficult: how do I let the player feel empowered to deal with these things while still being believable? One mechanic I explored, thanks to jmoiron's suggestion, is an active parry system, similar to what you might see in the newer Tekken or Street Fighter games. How can I translate that into a 2D topdown game? Are there any other games with a similar kind of mechanic?
In 2D fighting games like Tekken/Street Fighter, there's constant action whether poking, punishing, juggling, dashing in/out, etc, so throwing in a counter can really disrupt your opponent's flow.
Another game with this kind of parry system is Assassin's Creed, where once you're engaged in combat, you switch from the rapid free running mode to a slower z-targeted mode, where you can attack, dodge, or counter, where countering will usually end the battle, but the impatient usually just spam attack until the opponent falls off a roof or something.
The Batman Arkham games were similar, though Batman doesn't automatically get an instakill on counter like in Assassin's Creed. He does get combo bonuses like increased speed/power when chaining multiple hits in a row, which truly makes you feel like Batman when fighting hordes of baddies. You often need to mix attacks, stuns and dodges with your counters to keep the combo going because the enemies don't always attack right away, so it forces you to mix it up. I found an interesting dev video explaining their Free Flow combat system.
All these games use counters as a change up to your attacks, making defense more fun and challenging because it does damage if you're skilled at timing it right. However, if you remove all the offense components, is it still fun?
I tested that out with a simple prototype where you are facing off against a creature. The creature periodically tries to pounce on you, but you can sidestep to avoid the damage. If you successfully sidestep the creature, you build up a little nerve (represented by the yellow bar), and the creature gets stunned for a short period of time.
If you build up enough nerve, you get bold enough to try and tackle the creature, but you can only tackle it when it's stunned.
Download:
Windows
OS X
Linux (.love)
That's pretty much it. At first I just had the sidestepping, but it was too boring, so I introduced the tackling. Even though it's an attack, you have to build up to it, and you can't just do it willy nilly.
As a mechanic, it has a little promise. Obviously if it were part of a game, the range of both your attacks would matter. You'd also need a reason for you to even be in that situation instead of just running away, either you being trapped, or you needing something from the creature.
It would also be interesting to add feints that both you and the creature could do. In fighting game they have is thing called mix ups, where you can choose between two moves with the same initial animation, but different ways of blocking it, and you train your opponent to guard against one for the whole game, until you switch it up and totally catch him off guard. I think adding a similar option in this context could really ratchet up the tension.
Anyway, that was a fun prototype. I may try to flesh it out more and/or try integrating it with the main game.
Used the very excellent 2D animation software, Spine, to create this animation in an hour or so (not including the time it took for me to write the GIMP -> Spine exporter)
Week 4 - Mechanics as Metaphor
There's a parable about quantity vs quality from one of my favorite inspiration books, Art and Fear:
The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality. His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the "quantity" group: fifty pound of pots rated an "A", forty pounds a "B", and so on. Those being graded on "quality", however, needed to produce only one pot -- albeit a perfect one -- to get an "A". Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the "quantity" group was busily churning out piles of work - and learning from their mistakes -- the "quality" group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.
So it turns out, it's better to make a ton a crap because at least you're learning from each piece of crap instead of theorizing in your head to make the perfect thing, because that perfect thing in your head is probably crap when it comes out anyway.
And so, for week 4's update, I switched from quality to quantity. Week 3's build was a single fairly polished, self-contained quest, but it's lacking something to make it grab you and make you want to play more. I'm hoping that by rapidly creating many more prototypes, I can come up with something more interesting than trying to add depth to a single ok prototype.
As for what to prototype in the first place, there's a classic game prototyping article that tells aspiring game designers to build the toy first:
Start with the core mechanic. Whether spring systems, swarm behavior, gravity, etc, it never took more than a few hours to get the basic theme up and running. This “toy” should be the core mechanic of the game minus any goals or decisions. There is no win or lose state, just a fun thing to play with.
In the article's case, they're brainstorming lots of different unrelated mechanics to see what feels good, but in my case, I want the game mechanics to contribute to the tone and theme of my game.
The very excellent game design channel, Extra Credits, talks about how games can convey meaning with their mechanics in addition to their writing in their Mechanics as Metaphor mini-series. They pose the question, "What is it we're exploring?", suggesting that you can use the answer to that question as the central design constraint to focus all aspects of the game.
For my game, I want to explore how an everyday joe schmo could possibly defeat cosmic horrors from another dimension. I want the player to be able to relate to the game, thinking "Oh yeah, that's totally something I'd do if an eldritch creature snuck into my all hands meeting."
As an IRL person, you won't just pick up a shotgun and start blasting away like most video game protagonists would. You're most likely a "knowledge worker", not a fighter. And by knowledge worker, I mean, good at sending a well timed email or looking stuff up on the internet, not uppercutting an elder god in the proboscis. Maybe you'll sprint after a departing train or dodge a homeless man's projectile vomit on your way to work, but that's about the extent of your physical prowess.
So since this post is a long already, in my next post I'm going to show some of the prototypes I've created, talk about my thinking behind them and how I might fit them into my game.
Thanks for reading! Next post I'll show you my Tekken-inspired creature dodging prototype, so don't forget to follow me on Twitter, Facebook, Tumblr, RSS, homing pigeon, smoke signal, etc.
jmoiron answered your post: Mental block
Work in a proactive defense mechanic, a la the parry in sf3:3s? Or the ICO “stick” route: make it *much* easier to flee, but allow victory.
Ah, active parry, that's a good idea. I was trying to figure out how to incorporate a "cower" action, I think I can expand on that to have a more confrontational but still defensive action.
Gotta watch a let's play on ICO to see what you mean about the second thing. I really should pick up a PS3 so I can catch up on these games I missed from being on the Xbox track. The list is starting to get long: ICO, Shadow of the Colossus, Okami, Journey.