Category: development

HTML5 Game Development With GameMaker published

Today Packt Publishing announced the publication of HTML5 Game Development with GameMaker by Jason Lee Elliott. I was involved with the creation of this book as a technical reviewer, and as such I’m intimately familiar with its contents.

While the book title refers to HTML5 games specifically, most of the content is applicable to any development in GameMaker Studio, regardless of your intended build target.

Some of the highlights include:

  • Numerous examples of the “Finite State Machine” pattern implemented as a system of related Objects
  • Building a Box2D physics-based game
  • Creating a particle system
  • Facebook integration
  • Flurry Analytics integration
  • How to publish your game on the web.

If you purchase through the link below, Amazon will compensate me for the referral.

GameMaker Project Rot

My recent project, Genes, had a bug in it which didn’t really matter too much: Male creatures were supposed to seek the nearest available female, re-targeting every few seconds. And so too with females. But for some reason, the males were not re-targeting any longer once all the females had become pregnant.

I spent some hours trying to debug this before I released it, and I suspected something about the instance_change() method, which I used to change a female creature to a pregnant female, was to blame, but when I tried running a few tests to see what was going on in the code, it was apparent that the pregnant females were truly turning back into normal females after birthing, and also that the male’s re-targeting clock was resetting, and that they should have been seeing these females as available but for some reason they just weren’t.

It wasn’t crucial to the Genes demo, since the female homing worked well enough to get the breeding cycle going, so I gave up and posted it as it was. Then, I updated GameMaker Studio on Saturday to 1.1.929, and re-ran the game and all of a sudden the males are exhibiting the correct behavior now.

I started reading through the changelog to see what might have fixed it, and noticed something else that was enticing to me: Blend modes have been added to WebGL!

I haven’t touched the project files for Karyote in since sometime late in September, when I finished working on the post-Ludum Dare compo enhancements for it. My great disappointment with the HTML5 build of Karyote was that the pretty color blends that I’d come up with for the Windows build weren’t able to be rendered.

This had really soured me on building HTML5 games. But now I could see if it would be worth while to release a new build.

