{"id":50382595,"url":"https://github.com/bramp/fodder","last_synced_at":"2026-05-30T13:01:22.190Z","repository":{"id":341281667,"uuid":"1169557771","full_name":"bramp/fodder","owner":"bramp","description":"A canon fodder clone","archived":false,"fork":false,"pushed_at":"2026-03-10T06:47:40.000Z","size":1127,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-08T15:42:43.572Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bramp.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"agents.md","dco":null,"cla":null},"funding":{"github":"bramp","buy_me_a_coffee":"bramp"}},"created_at":"2026-02-28T21:36:12.000Z","updated_at":"2026-03-10T06:47:44.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bramp/fodder","commit_stats":null,"previous_names":["bramp/fodder"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bramp/fodder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bramp%2Ffodder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bramp%2Ffodder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bramp%2Ffodder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bramp%2Ffodder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bramp","download_url":"https://codeload.github.com/bramp/fodder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bramp%2Ffodder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33692997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"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":"2026-05-30T13:01:21.355Z","updated_at":"2026-05-30T13:01:22.170Z","avatar_url":"https://github.com/bramp.png","language":"Dart","funding_links":["https://github.com/sponsors/bramp","https://buymeacoffee.com/bramp"],"categories":[],"sub_categories":[],"readme":"# fodder\n\nThis repository is a monorepo managed with [Melos](https://melos.invertase.dev/).\n\n## Project Layout\n\n- `apps/fodder_game`: The main Flutter application.\n- `packages/fodder_tools`: Pure Dart tools for archive extraction and sprite processing.\n\n## Getting Started\n\nTo initialize the project and link all packages:\n\n```bash\ngit clone --recursive git@github.com:bramp/fodder.git\n# or `git submodule update --init --recursive` if you forgot\n\ndart pub global activate melos\ndart run melos bootstrap\n```\n\n## Re-generating Flutter App\n\nTo re-generate the Flutter application with a new bundle identifier (e.g., when the Flutter project structure needs updating or you're changing the package name), run the following from the `apps/fodder_game` directory:\n\n```bash\ncd apps/fodder_game\nflutter create --org net.bramp --project-name fodder .\n```\n\n## Importing Original Game Assets\n\nThe tools are now part of the `fodder_tools` package. To run them:\n\n### Extract Game Assets\n\nTo run the game, you need the original assets. You can extract them using the provided tools.\n\nFirst, clone the OpenFodder campaign data (contains mission objectives, aggression\nlevels, and demo data):\n\n```bash\ngit clone https://github.com/OpenFodder/data.git vendor/openfodder-data\n```\n\n#### Cannon Fodder 1\n\n```bash\nSRC=original_game/Dos_CD\nOUT=packages/fodder_assets/assets/cf1\n\n# Extract the archive\ndart run packages/fodder_tools/bin/extract.dart -i ${SRC?}/CF_ENG.DAT -o ${SRC?}_Extracted --extract-all\n\n# Extract sprites, maps, and audio\ndart run packages/fodder_tools/bin/sprites.dart -i ${SRC?}_Extracted -o ${OUT?}/sprites\ndart run packages/fodder_tools/bin/maps.dart    -i ${SRC?}_Extracted -o ${OUT?}/maps -c 'vendor/openfodder-data/Campaigns/Cannon Fodder.ofc'\ndart run packages/fodder_tools/bin/audio.dart   -i ${SRC?}_Extracted -o ${OUT?}/audio\n```\n\n#### Cannon Fodder 2\n\n```bash\nSRC=original_game/Dos2_CD\nOUT=packages/fodder_assets/assets/cf2\n\n# Extract the archive\ndart run packages/fodder_tools/bin/extract.dart -i ${SRC?}/CF_ENG.DAT -o ${SRC?}_Extracted --extract-all\n\n# Extract sprites, maps, and audio\ndart run packages/fodder_tools/bin/sprites.dart -i ${SRC?}_Extracted -o ${OUT?}/sprites\ndart run packages/fodder_tools/bin/maps.dart    -i ${SRC?}_Extracted -o ${OUT?}/maps\ndart run packages/fodder_tools/bin/audio.dart   -i ${SRC?}_Extracted -o ${OUT?}/audio\n```\n\n```bash\n# Debug issues with\ndart run packages/fodder_tools/bin/audit_sprite_names.dart --html ${OUT?}/sprites\ndart run packages/fodder_tools/bin/audit_sprite_names.dart --coverage\ndart run packages/fodder_tools/bin/audit_sprite_names.dart\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbramp%2Ffodder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbramp%2Ffodder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbramp%2Ffodder/lists"}