Categories
Game Design Games Linux Game Development Personal Development

September #1GAM Entry: Hextrap

September’s One Game a Month entry is a clone of the NES game Yoshi.

Download Hextrap for Linux 64-bit (410 kb tar.gz file)

I’ve never made a falling block puzzle game before. I had more ambitious plans, but with ISVCon 2013 taking up a lot of my time, I ended up doing most of my game development hours on the four planes I rode to and from Reno, Nevada.

I started out with creating the four stack platforms, and a swapper which the player controls.

September #1GAM

I created shapes to act as the various pieces: circles, triangles, squares, and pentagons. Hexagons were special. If a top hexagon piece is over a bottom hexagon piece, the pieces in the middle were consumed and the player got bonus points.

September #1GAM

I think what put this project in jeopardy was that I wanted some particle effects. It didn’t take long to implement, but I could have spent my precious time on the game play.

September #1GAM

But it came together quite well, even if I think it feels kind of hacked together at times.

I think the only thing missing is an issue involving the interaction of a swapping stack that is higher than a falling piece. Right now, the falling piece stacks on top, whereas it should flip around to a different stack.

Oh, and sound effects and music would be nice.

The scoring is also much simpler than in the original game.

Enjoy!

Categories
Geek / Technical

Live-action Glitchiness

I saw this amusing and well-done video about a glitch going out of control in the video game world today, so I thought I’d share. I think Alex Meyers would enjoy it in particular.

Do not watch if you are a kid or if it is too early in the morning to process the lack of realism. That glitchy Mario face is creepy.

Categories
Geek / Technical Marketing/Business Personal Development

Shipping Beats Perfection

Ben Kamens is the lead dev of Khan Academy, the incredible free resource for education, recently explained “shipping beats perfection”, one of the organization’s development principles. It’s good reading, plus has pictures of a smiling dog, so you should go read it.

From their principles page:

Scope features down to their core before getting started. Iterate outside of the code. Use mockups, design discussions, and anything else that helps you cut out the nonessential before diving into the 1s and 0s.

Sounds like Agile software development to me. You don’t code immediately after being told what features are needed. You find out what actually provides value. You learn how the feature will be used, which will inform the algorithms and design. You find out what isn’t needed. You’re more likely to deliver the right feature.

But Ben found more explanation is needed. Too many people hear “shipping beats perfection” and think “we ship poor quality.”

He boils it down to three phrases:

We’re willing to be embarrassed about what we haven’t done…

If there’s something missing, that’s temporary. Well, frankly, everything is temporary, but if something is missing, it can be rectified by creating it.

And creating it should only be a decision made if it turns out that there is a demand for it. Energy and effort aren’t expended on guesses at what provides value.

You could try to build everything at once, but more and more, people are realizing that it isn’t necessary. The Lean Startup by Eric Ries is the latest hotness that argues for building a minimum viable product. When you have something out in public, you can learn what the public wants, change your approach to meet the need, and constantly learn and improve.

In a way, you’re throwing spaghetti at the wall. You have something you’re making, but you don’t know how it should feel or look until you get some feedback.

…but not willing to be embarrassed about what we have done.

Whatever is shipped is high quality. It’s not counterintuitive at all. Quality is about what the customer receives. If you don’t build quality in from the beginning, you’re building your product on quicksand, and future work becomes a slog through past poor decisions.

Leave it better

It’s the idea that you never leave an area of code without doing something to improve it.

I’ve written in the past about how you’re responsible for your code. The quality of your code is a result of past decisions. Sometimes hacks are needed to get value out earlier, but eventually you have to pay down the tech debt if you don’t want it to slow you down later.

But how do you know when you’re over-engineering versus purposefully writing tech debt versus hacking?

What’s key is who is being served by your efforts.

If you are embarrassed by code you wrote, you hacked. You and your fellow developers weren’t served by it when you have to return to it later.

If you are embarrassed by what code you needed to change to, then it’s probably tech debt you haven’t gotten to yet.

If you seek out perfection in engineering, however, you have lost sight of the customer.

That last one describes my efforts in creating Stop That Hero!.

A couple of years ago, I wrote about the importance of speed. Getting games to market more quickly, getting feedback from players more quickly, finding the fun as quickly as possible were all things I was failing at. I wrote about how my development was much slower than I would have liked, and I got a lot of advice from commenters.