I tried opening up the project to rebuild it, and GameMaker said it needed to do something to the files in order to continue, and when it did, the project was corrupted, and all my project assets were missing. :-(

Fortunately, I have backups.

I restored the project folder from a backup and tried opening it again, and this time it worked. That is, it didn’t corrupt the project this time, at least.

But when I ran the game, a number of things were still off. In the Windows build, for some reason, the player’s sprite isn’t drawn correctly. The script that composites the player’s sprite no longer correctly centers everything, so now the body is off-center from the tail and the particle effects. And the HTML5 build no longer renders enemies at all for some reason. You just start out in an empty universe with nothing every appearing apart from the player.

Worse, the player sprite seems to be drawn correctly in the HTML5 build. So, it appears that the runner is not behaving consistently, depending on the build target. Which means that despite promising to allow you to develop projects that you can build to whatever platform, you (still) really can’t, because the behavior will not be identical across all platforms. I can only hope that this inconsistency will be rectified soon. It really sucks to have a tool that advertises itself as giving you the capability to easily develop for multiple platforms with a single project, and not deliver on that.

I’m sure with a little investigation and a bit of time, I might be able to fix these issues. But as a developer it sucks to have to sink my time into tasks like this, rather than doing new development.

This is something I’ll need to look into further, but I have to say that it is dismaying not to have confidence in Game Maker updates. If an update can ruin a project like this, it makes me very nervous about upgrading. Any project that I’ve put serious amounts of work into, I don’t want to introduce bugs into because I updated the development environment. Of course, I also don’t want to be stuck on an old version of my development tools, either.

I don’t know what techniques programmers use to protect their project code from changes to the underlying framework or environment. I imagine a unit test suite would help, but it doesn’t seem feasible for GameMaker projects.

Apart from that, I am not sure what else professional developers who work in GameMaker do. If you have any suggestions, I would love to hear them.

GameMaker: Studio Master Collection discount for Professional licensees

As covered by GameMakerBlog, YoYoGames has announced a special 60% discount sale for developers using GameMaker: Studio Professional only, allowing them to upgrade to Master Collection for $199. The special discount extends through 3/31/13.

This limited-time special offer is apparently in response to a situation affecting Professional licensees who had no cost-effective upgrade path to allow them to convert their existing investment to a Master Collection license. Following the recent release of the Ubuntu build target module, a paid upgrade for Professional users, there were complaints of unfair pricing affecting Professional licensees.

The big advantage for owners of a Master Collection license is that any future Game Maker build targets that happen to be released are automatically included as free updates, while GM:S Pro licensees have to pony up more cash for each piecemeal upgrade, thus making Pro a much more costly way to get all the features available in the Master Collection. As the Master Collection grows (and we don’t really know how much more, or if, it will grow), this disparity will only increase.

While this is a fine gesture on the part of YYG to respond to Pro license holders who asked for cost-effective upgrade path to the Master Collection, I still think it makes more sense for YYG to make it part of an ongoing pricing strategy, similar to the “Anytime Upgrade” option Microsoft made available to Windows 7 users, which would enable them to upgrade to higher product tiers for the difference in cost from their present tier, at any time. Hopefully YYG may yet make such a change to their licensing model — if you’d like to see that happen, I encourage you to send them feedback.

For now, this seems to be a good opportunity (and perhaps the only one) for any serious GameMaker Studio Professional users who may want to upgrade to the Master Collection.

Packt Publishing announces HTML5 Game Development With GameMaker

Packt Publishing has announced an upcoming new book, HTML5 Game Development With GameMaker, by Jason Elliott, tentative publication date in late April 2013.

I provided technical review/editing of the book, and so I can say that it should be a good book if you’re looking to get into the newer features of GameMaker Studio. While the book focuses primarily on HTML5, almost all of the book is generally applicable regardless of what platform you wish to target.

Highlights include:

  • Facebook integration
  • Pathfinding and Artificial Intelligence
  • State Machine design pattern
  • The new Box2D Physics system
  • Particle effects for any game
  • File I/O and HTML5 local storage.

Leveling Up as a Game Maker Dev

Something that interests me greatly with making things is the process by which the maker transforms from a novice to a master. This is a process of learning primarily by doing and through experience. Things like reading about a subject, interacting with peers, or watching others demonstrate, or abstractly thinking about a topic all contribute to learning, but none so much as actually doing things.

To the greatest extent possible, one should endeavor to spend their time doing and making. Get outside of your head and make. Do not exhaust yourself while making and doing; give yourself opportunity to observe what, how, and why you are doing what you are doing, and take time to examine and reflect on these things. Then apply what insights you gain from this into your next doing and making.

As I have progressed in learning GameMaker, I have observed a few distinct phases in my development. I don’t know that I’m at the highest level yet, or if there is a highest level. But as a gamer I like being able to categorize things and assign levels to them :-)

I really wish that I had had something like this to guide me as I made my progress, so it makes me really happy to have written this. I think it can help a less-experienced developer have some idea of a criteria of competencies so they can figure out how to get better, things to look for that can help them get there without having to figure it all out for themselves. It can also help a mentor recognize where their protegé is at in their development and help them identify areas where they should focus in order to improve.

Here’s a summary of my progression as a GM Dev to date:

Level 0

Complete ignorance. It’s a struggle to do anything.

All you can really do is follow instructions in a tutorial, most likely doing things with drag and drop actions. And sometimes even that is frustrating.

Despite the instructions being clear and straightforward, you still have a hard time following them because you have questions that are so basic that the people who wrote the tutorials don’t even realize that you would have them.

If you’re trying to follow written instructions, you wish that instead of still images, you had an animation showing where to click and what to type. The instructions use terms for user interface widgets in the IDE that you aren’t familiar with yet, leaving you to guess until you figure out what they mean.

