{"id":108,"date":"2013-02-11T17:24:20","date_gmt":"2013-02-12T01:24:20","guid":{"rendered":"http:\/\/www.teamfizzgames.com\/Matt\/?p=108"},"modified":"2013-03-20T03:09:47","modified_gmt":"2013-03-20T10:09:47","slug":"cs380-project-1-having-fun-outside-of-game","status":"publish","type":"post","link":"https:\/\/www.teamfizzgames.com\/Matt\/cs380-project-1-having-fun-outside-of-game\/","title":{"rendered":"CS380 Project 1, Having Fun Outside Of Game"},"content":{"rendered":"<p>Shifting gears ever so slightly, I thought I&#8217;d make a post about my first CS380 project. \u00a0CS380 is a class on game AI and the first project is to implement something inside of the provided State Machine Language framework. \u00a0The 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. \u00a0Otherwise, we&#8217;re free to simulate anything we want, modify the code base to handle new graphical, audio, etc features, anything at all.<\/p>\n<p>I made the choice to simulate a parody of my game team. \u00a0There are 4 programmers and 1 producer. \u00a0They all have fatigue and anger levels they have to manage. \u00a0When anyone is too fatigued, they go on break until they get rested. \u00a0When working, programmers will either fix bugs if they have any assigned to them or create bugs if not. \u00a0After either, they will do a small compile, during which they just sit there and reduce fatigue slightly. \u00a0If any bugs are unassigned, the producer will assign them out. \u00a0Otherwise, he will pick between doing scheduling or calling a meeting. \u00a0When a meeting is called, everyone drops whatever they&#8217;re doing and attends.<\/p>\n<p>Now, this is where it gets good. \u00a0When scheduling, the producer increases his anger towards individual programmers based on how many outstanding bugs are assigned to them. \u00a0During meetings, programmers increase anger towards the producer, and they also incur fatigue at a doubled rate. \u00a0When a programmer reaches his anger threshold, he quits. When the producer reaches his anger threshold with a specific programmer, he fires him. \u00a0Any unemployed programmer switches state machines to &#8220;homeless bum&#8221;. \u00a0Homeless bums will either spend 20 seconds crying in the alley or go beg the producer for their job back. \u00a0And so, the simulation is highly cyclical, but each cycle typically devolves into the producer constantly calling meetings and everyone becoming very angry and unemployed.<\/p>\n<p>What started as parody ended up hitting a little closer to the mark than intended as far as the average Digipen team goes. \u00a0So, it was hilariously successful. \u00a0My 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. \u00a0Also, 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. \u00a0It was totally worth the effort.<\/p>\n<p>&nbsp;<\/p>\n<p><center><iframe loading=\"lazy\" src=\"http:\/\/www.youtube.com\/embed\/_BvZoIlIq8o\" height=\"315\" width=\"420\" allowfullscreen=\"\" frameborder=\"0\"><\/iframe><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Shifting gears ever so slightly, I thought I&#8217;d make a post about my first CS380 project. \u00a0CS380 is a class on game AI and the first project is to implement something inside of the provided State Machine Language framework. \u00a0The only limitations are that we have to implement at least \u2026 <a class=\"continue-reading-link\" href=\"https:\/\/www.teamfizzgames.com\/Matt\/cs380-project-1-having-fun-outside-of-game\/\"> Continue reading <span class=\"meta-nav\">&rarr; <\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[6],"tags":[14],"class_list":["post-108","post","type-post","status-publish","format-standard","hentry","category-nongraphicsdevelopment","tag-ai"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p39ImV-1K","_links":{"self":[{"href":"https:\/\/www.teamfizzgames.com\/Matt\/wp-json\/wp\/v2\/posts\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.teamfizzgames.com\/Matt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.teamfizzgames.com\/Matt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.teamfizzgames.com\/Matt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.teamfizzgames.com\/Matt\/wp-json\/wp\/v2\/comments?post=108"}],"version-history":[{"count":5,"href":"https:\/\/www.teamfizzgames.com\/Matt\/wp-json\/wp\/v2\/posts\/108\/revisions"}],"predecessor-version":[{"id":222,"href":"https:\/\/www.teamfizzgames.com\/Matt\/wp-json\/wp\/v2\/posts\/108\/revisions\/222"}],"wp:attachment":[{"href":"https:\/\/www.teamfizzgames.com\/Matt\/wp-json\/wp\/v2\/media?parent=108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.teamfizzgames.com\/Matt\/wp-json\/wp\/v2\/categories?post=108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.teamfizzgames.com\/Matt\/wp-json\/wp\/v2\/tags?post=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}