ABOUT ME


My name is Erika Sampson and I am a Wellesley College graduate majoring in Media Arts and Sciences, an interdisciplinary major combining computer science and studio art.

I mainly develop video games and VR experiences, where I’ve worked on everything from game design to programming to 2D art assets. I am particularly interested in accessibility and representation within video games.

The first game I ever played was Pokemon Pearl on the Nintendo DS, and I’ve loved video games ever since. My passion for creating video games started with a middle-school coding summer camp and has only grown during college.


︎︎︎ Email



504/GWT


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque volutpat et neque quis maximus. Praesent dictum metus non lacus convallis, mollis lacinia quam sodales. In hac habitasse platea dictumst. Etiam ac nunc sit amet leo imperdiet blandit sed at elit. Class aptent taciti sociosqu.



︎︎︎ Email
︎︎︎ Instagram
︎︎︎ Twitter
FISH SIMULATOR
3D Video Game




Worked for:
    4 weeks, Feb - Mar 2023

Created by:
    Rachel Wu and Erika Sampson


Individual Responsibilities: 
  • game design
  • level design
  • mechanic design
  • programming
    Fish Simulator was my first project for CS 221: Digital Worlds for Gaming course. It is a 3D first-person game where the player takes the role of a fish, navigating through an aquarium and solving puzzles to collect stars. The main objective of the project was to learn fundamental 3D game development skills using Unity and C# and introduce us to 3D environmental/level design.

Development Process:

    My partner and I started by ideating and brainstorming concepts that would make for an enjoyable first-person game, eventually settling on the idea of a fish simulator. After settling on a rough concept, we organized the assets and scripts and made a plan for working on the project.

    We began by creating a greybox, which allowed us to develop a sense of scale and space usage. While my partner worked on acquiring or creating the necessary 3D assets, I began working on the character and camera controller scripts. Since typical character controller features like jumping and gravity weren't applicable to our project, I developed a system that enabled players to move in any direction that the camera was facing, including swimming up and down, using wasd. Additionally, I included the ability to move directly vertically on the y-axis with the q and e keys to facilitate movement. I also enabled players to push specific objects in the scene.

    Next, I developed the water currents script, which created water currents in the tank environment that could carry players and objects along at a faster pace. This involved deactivating player movement input while inside the current trigger area, as well as adding particle systems of bubbles and motion streaks to help players navigate the currents.

    The creation of water currents led to another idea: using the currents to push balls through a stack of rings. Once all the rings were cleared, a star would appear for players to collect. The script for this involved detecting if the ball entered the trigger area within the correct ring, disabling that trigger, incrementing the count, changing the color of the ring, playing a sound, and enabling the star once all rings in the stack had been passed. To prevent any confusion, the ball and corresponding ring stack were color-coordinated. Finally, I created the star collection system and UI, as well as the final disco party scene once all the stars were collected.

    With all the scripting and visual elements completed, we worked on arranging everything to create a cohesive player experience in the tank environment. Since players were playing as a fish, we kept in mind their extra axis of movement and designed the level accordingly to make sure players could take full advantage of this.


Challenges Faced:

    One major challenge I encountered was related to the water currents in the game. Originally, the idea was to have the currents speed up player movement when the player was facing the current direction and slow down player movement when the player was facing against the current. However, in the first iteration of the water currents, players were able to move quickly in any direction as long as they were facing the current direction. This meant that players could easily move backwards out of the current, even though they should have encountered resistance. After several attempts to fix this, I decided to change the water currents so that players couldn't move within them and had to be carried along instead. This new version of the water currents solved the issue and made the game experience more cohesive.

    Another challenge I faced was related to the pushable balls in the tank environment. In the beginning, when the balls were pushed against the tank walls or water surface, they would remain stuck there and the player would be unable to push them away from the obstacles. Although it wasn't a common occurrence, it was still a significant problem. After some thought, I realized that the water currents could be a possible solution. If the currents only affected the objects and didn't have the particle systems attached, they could act as an invisible "cushion" and gently push the balls away from the obstacles, preventing them from getting stuck. This required changing the water currents script so we could indicate in the editor whether the current should affect the player, objects, or both. Ultimately, this was a simple fix involving the addition of booleans and conditionals.


Lessons Learned:

    The development of Fish Simulator taught me the importance of being flexible and adaptable when creating a game. Initially, I tried to find a way to fix the water currents without scrapping the code I had already written. However, I realized that trial and error is a natural part of the development process, and sometimes starting over is necessary. Furthermore, I learned that game mechanics can often shape the design of the game. In our case, the idea of pushable objects and rings was not connected to each other or to the star collection system until after we developed the water current mechanic. If I had more time to work on this project, I would have liked to expand on the ring mechanic and find better ways to guide the player's understanding of the game's objectives.