Side-Scrolling Nightmare!

So I decided to start work on assets for a somewhat realistic looking side-scroller. I’ve been chipping away at it for close to 5 days now. Here’s a peak:

This preview is only a small part zoomed out to 6.25% of the original size. The real image is about 20480 x 3072, or about 20×3 standard screens at 1024×768 resolution (iPad). I wanted there to be plenty of room to jump (or fall).

I’m not even halfway through one level. The problem isn’t the artwork – good art takes time, and what I have so far looks promising. The problem is spending almost a week building a level, by hand, without a design document or anything beyond a vague idea of where I want to go.

One suggestion many game designers have made was to make a game I’d enjoy playing. One game I recall playing with a friend on a snowy day, maybe 14 or 15 years ago was Gemfire. This was an old NES title, and a hell of a turn-based strategy game split between managing your lands and fighting on the battlefield. My friend and I would take turns as he was good at managing at the lands and I was his war chief. I came up with an unbeatable strategy that would allow us to take on enemies with superior firepower using hit and run tactics and taking advantage of the flank and rear attack mechanics (which did more damage).

Another great one, if only because it was so unique was Castilian (or Tower Toppler or Nebulus depending on which one you played). What made it so amazing was that it was the first game I’d ever played which gave you the illusion that you were move around a 3-dimensional object (the tower) as it the view rotated as you climbed. This was pretty amazing to see on the NES (the first system I recall playing it on, though I may have seen it in an arcade prior to that).

So back the drawing board. I’m going to need to work on putting some ideas down on paper and use that as a starting point.

Getting Closer!

I downloaded several of the GameSalad example projects to try to glean some insight into best practices, and how those could be applied to my project to resolve outstanding bugs. Here’s a recap of the issues I was struggling with, and how I resolved them.

The solution was simple enough; instead of trying to include the collision animation, the correct way to do it was to destroy the actor in play, then spawn a new actor whose behavior was to perform the destruction animation. Add a timer set to the duration of the animation, then add another destroy and….IT WORKS!

Here’s a sample of what I’ve got so far – keep in mind that this was just an exercise to learn what was possible and not a complete game, so don’t judge too harshly ūüôā :

Next steps?

1. I need to make the player take damage and capture this in a health bar
2. I need to tweak enemy behavior and physics (they should turn to face the player instead of moving in the same direction) and shouldn’t bounce off the walls wildly when they hit them.
3. Game over screen (only applicable once I have a working game)

The Learning Curve

I’ve been able to create a very basic game. It has a room, and walls that constrain the main character to that room. The main character is movable using the Arrow keys (though I may change it to WASD) and he even turns to face the direction he’s going using the “Rotate to” behavior. His movement is animated.

This character shoots animated fireballs when the space bar is depressed in whatever direction he’s facing and stop when they hit a wall or another character, and play a sound effect when this happens. Upon collision with a wall or monster, they “explode”, displaying a different animation (more on that later) and playing a different sound.

I created monsters for the character do battle with that spawn every 2-7 seconds, and move to wherever the player is at that moment. They are destroyed when hit by a fireball.

I also added ambient background music (once I’d figured out that it had to be .m4a format).

Sounds nifty, doesn’t it?

Well, there are problems…

  • I wanted to fireball to have separate initial, traveling and collision animations. The traveling animation looks right, but the initial and collision animations are buggy. Behaviors like “change scene” and “destroy character” are full-stops; they trump anything that comes before them as soon as they’re executed, no matter what! I wanted the fireball to explode on impact of whatever it struck (and had a specific set of sprites for this animation). After the explosion completed, the fireball actor should be destroyed to remove it from the game field. What’s happening instead is that it’s disappearing immediately after collision. I tried adding a timer, but this is buggy as it continues to display the travel animation on top of the exploding animation, causing the fireball to “hang” for a few seconds before exploding.
  • Because of the issue above, I can’t get death animations to work right either. As soon as the monster is struck by a fireball, it disappears immediately.¬† Again, timers don’t seem to help here.

So where does that leave me? Well, I’ll try bringing it up on the forums, but I suspect that this has to do with the fact that I’m using the PC version…I’m not about to go out and buy a Mac just for this one application, nor am I prepared to shell out the $300 GameSalad wants for the Pro version until I’m proficient enough with it to create a working game I’m proud of.

That said, my next step is the forums…

More Concept Art – Dungeon Scene

