All Projects → SFTtech → Openage

SFTtech / Openage

Licence: other
Free (as in freedom) open source clone of the Age of Empires II engine 🚀

Programming Languages

python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
cython
566 projects
CMake
9771 projects
QML
638 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Openage

Pydark
PyDark is a 2D and Online Multiplayer video game framework written on-top of Python and PyGame.
Stars: ✭ 201 (-98.12%)
Mutual labels:  game, game-development, game-engine, engine, multiplayer
Yage
Simple game engine, written in C++
Stars: ✭ 7 (-99.93%)
Mutual labels:  game-development, game-engine, engine, opengl, entity-component-system
Kengine
Entity-Component-System (ECS) with a focus on ease-of-use, runtime extensibility and compile-time type safety and clarity.
Stars: ✭ 417 (-96.11%)
Mutual labels:  game, game-development, game-engine, engine, entity-component-system
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-98.06%)
Mutual labels:  cmake, game, game-engine, engine, opengl
Entitas Csharp
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Stars: ✭ 5,393 (-49.65%)
Mutual labels:  game, game-development, game-engine, entity-component-system
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-98.89%)
Mutual labels:  game, game-development, multiplayer, entity-component-system
Voxelman
Plugin-based client-server voxel game engine written in D language
Stars: ✭ 105 (-99.02%)
Mutual labels:  game, game-engine, engine, opengl
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (-99.09%)
Mutual labels:  game, game-development, multiplayer, entity-component-system
Etengine
Realtime 3D Game-Engine with a focus on space sim. Written in C++ 14
Stars: ✭ 408 (-96.19%)
Mutual labels:  game-development, game-engine, opengl, entity-component-system
Ouzel
C++ game engine for Windows, macOS, Linux, iOS, tvOS, Android, and web browsers
Stars: ✭ 607 (-94.33%)
Mutual labels:  game, game-development, game-engine, opengl
Gamedev Resources
🎮 🎲 A wonderful list of Game Development resources.
Stars: ✭ 2,054 (-80.83%)
Mutual labels:  game, game-development, game-engine, engine
Openrct2
An open source re-implementation of RollerCoaster Tycoon 2 🎢
Stars: ✭ 10,115 (-5.57%)
Mutual labels:  cmake, game, multiplayer, opengl
Etlegacy Deprecated
Archived repository. For current repo, see: https://github.com/etlegacy/etlegacy
Stars: ✭ 470 (-95.61%)
Mutual labels:  game, game-development, game-engine, opengl
Open Builder
Open "Minecraft-like" game with multiplayer support and Lua scripting support for the both client and server
Stars: ✭ 569 (-94.69%)
Mutual labels:  cmake, game, multiplayer, opengl
Coffee
An opinionated 2D game engine for Rust
Stars: ✭ 771 (-92.8%)
Mutual labels:  game, game-development, game-engine, engine
Dodgem
A Simple Multiplayer Game, built with Mage Game Engine.
Stars: ✭ 12 (-99.89%)
Mutual labels:  game, game-development, game-engine, multiplayer
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (-93.89%)
Mutual labels:  game, game-development, game-engine, multiplayer
Evennia
Python MUD/MUX/MUSH/MU* development system
Stars: ✭ 1,309 (-87.78%)
Mutual labels:  game-development, game-engine, engine, multiplayer
Obengine
2D Game Engine with Lua Scripting made on top of SFML !
Stars: ✭ 335 (-96.87%)
Mutual labels:  cmake, game-development, game-engine, engine
Rigelengine
A modern re-implementation of the classic DOS game Duke Nukem II
Stars: ✭ 393 (-96.33%)
Mutual labels:  game, game-engine, opengl, entity-component-system

openage

openage: a volunteer project to create a free engine clone of the Genie Engine used by Age of Empires, Age of Empires II (HD) and Star Wars: Galactic Battlegrounds, comparable to projects like OpenMW, OpenRA, OpenSAGE, OpenTTD and OpenRCT2. At the moment we focus our efforts on the integration of Age of Empires II, while being primarily aimed at POSIX platforms such as GNU/Linux.

openage uses the original game assets (such as sounds and graphics), but (for obvious reasons) doesn't ship them. To play, you require an original AoE II: TC or AoE II: HD installation (via Wine or Steam-Linux).

github stars #sfttech on Freenode #sfttech on matrix.org quality badge

Contact

Contact Where?
Issue Tracker SFTtech/openage
Development Blog blog.openage.dev
Forum reddit /r/openage
Matrix Chat #sfttech:matrix.org
IRC Chat libera.chat #sfttech
Money Sink money sink

Technical foundation

