How Tyrant Haxorus Reviews Products

 

Previously, my reviews have had a rating score put on them. A review score is a number that is used by critics to provide a general idea of a game’s quality. On Tyrant Haxorus, I have found that I have not put any thought into a rating score and was done simply because many critic review sites such as IGN and Game Informer use them. From this point onward, Tyrant Haxorus will no longer use review scores. This is because I feel that people decide on a product’s value and quality from what is written in a review and checking a multitude of perspectives. Review scores are a numerical summary with a mark that means different things to different people. It doesn’t take into account the whole story of what multiple perspectives were communicating.

Previous reviews will have their rating scores removed. What was written in them and the What’s Good and Bad summaries will remain intact and future reviews will not have rating scores. I always aim to provide a perspective that is informed and addresses what is right and wrong with a product. The removal of rating scores means I will not undermine my points and critique with an arbitrary number.

 

Downwell Review

logo

Downwell Logo, Downwell website 2016

Developer: Ojiro Fumoto

Publisher: Devolver Digital

Platforms: PlayStation 4, PlayStation Vita, iOS, Android, PC

Genre: Rougelike Platformer

Played on PlayStation Vita

Arcade games focus on the essence of a video game, one or two good mechanics that create everything else. Pac Man eats dots on a screen, Tetris aligns blocks together to destroy them and Asteroids is shooting and avoiding incoming asteroids. Downwell was created by Ojiro Fumoto who was inspired by a quote from video game designer Shigeru Miyamoto.

Japanese Ninento artist and game designe

Shigeru Miyamoto, Time 2016, 7 Fascinating Insights from Nintendo’s Gaming Genius Shigeru Miyamoto, captured on October 21st 2008

“A good idea is something that does not solve just one single problem, but rather can solve multiple problems at once.” Shigeru Miyamoto Interviewed by Eurogamer.net, 31 March 2010

Downwell takes the philosophy of this quote to its logical extreme and has the simplicity of its contemporary’s, but is deceptively skilled based. Downwell will be remembered as the modern arcade game because of the incredible amount of depth, skill and player choice provided from just two game mechanics.

Gameplay

downwell

God is a Geek 2016, “Downwell coming to PS4 and PS Vita this month” May 6th 2016

In Downwell, the player goes down randomly generated levels to the bottom of a well. They encounter enemies, rooms with power ups and a perilous threat at the bottom. Downwell’s excellence comes from how the two actions of jumping and shooting do more than what is expected of them.

Shooting makes the player slightly hover in the air, destroys blockades, creates gems from defeated enemies and has different attack attributes depending on what power up is obtained. Jumping and stomping on enemies without landing builds a combo, landing on the ground or enemies refills the player’s ammo count and landing on the ground stops the combo and rewards gems, ammo and health depending on how high the player’s combo is. The rewards and risks from these multipurpose mechanics direct the player to play at full speed.

download

Downwell artwork by BlueASIS, “Jelly Smash!

This is expanded with randomly generated power ups at the end of a level that add beneficial abilities, such as collecting gems refilling ammo and creating a blast by stomping on enemies. Rooms the player encounters during their descent offer a break from the fast action and have power ups that change the attributes of the shooting attack and give health or ammo. When enough gems are collected, the player enters a gem high that increases the power of their attack, but withers out if the player can’t maintain a constant flow of gems.

This rapid fire decision making is possible because of the art style. Hazards are pure red, enemies indicate they can be jumped on by being predominantly white with a hint of red, walkable and jumpable objects being white and a black background to make colour stand out.

2016-11-24-211827

This makes Downwell have the qualities of iconic arcade games such as Pac Man, but has a layer of mechanical sophistication that is easy to understand, but difficult and engaging to master. When a game like Pac Man is understood, it doesn’t offer a way of adjusting difficulty to suit the player’s mastery and understanding of its mechanics. It only offers more challenge by making enemies faster and more unpredictable. Downwell uses randomly generated power ups that increases the player’s defence or attack capabilities and the player is able to decide on what is best for their skill and situation depending on what they have on hand.

After the end of a playthrough, the player unlocks palette swaps and player styles after collecting a set number of gems. Player styles give unique player native abilities that can make future playthroughs easier or harder depending on their skill level. Palette swaps change the primary colours of the game’s art style. Some palette swaps such as Dirtsnow make reading what’s happening on screen more difficult because of the background colour being different from black.

A problem with power ups is that power ups at the end of a stage are randomly generated. This means the player can’t really customise what playstyle they want and have to replay the game again and again until the right combination is generated. The game could have capitalised on allowing the player to start with a select number of power ups and offer challenges that are unique to the specific power ups the player chooses at the start. While these trappings do not ruin Downwell, it eventually makes repeated long term playthroughs tedious because the player can’t have an optimal loadout from the start.

Value

2016-11-24-140439

Designing a game around one or two game mechanics is an effective way of making one. Downwell is evidence of what happens when just one or two mechanics are developed to their full potential, with gameplay that offers an enjoyable learning curve and depth. Downwell is a short game. While hard mode and palette swaps offer a bit more for the player to achieve, the main game can be finished in fifteen to twenty minutes. This is both Downwell’s strength and weakness, because it makes it an excellent game to pick up and easily get into without a substantial time commitment. But for a player who wants a substantial amount of content and can’t meet that need from replaying and mastering a game’s gameplay, Downwell isn’t going to convince them.

But Downwell has an understanding of how systems and mechanics influence player behaviour that is more sophisticated than most iconic arcade games. Arcade games such as Asteroids and Pac Man had to find the most easily understandable way for people to interact in a virtual space. This meant gameplay had to be about moving around a space and getting a high score.

It made them easily approachable and players would try everything to reach a new high score. But this meant challenge could only increase by making enemies more aggressive, faster and in greater waves. Downwell’s challenge is changeable for the player’s skill. The native abilities from player styles can give more health at the start or make the jump have more float. The player can also decide to take the risk of building a large combo so they restore their health when landing on the ground or build up their gem count to spend on health and ammo items. The skill involved in Downwell comes from how the player survives by making deliberate and intuitive decisions and using the strengths and drawbacks of power ups the player has to decide on at the end of a stage.

It results in a game that is as approachable and fun to play as Asteroids and Pac Man, but has a layer of mechanical mastery that keeps it continuously engaging. After the optimal way to play most arcade games is mastered, it’s gameplay is static and predictable. Downwell is a modernisation of the arcade game because even when the optimal way is mastered, there are still equally valid gameplay choices that are better suited for different levels of skill. It’s creator Ojiro Fumoto wanted to show how solving multiple problems with one solution creates powerful player choice and elegant intuitive design. By following the philosophy of a quote from one of the game industry’s most influential designers, Downwell has solved the arcade game’s issue of static approaches to the problems it presents by using rewards and benefits for jumping and shooting at problems.

