Fuzzy racer

Language

C#

Framework

Unity Engine

Role

Programmer

Duration

3 Weeks

This project was a rudimentary implementation of a Fuzzy System which was able to control what direction the car would need to turn in order to remain on the racing line. The viability of this approach was assessed by comparing it to another approach, finite state machine.

It was observed that the Finite State Machine (FSM) was quicker and more accurate than the Fuzzy Logic system as the latter could not measure up in most extreme test cases. This was an interesting assignment to work on as it helped in understanding how AI Logic is written out and how some systems would be better suited than others for different problems.

This project was initially created as a part of my coursework, and was later edited to take on the form of a endless scrolling racer. The player may choose to play with the FSM Car or the Fuzzy Car if they want a challenge. The Graphics of the Racer was initially designed in SFML with C++, but during the edit, was ported into Unity with C#.

I enjoy challenging myself to plan and write my own AI pseudo and research how it can be further optimized. the AI for this project does not use any third party libraries either. The code repository is available here

Given the opportunity, I would like to work with AI systems to define new behaviors in NPCs or even take a crack at writing my own system!

Objective

Create a Simple AI Racer

 

Features

1. Manual Input to see the values controlling the Steering

2. Fuzzy Logic to keep the Racer on the road
3. Finite State Machine to keep the Racer on the road

Clips from the game