Oddinary Farm

Overview

Oddinary Farm is a co-op multiplayer arcade farming game built in Unity. The game combines classic farming mechanics with chaotic gameplay by juggling casual building with a tower defense aspect. The game is made by Spring Rolls Studio, a small team made up of five college graduates. The lead programmer is Khoa Ngyuen and the associate lead programmer is me, Ryan Carpenter. The game hosts peer-to-peer multiplayer utalizing Steamworks Facepunch and Unity's Netcode for Gameobjects. Open playtest is out now, link below!

Gameplay

Oddinary Farm is a top-down survival game playable solo or in online co-op, combining cozy farming with high-risk exploration and combat. Think Stardew Valley meets Terraria. Players build and defend a vulnerable farm, explore a resource-rich island by day, and survive alien attacks by night. The goal is to gather resources and prepare a hot air balloon to escape within 6 to 10 days, or face inevitable doom.

My Contribution

  • Task Management - Created, assigned, and managed project tasks in ClickUp based on team meetings.
  • Optimizaton and QA - Created Unit tests in unity to test algorithms pertaining to sychonization, object instantiation, and game duration. Also improved performance and bandwith pertaining to procedural generation and graphics.
  • Procedural Generation - Contributed to structures spawning randomly around the map with differing loot and obsticles.
  • Multiplayer Mounting Code - Created base code for mounting objects and entities including animals and the hot air balloon.
  • Game Design - Contributed many ideas to the game including enemies, shop upgrades and items, pets, and combat mechanics.
  • Documentation - Constantly updated code documentation with new commits. Created conventions and style guides for both new and old developers on the project.
  • Sprites and Animation - Created sprites and animations including: The Laser Deer, scrum enemy, brute enemy, artillery enemy, hamster, and the player HUD.
1 / 5
2 / 5
3 / 5
4 / 5
5 / 5

Implemented Features

Name Description
Peer-to-peer Multiplayer Unity Netcode for GameObjects, transported over Facepunch (Steamworks). Networking is deeply woven through the codebase, not confined to one layer. Allows player clients to connect to a host over the internet through steam invites.
Procedural Generation The system builds a synchronized, network-authoritative island world out of four layered Perlin noise maps (elevation, moisture, ore, and resource), then streams terrain/foliage/resources in and out around each player in real time.
Inventory System Dynamic and scalable slot-based inventory system akin to Minecraft's system. Items are data-driven and situational. The player can perform a variety of actions depending on the item including placement, combat, and buffs.
Object Pooling Game reuses identical item/objects instead of creating them to improve performance and frame rate.
Mounts Player can mount animals and other entities to increase movement speed and other properties.
Economy Shop, wallet/currency, quotas, loot tables/generator, and gambling.
Day and Night Cycle Time scale that affects the day/night cycle of the game. This changes the state of the game and the events that happen.