Terror & T-sprit
A First Person Shooter game in Unity that uses 3D-scanned enemies and raycast for hit-detection.
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
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
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 from Polycam
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.
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.
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.