What’s great:

  • Phenomenal player decisions and skill from two basic inputs
  • One of the best games iOS and Android has to offer
  • Player styles allow players of different skill levels to find their optimal way of playing
  • Wickedly smooth and responsive controls complement the frantic gameplay
  • Very easy to pick up and get into

What’s okay:

  • The overall length is suitable for it’s gameplay, even if it is incredibly short
  • Not much to achieve besides beating Hard mode and unlocking palettes   

What’s bad:

  • No attempt to capitalise on starting a game with a number of end stage power ups
  • Certain palette swaps make observing what’s happening more difficult
  • Difficult to recommend to people who want substantial content in their games 

How to Make a Platformer in Gamemaker Studio

GameMaker-Studio-Logo

Making 2D platformers in GameMaker Studio involves more than jumping a character up and down. It needs calculations of horizontal movement, Creation Code for a basic checkpoint system and novice developers often stumble because they underestimate what goes into a 2D platformer. While not overwhelming, 2D platformers are a reasonable step up from basic maze and space shooter projects.

After a month of development, I will show you how to make a 2D platformer foundation straight forward enough to develop, but simple enough so you can add your own ideas for a 2D platformer game.

Part 1: Sprites

Make a new project

Create a sprite by pressing this icon

Capture

Make 10 sprites and name them: spr_wall, spr_player, spr_moving_wall, spr_movingwall2, spr_onewayplatform, spr_enemy, spr_emblem, spr_coin, spr_goal, spr_checkpoint

Double click on the sprites and give them the following properties:(The properties can be edited with these GUI interfaces. You can make the sprites anything you want, but its best to work with basic coloured squares)

spr_wall 32×32
spr_player 32×32, 16×16 origin
spr_moving_wall 64×32, 32×0 origin
spr_moving_wall2 64×64, 32×0 origin
spr_oneway_platform 64×32, 32×0 origin
spr_enemy 32×32, 16×16 origin
spr_emblem 32×32
spr_coin 32×32
spr_goal 32×32
spr_checkpoint 32×32, 2 subimages

Part 2: Scripts

Now make a script by pressing this icon

tut-pic-4

In the script, put in the following code:

///—–CHECKPOINT SYSTEM—–///
//—————————-//
if (global.checkpointR != 0)
{
room_goto(global.checkpointR);
}
else
{
room_restart();
}
//—————————-//

//This system needs Creation Code in order to operate
//Make a room called rm_initialise and only put in Creation Code and room_goto_next
//Global Variables are values that carry their functions across all aspects of a game
//The player will never see this room, but is needed in order to make checkpoints work properly
//In the first line, it checks if a checkpoint is activated (if checkpoints are not off)
//The second line enclosed in a curly bracket will spawn the player in the checkpoints position
//The third line checks if the conditions of the first two lines has not been met
//Then the fourth line will spawn the player at the beginning of the level, but only when the conditions of the first two lines has not been met
//In my example, the enemies have room_restart that makes the player start the room over whenever they touch the enemies and have not jumped on top of them
//Because the Creation Code sets the checkpoint system, room_restart or scr_death will achieve the same thing, make the player spawn on an active checkpoint
//But because it restarts the room, global variables for things such as collectables and coins will not be kept intact
//You should use scr_death if you want certain aspects of progress to remain in memory
//Keep in mind that this system is very basic

checkpoint-illustration

Part 3: Objects

After that, make 12 objects and name them: obj_jumprefine, obj_wall, obj_movingwall, obj_movingwall2, obj_onewayplatform, obj_enemy, obj_enemy2, obj_enemy3, obj_emblem, obj_coin, obj_goal, obj_checkpoint

Object 1/12

In obj_jumprefine, edit these values: Depth -1

Put the following code into these events:

Create Event

///—–ESTABLISH PLAYER VARIABLES—–///
//————————————-//
hsp = 0 //horizontal movement
vsp = 0 //vertical movement
grav = 0.5 //force of gravity that pulls the player down to the ground
key_down = 0 //allows players to go down oneway platforms
hsp_carry = 0 //horizontal movement on moving platforms
vsp_carry = 0 //vertical movement on moving platforms (Legacy code, meaning this project ended up not using vertical platforms due to programming difficulties)
acc = 0.50 //the amount a player’s speed revs up until they hit their max
max_speed = 5 //default speed and can be changed by sprinting. Can be any letter key with (keyboard_check(ord(“”)))
jump_number = 1 //how many times a player can jump in the air

//Checkpoint spawning
if (global.checkpointR == room)
{
x = global.checkpointx;
y = global.checkpointy;
}
//When an activated checkpoint exists in a room
//The player spawns in the checkpoints X and Y position
//When a checkpoint isn’t in existence, the player spawns back at the start of the room
//The player’s spawn is affected by falling out of room borders and touching enemies
//————————————-//

Step Event

///—–CONTROLS KEYBOARD INPUT AND GRAVITY—–///
//———————————————-//
if (keyboard_check(vk_right))
{
if (hsp < max_speed) hsp += acc
}

//When the right arrow key is pressed
//The game checks if horizontal movement is less than the maximum movement
//When less than max_speed, hsp adds acc(o.5) for every frame the arrow key is pressed
//This rises until hsp is equal to max_speed(5 or 7)

if (keyboard_check(vk_left))
{
if(hsp > -max_speed) hsp -= acc
}

//When the left key is pressed
//The game checks if horizontal movement is less than the maximum movement
//When less than max_speed, hsp adds acc(o.5) for every frame the arrow key is pressed
//This rises until hsp is equal to max_speed(5 or 7)

if (keyboard_check(ord(“Z”)))
{
max_speed = 7.5
}
else
{
max_speed = 5
}

//When the Z key is pressed
//max_speed is changed to 7.5, making the player move faster because acc now adds more multiples of 0.5 every frame
//When the Z isn’t pressed
//max_speed is set back to normal

running-illustration

if(!keyboard_check(vk_left)&& !keyboard_check(vk_right) || keyboard_check(vk_left) && keyboard_check(vk_right))
{
hsp = 0 + hsp_carry
hsp_carry = 0
}

//To allow the player to stop moving when letting go of a movement key
//The game checks if movement is not pressed or if it is pressed
//Horizontal movement is set to zero when let go or starts it at zero if being pressed
//Previous movement code is responsible for increasing hsp’s value
//! is NOT, && is AND, || is OR
//The hsp carry bracket allows the player to stand and move with a horizontal moving platform

