10 Jun

DANIEL COOK ON GAME DESIGN

roadnottaken

 

Daniel Cook, of Spry Fox games is a brilliant and thoughtful game designer. As a player, I love his games Triple Town and Road Not Taken (pictured). If you haven’t played them, run don’t walk. They’re both on Steam, as well as many other platforms.

I think of him as a game designer’s designer. His games are mechanically innovative, elegant and rich. They reward repeated play and deep engagement yet are produced with a small team and modest resources.  Hopefully at some point if he has time I’ll have him on the show for a conversation but for those who are unfamiliar with him these are some great, rich resources to dig into first.

His blog, at Lost Garden, is a treasure trove. Start with this piece about Loops and Arcs and then wander around. You won’t be disappointed.

The thing that motivated me to write this post are two video taped talks he gave. The first is a sort of crash-course on analytical thinking about game design that I think is wonderful and invaluable.

It’s pitched toward beginner designers and offers a series of powerful lenses through which to look at, dissect and improve your game designs. If you get nothing else from this post, watch this one.

The second is about Designing Original Games:

In it he discusses some principles for trying to create mechanically original game designs and the advantages of this approach vs the more incremental ‘10% better’ approach we often encounter. I found it very provocative and interesting and hopefully you will too.

21 Apr

Ludum Dare 32: Skull Bomb Game Jam Post Mortem

I did my first game jam this weekend! I participated in the jam portion of Ludum Dare 32 and made a little game called Skull Bomb (play it here). The theme was “An Unconventional Weapon” and after it was announced I brainstormed a bit before settling on ‘blowing yourself up’ as my interpretation of the theme. I didn’t want to have my player character blowing up other humans so I decided to make the game about a world taken over by evil robots. This also worked in my favor that I didn’t have to program any sort of realistic AI.

I’ve been really wanting to do a Ludum Dare since I learned about it but being a dad, having a job, etc always seem to stand in the way of coming up with 48 uninterrupted hours on the jam weekends. This time I decided to not let that stop me and jammed in the hours after my kids bedtime, for a total of maybe 16 or so hours over the 72 hour jam period. I’m really glad I did!
What went well:

I made a game! Not waiting for the perfect moment and the planets to align allowed me to actually make something.

I scoped correctly. I picked a topic I was able to finish in the time I had without crazy crunching.

Used Unity 5. That went well, Unity ran smoothly, few crashes and weird bugs. I think it crashed once.

Using Unity’s Navigation for AI. Setting up the enemy units as Navmesh Agents worked great. I made an array of destinations and selected randomly from that to get enemies moving around un-predictably. Easy and effective.

Simple Sound Design. I added some spooky synth drones that I made with Logic X’s built in Sculpture synthesizer. Sculpture is a physical modeling synth and I love the timbres you can get out of it, I thought they set a good, ominous and abstract tone for the game.

Narrative via Voice Over. This was probably the best received aspect of the project. I wrote a simple voiceover script describing a dystopian sci fi world overrun by machines and laid out the players mission. I had my girlfriend N. read this and did a bit of editing and mixing in Logic. Details I was happy with that people commented on as well were the cut-up phone maze style strings of numbers that added to the overall dehumanizing atmosphere. Using a voice over was cheap and easy (maybe 2 hours work to write, edit, mix and implement) and added a whole narrative layer to the game that I thought was very effective. Because it ran in the background at startup it allowed the player to experience the narrative without having to wait, read or otherwise be delayed from experiencing the game play. Several people commenting on the game remarked on how well the voice over worked so that was definitely a high point.

New Genre/Mechanic. I’ve never tried to make a stealth / sneaking style game and was quite happy with that aspect of it. I definitely learned a lot and enjoyed working with the form in a short format. This is perhaps my favorite aspect of jamming, the chance to try out different genres or ideas in a short form, low stakes way and get feedback.

Art Style. The art style that I chose was simple, minimal and achievable. I was happy with the result and felt like it worked well with the theme. I got a few nice comments on it so I consider that a success, especially since I consider myself a non-artist. I also got pretty close to my initial ‘vision’ visually.

Getting Feedback / Iterating. By posting the build a few hours before the deadline I got some very useful, maybe critical feedback about playability, controls and clarity. This included a lack of clarity on where to go which I tried to address and not locking the mouse cursor which lead to issues in browser based play. Catching these early was good. I’ll definitely aim to do this in the future, getting those little bits of feedback before finalizing was great.

