Giter Club home page Giter Club logo

mdcii-engine's Introduction

MDCII Game Engine

CircleCI Codacy Badge CodeFactor

The main goal of this project is to provide an independent reimplementation of the game engine for Anno 1602/1602 AD under a free license.

Note: Supported versions of the original game are NINA ("Neue Inseln, Neue Abenteuer", "New Islands, New Adventures"), Königsedition (Kings Edition), Gold Edition. The original vanilla game without the NINA addon won't work, because of hardcoded stuff in the .exe files. The new published version 'History Edition' currently won't work either, because of changed BSH files.

Currently this project contains several helper tools:

  • bshdump
  • bshpacker
  • cod_parser
  • codcat
  • gam_parser
  • paldump
  • zeidump
  • inselbmp
  • weltbmp
  • zeitext

The most complex program is mdcii-sdltest that can load savegames and scenario files and animate the buildings.

Requirements

  • g++-8 or greater
  • SDL2
  • boost
  • protobuf

Media

See this video for a short demonstration of an earlier stage

mdcii youtube playlist

How to build (currently only debug build!)

Clone the repo

$ mkdir build
$ cd build
$ cmake -DCMAKE_CXX_FLAGS="-Wno-error=deprecated-copy" -DCMAKE_BUILD_TYPE=Debug ..
$ make -j$(nproc)

The main program is called mdcii-sdltestd.

How to run the game

The game uses the original files from your Anno 1602/1602 AD installation.

$ ./mdcii-sdltestd -p <path-to-1602-ad-installation>

License

GPL Version 2 or newer, see COPYING.

mdcii-engine's People

Contributors

cmfcmf avatar green-sky avatar mbugert avatar roybaer avatar sanjosolutions avatar siredmar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mdcii-engine's Issues

parsing class for INSEL4

INSEL4 may not be necessary anymore. This needs to be evaluated and if needed parsed to gain information about islands.

Translate Readme.md

The Readme.md file shall be translated to english language.
The new components (paldump, cod_parser_test, zeidump) shall be named end described.
A Screenshot shall be added to see the current state of the game.

List scenarios

List single player scenarios found in Szenes directory in a table in the Main menu and make them loadable.
The list shall contain the name referenced in the scenario file.
Senarios with a trailing number are campaigns and shall lead to another dialog where to select the right mission of the campaign, except for endless games.
Endless games shall be picked randomly.

Load savegames

List single player scenarios found in SAVEGAME directory in a table in the Main menu and make them loadable.
The list shall contain the name referenced in the savegame file.
The load last game button shall load the lastgame.gam file
The file host.gad contain the order of savegames.

parsing class for KONTOR2

KONTOR2 needs to be parsed to gain information about the ports (Kontors) for the different islands.

parsing class for AUFTRAG2

AUFTRAG2 needs to be parsed to gain information about the mission format.
This mission format is used by the old vanilla game that comes with simple endless games.

parsing class for INSEL3

INSEL3 may not be necessary anymore. This needs to be evaluated and if needed parsed to gain information about islands.

Scaling (working with different resolutions)

Scaling needs to be implemented to be able to work with different window resolutions.
Main Menu:

  • The resolution shall not be smaller than 1024x768.
  • The perfect fit is 1024x768
  • If bigger than 1024x768 the content is centered surrounded by black filling the screen like in the following image
    image

In Game:

  • The view shall fill the hole screen
  • In game menu shall orient on the corners like in the following image
    image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.