DEV Community

KhaiSimon
KhaiSimon

Posted on

How We Designed the Cabin Lighting System in Cabin Crew Life Simulator - devlog #3

Hello everyone, it's me, Simon - the lead developer of the game Cabin Crew Life Simulator. Welcome to my third blog post for Cabin Crew Life Simulator !

I hope you have been enjoying the things we have been talking about up until this point and I will have much more to share in the future. If you’re new here, don’t forget to join our Discord channel to stay up to date with the latest news from our team regarding Cabin Crew Life Simulator as well as our other projects!

In this update, I’ll delve deeper into the cabin of the aircraft, where over 70% of the game’s duration will take place, true to the game’s name. Today, We’ll discuss the design of lighting in the galley and cabin, as well as the day/night circle system within the aircraft cabin.

  1. The FAP System

To deliver the most authentic experience of a flight attendant's career, we have simulated the Flight Attendant Panel (FAP), which is present on most modern aircraft.

The Flight Attendant Panel (FAP) serves as the central control hub for managing and monitoring various cabin systems. It enables flight attendants to efficiently control lighting, emergency systems, lavatory functions, and more.

In Cabin Crew Life Simulator, all cabin lighting can be turned on/off or adjusted in brightness via the FAP. Additionally, the FAP allows you to quickly check the status of doors - whether they are open or closed, armed or disarmed. This feature helps you avoid penalties after each flight for forgetting to properly secure or arm the doors.

Moreover, we’ve included a curated playlist for passenger entertainment, allowing you to create the most comfortable atmosphere onboard. You can choose any genre of music you like and adjust the cabin volume depending on the phase of the flight.

Image description

  1. Lighting in the Game

We faced numerous challenges while designing the lighting for this game. Typically, developers use static lighting (also known as Baked Lighting) to optimize game performance. With this method, lighting is pre-calculated before runtime, and no further calculations are made during gameplay. For more details, you can refer to Unity's documentation on Baked Lighting.

However, in Cabin Crew Life Simulator, many things move, including passengers and the aircraft itself. As previously mentioned, the aircraft simulates real-life movement, from taxiing to takeoff and cruising altitude. Therefore, static lighting is not a viable solution for us.

In addition, as seen in the DEMO, there’s a day/night cycle effect where you might start a flight in the afternoon and finish it in the evening. Changing lightmaps between day and night proved ineffective because, within the aircraft’s reference frame, the direction of sunlight constantly shifts - unlike static structures like houses or airports. This required us to use real-time lighting for the entire flight.

Thus, all lighting - from the sun to the spotlights inside the cabin - uses real-time lighting technology. This significantly enhances the experience as players can feel the changes in lighting direction while the plane is in motion.

Image description

  1. Performance Optimization for Real-Time Lighting

The Problem: Using real-time lighting requires continuous calculations by the CPU/GPU, which can decrease FPS. Additionally, real-time shadows are a major performance bottleneck. When real-time lighting is used, Unity increases the polygon count (triangles) by 4-5 times to render shadows, unlike baked lighting, which uses simple black shading in the lightmap. This leads to FPS drops.

The Common Solution: Many simulation games disable shadows to optimize performance. This can reduce the number of triangles by over 60% - for instance, from 7M vertices to 1.2M vertices, which boosts FPS by 20% on a Boeing 737 with nearly 100 seats and over 50 light sources.

Our Decision: However, we chose not to go this route. Disabling shadows significantly diminishes the visual depth of the game, making it feel flat. As someone with a background in visual design and VFX, I found the absence of shadows highly unsatisfying. Therefore, I was determined to find an optimal solution.

Our Approach: We developed a smarter way to render shadows by incorporating distance-based calculations to limit shadow rendering for objects far away or behind the camera. These calculations also restrict the number of shadows rendered depending on the area, improving game performance by up to 60%. This method allows us to create stunning soft shadows with real-time lighting without overburdening the GPU.

Image description

What's new ?

In the next update, we’ll reveal the differences between economy, business, and first-class seating on the flight. Stay tuned. Thank you for reading, and please consider wishlisting the game to support us!

Top comments (0)