What went poorly:

Level Design. Several people commented that they wandered around, didn’t know where to go, couldn’t find the goal. The way I laid out the level had no clear (or unclear) path through it, it was just a big box. After getting that feedback I added a moment in the beginning where the player falls from high up and gets a chance to see the black box that represents the server. In hindsight I really gave the player almost no clues as to where to go. I even was considering initially having the monolith change it’s location each time player spawned to add replayability and difficulty. I realize now that that would have been a mistake.

Difficulty. The difficulty was very inconsistent. Sometimes the enemies randomly left big clear paths, sometimes they created impossible, inescapable situations. With more time or better planning I would have set up some more carefully planned routes for the AI to patrol that interlocked, created gaps etc. As Twitter friend @ChrisLaPollo points out though that these are the types of things that you learn in making a jam game and can polish up after.

Browser Support. Annoyingly Google Chrome dropped support for NPAPI plugins right before the jam breaking support for Unity Web Player. The game played fine in other browsers but this was just kinda annoying.

Control Tuning / Playtesting. Several players complained that the movement speed was a little slow. I actually bumped it up a bit but probably could have taken it up a little higher. More playtesting earlier probably would have helped this but given that I was jamming on my own in my apartment I didn’t have local playtesters available. In the future I’d like to try and jam with a team and / or at a space with other people. I think this would have helped a lot to catch this and some other issues before posting.

Play the game here, or watch a video below:

09 Apr

Where I’ve Been

Aaaaand we’re back. A few of you NewbQuest listeners / watchers / readers have very politely asked me what’s up with the show via Twitter (@mattmirrorfish). It’s been a pretty busy period for me, with the main news being: I got a new job! I’m now part of the Online Content Team at Unity Technologies and help out there with making videos for the Unity YouTube channel as well as doing about half of the weekly Monday afternoon (US EST time) Twitch streams teaching Unity. It’s an awesome job and I’m super happy to be doing it. It’s definitely in line with the mission of what NewbQuest is all about. The sad fact though is that it’s pretty time and energy intensive and because it’s similar to what I was doing for the show it’s caused me to go on a bit of a hiatus. I’m bringing the show back to life to release an episode that I’ve (shamefully) been sitting on for quite a few months with the excellent Steve Swink (sorry Steve!) and I’m aiming to make some more regular updates here now that I’m settled into my new job, new apartment and generally re-arranged life!
For those who use Unity I’d love for you to check out my first big project for them which is a 14 part tutorial series on creating a 2D Roguelike game. This is aimed at intermediate Unity users but if you’re a beginner with a lot of gumption and desire feel free to dive on in.

I’ve also been working slowly away on my procedural flying butterfly shooter Pollen and have made some progress with it. You can check out some gameplay footage of the first two levels here:

09 Apr

NewbQuest Ep. 6: Steve Swink, Game Designer of Scale

In this episode I interviewed Steve Swink who is currently working on a game called Scale. Steve is a game designer, author and teacher whose thinking I respect very much. Having taught, written and made games Steve offers a unique perspective which encompasses both the academic and applied views of game design and combines formal rigor with practical, down to earth application. His book Game Feel provides an excellent examination of this often casually applied term including breaking down elements of interactive experience like frame rate and it’s relationship to how responsive a game feels in granular detail.

Steve’s current project is called Scale and it’s a game in which the player can make objects in the world larger and smaller to solve puzzles. Imagine scaling up a vending machine so you could crawl inside it and pull out what you need and you’ll get a bit of an idea of some of the experiences possible. It was a great pleasure to speak with Steve and I hope that you enjoy listening in.

You can subscribe and download the show via iTunes, and if you do I’d love it if you had time to leave an honest review.

You can also check out the show via the NewbQuest YouTube channel, if you prefer that format. If you do I’d appreciate if you’d subscribe or leave a comment over there.

08 Aug

NewbQuest Ep. 5: Kellee Santiago of OUYA, thatgamecompany

In this episode I interviewed Kellee Santiago, now of micro-console OUYA, formerly of thatgamecompany.  Kellee’s work with thatgamecompany along with her public thought has been a real inspiration to me in thinking about the potential of games as a medium. Her emphasis on creating aesthetically beautiful, welcoming and generous experiences at thatgamecompany with Jenova Chen really felt like something fresh and unique in the field of gaming and make a powerful concrete case for an inclusive and broad vision of what games can be and who they can appeal to.  The fact that her most well known titles Fl0w, Flower and Journey broke out of the indie / art game ghetto and were made in partnership with Sony for the consumer oriented Playstation and the broad audience that represents still amazes me.

