{"id":19463883,"url":"https://github.com/kasworld/wxgame2","last_synced_at":"2025-04-25T08:32:39.157Z","repository":{"id":13354536,"uuid":"16041981","full_name":"kasworld/wxgame2","owner":"kasworld","description":"python game frame work using wxpython","archived":false,"fork":false,"pushed_at":"2019-12-15T05:49:03.000Z","size":7663,"stargazers_count":13,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-03T19:38:50.839Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kasworld.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-19T07:22:25.000Z","updated_at":"2024-09-11T15:06:58.000Z","dependencies_parsed_at":"2022-08-25T15:41:39.956Z","dependency_job_id":null,"html_url":"https://github.com/kasworld/wxgame2","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/kasworld%2Fwxgame2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasworld%2Fwxgame2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasworld%2Fwxgame2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasworld%2Fwxgame2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kasworld","download_url":"https://codeload.github.com/kasworld/wxgame2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250782306,"owners_count":21486433,"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-11-10T18:12:32.510Z","updated_at":"2025-04-25T08:32:38.128Z","avatar_url":"https://github.com/kasworld.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wxgame2\n\n# updated project by golang https://github.com/kasworld/gowasm2dgame\n\n## python game framework using wxpython\n\n- 2d shooting game library\n- game AI \n- game observer mode\n- server/client works like mmorpg \n- server run game logic and decision \n- client get environment info from server and send AI action to serve\n- separated NPC(AI) server, game logic server, client reception server\n\n### requirement (tested and developed by)\n\n- (x)ubuntu 13.10 \n- python 2.7.x\n- wxpython 2.8.x\n\n\n### twserver.py \n\n- twisted version game server and npc server\n- run game server with s arg\n- run npc server with int(number of ai npc) arg\n\n### twclient.py\n\n- twisted version wxpython game client \n- see wxgameclient.py option \n\n### wxgame2server.py\n\n- game server\n- no need wxpython, and can be run by pypy\n- fork 4 process\n\t- main : main process\n\t- game logic : GameLogicServer class : game logic decision \n\t- npc : NPCServer class : server side NPC AI \n\t- tcp : TCPServer class : client connection reception \n- see help by -h option\n\n### wxgame2client.py\n\n- ui client / observer\n- need wxpython \n- client option\n\t-s serverip\n\t: server ip/name to connect\n\t-t teamname\n\t: AI team name to use (in sever)\n\t: if -t is ommitted client is work as observer mode (no ai team , just visualize game state)\n\n### wxgame2npc.py\n\n- non ui AI client for server load test \n\n### wxgame2lib.py\n\n- common library code\n\n### wxgame2single.py\n\n- old standalone wxgame2 \n\n## korean discription is\n\nhttp://kasw.blogspot.kr/2014/01/github.html\n\nhttp://kasw.blogspot.kr/2014/03/wxgame2.html\n\nhttp://kasw.blogspot.kr/2014/03/wxgame2_15.html\n\nhttp://kasw.blogspot.kr/2014/03/wxgame2_22.html\n\n## update 2014-03-02\n\nwxgame2.py\n\n- some code refine, bug fix\n\nwxgame2server.py, wxgame2client.py\n\n- full refactoring for client/server version\n\n- C/S communication using file/pickle\n\n\n## update 2014-03-07\n\nwxgame2server.py, wxgame2client.py\n\n- code refactoring\n- full tcp networked client/server\n- data packet changed to json\n- AI client base work ( in progress )\n- team score print\n\n\n## update 2014-03-22\n\n- performance tunning\n- observer mode\n- remove resource not used\n- resource load code rework\n- fix cpu usage issue\n\n\n## update 2014-03-28\n\nserver loop changed to select \n\ninter server communication use pipe \n\nprofile and time-run add for performance test \n\nstandalone npc server(for load test)\n\nserver process added\n\n- server/client works like mmorpg \n- server run game logic and decision \n- client get environment info from server and send AI action to serve\n- separated NPC(AI) server, game logic server, client reception server\n\n## update 2014-04-2\n\ntwisted version added \n\n- twservers.py \n- twclient.py \n\n\n## C/S protocol\n\nzlib compressed json : Vector2 =\u003e (x, y)\n\n\tclient send\n\t{\n\t\tcmd : makeTeam,\n\t\tteamname : teamname\n\t}\n\tServer send\n\t{\n\t\tcmd : teamInfo\n\t\tteamname : teamname,\n\t\tteamid : teamid\n\t}\n\n\tclient send\n\t{\n\t\tcmd='reqState',\n\t}\n\tserver send state\n\t{\n\t\t'cmd': 'gameState',\n\t\t'frameinfo': {k: v for k, v in self.frameinfo.iteritems() if k not in ['stat']},\n\t\t'objplayers': [og.serialize() for og in self.dispgroup['objplayers']],\n\t\t'effectObjs': self.dispgroup['effectObjs'].serialize()\n\t}\n\n\tclient send\n\t{\n\t\tcmd='act',\n\t\tteam=self.myteam,\n\t\tactions=actionjson,\n\t}\n\tserver send\n\t{\n\t\tcmd='actACK',\n\t}\n\n\tserver send to server\n\t{\n\t\tcmd: del\n\t}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasworld%2Fwxgame2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkasworld%2Fwxgame2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasworld%2Fwxgame2/lists"}