Git Product home page Git Product logo

openage's Introduction

openage

openage: a volunteer project to create a free engine clone of Age of Empires II, primarily aimed at POSIX platforms such as GNU/Linux, comparable in its goals to projects like OpenMW, OpenRA, 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 an original AoE II : TC installation or AoE II: HD (Wine is your friend; in the near future, setup discs will be supported).

build status Bountysource tip for next commit github stars #sfttech on Freenode

The foundation of openage:

Technology Component
C++14 Engine core
Python Scripting, media conversion, in-game console, code generation
Cython Glue code
CMake Build system
OpenGL2.1 Rendering, shaders
SDL2 Cross-platform Audio/Input/Window handling
Opus Audio codec
Humans Mixing together all of the above

Our goals include:

  • 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...)
  • Multiplayer (obviously)
  • Optionally, Improvements over the original game
  • AI scripting in Python, you can use machine learning
  • Re-creating free game assets
  • An easily-moddable content format: nyan's yet another notation
  • A powerful integrated Python console and interface, comparable to blender

Our goals specifically exclude:

  • Network compatibility with the original game. You really wanna have the same problems again?
  • 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

Dependencies, Building and Running

  • How do I get this to run on my box?

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

    • Execute ./run, you will be prompted by the convert script to convert the original game assets to the (a lot saner and more moddable) openage format. The game starts when this is done..
  • 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 the contact section or the bug tracker.

ATM, openage is mostly designed to be built and run inside the development folder via make run, ./run, ./run.py or python3 -m openage (those all are equivalent), but make install might actually work!

To run the globally installed version: python3 -m openage.

Development Process

What does openage development look like in practice?

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 outdate when code changes.

Windows Version

None of us uses Windows, so a port has low priority.

However, we're using cross-platform libraries wherever possible, so a port should be pretty easy to accomplish. We'll eventually look into porting using mingw/msys2.

If you want to beat us to it, go for it!

We'd prefer as few preprocessor switches as possible, keep those centralized.

Contributing

  • Being typical computer science students, we hate people.
  • Please don't contact us.
  • Nobody likes Age of Empires anyway.
  • None of you is interested in making openage more awesome anyway.
  • We don't want a community.
  • Don't even think about trying to help.

Guidelines:

  • No bugreports or feature requests, the game is perfect as is.
  • Don't try to fix any bugs, see above.
  • Don't implement any features, your code is crap.
  • Don't even think about sending a pull request
  • We even have a list of tasks that definitely don't need your work.
  • Don't note the irony, you idiot

To prevent accidential violation of one of those guidelines, you should never

cheers, happy hecking.

Contact

Most of us hang around on our IRC channel (#sfttech on freenode.net). Do not hesitate to ping us, we might not see your message otherwise.

There's no openage mailing list, but the github issue tracker comes pretty close to it: Everybody who 'watches' the repository will receive all the issue tracker posts via mail, and can even reply directly via their mail client. All issue tracker discussions are auto-posted to the IRC channel by a bot. Use the issue tracker for any sorts of discussion, proposal or questions that the IRC is unsuitable for.

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.

openage's People

Contributors

asiniy avatar aw3stin1 avatar azrdev avatar blegat avatar boombatower avatar coldpie1 avatar darrenstrash avatar dbrgn avatar detrumi avatar elfring avatar franciscod avatar gellardo avatar hackathi avatar janisozaur avatar jfeo avatar jon0 avatar jongelderloos avatar jprashanth avatar lndl avatar lordaro avatar martinmcgrath avatar mic-e avatar miguellissimo avatar rkreis avatar schets avatar spjoe avatar svkurowski avatar thejj avatar zaxozhu avatar zuntrax avatar

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.