Six months or so later, you think to search for tutorial videos on YouTube, and find a bunch, although they’re not really much better because of amateurish production quality, and by this point you’re well beyond needing them anyway. Still, there’s a few good ones on topics you’re not yet clear on. (more…)

GAME.Minder Expo 2013

Last Saturday, I attended and spoke at GAME.Minder Expo, held at Shaker LaunchHouse. after taking ill in January and missing the 2013 Global Game Jam, this was a great day to jump back into the Game Dev scene.

It was a relatively small event, but still probably the biggest local game dev event that I’ve been involved with to date. Organized by Handelabra to promote their studio’s mobile gaming efforts and the GAME.Minder podcast, and local area game developers in Ohio. Turnout was almost 40% higher than expected, with the official attendee count at 136. The Keynote talk was presented by Ian Schreiber, a co-founder of the Global Game Jam.

A bunch of us CGD people had dinner with Ian and his wife, and he said that we are getting big. It has been wonderful to see the local independent game developers organizing and building up our community and create a scene, and to be a part of making that happen.

Members of the Cleveland Game Developers meetup were well represented. I gave a brief talk on GameMaker, Jarryd Huntley talked about Construct2, while Brian Gessler and Justin Demetroff delivered a talk on Unity3D. Ian Faleer and Stephanie Frankiewicz gave a talk on the Art of the Game. And the folks from HashTag Nerd had a booth set up. There were a few other presenters as well. Videos are still being uploaded, but a number of them are already available on GAME.Minder’s Youtube channel.

The evening event was a screening of the Kickstarter-funded documentary Minecraft: The Story of Mojang. The movie was excellent and inspiring.

GameMaker: Studio Builds to Ubuntu

YoYoGames announced today that they have released a new build target for GameMaker Studio: Ubuntu Linux. It’s great to see YYG supporting Linux as a target platform, even if GameMaker does not embrace opensource principles. To add the Ubuntu build target to GM Studio Pro, it’s $99; if you have a Master Collection, it’s a free addition.

Master Collection is becoming an increasingly good deal with all the additional components provided and any new ones that come out entitled to Master Collection licensees.

Any time YYG releases a major new feature for GameMaker, I revise my wishlist for what I’d like to see from them next. Here’s what I’d like to see in future releases of Game Maker:

  1. An upgrade path for developers with Professional to Master Collection.
  2. Native IDE for Linux and Mac OS developers. The day a Native IDE comes out, I may not need to boot Windows anymore.
  3. Flash build target. (I know HTML5 is supposed to be the future, but Flash is still a relevant platform.)
  4. Support for other source control, especially git.
  5. Integration of some standard, cross-platform GUI widget toolkit like Qt or GTK to make creating user controls and forms easier.
  6. Native XML support (not relying on extensions)
  7. Project templates for common types of games, eg platformer, rts, etc. with library or namespace-like built-in classes for common objects already implemented

Game Jam 101 Lightning Talks

This Saturday, I’ll be at a Cleveland Game Devs meetup, where we will be giving lightning talks in preparation for the upcoming Global Game Jam happening later this month. I’ll be giving two talks, one on setting goals, and one on keeping the momentum. Following are my notes for the talks.

Game Jammer Goals

How to decide what to shoot for in your next weekend sprint.

A weekend is not a lot of time to make a game! To get the most out of your weekend, you need preparation and mental discipline. Having goals will help you focus and get the most out of your jam weekend.

So what should your goals be?

Have you made a game before, ever?

No?

Your goal should be to make a game! Easy as that.

Really, though, it is best if you have at least some game making experience before you try to fly solo. Do look for a team to join, and see what you can offer them. Focus on delivering a skill from your repertoire of strengths, and integrating well with the team. If you can get anything back from the team, hopefully it will be insights into skill areas where you are lacking, techniques that you can apply in those areas, or exposure to new tools that you can start to learn.

Yes… but never in such a short time!

