Experimenta was my second solo game development project with Unity. My goal with this project was more to experiment rather than to make a complete game, hence its prototype status. In this game, players must complete a number of various tasks as part of their test to join the Experimenta Organization, an organization that develops and maintains a variety of unusual technologies.
Gameplay is guided, based on puzzles. Players must use the WASD control scheme and the mouse to explore the laboratory and interact with objects and creatures. A scoreboard of sorts keeps a tally of each objective’s requirement and the player’s current status for each objective. A dialogue system guides the player as they enter different levels and complete different requirements. Transmute items, feed animals, and befriend creatures in order to complete Experimenta’s test.
All code in this game was written by me. Dialogue lines were also written by me, and I also constructed each level, including the menu. Assets were all from the Unity Asset Store. Sound effects were taken from Freesound.org.
I approached this project seeking to experiment, rather than develop. I wanted to experiment with Unity and expand my knowledge of what I could do with both the engine and with C#. Limit-testing, some might call it. I began with the most basic of mechanics – movement, in particular, 3D first-person movement. The result was the rudimentary first-person character controller you see in the game; I call it rudimentary because it, admittedly, is missing several components that could improve it greatly. It lacks strafe speed, for example; lateral movement all feels very sharp and calculated, unnatural. These are, fortunately, components that I could add in the future with some further experimentation and research.
Experimenta also marks my first attempts at developing AI for characters. In the second level, players are tasked with feeding creatures different types of food. There are three food types, marked by different colors – blue, green, and red. Feeding the creatures the blue food will have no effect on them other than making them full. Red food, however, will make creatures angry and hostile, and will chase the player. These creatures can, thankfully, be pacified with the green food. Feeding creatures enough food will make them friendly towards you, and they will follow you around.
I made use of enums as a way to keep track of creature states and allegiances. These enums then play into the creature’s decision-making; a creature in idle state will wander around after a certain period of time. A hostile creature will chase the player if the player enters the creature’s detection sphere. Creatures also wander around using a navigation mesh and a method that chooses a random point on that navigation mesh, within a radius. I was most proud of this functionality; allowing the creatures to wander randomly on their own gave them a sense of life, as opposed to strict conditional patterns. This functionality can absolutely be improved; creatures will occasionally walk into walls while wandering, for instance. I could add a system of checks in the detection method to allow creatures to check whether an obstacle is in the way of their path, for example, and change their path to account for that obstacle.
Because of Experimenta’s original nature as an experimental project, I don’t currently intend to develop it into a complete game. However, the Experimenta Organization, and the laboratory, may return again in a future project.