{"id":17723785,"url":"https://github.com/ncw/johnroids","last_synced_at":"2025-05-13T01:36:28.736Z","repository":{"id":57550469,"uuid":"140962978","full_name":"ncw/johnroids","owner":"ncw","description":"Johnroids is an old style asteroids game implemented in go, gopherjs and go/wasm","archived":false,"fork":false,"pushed_at":"2018-07-15T15:24:26.000Z","size":1753,"stargazers_count":29,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-20T12:47:11.938Z","etag":null,"topics":["go","golang","gopherjs","sdl2","wasm"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ncw.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":"2018-07-14T16:56:48.000Z","updated_at":"2023-04-27T15:26:30.000Z","dependencies_parsed_at":"2022-09-10T06:10:55.467Z","dependency_job_id":null,"html_url":"https://github.com/ncw/johnroids","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/ncw%2Fjohnroids","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncw%2Fjohnroids/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncw%2Fjohnroids/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncw%2Fjohnroids/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ncw","download_url":"https://codeload.github.com/ncw/johnroids/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253855320,"owners_count":21974445,"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":["go","golang","gopherjs","sdl2","wasm"],"created_at":"2024-10-25T15:44:01.307Z","updated_at":"2025-05-13T01:36:28.712Z","avatar_url":"https://github.com/ncw.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is JohnRoids.  A simple but addictive game whose sole purpose\nis to kill John.\n\n![Johnroids GIF](johnroids.gif \"Johnroids in action\")\n\n[Play the game online.](https://www.craig-wood.com/nick/johnroids/)\n\n[See also Technical Writeup](johnroids-js/README.md)\n\nI wrote this game originally in 1991 on my Acorn Archimedes to\nannoy John when I was bored one rainy afternoon.  John came round and\ninstead of being annoyed played the game for hours and hours - there\nis obviously some kind of perverse thrill in shooting oneself!\n\nBack in 1991 digitised pictures were still something of a rarity.\nI made the one of John from a camcorder video and an extremely hacky\nblack and white video digitiser which I built myself.  Note there are\nactually two images of John - one looking happy and the other not!\n\nThe original was written entirely in ARM assembler to make it go\nfast enough.  However I thought the program deserved not to wither\naway so in 2001 I ported it to C and SDL and in 2018 ported it to Go\nto run in the browser so many more hours can be wasted shooting at\nJohn.\n\nWhen you run the game you'll notice the playing area is rather\nsmall (320x256 pixels).  I'm afraid this was all that was available in\n1991!  I tried making the playing area bigger but the game lost some\nof its visceral thrill, so you are left with a small screen.  If you\nwant it bigger use the zoom function of your browser.\n\nThis is an entirely faithful conversion of the original except for the\nfact that I haven't put the sound back in yet.  The original samples\nare in a very strange format I haven't managed to translate.\n\nYou can find the \u003ca href=\"https://github.com/ncw/johnroids\"\u003esource\ncode on github\u003c/a\u003e - report issues and send fixes there please!\n\nThe instructions are printed on the screen to start, but to summarise\nthey are:\n\n    Z      - Rotate left\n    X      - Rotate right\n    Shift  - Fire thruster\n    Return - Fire gun\n    Space  - Start the game\n\nIf you press \"Toggle Keyboard\" you'll get an onscreen keyboard\nwhich works pretty well on mobile devices.\n\nShoot everything before it touches you. Note that you lose a point\nof score for every bullet you fire. Some of the roids may shoot at you -\nusing thrust is a good idea at this point.  Things get very hectic\nas you go through the levels.\n\n## Installation\n\nThis repository contains 3 implementation of johnroids for SDL,\ngopherjs and go/wasm.\n\nIf you want to try it locally then do\n\n    go get github.com/ncw/johnroids/...\n\nAnd run the `johnroids-sdl` binary.\n\nNote that you'll need the SDL headers and libraries installed for this\nto work.\n\nYou can [play the gopherjs and go/wasm versions\nonline](https://www.craig-wood.com/nick/johnroids/).\n\nTo build these versions `cd to johnroids-js` then `make build` then\n`make serve`.  You may have to alter the path to your go1.11 binary in\nthe Makefile.\n\nEnjoy\n\nNick Craig-Wood  \nnick@craig-wood.com  \n[@njcw](https://twitter.com/njcw)  \n2018-07-14\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncw%2Fjohnroids","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fncw%2Fjohnroids","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncw%2Fjohnroids/lists"}