Ludwig Temmel

Terror & T-sprit

A First Person Shooter game in Unity that uses 3D-scanned enemies and raycast for hit-detection.

titel

Project Overview

Terror & T-sprit is an FPS game that my friend and I developed. The focus is on humor and creating a fun gaming experience with interesting mechanics. One of the most interesting aspects is that we scanned ourselves to use as 3D models in the game.

The game is about surviving as long as possible against the enemies. The player takes damage by enemies walking into them, and you replenish health by picking up T-sprit. However, this has the consequence that the player goes almost blind for a few seconds. The assets used for the game world were free in the Unity asset library.

The game's main menu

The game's main menu

Core Game Mechanics

  • Shooting system with raycasting and precise hitboxes
  • Headshot mechanic with increased damage for precision shots
  • Enemy behavior with Unity's NavMesh system
  • Health system with unique T-sprit mechanic that affects gameplay
Game mechanics demonstration

Demonstration of the shooting mechanics

Technical Implementation

3D Scanning and Modeling

The process of creating the game's enemies started with 3D scanning via Polycam. This tool enabled fast and efficient scanning with the help of a mobile phone. After scanning, extensive processing in Blender was required to optimize the models for use in the game engine. The model is not perfect and there are opportunities for improvement in the future, but we felt it was suitable for the game.

Original 3D scan

Original 3D scan from Polycam

Optimized 3D model

Optimized model after Blender processing

Shooting Mechanics and Hitbox System

The implementation of the shooting mechanics required careful programming to ensure precision and game balance. The system uses raycasting to detect hits and includes separate hitboxes for different body parts.

code for raycast

Visualization of the hitbox system and raycast implementation

AI and Pathfinding

Unity's NavMesh system was used to implement the enemies' movement patterns. The system enables intelligent navigation such as following the player and avoiding obstacles.

NavMesh visualization

Visualization of the NavMesh system. The blue surface is where the enemies can move.

Development Process

Challenges and Solutions

3D Modeling

One of the biggest challenges was processing the scanned 3D models. The process required careful optimization in Blender to remove excess material. We were somewhat new to using Blender.

Skeleton on 3D Models

Since we wanted animations on our models, we needed to add joints to them. Then we had to add animations that use these joints.

Balanced Gameplay Experience

Although the mechanics themselves are relatively simple, we needed to balance the difficulty by having appropriate intervals for spawning new enemies. This could not just be done through code but required testing and experimentation.