# Project export: Space Hunter

This document was generated by HackStack to give an AI agent context about a hackathon project. Sections are labeled with their provenance; content marked as truncated was cut to keep this document small.

## Project metadata

- Hackathon: UC Berkeley AI Hackathon 2025
- Tagline: Imagine a futuristic world where robots are everywhere and they are bad. You are the last good robot left. How will you escape? Will you survive?
- Devpost: https://devpost.com/software/dissapearance
- GitHub: http://github.com/RoyceAroc/spacehunter
- Video: https://www.youtube.com/embed/NFXzyYMTa2c?enablejsapi=1&hl=en_US&rel=0&start=&version=3&wmode=transparent
- Team: 0 GitHub contributor(s) — 

## Devpost submission (written by the team)

### Inspiration

The idea for Space Hunter was born from our fascination with deep space exploration and the concept of lone bounty hunters navigating hostile alien worlds. We wanted to create a game that blends atmospheric storytelling with fast-paced third-person action, set in a universe where every mission uncovers more of a mysterious galactic conflict. Our goal was to immerse players in a world that feels vast, dangerous, and alive.

### What it does

Space Hunter is a third-person action-adventure game where players step into the boots of a futuristic bounty hunter. The gameplay revolves around tracking high-value targets, engaging in tactical combat, and uncovering secrets hidden in ancient alien ruins. Players can scan environments for clues, upgrade their gear, and make choices that affect the outcome of their missions. The game emphasizes exploration, vertical level design, and a blend of ranged and melee combat.

### How we built it

We built the game using a custom 3D engine setup, focusing on modularity and scalability. The character controller was designed from the ground up to support fluid movement, aiming, and shooting mechanics. We implemented a dynamic camera system that adapts to different gameplay contexts—combat, exploration, and scanning. Our team also developed a custom shader pipeline to give the alien environments a distinct visual identity, and we created a lightweight AI system for enemies that allows for stealth, patrol, and aggressive behaviors.

### Challenges we ran into

One of the biggest challenges we faced was balancing the complexity of the mechanics with accessibility. We wanted the game to feel deep without overwhelming new players. Designing the scanning system to be both functional and immersive took several iterations. Another challenge was optimizing performance across different hardware setups while maintaining the visual fidelity we envisioned for the alien worlds.

### Accomplishments we're proud of

We’re especially proud of how the game’s atmosphere came together. The combination of sound design, lighting, and environmental storytelling really brought the world to life. We also take pride in the responsiveness of the controls and the flexibility of our modular systems, which allow us to easily expand the game with new content and mechanics.

### What we learned

Throughout development, we learned a lot about designing for player agency and pacing. We gained valuable experience in building scalable systems, managing a 3D asset pipeline, and creating immersive environments that support both narrative and gameplay. We also deepened our understanding of AI behavior trees and animation blending.

### What's next

Looking ahead, we plan to expand Space Hunter with new planets to explore, more complex bounty missions, and a branching narrative that reacts to player choices. We’re also working on a co-op mode and plan to release a public demo to gather feedback from the community. Our long-term vision is to turn Space Hunter into a full-fledged episodic series with evolving story arcs and gameplay systems.

## README (from the GitHub repository)

##Inspiration
The idea for Space Hunter was born from our fascination with deep space exploration and the concept of lone bounty hunters navigating hostile alien worlds. We wanted to create a game that blends atmospheric storytelling with fast-paced third-person action, set in a universe where every mission uncovers more of a mysterious galactic conflict. Our goal was to immerse players in a world that feels vast, dangerous, and alive.

##What it does
Space Hunter is a third-person action-adventure game where players step into the boots of a futuristic bounty hunter. The gameplay revolves around tracking high-value targets, engaging in tactical combat, and uncovering secrets hidden in ancient alien ruins. Players can scan environments for clues, upgrade their gear, and make choices that affect the outcome of their missions. The game emphasizes exploration, vertical level design, and a blend of ranged and melee combat.

##How we built it
We built the game using a custom 3D engine setup, focusing on modularity and scalability. The character controller was designed from the ground up to support fluid movement, aiming, and shooting mechanics. We implemented a dynamic camera system that adapts to different gameplay contexts—combat, exploration, and scanning. Our team also developed a custom shader pipeline to give the alien environments a distinct visual identity, and we created a lightweight AI system for enemies that allows for stealth, patrol, and aggressive behaviors.

