All Projects → alariq → mc2

alariq / mc2

Licence: GPL-3.0 license
Mech Commander 2 open source engine + OpenGL Linux port

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
CMake
9771 projects
GLSL
2045 projects
perl
6916 projects
shell
77523 projects

Projects that are alternatives of or similar to mc2

Jomini
Historical battle simulation package for Python
Stars: ✭ 31 (-67.71%)
Mutual labels:  strategy-game
Unciv
Open-source Android/Desktop remake of Civ V
Stars: ✭ 2,744 (+2758.33%)
Mutual labels:  strategy-game
MultiCraft-legacy
🌍 MultiCraft Engine [Legacy] | Open Source
Stars: ✭ 108 (+12.5%)
Mutual labels:  linux-game
Knights province
Knights Province missions and wiki.
Stars: ✭ 43 (-55.21%)
Mutual labels:  strategy-game
Travianz Legacy
Join our Discord Server: https://discordapp.com/invite/9fbJKP9 | New repo: https://github.com/iopietro/Travianz
Stars: ✭ 150 (+56.25%)
Mutual labels:  strategy-game
Corsixth
Open source clone of Theme Hospital
Stars: ✭ 2,481 (+2484.38%)
Mutual labels:  strategy-game
Civis
JavaScript 4X game
Stars: ✭ 560 (+483.33%)
Mutual labels:  strategy-game
creep-tasks
Screeps plugin for a flexible method of controlling creep actions
Stars: ✭ 45 (-53.12%)
Mutual labels:  strategy-game
Galaxyofdrones
🚀 An open source multiplayer space strategy game.
Stars: ✭ 172 (+79.17%)
Mutual labels:  strategy-game
OpenFNaF
An Open Source Re-implementation of Scott Cawthon's Five Nights at Freddy's. Written in C. Licensed under MIT. (WiP)
Stars: ✭ 37 (-61.46%)
Mutual labels:  linux-game
Hexgridutilitiesforgames
Hex-grid utilities for board and strategy games with path-finding, field-of-view, and more
Stars: ✭ 70 (-27.08%)
Mutual labels:  strategy-game
Zetawar
Zetawar is a turn based tactical strategy game implemented in 100% ClojureScript.
Stars: ✭ 144 (+50%)
Mutual labels:  strategy-game
Singularity
A simulation of a true AI. Survive, grow, and learn.
Stars: ✭ 210 (+118.75%)
Mutual labels:  strategy-game
Svg World Map
🗺 A JavaScript library to easily integrate one or more SVG world maps with all nations (countries) and second-level political subdivisions (countries, provinces, states).
Stars: ✭ 38 (-60.42%)
Mutual labels:  strategy-game
asylamba-game
Jeu de stratégie spatial en ligne multi-joueur.
Stars: ✭ 21 (-78.12%)
Mutual labels:  strategy-game
Ancientbeast
Turn Based Strategy Game. Master your beasts! 🐺
Stars: ✭ 907 (+844.79%)
Mutual labels:  strategy-game
Civitas
Civitas is an empire-building game written in Javascript with the help of the jQuery library.
Stars: ✭ 207 (+115.63%)
Mutual labels:  strategy-game
rise-of-legions
Rise of Legions is a hybrid of MOBA, tower defense and deckbuilding - with fast-paced, easy-to-pickup tug-of-war strategy. Play solo or bring a friend for co-op or 2v2, collect cards, build your deck and crush your enemies.
Stars: ✭ 105 (+9.38%)
Mutual labels:  strategy-game
coloniae
Economic strategy game in web broswer
Stars: ✭ 34 (-64.58%)
Mutual labels:  strategy-game
MultiCraft2
🌍 MultiCraft Engine 2.0 | Open Source
Stars: ✭ 25 (-73.96%)
Mutual labels:  linux-game

Mech Commander 2 open source engine + Linux port.

website

!NB: as russia conducts war in Ukraine I have no time to support this project until we will get rid of orcs. You are encouraged to help.

Disclaimer: I consider this project finished for now, there is a lot more to do for someone who wants to improve the game, but all functionality (except networking) is implemented and I've passed the game on my Linux box. Also found original game bugs and crashes are fixed.

