{"id":19966641,"url":"https://github.com/engineersmith/love-jam-2024","last_synced_at":"2025-05-04T00:31:27.117Z","repository":{"id":221703442,"uuid":"755152170","full_name":"EngineerSmith/love-jam-2024","owner":"EngineerSmith","description":null,"archived":true,"fork":false,"pushed_at":"2024-02-20T15:36:01.000Z","size":217,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-01T20:38:57.885Z","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/EngineerSmith.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}},"created_at":"2024-02-09T14:31:13.000Z","updated_at":"2024-05-20T13:15:30.000Z","dependencies_parsed_at":"2024-02-19T13:47:26.486Z","dependency_job_id":null,"html_url":"https://github.com/EngineerSmith/love-jam-2024","commit_stats":null,"previous_names":["engineersmith/love-jam-2024"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineerSmith%2Flove-jam-2024","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineerSmith%2Flove-jam-2024/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineerSmith%2Flove-jam-2024/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineerSmith%2Flove-jam-2024/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EngineerSmith","download_url":"https://codeload.github.com/EngineerSmith/love-jam-2024/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252272944,"owners_count":21721831,"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-13T02:37:24.692Z","updated_at":"2025-05-04T00:31:26.596Z","avatar_url":"https://github.com/EngineerSmith.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# love-jam-2024\n\nThis is the project for [Love-Jam-2024](https://itch.io/jam/love2d-jam-2024)\n\n## For developers\n### Getting started\n1. [Fork the repo](https://github.com/EngineerSmith/love-jam-2024/fork)\n2. Clone your fork to your machine!\n3. Open the repo in your love2d developing environment of choice\n\n4. Make sure you're using latest love 12 ([get it from here](https://github.com/love2d/love/actions/runs/7895106111#artifacts))\n   * Download, and put into your love directory. You may want to temporarily move your current install into a subfolder so you can switch to it again after the jam\n5. Open the directory in file explorer, and in the address bar type `cmd` to open a console\n6. To run the project, type `love .` into the console. You can add `--speed` after the period to skip the intro scene\n   * `love . --speed`\n\nNow I recommend you get use to the code base by looking around. I first recommend to check out how the chat is implement. Key files can be found at `coordinator.chat` and `scenes.game.ui.chat`. Use this system as a base of how you should write, and design systems for the game.\n\n### Contributing\nTo ensure the jam goes smoothly, and to make sure the project doesn't die to bugs. When you make a pull request, it will have to reviewed by at least 1 other person before being accepted.\n\nIf you're doing a code review. First understanding what the pull request is trying to add to the project. Then read through the code to find out how it achieves that objective. Add insightful comments if you notice any bugs, missed edge cases, or issues on how they could be solved.\n\n## Assets\nTo add new assets, you can put them in the `assets` directory. Then you can add it to the `assets/assets.lua` which lists all assets. You may have to create a subdirectory, to ensure it is correctly sorted.\n\n* `path` is the file path, within the `assets` directory\n* `name` is the unique keyword you will use to access the asset within the project with\n* `onLoad` is a function that is called after the asset has been loaded (see `pixelArt`)\n\nFonts, are a little different; so talk to EngineerSmith for help with that system.\n\nTo access your newly added asset within a lua file. It's quite simple. They are loaded for you; so don't worry about handling the lifetime of the asset.\n```lua\nlocal assets = require(\"util.assets\")\nassets[name]\n```\n\n### For developers\nCheck out `util.lilyloader` for how it uses lily and extensions to determines which function to use to load an asset.\n\n## Arguments\nThere are a few arguments that you can use to speed up development. These are used when you run the program. The ones to remember are: `love . --speed` for the client, and for the server `love . --server`. These work with the fused project too `love-jam-2024.exe --speed`\n\n* `--speed` Will skip the intro-scenes, as soon as all assets are loaded.\n* `--server` Used to start a server instead of a client\n* `--log [file name: log.txt]` will add a logging sink, to save logs\n  * e.g. `--log` saves to save_directory/log.txt, `--log mylogs.txt` saves to save_directory/mylogs.txt\n* `--settings \u003cfile name\u003e` used to use a different file for settings than the default save_directory/settings.json\n\n### How to use arguments\n```lua\nlocal args = require(\"util.args\")\n\n-- no arguments, will just make it a boolean\nargs[\"--keyword\"]\n-- if it has arguments, it will be a table array\nlocal var = \"default\"\nif type(args[\"--keyword\"]) == \"table\" then\n  var = args[\"--keyword\"][1]\nend\n```\n\n## Language\nYou can add language keys to `en.json`, and the access them with the following.\n```lua\nlocal lang = require(\"util.lang\")\nlocal str = lang.getText(\"my.key\")\n-- for text, with variables\n  -- e.g. 'my.key': 'My cat's name is $1. $2 $1'\nlocal str = lang.getText(\"my.key\", 'Pizza', 'I love') -- 'My cat's name is Pizza. I love Pizza'\n```\n\n## Logging\nThe project includes a basic logging system\n```lua\nlocal logger = require(\"util.logger\")\n\n-- Logger contains a few basic functions. The different levels, just use different prefixes and colors (where consoles support colors)\nlogger.info()\nlogger.warn()\nlogger.error()\nlogger.fatal() -- fatal, will show a message box and close the program\nlogger.unknown()\n\n-- They all work similar to print, in that they can take in multiple values\nlogger.info(\"What have I done wrong\", type(variable1), variable1)\n\n-- Note, if you call print()\n-- it will redirect to logger.unknown\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineersmith%2Flove-jam-2024","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fengineersmith%2Flove-jam-2024","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineersmith%2Flove-jam-2024/lists"}