How the Dynamic Weather System for CarX Street Was Created — CarX Technologies Column
Aleksey Misulev, the lead rendering programmer on the project CarX Street at CarX Technologies, shared his experience simulating rainy weather in an auto simulator with App2Top.
Aleksey Misulev
The dynamic weather system was one of the ideas conceived during the design phase of CarX Street. However, its implementation was postponed for quite some time, as the team prioritized basic game mechanics and other systems essential for the game's foundation.
Once we eventually started working on it, it became clear that adding rain as a standalone effect was not the goal. We aimed to develop a comprehensive dynamic weather system that could alter the perception of the game world and make familiar routes feel entirely different depending on conditions and time of day.
From the outset, we had two main objectives: to create high-quality weather effects without significantly affecting performance and to lay the groundwork for future system expansion, allowing the addition of new weather phenomena.
In the early stages, we examined solutions from other racing games, but it quickly became apparent that this was insufficient. To achieve a convincing outcome, we began to closely observe how rain changes the real-world environment: during day and night, and under varying lighting and precipitation intensity.
We studied the behavior of water on different surfaces, the characteristics of reflections, and how the environment's perception changes as a vehicle moves through it.
These observations helped guide the system's development and provided us with a better understanding of which details truly affect the sensation of rainy weather in the game.
References
The first working prototype appeared relatively quickly, but it soon became clear that the result was unsatisfactory.
Individual elements were functioning: it rained, puddles appeared, and reflections looked convincing. However, the city looked "wet" but not rainy.
Finding the correct atmosphere became the main challenge of the entire development.
The sensation of weather isn't created by a single effect. Scene perception is simultaneously influenced by lighting, cloudiness, reflections, sound, surface conditions, and dozens of other details. As long as any one of these elements didn't fit the overall picture, the result felt artificial.
Time of day added extra complexity. The same rain is perceived very differently during day and night. By day, attention is focused on the precipitation and changes in lighting, while at night, reflections from headlights, neon lights, shop windows, and street lamps come to the forefront. Therefore, the weather system had to be constantly evaluated under various conditions.
Early prototype
One of the most challenging parts of the development was creating raindrops on the camera lens.
We didn’t want to settle for a simple animated effect. It was crucial to achieve the natural behavior of droplets, taking into account their size, movement speed, spreading, and the vehicle's velocity influence.
This system underwent over five major iterations. Initially, we were unsatisfied with the droplets' behavior, then issues arose with their movement at high speed. There were constant debates within the team about the final outcome.
We aimed to strike a balance between the effectiveness of the effect and the naturalistic behavior of the droplets. To achieve this, we drove in the rain several times, recorded videos, and studied the movement of water on glass surfaces at different speeds.
These observations didn't provide ready-made solutions, but they helped us better understand the characteristics of water droplet movement and formed the basis for many system refinements.
In the final version, the droplets not only appeared and moved more naturally but also gradually dried after the rain ceased, transitioning back to sunny weather.
Simultaneously, other elements of the weather system were developed: clouds, lighting, reflections, ripples in puddles, spray from wheels, and sound effects.
One of the most effective solutions unexpectedly turned out to be ordinary puddles. Their implementation required relatively low resource expenditure but noticeably enhanced the sense of moisture in the environment, making scenes more vibrant and convincing.
The weather system is built around smooth transitions between states. Players don't witness instantaneous condition changes. The weather gradually cycles from sunny to overcast and then to rainy.
Along with this, the surrounding world changes. As the rain intensifies, the spray from under the wheels increases, the number of ripples on the water rises, lighting changes, and the overall mood of the scene shifts. When the rain ends, these processes gradually reverse.
During development, we had to forgo several planned solutions. For instance, raindrops on car windows did not make the final release version. At the time, the implementation quality was unsatisfactory, so we decided to further refine this feature separately.
A full-fledged system for animating raindrops on cars was also postponed. Its implementation would require additional material preparation and overhaul of part of the car lineup.
However, the car was instrumental in helping us understand what the system lacked.
At one point, we added raindrops on various body materials and almost immediately noticed a difference. Before this, rain existed as if separately from the car. After enabling interactions with the vehicle, the entire scene began to feel much more cohesive. It was one of those moments when it became clear that we were moving in the right direction.
Car before and after the appearance of droplets
Excluding the concept preparation and reference gathering phases, the development of the system took over three months.
The main technical challenge was reflections. During rain, the number of wet surfaces in the world increases sharply, and subsequently, the rendering system's load grows. It was especially crucial to maintain stable performance on consoles.
To achieve this, we had to review many rendering parameters and find compromises between image quality and performance. This included optimizing reflection handling and tweaking the draw distance of specific scene elements.
Post-release, one of the most pleasant surprises was the players' reaction. We expected the primary focus would be on the weather system itself, but many highlighted the atmosphere and sound effects. Positive reviews frequently mentioned nighttime city drives in the rain.
This validated our belief that our main efforts were directed correctly.
The main lesson we learned from this work is quite simple: players perceive not individual effects, but the overall state of the world. That's why creating a dynamic weather system was much more complex than merely adding rain as a visual effect.
For developers planning to implement a similar system in their project, we would recommend considering weather features even when creating vehicles, materials, and basic technologies. The earlier these systems are integrated into a project’s foundation, the simpler it is to develop, optimize, and expand them in the future.
For us, this work served as another reminder that the most memorable gaming moments often arise from numerous small details. It is these elements that create the atmosphere, transforming an ordinary city drive into an unforgettable memory.
You can view the trailer dedicated to rain in the game here: https://www.youtube.com/watch?v=MApuCmrfYSs








