{"id":21469924,"url":"https://github.com/dobin/nkeyrollover","last_synced_at":"2025-09-20T09:48:29.241Z","repository":{"id":70330140,"uuid":"200431966","full_name":"dobin/nkeyrollover","owner":"dobin","description":"ASCII side-scrolling beat-em-up game","archived":false,"fork":false,"pushed_at":"2019-12-22T17:07:46.000Z","size":5157,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-20T09:48:27.745Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/dobin.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-04T00:06:06.000Z","updated_at":"2022-02-16T21:39:19.000Z","dependencies_parsed_at":"2023-04-27T20:31:33.107Z","dependency_job_id":null,"html_url":"https://github.com/dobin/nkeyrollover","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dobin/nkeyrollover","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobin%2Fnkeyrollover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobin%2Fnkeyrollover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobin%2Fnkeyrollover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobin%2Fnkeyrollover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dobin","download_url":"https://codeload.github.com/dobin/nkeyrollover/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobin%2Fnkeyrollover/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276077894,"owners_count":25581305,"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","status":"online","status_checked_at":"2025-09-20T02:00:10.207Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-23T09:19:30.748Z","updated_at":"2025-09-20T09:48:29.235Z","avatar_url":"https://github.com/dobin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nkeyrollover\n\n* ASCII Beat Em Up \n* With MOBA controls\n\nFollow the adventures of ASCIIMAN.\n\n\n## History Lesson \n\nIn the early days, computers were feed using paper punch cards, and produced results printed on paper. \n\nThen mainframes came around, where you could actually type on a keyboard, instead\nof feeding it paper, and it showed the result on a primitive monitor, instead\nof printing the result. Multi user support was developed, so that more than\none person can use the million dollar computer at once. Each at their own terminal. This was the short time where ASCII games were the only games available. \n\nShortly after, 8-bit home computers were developed, and those with graphic\nprocessing units quickly gained worldwide adoption (Commodore 64, Amiga). \nThey could be used to play games, with graphics!\n\nThe timeframe for ASCII games was very short, and the art was lost forever. \n\nOr was it?\n\n## Videos\n\n* [Asciinema v0.3v2](https://asciinema.org/a/ZaUxKWxRHMBljvz26MRy9lmcv)\n\n## Play It\n\n```\ntelnet dobin.ch\n```\n\n## Requirements\n\n* Python 3.7\n\n\n## Miscellaneous\n\n### Mypy\n\n```\npython3.7 -m mypy nkeyrollover.py\n```\n\nVSC settings.json:\n```\n    \"python.linting.flake8Args\": [\"--ignore=E231,E203,E303,E252,E251\", \"--max-line-length=88\"],\n```\n\n### Unit tests\n\n```\npython3.7 -m unittest\n```\n\n### Performance tests \n\n```\npython3.7 -m cProfile -s time -o perf.txt nkeyrollover.py\npython3.7 readperf.py\n```\n\n## Telnet config \n\nInstall: \n```\n# apt install telnet telnetd\n# cd /opt\n# git clone https://github.com/dobin/nkeyrollover.git\n# touch nkeyrollover/app.log\n# chown game:game nkeyrollover/app.log\n```\n\nConfigure:\n```\n# adduser game # password game\n```\n\n### With password\n\n```\n# chsh -s '/opt/nkeyrollover/nkeyrollover.py' game\n```\n\n### Without password\n\nman telnetd:\n```\n     -L loginprg  This option may be used to specify a different login program.  By default, /usr/lib/telnetlogin is used.\n\n```\n\ninetd.conf:\n```\ntelnet          stream  tcp     nowait  telnetd /usr/sbin/tcpd  /usr/sbin/in.telnetd -L /opt/nkeyrollover/nkeyrollover-inetd.sh\n```\n\n```\n# service inetd restart\n```\n\n## Install?\n\nUbuntu 18.04:\n\n```\nsudo apt install python3-pip  # Install python 3.6 pip\npython3.7 -m pip install pip  # install 3.7 pip\npython3.7 -m pip install -r requirements.txt\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdobin%2Fnkeyrollover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdobin%2Fnkeyrollover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdobin%2Fnkeyrollover/lists"}