What a lot of it boiled down to was that my goals weren’t clear. If I was aiming to learn how to write code and how to build things from scratch, I was doing really well. I was practicing test-driven development. I was learning about artificial intelligence. I was even learning how to use the Gimp to create decent programmer art. I was building up discipline, skill, and knowledge.

If, however, I wanted to make an entertaining game for paying customers in order to make a living, I wasn’t doing a good job of focusing on value delivery. The biggest problem was that I didn’t know exactly who my customers would be.

So who determines what quality work really is?

As Michael Gerber explains in One Game a Month site. Are they perfect games? No. Are they commercially competitive? Hardly. But I am proud of what I was able to get out there, and it’s gratifying to hear feedback from actual players.

Khan Academy has internalized this idea of finishing and delivering value as a key principle: “shipping beats perfection”. I need to remember to internalize it myself.

Categories
Marketing/Business

Any Indies in the Reno Area Want to Meet? #isvcon

ISVCon 2013

Next week, I’ll be at Association of Software Professionals, of which I am currently the President.

It’s being held in Reno, Nevada from September 27th – 29th, at the Atlantis Casino Resort Spa.

It’s a great networking opportunity since you get to meet other independent software developers and business owners, discuss best practices, and learn some actionable tips and tricks as well as solid principles about running your own software business.

Also, for three days, there will be presentations and panels on a variety of relevant topics, such as a talk on expanding your business to multiple devices and platforms by Embarcadero’s David Intersimone. Evan Digby of SoftwareShield has a talk titled “Bridging the Gap Between Download and Sale” that I’m very interested in as well. There will be talks on SEO, how to properly setup your business to protect yourself, social media, Cloud and Software as a Service (SaaS), and more, all geared towards helping you improve your business. More details about the sessions are at http://www.isvcon.org/sessions.php.

Plus, I really liked the food and entertainment last year, so I’m looking forward to more. B-)

If you missed it last year, the video archives are up at http://www.isvcon.org/videos.php.

It’s not too late to register for the conference, which you can do at http://www.isvcon.org/register.php. If you plan on being in Reno, you should definitely stop by. I’d love to meet you.

Categories
Game Design Game Development Games Linux Game Development

September #1GAM: A Puzzle Game

For September’s One Game a Month project, I wanted to try to use the optional theme: hexagons.

I toyed with the idea of making a turn-based strategy game involving a hex map, but more and more I liked the idea of a hexagon-based puzzle game.

Long ago, I thought of a game involving hexagons that you can trap as they fell down shafts. The idea was that you controlled whether they continued down or got stuck at some point, but I never fleshed it out.

So I’ve been writing down ideas. Should the puzzle area be a grid that just happens to have hexagons? Do I make a hexagonal play area?

More importantly, what is the player doing in the play area? Do I make a match-3? I kind of liked the trapping mechanic, but I couldn’t think of a good way to make it fun.

Then I looked at the calendar and realized that over a week has gone by. So I thought I better steal some game play rather than try to create my own.

I recalled playing a QBasic game by Oren Bartal called Ultimate Super Stack. The point of the game was to trap stars between two objects, and I remember finding it very compelling. Maybe I can make a hexagon-based version of it.

I realized that there was a lot to the game, and I thought back to simpler puzzle games, such as Yoshi for the NES.

So I decided to try to mimic that game instead.

September #1GAM

So far, I have four platforms in an empty play area, with a switcher at the bottom.

Eventually, I will add dropping objects, most likely shapes such as circles, triangles, and squares. If two objects match on top of each other, they’ll disappear. If a hexagon’s bottom piece appears, then it’s top piece can close it, along with any objects trapped inside of it.

The player will be able to move the switcher to one of three positions to swap the platforms and any objects sitting on top of them.

It’s a simple game, but I don’t anticipate having a lot of time to create it this month, what with me going to ISVCon 2013. We’ll see how it turns out.

Categories
Game Development Games

Aim for Purposeful Artistry, or “Just Be Games”?

Jay Barnson recently wrote Art. Or Not. He drew some parallels between science fiction and indie games. He talked about how older pulp fiction was how many great authors got their start, and some of their short stories became culturally relevant, and some of the authors became bigger names.

If I understand his argument correctly, he believes that they created art without specifically trying to do so, that the designation of artistry came later, after the authors tried to create good reads for the buying public.

The point is… many of the “classics” – the “masterpieces” that are held in such high regard today were simply yarns spun to pay the rent by these authors. Between a combination of good writing, good editing, a story that resonated with the audience, and possibly a healthy dose of good luck, these stories and serialized novels went on to become standards of excellence in their respective genres. The authors certainly did their best to make a great story, but I doubt they set forth with a prevailing desire to create “Art.”

