15 Years!

Ideas for Games with Limited Controls

General tips:

  • You can move freely in 4 directions with only 3 keys if you have gravity. Obviously, this could easily be out-of-place or cheesy, but it could lead to interesting things. It might be a better idea to use the mouse or to limit the player’s movement.
  • Button combos can be used to do more specialized actions, although it’s best to make them intuitive. Crypt of the Necrodancer does this, although it comes up a bit short on the intuitiveness.
  • You can also double-tap, press-and-hold, and do all sorts of other stuff.
  • You can get even more mileage from buttons by making them context-sensitive. Zelda games were the first to make extensive use of this, but just about everything has a generic “use” button now.
  • You might need to automate some parts of your game. Automatically running, jumping, or doing other actions will allow your controls to be used more economically. Zelda games are a good example of auto-jumping being used well, and many endless runners demonstrate the use of running.
  • You can, if you really want, make a bunch of on-screen buttons and click them. I don’t recommend this approach in general, but it might be appropriate for certain games, like strategy titles. The Civilization series takes this approach.
  • Mice are good for more than just pointing. You can incorporate gestures, velocity, dragging, or other kinds of mouse input.

Ideas for 2D Games:

  • Platformers with left, right, jump. Alternatively replace jump with whatever you like. In games like Sonic and Mario, jumping used as an attack itself. You could also incorporate attacking in other ways, such as through the environment, or abandon attacking altogether in favor of an original mechanic. Platforming can also be done with only the mouse, as in Poptropica.
  • Point-and-click, dialogue-driven or adventure games.
  • Rhythm games? You totally could make that work.
  • Top-down games using the mouse to move (character walks towards the mouse) and using the button to either take some action or toggle to an alternate control mode such as aiming.
  • Endless runners like Canabalt, Robot Unicorn Attack, the classic Copter, or Flappy Something. Also, arcade games like Super Hexagon. You could make a mouse-controlled endless runner, which is something I haven’t seen a whole lot of.
  • Puzzle games like Nitrome’s Onekey and Rustyard where you manipulate the environment around an AI character with either the keyboard or the mouse.
  • Strategy games of every kind would work well with the mouse, or even with the keyboard if you design it carefully.
  • Some other popular mouse-only games include: Papers, Please, Don’t Starve, and FTL

Ideas for 3D Games:

  • Anything you can do in 2D you can also render in 2.5D, while potentially adding verticality or (literal) depth to the gameplay. 3D offers strictly more options than 2D, even with limited controls.
  • Flying games. As a bird, you can bank left, bank right, and flap with three buttons. Land in certain areas to talk to NPCs and make dialogue choices with the same buttons. You can also make a great flying game with mouse movement only, as evidenced by games like Air Brawl.
  • Racing games. Two keys, mouse, or accelerometer to steer, and a gas button (or brake instead, with automatic gas)
  • Frogger 2: Electric Bug-aloo with turn left, turn right, and hold and release to charge and hop. You would probably want to incorporate a guide line so the player knows how far they’ll hop with a certain charge time.
  • Any kind of runner (endless, on rails, or otherwise), where the terrain automatically scrolls in one direction and you either move within the screen space or turn. Think Temple Run, the Blue Sphere minigame from Sonic, or Star Fox 64. Interestingly, very few of these kinds of games incorporate 3D space into the gameplay very much, so there is some space to innovate there.
  • A grid-based game like Legend of Grimrock or Undercroft (although the latter is technically 2D), where you move and turn in discrete steps.
  • A room- or scene-based game. No reason you can’t make a point-and-click in full 3D – just put left and right arrows on the sides of the screen or turn when the player moves the mouse to the sides automatically. You could either click spots on the floor to walk to them, or you would walk to a fixed pivot point in each room.
  • Games like Neversoft’s Spiderman or Metroid Prime, which used a single control stick for moving and turning. You could use the mouse to emulate this behavior, although you could also use a controller or joystick.
  • A Fez-like game where you can only move in 2d or 1d, but you rotate the space via either touching in-game switches or pressing a button so that you can move in other directions.

Tools of the Trade: Scratch

This Tool of the Trade is a great way to get started with programming if you haven’t done any yet. It’s the perfect way to get started with basic programming concepts without worrying about exact spelling and command syntax. You can work with variables, loops, conditions, passing messages, and more! Scratch is a free tool available for Windows, Mac, and Linux and even has a special version for Raspberry Pi! It’s visually-oriented with all programming done by dragging and dropping elements and connecting them together. It’s also very animation-oriented like Stencyl so you create your scene (a stage), characters (actors), and character sprites (costumes). Then you can tie into the mouse or keyboard to see what the player what’s to do.

