Level Testing

Building Buildings
Today’s level testing began with constructing the Ryokan in Game Maker using the tiles I already have. For the first time, I connected a room with the inside and a room with the outside of the building through a “warp point” at the door. Using the “warp” function in the Grandma Engine transports the character to a another room at the same XY coordinates, so the door is at the same point in both rooms.

Lighting
Today I tried out the EasyLighting extension with my level for the first time. The system requires two colours- one ambient colour which masks the entire screen, and one light colour which is the colour generated by the light source.

The colours I used in my original text were the colours used in this tutorial, which resulted in a murky/swampy ambience!

Too murky


According to advice given in the tutorial, the ambient colour should be a darker colour and the light colour a contrasting bright colour, unless of course you want to create a light which is darker than your background for whatever reason… For this opening level of Hanami, I felt that a pink scheme would be appropriate. I started off by using hex code reference websites to look for bright shades of pink for the light colour, however weirdly when applied it came up with some weird results. My first attempt turned out these very blue lights:

Too blue


To get the right colours, all I could do was test hex codes until I found a good match.

Good light colour match


Ambient light colour too dark (and purple)


Subtle indoor lighting!

Placeholder Tiles
I made these quick tiles to act as placeholder for the rest of the level. They probably won’t make the final design, but they add a little variety to the design while it’s in its early stages! Unlike my “black-block” test level, this tileset contains sloping tiles and add gradients to the level.


Combining this with the building set makes the level design seem much clearer, especially where buildings and caves are concerned. The pink line down the middle is made of my flag tile and represents the waterfall!


This level is now completely playable as it is. For now I’m carrying on the visual design on paper by tracing the mock-up, while I’m working on creating some of the gameplay functions digitally! My first objective is to create a points system when flowers are collected. Here’s where my tracing is up to so far:

Changes to level design

New Design

Parts of the level design simply just needed re-thinking. The second cave (Cave 2, as I have named it) took up a lot less space than it could have done, so I drew out an outline and tried filled in the gaps by hand, thinking about the level from a visual perspective more than a play perspective. This did mean I had to make changes to the design, marked by scribbles and notes, but this way I got thinking more about the aesthetics of the level. It gets very dull using black squares!

I also started thinking about hazards whilst jotting down ideas, and have come up with three types of basic “enemy”.
1. Sits motionless on the ground
2. Swings from a ledge
3. Moves along the ground/through the air.
Details to follow!

Test-Based Adjustments
Where the level only needed adjusting rather than redesigning, it was easier to make changes in Game Maker’s room editor, where blocks could easily be moved and tested and quick succession! I used this technique at the end of the level to test jump distances and spread platforms apart:

Game Maker Test

Adjustments added to Level Mockup

New Level Design
The overall size of the level hasn’t changed, but I’ve managed to use more of the available space to create a more playable level:


What I can do now is add the structure to a Game Maker project to create a playable level made of placeholder objects (in a similar way to before!) Only this time, I intend to use all the assets I have currently created, including tiles, characters and lights. More graphics can be added as I make them, so by the end of the week I’ll have something visually more finalised as well as in terms of gameplay. Today I started to block in the ryokan tiles and create platforms around them, making sure that all dimensions were perfect! I’ll be adding the character and some lighting tomorrow.

Objective: Play


My objective for this week is to have a playable prototype level ready. While this will not be an accurate representation of the final game in any way, it will:

  • include all graphical features currently made–sprites and tiles
  • show an accurate level layout, mainly using placeholder graphics
  • have accurate game physics (mainly character physics)
  • include a points system when items are collected

So far today I’ve carried on working on my initial mock-up design for the first level of Hanami. Today I’ve been really concentrating on background and decorative parts of the level, finishing off the look of the level as a whole. It gets confusing in places because I mainly used one colour, so when I get the time I’m going to use varying shades of grey to determine depth and which items you can walk in front of.

Key:
Dark Grey: Buildings
Light Grey: Inside Caves
Green: People
Pink: Sakura Blossoms
Red(ish): Red Blossoms
Blue: Water
Half-Blocks: Jump-through platforms (mainly ladders!)

If you look hard enough you can almost see how I’ve based this around the original Kanji, although admittedly it becomes very obscured…

桃色 Pink ~ Momoiro

To test out how the level plays, I reconstructed the Photoshop mock-up in Game Maker using an arrangement of solid block objects. I didn’t worry about wasting my time with large filled in areas, all I needed was a frame for the character to play on.

Apologies for the pink. I was just trying to stay topical.


