{"id":13896636,"url":"https://github.com/tylerneylon/pacpac","last_synced_at":"2025-07-17T13:30:37.691Z","repository":{"id":7432165,"uuid":"8770121","full_name":"tylerneylon/pacpac","owner":"tylerneylon","description":"A lua-based Pac-Man clone.","archived":false,"fork":false,"pushed_at":"2015-06-18T21:32:21.000Z","size":1905,"stargazers_count":344,"open_issues_count":1,"forks_count":35,"subscribers_count":26,"default_branch":"master","last_synced_at":"2024-11-25T02:33:13.360Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","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/tylerneylon.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":"2013-03-14T07:12:12.000Z","updated_at":"2024-11-06T22:01:39.000Z","dependencies_parsed_at":"2022-08-26T20:12:26.455Z","dependency_job_id":null,"html_url":"https://github.com/tylerneylon/pacpac","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tylerneylon/pacpac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylerneylon%2Fpacpac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylerneylon%2Fpacpac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylerneylon%2Fpacpac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylerneylon%2Fpacpac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tylerneylon","download_url":"https://codeload.github.com/tylerneylon/pacpac/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylerneylon%2Fpacpac/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265611067,"owners_count":23797806,"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-08-06T18:03:03.139Z","updated_at":"2025-07-17T13:30:37.329Z","avatar_url":"https://github.com/tylerneylon.png","language":"Lua","readme":"# PacPac\n\nThis is Pac-Man from a parallel universe.\n\n![PacPac Title](https://raw.github.com/tylerneylon/pacpac/master/screenshots/title.png)\n\n![PacPac Level Samples](https://raw.github.com/tylerneylon/pacpac/master/screenshots/level1_2.png)\n\nThere are 3 mazes to play through. This is thrice as\nmany as the original pac-man :)\n\nYou need the [löve](http://love2d.org) game engine to play. The current code is written for löve\nv0.9.2.\n\nThe original code was written in under 24 hours as a challenge.\nMy wife didn't believe I could make a pac-man-like game in a day.\nHere's a fun [first 24-hour evolution of the game in screenshots](http://tylerneylon.com/pacpac/).\n\n## How to install and run\n\n1. Download and install [löve](http://love2d.org). (Current code has been tested with löve v0.9.2.)\n2. Download and unzip the [zipfile of this repo](https://github.com/tylerneylon/pacpac/archive/master.zip).\n3. Double-click the file `pacpac.love`.\n   Alternatively, in OS X and Ubuntu, type `love pacpac.love` from the command line - which assumes\n   the `love` executable is in your path.\n\n## Level Editing\n\nI've set up the game so that you can make your own levels without having to know how to program.\nJust edit `level1.txt` or any other `levelN.txt` file to change that level. The file format is\nexplained within those files, and this format is designed to be human-friendly and flexible.\n\nIf you're running PacPac using `pacpac.love`, then you need to run\n`make_love_file.sh` before the level changes will show up in the game. This\nshell script is meant to be run from the command line by cd'ing into your pacpac\ndirectory (the one containing `make_love_file.sh`) and typing the command\n`./make_love_file.sh`.\n\n## Contributions\n\nIt would be awesome if other coders contributed more levels. I'd like each level to add something\nnew to the game. For now, level 2 adds a new layout and color, which in most games would\nnot count as \"new\" but since Pac-Man has such a strong 1-layout tradition, I'm counting it as new.\n\nMy code philosophy for PacPac is to keep the code a little dirty, as in using global variables\nfreely. Seriously. It's not that dirty is good, but rather that getting things done is good.\nSo I'm asking for contributions that fix bugs or improve gameplay, but are not focused on\nrefactoring. Refactoring is fine as a by-product of other changes, though.\n\nIf you'd like to add a level, please read the next section to understand what kind of\nlevel designs would fit in with the game. Thanks!\n\n## Things That Could be Added\n\n### Levels\n\nBelow are a few ideas for later levels.\nIt would be cool to arrange them in the game from easiest to hardest.\n\n* New ghost AI's in different colors.\n* A gun that can shoot ghosts.\n* A level with keys that can open doors. Doors are basically walls that you can erase\n  with a key.\n* A level with portal-like mechanics. Maybe a warp door that changes connected doors,\n  or a warp gun. (This sounds a little scary to have to debug.)\n* A level where the hero and ghosts switch roles. By default, the ghosts are weak - i.e., flashing\n  white/blue and can be eaten. The ghosts eat dots, and if they eat a superdot, then the hero\n  becomes vulnerable - i.e., the ghosts appear non-flashing temporarily. However, the ghosts no\n  longer reincarnate, and it is the hero's goal to eat all of them.\n\nOnce we have 10 good and mostly bug-free levels, I'll consider the game to be v1-ready.\n\n### Other features\n\nSummary:\n\n* Tasty foods for bonus points\n* One or maybe two extra lives for certain score points\n* Replay a previously-played game\n* Analytics\n* Server-based high-score-of-the-day\n\n#### Tasty foods\n\nIn the original game, you can eat fruit like apples and oranges.\nIt would be cool to add more fun foods like pizza, burgers, fries,\nand waffles. Maybe cinnamon rolls. Foods that are tasty and would\nmake for fun pixel art.\n\n#### Extra lives\n\nIn the original game, you also get an extra life once you reach a\ncertain score. This is a nice feature that we could include\nin PacPac.\n\n#### Game replay\n\nAutomatically save all the effective commands the user provides so that\nwe can exactly replay that game as a watch-only experience. Maybe this\ncould happen automatically for the highest-scoring game, which would\nbe displayed from the title screen if the user is idle.\n\nThere are a couple points to be careful about. The game currently uses\na random number generator, so we'd have to save the seed used. It also\ndepends on the dt values sent in to update, so we'd have to be careful\nabout how the replay worked with the dt values. That might be tricky.\nFinally, there is technically analog input available through gamepads,\nbut this can be discretized so that we only need to remember the\nsuccessful calls to `dir_request`.\n\n#### Analytics\n\nBy this, I mean heat maps of death locations on each level, and average\ntime-of-life per level. This could help us figure out which levels are\nmost challenging. From there we could do things like modify too-hard or\ntoo-easy sections, and make sure the levels are in the right order.\n\n#### Server-based scores\n\nThis is self-explanatory. Even better is being able to download and watch\na replay of good high scores.\n\n## Credits\n\nThis game uses the font 8bitoperator created by\n[GrandChaos9000](http://grandchaos9000.deviantart.com/)\n(aka Jayvee D. Enaguas) and is distributed under the\n[CC-BY-SA](http://creativecommons.org/licenses/by-sa/2.0/) license.\n\nThanks to [jonfk](https://github.com/jonfk) for upgrading the code\nfor löve v0.9.2.\n","funding_links":[],"categories":["Lua","资源","Game Development","Resources"],"sub_categories":["Game Development"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftylerneylon%2Fpacpac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftylerneylon%2Fpacpac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftylerneylon%2Fpacpac/lists"}