Now, he separates “art” from capital-A “Art” without explaining too much about what he means, but I think it is safe to say that there’s a judgment call being made here on what he thinks counts as legitimate art versus art made out as more important than it really is.

In any case, while Barnson says he isn’t opposed to games having deeper meaning, he is concerned that indies are aiming to make games that are less like games and more like other, more traditionally accepted art as an attempt to make games relevant to critics, such as the late Roger Ebert, who is infamous for declaring that games can never be an art form unless they become more like movies.

Creating great art is difficult, no matter what the medium, but I don’t believe there are any problems with people trying to create art out of game mechanics.

I think one of the things that is difficult as an indie game developer trying to make culturally important works is that there is a perception that games are supposed to be fun, time-wasting playthings for children. To purposely make games that aren’t meant to be fun is hard for a lot of people to get their heads around. Games that aren’t fun sound like bad games to many players.

If you expect to play a game like Brenda Romero’s Train and think you’ll have the type of entertaining experience as when playing Ticket to Ride, you are going to be incredibly disappointed.

But the idea that video games can be more than merely fun is not a new one. Chris Crawford once gave a GDC talk about how, at a higher abstraction, entertainment is what games should aspire to. Fun is just one way to entertain.

As for aiming for art as opposed to letting “games be games”, why does it matter what purpose someone has for creating a game? Why does it matter who they try to please? If you’re an indie, who do you have to answer to but yourself?

F. Scott Fitzgerald was once quoted as saying “An author ought to write for the youth of his own generation, the critics of the next, and the schoolmasters of ever afterward.” He wasn’t writing to make money and leaving the question of his artistry to others.

So what about the idea that you don’t purposely try to create art, that it merely become so later? I don’t think it is necessarily the best way to go if you want to use the medium of games to create art. And some people specifically want to use the medium of games to create art. Or Art.

I’m with Jay on the idea that games are their own medium, that you don’t have to try to make them seem like other types of art. Games have their own strengths, and ignoring them would be much like how early filmmakers tried to record live theatre productions and not realizing how much more they could aspire to.

If you’re trying to make a commercially successful game, go ahead and try to please people, specifically your customers. But in most other endeavors, trying to please other people is a sure-fire way to kill what you’re trying to do with compromises.

If the creator of a game designs it to be art, it’s hard for me to argue that they are not trying to please their true audience.

Categories
Game Design Game Development Linux Game Development

August #1GAM Entry: Eye Contact

This month’s One Game a Month entry is probably the one I put the least effort toward. I worked around 7 hours on it.

Download Eye Contact for Linux 64-bit (362 kb tar.gz file)

August was a hectic month for me. My wife and I closed on a new house, which meant that most of my “spare” time was spent preparing the house and getting ready to move.

The theme for August was “Philosophy”, and I had originally envisioned a game about making eye contact with strangers.

I wanted to have a very dark room, so you could only see yourself and your immediate surroundings. You can tell where the other people are because their eyes would be the only visible feature, similar to what cartoons did to show people walking around in dark rooms.

I wanted the eyes to be incredibly expressive. They should communicate attraction, danger, and sadness.

I thought that the goal of the game would be for the player to navigate a room, avoiding eye contact with dangerous and creepy strangers while trying to make eye contact with a potential romantic partner.

As you got closer to other people, you would see features besides their eyes: skin color, nose shapes, weight, etc.

And these other features wouldn’t matter at all.

That is, you might find that the potential romantic partner is not someone you might normally be attracted to in real life.

But with even less time to work on the game than normal, I had to scrap most of this design. I kept they eye contact idea, though, and I am pleased with what I came up with.

August #1GAM

I started with an eye that the player controlled, but eventually I realized that for the game I was creating, there was no reason for the player to be an eyeball. It was too confusing when you couldn’t easily tell your character apart.

August #1GAM

I made the eyeball a “guardian”, rotating around while the player tried to pick up squares in the area. When the guardian spotted the player, it would freeze for a second, then shoot towards the location. If the player touched a guardian, it was game over.

To add challenge, when a guardian shoots off toward the player, it would also leave behind a clone, so now there were two guardians looking for the player.

As you can see above, the game got exponentially difficult.

So I made one more change:

August #1GAM

August #1GAM

When smaller guardians touched, they combined into a larger guardian which constantly chased the player. This change solved the issue of too many multiplying guardians while also providing a different challenge to the player.