Technology Component
C++20 Engine core
Python3 Scripting, media conversion, in-game console, code generation
Qt5 Graphical user interface
Cython Glue code
CMake Build system
OpenGL3.3 Rendering, shaders
SDL2 Cross-platform Audio/Input/Window handling
Opus Audio codec
nyan Content Configuration and Modding
Humans Mixing together all of the above

Goals

  • Fully authentic look and feel
    • This can only be approximated, since the behaviour of the original game is mostly undocumented, and guessing/experimenting can only get you this close
    • We will not implement useless artificial limitations (max 30 selectable units...)
  • An easily-moddable content format: nyan yet another notation
  • An integrated Python console and API, comparable to blender
  • AI scripting in Python, you can use machine learning
  • Re-creating free game assets
  • Multiplayer (obviously)
  • Matchmaking and ranking with a haskell masterserver
  • Optionally, improvements over the original game
  • Awesome infrastructure such as our own Kevin CI service

But beware, for sanity reasons:

  • No network compatibility with the original game. You really wanna have the same problems again?
  • No binary compatibility with the original game. A one-way script to convert maps/savegames/missions to openage is planned though.

Current State of the Project

Important notice: Gameplay is currently non-functional as the internal simulation is replaced by a more sophisticated implementation. You also might experience errors when running a build. Gameplay will return in a later update. Detailed explanations can be found in this blog post.

Installation Packages

Supported Platforms: Linux, Windows 10, MacOS X 10.14

  • For Linux check at repology if your distribution has any packages available or here for any future updates on *.deb and AppImage packages.

  • For Windows check our release page for the latest installer or here for nightly builds.

Quickstart

Operating System Build status
Debian Sid Todo: Kevin #11
Ubuntu 21.04 Ubuntu 21.04 build status
macOS macOS build status
Windows 10 - x64 Build status
Windows Server 2019 Windows Server 2019 build status
Windows Server 2022 Windows Server 2022 build status
  • How do I get this to run on my box?

  • I compiled everything. Now how do I run it?

    • Execute bin/run.
    • The convert script will transform original assets into openage formats, which are a lot saner and more moddable.
    • Use your brain and react to the things you'll see.
  • Waaaaaah! It

    • segfaults
    • prints error messages I don't want to read
    • ate my dog

All of those are features, not bugs.

To turn them off, use ./run --dont-segfault --no-errors --dont-eat-dog.

If this still does not help, try our troubleshooting guide, the contact section or the bug tracker.

Contributing

You might ask yourself now "Yeah, this sounds cool and all, but how do I participate and get famous contribute useful features?".

Fortunately for you, there is a lot to do and we are very grateful for help.

Where do I start?

  • The engine has several core parts that need help. You can look at the project related issues and find something for you, for example:
    • Asset Converter: Converts whatever properietary format used by a Age of Empires 2 into open formats. Written mostly in Python 3. There are a lot of TODOs and beginner issues available right now, so it's a good place to get your feet wet.
    • Game simulation: Also known as the gameplay implementation. Written in C++, using the Entity-Component-System paradigm in addition to an event-driven simulation.
    • Documentation: We not only document code, but also anything technical about the Genie engine and its games. If you like documenting file formats or thouroughly investigating game mechanics, then this might be the right place to start.
  • Check the issues labelled with good first issues. These are tasks that you can start right away and don't require much previous knowledge.
  • Ask us in the chat. Someone there could need help with something.
  • You can also take the initiative and fix a bug you found, create an issue for discussion or implement a feature that we never though of, but always wanted.

Ok, I found something. What now?

  • Tell us, if you haven't already. Chances are that we have additional information and directions.
  • Read the docs. They will answer most "administrative" questions like what code style is used and how the engine core parts are connected.
  • Read the code and get familiar with the engine component you want to work with.
  • Do not hesitate to ask us for help if you do not understand something.

How do I contribute my features/changes?

  • Read the contributing guide.
  • You can upload work in progress (WIP) revisions or drafts of your contribution to get feedback or support.
  • Tell us (again) when you want us to review your work.

I want to help, but I'm not a programmer...

Then openage might be a good reason to become one! We have many issues and tasks for beginners. You just have to ask and we'll find something. Alternatively, lurking is also allowed.


Cheers, happy hecking.

Development Process

What does openage development look like in practice?

How can I help?

All documentation is also in this repo:

  • Code documentation is embedded in the sources for Doxygen (see doc readme).
  • Have a look at the doc directory. This folder tends to get outdated when code changes.

License

GNU GPLv3 or later; see copying.md and legal/GPLv3.

I know that probably nobody is ever gonna look at the copying.md file, but if you want to contribute code to openage, please take the time to skim through it and add yourself to the authors list.

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].