openage

2025-12-10 0 797

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.

openage uses the original game assets (such as sounds and graphics), but (for obvious reasons) doesn\’t ship them.
To play, you require any of the original games (AoE1, AoE2) or their Definitive Edition releases.

Contact

Contact Where?
Issue Tracker GitHub SFTtech/openage
Development Blog blog.openage.dev
Subreddit /r/openage
Discussions GitHub Discussions
Matrix Chat #sfttech:matrix.org
Money Sink

Technical foundation

Technology Component
C++20 Engine core
Python3 Scripting, media conversion, in-game console, code generation
Cython Python/C++ Glue code
Qt6 Graphical user interface
CMake Build system
OpenGL Rendering, shaders
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 behavior 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
    • here is some additional literature
  • 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: At the moment, \”gameplay\” is basically non-functional.
We\’re implementing the internal game simulation (how units even do anything) with simplicity and extensibility in mind, so we had to get rid of the temporary (but kind of working) previous version.
With these changes, we can (finally) actually make use of our converted asset packs and our nyan API!
We\’re working day and night to make gameplay return*.
If you\’re interested, we wrote detailed explanations on our blog: Part 1, Part 2, Monthly Devlog.

* may not actually be every day and night

Operating System Build status
Debian Sid
Ubuntu 24.04 LTS
macOS
Windows Server 2019
Windows Server 2022

Installation Packages

There are many missing parts for an actually working game.
So if you \”just wanna play\”, you\’ll be disappointed, unfortunately.

We strongly recommend building the program from source to get the latest, greatest, and shiniest project state 🙂

  • For Linux check at repology if your distribution has any packages available. Otherwise, you need to build from source.
    We don\’t release *.deb, *.rpm, Flatpak, snap or AppImage packages yet.

  • For Windows check our release page for the latest installer.
    Otherwise, you need to build from the source.

  • For macOS we currently don\’t have any packages, you need to build from source.

If you need help, maybe our troubleshooting guide helps you.

Quickstart

  • How do I get this to run on my box?
    1. Clone the repo.
    2. Install dependencies. See doc/building.md to get instructions for your favorite platform.
    3. Build the project:
    ./configure --download-nyan
    make
    

Alternative approach:
You can build and run the project using Docker. See Running with docker for more details.

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

    • Execute cd bin && ./run main.
    • 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 ./bin/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 \”Sounds cool, 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 your help.

Where do I start?

  • Check the issues labelled with good first issue. 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 thought 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) versions 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?

  • extensive synchronization!
  • doc/development.md.

How can I help?

  • doc/contributing.md.

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.

下载源码

通过命令行克隆项目:

git clone https://github.com/SFTtech/openage.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 openage https://www.zuozi.net/33594.html

DearPyGui
上一篇: DearPyGui
Modern CPP Programming
下一篇: Modern CPP Programming
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务