Mau Lundell
Technical Designer


About:
Play as the adventurer that has been tasked to find the holy artifact to save the town from imminent peril. All you have with you is your sword, bow and your mighty courage.
Details:
Roles:
Gameplay Designer, Programmer, 2D Artist
Time:
About 8 Weeks of allotted work time
September 2018 - April 2019 (2 Lessons a week)
Team size:
3 (3 Designers)
Tools:
Gamemaker Studio 2, Github, Trello, Discord
Workspace:
Offline (Mediagymnasiet Nacka Strand)
My Contributions





Gameplay Design
Prototyping
Programming
Art
Core Gameplay
Level Design
Upgrade Design
Boss Design
Gameplay Blockout
Gameplay Iteration
Level Blockout
Player Movement
Player Abilities
Bosses
Dialog
Enemy Behavior
Game Controlling
Tileset
Poster
Miscellaneous Assets
Gameplay Conception
The Adventurer!
The main goal we presented to ourselves was to create a game that encourages exploration and a sense of action.
We did this by creating the theme of an adventurer that has a lot of different tools under his belt. We designed the items so that they could be used both in combat and when exploring to create more emergent systems.

This is the Adventurer

The first design on Paper

This is the Adventurer

Find your Upgrades
You can acquire some abilities throughout your adventure. The lot includes:
Sword - Deal damage and destroy objects
in melee range.
Bow - Shoot a magical arrow to deal damage or
hit buttons from afar.
Magical boots - Dash a small distance over pits.
Ice rod - Freezes water and enemies for a short time.
Hookshot - Hooks to pillars and pokes enemies.
Creating bosses
Starting with pen and paper we designed a few different bosses to have in the game. We thought about the phase progression and how to create an interesting layout where the player could use their abilities in a compelling fashion.
Because of some complications we were only able to put one of the bosses into the game.

This is the concept for the boss we used. It was the last boss we made. To defeat it you use the Ice rod.

This was the first one we made. To beat it you needed to use the Dash ability.

This was the third boss. It was scrapped first in favor for boss #4 since we couldn't code it. It was planned to use the Ice rod to defeat it.

This is the concept for the boss we used. It was the last boss we made. To defeat it you use the Ice rod.

This shows the gameplay Level that is places before you fight the Boss.

This shows The whole games levels.

This shows the level design for all the paths, even those which got scrapped.

This shows the gameplay Level that is places before you fight the Boss.
Dynamic Levels
Since we wanted the player to be able to choose which path to take I had the opportunity to make each path dynamic.
I did this by creating areas that could only be accessed with the power-up from another area. This would encourage exploration and prolong the players' interest in the game.
Gamemaker Coding
Player Coding
State Machine
I made my own state machine for the player scripts. It worked by Executing the Variable "State" each frame, and changing the "State" variable when wanting to change behavior.
This made it easy to create additional states so that we as designers could have a lot of freedom when we wanted to add additional abilities.



Movement
The movement was based on two variables, the input in the X-axis and Y-axis. By getting these two I could calculate the direction the player should be moving and applying the speed to that.
Attacks and Abilities
All the attacks and abilities use pretty much the same structure. It starts off by activating the correct state and making sure that it will return to the "move" state afterward.
Using a modular structure like this saved us a lot of time from programming and let us focus on the design of the action.

All the attacks and abilities that affect units follows the same structure:
1. Spawn object in correct location
2. Make sure it doesn't hit player (By sending "creator")
Structure:

3. Rotate and Move based upon players rotation and do it's thing
And

Since every ability except the Dash worked with this formula it was very easy to reuse the code.
Boss Coding

Understanding someones code
I had to finish the boss code that my teammate had worked on because of some complications. This was the first time I really had to understand and work with someone else's code.
The state in which I got the boss in was that it was moving up and down, but not doing any attacks. It also didn't have any phases in it yet.
Putting in Phases and Attacks
Using the movement code I could identify when it was in the air and when it landed so that I could make it hittable and if it should do an attack. It was hard, but I managed to finalize the boss.
This experience has taught me ways to read and identify parts of someone else's code which is very beneficial whenever I want to try to use someone else's code for things like prototyping or balancing.

General Other Scripts
I also programmed a lot of smaller Objects and functions for the game. Press the button to see some more.

Dialog
I programmed the dialog code with the help of one of my teammates. After he made the base of it I put it in practical use everywhere in the game.
Enemies
Similarly to the player script I also used the same kind of state machine for how the enemies' movement would work.
Switching between Idle, Walking and Chasing states made for easy to understand but still gives a bit of depth to them.

2D Artwork
I also created a lot of the Sprites and additional artwork for the game since we did not have any artists.
Tileset
I worked on the tileset for the game. I tried to make each tile as modular as possible so that It could fit as many areas as possible.
By creating the tileset myself I learned a lot about how to make pieces modular so that as a level designer you have the freedom to test and to make it easy to set dress.



Poster and Logo
The poster was created with the idea of "An epic battle awaits". And such I took inspiration from similar posters, like Legend of Zelda: Breath of the wilds.
I wanted to have a simple logo so we made one with the character's face. Similar to the poster I only used existing assets to make it fit the theme and be easy to make.
What I'm proud of
Programming
I had done smaller projects before this in Gamemaker where I had to program, but nothing of this scale. I think the end product of my programming turned out great. I was also really happy that I was able to read and use someone else's code in the way I did.



Concept to Complete product
One thing I've definitely learned from this is that if we had worked and finished each area with art and all in one go.
This would give us time to complete more content for the game. So I’ve learned that the way you approach production can heavily impact the end product. But even with that small hiccup we managed to create something great.
Artwork
My main objective while creating the art was that they would fit with the characters and structures that my teammates were creating. I feel like I was able to do it for the most part but if I had to do it again I would have definitely looked more into colors since sometimes certain objects blend into the background.
