PortfolioExtraDimm1.png
Logo.png

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,
Lead 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.

Final Design
Final Design

This is the Adventurer

First Deisgn
First Deisgn

The first design on Paper

Final Design
Final Design

This is the Adventurer

1/2

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.

Boss #4 - The one we used
Boss #4 - The one we used

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

Boss #1
Boss #1

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

Boss #3
Boss #3

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.

Boss #4 - The one we used
Boss #4 - The one we used

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

1/4
The Gameplay Level
The Gameplay Level

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

ActualGame
ActualGame

This shows The whole games levels.

The whole game in one picture
The whole game in one picture

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

The Gameplay Level
The Gameplay Level

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

1/4

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 prolonged 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.

 

Input Script

Checks for input and calculates the X-axis and Y-axis

Calculates the Direction based upon X-axis and Y-axis and applies the Speed to that to move the player character

Movement Script

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")

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

Structure:

Ability Scripts.png

And

Ability Rotation.png

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.

LoggaRundCenter.png

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.

Programming.png

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.

Town.png