Here’s a scene I created in Photoshop. The idea was to create a dungeon scene using texture manipulation and layer transformation. The result is a 3D-like killing chamber I could use as a background texture. I might employ some lighting effects, maybe add a visible light source like window openings toward the edges of the screen.

3D-like dungeon background
3D-like Dungeon Background

After creating the first image, I decided to try creating an adjoining room. Here’s what I came up with:

3D-like background extended.
This is an extended version of the first one I created. Added another room to give the level more depth.

I also decided to experiment with lighting, and added a hit of a grate shining down from above.

Concept Art

I picked up a Wacom Intuos (digital stylus and tablet) today, I don’t have a great deal of desk space to work with, and am used to working on a small surface anyhow.

After unpacking it, plugging it in, and running the setup file on the installation media, I got it to work, but I noticed that everything I drew was squashed!

After a little troubleshooting, I figure out that I needed to configure the screen area needed to be adjusted as I have all 3 of my monitors linked through a TripleHead2Go box which allows me to treat them as a single display (handy when you want to run applications in 5760×1080 resolution :).

Once I adjusted the screen area in the Wacom utility, it worked great. I’m very much out of the habit of drawing, so I decided to start with something simple. I started doodling with big, roundish shapes, and filled in the sketch as a bulbous, bloated clown. I gave him scrawny arms and legs, and large, round head topped off with tufts of red curly hair. Here’s how he turned out:

V-Toad evil clown concept
Concept art of an evil clown character, first version to test my new stylus and tablet.

I will likely make some changes, perhaps give him a Jacobean Ruff and perhaps a hat. We’ll just have to see :).


In my last post, I discussed my intent to use the GameSalad engine as my initial development platform. After reading several reviews, I decided to try it for myself and see what I could do.

Day 1:
I downloaded the application and placed a background I created in the frame, and the a sprite on top of it. I assigned behavior to the sprite, allowing it to be moved using the Arrow keys.

Day 2:
I decided I’d learn faster using guided tutorials to become familiar the concepts and methods available. As I mentioned in my previous post,¬†I came across a series of Tutorials on YouTube that described how to make 4 distinctly different games, supplying all of the images, sound effects and music to allow a novice to follow along. I’ve gotten through 2/9 of the series.

Note: I did run into an issue in Lesson 2, the sound effect that was supposed to play when pressing the menu button to change to the “Whack a Monster” game didn’t play. Looking at the comments, several other people ran into the same problem. I tried to troubleshoot this several ways:

When I removed Change Scene Behavior, the sound played. I tried changing the order of the “do” actions and that didn’t make any difference. I tried creating a different rule with the same settings, but that didn’t work either. I tried researching the problem on GameSalad’s forums, but couldn’t find any further information.

At the time, I didn’t think to create a separate project and test this one feature with a different set of assets, but may give that a try later. It wasn’t important to the core functionality of the game, so I let it lie and went on to building the “Whack a Monster” scene.

Important Concepts

So far,¬†I’ve been introduced to a number of new concepts employed by the GameSalad engine:

Scenes: This is where the action¬†takes place, can be used to represent different “screens” (i.e. menus, level stages, etc.).

Actors: This can include backgrounds, sprites, or any objects that the player might interact with. They can have rules assigned to them to dictate their behavior.

Behavior: These control what a actor does, and can be used to animate the image, play a sound, change something in the environment and so forth.

Media:¬†Image, music and sound effect files in various formats which you’ll include in your game. Can be assigned to Actors and placed in Scenes.

Of all of these, Behaviors are the most complex element and will require a lot of review to understand how to use and troubleshoot them.

Further Questions

How are large environments handled? i.e. suppose I have a level that spans multiple screens, do I just create a giant background image? Or is a separate scene for each screen? If the later, can scenes be grouped or nested to help organize them (e.g. lumping all scenes from one “level” together)?

Update: October 2, 2014
I did attempt to troubleshoot the bug mentioned in the note above. To rule out the possibility that this had anything to do with the game assets used in the tutorial, or the setup of the project itself, I started a brand new project with a new image and sound file.

Just like in the tutorial project, I found I could change the scene, or play the sound when the actor was touched. If both were listed,¬†the scene would change, but the sound wouldn’t play, regardless of which came first. The only way I could get the sound to play was by removing or disabling the change scene behavior.

According to the manual (see Windows Creator 0.10.0 manual, page 21),¬†behaviors are supposed to be executed sequentially (top down). Keep in mind that I did check the “run to completion” flag.

