About this blog
A journey in making a videogame of a game about Squares and LaserZ
Entries in this blog
Devlog entry, January 12: Creating the new UI
We start this devlog by reviewing the objectives set on the previous one:SquaserZ Devlog #1
[REVISION] Objective 1 - Implement a Objective-Based System
The objective system mentioned in the previous devlog was designed as a mean to add more value to the game. To do so, the player is always presented with a set of 3 different objectives to complete over the course of one single round or multiple rounds.
In order to do this, we have to develop a system that:
o Creates list with all the objectives.
o Ensure that each entry to the list has a list of atributes, such as "Objective Name", "Objective Level", "Variable Values to Level Up", "Text to Display".
o From the list of objectives, choose 3.
o Display each objective text on the "Main Menu" and "Retry Menu"
o For each objective, check if we have completed it. If so, give feedback to the player.
At this moment, without the UI redesign, the objectives are displayed as exemplefied on the image:
I honestly had some trouble designing the "feedback" to give to the player. At first, I tried to develop something with the "lightning" I added to the "SPECIAL ROUND" announcement. However, I was advised by a friend that this would distract the player from the game, possibly leading to its death, and hence causing frustation.
So, I tried to search for a new way of showing the completion of the objectives, and I turned to one of my sources of inspiration: "Race to The Sun", specifically the way it shows that a stage has been completed.
However, to enhance this feedback, since the game can have multiple effects displaying at the same time, I decided to add a short "Flash" on the screen before anouncing the completion of the objective.
The result can be seen here:
After the objective is completed, the "level" of the objective is updated, and a new "objective variable value" is presented.
Objective 2 - Creating a new UI for the game and enhancing the objective system.
After reviewing the UI of other mobile games and pc games, I have decided to create two UI menus: the "Main Menu" and the "Retry Menu".
The following information should be accessible from the menus:
o Turning the Sound on or off.
o Turning the Music on or off.
o Current Objectives
o Instruction to play the game.
o Check the Completed Objectives (possibly in another screen).
o Access a "Reward Menu" (possibly in another screen).
o Share the highscore.
Furthermore, the Mission/Objective system needs to be reviewed. Specifically:
o The objectives values must be balanced.
o When an objective is completed, there should be some feedback on the "Retry Menu" that this has happened.
o When an objective is completed, it should be replaced with another objective from the same "level", if possible.
o Implement a "XP System" for the player. Each objective earns X amount of XP. When leveling up the player is rewarded with something.
Issues and Questions
The "XP System" question was removed from the issues and question, since it will now be implemented in the game and tested to see if it fits the concept. However, the other issues and questions remain the same.
o [Question] Should a "pause" button be placed on the game? I'm having a hard time implementing this, since the player could want to go to that particular part of the screen.
o [Possible Solution] The "pause" button could be replaced by the "back" key on mobile phones and "ESC" on a computer
o [Question] Are "collectibles" worthwhile implementing on this game?
o [Possible Solution] If the objective-based system is developed, they could only be placed when the objective in question is active
o [Issue] At the moment, it is possible for the player to get stuck within the pieces of geometry left by the explosions. I still do not have a solution for this.
Devlog entry - END
Introduction Note: This post is divided in two sections: a brief presentation of the game, and the first devlog entry. Additionally, I post here also the current playable build of the project, for both Windows and Android systems.
After failed attempts at starting a game project, due to the sheer amount of crazy ideas I tend to have, I tried to hear all the words the wise say and: try to keep it simple.
And as such, I have embarked in a journey to make my first project: SquaserZ.
SquaserZ is a one-goal game: survive as long as you can, avoiding everything red. The player is always moving, following a certain direction, and the only way to control it, is to stop it and move along a new path.
In your journey, you will have some cruel and outlandish obstacles, such as bombs, missiles, twin-evil-brothers and of course, laserz.
The cruel nature of the lasers.
The even crueler nature of the bombs.
Each round consists in surviving a specific obstacle, having some time to "breath" between levels. However, as we progress the game, there comes a time where a "Special Round" appears and a barrage of non-stopping obstacles come to try to kill us.
The special round.
After the introduction of the game (you can read more here: https://sardinecorp.wordpress.com/2017/01/06/the-problem-with-squares-and-laserz/), I post here my first devlog entry.
Devlog entry, #1: Implementing further systems
Reflecting upon the decisions I make on this project can be hard.
On one side, I want it to be as simple as possible, to mark the first step in my path in game development. On the other hand, I want to make the best that I can, within my current abilities.
This is to say that, even though I had some feedback that the game is "good for release", I want to add a final touch: a simple objective-based system similar to the ones seen in Race to the Sun.
Objective 1 - Implement a Objective-Based System
Before each round, the player is presented with a set of 3 objectives. If he want, he can try to complete each of those objectives.
When an objective is completed, a message appears on screen to give feedback to the player
The objectives have different levels. In the first level we are asked to "run" for 100 px, the next could be 500, for eg.
As such, I have created the following list of objectives types to include in the game:
"Run" for X pixels
"Run" for X pixels without dying.
Reach level X.
Get killed by enemy X.
Complete a "Special Round"
Stay X seconds on the same spot.
Collect X objects.
Touch the walls X times
Touch a corner of the screen X times.
Do X impulses on one round.
Looking at the list, it seems that the objectives are "cliche", however I'm having a hard time devising more objectives with the current constraints of the game.
Issues and Questions
At the moment, I'm having some issues devising a UI for this game. At the same time, I'm having some doubts in whether I should implement a collectible system to unlock some skins/whatever. The following list gives a summary of the current Issues and Questions:
[Question] Should a "pause" button be placed on the game? I'm having a hard time implementing this, since the player could want to go to that particular part of the screen
[Possible Solution] The "pause" button could be replaced by the "back" key on mobile phones and "ESC" on a computer
[Question] Are "collectibles" worthwhile implementing on this game?
[Possible Solution] If the objective-based system is developed, they could only be placed when the objective in question is active
[Question] What is the main goal of the objective-based system?
[Possible Solution] Each objective could give X amount of XP in order to level up. Each level could unlock either a skin or something else, to be debated.
[Issue] At the moment, it is possible for the player to get stuck within the pieces of geometry left by the explosions. I still do not have a solution for this.
Looking at the work ahead, I am curious to see how my programming skills will evolve.
Devlog entry - END
Starting from this devlog, I will update the current situation of the game, and check if the objectives were completed or not. Furthermore, I will analyse in more detail the issues and questions and see if I could find a feasible solution for them.
Additionally, if possible, I would like to ask a question: am I proceeding correctly with this type of devlog? Or should I develop the issues more thoroughly? (I am using this devlog in order to improve myself and the game too, being this my main personal devlog).