Project Title
Project Type
Lunaris: Survival RTS - In Progress
Lunaris is a space survival RTS that focuses on the utilization of near-future ISRU technologies. My goal for this project was to showcase the real-world demands of in situ resource utilization (ISRU) in a refined, comprehensible system. In Lunaris, the player undergoes solo missions to different planetary bodies and must balance tasks like gathering space resources, building settlements, and researching the planet, while surviving brutal inhospitable environments.
TOOLS:
Unity, C#
LENGTH:
3 Weeks - In Progress
GENRE:
Space Exploration Simulator
Survival-RTS
Dev Log 1
Camera
The first thing I set up in this project was the camera. There are a lot of different ways to build an RTS camera, but for this project, I wanted a few specific things.
​
-
45 angle view
-
Can move with WASD, arrow keys, or screen edge
-
Can zoom with mouse scroll wheel
-
[[F to recenter the camera on target]] - coming feature
-
[[Follow target if they move off-screen]] - coming feature
​
Selections and Targeting
After building the camera, the next step was adding targeting so we can track what object was clicked & display that information to the player. For this initial iteration, I have the target change material on mouse hover and show a selection image when selected.
Now that I have some building targets I need to create units to go out and bring resources back to our base. First, let’s spawn our collector units & tell them where to go.
After doing some research & experimentation with flowfield pathfinding, I opted to go with unity’s built-in navmesh system because 1) I won’t need more than 100 units max, and 2) it’s much faster to use.
​
To update the targeting, I created scripts to handle click, drag, and shift clicked selections. In my main selection script, I track all the units in the scene at runtime and the units currently selected. This allows me to sort units by type, so I can handle the logic for different types of selections.
​




Dev Log 2
Selections Display and Upgrades
Now that we can select single and multiple sets of units, we need to display that data to the player. To do this, I updated the unit data script to include the unit's name, icon image, and health stats. In addition to this, I created prefab buttons for unit upgrades and creation. When a unit or units are selected, the selection script updates the UI manager to populate the selection window with this data.
​


Day Cycles, Temperature, and Weather Events
In the previous iteration, the day and night cycles were a binary setting on the skylight intensity (0.0, 1.0). To create a more realistic gradual transition, I updated the script to use the current hour (set as a ratio of total hours) to determine the skylight intensity.
​

Now that we have a more accurate picture of daylight, we can use that to support a range of temperatures. Because this is a survival game, temperature will be tied to energy use to keep the player at a healthy temperature range.
​
In addition to managing temperature, the player must deal with serious weather events like solar flares and meteor showers. The meteor showers introduce a component of strategy for the player, as they consider both the time associated with spacing units out farther apart (takes longer for units to go back and forth) and the risk of placing all their units close together. Each unit has a health stat that can be increased as a unit upgrade and is damaged upon meteor impact. Units can be repaired and if health reaches zero, the unit is destroyed.
​
Meteor showers also present a unique opportunity to the player. Each meteor has a random chance of depositing a minable regolith deposit with a high density of rare earth minerals.
​
​
​
​
This project is still in progress. Check back for more updates!