This port is an open source implementation of a closed MC2 engine code using available interface (.h) files. Currently game can be run on both Linux and Windows in 64bit mode. Fixed a lot of bugs (including ones present in original game). Sound system is not fully implemented (panning, doppler, etc. not supported yet)

TODO:

  • fix remaining memory leaks (finish implementation of memory heaps)
  • make nice data packs, so not only me can play the game :-) (in progress, see data repo
  • actually finish all missions in the game
  • make sure no files are created outside of user directory
  • reduce draw calls number
  • reimplement/optimize priority queue
  • finish moving lighting to shaders (move whole lighting there, not only shader-based drawing of CPU-prelit vertices like I do now)
  • Update graphics to 2018 2020 2021
  • Add network support?
  • I am sure there is more

Original game was released under Shared Source Limited Permission License (please refer to EULA.txt) My code is licenced under GPL v.3 (see license.txt)

Building on Windows

To build on windows use CMake

Ensure, that you have all necessary dependencies: SDL2, SDL_mixer, zlib, glew I recommend to get zlib sources and build them by hand (do not forget to copy zconf.h)

Just for a reference here is how my 3rdparty tree looks like

|   
+---bin
+---include
|   |   zconf.h
|   |   zlib.h
|   |   
|   +---GL
|   |       eglew.h
|   |       glew.h
|   |       glxew.h
|   |       wglew.h
|   |       
|   \---SDL2
|           all sdl headers (SDL_mixer shiuld be there as well)
|           
\---lib
    +---x64
    |       glew32.lib
    |       glew32s.lib
    |       libFLAC-8.dll
    |       libmodplug-1.dll
    |       libmpg123-0.dll
    |       libogg-0.dll
    |       libvorbis-0.dll
    |       libvorbisfile-3.dll
    |       SDL2.dll
    |       SDL2.lib
    |       SDL2main.lib
    |       SDL2test.lib
    |       SDL2_mixer.dll
    |       SDL2_mixer.lib
    |       zlib.dll
    |       zlib.lib
    |       zlibstatic.lib
    |       
    \---x86
            glew32.lib
            glew32s.lib
            libFLAC-8.dll
            libmodplug-1.dll
            libmpg123-0.dll
            libogg-0.dll
            libvorbis-0.dll
            libvorbisfile-3.dll
            LICENSE.FLAC.txt
            LICENSE.modplug.txt
            LICENSE.mpg123.txt
            LICENSE.ogg-vorbis.txt
            SDL2.dll
            SDL2.lib
            SDL2main.lib
            SDL2test.lib
            SDL2_mixer.dll
            SDL2_mixer.lib
            zlib.dll
            zlib.lib
            zlibstatic.lib

You may already have your dependencies installed in other place(s), so just make sure CMake knows where to find them.

Now:

git clone https://github.com/alariq/mc2.git
cd mc2
md build64
cd build64
cmake.exe -G "Visual Studio 15 2017 Win64" -DCMAKE_PREFIX_PATH=c:/path_to_your_dependencies/ -DCMAKE_LIBRARY_ARCHITECTURE=x64 ..

(to generate project for VS1027 for 64bit build)

or for 32bit build:

cmake.exe -G "Visual Studio 15 2017 Win64" -DCMAKE_PREFIX_PATH=c:/path_to_your_dependencies/ -DCMAKE_LIBRARY_ARCHITECTURE=x86 ..

Now run generated solution and try to build it!

Now build string resources

First use script in test_scripts/res_conv/res_conv.pl to generate strings.res.cpp and strings.res.h`` files or just take them from that folder Then copy them to ./res``` folder Then:

cd res
md build64
cd build 64
cmake.exe -G "Visual Studio 15 2017 Win64" -DCMAKE_LIBRARY_ARCHITECTURE=x64 ..

put resulting dll along with executable file

Building data

Data files are located in a separate repository Building data is just a matter of executing make command. You can find instruction on how to do it there. But first one needs to build all necessary tools. There are 2 projects which have to be built:

  • data_tools
  • text_tool

All steps are same as for the main application. As a result you'll have next binaries: aseconv, makefst, makersp, mpak, text_tool. Copy those to the build_scripts folder in mc2srcdata repository.

Once everything in place, you can launch build scripts as described in corresponding README.txt file.

Building on Linux

You, probably already know hot to do it. If not, please, see windows building section, the process is quite similar.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].