{"id":13751706,"url":"https://github.com/rajko-horvat/OpenCiv1","last_synced_at":"2025-05-09T18:31:58.462Z","repository":{"id":171719745,"uuid":"636155064","full_name":"rajko-horvat/OpenCiv1","owner":"rajko-horvat","description":"Open source rewrite of the original Civilization 1 Game designed by Sid Meier and Bruce Shelley in year 1991","archived":false,"fork":false,"pushed_at":"2024-11-07T11:46:02.000Z","size":13731,"stargazers_count":232,"open_issues_count":6,"forks_count":11,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-11-16T04:32:12.654Z","etag":null,"topics":["4x","4x-strategy-game","civilization","civilization-games","game","remake","remake-games","retro","retro-game","retrogaming","sid-meier-civilization"],"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/rajko-horvat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/code_of_conduct.md","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":"2023-05-04T08:35:52.000Z","updated_at":"2024-11-09T13:35:11.000Z","dependencies_parsed_at":"2023-07-21T12:06:28.138Z","dependency_job_id":"fb8a4f2d-c544-4758-aaf6-964cf47c1e37","html_url":"https://github.com/rajko-horvat/OpenCiv1","commit_stats":null,"previous_names":["rajko-horvat/civilization1","rajko-horvat/openciv1"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajko-horvat%2FOpenCiv1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajko-horvat%2FOpenCiv1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajko-horvat%2FOpenCiv1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajko-horvat%2FOpenCiv1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajko-horvat","download_url":"https://codeload.github.com/rajko-horvat/OpenCiv1/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253303032,"owners_count":21886874,"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":["4x","4x-strategy-game","civilization","civilization-games","game","remake","remake-games","retro","retro-game","retrogaming","sid-meier-civilization"],"created_at":"2024-08-03T09:00:52.645Z","updated_at":"2025-05-09T18:31:55.353Z","avatar_url":"https://github.com/rajko-horvat.png","language":"C#","funding_links":[],"categories":["C# #"],"sub_categories":[],"readme":"## About\n\u003cp\u003eOpenCiv1 project is an open source rewrite of \u003ca href=\"https://en.wikipedia.org/wiki/Civilization_(video_game)\"\u003eCivilization 1 Game\u003c/a\u003e designed by Sid Meier and Bruce Shelley in year 1991.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe OpenCiv1 uses .NET 8 and Avalonia UI framework and is OS independent. It is currently compatible with desktops: Windows, Linux and MacOSX.\u003c/li\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"src/Resources/Screenshots/Windows.png\" alt=\"Windows OS\" width=\"260\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Linux.png\" alt=\"Linux OS\" width=\"260\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/MacOSX.png\" alt=\"MacOSX OS\" width=\"260\" /\u003e\u003c/p\u003e\n\u003cli\u003eThe game logic is \u003cb\u003eBased on original DOS Civilization 1 game version 475.05\u003c/b\u003e disassembly.\u003c/li\u003e\n\u003cli\u003eThe game is still very popular and easy to play. But the obsoletness of DOS or Windows 16-bit platform and the bugs that have never been fixed are hindering the popularity of the game.\u003c/li\u003e\n\u003cli\u003eThe news, discussions about this project and release news are published regularly on \u003ca href=\"https://forums.civfanatics.com/threads/rewrite-of-civilization-1-source-code-openciv1-project.682623/\" target=\"_blank\"\u003eCivilization Fanatics Forum page\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFor contact purposes openciv1@yahoo.com public email address can be used.\u003c/li\u003e\n\u003c/ul\u003e\n\n## Copyright considerations\n\u003cp\u003e\u003cb\u003eThe available code is not a full working copy of the game.\u003c/b\u003e \u003cb\u003eTo run OpenCiv1 you are legally required to own your own copy of the DOS Civilization game.\u003c/b\u003e \n\u003cb\u003eThis is the reason that not a single file from the original Civilization 1 game is included in this GitHub repository as they are copyrighted.\u003c/b\u003e\u003c/p\u003e\n\u003cp\u003eThe part of the game assembly code is emulated with Virtual CPU, and the rest of the code has been rewritten from scratch until all of the code is replaced with new copyright free code. \nThe other resources (like graphics, music and text) will also be completely replaced with copyright free resources before publishing the complete game.\u003c/p\u003e\n\n## Current status\n\u003cp\u003e\u003cb\u003eThe game is in working state\u003c/b\u003e, but you have to legally own the Original game (the .txt, .pic and .pal files have to be present).\u003c/p\u003e\n\n## How to Contribute to this project\n\u003cp\u003eAnyone can contribute to this repository in accordance with these \u003ca href=\"https://github.com/rajko-horvat/OpenCiv1/blob/master/.github/CONTRIBUTING.md\"\u003eContributing guidelines\u003c/a\u003e\u003c/p\u003e\nCurrently, you can contribute to this repository in one of the following ways:\n\u003cul\u003e\n\u003cli\u003eBy testing the game functionality and submitting Issues,\u003c/li\u003e\n\u003cli\u003eBy translating the part(s) of the code from pseudo assembly language to native C# language (for details see \u003ca href=\"https://github.com/rajko-horvat/OpenCiv1/wiki/Introduction-to-code-translating\"\u003eIntroduction to code translating\u003c/a\u003e),\u003c/li\u003e\n\u003cli\u003eBy designing parts of a 'Default' Visual and Audio theme (which must preserve original Game appearance and feel as much as possible, SVG and MIDI/SoundFonts would be the best),\u003c/li\u003e\n\u003cli\u003eBy designing parts of a 'Custom' Visual and Audio theme(s) (SVG and MIDI/SoundFonts would be the best).\u003c/li\u003e\n\u003c/ul\u003e\n\n## Frequently asked questions\n\u003cp\u003e\u003cb\u003eQ:\u003c/b\u003e Why did you use C#, instead of C and x86 assembly in which the original game is written?\u003c/p\u003e\n\u003cb\u003eA:\u003c/b\u003e I have chosen C# becase it's platform independent, secure, flexible, managed, popular, modern and API rich language.\n\n***\n\u003cp\u003e\u003cb\u003eQ:\u003c/b\u003e Why does the OpenCiv1 differs, in some aspects, from the original Civilization 1 game?\u003c/p\u003e\n\u003cb\u003eA:\u003c/b\u003e There are numerous reasons:\n\u003cul\u003e\n\u003cli\u003eSimply replicating all of the functionality to skip the DosBox emulation to be able to run the game natively is not a good enough reason (for me) to start a project of this magnitude.\u003c/li\u003e\n\u003cli\u003eCopying the game Code, Functionality, Graphics and Audio would be considered a Copyright volation and that is prohibited by current Copyright laws.\u003c/li\u003e\n\u003cli\u003eTo make the OpenCiv1 available to anyone who wishes to play the game, and that means Copyright free Code, Graphics and Audio.\u003c/li\u003e\n\u003cli\u003eTo add additional functionalities (features) to the game (like online gaming, scalable HQ Grahics, HQ Audio, plugins, etc.).\u003c/li\u003e\n\u003cli\u003eTo make OpenCiv1 platform independent, popular, appealing and easy to play, to the older, as well as to the younger public, as was original Civilization 1 game popular back in the day.\u003c/li\u003e\n\u003c/ul\u003e\n\n***\n\u003cp\u003e\u003cb\u003eQ:\u003c/b\u003e Will OpenCiv1 source code be indentical to the Original Civilization 1 game source code?\u003c/p\u003e\n\u003cp\u003e\u003cb\u003eA:\u003c/b\u003e No. The OpenCiv1 source code does not contain any original Civilization 1 source code. \nThe rewritten code performs the same function (as the original code does), but the code is completely different and under MIT license. \nThe Microprose and its successors never released the original source code which remains protected under copyright laws to this day.\u003c/p\u003e\n\n***\n\u003cp\u003e\u003cb\u003eQ:\u003c/b\u003e Does that mean that the OpenCiv1 will be completely different from original Civilization 1 game, like, for example FreeCiv?\u003c/p\u003e\n\u003cb\u003eA:\u003c/b\u003e Absolutely not, the goal is to keep all of the original rules and functionalities, as well as much as possible of the original Visual and Audio appearance.\n\n***\n\u003cp\u003e\u003cb\u003eQ:\u003c/b\u003e You know that Civilization 7 will be published soon, doesn't that make First Civilization game in the series completely obsolete?\u003c/p\u003e\n\u003cb\u003eA:\u003c/b\u003e Based on some stats, many people think that the first Civilization offers as much fun as the other sequels do.\n\n***\n\u003cp\u003e\u003cb\u003eQ:\u003c/b\u003e Are there any additional or different keyboard shorcuts (apart from the default ones)?\u003c/p\u003e\n\u003cb\u003eA:\u003c/b\u003e Yes, these are additional keyboard shorcuts that you can use during the game:\n\u003cul\u003e\n\u003cli\u003eAlt + D - Enable / Disable the \u003cb\u003eDebug mode\u003c/b\u003e (previously, Shift-56)\u003c/li\u003e\n\u003cli\u003eAlt + P - Pause / Resume game\u003c/li\u003e\n\u003cli\u003eAlt + 1 - Show / Hide Screen 1\u003c/li\u003e\n\u003cli\u003eAlt + 2 - Show / Hide Screen 2\u003c/li\u003e\n\u003cli\u003eAlt + 3 - Show / Hide Screen 3\u003c/li\u003e\n\u003cli\u003eYou can't scroll the map with Shift + NumPad keys, instead use Shift + Navigation Keys (Up, Down, Left, Right, Home, End, PageUp and PageDown)\u003c/li\u003e\n\u003c/ul\u003e\n\n## Dependencies\n\u003cul\u003e\n\u003cli\u003e.NET Core 8\u003c/li\u003e\n\u003cli\u003eVisual C++ 2015-2019 redistributable (on some Windows machines)\u003c/li\u003e\n\u003c/ul\u003e\n\n## How to run the release version of OpenCiv1\n\u003cp\u003eThe files from the Release should be copied directly into installed and working DOS Civilization game directory. The game can be run by running the OpenCiv1 executable.\u003c/p\u003e\n\n## How to compile the code (.NET Core 8 SDK required)\nIf you want to Debug (or Compile) the code with Visual Studio 2022 Community Edition, it is assumed that:\n\u003cul\u003e\n\u003cli\u003eFor debugging purposes you have installed DOS Civilization game at 'c:\\Dos\\Civ1\\', or at '~/Dos/Civ1/' if you are using Linux (be careful of uppercase files!).\nIt is where its home directory resides (Images, palettes, text and save games are loaded/saved there, for now).\u003c/li\u003e\n\u003c/ul\u003e\nYou can also compile with CLI method:\n\u003cul\u003e\n\u003cli\u003egit clone https://github.com/rajko-horvat/OpenCiv1 (To clone a specific branch use: git clone -b [branch] https://github.com/rajko-horvat/OpenCiv1)\u003c/li\u003e\n\u003cli\u003ecd OpenCiv1\u003c/li\u003e\n\u003cli\u003edotnet build -c Debug\u003c/li\u003e\n\u003c/ul\u003e\n\n## Project milestones\n\u003cp\u003eThe goal is to completely rewrite the code (first stage), fix the bugs and port the code to a modern platform (second stage).\u003c/p\u003e\n\n### Milestones for a first stage\n\u003cul\u003e\n\u003cli\u003eReaching the initial playability of the game (passed),\u003c/li\u003e\n\u003cli\u003eRewrite of the game code, functionalities and features (in progress...),\u003c/li\u003e\n\u003cli\u003eArchive the game code.\u003c/li\u003e\n\u003c/ul\u003e\n\n### Planned milestones for a second stage\n\u003cb\u003eWhat will change in the new version:\u003c/b\u003e\n\u003cul\u003e\n\u003cli\u003ePorting to Razor platform (Web interface, online gaming),\u003c/li\u003e\n\u003cli\u003eHQ Graphics (the new graphics will be as close as possible to the spirit of the original version),\u003c/li\u003e\n\u003cli\u003eHQ Audio (the new Audio will be as close as possible to the spirit of the original version),\u003c/li\u003e\n\u003cli\u003eSome text where appropriate,\u003c/li\u003e\n\u003cli\u003eDesign (Map zoom functionality, some small updates, also some dialogs will be slightly different),\u003c/li\u003e\n\u003cli\u003eMultilanguage capability,\u003c/li\u003e\n\u003cli\u003eMultiplayer capability,\u003c/li\u003e\n\u003cli\u003eCheat capability,\u003c/li\u003e\n\u003cli\u003ePlugin capability (can override rules, graphics and music/sounds).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cb\u003eWhat will stay the same:\u003c/b\u003e\n\u003cul\u003e\n\u003cli\u003eOriginal game rules and logic (except for established bugs),\u003c/li\u003e\n\u003cli\u003eOverall look and feel of the original game.\u003c/li\u003e\n\u003c/ul\u003e\n\n## Current screenshots of the OpenCiv1 game\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot1.png\" alt=\"Screenshot 1\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot2.png\" alt=\"Screenshot 2\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot3.png\" alt=\"Screenshot 3\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot4.png\" alt=\"Screenshot 4\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot5.png\" alt=\"Screenshot 5\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot6.png\" alt=\"Screenshot 6\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot7.png\" alt=\"Screenshot 7\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot8.png\" alt=\"Screenshot 8\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot9.png\" alt=\"Screenshot 9\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot10.png\" alt=\"Screenshot 10\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot11.png\" alt=\"Screenshot 11\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot12.png\" alt=\"Screenshot 12\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot13.png\" alt=\"Screenshot 13\" width=\"400\" /\u003e\n\u003cimg src=\"src/Resources/Screenshots/Screenshot14.png\" alt=\"Screenshot 14\" width=\"400\" /\u003e\n\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajko-horvat%2FOpenCiv1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajko-horvat%2FOpenCiv1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajko-horvat%2FOpenCiv1/lists"}