{"id":19838464,"url":"https://github.com/dreamycecil/se1-modsdk","last_synced_at":"2025-05-01T18:31:15.934Z","repository":{"id":40590770,"uuid":"272682449","full_name":"DreamyCecil/SE1-ModSDK","owner":"DreamyCecil","description":"A combination of original SDKs by Croteam improved to provide better modding of classic Serious Sam games using modern Visual Studio IDEs (but still using MSVC 6.0 compiler).","archived":false,"fork":false,"pushed_at":"2024-08-04T04:56:54.000Z","size":5946,"stargazers_count":4,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-08-04T05:43:33.426Z","etag":null,"topics":["engine","mod","modding","sam-sdk","sdk","serious-engine","serious-sam"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DreamyCecil.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":"2020-06-16T10:50:20.000Z","updated_at":"2024-07-14T11:00:55.000Z","dependencies_parsed_at":"2024-06-09T08:46:27.826Z","dependency_job_id":"078aae36-ea28-479d-aada-0aa12c102333","html_url":"https://github.com/DreamyCecil/SE1-ModSDK","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DreamyCecil%2FSE1-ModSDK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DreamyCecil%2FSE1-ModSDK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DreamyCecil%2FSE1-ModSDK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DreamyCecil%2FSE1-ModSDK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DreamyCecil","download_url":"https://codeload.github.com/DreamyCecil/SE1-ModSDK/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224270068,"owners_count":17283671,"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":["engine","mod","modding","sam-sdk","sdk","serious-engine","serious-sam"],"created_at":"2024-11-12T12:17:52.297Z","updated_at":"2024-11-12T12:17:52.832Z","avatar_url":"https://github.com/DreamyCecil.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Serious Sam SDK\n\nThis repository contains code from Serious Sam SDK by Croteam released in 2001-2002. The original source code have been adjusted to work well with any engine version but the logic should remain unchanged.\n\nThe project files are made for **Visual Studio 2010** and higher to allow selecting a preferred compiler.\n\nYou can use it to build mods (and port existing ones) for all Serious Sam games on Serious Engine 1:\n- The First Encounter 1.05\n- The Second Encounter 1.05\n- The Second Encounter 1.07\n- The Second Encounter 1.10\n- Serious Sam Revolution 1.10 (WIP)\n\n## Project structure\n\n### Entities projects\n- `EntitiesTFE` - all the entity logic for **The First Encounter** (compatible with v1.05)\n- `EntitiesTSE` - all the entity logic for **The Second Encounter** (compatible with v1.05 and v1.07)\n- `EntitiesSSR` - best possible recreation of all the entity logic for **Serious Sam Revolution** (WIP)\n\n### Legacy Entities projects\n- `Entities` - all the entity logic for **The First Encounter** from the original SDK (`sdk105`) with little to no changes to the source code and the project structure\n- `EntitiesMP` - all the entity logic for **The Second Encounter** from the original SDK (`sdk107`) with little to no changes to the source code and the project structure\n\n### Unified Game projects\n- `Game` - all the game logic.\n- `GameGUI` - additional GUI elements for Serious Editor.\n\n## Wow that's a lot of Entities projects\nI know. But there is a point to all of them. Let me clear things up to make it less confusing.\n\n### Why multiple projects to begin with?\nEach game, including different engine versions (1.00 - 1.05 for TFE, 1.05 - 1.07 for TSE), has its own version of the `Entities` library that contains code specifically for that game. It is required to have the exact same code for some game version due to the nature of how Serious Engine 1 works. Any slight deviation in logic may lead to desynchronization between vanilla clients and modded clients, even if on the surface gameplay seems exactly the same between the two.\n\n### What projects should I use?\nThis SDK specifically is designed to be an entirely new base for **new** mods, which has been reworked to be much more comfortable to use compared to the original SDKs.\n\nIf you're making a mod for TFE, you should probably modify `EntitiesTFE` code. Otherwise use `EntitiesTSE`. Both projects are standalone and don't interact with each other in any way, making it possible to outright delete all but one Entities project that you're making your mod for.\n\n- `EntitiesTFE` project can be used to build TFE logic for the original game (TFE 1.05) but also for newer games (TSE 1.05 and TSE 1.07), basically allowing making TFE mods that run on TSE's engine versions.\n- `EntitiesTSE` project, similarly to TFE, can be used to build TSE logic for the original game (TSE 1.07) but for older versions (TSE 1.05 and TFE 1.05), in case you still need to support TSE on 1.05 or bring TSE mechanics to TFE.\n\n### Then what are Entities and EntitiesMP projects for?\nThere are another two projects: `Entities` and `EntitiesMP`. They exist purely for compatibility purposes to allow existing mods to be easily ported over onto this SDK. The code of these projects remains *exactly* the same as it was originally released by Croteam (in `sdk105` and `sdk107` packages respectively).\n\nThese projects differ from `EntitiesTFE` and `EntitiesTSE` from this SDK in a number of ways:\n- Entity source files (`.es`) are all in the same directory instead of being sorted by subfolders (e.g. `Players/Player.es` is now simply `Player.es`).\n- Entity code lacks compatibility with other engine versions, making TSE code (`EntitiesMP`) generally incompatible with TFE 1.05 and TSE 1.05 without extra adjustments, like in `EntitiesTSE`.\n  - When porting mods onto this SDK, they should probably stick to the configurations that they have been designed for to avoid unintentional errors from building entity code under the wrong engine version (i.e. `Debug_TFE105` \u0026 `Release_TFE105` for `Entities`and `Debug_TSE107` \u0026 `Release_TSE107` for `EntitiesMP`).\n- The license header isn't present because of a different license that the SDK was released under during that time. For the sake of safety, it should probably be licensed under GNU GPL v2 from now on, just like the open-source release of **Serious Engine 1.10**, even if initially this wasn't the case and you didn't have to share the source code for your mod when publicly releasing it. Though those mods were technically fully owned by Croteam, judging by the attached license.\n\n### And what the heck is EntitiesSSR supposed to be?\n`EntitiesSSR` project is basically an original mod for TSE that reimplements and reintroduces as much logic and gameplay mechanics from **Serious Sam Revolution** as possible in a form that can be used as a base for its mods.\n\nThe code in this project is in no way compatible with any official **Serious Sam Revolution** version due to the lack of an official SDK, making it impossible to make small mods that are still compatible with vanilla multiplayer servers, for example.\n\nIt's kind of an experimental project more than anything that's supposed to complete the unofficial SDK for **Serious Sam Revolution** using [recreated headers for Revolution engine libraries](https://github.com/DreamyCecil/SE1-ModSDK/tree/includes/EngineRev). But it can still be used as a base for **The Second Encounter** mods, assuming you pack all the necessary resources from Revolution with it.\n\n# Building\n\nBuilding instructions are available here: https://github.com/DreamyCecil/SE1-ModSDK/wiki/Building\n\n# Running\n\nOnce the project is compiled, there should be three libraries in the Bin folder (e.g. `Entities.dll`, `GameGUI.dll` and `Game.dll`).\n\nThere are two ways to start the mod:\n1. Create a `.des` file in your game's \"Mods\" directory under the same name as this repository folder. Open it in a text editor and type mod's display name in it. Then start the game and launch your mod from the **MODS** menu.\n2. Open `ModStart.bat` and `EditorStart.bat` from `Bin` in a text editor and replace `MyMod` with the name of this repository folder. After that just run any of the `.bat` files to launch the game or the editor.\n\nWhen running a selected project, make sure the mod in project properties (**Debugging** -\u003e **Command Arguments**) is set to this repository folder name instead of `MyMod` (example: `+game VeryCoolMod`).\n- Running a `Game` project runs the game (`SeriousSam.exe`) with the mod.\n- Running a `GameGUI` project runs the editor (`SeriousEditor.exe`) with the mod.\n\n\u003e [!WARNING]\n\u003e Mod folder names do not support spaces or dashes (`-`)!\n\n# License\n\n**Serious Sam SDK** is licensed under GNU GPL v2 because it uses code from [Serious Engine 1.10](https://github.com/Croteam-official/Serious-Engine) (see LICENSE file).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdreamycecil%2Fse1-modsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdreamycecil%2Fse1-modsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdreamycecil%2Fse1-modsdk/lists"}