Callum Dourneen
Game Developer
< Back
Project_Taxi
A thrilling taxi simulator.
Project Screenshot Project Screenshot Project Screenshot Project Screenshot Project Screenshot
About
Step into the fast-paced world of Project Taxi, an immersive taxi simulation game where every ride counts! Navigate busy city streets, pick up dynamic passengers, and build your own taxi empire. Upgrade your fleet, hire drivers, and manage your business while tackling unpredictable traffic, weather, and demanding customers. With realistic driving mechanics, a detailed open-world city, and strategic business elements, Project Taxi puts you in the driver’s seat of your own success story.
Project Details
Game Title: NA
Genre: Simulation
Platform: PC
Development Tools: Unreal Engine, C++
Game Features:
  • Player and Vehicle Systems
  • Job System
  • Vehicle Managment and Upgrades
  • AI Vehicles
  • Employee Management
  • Technical Analysis
    What I Learnt
    Enhanced Input System in UE5:
    As this was my first project in Unreal Engine 5, one of the first challenges was understanding the Enhanced Input System. This system allowed me to define input actions for all vehicle components and movement actions, streamlining the input management process. It helped in making the vehicle control system flexible and scalable for future updates.
    Switching from C++ to Blueprints:
    The initial version of the game started with C++ for prototyping, but I quickly realized that building a game loop in C++ was taking too long. This led me to transition to Blueprints, which I had never used extensively before. Over time, I became proficient in Blueprints, allowing me to develop custom functions and game mechanics rapidly. This shift not only sped up the development process but also improved my understanding of how Unreal's C++ and Blueprints integrate with each other. For instance, learning how collision parameters work in Blueprints helped me grasp their practical application in C++, making me more efficient at debugging and enhancing the game.
    AI Pathfinding for Vehicles:
    One of the key challenges was creating a working AI vehicle path system. I learned how to implement AI pathfinding logic to allow NPC vehicles to drive around dynamically within the game world. This involved setting up waypoints and triggers, which helped AI vehicles follow specific paths and avoid obstacles. This system is fundamental to creating a believable and functional world where AI drivers interact seamlessly with the player’s vehicle.
    UI/UX Design for Dynamic Systems:
    Since the game involves many dynamic elements like ongoing jobs, passenger pickups, vehicle statuses, and money earned, I had to design a UI that could quickly and clearly communicate all these changing variables to the player. I gained valuable experience in UI/UX design by organizing this information, ensuring that the UI was responsive and intuitive. I also learned the importance of keeping the interface clean and providing feedback through animations or colour changes (e.g., green for completed jobs, red for traffic fines).
    Optimization and Asset Management:
    One significant challenge was optimizing the game to run smoothly, especially with the vehicle models. The initial vehicle assets had extremely high polygon counts, with millions of vertices, causing severe performance drops. I learned the importance of using Level of Detail (LOD) models to reduce rendering overhead for distant objects. To further enhance performance, I plan to implement object pooling for both AI and player vehicles. This approach would recycle existing vehicles instead of spawning new ones, reducing memory usage and improving runtime efficiency. This experience underscored the critical role of optimization in maintaining performance, especially in systems with dynamic, resource-heavy objects.