##Challenges we ran into
One of the biggest challenges we faced was balancing the complexity of the mechanics with accessibility. We wanted the game to feel deep without overwhelming new players. Designing the scanning system to be both functional and immersive took several iterations. Another challenge was optimizing performance across different hardware setups while maintaining the visual fidelity we envisioned for the alien worlds.

##Accomplishments that we're proud of
We’re especially proud of how the game’s atmosphere came together. The combination of sound design, lighting, and environmental storytelling really brought the world to life. We also take pride in the responsiveness of the controls and the flexibility of our modular systems, which allow us to easily expand the game with new content and mechanics.

##What we learned
Throughout development, we learned a lot about designing for player agency and pacing. We gained valuable experience in building scalable systems, managing a 3D asset pipeline, and creating immersive environments that support both narrative and gameplay. We also deepened our understanding of AI behavior trees and animation blending.

##What's next for Space Hunter
Looking ahead, we plan to expand Space Hunter with new planets to explore, more complex bounty missions, and a branching narrative that reacts to player choices. We’re also working on a co-op mode and plan to release a public demo to gather feedback from the community. Our long-term vision is to turn Space Hunter into a full-fledged episodic series with evolving story arcs and gameplay systems.


## Detected evidence (automated analysis)

Indexed codebase: 2 recognized source files, 5 KB.
- C# (language) — claimed on Devpost, not found in the code

## Codebase structure (from repository index)

### Files (120 of 951)