if(place_meeting(x,y+1,obj_wall))
{
jump_number = 1
}
if (keyboard_check_pressed(vk_up)) && (place_meeting(x,y+1,obj_wall))
{
vsp = -12
jump_number -=1
}
if (keyboard_check_pressed(vk_up)) && (!place_meeting(x,y+1,obj_wall)) && jump_number >=0
{
vsp = -12
jump_number -=1
}
if(keyboard_check_released(vk_up) && vsp < 0)
vsp *= 0.5
else
{
vsp +=grav
}

//The game checks if the player is touching or rather 1 pixel above a wall
//If in contact jump_number is set to 1, allowing the jump again after the vsp has been set on input
//When the jump button is pressed
//The jump(vsp) moves the player upwards and subtracts 1 jump_number count
//When jump_number is greater than or equal to 0
//The player can make an additional jump
//This jump can happen on ground or the air and resets after landing
//When the jump key is pressed and released
//It checks if vsp is less than 0
//vsp then equals and multiply by 0.5 until the key is let go
//After these functions have been met or don’t meet conditions
//vsp will equal gravity, that pulls the player down to earth for every frame where a condition hasn’t been met
//———————————————-//

///—–COLLISION AND MOVEMENT CHECKS—–///
//Turn off Solid in your wall object because this paragraph gives superior control over collisions with the player//
//—————————————-//
if(place_meeting(x+hsp,y,obj_wall,))
{
while(!place_meeting(x+sign(hsp),y,obj_wall,))
{
x+=sign(hsp)
}
hsp = 0
}
x += hsp

//When the player’s position meets the wall horizontally
//sign returns 1 or -1 values and checks if left or right meets the wall
//Then if 1 pixel in a space is free, the player keeps moving left or right
//Once the player touches the wall, they stop moving and don’t past through the wall horizontally
//They will then carry on with their current X position

if(place_meeting(x,y+(vsp),obj_wall,))
{
while(!place_meeting(x,y+sign(vsp),obj_wall,))
{
y+=sign(vsp)
}
vsp = 0
}
y += vsp

//When the player’s position meets the wall vertically
//sign returns 1 or -1 values and checks if up or down meets the wall
//Then if 1 pixel in a space is free, the player keeps moving up or down
//Once the player touches the wall, they stop moving and don’t past through the wall vertically
//They will then carry on with their Y position
//—————————————-//

 

///—–GOING DOWN ONE WAY PLATFORMS WHEN STANDING ON THEM—–///
//—————————————–//
key_down = keyboard_check(vk_down)
//When the down key is pressed on a one way platform, the player will fall through it
//The player can also pass through Horizontal and Vertical moving platforms
//—————————————–//

onwayplatform-illustration

Other, Outside Room

///—–FALLING OUTSIDE GAME BORDERS—–///
//—————————————//
room_restart() //When the player goes outside the game borders, the room restarts
//—————————————//

Object 2/12

In obj_wall, edit these values: Children:obj_movingwall, obj_movingwall2, obj_onewayplatform

tut-pic-6

Object 3/12

In obj_movingwall, put the following code into these events:

Create Event

///—–ESTABLISH MOVEMENT PROPERTIES—///
//————————————–//
dir = -1
movespeed = 3
hsp = 0
sprite_index = -1;
//dir is the direction the platform moves in
//movespeed is how fast the platform moves
//hsp is horizontal speed
//Sprite_index allows the player to go through the bottom and sides of the platform
//————————————–//

Step Event

///—–PLAYER COLLISION WITH THE MOVING PLATFORM—–///
//obj_movingwall is a parent of obj_wall, meaning it shares many of obj_wall’s coding properties//
//—————————————————-//
mask_index = spr_moving_wall
hsp = dir * movespeed

//mask_index is the objects collision box
//Horizontal movement is set by direction and movement speed

if (place_meeting(x+hsp,y,obj_wall))
{
while(!place_meeting(x+sign(hsp),y,obj_wall))
{
x += sign(hsp);
}
hsp = 0;
dir *= -1;
}
x += hsp;
if (instance_exists(obj_jumprefine))
{
if (round(obj_jumprefine.y + (obj_jumprefine.sprite_height/2)) > y) || (obj_jumprefine.key_down) mask_index = -1;
else
{
mask_index = spr_moving_wall;
if place_meeting(x,y-1,obj_jumprefine)
{
obj_jumprefine.hsp_carry = hsp;
}
}
}

//When the platform touches a wall
//And they are currently not touching one
//The X position is rounded by sign hsp
//Then the hsp is set to 0
//And the direction is flipped in the other direction
//The platform carry’s on with its X position
//This creates a loop where the platform goes left and right so long as it bounces off a wall
//When a player exists on the platform
//Their Y position is calculated to be above the horizontal platform
//When above the platform, the mask below the platform is off, allowing the player to jump up, down or sideways onto the platform’s centre position
//This is why the platform sprite’s X centre origin is placed in the top middle of the platform (You can change it in the Sprite properties)
//When this condition isn’t met the mask_index is on, allowing the platform to collide with the wall
//When the player is standing on the platform
//Their hsp will equal the platform’s own hsp, allowing them to move with the platform
//—————————————————-//

Draw Event

///—–SHOW SPRITE ON SCREEN—–///
//——————————–//
draw_sprite(spr_moving_wall,0,x,y);
//The objects sprite is shown on screen
//——————————–//

Object 4/12

In obj_movingwall2, put the following code into these events:

Create Event

///—–ESTABLISH MOVEMENT PROPERTIES—–///
//————————————–//
dir = 1
movespeed = 1
vsp = 0
sprite_index = -1
//dir is the direction the platform goes in (up and down)
//movespeed is how fast the platform goes
//vsp is vertical movement
//sprite_index sets the sprite subimage

Step Event

///—–MOVEMENT AND COLLISION OPERATIONS—–///
//Legacy code that does not work properly
//——————————————–//
vsp = dir * movespeed
mask_index = spr_moving_wall2
if (place_meeting(x,y+vsp,obj_wall))
{
while(!place_meeting(x,y+sign(vsp),obj_wall))
{
y += sign(vsp);
}
vsp = 0;
dir *= -1;
}
y += vsp;
if (instance_exists(obj_jumprefine))if (round(obj_jumprefine.y + (obj_jumprefine.sprite_height/2)) > y) || (obj_jumprefine.key_down) mask_index = -1;
else
{
{
mask_index = spr_moving_wall2
if place_meeting(x,y-1,obj_jumprefine)
{
obj_jumprefine.vsp_carry = vsp;
}
}
}
//——————————————–//