August #1GAM

Finally, I made the pick up item look significantly different. A white box in a sea of eyeballs didn’t stand out enough, so I made it the same color as the player and also pulsated it. The animation made it stand out nicely.

I would have liked to have added a third type of challenging guardian, or added some way for the player to remove guardians. I would have also added sound effects and particle effects, but I ran out of time.

Despite not having a lot of time to dedicate to it, I really like Eye Contact. It’s one of my favorite #1GAM entries. There is something disconcerting about all of these eyes looking for you.

Categories
Games Marketing/Business

On Free Games, the “Gamer” Label, and the Health of the Game Industry

My friend Gregg Seelhoff wrote a rant recently called You Lost Me at Buy.

He describes a dinner in which another person immediately rejected a game outright because it isn’t free to play.

We live in a world where there are a glut of freely available games, and a lot of them are high quality. It is perfectly within someone’s right as a customer to not be a customer, and businesses are not entitled to customers.

Still, it can be quite a shock to have someone immediately dismiss your game on the basis of the fact that they had to pay for it.

Now, I don’t completely agree with his first point, that games should not be free.

While most games make almost nothing in this new business model, it is kicking butt for some, and it is changing customer expectations in a disruptive way.

It’s painful for developers who expect to be able to sell games for a living, but if other developers are not only willing and able to release their games for free but also make a good living from it, that’s just a different business model.

It would be like saying that games should not be available through download because people should buy their games at retail through real stores. There’s an entire business model based upon selling at retail, with all of the partnerships and deals and overhead it required, and the Internet heavily disrupted that one well enough. I don’t think we’re going back to that world.

Still, years ago, casual portals and online retailers were lowering prices for games in a race to the bottom. It was a worrisome trend, and some of those portals are gone today, but what happened to customer expectations?

Is it healthy for the game industry for players to by and large expect their entertainment for free or nearly free? Maybe it is even healthier, as counterintuitive as it sounds.

Last year’s Penny Arcade Report by Ben Kuchera How Valve “devalued” video games, and why that’s great news for developers and players mentions how Valve and indie developers found their revenues increase dramatically when the per-unit price of their games was lower.

Ok, so developers can make more money, but does it impact the value players put on individual games?

Again, we live in a world where there are a glut of freely available games, and a lot of them are high quality. Sales and low prices aren’t necessarily devaluing games. It might just be the fact that players have a large backlog that they factor into their buying decisions.

Mike Ambrogi of Final Form Games says:

“[We] don’t believe sales are driving prices down; extant downward price pressure caused by a market surplus results in these sales becoming an optimal strategy.”

Selling games at a higher price point shouldn’t be dismissed as a stale view, though.

I think the bigger question is if there is room for games that can charge more. What are the real expectations for a game that costs $0.99 versus a game that costs $25.99? Are those latter games relegated to niche genres with fewer customers, or games which are more hobby than time-waster?

Is there still a unsustainable race to the bottom, or is the market being shook up, forcing out those who can’t make high quality entertainment with a low price point?

Since so many people can make games today, so many people are, and there are definitely a lot of mediocre games being made and published in the same space as the high quality ones. You can’t easily discern and find them, which is why app store top 10 lists are so huge for publicity, even if they aren’t a guarantee of success.

I’d like to think that people would be more willing to pay more for an epic-sized game rather than sit through ads or depend on big-spending whales to support their entertainment. The latter smacks too much of publishing a bunch of games in the hopes one becomes a hit and pays for the rest.

Finally, Seelhoff’s point that every interesting person plays games is spot on.

Just because a game does not involve a console and game controller, and shooting people on screen, does not make it any less of a game. Lots of people play Call of Duty, but ridiculous numbers of people also play Candy Crush. I do not like to segment people into hard-core/mid-core/casual/social/live/whatever gamers; they are all gamers. Please enjoy Pretty Good MahJongg and Demolish! Pairs, but do not tell me that you are not playing a game while doing so.

I can’t believe people still think “Oh, I don’t play games” just because they are not light zapper-holding 13-year-old boys who are into ninja turtles and M.C. Hammer. What year is this, seriously?

If you’re playing a solitaire game on your computer, you’re playing a game. The same goes for boardgames such as Monopoly and Scrabble. Words with Friends on your mobile device counts, too.

So by all means, play games. Why do people keep insisting to act as if there is shame in playing games?

Categories
Games Geek / Technical

A Reminder that Gaming Is as Old as Civilization

