top of page

Re-Wrench

Specifications

  • Third project

  • Genre: Shoot 'Em Up

  • Made in TGA2D (in-house school engine)

  • 8 weeks half speed

My Contributions

  • Spritesheet animation

  • Gameplay (player, pickups, bullets)

  • Audio

  • Caption system

Spritesheet animation

This was our first project outside Unity. We were provided with the TGA2D in-house engine by the school, but it only had basic functionalities. It could render sprites, but not animate them, so we needed to implement some system for 2D-animation.

From our programming courses, there was something similar to an implementation of spritesheet animation, but it did require quite a bit of work to get running in our version of the engine. I managed to make it work, and it was my implementation of spritesheet animation that we used through-out the project. 

During the course of this work, I had to work closely with animators and artists, because we needed to settle on some sort of pipeline for implementing animations. How should they export their spritesheets so that my code could import and play them properly? How should the interface for programmers look, if they wanted to load and play a spritesheet animation?

P3_anim.gif

Enemies and player animated using spritesheets. 

Gameplay

I did quite a few contributions for various gameplay elements, too. Mostly the player, which I was involved with from the very start. It was natural that I would be involved with the player since the player needed to be animated, and to change animations when moving different directions, shooting, or taking damage. 

I worked on bullets and pickups, too. They were a bit forgotten early on, but since they had to do with the player, it made sense I start working on that after basic player functionality had been implemented. 

The implementation of bullets and pickups were not, themselves, all that complicated and time consuming. But there was a lot of gameplay balance to consider there. How much damage should they do, how fast do the bullets travel, how big are they? I also had to make sure the weapons were balanced, that each of the three weapons the player could use would be useful in some unique sense, since the player had access to all the weapons from the start. 

P3_bullets.gif

Re-Wrench featured three different weapons. 

Audio

We do not have any audio designers at The Game Assembly, so it always falls to someone, usually a programmer, to get some kind of audio into the game. Now, I am not an audio designer, nor have any previous experience of such work, but I am definitely of the opinion that the sound design of a game is very important! In my opinion the most important source of game juice and feedback. 

It was certainly more tricky than I suspected! Mostly with things like mixing of volumes, so sounds would not become annoyingly loud, or the music to be overpowering the game audio. I did not create any of the sounds for the game, but used free assets online that I also tweaked and distorted to make it fit the game more. 

There was a little bit of implementation to attend to, in the end. There was a basic audio class in the TGA2D engine, but lacked some functionalities that we needed, like stopping sound and figuring out if some audio was currently playing or not. 

Caption system

Nearing the end of the project, we needed to make a push for the scripted event to happen. This concerned some special pickups, and we needed to collect three of them to trigger the event. So some sort of visual on-screen feedback needed to communicate this to the player. 

So I created the Caption class. It is really just a class that wraps a sprite and a timer, and an interface so the programmer can easily just input a sprite, a time, and a position. After all, the ability to be able to show a sprite temporarily on the screen should be quite useful to have in a 2D game. 

We also used the Caption class to do something unexpected: the splash screen. Essentially, the splash screen is a black screen, that need to render different 2D graphics for a fixed amount of time. The Caption class was no longer a class used only for captions, but the name remained despite it's functionality being broader!

P3_caption.gif

The Caption system can be used to communicate statuses or events to the player. 

Team

We were Tomat Entertainment.

​

Programmers

Filip Nygren, Niklas Jakobsen, Alexander Rosendahl, Henrik Jangefelt Nilsson, Oscar Kempe Söderholm

Level Designers

Vanessa Grundström, Aleksander Bjelovuk

Graphical Artists

Linus Härstedt, Falke Persson, Martin Åkesson, Pernilla Sonne

Animators

Mattias Ohlsson, Jack Thell Malmberg

bottom of page