Today Kellee has joined the team at OUYA, the company behind the Kickstarter funded living room console with an overtly democratic and indie friendly message. This seems a natural fit considering her emphasis on broadening the scope of the video game medium and her work producing, leading and organizing at thatgamecompany.  She’s been involved in bringing some very intriguing titles to the OUYA platform, including That Dragon Cancer a game which portrays a family in their fight with their child’s cancer diagnosis. I really enjoyed speaking with her and I hope you enjoy listening in.

You can subscribe and download the show via iTunes, and if you do I’d love it if you had time to leave an honest review.

You can also check out the show via the NewbQuest YouTube channel, if you prefer that format. If you do I’d appreciate if you’d subscribe or leave a comment over there.

You can find Kellee Santiago at her website, on Twitter at @kelleesan and follow her work at OUYA at the OUYA developers portal.

 

 

13 Jun

NewbQuest Ep.4: Richard Flanagan, Game Designer of Fract OSC

In this episode we interview game designer Richard Flanagan who is a member of the team who created FRACT OSC.  FRACT is a musical puzzle exploration game for Mac and PC. FRACT is best imagined by asking: what if Myst and Tron had a baby that was a giant synthesizer you could wander around in? If that sounds awesome to you, you’ll really enjoy it.

For those interested in music and sound technology, particularly real time synthesis, the project is very interesting.  The musical puzzles in the game combine pre-recorded music tracks with real time subtractive synthesizer sounds powered by Miller S. Puckette’s Pure Data (or PD) sound generation environment.  This is an area of real time sound and music generation that I’ve been very interested to see pursued further in games and so was delighted to talk to Richard about it, along with the larger process of developing FRACT OSC.


You can subscribe and download the show via iTunes, and if you do I’d love it if you had time to leave an honest review.

You can also check out the show via the NewbQuest YouTube channel, if you prefer that format. If you do I’d appreciate if you’d subscribe or leave a comment over there.

 

To learn more about Richard Flanagan and FRACT OSC head over to FractGame.com.  If you enjoyed the interview the best way to support him and his team is to buy the game on steam.

09 Jun

The Art of Screenshake (with Unity 2D script)

tumblr_mzjv0wUPlA1rpem9no1_500

Nuclear Throne by Vlambeer

This is a great presentation by Jan Willem Nijman of Dutch dynamic duo Vlambeer.  He talks about crafting the feedback that your player receives when playing your game, including things like screenshake, camera movement and explosions. There are some very useful ideas in here. I put together a simple unity script aimed at Unity 2D which implements screenshake by moving the camera on collision which was inspired by this, grab it below.

 

To use this script:

  1. Assets > Create > C# Script
  2. Name the new script “CamShakeSimple” (as in the class name)
  3. Add CamShakeSimple to the game object that will cause the shake, in this case it’s setup to shake the camera when this 2D object collides with something.
  4. Drag your main camera into the newly visible slot in the inspector called “Main Camera”
  5. Now when this object hits another it will use the relative velocity of that collision to shake the camera.  Other ideas might include shaking the cam when you fire a bullet, fall from high up, or any number of things.
  6. Note that if you’re using this in 3D you’ll want to remove the two instances of “2D” from the collision portion.

 

using UnityEngine;
using System.Collections;

public class CamShakeSimple : MonoBehaviour 
{

    Vector3 originalCameraPosition;

    float shakeAmt = 0;

    public Camera mainCamera;

    void OnCollisionEnter2D(Collision2D coll) 
    {

        shakeAmt = coll.relativeVelocity.magnitude * .0025f;
        InvokeRepeating("CameraShake", 0, .01f);
        Invoke("StopShaking", 0.3f);

    }

    void CameraShake()
    {
        if(shakeAmt>0) 
        {
            float quakeAmt = Random.value*shakeAmt*2 - shakeAmt;
            Vector3 pp = mainCamera.transform.position;
            pp.y+= quakeAmt; // can also add to x and/or z
            mainCamera.transform.position = pp;
        }
    }

    void StopShaking()
    {
        CancelInvoke("CameraShake");
        mainCamera.transform.position = originalCameraPosition;
    }

}

To give credit where it’s due, this is a combination of code fragments from this thread:

http://answers.unity3d.com/questions/220407/damaging-a-car-depending-on-force-of-impact.html

and this one:

http://answers.unity3d.com/questions/46317/screen-shake-effect.html?sort=oldest

05 Jun

Pollen DevLog 2: Clouds, New Enemy Spawning, Sounds

pollen_ss_041114

 

 

Pollen is a game project I’m working on in Unity, it’s basically my first game and I’ve been working on it part time since October 2013 while teaching myself programming and game design fundamentals.  I’m calling it a low poly butterfly action rogue-like like.  It’s probably more ambitious of a project than I should have attempted as a first real thing but I am nothing if not ambitious.  It’s been slow but I’ve also been teaching myself a lot of stuff in the process. It’s been deliciously fun.  In this devblog I demonstrated my new sound effects, new clouds and new dragonfly enemy type.  This is a short devblog where I show some gameplay and explain the latest stuff I’ve done.

05 Jun

NewbQuest Ep.3: Tarn Adams, Game Designer and Developer of Dwarf Fortress

In this episode we interview game developer Tarn Adams of Bay 12 Games who is working on Dwarf Fortress, a procedurally generated fantasy world game with an exceptionally long development cycle.  For those who are unfamiliar Dwarf Fortress has been written about by The New York Times, installed in the MoMA and called “The Most Inscrutable Video Game of All Time” by Ars Technica.

small

From the New York Times Profile by Jonah Weiner:

This bare-bones aesthetic allows Tarn to focus resources not on graphics but on mechanics, which he values much more. Many simulation games offer players a bag of building blocks, but few dangle a bag as deep, or blocks as small and intricately interlocking, as Dwarf Fortress. Beneath the game’s rudimentary facade is a dizzying array of moving parts, algorithms that model everything from dwarves’ personalities (some are depressive; many appreciate art) to the climate and economic patterns of the simulated world. The story of a fortress’s rise and fall isn’t scripted beforehand — in most games narratives progress along an essentially set path — but, rather, generated on the fly by a multitude of variables. The brothers themselves are often startled by what their game spits out. “We didn’t know that carp were going to eat dwarves,” Zach says. “But we’d written them as carnivorous and roughly the same size as dwarves, so that just happened, and it was great.”

Dwarf Fortress may not look real, but once you’re hooked, it feels vast, enveloping, alive. To control your world, you toggle between multiple menus of text commands; seemingly simple acts like planting crops and forging weapons require involved choices about soil and season and smelting and ores. A micromanager’s dream, the game gleefully blurs the distinction between painstaking labor and creative thrill.

Dwarf-Fortress-river-animation

 

You can subscribe and download the show via iTunes, and if you do I’d love it if you had time to leave an honest review.

You can also check out the show via the NewbQuest YouTube channel, if you prefer that format. If you do I’d appreciate if you’d subscribe or leave a comment over there.

 

To learn more about Tarn Adams and Dwarf Fortress, and to download the game for free head over to Bay 12 Games.  Thanks again to Tarn for taking some time to talk and thanks to you for checking out the blog and show!

05 Jun

NewbQuest Ep.2: Shawn Allen, Game Designer and Artist for Treachery in BeatDown City

 

treachery_funded

 

In this episode we interview indie game developer Shawn Allen who is working on Treachery in Beatdown City, a side scrolling beat ’em up with RPG elements  which just successfully funded on Kickstarter. We talk about being an indie developer, the Kickstarter process and making art for games.

The Kickstarter video for the recently funded campaign is a great intro to Shawn and his world:

 

 

In our interview we had a great conversation about his choices for an 8-bit, retro art style along with ways he was trying to work within that convention to create something new, the challenges of the indie lifestyle, creating a game targeting Playstation and working with Sony, collaborating with artists, musicians and coders and much more.

whatsinthebox

You can subscribe and download the show via iTunes, and if you do I’d love it if you had time to leave an honest review. Note: right now the show hasn’t appeared in the iTunes directory, for now use this link to subscribe.

 

You can also check out the show via the NewbQuest YouTube channel, if you prefer that format. If you do I’d appreciate if you’d subscribe or leave a comment over there.

To learn more about Shawn Allen and his game Treachery in Beatdown City you can head over to www.beatdowncity.com and you can follow Shawn on Twitter at @anuchallenger

Thanks again to Shawn for taking the time to come on and talk, and to you for checking out the blog and the show!