Draw Event

///—–SHOW SPRITE ON SCREEN—–///
//——————————–//
draw_sprite(spr_moving_wall2,0,x,y);
//The objects sprite is shown on screen
//——————————–//

Object 5/12

In obj_onewayplatform, put the following code into these events:

Create Event

///—–ESTABLISH ONE WAY PLATFORM VARIABLES—–///
//———————————————–//
sprite_index = -1
//sprite_index is responsible for affecting the collision box
//By default, -1 turns off the collision box
//the Draw Event, separate from this code script allows players to see the object sprite
//The Step Event affects if the player can stand on top of the platform by turning the sprite_index on and off

Step Event

///—–PLAYER COLLISION WITH ONEWAY PLATFORM—–///
//————————————————//
//Check for player existing in the game to prevent death script conflict and crashes
if(instance_exists(obj_jumprefine))
{
if (round (obj_jumprefine.y + (obj_jumprefine.sprite_height/2)) > y) || (obj_jumprefine.key_down) mask_index = -1
else mask_index = spr_oneway_platform
}
//When the player exists in the game
//The sprite’s foot is checked
// when its greater than the position of the one way platform
//round turns numbers into integers to ensure whole numbers are caculated
//mask_index is turned on, letting the player stand on top of the platform’s origin

Draw Event

///—–SHOW ONEWAY PLATFORM SPRITES ON SCREEN—–///
//————————————————-//
draw_sprite(spr_oneway_platform,0,x,y)
//Shows Oneway platfrom’s sprite
//————————————————-//

Object 6/12

In obj_enemy, put the following code into these events:

Create Event

///—–ESTABLISH ENEMY VARIABLES—–///
//————————————//
state = e_state.idle//allows the enemy to move once the player is close enough
dir = -1;//the direction the enemy moves
movespeed = 2;//the speed the enemy moves at
grav = 0.5;//the force of gravity dragging the enemy down to the ground
hsp = 0;// horizontal movement
vsp = 0;//vertical movement
//————————————//

Step Event

///—–ENEMY LOGIC AND COLLISION—–///
//————————————//
switch (state)
{
case e_state.idle:
{
hsp = 0;
vsp = (min(7,vsp+0.5));
if (distance_to_object(obj_jumprefine) < 384) state = e_state.chase;
}
break;
case e_state.chase:
{
dir = sign(obj_jumprefine.x – x);
hsp = dir * 2;
vsp = (min(7,vsp+0.5));
if (distance_to_object(obj_jumprefine) > 416) state = e_state.idle;
}
break;
}
if (place_meeting(round(x+hsp),round(y),obj_wall))
{
while(!place_meeting(round(x+sign(hsp)),round(y),obj_wall)) x += sign(hsp);
hsp = 0;
}
x += hsp;
if (place_meeting(round(x),round(y+vsp),obj_wall))
{
while(!place_meeting(round(x),round(y+sign(vsp)),obj_wall)) y += sign(vsp);
vsp = 0;
}
y += vsp;

//The enemy has their state set to idle
//State machines are isolated forms of code that can be called upon at any time
//They are a useful advanced rescource for making A.I, complex mechanics and menus
//In idle, the enemy is still and is affected by gravity
//When the player comes into a close distance to the enemy, the state changes to chase
//The previous state is replaced with the new activated state
//The enemy moves to the player’s X posistion at a speed of 2
//The enemy is still affected by gravity
//Once the player has enough distance away from the enemy
//The enemy’s state goes back to idle and the chase state is lost until activated again
//The rest is collision code with the wall that rounds caulations to whole numbers
//————————————//

enemy-a-i-illustration

///—–PLAYER ABILITY TO JUMP ON AND DEFEAT ENEMIES—–///
//——————————————————-//
if(place_meeting(x,y,obj_jumprefine))
{
if(obj_jumprefine.y < y – 20)
{
with(obj_jumprefine) vsp = -vsp
instance_destroy()
}
else
{
room_restart()
}
}

//When the player is touching an enemy
//The player has their Y posistion checked to see if its a set number less than the enemies own Y posistion
//When less than the enemies Y posistion, the player will bounce upwards off the enemy and kill it
//The player’s bounce is equal to how much vsp was caculated during the check
//If falling from a great height, the player will have a great bounce upwards and vice versa
//If that check isn’t met, the player is beaten by the enemy and the room restarts
//In my example, the enemies have room_restart that makes the player start the room over whenever they touch the enemies and have not jumped on top of them
//Because the Creation Code sets the checkpoint system, room_restart or scr_death will achive the same thing, make the player spawn on an active checkpoint
//But because it restarts the room, global variables for things such as collectibles and coins will not be kept intact
//You should use scr_death if you want ceartin aspects of progress to remain in memory
//——————————————————-//

enemy-stomp-illustration

Outside Room

///—–FALLING OUTSIDE GAME BORDERS—–///
//——————————-//
instance_destroy()//When outside the room’s borders, the enemy is destroyed
//——————————-//

Object 7/12

In obj_enemy2, edit these values: Children: obj_enemy3

Put the following code into these events:

Create Event

///—–ESTABLISH ENEMY VARIABLES—–///
//————————————//
dir = -1//the direction the enemy moves
movespeed = 2//the speed the enemy moves at
grav = 0.5//the force of gravity dragging the enemy down to the ground
hsp = 0// horizontal movement
vsp = 0//vertical movement
fearofheights = 0//allows obj_enemy3, a child of obj_enemy2 to move without falling off the ground
//————————————//

Step Event

///—–ENEMY LOGIC AND COLLISION—–///
//————————————//
hsp = dir * movespeed;
vsp += grav;

//hsp is caculated by direction and movement speed
//vsp is gravity, the force that pulls objects down to the ground

if (place_meeting(x+hsp,y,obj_wall))
{
while(!place_meeting(x+sign(hsp),y,obj_wall))
{
x += sign(hsp);
}
hsp = 0;
dir *= -1;
}
x += hsp;

//When touching walls
//The enemy goes in the opposite direction
//They retain their X posistion

if (place_meeting(x,y+vsp,obj_wall))
{
while(!place_meeting(x,y+sign(vsp),obj_wall))
{
y += sign(vsp);
}
vsp = 0;
if (fearofheights) && !position_meeting(x+(sprite_width/2)*dir, y+(sprite_height/2)+8, obj_wall)
{
dir *= -1;
}
}
y += vsp;

//When moving across walls and near an edge
//The enemy’s sprite is checked to see if it’s 8 pixels away from changing its Y position
//If the enemy is 8 pixels away from going off a edge, the enemy will have its direction changed before they fall off
//They retain their Y position
//This code only affects obj_enemy3 that inherits obj_enemy2’s properties
//————————————//