Setting the Scene

The game is centered on the playing area — the stage. You create your character actors and drag them in place, or create variables to hold information like scores or number or lives and put them in place too. Anything that moves is an actor so you use this same idea for cars or trees or other elements. You can set items to be invisible until something happens, and you can Levels can be a single screen, or you can create a scrolling background with some work. Many people start with simple things like making a character walk across the screen or showing a message.

Directing the Action

Everything that you drag onto the screen can be controlled in the code. Drag a Movement action over and connect it to the player so you can set or change its location, size, rotation, or other properties. Other actions let you perform math or compare things to each other. You can create a loop (where things happen more than once) where you see if things are touching each other or have made it to a certain spot on the screen.

Putting the Player in Control

Once you have the stage set and you’ve created basic rules for the game, you add some code to react to the user. This is where you check to see if they have pressed a key or moved the mouse a certain way. For example, if the user presses the right arrow, you can increase the “x” value of the player’s sprite to make it move to the right. There are enough command blocks that you can do amazing things with movement, sounds, speech bubbles, and more.

Joining a Community

Finally, you can check out lots of great games and things that people have created by visiting the web site: http://scratch.mit.edu. You can run them in a web browser or make a copy to work with in Scratch. Then you can add new things to it or change it to be just the way you like it. There are many opportunities to try new things and learn other ways to get stuff done.

If you already love your development tool, then Scratch probably isn’t for you. If you are a first-time coder, especially on a middle-school team, Scratch is well worth looking at. You’ll build up your development skills, learn structure, and figure out how to think like a coder. Having it all in a visual interface makes it easy to see what’s happening. Once you learn how to create games in Scratch and decide you need more power, then you can move up to Stencyl. Download it for free and give it a try!

Tools of the Trade: Which GameMaker?

GameMaker is currently available in two versions. GameMaker 8.1 is the older version of the software.
GameMaker Studio is a completely new version of the software. Each one can be downloaded and used for free with some limitations.

Summary

If you want to work (or start work for free) – go with GameMaker 8.1. If you are willing/able to spend money, 8.1 is cheaper (educational institutions can buy bulk licenses: 10 for ~$175, $40 otherwise) and probably the option to go for. GameMaker Studio is $50 and the standard version would not get you a whole lot extra, stepping up to the Pro editions for $99 gets you Team features, which make it easier to integrate multiple people’s work into one project (something that otherwise can be a challenge).

GameMaker 8.1 Lite (Free)

The missing features are mostly eye candy:

  • Ability to arbitrarily scale/rotate sprites (for things like pointing the direction a ship is going you have to fake with subframes pointing different directions and changing which frame you show – but this is clunky and doesn’t play well with trying to use subframes for their real purpose : animation).
  • Use the particle/effects systems for things like explosions and smoke
  • Load external resources, play movies, splash screens, etc…
  • Some of the fancier drawing tools (gradients, scaled text, some of the GML drawing commands)
  • Change the cursor

GameMaker Studio (Free)

Most of the eye candy stuff works, but they limit how many resources you can use (detailed list here). You are very likely to bump into these restrictions if your game is even moderately complex.

  • Limit of 5 rooms, 20 sprites, 10 sounds, 15 objects…
  • Functionality that is disabled is:
    • export modules (HTML/iOS/etc)
    • things that could help you get around resource limitation (can’t load external files, can’t do texture manipulations)

Compatibility

The Studio version can open most 8.1 projects and save to version 8.1, but 8.1 cannot open Studio projects.

Tools of the Trade: Unity3d

Guest post from Max Maroe, OGPC Game Jam Mentor

Thank you very much for having me as a Mentor at the OGPC kickoff in Redmond, OR! I really enjoyed my time there and the student project ideas were incredibly creative and fun! I was blown away by the teamwork and how well everyone interacted, both within their groups and between groups during the “elevator pitch” presentations!

