Inspiration

I wanted to explore why some of the most replayable games can be built around a very simple action: move, shoot, survive, and get rewarded. I was inspired by the accessibility and high-reward feedback of modern shooter games, but I wanted to combine that immediacy with the tension of survival and resource management.

My original idea was a much broader survival game focused on gathering, crafting, upgrading, and defending against escalating threats. As I built and tested it, I realized the strongest idea was much simpler: Day gives me what I need to survive, while Nightmare gives me what I need to become stronger.

What it does

Night Veil is a portrait, single-player survival shooter where I am always running forward. I move between Day and Nightmare, collecting health and ammunition in Day while risking combat in Nightmare for power and progression.

The longer I stay in Nightmare, the greater the danger and the greater the potential reward. This creates the central decision behind the game: do I leave now, or risk one more wave for more power?

How we built it

I built the prototype as an offline-first web game using HTML, JavaScript, and Three.js. I developed it incrementally, starting with the most important systems: auto-running movement, steering, shooting, enemies, resources, reality shifting, waves, bosses, and progression.

I intentionally used simple geometry and placeholder visuals while developing the core gameplay. This allowed me to test whether the loop was actually fun before spending time on detailed art, effects, and presentation.

Challenges we ran into

My biggest challenge was deciding what not to build. The original survival concept could easily grow into inventories, crafting stations, more weapons, more enemies, larger environments, and many additional systems.

I kept reducing the scope until the core experience became clear. I wanted every system to support the same question: how much danger am I willing to take for a better reward?

Another challenge was making Day and Nightmare feel mechanically different, rather than simply looking different. Day needed to feel like relief and preparation, while Nightmare needed to feel dangerous but rewarding.

Accomplishments that we're proud of

I am proud that the prototype became a complete playable experience rather than a collection of disconnected features. It now has auto-running movement, combat, resource collection, two realities, escalating waves, bosses, progression, stage transitions, victory, defeat, and replay.

I am especially proud of the Reality as a Resource concept. It gives Night Veil a clear identity while remaining simple enough to understand almost immediately.

What we learned

I learned that more systems do not necessarily create more depth. The strongest tension came from making a few resources meaningful and forcing myself to make decisions while moving and fighting.

I also learned to build the core loop first and treat visuals, effects, and additional content as layers that should strengthen the gameplay rather than distract from it.

What's next for Night Veil

My next goal is to turn Night Veil into a polished, replayable survival shooter with stronger audiovisual identity, connected regions, and level-specific enemy families. The current Rift and Ember enemies are the foundation for future populations such as undead, corrupted creatures, and occult threats, with each region introducing its own enemies, hazards, and resource pressures.

I want to expand the world without losing the simple, rewarding loop at its heart: run, fight, survive, risk more, and decide when to leave.

Built With

Share this project:

Updates

Submission history