{"bundle_type":"pith_open_graph_bundle","bundle_version":"1.0","pith_number":"pith:2015:72VIJDIUI23JSCAPODPE7DEYKB","short_pith_number":"pith:72VIJDIU","canonical_record":{"source":{"id":"1511.07714","kind":"arxiv","version":1},"metadata":{"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.CY","submitted_at":"2015-11-24T14:13:33Z","cross_cats_sorted":[],"title_canon_sha256":"ab79bda85a65836a6409aac332e8e93688d719f705ae772d205d6882ddea5445","abstract_canon_sha256":"e3debb635f2b5bf16643b5ec7459e4d0152329268d284c5b47387090b16a6f79"},"schema_version":"1.0"},"canonical_sha256":"feaa848d1446b699080f70de4f8c98506e838c52d6aba81209ccbedda9ff23f5","source":{"kind":"arxiv","id":"1511.07714","version":1},"source_aliases":[{"alias_kind":"arxiv","alias_value":"1511.07714","created_at":"2026-05-18T01:26:03Z"},{"alias_kind":"arxiv_version","alias_value":"1511.07714v1","created_at":"2026-05-18T01:26:03Z"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.1511.07714","created_at":"2026-05-18T01:26:03Z"},{"alias_kind":"pith_short_12","alias_value":"72VIJDIUI23J","created_at":"2026-05-18T12:29:07Z"},{"alias_kind":"pith_short_16","alias_value":"72VIJDIUI23JSCAP","created_at":"2026-05-18T12:29:07Z"},{"alias_kind":"pith_short_8","alias_value":"72VIJDIU","created_at":"2026-05-18T12:29:07Z"}],"events":[{"event_type":"record_created","subject_pith_number":"pith:2015:72VIJDIUI23JSCAPODPE7DEYKB","target":"record","payload":{"canonical_record":{"source":{"id":"1511.07714","kind":"arxiv","version":1},"metadata":{"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.CY","submitted_at":"2015-11-24T14:13:33Z","cross_cats_sorted":[],"title_canon_sha256":"ab79bda85a65836a6409aac332e8e93688d719f705ae772d205d6882ddea5445","abstract_canon_sha256":"e3debb635f2b5bf16643b5ec7459e4d0152329268d284c5b47387090b16a6f79"},"schema_version":"1.0"},"canonical_sha256":"feaa848d1446b699080f70de4f8c98506e838c52d6aba81209ccbedda9ff23f5","receipt":{"kind":"pith_receipt","key_id":"pith-v1-2026-05","algorithm":"ed25519","signed_at":"2026-05-18T01:26:03.904428Z","signature_b64":"Umvy0XNscEj6LYZnPeZDdI17N7vQnGZWVOHPFLvpVgbWe63eycGWLuVp4powmlnSS/2L4u7fmE1NhMu+/Y8BCg==","signed_message":"canonical_sha256_bytes","builder_version":"pith-number-builder-2026-05-17-v1","receipt_version":"0.3","canonical_sha256":"feaa848d1446b699080f70de4f8c98506e838c52d6aba81209ccbedda9ff23f5","last_reissued_at":"2026-05-18T01:26:03.903652Z","signature_status":"signed_v1","first_computed_at":"2026-05-18T01:26:03.903652Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"source_kind":"arxiv","source_id":"1511.07714","source_version":1,"attestation_state":"computed"},"signer":{"signer_id":"pith.science","signer_type":"pith_registry","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"created_at":"2026-05-18T01:26:03Z","supersedes":[],"prev_event":null,"signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"BxSx5lUvXLjNHbwo5JqMkb46ED/d36rrJpMNbJ/n+6uw1LxBsrYFKcf8InxLoYuUONqWorMvTjYPKVUiH02ICA==","signed_message":"open_graph_event_sha256_bytes","signed_at":"2026-05-27T23:59:52.948233Z"},"content_sha256":"53f08c1c1d37ab37901e4fb2d82064e928dcc6204b40ec7bc8da135011632de3","schema_version":"1.0","event_id":"sha256:53f08c1c1d37ab37901e4fb2d82064e928dcc6204b40ec7bc8da135011632de3"},{"event_type":"graph_snapshot","subject_pith_number":"pith:2015:72VIJDIUI23JSCAPODPE7DEYKB","target":"graph","payload":{"graph_snapshot":{"paper":{"title":"A Python Engine for Teaching Artificial Intelligence in Games","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","headline":"","cross_cats":[],"primary_cat":"cs.CY","authors_text":"Mark O. Riedl","submitted_at":"2015-11-24T14:13:33Z","abstract_excerpt":"Computer games play an important role in our society and motivate people to learn computer science. Since artificial intelligence is integral to most games, they can also be used to teach artificial intelligence. We introduce the Game AI Game Engine (GAIGE), a Python game engine specifically designed to teach about how AI is used in computer games. A progression of seven assignments builds toward a complete, working Multi-User Battle Arena (MOBA) game. We describe the engine, the assignments, and our experiences using it in a class on Game Artificial Intelligence."},"claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"1511.07714","kind":"arxiv","version":1},"verdict":{"id":null,"model_set":{},"created_at":null,"strongest_claim":"","one_line_summary":"","pipeline_version":null,"weakest_assumption":"","pith_extraction_headline":""},"references":{"count":0,"sample":[],"resolved_work":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","internal_anchors":0},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"author_claims":{"count":0,"strong_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"builder_version":"pith-number-builder-2026-05-17-v1"},"verdict_id":null},"signer":{"signer_id":"pith.science","signer_type":"pith_registry","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"created_at":"2026-05-18T01:26:03Z","supersedes":[],"prev_event":null,"signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"sHPmahr9XaJI3ZALM/sp3OK+RDBOyIWCaGtI6urn0PxGh6NFqksGe10WR/COEm1PUIhuYw01BBBJtfbxDV3lCg==","signed_message":"open_graph_event_sha256_bytes","signed_at":"2026-05-27T23:59:52.948928Z"},"content_sha256":"54d9dbe3bb31120767e0805954d6e7a355016b0c231e24129a13fda0eb02cb70","schema_version":"1.0","event_id":"sha256:54d9dbe3bb31120767e0805954d6e7a355016b0c231e24129a13fda0eb02cb70"}],"timestamp_proofs":[],"mirror_hints":[{"mirror_type":"https","name":"Pith Resolver","base_url":"https://pith.science","bundle_url":"https://pith.science/pith/72VIJDIUI23JSCAPODPE7DEYKB/bundle.json","state_url":"https://pith.science/pith/72VIJDIUI23JSCAPODPE7DEYKB/state.json","well_known_bundle_url":"https://pith.science/.well-known/pith/72VIJDIUI23JSCAPODPE7DEYKB/bundle.json","status":"primary"}],"public_keys":[{"key_id":"pith-v1-2026-05","algorithm":"ed25519","format":"raw","public_key_b64":"stVStoiQhXFxp4s2pdzPNoqVNBMojDU/fJ2db5S3CbM=","public_key_hex":"b2d552b68890857171a78b36a5dccf368a953413288c353f7c9d9d6f94b709b3","fingerprint_sha256_b32_first128bits":"RVFV5Z2OI2J3ZUO7ERDEBCYNKS","fingerprint_sha256_hex":"8d4b5ee74e4693bcd1df2446408b0d54","rotates_at":null,"url":"https://pith.science/pith-signing-key.json","notes":"Pith uses this Ed25519 key to sign canonical record SHA-256 digests. Verify with: ed25519_verify(public_key, message=canonical_sha256_bytes, signature=base64decode(signature_b64))."}],"merge_version":"pith-open-graph-merge-v1","built_at":"2026-05-27T23:59:52Z","links":{"resolver":"https://pith.science/pith/72VIJDIUI23JSCAPODPE7DEYKB","bundle":"https://pith.science/pith/72VIJDIUI23JSCAPODPE7DEYKB/bundle.json","state":"https://pith.science/pith/72VIJDIUI23JSCAPODPE7DEYKB/state.json","well_known_bundle":"https://pith.science/.well-known/pith/72VIJDIUI23JSCAPODPE7DEYKB/bundle.json"},"state":{"state_type":"pith_open_graph_state","state_version":"1.0","pith_number":"pith:2015:72VIJDIUI23JSCAPODPE7DEYKB","merge_version":"pith-open-graph-merge-v1","event_count":2,"valid_event_count":2,"invalid_event_count":0,"equivocation_count":0,"current":{"canonical_record":{"metadata":{"abstract_canon_sha256":"e3debb635f2b5bf16643b5ec7459e4d0152329268d284c5b47387090b16a6f79","cross_cats_sorted":[],"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.CY","submitted_at":"2015-11-24T14:13:33Z","title_canon_sha256":"ab79bda85a65836a6409aac332e8e93688d719f705ae772d205d6882ddea5445"},"schema_version":"1.0","source":{"id":"1511.07714","kind":"arxiv","version":1}},"source_aliases":[{"alias_kind":"arxiv","alias_value":"1511.07714","created_at":"2026-05-18T01:26:03Z"},{"alias_kind":"arxiv_version","alias_value":"1511.07714v1","created_at":"2026-05-18T01:26:03Z"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.1511.07714","created_at":"2026-05-18T01:26:03Z"},{"alias_kind":"pith_short_12","alias_value":"72VIJDIUI23J","created_at":"2026-05-18T12:29:07Z"},{"alias_kind":"pith_short_16","alias_value":"72VIJDIUI23JSCAP","created_at":"2026-05-18T12:29:07Z"},{"alias_kind":"pith_short_8","alias_value":"72VIJDIU","created_at":"2026-05-18T12:29:07Z"}],"graph_snapshots":[{"event_id":"sha256:54d9dbe3bb31120767e0805954d6e7a355016b0c231e24129a13fda0eb02cb70","target":"graph","created_at":"2026-05-18T01:26:03Z","signer":{"key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signer_id":"pith.science","signer_type":"pith_registry"},"payload":{"graph_snapshot":{"author_claims":{"count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","strong_count":0},"builder_version":"pith-number-builder-2026-05-17-v1","claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"paper":{"abstract_excerpt":"Computer games play an important role in our society and motivate people to learn computer science. Since artificial intelligence is integral to most games, they can also be used to teach artificial intelligence. We introduce the Game AI Game Engine (GAIGE), a Python game engine specifically designed to teach about how AI is used in computer games. A progression of seven assignments builds toward a complete, working Multi-User Battle Arena (MOBA) game. We describe the engine, the assignments, and our experiences using it in a class on Game Artificial Intelligence.","authors_text":"Mark O. Riedl","cross_cats":[],"headline":"","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.CY","submitted_at":"2015-11-24T14:13:33Z","title":"A Python Engine for Teaching Artificial Intelligence in Games"},"references":{"count":0,"internal_anchors":0,"resolved_work":0,"sample":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"1511.07714","kind":"arxiv","version":1},"verdict":{"created_at":null,"id":null,"model_set":{},"one_line_summary":"","pipeline_version":null,"pith_extraction_headline":"","strongest_claim":"","weakest_assumption":""}},"verdict_id":null}}],"author_attestations":[],"timestamp_anchors":[],"storage_attestations":[],"citation_signatures":[],"replication_records":[],"corrections":[],"mirror_hints":[],"record_created":{"event_id":"sha256:53f08c1c1d37ab37901e4fb2d82064e928dcc6204b40ec7bc8da135011632de3","target":"record","created_at":"2026-05-18T01:26:03Z","signer":{"key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signer_id":"pith.science","signer_type":"pith_registry"},"payload":{"attestation_state":"computed","canonical_record":{"metadata":{"abstract_canon_sha256":"e3debb635f2b5bf16643b5ec7459e4d0152329268d284c5b47387090b16a6f79","cross_cats_sorted":[],"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.CY","submitted_at":"2015-11-24T14:13:33Z","title_canon_sha256":"ab79bda85a65836a6409aac332e8e93688d719f705ae772d205d6882ddea5445"},"schema_version":"1.0","source":{"id":"1511.07714","kind":"arxiv","version":1}},"canonical_sha256":"feaa848d1446b699080f70de4f8c98506e838c52d6aba81209ccbedda9ff23f5","receipt":{"algorithm":"ed25519","builder_version":"pith-number-builder-2026-05-17-v1","canonical_sha256":"feaa848d1446b699080f70de4f8c98506e838c52d6aba81209ccbedda9ff23f5","first_computed_at":"2026-05-18T01:26:03.903652Z","key_id":"pith-v1-2026-05","kind":"pith_receipt","last_reissued_at":"2026-05-18T01:26:03.903652Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","receipt_version":"0.3","signature_b64":"Umvy0XNscEj6LYZnPeZDdI17N7vQnGZWVOHPFLvpVgbWe63eycGWLuVp4powmlnSS/2L4u7fmE1NhMu+/Y8BCg==","signature_status":"signed_v1","signed_at":"2026-05-18T01:26:03.904428Z","signed_message":"canonical_sha256_bytes"},"source_id":"1511.07714","source_kind":"arxiv","source_version":1}}},"equivocations":[],"invalid_events":[],"applied_event_ids":["sha256:53f08c1c1d37ab37901e4fb2d82064e928dcc6204b40ec7bc8da135011632de3","sha256:54d9dbe3bb31120767e0805954d6e7a355016b0c231e24129a13fda0eb02cb70"],"state_sha256":"e4f2b52f8e5d0c7088e3fbd1f876682ca393ac905bc526d6d6db78c909e71960"},"bundle_signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"3+GdBk6eWWfUs6cIBU3H+LRWEWkVl16GptLMU7vxghvoT1v2WKvBGbgcOTXmcCpwQZ+ZKnb4G3sgogFYU9QeDA==","signed_message":"bundle_sha256_bytes","signed_at":"2026-05-27T23:59:52.952362Z","bundle_sha256":"0412925a9315121c743eeb09b20f59015ce7380591723c27e79bae5e42f80807"}}