Description

In DAE we also had a course called Game Projects. In this course we were expected to create a full vertical-slice of our concept. There were no strict rules for this course, except for the fact that the theme of the game had to be either pvp or co-op couch-play.
Our team existed out of 3 programmers and 3 artists, I listed all of us at the bottom of this page.

In Not For Sale you have to race each other to objectives throughout the level, but there is a twist. The camera only focuses on the player in first, whilst all other players will need to try and stay in the viewport. Whenever a player goes off-screen, this player will die and the last man standing wins the round.
If you want to learn a little bit more about the game, you can always check out our itch.io page.

The project was conducted over the duration of 4 phases.
Each week every team member was required to work 10 hours.
This brought us to a total of 100 hours per person over the timespan of 1 semester.
- Prototyping (2 Weeks)
- Production sprint 1 (3 weeks)
- Production Sprint 2 (3 weeks)
- Polish (2 weeks)

Engine: Unity 2021.2.12f1

Gameplay Trailer

My Contributions

I was also responsible for the camera behaviour in the main menu.
The purpose of this camera was to have all players visible at all times.
The way I ended up doing this was using the Cinemachine plugin for Unity. The camera has a targetgroup of all players, together with the center of the world. This center point has a bigger weight value than the players. Making the camera always focus the center point a little bit more.

Camera Behaviour

The last part I worked on for this project is everything related to the User Interface. The biggest part being the Character Selector.
To handle the different controllers we ended up using Unity’s new input system.

Character Selector

One of the most uniques part of Not For Sale is the dynamic viewport. The viewport will shrink in a random direction after a randomly chosen interval between a min and a max value.
It will however never use the same direction twice in a row.
The size by which the viewport gets smaller is also a random value between a min and a max percentage.

Dynamic Viewport

In Not For Sale we use Dijkstra’s algorithm to calculate the shortest paths to and from each objective. As we all know, this algorithm can become quite heavy when you’re working with a lot of nodes.
To prevent the game from freezing whilst this is being calculated, we are executing this algorithm asynchronously.
Side note: These calculations only happen once at startup.

Async Pathfinding

Most Interesting CodeSnippets

Team

  • Programmer - Senne De Vocht

  • Programmer - Gillian Assi

  • Programmer - Sasha Vigneron

  • Artist - Stef Bracke

  • Artist - Kobie Caestecker

  • Artist - Christiane Schaper

Previous
Previous

Procedural Level Design Using Graph Grammars

Next
Next

PeakAEngine