After doing some research,¬†I found another post¬†on the official GameSalad forums which described the same issue I had. I posted a detailed response which I won’t repeat here, but long and the short of it is that this seems to be intended behavior: all sounds stop when the scene changes.

I can think of a few different ways to handle this:

  1. Use an older version of GameSalad (10.4 or earlier, which is what worked for Matt P., author of the tutorial videos)
  2. Find some way to handle the actions sequentially rather than simultaneously (play the sound until it finishes, then change the scene)
  3. The last option would be not to change the scene at all, instead, move the camera to a different region in the same scene.

The first option doesn’t seem like a good one as it runs the risk of introducing stability issues which have been addressed in the latest version.

The second option might work, maybe figure out a way to either add some sort of delay to the Change Scene behavior to prevent it from executing immediately, or perhaps add a delay between the sound playing and the scene change?¬†I’ll have to test this when I got home.

As to the final option, this seems like a hack (and probably a bad one) as each scene has its own attributes (size, background color etc.) so that would force me to use the same ones for both the menu and the level.

Where to Begin?

Before one can build something, there are a few basic questions to answer:

  1. What do you want to be build exactly? (2D? 3D? Puzzle? Action? be specific)
  2. What tools/resources will you need?
  3. What skills will be needed to create resources/use tools to accomplish your purpose?

Since I want to jump in and create something, my aim is to gain experience. I know that I’m not going to create a perfect game on my first attempt, so I want to start with something simple and portable.¬†That last time I attempted this about 12 years ago was with a tool called “3D Game Studio“. While I was able to create a few “working” 3D environments, and learned a lot about textures, sprites, blocks etc., I was never able to get a handle on scripting.

Also, given that I had no experience working with 3D modeling tools (would have been 3D Studio Max at the time), I had no way of creating models for actors, nor did I know anyone who was capable doing so.  While I might be able to teach myself, this is a highly-specialized art that takes a lot of time and skill to master.

2D sprites on the other hand are something far more familiar to me as I can draw, and I am very comfortable with Photoshop (I ought to be, having used it for the last 18 years or so).

So going back to the questions above, here’s what I’ve got:

What do you want to be build exactly? (2D? 3D? Puzzle? Action? be specific)

A simple, 2D game with basic¬†mechanics (right now I’m leaning toward a “Diabolika” clone)

What tools/resources will you need?

I’ve been researching non-programmer friendly game engines and came across GameSalad. It’s PC version is a bit buggy, so I’m hoping it’s just user error and not a reflection of the quality of the application.

What appeals to me about it is that I can use for free as long as I like, and will only incur a cost ($300 USD/year) if I elect to publish with it.

Edit: GameSalad went to a subscription model around June of 2015, and no longer offers a ‘free’ version.

This seems like a reasonable investment given that I’d have the ability to publish to Android, Apple and PC (HTML5) markets without having to do any porting.As to other tools, I already have Photoshop, and will be picking up a Wacom tablet to draw sprites with (I own one already, but that’s back in the US, and I’m currently working in Saudi Arabia).

As to sound effects and Music, I have a decent microphone, and have been creating electronic music on Skale (a windows-based version of Faster Tracker II) for almost two decades, and have literally hundreds of pieces (some finished, many not) of original music I’ve composed myself, and can use as source material.

What skills will be needed to create resources/use tools to accomplish your purpose?

Of all the tools listed above, the only one that’s new to me is GameSalad. Thankfully, there are a lot of Tutorials on YouTube that explain the basics, as well as other resources provided by GameSalad and others to help me get started. I’m currently working my way through a series of tutorials¬† created by “Matt P”. ¬†From what I can tell, this appears to be part of a formal game creation class as he’s also included links to the source material in his comments (sprites, sounds, music etc.).I’ve watched and followed along with 3/9 of the videos so far, but I’ll write more on that in my next post…

Chasing the Dragon

People often talk about chasing their dreams, but few people ever get around to it.

Over the last 20 or so years, my dream has been to make video games for a living. That dream has varied to suit my talents (primarily music, artwork and creativity), but I never quite made it. But this blog isn’t about excuses or past failures, it’s about new beginnings and (hopefully) landing a career doing something I love.

This blog will be dedicated to that journey, and document my progress, not only for my own purposes, but also to give other aspiring game makers a glimpse into the processes, tools and skills employed. I will also try to supplement these posts with YouTube videos and media as I progress.