If you have never made a game in a weekend before, likewise your goal can be to complete a game. It can be done, as proven by thousands of people. Before jams became popular, most people thought it took months or years to complete a game project. We know now that this simply isn’t so, and the amount of work that can be accomplished in a weekend can be incredible. Still, like running a marathon, it’s hard to believe until you’ve done it yourself.

It feels really good to have this accomplishment under your belt, so if you haven’t completed a Game Jam, this should be the only goal for you.

Even if you don’t make it this time, but still want to keep trying, then focus on learning what you can from the experience. If you weren’t able to complete the game you wanted to make, why was that? Did you lose track of time? Did you plan for more than you could possibly deliver? Did you struggle to implement something that you felt you could do, due to inexperience or pressure? If you couldn’t figure something out in the weekend, don’t give up – keep working on it after the jam until you figure it out. That way, at the next jam, you won’t be stopped by that failure again.

Don’t be afraid to fail, but try to fail early, and always fail at something new.

Yes! I’m a Jam veteran!

Then you can make a few more choices… completing the game may not necessarily be the most important thing once you’ve proven that you can do it. Be willing to take greater risks.

Once you’ve proven to yourself that you can do it, if you enjoyed the experience enough to want to repeat it, you should keep going on to bigger and better things. Participate in as many Jams as you can find time for, and make it a goal to do more with each new game, always improving on your last effort.

Where should you focus your goals?

This is a personal choice, and it depends a lot on where you’re at, where you want to go, and what your strengths and weaknesses are. Here’s a few areas to consider.

Learning/Experimentation. It’s only a weekend. If you fail, it’s no big deal. You only lose a tiny amount of time, and you can learn so much. So take risks. Try something you haven’t done before. Make your focus learning and experimentation.

Be willing to accept a failed concept, incomplete game, or failure to complete a submission. Ideally, you still want to make a game so you can show off what you learned and receive feedback on it, but it’s less important to have a good game than it is to learn from the experiment. If you want to have the best chance of having a finished game by deadline, limit your experimentation to one thing only. For everything else, stick with what you know.

I don’t recommend picking up a new tool to experiment with. Rather, do something different using a tool you know well. To complete a game in a weekend, you just don’t have time to learn a brand new tool that you’ve never used before. Using new (to you) tools won’t get much you recognition, but new game design concepts often do, even if they are not successes.

Still, if you really want to try a new tool, it can give you a taste of the tool, enough to give you a sense of whether it’s something you want to devote time to mastering.

Ideas for domains to experiment/learn with:

  1. Graphics
  2. Sound effects
  3. Music
  4. Controls
  5. Game mechanics
  6. Genre
  7. Setting
  8. Mood
  9. Story
  10. AI
  11. Level design
  12. Randomness
  13. Procedurally generated content
  14. Physics
  15. Particle systems
  16. Network
  17. Multiplayer

Each of the above is still quite broad – don’t be afraid to get much more specific when coming up with your ideas for experimentation. But do decide on the specifics late – once the theme is announced, and you are starting to come up with concepts for your game is a good time to narrow down the specifics of how you will experiment with in a domain.

Teaming. Step up and be a leader. Try to organize a team.

Or just be on a team. A team needs more than just leaders.

The thing a team needs most is do-ers, without ego, who can communicate. Never forget this.

Leadership does not mean making decisions for the group; it means helping the group to come to agreements about the decisions it makes together.

Community. When I say “community,” primarily I’m thinking of all the participants in the jam who are not part of your immediate team. This could be other groups at your location, or they could be other groups anywhere in the world.

The jam is when everyone comes together to make something and show off and share with each other. This is the best time to make new friends (or grow existing friendships), and get to know the community. Play and review games made by other groups – make note of who created them, and follow their projects. Make it a point to get to know the people and learn about them. Follow them on twitter, visit their web site, and learn about their other projects. Who knows, they may live nearby! Drop them a line and let them know you like their work.

