Fran├žois Hautier

Gameplay Programmer

Kouji

Created by Spooklight Studio, Kouji is a messaging application using the augmented reality, available on iOS and Android. With Kouji, you can create your avatar and place it in your environment. After choosing him an animation, you can film it alone or with your friends’ avatars, and share the video.

Under the management of the Lead Programmer, and later in charge of the code architecture, I created a lot of facets of the application: development of native plugins in Objective C and Java, client-server development, UI development or integration of analytics.

Initial development

The development of Kouji has started around May 2017, so a short time before my arrival at Spooklight Studio in early July. We were 6 developers to work on Kouji, in a team also made up of artists and one technical artist.

As Unity developer, I had the opportunity to create a lot of facets of the application, initially imagined by the creative team. The subjects on which I worked on Kouji for my first 6 months at Spooklight Studio include:

  • Creation of an interface which allows to reach from Unity the native features of iOS and Android, which are respectively coded in Objective C and Java. That includes access to the phone address book, the adding of watermark on a video, the adding of an audio track in a video, etc.
  • Development of the friends’ screen: authentification per SMS, synchronisation of the user’s data with a server. In collaboration with an English-speaker Java developer (external to Spooklight) who was in charge to develop the server code, I created the client code and the complete behaviour of the screen.
  • Creation of UI elements, like the colour picker, the user’s tutorials, etc.
  • Integration of the Facebook Messenger SDK to enable the user to share his videos directly inside Facebook Messenger.
  • Integration of all sorts of analytics in the application, in order to track and understand the user’s behaviour inside Kouji. We have used Mixpanel to collect the datas, then later Facebook Analytics.
  • Adding of push notifications.
  • Creation of a lip sync system. When the user speaks, his avatar open its mouth according to his voice.
  • Creation of a voice filter system: the user can choose to modify his voice with filters (high-pitched, deep, robot, reverb).

Rewriting of the application

Planned to be published on the App Store for the release of ARKit in September 2017, Kouji has known an eventful development. For varied reasons (short development time, technologies mostly in beta and incompatible amongst themselves), the code architecture of Kouji quickly became a huge no man’s land. At the end of 2017, it was impossible to integrate easily any feature without having a lot of problems.

I worked on many parts of the application, and after the leaving of some developers, I had the greatest knowledge of the project in the team. So I have been named in charge of the code architecture on Kouji, with the aim of improved it.

Amongst the outlines of my work on this ‘new architecture’ for Kouji appear:

  • Complete reworking of the initialisation order for the different parts of the application.
  • Complete rewriting of the UI management as well as the different windows’ behaviours of the application.
  • Usage of techniques (dynamic instantiation of the elements, router system to navigate in the application, etc.) to make each part of the application as much as possible independent, and avoid the ‘spaghetti code’.
  • New system of animations’ management, inspired by the tool of story management from the project Phobia.

After the end of this big task in May 2018, I have continued to improve the code architecture, while integrating new features in the application like the favourites avatars, the stars or the costumes.