///—–PLAYER ABILITY TO JUMP ON AND DEFEAT ENEMIES—–///
//——————————————————-//
if (place_meeting(x,y,obj_jumprefine))
{
if (obj_jumprefine.y < y-20)
{
with (obj_jumprefine) vsp = -vsp;
instance_destroy();
}
else
{
room_restart();
}
}

//When the player is touching an enemy
//The player has their Y posistion checked to see if its a set number less than the enemies own Y posistion
//When less than the enemies Y posistion, the player will bounce upwards off the enemy and kill it
//The player’s bounce is equal to how much vsp was caculated during the check
//If falling from a great height, the player will have a great bounce upwards and vice versa
//If that check isn’t met, the player is beaten by the enemy and the room restarts
//In my game, the enemies have room_restart that makes the player start the room over whenever they touch the enemies and have not jumped on top of them
//Because the Creation Code sets the checkpoint system, room_restart or scr_death will achieve the same thing, make the player spawn on an active checkpoint
//But because it restarts the room, global variables for things such as collectables and coins will not be kept intact
//You should use scr_death if you want ceartin aspects of progress to remain in memory
//——————————————————-//

Object 8/12

In obj_enemy3, put the following code into these events:

Create Event

tut-pic-5Drag and Drop in Control tab

///—–ABILITY TO NOT FALL OFF EDGES WHEN MOVING LEFT AND RIGHT—–///
//————————————————————————//
fearofheights = 1//Allows the enemy to not fall off edges
//Affects only obj_enemy3
//————————————————————————//

Object 9/12

In obj_emblem, put the following code into these events:

Collision Event with obj_jumprefine

///—–PLAYER INTERACTION WITH EMBLEM—–///
//—————————————//
instance_destroy()
//When the player touches the emblem, the emblem vanishes
//It does nothing and is there to see the basic idea of collectables in action and how they affect player behaviour
//—————————————//

Object 10/12

In obj_coin, put the following code into these events:

Collision Event with obj_jumprefine

///—–PLAYER INTERACTION WITH COIN—–///
//—————————————//
instance_destroy()
//When the player touches the coin, the coin vanishes
//It does nothing and is there to see the basic idea of collectibles in action and how they affect player behaviour
//—————————————//

Object 11/12

In obj_goal, put the following code into these events:

Collision Event with obj_jumprefine

///—–PLAYER INTERACTION WITH GOAL—–///
//—————————————//
room_goto_next()
//When touching the goal, the player is sent to the next room
//This order can be arranged simply by having rooms ordered top to bottom in the room folder
//e.g rm_initialize, rm_level1, rm_level2, rm_testing
//—————————————//

Object 12/12

In obj_checkpoint, put the following code into these events:

Create Event

///—–ESTABLISH VISUAL ELEMENTS—–///
//————————————//
image_index = 0
image_speed = 0
//image_index sets the sprite subimage drawn on the screen
//image_speed sets how quickly the sprite shows its animation frames
//In this suitation, the checkpoint will rapidly flash without its speed set to 0
//————————————//

Step Event

///—–CHECKPOINT REACTION TO PLAYER—–///
//—————————————-//
if (place_meeting(x,y,obj_jumprefine))
{
global.checkpoint = id;
global.checkpointx = x;
global.checkpointy = y;
global.checkpointR = room;
}
if (global.checkpointR == room)
{
if (global.checkpoint == id) image_index = 1; else image_index = 0;
}
//When the player touches a checkpoint
//The checkpoint sets its global variables
//== room checks for the existence of a activated checkpoint inside a room to reduce repetition
//When in existence, the specific checkpoint is identified
//the checkpoints subimage is switched so the player sees that it is working
//When not in existence or a new existence is found, the subimage for the previous existence goes back to normal
//—————————————-//

Part 4: Rooms

Finally, make 3 rooms and name them the following: rm_initialise, rm_level1, rm_level2

Room 1/3

In rm_initialise, enter Creation Code in the Settings tab and put in the following:

///—–ESTABLISHING GLOBAL SYSTEM VARIABLES—–///
//———————————————–//
global.checkpoint = noone;
global.checkpointR = 0;
global.checkpointx = 0;
global.checkpointy = 0;
room_goto_next();
//global variables are values that are always accessible to every aspect of a game, instead of normal values that only affect the object their made in
//checkpoint is the ID of a currently active checkpoint. It’s set to noone so when a checkpoint is activated, GML does not get confused over the existence of multiple checkpoints
//checkpointR is what room the player is currently in
//checkpointX is the left and right position of the checkpoint
//checkpointY is the up and down position of the checkpoint
//When a checkpoint is activated, these global variables change to match its location values
//After this system is set, the game goes straight to the first interactable room
//———————————————–//

Room 2/3

In rm_level1, go into the Views tab

Tick “Enable the use of Views”

Have View 0 selected

Tick “Visible when room starts”

Set W to 650, H to 600 in “View in room”

Set W to 1024, H to 768 in “Port on screen”

Set Hbor and Vbor to 999 and select obj_jumprefine in “Object following”

In the Settings tab, set “Speed” to 60. The size and length of the room can be changed with “Width” and “Height”

In the Objects tab, select obj_wall in “Object to add with left mouse” and place it in the room. Add and create the objects you want in the room to your heart’s content

Room 3/3

Repeat for rm_level2

Upon finishing this example your game should have pixel perfect wall collisions, movement with weight that creates a feeling of greater control, a double jump for the ground and air that resets on landing, the ability to defeat enemies by jumping on top of them and die and respawn when touching them, checkpoints that start players at their position when activated, horizontally moving platforms that carry the player with them, the ability to freely run and walk by pressing down a run key, specific platforms the player can pass through downwards and jump back onto and collectable coins and emblems for leading players like breadcrumbs and expanding into bonus content.

My example isn’t perfect however. The way horizontal control is made means that a sliding effect can happen with a very specific use of the run button and move controls. Vertical platforms have also proven in the end to be out of my abilities. If you are seeking vertical platform solutions, you will likely have to use other resources such as ZGB’s Moving Platforms.

I hope my example has helped you in your projects. Do not hesitate to point out what is wrong with my example and I hope this foundation will allow you to make the product the video game industry deserves.

Enhanced Pictures From Photoshop

Some time ago I sat down at my table, dulled by the exhaustion of a long hard day. I was granted the task of enhancing photographs with Photoshop and with inspiration taking advantage of my lack of experience, I produced these transformed creations.

Crystal Galaxy

IMG_8052 PS Keep