I take game development very seriously and I believe if there’s ever been a time to learn how to make games, it’s now. The tools available are getting so amazing, and a lot of these tools are either cheap or free for use. One of my favorite tool sets is Unity3d, which individuals can get a license for to develop for the PC, Mac, and Web deployment targets for FREE! I like the tools so much I started a web-based video tutorial series called Cooking With Unity where I go over how to create many different types of games using Unity3d. The show focuses mostly on scripting/game design and less on art due to my personal expertise, but it does show a lot of tricks and secrets of the trade. The first few episodes are a little rough, so keep in mind it does get a LOT better. Instead of doing them in order I suggest picking a set of episodes that are about the type of game YOU want to make to start; though if you don’t have a particular preference there’s nothing wrong with starting at the beginning.

You can email me at PushyPixels@PushyPixels.com with any questions you have, either about my show or about game development in general!

Tools of the Trade: Inform 7

One of the earliest computer game genres was the text adventure. Perhaps the best-known text adventure game is Zork, which was published in 1980 by Infocom. Text adventure games are pretty much exactly what they sound like – adventure games featuring puzzles that consit entirely of a text parser.

Players would enter simple sentences such as, “open mailbox,” and, “read leaflet,” or even, “hit the orc with the Elvish sword,” and the game would respond with ways in which the world changed as a result of your action. Understandably, these games only understood the nouns and verbs needed for the game and don’t recognize a full range of English input.

The text adventure is alive and well today, although the community of developers and gamers who play them prefer the term _interactive fiction_ or IF for short. There are several languages and platforms for programming IF and one of the most interesting is Inform 7.

Rather than requriing you to learn a programming languauge, Inform 7 allows you to describe your game using the same language that your players will use to enjoy it – English. This doesn’t mean you can type in your short story and hope Inform 7 can figure it out. Inform 7 requires you to follow some very exacting standards so that it can interpret what you write.

Inform 7 also supports extensions, which allows you to download complex items that other people have written – such as vehicles and locks – and include them in your games.

Inform 7 runs on Linux, OSX, and Windows. It’s free to download and use and comes with very comprehensive documentation that walks you through everything you need to make your own interactive fiction game.

Inform 7 makes it possible to create engaging and dynamic game environments, even if you aren’t a programmer or an artist, and yet it still teaches you to think logically and use a more demanding language structure, hinting at what it’s like to write in a programming language.

If you’re a team with excellent writing skills, a great idea for a game, but no art or programming skills, consider being the first OGPC team to submit an interactive fiction game!

 

Tools of the Trade: Inkscape

This week’s TotT post is for the artists on your team. Since I’m an artist myself, and an advocate for FOSS (free and open source software), you’re going to notice more opinions in this week’s post than last week’s.

There are two types basic methods of creating 2D art on a computer – raster and vector. Raster images are commonly called bitmaps, but have multiple common file formats with different strengths and weaknesses. You’re probably already familiar with .BMP, .JPG, .GIF, and (hopefully) .PNG* file formats. These images are made of individual pixels of color and cannot be made larger without losing a lot of information.

Vector images are created by programs like Adobe Illustrator, an expensive and proprietary profesisonal-grade application, and Inkscape, a free and open-source professional-grade application. Inkscape uses proprietary file formats and Inkscape uses the SVG (scalable vector graphic) format, which is an extension of XML and can be viewed by most modern web browsers (finally).

We will make it better - with math!Vector images are created using mathematic calculations to define geometric shapes. Every time you scale a vector image the math is recalculated, meaning you always get crisp clear lines… unless you’ve applied a mathematic formula to blur the edges, in which case that gets recalculated too, so you always have a predictable amount of blur.

Many people are under the impression that vector images are only good for logos and text, but as you can see from the Inkscape screenshot to the left, a talented artist can do so much more than that with vectors.**

 

Now, those of you who’ve used GameMaker Studio or Stencyl before know that they allow you to import raster files, not vector. So why would you want to use Inkscape to make art for your 2D game? Scalability is the most important answer. You may decide to increase the resolution of your game and scaling all of your art assets is not going to be fun if the originals are all raster files. Inkscape easily exports to the PNG file format, so if you need a character or UI element to be larger, it’s a simple matter of re-exporting your art to a higher resolution.

Personally, I also prefer to work large and with clearly delineated forms as opposed to working small and with shades of color. Crafting 32×32 grids comprised of dots of color simply doesn’t make a lot of sense to my brain. With Inkscape, I can work in a manner that makes sense to me and still contribute meaningfully to projects that require small icons and sprites.

 Finally, if you’re working on an HTML5 game, SVG files can be used natively and programmers tend to love them, since they can open them up and edit them using a text-editor to create groups and assign item names that make sense to the code and structure of the web page, all without touching the art you so carefully crafted for them.

