A 3D Open World Exploration Game
Background
Ever since the emergence of the "solarpunk" (hypothetical sustainable future interconnected with nature and community), I knew I wanted to make a game based off the aesthetic. When pitching the idea to 5 of my friends we all fell in love with the concept and immediately began brainstorming. This was the start of our idea for an open world exploration game where the player is tasked with helping a small community repair after a big storm.
Project Details
Development time: 9 months
Engine: Unity
Contribution:
System/Content Design
Game Design
Gameplay Programming
Miscellaneous Scripting
UI
Re:Fresh - Launch Trailer
Re:Fresh - Early Access
We plan on expanding the content and vision of Re:Fresh, and this section will cover the early access version of the game.
Pre-Production
The first few weeks were spent brainstorming and elaborating on ideas for our final project. We utilized Miro, Trello and Github in the beginning stages to establish a structure for the development to come. With a mix of online and in-person, we were able to whiteboard a lot of our initial ideas and expand upon them with group discussions and rough sketches.
We immediately stuck to a solarpunk aesthetic, and with a big inspiration being A Short Hike, I helped to develop a plan for our Solar Cell System. This was to be a major mechanic for mobility and exploration, one of the key focuses of our game. This system, while initially seeming to be an easy task was tweaked and heavily modified after playtesting feedback and group discussions.
This is an early prototype of the Solar Cell system in action. The player grabs their first cell and is now able to double jump to reach new locations. At the end of pre-production, we had produced a build and ran a playtest in order to get feedback.
During this prototype playtest, multiple questions arose:
How would the player recharge cells?
What would be the max amount of cells in the game?
Would too many cells break the level design/flow of the future areas we planned to add?
Would there be other movement abilities tied to cells?
Production
Solar Cell System
During production my main focus was to iterate upon the solar cell's current design and establish a more fleshed out version of the current solar cell mechanic. Two of the largest changes were to address the cell recharge mechanic as well as add a dash for more varied movement. In our initial idea, recharging was going to happen at "recharge stations" around the map, but due to time constraints was reduced to an instant recharge when the player touched the ground. Instant recharge ended up being a lot more convenient, and while bringing infinite jump bugs we decided that it should be kept with some revisions.
With the foundation established, I decided on the core principles of the system that would work together to create a cohesive, engaging experience:
Cell Basics - Solar Cells are "charges" that the player can use for limited-use movement abilities. Each cell holds a single charge that is expended when Dashing or performing an Extra Jump. Multiple cells can be collected over gameplay.
Solar Cell Slots - The player's total cells at any given time can be displayed in the lower left hand screen of the UI. Initially starting with zero, the player can explore and collect Solar Cells in the world in order to permanently expand their total cell slots. More cell slots = more abilities can be used in succession.
Recharging - After the player expends all their cells, they will be unable to use another movement ability until the cells are recharged. Cells will enter a state of recharging and come back one by one when the player is grounded. If the player is touching the ground, there is a short delay before the cells begin recharging.
The first test with recharge delay per cell
Further changes to prevent exploits: cells recharge after a delay, cells will only recharge if the player is currently grounded, cells can be used as soon as they are charged instead of when they all finish recharging.
During this time I was working closely with our artist and other designers/programmers in order to test the new mechanics while staying aligned with our vision for the project. Testing with first pass art and early levels helped to establish the game-feel which was critical for this system. Movement and exploration had to feel tight and rewarding, and I strove to iron out the kinks in the solar cells to make sure they were highly responsive and fair for the player.
Player using a cell to reach new heights
Quests
Another large hurdle was designing a scalable quest system that would make it easy for other members of the team to add, remove, change and implement quests for NPCs to assign to the player. Quests not only had to store information, but display that information to the player.
As seen on the right, quest have multiple parameters:
Quest name, icons to display in the UI and the voice the quest NPC should have
Materials needed to complete the quest
Whether a "quest item" needs to be collected
Whether a quest is Inactive, Active or Completed
Connection to Yarn Nodes for narrative implementation
Quest data is then used to connect to the player's Journal, where they can view active quests, as well as NPC the quest is assigned to, the materials needed, and whether or not there is a quest item.
These parameters allowed for an expandable system that could be used for multiple NPCs as well as future NPCs we plan to add. Quests are flexible and managed by a quest manager which simply stores all of the quests for the game and keeps an active quest list to use for the Journal. Scripts can reference the manager in order to start quests, check if the player holds the materials needed to complete a quest, gain the needed quest item for a specific quest, and complete a quest.
Below is an example of the core gameplay loop in action.
Player talks to an NPC, gaining a quest
Quest appears in the Journal
Player collects materials needed for quests
Quest is completed and the NPC's building is repaired
Postmortem
Re:Fresh is now the biggest game I've worked on (sorry Pescabearian), and with our plans to continue working in the future I'm very excited to see what we'll accomplish! Since the beginning of the project we knew that we wanted the game to be scalable in order to add the content we couldn't get to this semester. Designing for a game with more content to be added is something that was new to me and my team, and took a lot of long meetings as well as debates for the best practices to use. This was a challenge design wise, as the player must feel the same sense of progression if the game is ten minutes or an hour long. In the end it was a blast to work on and I'm very proud of the work we did on this project. Check out Re:Fresh Early Access on itch here, and stay tuned for a future Steam release!
Special thanks to Merge Conflict :) - Will, Karina, Melody, Joseph and Ethan