For the first time I also applied my animated character sprite to the game! I worked out animation speed settings in the character preview, but keep changing my mind as she occasionally looks as though she is walking backwards in game. The pink background was actually an attempt to separate her leg colour from the background colour and show leg movement more obviously.
It’s probably important to point out a slight oversight at this point. The level design is snapped to a 16×16 grid, so some gaps between solid blocks are only 16 pixels high. When I added an extra pixel to my character height, I accidentally designed a flawed character who couldn’t fit into these spaces. Luckily with Game Maker, not all of the character has to be solid. I’ve set the character’s collision mask to allow for a non-solid edge which will not collide with solid objects!

Through a process of trial and error, I’ve settled for these settings so far. I’ve tried to keep movement slow enough to be realistic, and kept jump distances low to make obstacles less easy to avoid. As the game has only environmental obstacles, if they were too easily avoided then the game would have no element of challenge!

S_GRAVITY: 0.3 //a fairly standard gravity setting
S_RUN_ACCEL: 0.3 //a fairly slow acceleration speed
S_RUN_FRIC: 0.6 //slightly high level of friction.
S_AIR_ACCEL: 0.1 //a very low setting, attempting to avoid too much air control
S_AIR_FRIC: 5 //a very high setting, attempting to avoid too much air control
S_JUMP_SPEED: -5.5 // just high enough to reach a platform triple the height of the character
S_DJUMP_SPEED: (N/A really as I am disabling double jump)
S_MAX_H: 1.5 //a low setting, but perfect for walking pace
S_MAX_V: 4 //a decent falling speed!
S_SLOPE_SLOW (not yet tested as I don’t have any slopes!)

Unfortunately (as I am currently using Hypercam…) I can’t guarantee that the speed of this video is anything like the speed of gameplay. You will just have to trust me that the speed is not an issue!

After playing through the level a little, I realised that a lot of the platforms are too close together to act as a challenging level. I will probably add fall damage when I give the character a health bar, so calculating jump distances is vital to play. At the moment, it’s almost impossible to fall in some places, and in other it’s almost impossible to move. I will try to resolve this by spreading the level out. This video actually plays from the beginning to the end of the level, but obviously in order to collect items, the player must play through the rest of the level beneath. I’m not yet sure whether I want to stretch out the width and length of the level too, to increase play time. This may simply come with spreading out platforms.
Just as well. I still haven’t managed to pick up any tracing paper :/

Edit: I worked out that the illusion of “backwards moving legs” is caused by the similarity in foot and block colour. The problem is resolved mainly by changing the colour of the platforms.

“Practical Game Design”

From Practical Game Design: The Rule of Threes on Gamasutra
In the first level of any game, there are three introductory steps which the player should experience before being thrown into the game. These are demonstrated perfectly in the original Super Mario Bros for NES:


1. Introduce the Challenge as simply as possible
In Mario, the “threat” of an approaching Goomba is built up gradually. The player must learn how to avoid or defeat this enemy, and in order to learn the enemy must appear in its simplest form.

With this challenge, the designer tells the player:
“There is such a thing as a Goomba.”


2. Do it again, with a slight variation
After the first threat is defeated, another one appears but in this case, the environment is different and therefore the behaviour of the enemy is changed. The player is learning that challenges will present themselves in different ways.

With this challenge, the designer tells the player:
“The land around the Goomba can take different shapes”


3. Step 3: Do it again, with another twist
In this example, the threat is doubled, but there is more space for error. Is it a more difficult or easy challenge than before? Or is it just that it is different?

With this challenge, the designer tells the player:
“The Goomba will not always come alone.”

These challenges take place in the first 10 or so seconds of the game, but it is the only introduction that the player needs. After this is over, the game can change shape and form and the player knows to expect this and react accordingly.

I’ve taken this into account for opening of Hanami, I may even include a single room at the beginning of the game which acts as the “tutorial level” before the player is taken to the rest of the village. At the moment, I’ve taken a slightly different angle and instead of presenting the player with challenges, I’m thinking of introducing the objectives.


For example, here you the Ryokan on the left. As the player moves to the right, they are immediately met by a Cherry Blossom, which is collected as the player passes over it. The player now knows “the objective of the game is to collect cherry blossoms”. The next two blossoms involve the player climbing and jumping, so the player is now familiar with environmental change. The last blossom is a new idea. It’s a red blossom which damages the character’s health. If the player isn’t paying attention, they may be tempted to try to acquire this deceitful blossom, but here I’m trying to show the player that they should avoid it! I’m currently trying to think of more environmental hazards; spikes are so over-used in 2D games so trying to think of more realistic “enemies”!


