Farm Land (Snapchat Port)

In Farm Land you play as a farmer who has to explore and expand the far reaches of the great farmland isles. To reach this goal though, you need some cold cash to purchase more land plots. And the best way to earn cash in Farm Land, is obviously to till, water, harvest, shear, milk, pluck, collect and all the other tasks a farm might require. It ain’t much, but it’s honest work.

Farm Land is a game that is created by a company called Homa. But while working at Ahoot Media, we had a collaboration with Funday Factory and Homa to port Farm Land to Snapchat. As you might know, the game is no longer available for Snapchat, as Snapchat closed down all Snap games, but none the less we still spent 5 months porting this game.

The original game was made in Unity and C# but had to be ported into the lightweight web 3D engine PlayCanvas where we used TypeScript. That meant that we had to translate a bunch of scripts and develop alternative solutions to tools that existed in Unity, but not in PlayCanvas. We also created an import/export tool that could export a large JSON file containing all the editor data from Unity. This file and its data, could then be recreated in the PlayCanvas editor, which meant we never had to setup the game worlds and all their objects which saved us a lot of time.

On Farm Land I translated several scripts, but also spent a lot of my time working in the PlayCanvas editor figuring out the best solutions for my team to use when porting over specific editor features such as materials, lighting, prefabs/templates, etc. We worked as a team of 6 programmers, 1 artist, and 2 game designers / producers.

Personal tasks in project:

  • Translating scripts from C# to TypeScript.
  • Handling major merges and releasing new updates to the live game.
  • Importing 3D models and recreating materials for all objects in the game.
  • Creating stress test scenarios and general quality assurance.

Genre: Idle/Farming Game

Platform: Snapchat

Language: C# and TypeScript

Engine: Unity and PlayCanvas