Parking in my neighborhood

March 22, 2017Urban Parking Simulator

The v2 of the parking game prototype is underway! This version will feature:

  • street layout based on my actual hometown
  • some rudimentary traffic from other cars
  • lose condition for incorrectly turning into a one-way street
  • lose condition for hitting other cars or street signs
  • a time limit

It’s Scattergories meets Anomia meets…

March 19, 2017NameOff

So I mentioned that last week I was wrapping up a prototype of a game that’s a bit like Scattergories. You can jump to it right away (give the link to at least two other friends so you can play together), or read on for some more details.

Here’s a summary of what’s different from the existing board game:

  • Each matchup is 1v1, rotating under a round-robin format (instead of everyone playing at once)
  • You can submit multiple responses (instead of 1 response per category)
  • The round time limit is only 1 minute (instead of 3 minutes)
  • The three categories are selected via drafting (instead of using predetermined lists)
  • The judges may discuss and anonymously vote on responses’ validity in real time (instead of everyone discussing once time is up)
  • You can play online from your browser!

The working title is NameOff, because “Battlegories” was already taken by someone else before me (it’s even on the App Store!). The core of the game is a 1v1 duel, in which you and your opponent are given three categories and a random letter. The goal is to list as many items from any of these categories, as long as it starts with the given letter. You have 1 minute, and you only get points for unique answers (i.e. no credit for listing something that your opponent also did).

Once the minute is up, the other players serve as community judges, who collectively determine whether to accept or reject your responses. A real example from playtesting was the response “Tracer” for the category “Things you can’t touch.” Non-gamers won’t understand that reference, so they might reject it (or use the in-game chat feature to discuss with the other judges). Ultimately it’s up to the crowd to figure out what’s passable and what’s not, which is par for the course in the creative party-game genre.

Now, how are the three categories selected? Well, to make it a competitive game, what better way than to implement a pick/ban phase?

The game pulls six random categories out (referred to in the source code as the catBag, heh), and the two players pick one category each, then ban one category each. The third category is picked by a random coin flip between the remaining two.

And… that’s pretty much the gist of it. Because it’s a round robin format, I recommend capping the game at six players to avoid games stretching on for too long (which would result in 15 duels played). That means 15 minutes of writing down responses, plus judging time and the down-time given to review the post-round results, coming out to about a 20 minute game, I’d estimate. And you need at least three players to start, because of the judging aspect.

To be honest, making this prototype took way too long (a bit over a week), and calling it spaghetti code would be an understatement. If you’re curious, though, I used the standard Node/Express combo, with Mongo to store the leaderboard. The HTML/CSS/jQuery is extremely messy, so the page layout gets goofed up if you resize your window too small. Regardless, I’ll likely leave this project alone for a while. The only two things I might come back for are:

  • Recording which categories get picked/banned the most, globally
  • Simply adding more categories to the pool

In conclusion, I’m overall pleased with how it turned out. It’s functional start-to-finish, and passes the initial smell tests for good game design. Some random thoughts on the game mechanics:

  • The pick/ban phase isn’t just an arbitrary nod to e-sports. Rather, it ought to push you to think about what your opponent is familiar or unfamiliar with, especially because that person might be able to rattle off an easy 5-6 responses for a category unless you ban it first. It also introduces variety into the matchups, so you’re always on your toes.
  • The 1-minute time limit is calculated by starting with the average 15-second period you’re given per category in vanilla Scattergories (180 seconds for 12 categories). The extra 15 seconds offered in NameOff is to allow for greater volume (list as many as you can think of) so the judges have more to work with.
  • It’s a challenge in itself to think of categories that work well with this “unlimited” format. For example, I intentionally excluded categories involving just free recall of states, countries, sports teams, etc. because they usually cap out at 2-3 good ones for any given letter, and anything beyond that becomes more of a memory exercise, which I don’t want to be the core focus. I prefer categories like “Things that cause you to crash,” which might make you think of distractions (bumblebee, phone call, deer, auto accident (!)), or things like coffee, caffeine, napping, or Adderall.

If you have a few friends online now, play a quick game together and let me know your thoughts!

Possible rebranding, and productivity systems

March 15, 2017General

I’ve been tinkering with the idea of changing our identity away from Tuttle Games, to something else. In a sense, it’s fortunate that we haven’t really gained a solid following so far, because we can sort of start fresh.

So far, the focal point is the word “leaf” due to our surname in Chinese. I also like that it evokes tea, nature, calmness, autumn, etc. We drink a ton of tea, I’m a big fan of hiking and nature walks, and I generally have a relaxed demeanor. Yeah, that’ll work.

The word itself is involved in phrases like “turning a new leaf” or the concept of a page, which makes sense because we always try to push the envelope when it comes to storytelling and gameplay execution.