In Game Maker, I’ve started to test level design with various character physics settings, to try to get the right jump distances etc. My wood structure tiles make great place-holder blocks for test levels! I’ve used them here to test this very basic opening level (although currently the flowers don’t do anything when they are collected. I’m still working in a modified version of the Grandma Engine and haven’t actually started an original project yet!)

Easy Lighting Extension for Game Maker


One thing I’ve picked up on by reading developer’s forums and various articles on the Internet is that while Game Maker can do almost everything you could want it to, it doesn’t necessarily do it well.

I noticed this myself during my last Game Maker creation when it came to audio. Despite the fact that it gives you the option to use .mp3 format audio, it turns out that it doesn’t support most types of .mp3 (or some such nonsense.) I ended up using some hefty .wav files, which Game Maker compressed during the gameplay and completely changed. The majority of my sound effects seemed to sound like static! This is why people with the technological know-how have stepped in to save non-programmers by providing downloadable extension software for GM, including several which improve audio handling, which seems to be GM’s lowest point.

When it comes to in-game lighting, I’ve previously found ways to cheat by overlaying semi-opaque objects on top of light-emitting objects. In Somnium I used this to make some objects appear to glow, however this ultimately had no effect on the game’s lighting on the whole. The image above is an example of an extension called EasyLighting V7.0.2, which handles light generation in Game Maker. It is the same extension which Gabriel Verdon uses to create his moody, atmospheric lights in The Archer.

As you can see from the top example, there are two types of light generated. One is a dim, yellowish light and the other is a bright white light which casts shadows off the objects around it. Both of these lights use the same sprite image, which is a circle shape with a radial gradient. This is similar to my previous lighting “objects”.

However, the extension settings are used to draw these sprites to certain specifications, rather than simply overlay the same image in the same way repeatedly. This reduces the amount of sprites and used, and helps game performance.
You can read an in-depth description of all the extension’s functions in this tutorial here, which also runs through how the extension works and how to implement it!

The advantages of using a lighting system like this one is that it can help create the game’s desired atmosphere. The lights work by first applying a colour overlay, which immediately changes the tone of the game. Each light then has its own individual colour and brightness, which can give a really good sense of light and dark in the game.

To test the extension, I made some street-light style lights in the Grandma Engine. I recorded a quick little demo of the lights in action so you can see how effective they are in changing the ambience of a room. I’ve tried to capture the difference in the colour of the character (square) when under and away from a light source. These lights worked especially well at highlighting objects when several were placed close together.

Tile Changes

After creating some very square tiles, I started to think about ways that I could adapt some of the building aspects and objects to suit the game’s visual style better. What I’ve got so far is something very generic, which could be applied to any game. What I want is something more reflective of the concept art for the game (so far still mainly character designs!)
If you break down any game character, they consist of two contrasting halves. The top half of the character is made up entirely of a large oval-shaped head, which is more or less an equal length to the body, which is straight and thin. In fact, both of these sections were equal until I added some extra length to the legs:

The first thing I knew I wanted to change was the lucky cat statue, as this effectively counts as a game character. Before I had seen it as an object, ad hadn’t given much thought to where it fit into the game’s visual style.

Secondly, I felt as though I should add some more curvature to the building structure somehow, to create this oval shape within the structure somewhere. The most likely place for curves was in the guttering/roof edge, which previously consisted of a tiny little flick and was bound to one tile space.

My first idea was to extend this to cross two tiles, so that I could create a more oval-shape with the curve:

This looked really weird because there was no build up to it. It’s probably also structurally unsound, and would break off of you threw a tennis ball it… So I ended up with a think, sturdy, curvy structure which works really well.

For future buildings, I’m going to start sketching the outside before working on the inside as I have done with this example. As the beginning of the game, the inside is probably more important in this case. Most of the game is likely to be played outside of buildings.
As well as changing and adapting my previous tiles, I’ve added window frame tiles, porch tiles, patio tiles and outdoor objects like potted plants, which seem to be a regularity outside Japanese accommodation! As a business sign, I’ve made a fabric banner, similar to the wall scroll from inside the building. It says Ryokan in Japanese hiragana. Here’s my current tileset for the entire building, inside and out:

And how the building now looks in Game Maker:

“Elderly Platforming”

I’ve already mentioned that for this project I will be using Matt Thorson’s Grandma Engine for Game Maker, to give the game code a head-start. I’ve listed some of the advantages to working this way below.

Character Sprite Testing
The engine provides a default character sprite, which is a 16x16px red square. This can be swapped for any sprite of any size, although in my case I don’t need to make too many changes to the sprite size! All movement codes and physics are pre-determined, which presents a great opportunity to test character sprites and animations etc. without having to provide basic code before hand. I don’t currently have any sprite animations ready enough for testing, but I swapped the red square with my Hana sprite in order to get a feel for size and proportions. You may notice in the video that I’ve edited the sprite slightly again, because I felt that the sprite’s colour scheme should match the scheme used by the flowers more closely. I don’t know if this will stick yet.

