{"id":21162562,"url":"https://github.com/josepedrodias/oily","last_synced_at":"2026-05-17T20:33:02.706Z","repository":{"id":144777406,"uuid":"285939847","full_name":"JosePedroDias/oily","owner":"JosePedroDias","description":null,"archived":false,"fork":false,"pushed_at":"2020-08-17T00:40:35.000Z","size":509,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T09:48:26.725Z","etag":null,"topics":["game-jam","gamedev","lua","multiplayer"],"latest_commit_sha":null,"homepage":"https://josepedrodias.itch.io/oily","language":"Lua","has_issues":false,"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/JosePedroDias.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-07T23:43:53.000Z","updated_at":"2022-05-05T14:14:45.000Z","dependencies_parsed_at":"2024-07-23T05:06:31.790Z","dependency_job_id":null,"html_url":"https://github.com/JosePedroDias/oily","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosePedroDias%2Foily","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosePedroDias%2Foily/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosePedroDias%2Foily/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosePedroDias%2Foily/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JosePedroDias","download_url":"https://codeload.github.com/JosePedroDias/oily/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243606960,"owners_count":20318314,"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":["game-jam","gamedev","lua","multiplayer"],"created_at":"2024-11-20T13:30:54.157Z","updated_at":"2025-12-29T20:35:32.411Z","avatar_url":"https://github.com/JosePedroDias.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Oily 🛢\r\n\r\n## TL;DR\r\n\r\nA multiplayer game over network. Can be played alone as well.\r\nPlayers are placed underground and have the objective of digging dirt so that oil reaches their tower(s).\r\nFirst player to capture 100 oil gallons win.\r\n\r\nEach player can move either digging or placing dirt.\r\nThere's a maximum amount of holes one can perform so use your potential carefully and fetch more from caves in the map.\r\nPlayers can't move past oil so don't get yourself surrounded by it!\r\n\r\nThis game is submission to the [multiplayer game jam](https://itch.io/jam/multiplayer-jam). It was voted 3rd out of 7 games submitted.\r\n\r\n_Controls_ ⌨️\r\n\r\n- `arrows` move the player\r\n- `space bar` toggles between placing and digging dirt (having reached 0 holes the mode switches for you as well)\r\n- `R` starts a new map (if you get stuck for instance). Please don't use it during a game 🙏\r\n- `F` toggles fullscreen\r\n- `S` toggles sound effects\r\n\r\n## TODO 🧑‍🍳\r\n\r\n- title screen 💯 (ongoing...)\r\n  - convert title image to matrix (WIP, buggy)\r\n  - refactor client to render a custom update fn\r\n  - add menu/transition\r\n- in-game instructions 📃\r\n- eyecandy 🌈\r\n  - use textures instead of solid colors for materials (https://love2d.org/wiki/love.graphics.polygon + texture vs surface stencil)\r\n  - close in camera according to action context\r\n  - hint exact placement of extraction (vertical line in tower)\r\n  - add a sky texture\r\n- network 🕸\r\n  - for now 2 slots in a single channel/session. additional people wait for turn to enter\r\n  - remove space btw cmd and args in netcode\r\n- game overs detection 💀\r\n  - player between oil\r\n  - no more holes (player spent theirs and oil filled map holes)\r\n- procedural map 🗺\r\n  - confirm oil starts not in/surrounded by cave (not REQUIRED)\r\n  - more than one tower per player? (may be confusing)\r\n\r\n## Game round management\r\n\r\nPlaying always connects and interacts with the server. If no other player is around, you play solo. As soon as another player joins, a 2 player game starts - while you both are there you can play several games.\r\n\r\nIf you get in when a 2 player game is happening, you will be queued to enter as soon as another players leaves.\r\n(I haven't thoroughly tested the retry code so in the unlikely event of you not getting in in 2-5 min restart the game).\r\n\r\n## Credits 😅\r\n\r\n- game code, concept and laughable artwork by José Pedro Dias;\r\n- additional game design and beta testing by António José da Silva.\r\n\r\n## Resources 📖\r\n\r\nThis game was coded in [lua](http://www.lua.org/) with the awesome [love2d](https://love2d.org/) game framework.  \r\nNetwork code based on [enet](http://enet.bespin.org/) / [enet lua bindings](https://leafo.net/lua-enet/).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosepedrodias%2Foily","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosepedrodias%2Foily","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosepedrodias%2Foily/lists"}