It’s also short and easy to convey. “Tuttle” is confusing to many, as the childish pronunciation of “turtle” doesn’t quite fit well with two grown adults aiming to make thought-provoking, nuanced games.

Logo-wise, I’d like to implement some geometry that resembles the Chinese radical for “grass” (often numbered 140, for reference). It’s used to write “leaf,” and the plus signs are inadvertently a nod to the d-pad symbol inherent to video gaming.

In other news, I’ve begun a personal productivity habit that I call the “best of 3” system. I set three goals every Sunday night. I keep them very simple yet tangible. They can relate to fitness (“do two sessions of Couch-to-5K”), cooking (“try that tuna-cucumber temaki recipe”), game development (“build first prototype for parking game”), music (“finish the Sombra instrumental beat”), or whatever. Then, I have until the next Sunday night to complete at least 2 out of 3 of them. Whichever one I left behind gets automatically moved to the following week, meaning I only have to think of two new goals.

The beauty of it lies in its simplicity, approachability, and anti-boredom traits. It’s not like I’ll have three goals all related to one thing, encouraging burnout. It’s just three goals (many of them are “one-off” tasks that can be started and finished in one day), not 10. And I’m likely to eventually catch up to any task that has survived multiple weeks of incompletion, because I’ll feel guilty that I’ve neglected it for so long, and maybe both other goals for that week don’t seem palatable anymore.

The rebranding will require some more thought and brainstorming. My next post will outline what my goals were last week, and what came of them.

Parking in New York City is a nightmare

March 14, 2017Urban Parking Simulator

There’s a long list of things to hate about New York City, and the impossibility of finding parking has always been one of them. A dedicated parking spot (i.e., a neighbor’s driveway) typically costs in the $100-200/month range, which isn’t worth it for me, as I drive only once a week or so.

I’ve come home late at night a few times this year, only to drive around in circles for up to half an hour before I find street parking. It’s really bad. Terry and I began thinking of possible solutions.

Maybe I could try constructing Larry David’s car periscope?

Then I thought about those cheap camera drones that go on sale a lot. What if the passenger could send a drone to nearby blocks and look for open parking spots? I realized this presented a sort of cooperative two-player game between the driver and passenger. We could call it “UPS” — Urban Parking Simulator.

The driver’s job:

  • Follow normal traffic rules (don’t hold up traffic, obey one-way streets, don’t hit anyone or anything, don’t run red lights)
  • Decide when to turn or circle back, and when to keep going straight (farther from “home”)
  • Visually confirm that a parking spot is actually valid (there aren’t any no-parking signs, fire hydrants, or driveways)

The passenger’s job:

  • Pilot the drone in an efficient manner (don’t waste time sending it the wrong way, as it isn’t very fast)
  • Identify potential parking spots (empty spots along the curb, pending visual confirmation from the driver upon closer inspection)
  • Determine the order in which to check all the open-looking spots (hey, sounds familiar!)
  • Effectively communicate directions to these spots (cardinal directions, or relative?)

Best of all, there’s a natural time pressure (no one likes circling around aimlessly). Scoring could also take into account how far you went from home. Later down the road, we could add car and drone upgrades! Including hats to put on the drone!

We were pretty excited to try prototyping this, so I jumped into Unity the next day. On February 26 (about three weeks ago), I whipped up a sloppy proof of concept and sent it to some friends, but didn’t have time to blog about it. These wonderful volunteers gave me excellent feedback on it, and I’ll be working on the second iteration this week. Here’s a gfycat featuring a few seconds of gameplay:


Initial Windows build: tons of lag between menus?

February 5, 2017Better Ballistix

Last night, I built the current Pong 4 Pals iteration for Windows, and tested it with two wireless Xbox 360 controllers. It did not go as expected:

  • There’s a lot (10+ seconds) of lag/unresponsiveness starting with the title screen when you press A or B to navigate simple menus
  • The loading screen right before actual gameplay took about 10 seconds or so, compared to less than 1 on my Mac
  • The physical Controller 1 seemed to come in as 2, while the physical Controller 2 (especially as indicated by the green corner lights on the controller itself) registered as Controller 1
  • If you opted to play on the “west” side of the board, you still had to use the horizontal axis (left and right) to move up and down, respectively

Weird stuff, and I’m not looking forward to fixing these issues, but it must be done!


January 28, 2017General

Happy Lunar New Year!

I just spent the last half hour playing around with this really neat art program called Hexels, as it was on sale around Christmas time on Humble Bundle.

In case I ever develop a game that has loading times of more than 1 second, here’s what I can use as a spinning wheel graphic:

Maybe I should draw a rooster next.

Evening update: Here’s an isometric rooster.