One issue that comes up periodically is that some game designers who grew up in the last couple of decades tend to look at game design through the lens of past video games.

When they think about game mechanics or themes, they might take cues from past video games that they loved.

But every so often, we’re reminded that games have been around for as long as people have been, and we have a much richer history if we dig past a form of media that has only been around for mere years.

Oldest Gaming Tokens Found in Turkey from Discovery News reports that 5,000-year-old game tokens were found in Bronze-Age burial mounds.

How neat is that?!

The tokens were accompanied by badly preserved wooden pieces or sticks. Sa?lamtimur hopes they’ll provide some hints on the rules and logic behind the game.

“According to distribution, shape and numbers of the stone pieces, it appears that the game is based on the number 4,” he said.

With something that old, and no one living to explain how to play, I imagine it would be quite the mystery to solve.

But imagine creating a game back then? Carving your own pieces with no one to tell you that you’re reinventing the wheel and should focus on the game instead… B-)

Categories
Game Design Game Development Linux Game Development

July #1GAM Entry: Shipwrecked

I’ve been working on Shipwrecked since June. Even then I realized that it was very ambitious, but rather that continue to work on it throughout the rest of the year, I’m going to call what I have done and move on.

Download Shipwrecked for Linux 64-bit (562 kb tar.gz file)

It’s amazing what a deadline can do to productivity, though. In the last few days of the month, I managed to add the ability to create objects, sleep, and go fishing.

I created a number of new objects, including sharp rocks, fishing poles, and opened coconuts.

July #1GAM

The crafting screen tells you what you can make and what you need in order to make it.

July #1GAM

Fishing doesn’t work quite as well as I’d like.

July #1GAM

It’s too easy! Fish seem to sail onto shore for you, and I would rather it be more difficult, requiring patience and time.

If I had more time to develop this game, I know of a number of things I wanted to add:

  • Daily stamina, which reduces as you take actions, such as walking with heavy items or swimming, and requires rest to recover. Right now, sleeping simply fast-forwards time.
  • Food spoilage.
  • Encumbrance. I added weights to the objects, but the player can still carry an unlimited amount. I would like it if swimming was more difficult with too many items, for instance, so drowning is more likely.
  • Disease.
  • Weather, such as extreme heat, rain, and bad storms.
  • Other entities, such as sharks to pose as water hazards and crabs to be dangerous food sources.
  • Injuries.
  • Thirst.
  • Caves to explore.
  • Debris, such as crates floating to shore from presumably sunk ships. Suddenly life on the island is more interesting when combing the beach results in finding bottles of wine or magazines.
  • Morale and sanity. I had a vision of the player going insane the longer he/she survives. Insanity would manifest as coconuts being the heads of people walking around the island, for instance, or objects such as rocks suddenly being seen as edible.

I took cues from Harvest Moon and NetHack primarily, plus I always liked the book Robinson Crusoe.

I learned that surviving on a desert island is a very common theme in games. For example, Stranded by Unreal Software was released in 2003.

Most recently there is Wayward, and when I learned of it, I almost lost motivation to continue work. Here was a game that was a very in-depth, turn-based version of what I wanted to make, although I had no intentions of adding bears and giant spiders.

I also felt bad because I realized that I needed to provide a way to create objects, and adding a crafting element to the game made me feel like I was copying the big trend since Minecraft became famous. It seems as if every aspiring indie game developer is making a procedurally-generated world in which you have to use nearby resources to survive.

As for this game, despite working on it for almost 50 hours across two months, I’m afraid it doesn’t have a lot of depth. The island has its objects randomly generated within it, but it’s not a very interesting algorithm. I would have liked to have created an expansive island to explore, with jungles and cliffs, but for now, the island is populated with random trees, boulders, shells, branches (where are the trees that made those?), and empty nets.

Of course, it’s only 50 hours. I’m sure if I worked on it full time in a given month, I could have accomplished much more, and if I dedicate multiple months to working on it, I could have something richer.

So on that note, I got quite a bit accomplished for this project. B-)

What I learned, however, is that even if I have plans for a lot of inter-dependent systems in a game, I should implement one to completion before moving on to another. It took way too long after I coded in a system for hunger and starvation for the player to have a way to avoid such a death, for instance. If I added hunger, I should have added food right away. In a similar way, I created a lean-to because I had plans for a need for shelter, but I never did put in any reason for a shelter to exist. A number of items become merely ornamental as a result.

All that said, I really enjoyed making this project. I hope I come back to it in the future and flesh it out more fully.