{"id":20689233,"url":"https://github.com/frank-wong-cn/abstractstrategygame-raylib","last_synced_at":"2026-05-30T22:31:58.188Z","repository":{"id":158548867,"uuid":"369886927","full_name":"Frank-Wong-CN/AbstractStrategyGame-Raylib","owner":"Frank-Wong-CN","description":"Personal learning project of game development using Raylib, SLikeNet and STL.","archived":false,"fork":false,"pushed_at":"2021-05-22T19:11:29.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T01:54:41.184Z","etag":null,"topics":["cpp","game-development","raylib"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Frank-Wong-CN.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":"2021-05-22T19:08:13.000Z","updated_at":"2023-03-05T11:39:43.000Z","dependencies_parsed_at":"2023-08-22T03:16:34.355Z","dependency_job_id":null,"html_url":"https://github.com/Frank-Wong-CN/AbstractStrategyGame-Raylib","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Frank-Wong-CN/AbstractStrategyGame-Raylib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frank-Wong-CN%2FAbstractStrategyGame-Raylib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frank-Wong-CN%2FAbstractStrategyGame-Raylib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frank-Wong-CN%2FAbstractStrategyGame-Raylib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frank-Wong-CN%2FAbstractStrategyGame-Raylib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Frank-Wong-CN","download_url":"https://codeload.github.com/Frank-Wong-CN/AbstractStrategyGame-Raylib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frank-Wong-CN%2FAbstractStrategyGame-Raylib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33712579,"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":["cpp","game-development","raylib"],"created_at":"2024-11-16T23:08:53.484Z","updated_at":"2026-05-30T22:31:58.172Z","avatar_url":"https://github.com/Frank-Wong-CN.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Abstract Strategy Game\n\n## Introduction\n\nA learning project of [Raylib](https://github.com/raysan5/raylib), STL and [SLikeNet](https://github.com/SLikeSoft/SLikeNet). The structure of the codes were never planned or organized. You may find only spaghetti codes here.\n\nThis is my first attempt of writing games in plain C++, and my first attempt of writing networked games. The structure of this code was directly refactored from a Hello World Raylib project, and boy did it grew into something (ugly, mostly :P). I've been making small games in GameMaker as hobby projects before, and I must say this experience, programming with C++, STL, Raylib and SLikeNet is by far the most satisfying one. There are many helps I have gotten from many people and places, and there are many things I have learned from them.\n\n## Build Details\n\nThe CMakeLists.txt I've written is pretty much useless on other machines. This Github page is only for archival purposes.\n\nThis project uses MinGW and CMake to build. MinGW with GCC 10.3 can be acquired from [WinLibs](https://winlibs.com/#download-release). The source code of Raylib can be acquired from [Github](https://github.com/raysan5/raylib), [Official Website](https://www.raylib.com/), [Itch.io](https://raysan5.itch.io/raylib) and many other sites. It's a easy to use, OpenGL-based game rendering engine.\n\nSLikeNet's [official page is here](https://www.slikesoft.com/?page_id=1224\u0026lang=en), and its [Github page is here](https://github.com/SLikeSoft/SLikeNet). However, the official version of SLikeNet doesn't really support MinGW well. I've looked up other's fixes and workarounds, and finally found Urho3D's modification of SLikeNet, which fully supports MinGW with a few fixes. The github page of [Urho3D is here](https://github.com/urho3d/Urho3D), and their version of [SLikeNet is here](https://github.com/urho3d/Urho3D/blob/master/Source/ThirdParty/SLikeNet).\n\n## Basic Control\n\nThe objective is reduce the opponent's health to 0 or below 0. The bars on the left are player's **HP** bar and **Matter** (shield) bar. The bars on the right are opponents.\n\nThe big number in the center is the **Credit** the player is currently holding. Every **Decision** requires certain cost.\n\nThe text below the bars are player's attributes: **Perception (Knowledge), Deception, Energy, Attack, Defense, Psyche**.\n- Perception increases the precision of the estimation of opponent's health and matter.\n- Deception increases the difficulty for the opponent to estimate player's health and matter.\n- Energy is player's currently holding energy.\n- Attack is player's damage modifier.\n- Defense is player's matter effectiveness.\n- Psyche is player's HP toughness.\n\nEvery 100 Max HP is one **Level**. Attack increases per level.\n\n\u003ckbd\u003eQ\u003c/kbd\u003e, \u003ckbd\u003eW\u003c/kbd\u003e, \u003ckbd\u003eE\u003c/kbd\u003e, \u003ckbd\u003eR\u003c/kbd\u003e switches the displaying tree.\n- \u003ckbd\u003eQ\u003c/kbd\u003e is the perception tree (white) where player can increase Perception and Deception, and reduce credit timer.\n- \u003ckbd\u003eW\u003c/kbd\u003e is the regeneration tree (green) where player can regenerate HP, level up and decrease Psyche.\n- \u003ckbd\u003eE\u003c/kbd\u003e is the destruction tree (red) where player can accumulate energy and increase Attack.\n- \u003ckbd\u003eR\u003c/kbd\u003e is the protection tree (blue) where player can refill matter, increase max matter and increase Defense.\n\nThe nodes in the trees are **Decisions**. The number on the top means how much this decision costs. The number in the middle means the probability of its success (Decision can FAIL). The text on the bottom means what this decision does. (P)erception, (D)eception, (C)redit (T)imer, (M)at(T)er, (E)nergy, (L)e(V)el, etc.\n\nUse \u003ckbd\u003eMouse Left Button\u003c/kbd\u003e to select a decision. Use \u003ckbd\u003eMouse Right Button\u003c/kbd\u003e to pan the interface. Use \u003ckbd\u003eMouse Wheel\u003c/kbd\u003e to zoom in/out.\n\nUse \u003ckbd\u003eSpacebar\u003c/kbd\u003e to unleash your current holding energy upon your opponent. Your energy will be emptied after unleashing.\n\nUse \u003ckbd\u003eF10\u003c/kbd\u003e to restart game, in both single-player mode and multi-player mode.\n\nUse \u003ckbd\u003eF8\u003c/kbd\u003e to forcifully disconnect your game from remote system.\n\n## TODO\n\n- Potion Queue\n- AI\n- Better Deception and Estimation\n- Complete GUI\n- Refactor Trees\n- Config Files\n- Resource Check\n- Main Menu\n- Game Balance\n\n## Screenshot\n\n![Screenshot](img/Screenshot.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrank-wong-cn%2Fabstractstrategygame-raylib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrank-wong-cn%2Fabstractstrategygame-raylib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrank-wong-cn%2Fabstractstrategygame-raylib/lists"}