{"id":17053129,"url":"https://github.com/bschwind/ai-example","last_synced_at":"2025-03-23T05:23:25.919Z","repository":{"id":4101962,"uuid":"5210865","full_name":"bschwind/AI-Example","owner":"bschwind","description":"A small XNA sample demonstrating behavior-based AI","archived":false,"fork":false,"pushed_at":"2012-11-03T02:39:59.000Z","size":132,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-20T17:51:45.996Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bschwind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-07-28T00:34:09.000Z","updated_at":"2018-02-26T02:16:05.000Z","dependencies_parsed_at":"2022-09-17T16:21:41.146Z","dependency_job_id":null,"html_url":"https://github.com/bschwind/AI-Example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bschwind%2FAI-Example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bschwind%2FAI-Example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bschwind%2FAI-Example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bschwind%2FAI-Example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bschwind","download_url":"https://codeload.github.com/bschwind/AI-Example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245058842,"owners_count":20554181,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T10:11:24.745Z","updated_at":"2025-03-23T05:23:25.882Z","avatar_url":"https://github.com/bschwind.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"AI-Example\n===\n\nA simple XNA game that AI players compete in, intended as a simple learning exercise for artificial intelligence.\nThis was a term project I did for an artificial intelligence course.\n\nIt is a super simplified real time strategy game. Each team has a set of units, which gather resources and\ntalk to each other. They use these resources to activate radio towers or build new units. When they confront\nenemies, they will attack. The behaviors are meant to be fairly customizable and it is easy to create new ones.\n\nOne feature I had planned was a sort of evolutionary mechanic. Teams would be given random parameters at the start\nof each game. The winning team would get to keep their parameters into the next game, and ideally, the team with\nthe strongest traits would become dominant. I don't know what this would ultimately acoomplish, but it sounds\ncool to me :D\n\nThe units are driven by a list of behaviors. Behaviors at the beginning of the list (index 0,1,2, etc.) have low\npriority. The last behavior in the list has the highest priority, and if it is fired, will override all others.\nEach behavior defines the conditions under which it will fire. Each behavior also provides a method which is called\nwhen the behavior starts, and a method which is called every frame to update the behavior.\n\nThe units also pass messages to each other, and their \"radio range\" can be increased by being inside the radius of\na radio tower. They alert each other of nearby resources or enemies. Radio towers start off inactive, but units\ncan activate them by depositing resources into them.\n\nControls:\n\nWASD for camera movement, and +/- for zooming. Use the arrow keys to tilt the camera...just because!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbschwind%2Fai-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbschwind%2Fai-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbschwind%2Fai-example/lists"}