```
.DS_Store
.godot/.gdignore
.godot/editor/BarrelSmoke.glb-8e2d69c4951af8065240d2d52c721128.scn-folding-bd8f90c3a63232d11f54ae72bab78381.cfg
.godot/editor/BlastMaterial.tres-folding-03e2cc83e6a73bef8dd61b7abab70c5f.cfg
.godot/editor/BlastMesh.glb-b73267f06de3a944c01538e9fdef2594.scn-folding-481bd9bf3801d74e01f4ab516005a09f.cfg
.godot/editor/blob_shadow.tres-folding-f92133a207d6ebfd0299eaeddb5305dd.cfg
.godot/editor/bullet_explode.wav-cb1cff5a50e4c409ec7fc505de7bc81f.sample-folding-a657397babb2305f97ec631cd153cc90.cfg
.godot/editor/charge.wav-ca59df8cae0ad5b1fea987f205ca4e33.sample-folding-eb1747490f2e80108c5b9b0b582abe81.cfg
.godot/editor/core.glb-6d1fe901749789ad3144bf80da386b2d.scn-folding-31e13f61125c9b3c203ba45baf99803c.cfg
.godot/editor/CoreOutLight.glb-b35a9241b91b300ae469d4ccb46e0c6a.scn-folding-6748611e6cef2b9b0d3d66ceabdad839.cfg
.godot/editor/default_bus_layout.tres-folding-19246414aa9fb561ced4b8dce477acec.cfg
.godot/editor/door.dae-7f8548364364a8c72d317db0aac6a97d.scn-folding-7c2b66e64ecc4711cda0ef367035af74.cfg
.godot/editor/editor_layout.cfg
.godot/editor/EmberTrailCutoff.tres-folding-f4d002bd343f528ab20c2f775e4a6097.cfg
.godot/editor/EvilRobo.tres-folding-462771a81b2cfd0f2e9d36efe751447a.cfg
.godot/editor/explosion.wav-8b1408a92e13f73affdc0326a2858c09.sample-folding-a35f77ba1dc47bb6fb95df8c6ec98965.cfg
.godot/editor/filesystem_cache8
.godot/editor/filesystem_update4
.godot/editor/flying_forklift.glb-5fc3f6403d54a193b6e3b14c2633d073.scn-folding-017511db161d99db0297552093ab34eb.cfg
.godot/editor/hit.wav-0382ddf0ec7020fb04e2666fb8b2f72f.sample-folding-a7441a896f29734681a398657674bc38.cfg
.godot/editor/jump.wav-2603877681c9e067c3a9a93e9a4fc8fc.sample-folding-7e11a554d29b5100d49cd697b757c8b9.cfg
.godot/editor/land.wav-30873fe661744bdc60c0d00d7401aab3.sample-folding-337346a0b9bacc1466f6aff586d52520.cfg
.godot/editor/level_music.ogg-4afd12677c88b2d2a03f7bd78697bf1a.oggvorbisstr-folding-4c33da35fde845513c3adc7b5a7f705c.cfg
.godot/editor/LightRaysMesh.glb-7064e2802466cd2578058f8b016cbc85.scn-folding-5a13396cb02ebf82ab7957b6ddce9dd6.cfg
.godot/editor/lights.glb-e682766b019cdb9ecca59a07b4749bef.scn-folding-041bb07e3f3260941ada2ffda5574af1.cfg
.godot/editor/main.tscn-editstate-435f623093a3e2498450e744191b98a6.cfg
.godot/editor/main.tscn-folding-435f623093a3e2498450e744191b98a6.cfg
.godot/editor/menu_intro_music.ogg-790ed16894e4b5a52d74fb71b5f5de88.oggvorbisstr-folding-7db9a8604ea5726b73c44ec57ef7d182.cfg
.godot/editor/open_close.wav-15c93b82a463a1fe63bbc03e48e48393.sample-folding-9e2b70eeac15f2c41c19b5b3a0a5625b.cfg
.godot/editor/part_head.glb-8de207327aec4b1572370054a7354cf7.scn-folding-a75bb9f441ddc0b04fc68b70047d58da.cfg
.godot/editor/part_shield.glb-d6c233d3d85ae961b022dca28194d5a7.scn-folding-78fe93e550e0311ac79400130b0a5f9a.cfg
.godot/editor/player.glb-4fab3988dc7fd5b74f5ba5057da16803.scn-folding-5c65157497aa6944797799e2755f1941.cfg
.godot/editor/project_metadata.cfg
.godot/editor/props.glb-ef7d7320b04a8755385d61edb896d714.scn-folding-fcb4bc3a609406d12f5ddeaa5fdbad09.cfg
.godot/editor/PT_Sans-Web-Bold.ttf-0042532be9026e6e382cd893b17c814c.fontdata-folding-7a1e6a1e4ec4fd6d06e7e7f9e18d64e3.cfg
.godot/editor/ray.glb-8e1d5bd28d6e0c01a107a5b661f05121.scn-folding-4c2fdb73f28f8ee9d672d73dce8852d5.cfg
.godot/editor/red_robot.glb-b153d031b514fac0d14abc1335e683d6.scn-folding-a9c42133b7e7a4f8907c0572978b948c.cfg
.godot/editor/script_editor_cache.cfg
.godot/editor/shoot.wav-81aef4aff359235fd45078daadcb9e5e.sample-folding-c7f29a19de1cd9d5d4e2c596a32110f2.cfg
.godot/editor/shoot.wav-8244db64ae3703b75575788340a3a2e5.sample-folding-a7616ca49a5aac8c7aec11b1d106238c.cfg
.godot/editor/smoke.tres-folding-1bb14c1a36775f2bba5987fb64b6a9b9.cfg
.godot/editor/SparkParticle.glb-e3f6706407f31f2c4028af0147be98dc.scn-folding-4c0733ce8315f450199e69fa5a0542fd.cfg
.godot/editor/step.wav-d0eb4ea2bd4432739110520bfa71a096.sample-folding-75bdd63e3868e3519084974605668ceb.cfg
.godot/editor/structure.glb-21fe3543c920768091702bd640720751.scn-folding-53ec52a5b260742d32406fc15ab42650.cfg
.godot/editor/walk.wav-9036336121ed9699b9a0fe895306c86a.sample-folding-97a638029f3d475e590d88d588e78f3c.cfg
.godot/global_script_class_cache.cfg
.godot/imported/BarrelSmoke.glb-8e2d69c4951af8065240d2d52c721128.md5
.godot/imported/BarrelSmoke.glb-8e2d69c4951af8065240d2d52c721128.scn
.godot/imported/BarrelSmokeTexture.png-87dcba987386b52e839103c6b4897cbe.md5
.godot/imported/BarrelSmokeTexture.png-87dcba987386b52e839103c6b4897cbe.s3tc.ctex
.godot/imported/BlastMesh.glb-b73267f06de3a944c01538e9fdef2594.md5
.godot/imported/BlastMesh.glb-b73267f06de3a944c01538e9fdef2594.scn
.godot/imported/BlastSpark.png-2f5109762f7b1d007f7e7777ba6f3d1e.md5
.godot/imported/BlastSpark.png-2f5109762f7b1d007f7e7777ba6f3d1e.s3tc.ctex
.godot/imported/BlastTexture.png-2eec07ef5808b6947cba3638160e2180.md5
.godot/imported/BlastTexture.png-2eec07ef5808b6947cba3638160e2180.s3tc.ctex
.godot/imported/blue_myst.png-08a82cdef0e5872c6ef849f237e9e756.md5
.godot/imported/blue_myst.png-08a82cdef0e5872c6ef849f237e9e756.s3tc.ctex
.godot/imported/bullet_explode.wav-cb1cff5a50e4c409ec7fc505de7bc81f.md5
.godot/imported/bullet_explode.wav-cb1cff5a50e4c409ec7fc505de7bc81f.sample
.godot/imported/charge.wav-ca59df8cae0ad5b1fea987f205ca4e33.md5
.godot/imported/charge.wav-ca59df8cae0ad5b1fea987f205ca4e33.sample
.godot/imported/column_albedo.png-92d600ad6594066215f66aadcbc24322.md5
.godot/imported/column_albedo.png-92d600ad6594066215f66aadcbc24322.s3tc.ctex
.godot/imported/column_normal.png-92f86f41f37849389a10883d539ec4b9.md5
.godot/imported/column_normal.png-92f86f41f37849389a10883d539ec4b9.s3tc.ctex
.godot/imported/column_orm.png-272665e20b92c2644943a0836e816372.md5
.godot/imported/column_orm.png-272665e20b92c2644943a0836e816372.s3tc.ctex
.godot/imported/container1_albedo.png-0bf4da4ec1f3681da8e626c129768832.ctex
.godot/imported/container1_albedo.png-0bf4da4ec1f3681da8e626c129768832.md5
.godot/imported/container1_normal.png-decf3878170f06308067e3945bf541e7.ctex
.godot/imported/container1_normal.png-decf3878170f06308067e3945bf541e7.md5
.godot/imported/container1_orm.png-3143dd3039a65fd9507cc36df0aa392c.ctex
.godot/imported/container1_orm.png-3143dd3039a65fd9507cc36df0aa392c.md5
.godot/imported/container2_albedo.png-60177dcb62d67a889d8ac19abe1391fe.md5
.godot/imported/container2_albedo.png-60177dcb62d67a889d8ac19abe1391fe.s3tc.ctex
.godot/imported/container2_normal.png-3d18ddf814fbbec0295ddf3509589048.md5
.godot/imported/container2_normal.png-3d18ddf814fbbec0295ddf3509589048.s3tc.ctex
.godot/imported/container2_orm.png-2873cfa8ba37e0da79012f088b0b584a.md5
.godot/imported/container2_orm.png-2873cfa8ba37e0da79012f088b0b584a.s3tc.ctex
.godot/imported/container3_albedo.png-2ed9b8b6f33cb4a7b78a15e475e561df.md5
.godot/imported/container3_albedo.png-2ed9b8b6f33cb4a7b78a15e475e561df.s3tc.ctex
.godot/imported/container3_normal.png-705f532c297caf345da9f4b8369d5ed7.md5
.godot/imported/container3_normal.png-705f532c297caf345da9f4b8369d5ed7.s3tc.ctex
.godot/imported/container3_orm.png-ef67226addcaac61d7e3a5c7d08f27cb.md5
.godot/imported/container3_orm.png-ef67226addcaac61d7e3a5c7d08f27cb.s3tc.ctex
.godot/imported/container4_albedo.png-a569724fd18d79acb819db7b3f67f1ee.md5
.godot/imported/container4_albedo.png-a569724fd18d79acb819db7b3f67f1ee.s3tc.ctex
.godot/imported/container4_normal.png-aada67f1f8c5c7deab747e600ae9250d.md5
.godot/imported/container4_normal.png-aada67f1f8c5c7deab747e600ae9250d.s3tc.ctex
.godot/imported/container4_orm.png-8f834fd05701eb10bd99a10cc5107b6b.md5
.godot/imported/container4_orm.png-8f834fd05701eb10bd99a10cc5107b6b.s3tc.ctex
.godot/imported/core_fire_noise.png-c6e8b81a54229fced7beacf10cd5a193.md5
.godot/imported/core_fire_noise.png-c6e8b81a54229fced7beacf10cd5a193.s3tc.ctex
.godot/imported/core_inner_noise.png-b8f37ace19c6cfca2ff32033b2853f79.md5
.godot/imported/core_inner_noise.png-b8f37ace19c6cfca2ff32033b2853f79.s3tc.ctex
.godot/imported/core_inner_noise2.png-412234ab4a09264120010811f25fa529.md5
.godot/imported/core_inner_noise2.png-412234ab4a09264120010811f25fa529.s3tc.ctex
.godot/imported/core_laval_spotches.png-27d82a2740be5cb8d17c556f9fa2855d.md5
.godot/imported/core_laval_spotches.png-27d82a2740be5cb8d17c556f9fa2855d.s3tc.ctex
.godot/imported/core_out_light.png-b289287c4925ebf2f3d3d8ee47b38a00.md5
.godot/imported/core_out_light.png-b289287c4925ebf2f3d3d8ee47b38a00.s3tc.ctex
.godot/imported/core.glb-6d1fe901749789ad3144bf80da386b2d.md5
.godot/imported/core.glb-6d1fe901749789ad3144bf80da386b2d.scn
.godot/imported/CoreOutLight.glb-b35a9241b91b300ae469d4ccb46e0c6a.md5
.godot/imported/CoreOutLight.glb-b35a9241b91b300ae469d4ccb46e0c6a.scn
.godot/imported/crosshair.png-297ebeb4b4366d1105121af24ebea38c.ctex
.godot/imported/crosshair.png-297ebeb4b4366d1105121af24ebea38c.md5
.godot/imported/door_albedo.png-01f58275ec4bf37cd8e1a048ffbaf461.md5
.godot/imported/door_albedo.png-01f58275ec4bf37cd8e1a048ffbaf461.s3tc.ctex
.godot/imported/door_albedo.png-b6182b7ae92d4e17abfbca4a44dd1578.md5
.godot/imported/door_albedo.png-b6182b7ae92d4e17abfbca4a44dd1578.s3tc.ctex
.godot/imported/door_emission.png-5f79af2ba84b63e33a9cd4e6a725951c.md5
.godot/imported/door_emission.png-5f79af2ba84b63e33a9cd4e6a725951c.s3tc.ctex
.godot/imported/door_emission.png-882557a3d4517e570d1bba8e406a02e2.md5
.godot/imported/door_emission.png-882557a3d4517e570d1bba8e406a02e2.s3tc.ctex
.godot/imported/door_normal.png-44e6e35984022264015c923e50b16a6f.md5
.godot/imported/door_normal.png-44e6e35984022264015c923e50b16a6f.s3tc.ctex
.godot/imported/door_normal.png-786ff283e62e5172b5c2cc3de6efa7c8.md5
.godot/imported/door_normal.png-786ff283e62e5172b5c2cc3de6efa7c8.s3tc.ctex
[831 more files omitted for size]
```

