Hello World…Again: A Fresh Start

V-Toad Lives!

After a long hiatus, we’re finally back with a long post, TL;DR be damned, dammit!

I say ‘we’ rather than ‘me’ because I’m now working with an old and dear friend of mine, Eric. I’ve since moved my old posts from veritastoad.wordpress.com to my own web server, and custom URL.

Eric and I have been friends for nearly two decades, and had collaborated on several projects dating back to my first attempts at video game development some 14 years ago. Dissatisfied, over-educated and unemployed, both of us were looking for a way out of grind. Never has there been a better time for indie game developers to jump in and make great games – we are hoping to follow in the footsteps of the likes of Derek YuScott Cawthon, and Locomalito.

###

Division of Labor

As I’ve lamented previously, I am simply not a “triple threat”, which is to say that I while I am a mediocre artist and a decent composer, I am not a programmer. That’s where Eric comes in – with a degree in Electronic Engineering, Eric has had a lot of exposure to programming (or at least more than I have), and volunteered to try.

We still needed a game engine, and since GameSalad dropped it’s free-to-use model, we sought out other alternatives, eventually settling on GameMaker Studio.

###

 

False Starts, New and Colorful Beginnings

We had a brief false start around June of 2016. Creating graphics confounded me for reasons I couldn’t explain at the time, but now better understand (more on that later). My first attempts at pixel art were terrible, and I simply didn’t know how to go about creating a sprite sheet. While looking for free-to-use artwork to help me get started, I stumbled upon Locomalito’s sprite sheet for l’Abbaye des Morts on OpenGameArt.org, and through that, the game itself.

This lead to us trying out our hands at an unofficial sequel of l’Abbaye des Morts nominally entitled, Monk’s Revenge.Within about 2 weeks, we had a complete design document created, a few level iterations using the original sprites and some modified graphics.

The objective wasn’t to make money but to practice and learn.

Unfortunately, this project was interrupted by my relocation back to the US, and between that and Eric’s workload for his Master’s degree classwork, our progress was mired. When we picked things back up about a month ago, our mutual interest in creating Monk’s Revenge had since diminished in favor creating an original title. We’d learned all we needed to from it, and it didn’t seem worthwhile to move ahead knowing that it would always be shackled by licensing requirements as derivative work.

Instead, we hashed out a new game idea and Eric got to work on the new design document while I delved further into the alchemy of pixel art.

I studied tiles from my favorite 8-bit games growing up, and read up on old graphics modes for IBM Compatible PC’s (what I grew up with) and their limitations. One of Pyxel Edit’s built-in palette sets is “EGA 16” (which is actually the color set used for CGA backwards compatibility):

EGA 16-color palette

Having a limited set of options forced me to think about how the colors fit together, giving the art a genuine “retro” aesthetic. I started with a simple 16×16 pixel block (enlarged to 64×64 to show detail):

From there, I tried different color combinations and variations:

16-color tileset

The building blocks of the world(s) we will go on to create were starting to take shape, and my confident in my ability to create pixel art was starting to grow.

Just as important to our new game’s visuals would be the game’s sound and background music. Using only 4 channels and the original NES pulses, noise, triangle and PCM voices, I could some great sounding 8-bit accompaniment for the action:

 

So there you have it!

So what’s next? Expect more updates as we wrestle with new challenges creating our first game, Beaster’s Dungeon!

TANSTAFS: There Ain’t No Such Thing as a Free Salad!

Update – August 11, 2015: I received an email from GameSalad asking if I’d consider the Basic version for a $4 discount ($15/month). While I don’t take issue with  paying for a tool, I don’t think a subscription model is a good fit for the Basic version. I would rather pay a flat, one-time fee, and pay again for upgrades, if I wanted them.

I could even advocate paying a subscription for service (online publishing) and support, but if all I can do is publish to the GameSalad arcade, it’s just not worth it :(…

When I began using GameSalad, I had three major aversions to buying the ‘Pro’ version for Windows ($300/year):

  1. Stability
  2. Features (on the Windows version)
  3. Learning Curve

The Windows version was the bastard step-child of the Mac one, always several versions behind, plagued with bugs, lacking the same features as it’s Mac counterpart. While there is a robust community of developers, the vast majority are Mac users, and so due to the great disparity between the Mac and Windows versions of the application, many of the tutorials were using the Mac version, which simply wouldn’t work the same way (if at all) on the Windows one.

So what did GameSalad do?

Well, in my last post, Windows had finally caught up to the Mac edition with the implication that they’d stay synced. Even so, the Windows version was prone to crashes on startup, but a couple of updates later and that seems to have been tackled.

As to the learning curve, the new startup screen features a link to official tutorial videos!

Unfortunately, There Ain’t No Such Thing as a Free Salad…well, not anymore…

###

When I booted up GameSalad for the first time since patching, I was greeted with a 15 days remaining on my new ‘trial’ edition. No in-app explanation. Nothing in the ‘Help > About’. Zip. Zilch. Null…

Did I get a free trial of the ‘Pro’ version? What gives? Well, come to find out, their old CEO stepped down and the new one decided to start charging for the ‘Basic’ version ($19/mo).

So what did I do?

I uninstalled GameSalad. I know it’ll take me a hell of a lot longer than 15 days to learn how to use GameSalad. It’s initial appeal was that I could take my time and learn the tool at my own pace, and when I was ready, and had proven to myself that I was able to make (what I felt) was a product worth selling, I wouldn’t mind paying for the privilege of publishing it.

This is a good opportunity to change gears and maybe delve into Unity or Unreal…

GameSalad

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…