Shifting gears ever so slightly, I thought I’d make a post about my first CS380 project. CS380 is a class on game AI and the first project is to implement something inside of the provided State Machine Language framework. The only limitations are that we have to implement at least 3 state machines, at least 15 states between them, and then at least 10 unique features from a list we were given. Otherwise, we’re free to simulate anything we want, modify the code base to handle new graphical, audio, etc features, anything at all.
I made the choice to simulate a parody of my game team. There are 4 programmers and 1 producer. They all have fatigue and anger levels they have to manage. When anyone is too fatigued, they go on break until they get rested. When working, programmers will either fix bugs if they have any assigned to them or create bugs if not. After either, they will do a small compile, during which they just sit there and reduce fatigue slightly. If any bugs are unassigned, the producer will assign them out. Otherwise, he will pick between doing scheduling or calling a meeting. When a meeting is called, everyone drops whatever they’re doing and attends.
Now, this is where it gets good. When scheduling, the producer increases his anger towards individual programmers based on how many outstanding bugs are assigned to them. During meetings, programmers increase anger towards the producer, and they also incur fatigue at a doubled rate. When a programmer reaches his anger threshold, he quits. When the producer reaches his anger threshold with a specific programmer, he fires him. Any unemployed programmer switches state machines to “homeless bum”. Homeless bums will either spend 20 seconds crying in the alley or go beg the producer for their job back. And so, the simulation is highly cyclical, but each cycle typically devolves into the producer constantly calling meetings and everyone becoming very angry and unemployed.
What started as parody ended up hitting a little closer to the mark than intended as far as the average Digipen team goes. So, it was hilariously successful. My only regret was not starting early enough to have time to change the graphics framework to load in extra models and animations to make the visuals match the logic. Also, this was the first school project outside of game class where I felt compelled to put in extra work to make something specific because I wanted to and not because it was worth any class credit. It was totally worth the effort.