Let's pick some old classic game, reverse engineer the data formats and game rules and write an open source engine for it from scratch. Some games from 1990s are simple enough that we could have a playable prototype by the end of the week.

Write which games you'd like to hack on in the comments. Don't forget to check e.g. on Open Source Game Clones, Github and SourceForge whether the game is ported already.

Hack Week 24 - Master of Orion II: Battle at Antares & Chaos Overlords

Work on Master of Orion II continues but we can hack more than one game. Chaos Overlords is a dystopian, lighthearted, cyberpunk turn-based strategy game originally released in 1996 for Windows 95 and Mac OS. The player takes on the role of a Chaos Overlord, attempting to control a city. Gameplay involves hiring mercenary gangs and deploying them on an 8-by-8 grid of city sectors to generate income, occupy sectors and take over the city.

How to ~~install & play~~ observe the decompilation progress:

  • Clone the Git repository
  • A playable reimplementation does not exist yet, but when it does, it will be linked in the repository mentioned above.

Further work needed:

  • Analyze the remaining unknown data structures, most of which are related to the AI.
  • Decompile the AI completely. The strong AI is part of the appeal of the game. It cannot be left out.
  • Reimplement the game.

Hack Week 20, 21, 22 & 23 - Master of Orion II: Battle at Antares

Master of Orion II is one of the greatest turn-based 4X games of the 1990s. Explore the galaxy, colonize planets, research new technologies, fight space monsters and alien empires and in the end, become the ruler of the galaxy one way or another.

How to install & play:

  • Clone the Git repository
  • Run ./bootstrap; ./configure; make && make install
  • Copy all *.LBX files from the original Master of Orion II to the installation data directory (/usr/local/share/openorion2 by default)
  • Run openorion2

Further work needed:

  • Analyze the rest of the original savegame format and a few remaining data files.
  • Implement most of the game. The open source engine currently supports only loading saved games from the original version and viewing the galaxy map, fleet management and list of known planets.

Hack Week 19 - Signus: The Artifact Wars

Signus is a Czech turn-based strategy game similar to Panzer General or Battle Isle series. Originally published in 1998 and open-sourced by the original developers in 2003.

How to install & play:

  • Clone the Git repository
  • Run ./bootstrap; ./configure; make && make install in both signus and signus-data directories.
  • Run signus

Further work needed:

  • Create openSUSE package
  • Implement full support for original game data (the open source version uses slightly different data file contents but original game data can be converted using a script).

Looking for hackers with the skills:

sdl reverseengineering c++ games

This project is part of:

Hack Week 19 Hack Week 20 Hack Week 21 Hack Week 22 Hack Week 23 Hack Week 24

