Description
🔫 Rune Descent - Build Your Own Classic-Style FPS
Rune Descent is a complete, classic-style first-person shooter developed as a full Unity project for Android. Inspired by the retro FPS experience, it combines fast-paced combat, challenging monsters, multiple weapons, interactive environments, and a structured single-player campaign.
The project includes 40 single-player levels, 8 weapons, 15 monster types, and 2 bosses. Players explore interconnected environments, unlock doors, activate mechanisms, discover secrets, collect power-ups, and battle enemies across a series of challenging stages.
Built with Unity 2022.3 LTS, Rune Descent includes readable, commented C# source code, custom shaders, runtime model and sprite loaders, data-driven level files, and tools for importing content and building Android releases.
The project is designed for developers who want to customize an existing FPS rather than build every system from scratch. You can modify weapons, monsters, levels, touch controls, graphics, sounds, and other gameplay elements to create your own mobile shooter.
Unlike templates that include preconfigured advertising systems, Rune Descent comes with no advertising SDK, no analytics, and no INTERNET permission. This provides a clean starting point for developers who want to integrate their own monetization or keep the game entirely offline.
🔫 Complete First-Person Shooter Gameplay
Rune Descent delivers a complete single-player FPS experience with classic combat mechanics, multiple weapon types, enemy AI, and an extensive collection of interactive level elements.
Core Gameplay
- Explore detailed FPS environments.
- Fight different types of monsters.
- Switch between eight weapons.
- Collect ammunition, health, armour, and power-ups.
- Open locked doors and activate mechanisms.
- Discover secrets and hidden areas.
- Defeat powerful bosses.
- Progress through the campaign and its bonus content.
The project includes a hub level with difficulty selection and episode gates, providing a structured way to access the campaign.
🗺️ 40 Single-Player Levels
The game includes 40 levels organized into four episodes, a nine-level bonus episode, and a final boss level, along with a hub level.
Players can choose between three difficulty settings:
- Easy
- Normal
- Hard
The project also supports continuing from the last level reached, making it easier to resume gameplay between sessions.
Level Features
- Episode-based progression
- Hub level with difficulty selection
- Episode gates
- Bonus episode
- Final boss encounter
- Secrets and collectibles
- Intermission statistics for kills, secrets, and completion time
🔥 Eight Weapons
Rune Descent includes eight weapons designed around different firing styles and combat situations.
Weapon Description
Axe Close-range melee combat
Shotgun Standard shotgun attack
Double-Barrelled Shotgun Powerful double-barrel weapon
Nailgun Projectile-based weapon
Super Nailgun Enhanced nail-based weapon
Grenade Launcher Explosive projectile attacks
Rocket Launcher Rocket-based attacks with splash damage
Lightning Gun Beam-style weapon
The weapon system supports hitscan, projectile, splash-damage, and beam firing modes, alongside four ammunition types.
Developers can adjust weapon damage, speed, sounds, and other settings through the included weapon definitions.
👹 15 Monster Types & Enemy AI
The project includes 15 monster types, featuring state-machine AI and two boss enemies.
Monster behavior includes:
- Patrol
- Ambush
- Chase
- Ranged attacks
- Melee attacks
- Pain reactions
- Death states
- Gib effects
These systems provide a foundation for different enemy encounters and combat scenarios.
The included monster definitions can be modified to adjust health, sounds, and other parameters.
🚪 Interactive Environments
Rune Descent features a variety of interactive level elements that make exploration more than simply moving from one enemy encounter to the next.
Included Environment Systems
- Keyed, timed, and linked doors
- Lifts and moving platforms
- Moving trains
- Standard buttons and shootable buttons
- Secrets and counters
- Relays and teleporters
- Traps
- Lava, slime, and water
- Swimming mechanics
- Runes and episode gates
These elements give developers multiple options for designing combat arenas, environmental puzzles, exploration sequences, and progression challenges.
⚡ Power-Ups & Collectible Items
The game includes a collection of items and power-ups to support combat and exploration.
Included Items
- Health pickups
- Three armour tiers
- Ammunition
- Keys
- Quad damage
- Invulnerability
- Invisibility
- Biosuit
These systems can be customized to adjust the difficulty, combat balance, and player progression.
📱 Designed for Android
Rune Descent includes touch controls designed for mobile FPS gameplay.
Mobile Control Features
- Virtual joystick
- Look-by-drag controls
- Fire button
- Jump button
- Weapon switching
- Pause control
- Aim while firing
- Safe-area-aware interface
- Responsive layout scaling
The interface is designed to accommodate different screen sizes while keeping the essential FPS controls accessible.
Android Build Configuration
The project supports:
- IL2CPP
- ARM64 and ARMv7
- Android 6.0 or later
- Landscape orientation
- OpenGL ES 3 and Vulkan
- Google Play Android App Bundle (.aab) build target
A signed release build requires your own package identifier, product name, and upload key.
🛠️ Data-Driven Level Editing
One of Rune Descent's key technical features is its data-driven level pipeline.
Levels use standard .map files compatible with TrenchBroom. The included Unity Editor pipeline imports map data into Unity scenes, including geometry, colliders, vertex lighting, and entities.
This makes it possible to add your own levels without manually constructing every environment inside the Unity Editor.
Level Workflow
1. Prepare or modify a .map file.
2. Import textures and materials.
3. Import brush models.
4. Import the desired maps into Unity.
5. Open the generated scene and test the level.
6. Build and test the Android version.
The project also provides Editor menu commands and command-line entry points for the import and build workflow.
💻 Readable C# Source Code
Rune Descent includes approximately 300 KB of commented C# code, organized into one assembly with one class per file.
Important gameplay data is maintained in plain C# definition tables, including:
- WeaponDefs.cs
- MonsterDefs.cs
These definitions allow developers to adjust weapon and monster parameters without rebuilding the entire gameplay system.
🎨 Custom Shaders & Runtime Asset Loaders
The project includes custom shaders and runtime loading systems for different types of game content.
Included Technical Systems
- World shaders
- Model shaders
- Liquid shaders
- Sky shaders
- Sprite shaders
- Particle shaders
- Runtime .mdl loaders
- Runtime .spr loaders
- Palette-based rendering
These systems form part of the project's retro-style rendering and content pipeline.
🧪 Automated Playtesting Support
Rune Descent includes a headless playtest bot for automated smoke testing.
This provides an additional tool for checking gameplay and identifying basic issues during development.
The project also includes Editor and command-line entry points for importing assets, importing maps, and building Android packages.
💰 Clean Monetization Foundation
Rune Descent does not include an advertising SDK or analytics integration, and it does not request the Android INTERNET permission.
This makes the project a useful starting point for developers who want to decide independently how their game should be monetized.
You can follow the included customization documentation to explore adding advertising, in-app purchases, or other features.
Any additional SDKs and permissions must be configured and tested as part of your own project.
📚 Documentation Included
The project includes documentation to help developers understand, build, and customize the game.
- README.md: Overview, quick start, project layout, and instructions for reaching a running level.
- docs/BUILDING.md: Editor builds, command-line builds, Google Play releases, testing, and troubleshooting.
- docs/CUSTOMIZING.md: Renaming and rebranding, adding levels, tuning weapons and monsters, touch layout changes, monetization integration, and content replacement.
- THIRD-PARTY-NOTICES.md: Licensing information for included content.
📜 Content Licensing Information
The supplied project description states that the textures, models, sounds, and level designs are sourced from the open-source LibreQuake content project under the BSD 3-Clause license, with the relevant notice included.
The description also states that the C# code, Unity project, and documentation are original work distributed under the asset's stated license.
Before publishing, preserve the required license notice and follow the restrictions on using the LibreQuake name in your game's title or promotion. Review the included third-party notices and asset license for the exact terms.
⭐ Key Features
- 🎮 Complete Android FPS game project
- 🗺️ 40 single-player levels
- 🏰 Hub level with Easy, Normal, and Hard modes
- 🔫 Eight weapons
- 👹 15 monster types
- 💀 Two boss enemies
- ⚔️ Hitscan, projectile, splash, and beam firing systems
- 🎯 Four ammunition types
- 🚪 Interactive doors, lifts, platforms, buttons, and trains
- 🌀 Secrets, relays, teleporters, traps, and episode gates
- 🌊 Lava, slime, water, and swimming
- ⚡ Quad damage, invulnerability, invisibility, and biosuit
- 🛡️ Three armour tiers
- 📱 Mobile touch controls
- 🎯 Aim while firing
- 💾 Saved options and continue-from-last-level support
- 📊 Intermission statistics
- 🗺️ TrenchBroom .map level pipeline
- 🎨 Custom shaders and runtime asset loaders
- 🧪 Headless automated playtest bot
- 💻 Approximately 300 KB of commented C# source code
- 🛠️ Editor and command-line build pipeline
- 📚 Detailed English documentation
- 🚫 No advertising SDK, analytics, or INTERNET permission included
📦 What You Get
Based on the supplied project details, Rune Descent includes:
✅ Complete Unity FPS project
✅ C# source code
✅ 40 campaign and bonus levels, plus the hub
✅ Eight weapons and four ammo types
✅ 15 monster types and two bosses
✅ Enemy AI and combat systems
✅ Interactive environment mechanics
✅ Health, armour, keys, and power-ups
✅ Android touch-control interface
✅ Level import pipeline
✅ Custom shaders and runtime model/sprite loaders
✅ Editor and command-line build tools
✅ Automated smoke-test bot
✅ README and technical documentation
🎯 Perfect For
Rune Descent is suitable for:
- 🔫 First-person shooter games
- 🎮 Retro FPS projects
- 📱 Android shooter games
- 👹 Monster combat games
- 🗺️ Single-player campaign games
- 🛠️ Developers creating custom FPS levels
- 💻 Unity C# learning and modification
- 🎨 Retro graphics and rendering projects
- 🔧 Developers building their own weapon and enemy systems
- 🧪 FPS prototyping and testing
- 🎮 Indie developers and small game studios
⭐ Why Choose Rune Descent?
🎮 A Complete Single-Player FPS
Start with an extensive campaign, multiple weapons, enemy AI, bosses, and interactive environments instead of building every system from scratch.
🔫 Eight Distinct Weapons
Work with several combat styles, including melee, shotgun, projectile, explosive, and beam weapons.
👹 Varied Monster AI
Use the included enemy states and behaviors as a foundation for different combat encounters.
🗺️ Flexible Level Pipeline
Import .map files into Unity scenes through the provided Editor pipeline.
📱 Mobile-Ready Controls
The project includes a virtual joystick, look-by-drag, firing, jumping, weapon switching, and responsive safe-area handling.
💻 Readable Source Code
Commented C# code and separate weapon and monster definition tables make the project easier to study and modify.
🧪 Development Tools
Editor commands, command-line build options, and a headless playtest bot support the development workflow.
🚫 No Built-In Advertising SDK
The project starts without an advertising SDK, analytics, or INTERNET permission, allowing you to choose your own monetization approach.
🔧 Technical Details
Specification Details
Unity Version Unity 2022.3.62f3 LTS
Game Genre First-Person Shooter
Primary Platform Android
Levels 40, plus hub level
Bonus Content 9-level bonus episode and final boss level
Weapons 8
Monster Types 15
Bosses 2
Ammo Types 4
Rendering Custom shaders and palette rendering
Controls Mobile touch controls
Scripting C#
Android Architecture ARM64 and ARMv7
Scripting Backend IL2CPP
Graphics APIs OpenGL ES 3 / Vulkan
Minimum Android Version Android 6.0, API 23
Level Format TrenchBroom-compatible .map files
Build Targets APK and Android App Bundle
Monetization SDK None included
Analytics None included
Requirements
- Unity 2022.3.62f3 LTS, with other Unity 2022.3.x versions expected to work.
- Android Build Support, including SDK, NDK, and OpenJDK.
- Windows, macOS, or Linux development computer.
- Approximately 1 GB of disk space for the project.
- Internet access on first open to download the MIT-licensed Scopa map importer package.
- Android 6.0 or later device, or a compatible ARM emulator, for testing.
Import time: Importing all 40 levels is estimated to take 1 to 3 hours on the first run. Single-level test builds should take only a few minutes.
📖 Installation & Build Instructions
1. Extract the project archive.
2. Open the RuneDescent folder through Unity Hub using Unity 2022.3.x.
3. Select Rune Descent → 1. Import Textures + Materials.
4. Select Rune Descent → 2. Import Brush Models.
5. For a quick test, choose Rune Descent → Import E1M1 only (test). To import the full game, choose Rune Descent → 3. Import All Maps.
6. Open a scene from Assets/LQ/Scenes/ and press Play to test it in the Unity Editor.
7. Select Rune Descent → 4. Build Android APK to generate Builds/RuneDescent.apk.
8. Before publishing, configure your own package ID and product name, then follow the included documentation to create a signed .aab.
Refer to README.md, docs/BUILDING.md, and docs/CUSTOMIZING.md for the complete instructions.