The essence to community is giving. The community is indifferent to most of its members, but it recognizes their greatest contributions. To stand out, give the most. Exchange your knowledge and skill – be willing to sacrifice a little dev accomplishment for a little knowledge spreading. Make a game so you can get feedback from the other jammers. Give feed back on the creations of others. Write tutorials. Build and share your own tools.

Winning. If you’re a true pro, and your team is functioning like a well-oiled machine, this is what you should go for. Make the best game you possibly can in the time allotted. Go for it, try to win! Learn how the event is judged, and try to do well in those areas where you feel strongest. Focus on your strengths, or if you’re working with a team, let each team member focus on their strengths, once all areas of project have coverage. Your experimentation should be minimal – stick with what you know you can do well, and know will work. It’s all about coming up with a good design quickly and executing.

Take a balanced approach. Try to do a little bit of everything. After all, it’s pretty hard to complete a game without doing a little bit of everything. But still put an emphasis on one area or another.

For me, I try to take a balanced approach. I stick with what I know well for about 70-80% of the project, but try to make learning something new an important goal on top of simply finishing a game. I don’t care about “winning” the jam, but I want to do better than my last jam. I also try to be involved in the community in order to get inspiration from what other developers are doing, and to build reputation as a designer/programmer.

Be Flexible. The weekend will surprise you. Be adaptable to the surprises, because they offer you opportunities. The best things about a weekend jam are the things that you couldn’t have predicted beforehand. Don’t set out on a mission to complete a rigid list of goals, but have a number of potential goals in mind, and be willing to drop one in favor of another if the right opportunity comes along. If you try something and see quickly that it’s not going to work, or that you wouldn’t be able to finish it by deadline, it’s OK to drop the idea and go with something else.

Weekend goals vs. Long term goals

A very good use of your time in a game jam will be to incorporate your longer term goals when choosing your goals for the weekend. Successful people tend to set long term goals and work toward them by taking many small steps.

Use the SMART criteria:

http://en.wikipedia.org/wiki/SMART_criteria

  • Specific: Don’t be vague. Focus on a specific goal. If it is too general, you will rationalize and bargain with yourself that the goal has been met, rather than focus and work harder to achieve the goal. You can still be flexible with your goals while being specific, but if the situation dictates changing goals, try to change from a specific goal to another specific goal.I want to complete a game in the next 48 hours is pretty specific already. If you can, though, go further – I want to complete a game that incorporates teleportation. Or, Complete a game that uses the mouse for controls. Or, Complete a game that causes fear by imparting a sense of helplessness and sudden, surprise danger. You get the idea.
  • Measurable: If you can’t measure it, then you don’t know how well you did. Pick things that you can measure. This gives you something to aim for, and lets you re-calibrate as needed.Game design is hard to measure. How do you quantify fun? Still, there are things that are quantifiable. My goal is to rate 256 games for the compo. Or My goal is to place in the top 25% of entrants in the category of [x]. Or Create sprite animations for 8 different poses in the next 2 hours.But don’t try to make your goals based on arbitrary numbers. Try to pick numbers that are meaningful. It’s better to have a smaller number of well-done features than a larger number of weak features. What’s better, a game with 10 boring levels, or 1 really great one?Often, the easiest way to measure may be simple binary: either you achieved it or you didn’t.
  • Achievable: Don’t set yourself up for failure by picking something that you can’t hope to accomplish. You should have an idea of what you’re capabilities are. It’s fine to challenge yourself, but don’t set the goals unrealistically high. If you don’t have any clue at all how you’ll achieve a goal, step back and set a more realistic goal that you can achieve, which gets you closer to achieving the too-hard goal.
  • Relevant: Don’t pursue extraneous goals. Focus on what is most relevant to your larger goals.In a weekend jam, there’s just not a lot of time to waste. Focus on the essential features of the game you want to make. Don’t waste time on extraneous things.
  • Time-Based: Give yourself a reasonable window of time to achieve the goal. Assess yourself at that time and decide what to do next. But also check yourself before then to see if you’re on track.During a Jam, time is constrained as it is. You know you have 48 or 72 hours to build a game. I encourage you to subdivide this time and assess periodically where the project is at, and decide whether to drop or modify features in order to make the submission deadline.

 

