[from engadget.com] " It's a brand-new mobile game that combines the same mechanics of augmented reality and walking that I enjoy so much. There's no magical critter-catching going in Silent Streets. It's a Victorian gothic detective story that sees you roaming your local area to solve a murder -- one that had me walking around trying to find 'The Boy With the Flower Skin.' "
- C# (mostly)
- Objective-C / iOS (considerably)
- Java / Android (considerably)
- Lua (occasionally)
- dealing with legacy code
- gradual re-architecturing
- game localization
- research and integration of several third party assets
- Unity 3D
- Visual Studio (Windows)
- XCode (OSX)
- Android Studio (Windows)
- MonoDevelop (OSX)
- SourceTree ( Git )
- Jira (Streamframe initially)
- Time Doctor
Core team composed by 5 people: CEO / designer, UI Artist / designer, Project Manager / Production, Lead Programmer and Intern Programmer. Additionally, several third party contractors participated on this project.
October, 2016 to October, 2017 (25 to 30h/week until July, 2017, low workload since then)
- Unique experienced technical person on the team, got the responsibility not only of coding the game, but also of making sure other team members drive their work and expectations inside to feasible technical requirements and make proper and smart usage of Unity 3D engine, of the integrated and developed features and of our Git repository.
- Working daily with art director / game designer and the project manager on planning and executing sprints, with proper constant reporting, not rarely inside tight deadlines.
- Based on previous experiences, adapted to our team characteristics, contributed on company management practices and guidelines in terms of daily work and of QA and releasing best practices.
- Intern programmer recruitment assistance and interviewing.
- Intern programmer mentoring and supervisioning on coding tasks.
Main Programming Tasks Performed
- Native plugins for iOS and Android: developed plugins on Objective-C and Java to track steps as a background process, via accelerometer or embedded pedometer/motion hardware when available, with support to local notifications. Additionally, developed a location tracking system to prevent cheating. All these native plugins were implemented with a common handling and interfacing class with subclasses implemented for each platform, avoiding any logic replication on the C# side for easy extension and maintainability.
- Solutions to Android and iOS specificnesses: handled each platform particularities, overcoming Unity limitations on details that require special attention on releasing an well polished app, such as following best practices on requesting system permissions on both platforms and supporting APK expansions and the back button properly on Android. Also, Android required special effort in order to provide a consistent behavior of the features across a wide range of devices.
- Highly polished UI and visual effects: Silent Streets is full of beautifully designed UIs as a key piece on its gameplay, has strived to take the best of Unity UI features based on the provided sketches, sometimes with additions from external assets in order to deliver the game features on a high level of polishing and fluid responsiveness on different platforms and screen sizes. Complementing the UI, has also worked on polished visual effects such as animations, motion based parallax and particles effects on menus and gameplay, sometimes with help of assets from the Asset Store.
- High quality architecture, code and project standards gradually achieved from legacy code: got the project from a very buggy and messy code state, created from a prototyping approach and had to refactor it gradually with very few “pure refactoring tasking”, in order to provide a continuous production of new features from a stakeholders perspective. After a few months the whole project got high quality architecture and code making its extension and maintainability smooth and lot cheaper than initially. Additionally, cleaned out the game from several nearly unuseful store assets and applied best practices on imported art and sound assets with assistance from our team artist, keeping the build size and loading performance to optimal standards.
- Level designing tools support and implementation: provided convenient level designing solutions, taking the best of Unity Inspector usage and Dialogue System (store asset) facilities, supporting also interesting LUA functions which could be used also on mobile builds, via a custom LUA console developed to this purpose. All that, complemented by its supporting documentation and eventual Skype assistance. This way, it has been possible to produce whole new episodes to the game with practically no coder’s assistance.
- Efficient approach on bug handling: constantly provided, during feature implementation, interesting solutions to facilitate the investigation and fixing of possible bugs, such as integrating Crittercism to monitor crashes and C# exceptions remotely and automatically, integrating “Log Viewer” so Unity log could be fully checked on mobile builds (and sent back via screenshots) and implemented also hidden “debug modes” and functionalities, allowing our small distributed team, each one with one or two different test devices, to be efficient on providing the proper info to have bugs fixed efficiently. After the release, Google Console tools, combined with user reviews, were also relevant to investigate a few issues on particular Android devices from our players.
- Full localization support: Observed good practices for further localization from the beginning, and when the time has come, made use of the proper assets from the store to provide convenient solutions to localize the dialogue database, UI labels and also custom images, being easy to support any new language. Also provided proper usage guidelines so the localization work can now be made independently by translators or level designers.
- Complete Analytics planning and implementation: despite not being properly a coding task, due to previous experiences, took responsibility over conceiving a full analytics plan to the game, focusing on understanding player retention and behavior when facing different features and screens of Silent Streets. After presenting, discussing and getting approval, has implemented each one of the decided events and parameters also proving further assistance to the responsible colleague in understanding them through the Unity Analytics dashboards so he could take high level decisions on improving the game and its monetization strategy.
- Store assets research and integration: for different needs across the project development, identified the possibility of saving time and budget through already available assets from the Asset Store. Has made the proper initial research and reporting about the assets availability and integrated the chosen ones from coding side to the dashboard setup (when it was the case). Samples of integrations were Unity Purchasing together with the configuration of IAP products at iTunes Connect and Google Console, Unity Ads and Enhance for rewarded videos, game saving handling and encryption solution, review requesting system, particle effects and clouds sprites.