The Honeycomb Meteor

IMG_8090 PS

Divided from reality

IMG_8073 PS

A delicious Poison

IMG_8070 PS

 

 

Why Refined Gameplay Defeats Radical Innovations

evolution_of_pokemon_by_jaime07-d632bp6

Deviant Art 2016 ,’Evolution of Pokemon’, jamie07, April 26th 2013, Customization/Wallpaper/Minimalistic/Other, viewed 1st March 2016 http://jaime07.deviantart.com/art/Evolution-of-Pokemon-367944378

Franchises are a volatile aspect of long standing game series. The balance of convincing people into a franchises offerings and sustaining its demographic’s interest and loyalty is a trial for any game developer. The greatest video game series stick to refining their most pure mechanics and add design and features enhancing that foundation.

Sonic-the-hedgehog-forms-1920x1080-wallpaper370492

Random Wallpapers 2016, ‘Sonic The Hedgehog Forms HD Wallpaper’, 1920×1080, HD, #sonic, #hedgehog, #forms, viewed 2nd March 2016 http://randomwallpapers.net/sonic-the-hedgehog-forms_w370492

This golden rule of game development seems to have been forgotten by Sega when concerning Sonic the Hedgehog. Once the Genesis captain of a war against Mario’s Super Nintendo in the 90’s, Sonic has been making do with unnecessary innovations in his line up in recent years. From sword fighting, werewolves and guns, there isn’t any Sonic game now that doesn’t have some form of wild innovation in them. But this precisely is why he hasn’t been favoured with current critics and audiences.

sonic_the_hedgehog_3_wallpaper_by_pivotproduction2009-d5w7y2y

Deviant Art 2016, ‘Sonic the Hedgehog 3 Wallpaper’, PivotProduction2009, February 25th 2013, Fan Art/ Cartoons & Comics/ Digital/ Games, viewed 2nd March 2016 http://pivotproduction2009.deviantart.com/art/Sonic-the-Hedgehog-3-Wallpaper-356449354

In the Genesis era, Sonic was the golden example of how refinement of mechanic purity leads to a quality game. The classic trilogy is well designed speed and every game after the first improved that design with new mechanics that didn’t change the basic rules. The complete engagement and design overhauls in titles such as Black Knight and Rise of Lyric reinforce how Sega handicapped their mascot by having him do something radical, rather than improving on the great foundations of the classic trilogy.

2987335-sonic

Gamespot 2016, ‘Sonic the Hedgehog Gets New Logo, Possibly New Game for 25th Anniversary’, Mat Paget January 5th 2016, viewed 3rd of March 2016 http://www.gamespot.com/articles/sonic-the-hedgehog-gets-new-logo-possibly-new-game/1100-6433538/

Sonic still enthrals many people in the gaming landscape. It has even been demonstrated that his main point of attraction still works today, with Generations and Colours being competent because they were able to stay put with what worked and deliver a more refined experience. But any hope for Sonic to start becoming great again was quickly killed by Sega’s irrational paranoia for their mascot. The total make over of every aspect of Sonic’s established appeal and design in Rise of Lyric lead to the worst game in the series. Lyric is an especially egregious title because it is devoid of everything that people enjoy about Sonic and instead is a dull and lifeless husk of an adventure game, only meeting the bare necessity’s to be playable.

ic4J6Iq7GRJmW

APG Nation 2015, ‘DIVERSITY DOESN’T MATTER, DESPITE THE CRIES OF MEDIA CRITICS’, Jeremy Effinger October 11th 2014, viewed 3rd March 2016, http://apgnation.com/articles/2014/10/11/8373/diversity-doesnt-matter/

Gaming’s icons know that as franchises, it is a gamble to change why people invest in them. It can lead to audiences abandoning them and once they leave, it is a uphill battle to restore good will if the change leads to inferior titles. Sonic the Hedgehog has no reason to be lampooned as gaming’s dead horse that Sega madly beats out of desperation. It is in this madness, this non existent belief Sega has that their mascot must change to be relevant with audiences, that has Sonic stuck in a limbo no franchise wants to be in.

throne_of_games_by_jasinski-d5ixv4d

Deviant Art 2016, ‘Throne of Games’, jasinski, October 24th 2012, Traditional Art/Paintings/Pop Art, viewed 3rd March 2016, http://jasinski.deviantart.com/art/Throne-of-Games-334143949

Franchises such as Dragon Quest, Mario and Pokemon are praised by critics and prosper with the times in their unique ways. Most importantly, they have made the reason people invest in them more enjoyable and richer with every game. By giving new tales in a game’s universe or just improve and remove what worked and failed, they have become greater with age as the industry evolves. None of them suddenly became shooters or add mechanics at odds with their appeal and are the quintessential examples of what game franchises should strive to be.

sega_sonic_tiny_toon_shinobi_aladin_tales_golden_axe_16_bit_93907_1920x1080

Wallpaper Abyss Alpha Encoders 2016, Wallpaper Abyss / Video game/ Sega / 278245, Darkness 2013, viewed 3rd March 2016, https://wall.alphacoders.com/big.php?i=278245

With the bad taste Rise of Lyric left with Sega, it would be more productive for Sega to revisit their dormant or forgotten I.P’s for future inspiration.They have recently admitted their past mistakes. This admittance of fault shows that Sega could start following the golden rule again. If so, then all of Sonic’s previous shortcomings won’t be for nothing. The games instead, will serve as a example of how not to sustain a gaming franchise.

“Sega in the 90’s was known for its brand…we’ve lost trust, and we’re left with nothing but reputation,”

Sega games CEO Haruki Satomi, Sega to Fans: “Help Us Make Our Games Better”, Gamespot 2016, Eddie Makuch February 29th 2016, viewed 1st March 2016

Innovation is a necessary step to moving the industry forward. But very few outside of indie developers can develop great games, while illuminating the way to a new path in video game development. People still love investing in a game series that grows to become a richer and greater experience and franchises lose a wonderful aspect of themselves if they keep rewriting their purpose and qualities in a multi-billion dollar industry.

Elgato HD 60 Pro: The Definitive Capture Solution

Capture solutions are commonly in the form of a external card or software. Both have unique yet detrimental drawbacks that affect the user experience.

External cards have strict limits on bandwidth (the Mbps affecting video quality) because of their USB connections and capture just video signals. It is often a laborious process to get cards to receive both video and in video audio. Software requires significant system resources and have tendencies to create system instability.

PCI cards take the best of both external and software capture and fix the common problems they have. The Elgato HD 60 Pro is currently the only consumer product capable of 1080P 60Fps capture with an insane 60Mbps. It’s PCIx1 interface means it achieves this flawlessly, but the areas the Pro shines in are much more than simply being powerful hardware.

 

  Specifications