Physics Testing
The grandma engine has cleverly listed all physics-defining code as one list of custom variables, which can be easily changed by anyone who isn’t familiar with GML or game coding. This is useful for defining your own game-specific physics, and can be swiftly changed and tested in the Grandma Engine before being applied elsewhere!
From playing around with the default settings, I think it’s fair to say that the movement is perhaps a little too fast and the jump distance probably unnecessarily high. This is good for initially experimenting with the engine, but I will eventually slow everything down a little.

Level Design Testing
The engine comes with essential default level design assets, in the form of blocks and slopes which join together to make the platforms of platform games! As well as the standard solid blocks which prevent the player from an infinite drop, the engine provides jump-through platforms, which the player can access by jumping up from underneath but will not drop back through. This is useful for a range of platform types, and something I regret not using in previous developments. I placed flowers around the preset level build to get a sense of how the size of the flowers felt in comparison to the block sizes, and to my surprise they don’t look bad at 16×16. This may all change when the blocks become actual tiles.

Extra Functions Test
There are a couple of nice but unnecessary things that the Grandma Engine provides for you. Things like an optional double jump, which can be turned on and off easily. A more useful function is a warp square, which transports the character from the square to a specific location in any room in any part of the game. This is useful for doors between rooms, rather than using the default scroll room transition.

Synopsis of Study- What I’m Doing And Why I’m Doing It

My learning agreement is nearly complete! The main bulk of the learning agreement consists of the Synopsis of Study, which briefly outlines what I’m doing in as much detail as you can fit into a brief statement. It’s helped me clarify some things which have either gone unmentioned or were simply missing- so here’s an informal breakdown.

Character Sprite concept & inspiration from Adventure Time with Finn & Jake: Memory of a Memory. It's nearly relevant.


What I’m doing
The plan is to create a contemporary 2D side-scrolling platform game. This is a very traditional genre, born from the limitations of early game design. My aim is to use the typical characteristics of this style of game to create something new and fun to old-school players who are familiar with the genre. The object of the game is to collect items and progress through levels, which is pretty much the objective of any 2D platformer if you think about it! Platformers usually follow a simple narrative which explains why the character is running from left to right picking up , and my plot is about revolves around the Japanese tradition of Hanami (for me details see the rest of the Blog).

Mario runs from left to right to collect coins and progresses through levels to find the Princess.

Why I’m doing it
The popularity of 2D platformers has wavered throughout the past couple of decades, but with the strong emergence of Indie game developers since about 2008 they’ve risen to popularity again. From a design perspective, it’s an incredibly easy genre to develop, which is probably why small teams of Indie devs picked it up again. There is now potential to incorporate stunning high-resolution graphics into these games, however the retro “pixel-art” style remains ever popular amongst developers and players. I too intend to use implement a retro graphical style into my game, because it’s such an important factor in the history of computer technologies. If you were to ask what made Super Mario Bros so good?” part of the reason would be that its low-res 2D graphics had a sort of “mysterious digital-world magic” to them. 2D platform games and pixel art are almost synonymous with retro. Mario’s original silhouette is still universally recognised by gamers.

You know who it is.

How I’m doing it
I’m going to draw all game assets myself, using a combination of Photoshop and pixel-art drawing program Graphics Gale. The game will be made in Yoyo Game’s Game Maker 8.1, which is almost the perfect tool for creating 2D games of any genre.
John Sandoval:

Game Maker can do anything.
It’s magic.

(from somewhere on The Archer Devlog!)

For a better insight into the game-making possibilities of Game Maker, see this post from a previous Blog. I initially chose to use Game Maker because it was free and very easy to pick-up. In the creation of games, I’m an asset artist before a coder, so it was important for me to use an engine which didn’t require years of programming knowledge to be able to use well. Since I wrote the post on my old Blog, I’ve bought the standard version of Game Maker, which has opened up even more possibilities.
During this project, to help me focus on asset creation rather than using up valuable time on coding, I’m going to use Matt Thorson’s Grandma Engine, which runs in GM and acts as an easily adaptable platformer basis.

To clarify, I’ve prepared a list of things the Grandma Engine does not have in common with the stereotypical grandma:
Old
Slow

To highlight the positive features of the engine, I also found it necessary to provide a list of the things the Grandma Engine does have in common with the stereotypical grandma:
Gives you candy

