Adrian Herbez Rotating Header Image

Posts Tagged ‘games’

PLARL: Roguelike Celebration talk

The Roguelike Celebration is an annual mini-conference on roguelike games and procedural content, currently in its fourth year. I’ve gone the past three years and its always wonderful- highly recommended.

This year, I was lucky enough to get to present a short talk on my 3d-printable roguelike, “PLARL” (short of the poly-latcic acid roguelike). The talk (along with all the other, even better talks given by other contributors), is up on youtube and viewable here:

Also, if you’d like to see the slides from the talk, they’re available here: http://www.adrianherbez.net/plarl/prez/

Also also, I have all of the code for both the OpenSCAD model generation and the JS-based maze generation available on github here: https://github.com/aherbez/plarl

talks , , , ,

Ghast Blasters (Bose AR Gamejam)



This was a game prototype created in Unity for a gamejam sponsored by Bose, which was a competition to create games their audio AR hardware. I was part of a four-person team, including:
Eli Delventhal
Goose Gutierrez
Mario Godoy
Eli and I were responsible for all the code, Goose for the art, and Mario for the music and sound effects.

Ghast Blasters is a cooperative game where two players work together to defeat supernatural terrors. One player is tasked with locating ghostly threats using spatialized audio via the Bose AR glasses, while the other draws arcane sigils on a phone or tablet to seal them away.

The phone player “sees” through the eyes of the AR player, and can provide feedback (“Turn left!”, “To your right!”) to help them orient to the enemies. They also have a radar screen to see where enemies are in relation to the AR player.

projects , , , ,

PLARL: the 3d printed roguelike (proof of concept)


This was a project to generate a 3d printable dungeon using OpenSCAD. To play the game, the player uses a screwdriver or similar to break away parts of the printed model, revealing additional information.

The result has multiple layers stacked on top of each other, with the bottom layer (red) consisting of the maze pattern, the middle layer (green) supporting iconography for things like monsters, and the top layer (blue) being the door. Both the blue and green layers break away.

To see a playthrough of an example level, check out this video:

projects , , , , ,

Honeycomb Cavern Dice Roller

downloadA former coworker of mine, Alexander Shen, recently ran a successful Kickstarter campaign for his awesome pen-and-paper game, Honeycomb Cavern.

I picked up a few of the books, and absolutely love them. When I gave my girlfriend’s niece her copy, we couldn’t find the required three dice to play. So I whipped up a quick little JS canvas project to roll three D6s. Once I had that working, I went ahead and added some logic to draw the various options available to the player according to the Honeycomb tavern rules.

To use it for yourself, head here. Reload the page to get a new result.

projects , ,

Bot Logic

Screen Shot 2019-03-20 at 11.03.33 PM

This is a small game prototype I created over a few evenings, based on classic “knights and knaves” type puzzles. The player is presented with three characters, one of which is guilty. Each of the bots either always tells the truth (a “knight”) or always lies (a “knave”).

The player is tasked with parsing the various statements to figure out who the guilty party is. Clicking on a bot to make a guess not only reveals the culprit, but also color-codes all the statements for red (lies) or green (truths).

For video of it in action, head here. Or, to play it yourself, head over here.

projects , , ,

SETI: the game

A few months ago, I attended SETIcon, which was all-around wonderful. However, I thought that the panel on science and videogames left quite a bit to be desired. Several SETI-themed games were presented, but I felt that they were more about overlaying a SETI theme on unrelated mechanics.

Which got me thinking… what would a game that lifted its mechanics (as well as its theme) from SETI look like? I had an idea that I thought could work, and it sat around in my notebook until this past Sunday when I found myself at a laundromat with a laptop and some time to kill.

setigame v0_1

The game takes the form of a puzzle game, where the player has to tweak settings to extract a digital image from a noisy analog signal. The fiction of the game is that aliens are sending a sequence of 1s and 0s that will create an image when properly viewed. However, there are a couple of obstacles in the way:

  • traveling through space has rendered the signal noisy
  • the player doesn’t know the specifics of the alien transmission standard

