Fairway Solitaire
| Company Big Fish Games |
Engine Customized Cocos2d-JS |
||
| Platform Android, Fire OS & iOS Mobiles |
Skills C++, Java, JavaScript |
||
| Role Software Engineer |
Responsibilities Android, Gameplay, Server, and etc. |
Focus Areas
- Implementing new game events and maintaining this cross-platform project for Android, Fire OS, and iOS.
- Driving cross-cutting initiatives in performance, build tooling, and backend cost.
- Maintaining/Updating 3rd-party SDKs for Android and Fire OS
- Supporting the Live Ops team, the server side, and iOS.
Game Description
Engineering Highlights
Startup Time Optimization
The cold-start path was dominated by synchronous audio decoding and third-party SDK initialization on the main thread, leaving players watching a loading screen for nearly eight seconds. I moved audio loading onto an async pipeline so the engine no longer blocks on decoding banks the player won’t hear during the splash, and deferred non-critical SDK init (analytics, attribution, ads) until after the first interactive frame. Cold start dropped from 7.8 s to 2.1 s — a ~73% reduction, directly cutting bounce on cold launches.
Firebase Realtime Database Cost Reduction
Telemetry showed Firebase Realtime Database read/write traffic running well above what the actual gameplay loops required, with redundant listeners and chatty syncs accounting for most of the bill. I audited and tightened the access patterns — consolidating duplicate reads, removing dead listeners, and reshaping a handful of high-traffic paths — to land a 22.8% cost reduction with no change to player-facing behavior.
Android Build System Enhancement
The Android build was a long-standing pain point — full builds were slow enough that engineers were context-switching while waiting. I overhauled the Gradle configuration and surrounding shell scripts to land a ~5× build-time improvement:
- Modernized the internal Android build tooling and Gradle setup
- Removed deprecated art-optimization steps that no longer earned their cost
- Updated scripts and configuration for the Apple Silicon migration so M-series machines build natively
Level Design Tool
My team made a new game mode, but it was so painful to position a flag and to set its data. So I made a simple tool for it. It has save/load/export features with many other handy input box to set each course data.
AI Art Assets
My team wanted to see the possibility of using AI Art Assets so that Fairway can have variation of new art assets with low cost if it’s viable. As I had a huge interest in the AI world, I investigated Adobe Firefly and Stable Diffusion and tried train/finetune technologies to generate a set of images with the Fairway art style.
Character Training
- Stable Diffusion Dreambooth with Google Colab
- The Initial Mode: Stable Diffusion 1.5
- Class: Prairie Dog
- 5 number of McDivot images were used
Background Training
- Stable Diffusion Dreambooth with Google Colab
- The Initial Mode: Stable Diffusion 1.5
- 13 number of Fairway background images were used
- The training was performed with captions in each base image
ETC.
- Automated Theming System: app icon, main menu, social menu
- Implemented an auto event scheduler on the server side, replacing a manual process
- Simplified a course generator, decoupling it from external resources
- and many other things…