Other features of the Grandma Engine include a custom movement system (meaning it does not use the built-in Game Maker movement system), slopes, jump-through platforms, and an An Untitled Story-style room system.


The image shows the building blocks of the engine, which make up the solid platforms in a platform game! When the game is complete, these black blocks will be invisible to the player, replaced by more aesthetic visuals.
As for sounds, I will be looking to sites like freesound.org for sound effects. For background music, I’m going to keep an eye open for any willing composers, if not I will probably use a few royalty-free tracks.

EMP Countdown 3 (5 Days To Go…)

Today’s inspirational indie hero is Dan Fornace, creator of games like Super Smash Land and Blackfoot (among others!).

I discovered Fornace after the release of Super Smash Land a “demake” of the Super Smash Bros series made for Nintendo systems. The Smash bros games take characters from Nintendo games and allow the player to battle them in cross-game setups. Fornace’s game does this in a similar way, however instead of creating state-of-the-art 3D graphics, Fornace decided to use a retro style for his “demake”.

Super Smash Bros Brawl, the latest instalment of the series available on Nintendo Wii.

Super Smash Land by Dan Fornace, available for PC.

The green/grey low-resolution setup is reminiscent of the dot-matrix display from the original black and white Gameboy and various other handheld devices. This gameboy allowed 4 shades of “grey” to define colours, although in reality these were very green and has resulted in this green pixel style. What amazes me (but does not necessarily surprise me) about this game is its ability to appeal to players as well as the original Nintendo series, whilst incorporating this pixel style which is incredibly simplistic. The graphics are inspired by 3D graphics, not the original low-resolution games that the characters are taken from. This is useful to me when thinking about how to convert large concept images into very small low-res images. This example has just handled this wonderfully.

Wikipedia says this about these so-called game demakes:

Although remakes typically aim to adapt a game from a more limited platform to a more advanced one, a rising interest in older platforms has inspired some to do the opposite, adapting modern games to the standards of older platforms, sometimes even programming them for dead hardware.

As well as this backwards development process, Dan Fornace manages to apply some very advanced GUI into his games (generally created using Game Maker software…) which a lot of bedroom-coded games fail to do so successfully. His menu systems work well and are graphically well-designed. Blackfoot, a side-scrolling platformer about weasels, uses this menu to demonstrate level and character progress within the game:

GUI (Graphical User Interface) and HUD (Heads Up Display) design were pretty non-existent in my last project, but I would definitely like to apply them more efficiently from now on as a way of using some of the graphic design skills I’ve picked up over the last couple of years. It’s always beneficial to the player to see important info as they are playing and to be able to change settings etc. by accessing a pause menu.
Dan Fornace has made a selection of really great pixel-art games, but Blackfoot is one of my favourites as the concept is just so weird. You can check out the stuff he does at his website here.

links for Dan Fornace:
Fornace’s online Portfolio & Website
Fornace’s Yoyo Games Profile
Official Super Smash Land Website
Super Smash Land on IndieGames The Weblog

EMP Countdown Day 2

The Archer Gabriel Verdon

This is another persistent source of inspiration for me for several reasons. For a start, the game is currently in development and it just keeps getting better. The reason I can make comments like this is because the creator of the game, Gabriel Verdon, has been keeping a constant online development log since the very beginning. Even if the game turned out to be awful, this 77 page backlog of development is a pretty good tool for someone like me who is still working on finding the perfect game design structure. As a bonus, the game is being made in Yoyo Game Maker 8.0, so most of the development is really relevant to me. As well as a constant update on how things are going, Verdon has found the time to produce several devlog videos which really show how the game is coming along…

From these videos, you can see the full scale of this project. The game must really push the limits of the software in terms of graphics, although I believe the physics are fairly basic for the most part. The development log for The Archer introduced me to a Game Maker document called the Grandma Engine, which works as a 2D platformer engine within Game Maker. The document comes with a simple range of assets and physics, ready for the developer to add graphics and music etc. This is great for non-coders, but has been made in a way that the settings can easily be tampered with to make slight changes.

These images show really early development of The Archer, using the provided assets from the Grandma Engine and a custom playable character. Later, custom graphics are added to the level design and the solid black blocks are set to invisible. So although I really like where this game is heading in terms of inventive gameplay and a lovely pixel-art visual style, what makes this really inspirational to me is its devlog and again, for providing a showcase of software capabilities and possibilities. It looks likely that I will implement something like the Grandma Engine into my next project, especially if it takes the form of a side-scrolling platformer.

Links for The Archer:
The Archer Official Website
The Archer on Indie DB
Online Development Blog on Tigsource
Gabriel Verdon’s Blog