So, the player has three things that they can alter:

  1. the threshold of what amplitude constitutes a 1 This translates the analog signal (the top-left waveform) into a digital one (the bottom-left)
  2. the width (in time) for each sample This alters the way in which the analog signal is translated into the digital.
  3. the width of the image This controls how many pixels there are per row of the final image (displayed to the right

The threshold value can be changed by clicking and dragging the gray box, and is represented by the green horizontal line. The other two values have to be entered in the fields at the bottom of the interface (for now- I plan on making them visually draggable as well).

I wrote a small Python script that can be used to translate a given low-resolution image into a sequence of noisy values (like this). The demo only has one image, but it’s one that’s bound to be familiar to SETI enthusiasts and science nerds in general.

To try it for yourself, head here.

projects , ,

algoclass: week 1

As I work my way through Stanford’s excellent online class on the design and analysis of algorithms, I’ve decided to up the ante a bit on the homework assignments- not only will I do the stated assignment, but I will also wrap it up in some manner of game or game-like interactive demo. This is the first such demo.

This week’s assignment was to implement merge sort and then to modify the merge sort implementation to count the number of inversions (or out-of-order numbers) in an array of integers. Inversions are useful, as they allow two lists to be compared, with the number of inversions functioning as a metric of how similar they are.

In this game, the goal is to guess the correct ordering of the eight colors. Each time the page starts, a random order is selected. To play, try to guess what it is by clicking on the color swatches to the left in an order of your choice. Once you’ve ordered the eight colors, you’ll see a small version of the order with a red/green bar at the bottom. The red/green bar corresponds to how far away you are (number of inversions / max possible number) from the correct order. The game (although a very hard, possibly unfun one) is to use the information about past guesses to inform your choices.

projects , ,

jsdemo: void

I finally got around to playing Bastion this weekend, thanks to the always-amazing Humble Bundle.

I thought that the way in which the ground rose up to meet the main character was particularly beautiful, and decided to try my hand at recreating it in javascript, and this was the result. The arrow keys move the character around in the world as ground tiles rise up to greet him, and objects (well, an object, a television) falls from the sky.

Click on the image to see if for yourself. Art for the character and the television came from opengameart.org.

projects ,

Ludum Dare: Tiny World

I just participated in my first Ludum Dare competition, with the theme ‘Tiny World’. My game is a bit small, even by Ludum Dare standards, as I’m currently on vacation, so only had the plane ride, plus a bit of time here and there to work on it (not that I’m complaining 😉 ).

In the game, you take on the role of a planet builder, tasked with creating planets from matter floating through space. The game lies in rotating the planet so that the matter is evenly distributed, and rejecting matter of the wrong type (each level has different requirements for the planet).

To play the game, either click on the image, or go here.

projects , , , ,

Collectible Dart Game: paper prototype

I was playing Magic: The Gathering recently with a friend at a local bar that so happens to have a dedicated darts room.

That got me thinking- why not have a collectible darts game? After some thought, I nailed down a rough draft of a design, with the following elements:

  • The collectible/swappable component is the fins of the dart (“flight”) on which is printed stats and abilities
  • The setting/theme of the game is future fantasy, with players competing to mine resources from a planet (the dartboard) by sending units down to the surface (throwing darts)
  • All units have:
    1. a mining stat, combined with the value of the section the dart hits to determine amount of resources gathered
    2. a combat stat, used to resolve combat between units
    3. [optionally] an activated ability of some kind, for example: [R] + 5 to mining, which would mean that if the dart lands inside a red section of the board, it earns 5 extra units of resources
  • Play proceeds with players alternating to throw darts
  • Combat is resolved at the end of a round, and the resource totals are added to each player’s running tally
  • The first player to gather a set number of resources (100?) wins

I’m still thinking through the combat system, but in the meantime I wanted to be able to generate some prototype pieces to start playtesting. As such, I wrote a small Python program that accepts a text file describing units and generates a printable PDF that can be used to make flights. I’ll likely be changing the design of the flights a bit (altering the shape and making them slightly bigger), but it’s a good start. To see the generated PDF, go here.

projects ,