Documentation + User Guide


Welcome to the final(for now) devlog of Marble Machines! over the course of this semester I have thoroughly enjoyed working on this project and overall I am happy with the final result I have produced. 

How does the game compare to the original concept?

Originally I aimed to produce a game that gave the player a sense of achievement and allowed them to flex they problem solving muscles to solve each level. During early development I had a lot of work cut out for me and at times wondered if I was in over my head, however after the midway mark I began to pickup steam and became more efficient in game development, after my art update devlog I really began to see that the game was coming together nicely and was very proud of what I had made. 

Originally I said that the key mechanic was gravity and that the player would need to use various tools to guide a group of marbles to their home, I believe that the final game achieves this feeling very well as testing has gone on  a lot of people enjoyed working on the different levels and problems to solve.

I originally set out to include a wider range of tools for the player to build that would include the addition of winding bat, marble cannon and marble re-director, along with additional obstacles that would include laser fields, windmill, anti velocity field and the use of moving platforms and walls. 

However I soon realized that I would not have time to implement all the art and code required to include these in the build. And in implementing these extras I would have reduced the final quality of the assets I decided to keep in, this allowed me to spend more time, fine tuning the current tools and interactions within the mechanics.

 I did however manage to successfully implement all the features and additions I needed for the base game to be enjoyable and functional, please read the feature list below in order to see all implemented features in the game. Overall I believe that I have produced a final game that is an accurate representation of what I originally set out to make in my first concept devlog.

Feature List

  • Title screen
    • Level selection.
    • Audio control.
  • Audio
    • Custom background music.
    • Sound effects.
    • Volume control.
    • Mute option.
    • Sound management system.
  • Level management system
    • Multiple levels.
    • Next level/current level functionality.
    • Level score tracking.
    • Level lock/unlocking.
    • Level progression.
    • New game on first load.
  • Game Manager
    • Custom level settings.
    • Reward system.
    • Level complete pop-up.
    • Marble spawner and tracker.
    • Automatic marble reset feature.
  • Building Manager
    • Create, move and delete tools.
    • Building button functionality.
    • Multiple tools implemented.
  • User Interface
    • Level selection.
    • Audio control.
    • Restart level.
    • Game navigation.
    • Level complete menu pop-up with next level and restart level functionality.
    • Auto generated UI for build bar and level selection menu.
    • Level hints.
    • Tool bin.
    • Budget indicator.
  • Tools
    • Normal bounce.
    • Super bounce.
    • Zone boost.
    • Bottle shooter.
    • Gravity reverser.
    • Magnetize positive.
    • Magnetize negative.
  • Interactable
    • Destructible walls.
    • Sticky blocks.
    • Spike blocks.
    • Portals.
    • End level portal.
  • Art
    • Character art.
    • Environment art.
    • Main menu art.
    • UI art.

Asset List

Sprites

Description

Scripts

Description

Marble

Graphic

GameManager

Manages time, gameplay mechanics such as start level, end level and keeps track of player score and also built objects.

Normal bounce

Graphic

NewGameManager

Iteratively sets all required variables to their original values allowing for a new game on loading the game for the first time.

Super bounce

Graphic

ScoringSystem

Plays sound and manages the event of marble hitting the end position.

Gravity reverser

Graphic

AudioManager

Manages all audio for the game includes control for muting audio, changing volume and playing sound clips.

Bottle shooter

Graphic

AudioMenu

Manages the audio menu responsible for changing the sound settings. holds array of sound objects to instantiate audio source from.

Milk bottles

Graphic

Sound

Custom class for adding new component to audio manager and applying the correct sound settings to it.

Wall tile set

Tile set for making walls

BuildButton

Locates the correct sprite asset to display, contains the build tool functionality.

Destructible wall

Unique wall graphic

BuildingManager

Automatically generates user interface for building tools and assigns the correct values to instantiated build button object.

Magnetize positive and negative

Graphic

MoveObjectBehaviour

Manages the movement of build tool on selection, also managed the raycast system for selecting tools and also the place object functionality.

