BOUGIE — Under the hood

Bougie Verse
3 min readApr 18, 2022

To deliver game shows with Maximum Immersiveness & Maximum Accessibility, our system is being built upon some special features. This article will provide some insight into the way in which the Bougie engine works.

Game Show Format Definition Language (GFDL)

  • Game State: give information on the Phase, the number of players and their details, the changes of Questions for other participants
  • Phase: each stage of the show with particular interactions and responses
  • Question: prompt for interaction from users in forms of reminders, quizzes, polls, etc.
  • Generator: the show scripts (a combination of different Questions)
  • Interaction/Answer: initiated from users’ end in forms of answers, voting, phase transitions, MC coordination, etc.
  • Handler: defining the responses of the system to particular interactions from different users (modify game state, modify participants’ question set)

*Generator and Handler will be defined through scripting language (open for complex scenario)

Game Show Format Editor (Creative studio)

  • Manage Phases (add, remove, edit)
  • Create custom generator and custom handler for each participant in each Phase
  • Include 1 IDE for script development

Proprietary Game Show Engine (Runtime)

  • Receive GFDL-compliant scripts and run them
  • Return question sets for each user by phase and by type
  • Handle interaction/answer
  • Emit events (phase transition, switching users, switching questions)

3D Rendering Engine

Unreal Engine 4 (UE4) is used to achieve Photorealism. This is also one of the reasons why Unreal is used outside of the game industry, in fields like architecture and filmmaking. Moreover, there are several factors for us to choose UE4 as our main 3D Rendering Engine.

Access to the source code

Being able to modify the engine source code to meet our requirements is the primary motivation. The ability to modify the engine code deep down is crucial since we can actively fix any issues when it is urgently needed.

Quick prototyping and iteration

A creative studio like Bougie will have to handle a lot of assets and we need an engine that allows us to try more ideas and understand what we can and cannot do quickly.

Simple for non-technical users

Node-based interfaces allow designers who don’t have technical backgrounds to experiment with their ideas without having to learn how to code. In doing so, we want to empower non-programmers so much that it creates situations where reversing roles gives designers and artists ultimate power over engine features.

Great for large-scale shows

As a very robust engine, UE4 is able to handle complex scenes with a large number of actors. In this regard, it is likely to be the market-leading engine.

Multi-platform development

The rendering pipeline supports a wide range of platforms, from small smartphones to high-end computer desktops. Even though this does not fix all issues related to multi-platform development, it lowers the bar greatly.

Omni-channel distribution

Like stated above, we aim at both maximum immersiveness and maximum accessibility so we adopt the latest technology available on all kinds of different devices. Sometimes using virtual reality to be fully immersed, sometimes using augmented reality glasses so you can be present in the physical world and sometimes just on a smartphone watching live stream or video calls.
Moreover, as we’re well aware that for interactive use cases, low latency is a business-critical consideration, we develop proprietary Bougie Ultra Low Latency (BULL) streaming protocol to support operations that require near real-time access to rapidly changing data.

--

--