Oddinary Farm

Static Badge

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 college graduates. The lead programmer is Khoa Ngyuen and associate lead programmer is me, Ryan Carpenter. The game hosts peer-to-peer multiplayer utilizing Steamworks Facepunch and Unity's Netcode for Gameobjects. Open playtest is out now, link above!

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.
  • Multiplayer 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 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. Map generation is done client-side with a seed to improve performance.
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.