Game Jamming 365

How to keep the momentum

  1. Be obsessive. Think about game development all the time. According to the Bureau of Unverifiable Statistics, men think about sex on average every six seconds. As a game developer, you should think about game development even more than this.
  2. Be persistent. Don’t give up. If you can’t figure something out, show off what you have been able to figure out and ask people for help.
  3. Set small goals. Pick small projects. Do things that are within your capability to complete quickly. Do simple, mini projects that aren’t full-blown games, but are good development exercises, or that can be useful reusable components in a game.
  4. Make time. At a minimum, set aside one night a week to be your time to devote solely to your projects. Arrange your calendar so that you can do this. Work over this minimum any time you can.
  5. Fill every possible moment. When you get into your project, you won’t want to stop. Find ways to put time in on your project. Carry a notebook around with you to draw and write up your ideas. Write yourself notes whenever you have a few seconds – at the bus stop, on the train, waiting for an appointment, in the elevator.
  6. Get back on track. Life will always intrude and take you out of “the Zone.” When that happens, figure out how to get back on track as quickly as possible. Deal with the distraction effectively and efficiently, and go back to development. If it’s a true life priority that’s calling you, then give it the attention it deserves, and resume your game projects when you can.
  7. See the Game in everyday life. Look around you, everywhere there are systems that could be seen as games. Teach yourself to recognize these patterns and then apply them in your projects. Art imitates life. Make up games about brushing your teeth, or walking your dog.
  8. Take a break. When you get exhausted, when you get stuck, when you’re not feeling it, when you’re wanting inspiration. Step back and give yourself time to recharge. Work on something else. Just relax. Meditate or exercise. Watch a movie. Hug someone you like.
  9. Play. Play games. Follow your favorite developers’ new releases. Return to your old favorites. Visit them with a fresh eye, think about what makes them successful.
  10. Release. Put your work out there for people to see. Give them easy ways to provide feedback to you. Use achievement statistics to collect data on how players play your game. Analyze the data to figure out how to make better games.

Bad Puppy Design Analysis: The Bad

Recently, I wrote up a design analysis of my game for Ludum Dare 25, Bad Puppy. Mostly, I had positive things to say about what worked about the game design. Having continued to develop the game since then, and having played many more hours in testing and for fun, I’ve noticed some flaws in the design, too, so I feel like talking about them.

Difficulty depends on display size

I did all of my game development on a 1680×1050 screen. When I developed the game, I wanted it to play in fullscreen mode, with the room scaling up or down to fill the display. I coded a routine that dynamically sized the “room” to the exact size of the display. But, although the room changes size, the player and enemies do not. Since they do not scale up or down, this means that on a larger screen, the player has much more room to run around and avoid the enemies, which makes the game much easier; conversely, on a smaller display, the game is much more difficult. I felt like the game was about “just right” at 1680×1050, which means that above that size it’s probably too easy, and below, too hard.

This also means that high scores are not directly comparable on different systems. I will have to keep this in mind when I eventually implement the online highscore system. Either I’ll have to standardize the room size, which involves its own trade-offs, or I’ll have to create different scoring categories for each screen resolution, and then do some order-by stuff with the query that displays the rankings, which fragments the player community.

Another shortcoming, on the Instructions screen, the text cuts off at the bottom if the resolution is smaller than 1680×1050. I need to fix this, but haven’t gotten around to it yet.

Safe Spots