Sticky block tile set

Tile set for making sticky walls/platforms

DestroyMarbleOnTrigger

Manages marbles being destroyed when hitting a dangerous object.

Background tile

Graphic tile to use in the background of each level

MarbleBehaviour

Manages all behavior of the marbles including particle effects on collision, and behaviors for reaching the end and also dying.

Spike block tile set

Tile set for making damage blocks

MarbleCounter

Manages the marble UI indicator allowing user to keep track of the amount of marbles that reached their goal.

Marble spawner

Graphic

MarbleSpawner

Manages the spawning of marbles each level, also manages the reset marble functionality.

Star graphic

Graphic

LevelSelectButton

Class for managing the individual level select buttons, holds functionality of lock and unlock mechanics, and also loading levels.

Game title logo

Game logo, used in promotional material and for main menu

SpawnParticleOnEvent

Manages particles being instantiated on different events.

Tool bin icon

Icon to destroy a tool

ShowWhileBuilding

Displays the tool bin whenever moving a tool.

User Interface

DestroyOnCollision

Manages the destructible objects for levels, allows for them to be destroyed and also reset on level reset.

Restart buttons

UI button

DestructableManager

Holds code for level reset functionality for destructible objects.

Exit button

UI button

MainMenuManager

Manages the main menu, automatically adds the level select buttons to the level select panel, and manages the new game sequence.

Building bar

UI bar panel holding building buttons

StickyBlock

Manages sticky block behavior on collision with marbles.

Build button

UI button

LevelBudget

Manages the level budget bar.

Level select button

UI button

LevelPassWindow

Manages the star rating system and displays correct star amount depending on the success of the level.

Level pass window

UI panel containing buttons

Level

Custom scriptable object containing data related to levels including name and a variety of unique level settings.

Budget bar

UI panel

LevelManager

Custom scriptable object containing array of level objects. Responsible for all level management functionality eg: next level, load level, new game, restart level and main menu.

Sound

LevelHint

Control showing and hiding level tip.

Game music loop

Game theme music loop

BuildBarHide

Controls showing and hiding build bar.

Marble bounce

Sound effect

Marble pass

Sound effect

Marble death

Sound effect

Extras

Marble death particle

Death particle spawned on death of a marble

Outsourced Assets - Below were not made by me.

Particles by Jean Moreno (JMO) - Cartoon FX Free http://www.jeanmoreno.com/ Particle pack can be found here.

Font by Milena B Design - Fredoka One https://www.milenabdesign.com/ 

Assets used

Asset used

Marble goal particle

Fredoke One-Font

Marble bounce particle

Magnetize effect particle

Portal particle

Game Testing Session

Testing for the game was centered around some key areas, these areas are gameplay, enjoyability, art, sound and bug testing. After this testing session I have a greater understanding of peoples first impression while playing Marble Machines, during testing I wanted specifically receive feedback in the areas listed, I believe the feedback received was incredibly useful for me to improve the game for my final submission. Although I would have liked to receive more feedback as the testing pool was quiet low, I think this small testing pool is still valuable.

From the small group of testers I soon realized that the difficulty of the game was preventing a lot of player from experiencing more mechanics, in hindsight I should have included a unlock all button for every level so that people didn't need to progress one by one. Having said that though. 40% of players managed to reach level 4 and 20% managed to reach level 8, however unfortunately 40% of player never managed to progress past level 1.

From the gameplay and playability aspect of the game though players noted that every player understood what their aim in each level was and 60% of the players wanted to continue playing the game with the other 40% being indifferent. This is a good sign that the game provides enough of a rewarding experience to keep players interested.

One major piece of feedback is that 100% of players noted the game was a bit too hard, which is a good indication of modifying the difficulty level for future builds. However 75% of players agreed that the difficulty of the game progressed and a good pace allowing for the difficulty to ramp up the further they progressed which is a good sign of the levels been tuned correctly.

Fortunately 100% of players agreed that each level was fun and exciting which is excellent feedback.