Inkscape is a free program that runs on Linux, OSX, and Windows. Download it today and see what you can make with it!

*As an illustrator and designer who loves crisp lines and rich color palettes along with clean transparency, .PNGs are the only raster file type I like to use for my work.

**That’s not my work, sadly. Click the Iron Man image for more examples of great vector art.

Tools of the Trade: Stencyl

If you’re a Mac user, or prefer using a Linux OS, you’ve likely discovered that Game Maker Studio (GMS) – a long-time OGPC staple – doesn’t play so nicely with those platforms. The OSX version of GMS is out of date and the current version doesn’t work under WINE, the open source application that runs many Windows applications and games on Linux.

Enter, Stencyl.

Stencyl has a lot in common with GMS. It’s a 2D game creation studio with an art-focused approach to game design. You add actors (what GMS calls objects) to scenes (rooms in GMS), edit sprites and animations, add music and sound effect, use physics, and customize actor behavior.

And while Stencyl allows you to edit code for your game using ActionScript 3.0 (an ECMAScript language similar to JavaScript), it also allows you to design your code using drop-and-drop puzzle pieces. This allows you to quickly create complex behaviors while learning common programming logic. You can also easily view the actual code you created, so more advanced programmers can easily work alongside the game designers on the team.

One of the most compelling features of Stencyl is the platform’s focus on community. Members are able to upload and share snippets of code, original art, and music to the StencylForge. Browsing the StencylForge, you’ll find kits provided by both the Stencyl team and other members that include all of the functions you need for side scrollers, RPGs, racing games, and many more gameplay styles. Members have also uploaded pre-built behaviors that you can easily include in your game. 

Under the hood, Stencyl uses popular and powerful Flash-based libraries to build your games, notably Flixel and Box2D. The current free version of Stencyl exports your games to Flash and buying a subscription allows you to export your game to iOS, taking advantage of the tilt and multi-touch controls of the iPad, iPhone, and iPod Touch. Version 3.0 – which is scheduled to be released in 2013 – will add HTML5 export to the free version and Android export for subscribers.

Learn more about and download Stencyl at www.Stencyl.com

Design Lessons

Not all game design lessons come from studying games. There are important design lessons to be found just about anywhere we interact with the world. For example, I wrote the following post in 2006 when my wife and I rescued a miniature poodle from a shelter in Philadelphia.

Game Design is Going to the Dogs

Or is that coming from the dogs? Well… dog to be precise… and my game design to be even more precise. Regardless of the linguistic finickiness, this post is sponsored by my new design-muse, (T.S.) Eliot, the Elder Snout Oopei Choop. You may recall that a little over a month ago I announced the arrival of a rescued poodle to the Attic. Although we were originally informed by the shelter that he was three years old, we’re assured by our vet that while he’s probably not eight, he’s certainly not three. There’s nothing quite like adopting an older dog. While Eliot is very clearly an intelligent animal, he’s got separation anxiety, likes to test boundaries, has stomach issues due to nerves, and clearly didn’t live in an environment which engendered trust in humans. To top it all off… he didn’t know how to play.

Dog. Not playing. Dog… not playing. Dog.

All right, then. This would not do. We have taken it upon ourselves to teach Eliot to play. While I’m at it, I’m extrapolating whatever game design principles I can from the process and it’s those observations (I’ve settled on nine of them) which will make up the remainder of this post. Incidently, these same principles apply to training the dog to perform other, less play focused, tasks as well, such as sit and stay… which we’ve also managed to turn into a fun game (mostly).

1. Be Patient Eliot doesn’t always get it right off the bat. Even when he does seem to get it, he’s not always interested in participating. Getting frustrated isn’t going to help, so patience is the keyword of the day. Likewise, while seeking feedback on a game’s design, whether via play testing, or social networking, it’s important not to loose patience with other people when your vision isn’t clear. Keeping a cool head means that ultimately, you’ll learn a lot from the miscommunication. Likewise, don’t let your game design itself rush players through the experience. There’s something to be said for frequent direction markers and vacuum plot points, but don’t grab your players by the nose and speed them through the game, let them find their own pace.