Activity

  • 1 day ago: PSuarezHernandez liked this project.
  • 6 days ago: wfrisch joined this project.
  • 7 days ago: oleksiiorel liked this project.
  • 13 days ago: mcalabkova liked this project.
  • 15 days ago: wfrisch liked this project.
  • about 2 months ago: oleksiiorel disliked this project.
  • about 2 months ago: oleksiiorel liked this project.
  • about 1 year ago: binary_sequence liked this project.
  • about 1 year ago: bdas_ left this project.
  • about 1 year ago: aporta liked this project.
  • about 1 year ago: m.crivellari liked this project.
  • about 1 year ago: gleidi liked this project.
  • about 1 year ago: bdas_ joined this project.
  • almost 2 years ago: lansuse left this project.
  • almost 2 years ago: mkoutny liked this project.
  • almost 2 years ago: robert.richardson liked this project.
  • almost 2 years ago: ybonatakis liked this project.
  • almost 2 years ago: lansuse joined this project.
  • almost 2 years ago: juliogonzalezgil liked this project.
  • almost 2 years ago: lansuse liked this project.
  • over 2 years ago: dsterba liked this project.
  • over 2 years ago: ismaell liked this project.
  • over 2 years ago: dcipriani liked this project.
  • over 2 years ago: pperego liked this project.
  • over 2 years ago: jjanes liked this project.
  • All Activity

    Comments

    • jkohoutek
      almost 5 years ago by jkohoutek | Reply

      It would be hard to find a game with expired copyright. But I have some recommendations: Hungry Horace Colony

      • MDoucha
        almost 5 years ago by MDoucha | Reply

        Copyright status of the original game doesn't matter. We just can't bundle the original game data with the open source engine and if we need to disassemble the original EXE files, we'll need to do a "clean room" implementation of that part of the code. (One person analyzes the disassembled code and writes a spec, another person implements the spec without looking at the disassembled code.)

        The games I had in mind were something like Jagged Alliance, Battle Isle 3, Polda, etc.

    • lpato
      almost 5 years ago by lpato | Reply

      X-COM: Ufo defense https://www.gog.com/game/xcomufodefense

      • MDoucha
        almost 5 years ago by MDoucha | Reply

        Already fully ported, including Terror from the Deep: OpenXCom Also check out UFO: Alien Invasion

    • MDoucha
      almost 4 years ago by MDoucha | Reply

      My top pick this year: Petroglyph has released the original sources of Command & Conquer and Red Alert as mod SDK under GPLv3. Let's write an SDL front-end for it and make the classic C&C games fully playable again. (Yes, I know OpenRA exists but I'm not installing the Mono bloatware to play it. The original game used to run smoothly on Pentium 90 with 16MB of RAM dammit!)

    • MDoucha
      almost 4 years ago by MDoucha | Reply

      My second pick: Jagged Alliance 1. No sources are available AFAIK, we'll have to reverse engineer it from scratch. We might find some reused AI and game mechanics code in Jagged Alliance 2 sources though.

    • MDoucha
      almost 4 years ago by MDoucha | Reply

      My third pick: Master of Orion 2. Two of our colleagues have tried to remake the engine in Python a while ago but I'd prefer to start from scratch in C++.

      • danidoni
        over 3 years ago by danidoni | Reply

        I'm for this one!

        • MDoucha
          over 3 years ago by MDoucha | Reply

          Not afraid of a challenge, eh? Alright, let's do it!

    • tdz
      over 3 years ago by tdz | Reply

      Maybe Lemmings? It should be doable in a week. Any it turns 30 this year; just like Linux. :)

    • mlnoga
      over 3 years ago by mlnoga | Reply

      Nice one. I would love to see Battle of Britain - Their Finest Hour resurrected from 286 days, especially the campaign mode. Or the Wing Commander series. But these graphically oriented games are probably not doable.

      Strategy games might be more within reach. I made a start on the logic of Capitalism in Golang several years ago. Basis was observed game behavior. I might still have the code lying around somewhere. Paired with a web UI, it might make a nice multiplayer (e.g. the Rancher stack with vue.js).

      • MDoucha
        over 3 years ago by MDoucha | Reply

        Thanks for the tip, I'll definitely keep Capitalism in mind for the next year. There already is a fan remake of one of the Wing Commander games: Privateer: Wing Commander Universe. Though I don't know whether it's playable and how closely it resembles the original Privateer.

    • mlnoga
      over 3 years ago by mlnoga | Reply

      Also check out these gaming-themed ideas: Game for SUSECon, Workadventu.re.

    • MDoucha
      almost 3 years ago by MDoucha | Reply

      My top pick this year is obviously to continue working on Master of Orion II. We've started from scratch during the last Hack Week so most of the work was about internal code infrastructure and reverse engineering with very little to show at the end. But that work is now mostly done and we can start making some big visible progress this year.

      • Easy tasks: implement planet list screen, colony list screen, fleet list screen
      • Medium tasks: implement colony screen, officer pool screen, diplomacy screen, audio subsystem
      • Hard tasks: reverse engineer ship design, research or the rest of savegame format, implement help/info screen, find palettes for space combat sprites

      • danidoni
        over 2 years ago by danidoni | Reply

        I would join you this year as well. Let see what comes out of this hackweek!

        • MDoucha
          over 2 years ago by MDoucha | Reply

          Great, looking forward to working together again.

    • MDoucha
      almost 3 years ago by MDoucha | Reply

      My second pick this year is to select one existing open source game project from Open Source Game Clones database and contribute to it. Something semi-playable would probably be the best choice but the only real restrictions are the project licence, programming language and access to the original game files. Note that in this case we have to pick a project at least a week before the Hack Week starts so that we can look around the codebase beforehand. I don't want to spend the whole Hack Week just looking for actual issues to fix or missing features to implement.

      I also have a third pick but I'll need to resolve some potential licence issues with the original developers before I say more. Stay tuned.

    • lramage
      almost 3 years ago by lramage | Reply

      Anyone interested in a VR project? Or maybe adding VR support to an existing game? Something like Ryzom, https://wiki.ryzom.dev

    • MDoucha
      almost 2 years ago by MDoucha | Reply

      My top pick for Hack Week 22 is once again to continue working on Master of Orion II. We've implemented planet list and fleet list screens during the last Hack Week and both are almost feature complete except for actions that change the gamestate (which is intentional for now).

      • Easy tasks: implement colony list screen, officer pool screen, diplomacy screen or fleet window (on galaxy screen)
      • Medium tasks: implement colony screen, audio subsystem, ship detail window, reverse engineer ship design or research
      • Hard tasks: reverse engineer the rest of savegame format, implement help/info screen or star system window (on galaxy screen), find palettes for space combat sprites

    • MDoucha
      almost 2 years ago by MDoucha | Reply

      My second pick is to contribute fixes and improvements to OpenGothic. You can pick some task from the project issue tracker or play the game over the holidays until you find some bugs/missing features you'd like to fix. My personal focus would be on improving Gothic 1 support but feel free to work on Gothic 2 as well.

    • MDoucha
      almost 2 years ago by MDoucha | Reply

      My third pick is to select some game from the Open Source Game Clones database. Something semi-playable would probably be the best choice but the only real restrictions are the project licence, programming language and access to the original game files.

    • MDoucha
      over 1 year ago by MDoucha | Reply

      Just like the last time, my top pick for Hack Week 23 is to continue working on Master of Orion II. We've implemented office list screen and part of the colony list screen during Hack Week 22.

      • Easy tasks: Finish colony list screen, implement diplomacy screen, research selection window, fleet window (on galaxy screen) and star system window (ditto)
      • Medium tasks: implement colony screen, audio subsystem, ship detail window, colony production screen, reverse engineer ship design or planet orbit position calculations
      • Hard tasks: reverse engineer the rest of savegame format, implement help/info screen, find palettes for space combat sprites

    • MDoucha
      over 1 year ago by MDoucha | Reply

      My second pick is to improve the Linux port of Gates of Skeldal. IIRC the game engine needs to be ported to LibSDL 2.0, savegame format needs some fixes and there are a few graphical glitches.

    • MDoucha
      over 1 year ago by MDoucha | Reply

      My third pick once again is to select some third-party project from the Open Source Game Clones database.

    • MDoucha
      4 months ago by MDoucha | Reply

      My top pick for Hack Week 24 is once again Master of Orion II. Last time, I've implemented the research selection window. The colony list screen partly implemented during Hack Week 22 remains unfinished. But there are still many more tasks to work on:

      • Easy tasks: Finish colony list screen, implement diplomacy screen, fleet window (on galaxy screen) and star system window (ditto), game settings window or galaxy screen windows (opened by clicking the sidebar)
      • Medium tasks: implement colony screen, audio subsystem, ship detail window, colony production screen, reverse engineer ship design, planet orbit position calculations or galaxy screen zoom buttons
      • Hard tasks: reverse engineer the rest of savegame format, implement help/info screen, find palettes for space combat sprites

    • MDoucha
      4 months ago by MDoucha | Reply

      My second pick is to add improvements to Signus (from Hack Week 19). Implement support for subtitles in cutscenes, implement single-click "move and shoot", allow unloading transported units to a specific tile, start working on custom scenario editor (which will require redesigning the map file format and implementing more general AI algorithms).

    • MDoucha
      4 months ago by MDoucha | Reply

      My third pick is to contribute to some third-party project from the Open Source Game Clones database.

    • wfrisch
      6 days ago by wfrisch | Reply

      I will work a bit on Chaos Overlords (1996), a turn-based strategy game with a clunky mouse-driven interface but with interesting mechanics underneath and a story that doesn't take itself too seriously.

      https://github.com/wfr/re-chaos

      Status quo (RE):

      • Resource file format (images, sound): done
      • Core logic and structs: mostly analyzed, easy
      • Networking: medium difficulty, will probably defer until the end
      • AI: hard. Lots of strategies with a lot of code duplication.

      Challenges (RE):

      • Almost all code is completely intermixed, i.e. sound, GUI, networking. Hard to untangle.
      • Some game rules are neither documented nor obvious to the player. There is no way around diligent decompilation and debugging.

      Status quo (new implementation):

      • PoC Qt Widgets interface is working. Qt is the right choice for a faithful recreation, IMHO, because it matches the look & feel of the original which is very mouse-driven, with drag & drop etc. It wouldn't make much sense to implement this in a custom game engine.
      • Refactoring is direly needed

      Goals for this week:

      • Migrate the existing decompilation project to Ghidra
      • Get to know Ghidra
      • Set up remote debugging for Ghidra (Linux) → gdbserver (Windows)
      • Ideally make some progress with yet unknown data structures

      • MDoucha
        5 days ago by MDoucha | Reply

        Nice project. I've never heard of Chaos Overlords until now but it looks interesting. I'll take a closer look later and maybe join you on another Hack Week. Have fun!

        • wfrisch
          1 day ago by wfrisch | Reply

          Thanks! Likewise I never played MOO2 but always found it intriguing just looking at the screenshots. Happy hacking!

    Similar Projects

    New KDE Plasma notification app/applet by apappas

    Description

    My memory is terrible so I depe...


    YQPkg - Bringing the Single Package Selection Back to Life by shundhammer

    tl;dr

    Rip out the high-level YQPackageSele...


    SUSE AI Meets the Game Board by moio

    Use [tabletopgames.ai](https://tabletopgames.ai...