I also noticed that when asked about the mechanics of the game, on average destructible walls and sticky blocks received the lowest score of enjoyability, this will definitely give me motivation to work more on these mechanic to improve them, however all other mechanics received great marks which indicated to me that the the majority of the game was enjoyable for people.

Overall the art for the game received great feedback with the lowest rating being 3/5 and the majority rating the art a 5/5.

When asked about the audio of the game, 80% of players agreed that the audio added positively to the experience of the game and 20% of others said that they were indifferent.

Fortunately there were no major bugs found however 60% of players did note that there were minor bugs that didn't effect the experience of the game and 40% said that their were no bugs, most commonly that the tools could be built behind the build bar and there would be no way of removing the tool.

When asked what the player would change about the game players indicated that they would like to have a clear all button, indicate the level number on each level and a hint suggestion per level to allow the player to be introduced to new mechanics as some players had difficulty figuring out how to use the bottle shooter.

Overall the feedback received although short, has been extremely valuable for me in including some final changed to the game. 

Feedback implemented based on feedback is explained in this Devlog, however a brief summary includes:

  • Tweaked UI for more clarity.
  • Build bar now has the ability of hiding.
  • Players now have a clear all button allowing them to reset the level.
  • Each level has a hint you can see by clicking the hint button located on the top left.
  • New sound effects added.

Marble Machines User Guide

Introduction

Marble Machines is a simple yet satisfying building and simulation puzzle game, your goal is build intricate and exciting machines that help a group of marbles find their home, through seemingly impossible and sometimes even dangerous levels.

Marble Machines is a side on 2D puzzle game using simulated physics, the key mechanic is gravity, each level has a beginning and an end, its your job as the player to guide the marbles to their goal while making sure each marble makes it home safely.  Each level has unique and seemingly impossible problems the player must solve in order to help the marbles on their way, as the player you have an option to build from a set of unique and interesting tools.

Marble Machines is ideal for all ages, targeted towards players with a passion for solving difficult problems with a satisfying conclusion to their hard work, the game is slow paced and has no barrier for entry making it ideal for kids, adults or even senior players.

Mechanics

In order to progress through a level you must successfully guide all three marbles to the end position, indicated by the golden aura located in each level.


To achieve this goal you must use the Tools from the tool bar located on the bottom left.


After completing a level, the next level will be unlocked. Each level will hold the score you achieved while finishing it.

You will receive the 3 star rating if you successfully guide all the marbles to their home using the amount or less of tools indicated on the budget indicator.

If a marble falls or touches dangerous areas it will be destroyed.

Destructible objects can be destroyed using the bottle shooter tool.


Sticky blocks will slow down the marbles until they barely move, in most cases it is better to avoid touching these.


Projectiles shot from bottle shooters can interact with the environment too, keep this in mind when you might need to re use a projectile to destroy another block.


Tools

Normal bounce - Bounces the marbles in a direction that the platform is facing.


Super bounce - Bounces the marbles in a direction that the platform is facing, but more powerful.


Zone boost - Applies force to the marbles in the direction the zone boost is facing, indicated by the arrows.


Bottle shooter - When a marble passes in front, it will trigger the bottle shooter to shoot a projectile.


Gravity reverser - When a marble touches this, it will reverser the gravity on that marble.


Magnetize positive - Marbles are attracted to this tool like metal to a magnet.


Magnetize negative - Marbles are repelled by this too, can be used to bounce marbles in new direction if used correctly.


Controls

Left Click-to place a tool.

Scroll wheel-to rotate a tool.

Remove a tool-by clicking on it, then you should see a bin icon pop up in the top left corner, drag the selected tool here to remove it.


UI

If you would like to reset all tools, you can do so by clicking the clear all button located on the bottom right. Located towards the top right is the hint button, simply click this to preview a hint for solving the level. Clicking the top right red x button will return you to the main menu.

To control the audio simply use the slider located on the main menu, mute button will mute the game music.


Leave a comment

Log in with itch.io to leave a comment.