Interface: PCIe x1

Codec: H.264

Input: HDMI (PlayStation 4 with HDCP turned off , Xbox 360, Xbox One, Wii U, PC, IOS with a thunderbolt port and AV thunderbolt adapter)

Output: Lag Free HDMI Passthrough

Resoultions: 1080p60, 1080p30, 1080i, 720p60, 720p30, 576p, 576i, 480p

Bitrate: 60Mbps Maximum

Sound: Build in Sound (GPU dependent) 224 kbps AAC

 The spec sheet is standard for Elgato’s gaming line up but sound, interface and output are the most significant aspects of the hardware. Built in audio receiving the signal from a GPU’s audio feature fixes and simplify’s the process of recording a video’s sound. But the 60 Pro expects that the users TV/monitor has built in speakers, (not a audio jack on the TV/monitor) otherwise users cannot hear anything. Users with standard monitors can work around this using Elgato Sound Capture. This extension app that comes with Elgato’s software updates allows users to set the inputs and outputs of connected audio devices.

Elgato sound example

Capture1

PCI is the exact same interface used by a CPU and GPU, both constantly sending and receiving information across a motherboard and hard drives. The intensity of capture software paired with the fact they take vital, system sensitive resources is why they have tendencies to cause problems for users. Capture cards often need trouble shooting in order to receive both video and in video sound, while cluttering up environments with their cable connections. Because the 60 Pro is hardware dedicated solely to video capture, it requires only the minimum amount of data connection from the CPU and hard drive, which takes the strain off of both the CPU and GPU and is at pace with the two because it has direct contact with the motherboard.

Capture

Elgato Recording load at maximum recording settings

1

Elgato Idle load

Capture

Elgato recording load with CPU dependent app in the background

Output has an unexpected versatility. Because the output is almost completely absent of any latency, users can play game consoles through the Elgato’s output with no drawbacks. Sadly, getting the Elgato software to display a console preview within the interface is not a plug and play scenario like advertised on Elgato’s tutorials. In order for the user to see both the interface and console feed, the TV/monitor used requires 2 HDMI ports (Input) for it to work, a crucial detail the tutorials fail to mention. This issue is only applicable to TV/Monitors with a single HDMI input, preventing users from pairing the 60 Pro with their consoles in a optimal manner.

User experience

HD60Pro-PC-Setup-01

http://www.helping-squad.com/elgato-game-capture-hd60-pro-review-and-test/

The Elgato HD 60 Pro has fixed every problem I have ever experienced with other solutions. Getting it up and running was the most painless experience and gave me a good lesson on how video signals work. I don’t use a streaming machine and PC capture has been flawless, expect the fact that I have to set Sounds to Elgato-4 every time on my speaker less monitor. The interface is to be commended for its clean, simple yet robust design. I still have yet to find capture software that makes naming footage so easy and still have important functions be easily accessed with a mouse.

MP4 60Mbps files are absolutely gorgeous, almost true to the original signal on a screen. But the subtly noticeable compression I saw in the Witcher 3’s right side map did nothing to diminish its quality and perfect frame capture.

(You may have to click on the gear icon and set Quality to 1080p 60fps)

Capture solutions like Shadow Force, Action and Fraps are capable of 60 frame capture, but they are bound by system resources and often fail to or inconsistently hit that frame target. In exchange for having to wait for the Elgato to process the large data of a 60Mbps file before you can close it, you are guaranteed a 1080p 60fps capture with no compromises.

Elgato PC setup Interface

Elgato Software PC Setup Interface

But I did experience some issues, just like any other capture solution. But these problems were nowhere near the level of hell I experienced from the Roxio and Action. Pressing the mute button stopped an echo effect when I saw the live feed of my stream, as some of you may have seen on my Twitch Channel.

Sometimes the display would not show up but after updating the software, which is a smooth and reliable process from my experience it worked without issue. I have vivid memories of the tedious trouble shooting I went through just to get video to have an audio signal on the Roxio and have my desk space invaded by cable clutter. While it’s an annoyance to set Sounds to Elgato-4 for every recording and hear nothing, this is only because my monitor doses not have build in speakers.

I never experienced a laborious set-up process that was picky over how it wanted to receive audio and video like with the Roxio and then have Action become a broken train-wreck after it received updates. While your mileage will vary greatly because of your PC’s individual characteristics, the Elgato HD 60 Pro’s hybrid unity of capture cards and software allows for one of the most consistently functional products that only has users experiencing petite annoyances if they didn’t have the ideal input requirements from their equipment.

Footage/feature performance

2

Users wanting to get straight into streaming to Twitch and YouTube videos are right at home with Elgato’s software. But the software goes above and beyond the passable quality of most software for capture solutions. The most prominent feature of Elgato’s software is Flashback Recording. System RAM allows the software to constantly preview passing footage and by dragging the timeline to a specific place, users can record right at that specific moment or take screenshots.

4This feature is a miracle worker in multi-player or needing screenshots of a game. Users can turn flashback off if they do not want storage to be affected. Overlays are wonderfully integrated into the interface. Users can add custom overlays or edit the stock overlays to suit their tastes. They offer great benefits in creating a polished and well done video, but there is little guidance on how to effectively customize GIF’s and web pages that are much more technical that the simplicity of images and scenes.

5Audio mixing is great for normal users who want a functional way of getting their microphones to simply work, but experts will be disappointed by the hardware’s lack of audio inputs. Sadly, Elgato does not provide a way to test microphone recordings, something that can be a frustration for many. The Threshold and Attenuation can be modified and by default, other sounds are reduced automatically when using the microphone.

6

The overall package is extremely well done and a delight for people who want to enjoy their streams and recordings. People well versed in audio set-ups will be left underwhelmed by the software’s options, but basic 3.5mm mic jack and USB set-ups work wonderfully with Elgato’s products. Overlays add a effortless way to add that personal touch to streams and videos, but it’s a shame GIF’s and web pages are impractical for most users.

Conclusion   

HD60Pro-Top

Kernel Labs 2016, ‘HD60Pro-Top’, Steven Toth, viewed 25th January 2016

External and software capture solutions have issues so detrimental to the user experience, only a small handful are truly worth someone’s time and investment. Elgato’s PCI capture solution has broken down many barriers. This piece of hardware has capitalized on the interface used by CPU and GPU’s to be one of the most consistently problem free capture solutions, with its most egregious issues being little, easily fixed quirks.

