A free 3D editor for creating ASAM OpenDRIVE-format road network, and running traffic simulation on top of it.
Inspired by the famous title Cities:Skylines, this work is focused on replicating its most fun part: traffic planning.
In comparison with the all-rounder MathWorks RoadRunner, this software is intended for casual users and hobbyists, providing solid core functionalities and easy experience, leaving behind steep learning curve and money investment.
Powered by the industrial-standard, you can conveniently export your work to popular simulators and game engines, such as SUMO and Unity.
Implemented straight up from Qt + OpenGL using tailored render pipelines, the 3D view is significantly more efficient than Qt's default 2D graphics.
One can work on a fairly large scene with basic integrated graphics.
What if you accidentally pulled two roads together and resulted in a weird junction? Or if you wished to remove a lane but accidentally added one instead?
One-click undo and redo will make your life so much easier so that you don't need to clean up this mess yourself.
The idea of making a road editing tool came from the time when I was learning Unity during my graduate study.
Tired of all kinds of FPS or platformer games as Unity bootcamp projects, I really wanted to try making something
different. I'm a big fan of Simcity games, and was especially motivated by the huge success of Cities:Skylines.
It would be super cool if I could program something like that, I always spoke to myself.
I launched the first project in late 2018, named RoadBuilder. Soon I found it's a much bigger kind of challenge
than popular entry-level games, due to the nature that most of its content was player-defined: there's no pre-built scene or content,
while I need to provide the player with robust and convenient editing tools. In this sense, the game engine itself is less useful than usual:
rather than leveraging Unity, I'm largely building an engine within it.
On the other hand, performance is always a concern for this kind of game, and without proper optimization, one can easily end up with
thousands and thousands of game objects, gradually overwhelming the hardware as the map expands.
As a newbie in Unity and game development, I underestimated these challenges at that time. The 1-year development ended up with an editor that appeared useable, but one never knows when it will crash or freeze due to random bugs. Even if you got lucky and triggered no issues, it's guaranteed the frame rate will become intolerable within 30 minutes, if you don't have the most powerful graphics card.
After four years in the industry as a simulation engineer, I believe I've got enough experience and skills to stand up to the challenge. This time, I chose the combination of C++ due to its unbeatable performance, and Qt for more straightforward UI development. Instead of reinventing the wheel, I followed ASAM OpenDRIVE and found an extremely useful xodr library to start playing with.
Then the journey of LaneMaker began as year 2024 arrived...