### Dependencies

No dependency index available.

### Recent commits (newest first)

- Update README.md
- Create README.md
- added game

## Key source files (fetched from GitHub, selected and truncated for size)

### file_format.sh

```shell
#!/usr/bin/env bash

# This script ensures proper POSIX text file formatting and a few other things.

set -uo pipefail
IFS=$'\n\t'

# Loops through all text files tracked by Git.
git grep -zIl '' |
while IFS= read -rd '' f; do
    # Exclude some types of files.
    if [[ "$f" == *"csproj" ]]; then
        continue
    elif [[ "$f" == *"hdr" ]]; then
        continue
    fi
    # Ensure that files are UTF-8 formatted.
    recode UTF-8 "$f" 2> /dev/null
    # Ensure that files have LF line endings and do not contain a BOM.
    dos2unix "$f" 2> /dev/null
    # Remove trailing space characters and ensures that files end
    # with newline characters. -l option handles newlines conveniently.
    perl -i -ple 's/\s*$//g' "$f"
    # Remove the character sequence "== true" if it has a leading space.
    perl -i -pe 's/\x20== true//g' "$f"
    # We don't want to change lines around braces in godot/tscn files.
    if [[ "$f" == *"godot" ]]; then
        continue
    elif [[ "$f" == *"tscn" ]]; then
        continue
    fi
    # Disallow empty lines after the opening brace.
    sed -z -i 's/\x7B\x0A\x0A/\x7B\x0A/g' "$f"
    # Disallow some empty lines before the closing brace.
    sed -z -i 's/\x0A\x0A\x7D/\x0A\x7D/g' "$f"
done

git diff > patch.patch
FILESIZE="$(stat -c%s patch.patch)"
MAXSIZE=5

# If no patch has been generated all is OK, clean up, and exit.
if (( FILESIZE < MAXSIZE )); then
    printf "Files in this commit comply with the formatting rules.\n"
    rm -f patch.patch
    exit 0
fi

# A patch has been created, notify the user, clean up, and exit.
printf "\n*** The following differences were found between the code "
printf "and the formatting rules:\n\n"
cat patch.patch
printf "\n*** Aborting, please fix your commit(s) with 'git commit --amend' or 'git rebase -i <hash>'\n"
rm -f patch.patch
exit 1

```