The HD 60 Pro is a top of its class capture solution, costing over $269AU. It is a small number of products that live up to the saying “what you pay is what you get.” Users that want the best experience with the HD 60 Pro however are sadly going to need the following, specific features in their equipment:

A TV/Monitor with Build in Speakers

2 HDMI Input ports

While this does not ruin the user experience if consumers do not have these exact specifics on their displays, It sadly means some users cannot use the full capability of the Pro. But it does little to seriously harm the functionality and potential of the Pro. Elgato have addressed the audio input/output issue for users for standard monitors with Sound Capture, that does a fantastic job of setting up audio for footage and the users recording environment.

 With brilliant footage quality, a great in all the right places interface and robust features that can be effectively altered to the users set-up while fixing the shortcomings of common capture solutions, the Elgato HD 60 Pro is the definitive and the best capture solution of the modern video game world.

What’s great

  • Streamlined and robust software interface
  • The best capture quality that does not hog resources
  • Simple HDMI setup
  • Wonderful integration of streaming and capturing
  • Flashback Recording
  • Genuine 60Fps capture
  • Sound Capture allows any audio setup to suit the users needs 

What’s okay

  • Web page/GIF overlays need to be more straight forward
  • Audio Mix options should be expanded upon
  • Mute prevents echoes in microphones and live stream feeds
  • Basic video editor suited only for simple highlight cuts
  • signal flash when exiting the software in the PC set-up

What’s bad

  • 2 HDMI Inputs are needed for consoles to take advantage of Elgato
  • Set-up tutorials fail to mention this important detail
  • Rare occasions on specific games where the live feed won’t receive the footage’s audio signal
  • No live Stream Hotkey option 

How To Fix Connection Problem on PS Vita Content Manager Assistant

2014-11-24-163059

Entertainment Buddha 2015, ‘How to Get PS1 Game Saves From the PS Vita or PS3 Onto a PS TV’ http://www.entertainmentbuddha.com/how-to-get-ps1-game-saves-from-the-ps-vita-or-ps3-onto-a-ps-tv/

(This Guide applies to Windows 10, but will likely work on Windows 7 and 8.)

When you have installed Sony’s handy Content Manager Assistant into your computer, you may find that you can’t connect your device. The most simple and straight forward way to fix this involves changing settings in the Windows Firewall. Under normal circumstances, you shouldn’t allow a piece of software to bypass the Firewall as it could cause intrusive and serious issues with your computer.

However, Content Manager Assistant is an exception because communication and information is sent and received from your personal Vita console to your computer. It is not like most software that have their information receiving blocked because they sent to out to unknown parties. CMA (Content Manager Assistant) serves the function of easily using and transferring imagery and music for the Vita and even lets you back up game data on your computer if you don’t have a PlayStation Plus subscription.

To solve the connection problem, go to:

Control Panel, System and Security, Windows Firewall.

Then click on ‘Allow an app or feature through Windows Firewall’. Click on Change Settings and tick the box on the left for Content Manager Assistant.

After these steps have been done, open up CMA and go ‘Network Connection Settings’. Open up Content Manger on your Vita and select ‘Copy Content’. Choose the PC connection option and select WI-FI.

Click on ‘Register Device’ and make sure CMA on your PC has  ‘Connect to PS Vita System Using Network’ is ticked. Once that is done, CMA on your computer will generate a unique number that has to be typed in on your Vita. Type in the generated number and your Vita and PC are now connected.

I hope that the methods in this guide have been beneficial for you and please do not hesitate to point out an problem with these methods.

 

NekoBuro Cats Block Review (PS Vita)

B01hag2

Developer: F K Digital

Publisher: Neko Entertainment

NeoGaf 2015, ‘Nekoburo CatsBlock |OT| Bow before your (square cat) overlords’, ZeroAKA,

http://www.neogaf.com/forum/showthread.php?t=1076165

Match 3 puzzle games are a profoundly simple genre of video games. Once the core working of its gameplay is made, its up to the other elements of engagement to engross the player and keep them playing. NekoBuro’s vibrant cutesy art style paired with gameplay that effectively spices up the match 3 mechanic with challenges and power ups serves to elevate it from monotony.

The only real flaw with NekoBuro is sporadic spikes in difficulty. Even with this problem, it will be revealed if this detracts from the noteworthy flow of gameplay and appeal of its adorable misfit Square Cats.

Gameplay

2015-11-27-194425

NekoBuro’s gameplay will be familiar to anyone who has played Teteris. Each level has a unique mission where 3 matching cats have to be aligned vertically, horizontal or diagonally. To help the player in matching up three cats, a power up gauge fills when a match is made or a chain goes off.

The missions keep the player on their toes in the later stages and the beginning stages do a wonderful job at easing the player into the later challenge down the road. Moments however of missions that bring a sudden increase in difficulty is a crack in a beautifully entertaining form of gameplay. In stages such as 4 -8, 5-2 and the ruthless but appropriately brutal 5-10, the player has little space for error, reinforced by the fact squares are randomly generated and what allow the power up gauge to increase. In these stages, the player is more or less hoping they can rapidly align a combo chain within the relentless conditions of these missions or that Lady Luck shines down on them because without her, the game over screen will be practically engraved in their minds due to seeing it countless times.

But the overall experience is a smooth fun ride across a majority of the game time. While these three highlighted stages aren’t going to cause hand cramped frustration along the lines of something like Dr. Robotnik’s Mean Bean Machine(1993), they are noticeably frustrating by design and easily seen. They are simply however, small valleys in a enjoyable roller coaster of simple fun.

Presentation

2015-12-08-145255

While the match 3 gameplay proves to be entertaining, the heart and soul of NekoBuro lies in every inch of its presentation. The colourful art style paired with a peaceful cheery soundtrack invokes a tone and mood of a relaxed, joyful peace of mind. This is reflected in the design and personalities of the Square Cats.

The delightfully chaotic trouble they cause for their owner as they bring their group back together helps motivate the player to finish the missions. The appeal of the Square Cats is reinforced by the toys the player obtains from completing missions, allowing them to cause hilarious destruction to the cat’s home and have playful fun with them too. These elements of NekoBuro’s presentation come together to make a game that anyone can enjoy.

Value

2015-11-16-212212

NekoBuro has the unfortunate downside of being short to finish. That does not however ruin it’s incredibly sweet run time. The missions provide a varied and consistent gameplay experience with rare but overly difficult missions cracking at a standard yet flawless experience. The Square Cats are what make NekoBuro, having the right amount of cuteness without coming off as detestably annoying. Players looking for a fun casual experience with a satisfying feeling of accomplishment should try out this impeccably bare bones yet fulfilling tale of box shaped cats.