October 31, 2021

Oodles 720 Mobile

A one-stop solution for a property owner to design their house, flat or apartment within a visual environment. (It's Sims4!)

Oodles 720 Mobile

Background

This is the first industrial-level project after I finished my master's course at Birmingham City University. Well, it is not a game, but I tried to apply what I learned from game development.

WELL, IT'S NOT A GAME but..... It looks like Sims 4 to me!

Oodles 720 is a one-stop solution for a property owner to design their house, flat or apartment within a visual environment. Besides, the app has a quotation system to estimate the price and time for the refurbishment.

Users can download different pre-designed floorplans as a reference when designing their style.

Platform Engine Project Time Frame
Mobile (Android and iOS) Unity3D Project 11 Months+

My Tasks

In this project, I am responsible for the following tasks:

  1. Floorplan Generator
    - JSON file convertor (serialised class)
    - Transform given data for generating wall meshes
    - Spawn furniture
  2. Assets control with Unity Addressable
    - Create a remote Unity Addressables project for building assets
    - Integrate Mircosoft Azure Blob Storage as an Addressable hosting server
  3. UI implementation
    - Follow the design doc and implement a reasonable, easy-to-use UI system
    - Splash screen
    - Main app HUD
  4. Interaction
    - Touch and gesture implementation (multi-finger gesture)
  5. Integrate with third-party plugin
    - Native WebView implementation for connecting other teams works (OTP login and cloud save)
  6. VFX Implementation
    - Outline effect integration
  7. Leading
    - Lead other 2 junior programmers
    - Assign tasks and code review
  8. Other
    - Code optimisation for mobile devices
    - Apply coding standard

Study

To display "detailed" models and provide as smooth as possible user experience at the same time, here are some studies that I have done for this project so far:

  1. Mobile memory optimisation
    1.1. release memory after cleaning the scene
    1.2. enable increment GC feature in build settings
    1.3. compress and resize textures for all models
  2. Optimise framerate
    2.1. avoid putting codes inside Update, FixedUpdate and LateUpdate
  3. Unity Addressables research and development
    3.1. on-demand request assets. Because the size of all assets is near 200GB, we can't put all assets into an app
  4. Better folder structure, namespace control and code quality
    4.1. separate most of the codes in UI, Core, Database and Extension
    4.2. use namespace to align with the folder structure

Technologies Used

  1. Unity3D
  2. Rider
  3. C#
  4. Microsoft Azure Blob Storage

Video