Safe spots are places in a game where it is impossible or dramatically harder to get hurt. Many games, particularly in the NES era, featured “safe spots” as a kind of strategic place where you could safely attack certain enemies, especially bosses. Safe spots can ruin gameplay if they make the game too easy. The worst offenders are games where you can just sit in one place, and hold down the attack button, and win. There is no difficulty to such a game, beyond finding the safe spot in the first place. Many games have temporary safe spots, which are better, because they give the player a short-term advantage that they can exploit, but they still have to remain actively engaged in order to prevail, and usually learn a pattern, or a behavioral trick that they can use to manipulate the AI to make the enemy do something stupid, like get stuck or attack in a way that always misses.

Bad Puppy does not have a static safe spot where you are always safe, but it does have a certain amount of exploitable AI behavior that gives rise to a dynamic safe spot. Because of the way I constructed the hitbox for the AI petters, if you walk upward you can avoid taking “damage” most of the time, as long as you can avoid walking into the bottom of a petter who is above you. The AI will continuously home in on you, so you always have to keep moving, but if you can run around the crowd of petters, they get herded into a bunch, and if you then stay above them, escaping through the top of the room when necessary, it’s pretty easy to avoid petting.

A skillful player should be able to discover effective tactics and use them in order to play for a better score. As a designer, I do want there to be ways to play that the players can discover through trial and error that will lead to improved scores. Ideally, though, the gameplay should be rich enough that there are a variety of valid approaches, and not one dominant strategy that breaks the game.

One of the weaknesses of Bad Puppy is that the gameplay is a bit shallow in this regard. I noticed this early on, so my very first post-compo improvement was to add a bonus pickup system. In retrospect, it was a pretty glaring omission from the original design. I wanted a retro style, and bonus pickups are a very common trope in retro arcade style games. Even though picking up the bonus items is completely optional, it still seems to dramatically change the way people play the game. People want to grab the bonuses, and are willing to take risks to get them, even though all they get is points, and even though it is safer to just concentrate on avoiding people and herding them.

Still, a frequent suggestion that I’ve received from players is to add additional mechanics to the game. They want the puppy to bite, or pee, or do something else besides just running and barking. So while the bonus pickups definitely added some depth, I’m not sure that they are enough by themselves.

What next?

All the other post-compo features that I’ve added so far have been cosmetic enhancements — adding a female petter, varying the skin color and clothes colors. They help make the game less visually monotonous and add flavor. I haven’t added any new gameplay features since adding the bonus system because I’m not yet sure from a gameplay standpoint what the game needs. The game feels a bit one-dimensional, but, aside from that, what’s there feels pretty balanced and fun, so I’m not sure what I should add next, or how it could integrate to the whole that is there already.

One of my goals with the You Are The Villain theme was to create a harmless villain, because I just couldn’t stomach making a game about a being a villain on the same day of the Sandy Hook shooting. And my original concept was to make the puppy a reincarnation of Hitler, who was weak and powerless, all bark and no bite. I liked the idea of a powerless Hitler. I didn’t want to make the puppy so bad that he could actually hurt people, and I’m not clear how either a pee or a bite mechanic would add depth to gameplay. The existing gameplay, while shallow, is pretty solid, and new features should not feel “tacked on” or ruin the balance of existing play mechanics.

When adding gameplay features, I think it’s important to be gameplay-centric in your thinking. The suggestions I’ve received, I think, have been character-centric; the feedback feels like it came from asking the question “What else do bad puppies do?” In my opinion, merely adding features to the puppy to give it more attributes of a real-life puppy would not be good for gameplay. Better, in my opinion would be to make observations like, “I’m running away all the time. I find myself wishing I could get the upper hand.”

One thing that could lead to deeper gameplay would be a mechanism that resulted in some sense of advancement. It would need to be necessary — something the player has to do in order to keep playing, and that gives the player a secondary goal and sets up internal conflict between barking/running and whatever the secondary goal is. I plan to explore this idea and see what I can come up with.

GameMaker General Tutorial

Indie Game Developer Jesse Freeman has written one of the most concise and well written quick-tutorials for Game Maker that I’ve seen to date. If you’ve never used GameMaker before and are looking for a good place to start, this is a great read.