{"id":15142535,"url":"https://github.com/raidowolf/ld40","last_synced_at":"2025-07-01T01:35:54.111Z","repository":{"id":78111174,"uuid":"112805451","full_name":"RaidoWolf/LD40","owner":"RaidoWolf","description":"SpeedFishing - My project for Ludum Dare 40!","archived":false,"fork":false,"pushed_at":"2021-01-15T21:20:22.000Z","size":203,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-06T15:53:15.255Z","etag":null,"topics":["cpp","game","game-jam","ld40","ludum-dare","ludum-dare-40","sfml"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RaidoWolf.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":"2017-12-02T02:18:18.000Z","updated_at":"2018-05-04T12:26:13.000Z","dependencies_parsed_at":"2023-03-03T00:30:42.607Z","dependency_job_id":null,"html_url":"https://github.com/RaidoWolf/LD40","commit_stats":{"total_commits":67,"total_committers":2,"mean_commits":33.5,"dds":"0.25373134328358204","last_synced_commit":"053071cc49c105b662ae948881be222d4a5e4803"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/RaidoWolf/LD40","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaidoWolf%2FLD40","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaidoWolf%2FLD40/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaidoWolf%2FLD40/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaidoWolf%2FLD40/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RaidoWolf","download_url":"https://codeload.github.com/RaidoWolf/LD40/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaidoWolf%2FLD40/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262879790,"owners_count":23378680,"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":["cpp","game","game-jam","ld40","ludum-dare","ludum-dare-40","sfml"],"created_at":"2024-09-26T09:42:21.466Z","updated_at":"2025-07-01T01:35:54.046Z","avatar_url":"https://github.com/RaidoWolf.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LD40\n\nSpeedFishing - My project for Ludum Dare 40!\n\n## Theme\n\nThe More You Have, The Worse It Is\n\n## License\n\nMIT (see LICENSE)\n\n## Description\n\nThe player drives a boat out of a harbor on a fishing run. The goal is to\ncollect the maximum number of fish possible. There will be a time limit, and by\nthen end of the time, you must be back in port or your boat will be destroyed.\n\nOn the water, you will be able to pick up fish items, which will increase your\nscore, but also the weight of your boat. While the boat will not sink from sheer\nweight alone, the higher your weight, the slower the boat will be to accelerate,\nthe slower it's top speed will be, and the slower it will be to turn and brake.\n\nBecause of these things, the increased load of fish on board the boat will make\nit more difficult to safely avoid the variety of obstacles that you will\nencounter while at sea, and the more difficult it may be to reach the harbor in\ntime to deliver your cargo at all.\n\nThe world will be procedurally generated, and there will be only one level. Thus\nit is an arcade-style game tracking high scores based on the player's arrival\nin the harbor.\n\nA variety of different game modes MAY be implemented, providing different time\nlimits and a different mix of obstacles, but that will be on a \"time-allowing\"\nbasis. This may get implemented post-game-jam.\n\n## Development\n\nThis time around, breaking with the tradition of developing my Ludum Dare games\nas JavaScript web games using Phaser, I have opted to develop this one using\nSFML in C++. This should give me a lot more flexibility at a lower level, but it\nwill undoubtedly present new challenges that I haven't had to face in past Ludum\nDare entries, especially in terms of compiling and distributing the game across\nmultiple platforms. While I have done some C++ game development in the past,\nI have yet to publish a completed C++ game, and I have never worked with SFML\nprior to starting this project, so that will present some challenge as well.\nHere's to hoping everything goes well!\n\nThis year, my plan is to focus more heavily on rapid prototyping than ever\nbefore in the past. In my last Ludum Dare (39), I focused far too heavily on\ndetailed design before programming anything usable to test my ideas and theories\non. As a result, I underestimated the complexity of key parts of my game design\nand found them difficult to work around in the limited time frame available.\nThis time I'd like to give myself a chance to detect those design flaws before\novercommiting to the problematic concept at all.\n\nThe underlying game engine, at a layer of abstraction above SFML, is based on\nthe early code from my Territory game engine (and game), which I manually ported\nto SFML from GLFW and then built improvements on top of that, since as of\nwriting, the Territory engine is far from complete. Many of these changes are\nlikely to get sent back upstream to improve Territory.\n\nThe game engine itself utilizes a pushdown automata game state system supporting\nlayer transparency individually for the render, update, and input code. The game\nloop utilizes the original thread as the rendering/input loop, which prevents\nsegfaults in the rendering and event handling code, while update code is run in\na separate update thread, which has the potential to provide slightly higher\nprocessing throughput on multi-core systems (although it does introduce a host\nof nuisances that would make it generally not worth the effort in a simpler game\nlike this one, but since Territory already had the feature, I felt it was easier\nto simply leave it in place). This multi-threading allows us to easily run a\nfixed-time-step update loop, while also running a variable time-step rendering\nloop.\n\nTo my fellow Ludum Dare participants, good luck, and I'm looking forward to\nplaying your games soon!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraidowolf%2Fld40","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraidowolf%2Fld40","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraidowolf%2Fld40/lists"}