2. Be Supportive Eliot doesn’t always trust his instincts around us. It’s a new environment, we’re different people than he’s used to and we don’t react to his behavior in the same manner as his previous owners. Because of this, he’s often hesitant, or worse, he cringes if we move quickly (breaks my heart). I have to confess that he’s gotten much better and I attribute that to the supportive environment we provide him. By supportive environment, I mean that we constantly provide him with positive feedback. When he’s hesitant, we encourage him. When he cringes from a sudden movement, we take some time to hug and pet him. Likewise, have your game’s design be supportive of your players. Very few things turn me off faster than a game that mocks my need to quit and go to work, or one that triumphantly proclaims, “You loose!” when I fail at a task or mission. Let your design focus on players successes and refrain from pointing out their failures.

3. Be Reasonable With Praise This one ought to be pretty obvious and it ties in closely with the previous design rule. Together they represent a simple three word concept – Reward. Successes. Appropriately. When Eliot first started obeying simple commands, we made a big deal out of each occurrence. Once we moved on to more complex tasks, we shifted our focus and stopped making a big scene for every successful ‘sit’ performance. Otherwise, the act itself becomes minimized by the love-fest afterward. In other words, take time to praise thoroughly and well without detracting from the positive experience of accomplishment itself. Windwaker, in my opinion, has too many animations surrounding the fetching and opening of every single sunken chest. They lavish too much praise for a minor accomplishment. The music and light while opening the chest would be enough, without the triumphant pose afterwards. It’s cute the first time, but gets tedious very quickly. I think perhaps, it is better to reward the player a little too much rather than not enough, but keep in mind that most of them just want to play, without a lot of interruptions.

4. Be Filled With Joy This is one of the two sappier rules in the set. But seriously, be happy to do what you’re doing. A joyous approach to design will be reflected in your final product. A stressful, tense, unhappy experience designing a game will not do you, or your audience, any favors. Eliot reacts quite well when we’re not stressed out about his training, or his play. We we are stressed… well, it’s when he chooses to test boundaries the most.

5. Be Filled With Love This, clearly, is the second of the two sappier rules. We are teaching Eliot to play (and to obey) because we love him. We want the best for him and we want him to be happy. Setting boundaries and helping tailor behaviors out of love makes all the difference in the experience. Treat your audience with the same respect and sense of responsibility with which you’d raise an emotionally wounded poodle. It will shine through in your final design.

6. Take Breaks When Needed Eliot can only handle to much training in one day before he loses interest. We watch for the signs of this and try to quit right before he does. This keeps him interested in the training and has proven very effective. This translates into two design rules: One – take breaks when you feel your brain starting to overheat. Whether you read a book, have a conversation, listen to some music, or watch a bit of a movie, it’s important to let your brain rest every once in a great while. Two – give your players time to catch their breaths. The quiet moments immediately before or after a large challenge are some of my favorites throughout my game playing history. The exciting moments are the ones I talk about, but the quite ones are the ones I reflect on.

7. Quit When They Do The above rule can be hard to gauge correctly. So if we haven’t taken a break and Eliot quits, we do to. This works well for us, because he’s intelligent and far from lazy. I imagine that it might be different if he weren’t such a motivated dog. The gist of this rule as a design goal is simple: allow your players to save and quit… whenever they want. Now, you may need to restart them at the beginning of a level when they come back, but don’t undo their accomplishments. Save features no longer need to be limited as they once were. Save the important information and quit when they do.

You’ve seen the next two rules on this blog before, they’re not new. But, while teaching Eliot to play (we’ve been having success at this, by the way) and to obey (even better successes on this front), these two rules have proven invaluable.

8. Reward Desired Behavior Treats, joyous and love-filled praise, and plenty of petting await Eliot whenever he behaves appropriate… even when it’s accidental. Your game design should work the same way. Wether the reward system be comprised of points, character bonuses, items, or a mixture of many things, you should always reward players for exhibiting desired behavior.

9. Discourage Undesired Behavior Note that this rules doesn’t say punish or disallow, but discourage. Your game should not be a battlefield between designer and player. You should not take an adversarial stance with your audience. Remember that even negative attention is attention and gently discourage undesired behavior with non-threatening, non-harmful guidance. Die-and-repeat gameplay only appeals to a small segment of the game playing public, so give the rest of your audience plenty of gentle discouragement when they wander astray.

So there you have it. Nine quick-and-dirty design principles based on teaching a poodle to play. Most of these were not new concepts to me and probably weren’t to you. It’s merely a slightly new application of them. Still, it’s interesting to see them in effect in an area and context in which I hadn’t considered them before.