Code Monkey home page Code Monkey logo

openage's People

Contributors

azrdev avatar birch-san avatar boombatower avatar detrumi avatar drs-11 avatar duanqn avatar franciscod avatar gellardo avatar goto-bus-stop avatar heinezen avatar janisozaur avatar jazzpi avatar johanhelsing avatar jon0 avatar jongelderloos avatar kev946 avatar lordaro avatar maanooak avatar mic-e avatar mrwerdo avatar pjonnala-eab avatar simonsan avatar svkurowski avatar thejj avatar tomatower avatar tusharpm avatar velorums avatar vtec234 avatar zoli111 avatar zuntrax avatar

Stargazers

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

Watchers

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

openage's Issues

aoe:hd support [$10 awarded]

Support converting aoe:hd assets.
-- creating issue to track progress as suggested by TheJJ in irc. --

Also perhaps #1 is not as much of an issue since it allows those that own HD copy (much easier to get ahold of) to play on openage.

The $10 bounty on this issue has been claimed at Bountysource.

Building on OSX 10.10

Just tried to build on Mac OS X 10.10 and always getting this:

CMake Error at /usr/local/Cellar/cmake/3.0.0/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:136 (message):
Could NOT find PythonLibs: Found unsuitable version "2.7.6", but required
is at least "3.3" (found
/usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/lib/libpython3.4.dylib)
Call Stack (most recent call first):
/usr/local/Cellar/cmake/3.0.0/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:341 (_FPHSA_FAILURE_MESSAGE)
/usr/local/Cellar/cmake/3.0.0/share/cmake/Modules/FindPythonLibs.cmake:276 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
cpp/CMakeLists.txt:74 (find_package)

The cmake from brew (3.0.2) didn't work. I've installed 3.0.0 from https://raw.githubusercontent.com/NikolausDemmel/homebrew-devel/master/cmake.rb (with some sha1 manipulation), still no results.

Will be thankful for any support, and will be glad to help with Mac testings.

Support for multi-layer buildings (village center)

Buildings like the village center consist of multiple parts so that units can walk under roofs etc.

These layers have to be represented somehow, and rendered as one single building.
The draw layer priority is secondary and should be rather easy to implement afterwards.

Windows support [$30]

Windows should be a major supported target either by native compilation or cross-compilation.

Openage currently builds fine under Win32 with some minor patches ( http://i.imgur.com/Hxpym3K.jpg ) but there is no documentation available or binaries. I'll document the steps i used to build for win32 below:

There is a $30 open bounty on this issue. Add to the bounty at Bountysource.

Terrain generation and Random Map Scripting (RMS)

openage needs random map generation.

For that we probably need two approaches:

  • Random map scripts
    • Be creative and implement configurable map generation in Python
    • On top of that, we can implement a RMS script parser that then is mapped to the Python API
  • As extension, deterministic infinite terrain generation, comparable to Minecraft, for unlimited map sizes.

The important part is the configurable RMS generator.

  • Input: some configuration
  • Output:
    • Terrain grid (with heights and tile type)
    • List of entities with their positions (trees, animals, resources)

Battlefield style battlescreen

Basically a large second screen minimap with more detail. Perhaps showing unit icons instead of just colored pixels.

The Battlefield version is done using a web interface (not sure if connected to local game or central server). For openage it could be done in any variety of options.

I bring this up since I've been doing some basic research into this before I discovered openage. My plan was to either intercept network traffic (like voobly does for observer proxy) or read the record game file as it is being written (assuming it dumps fairly often).

There is some code out there to parse the starting point of recorded games and stats and what not, which voobly uses on their site, but not a lot of info on the meat of the file. Does openage support recorded game files? As such I imagine I could look there.

I would be interested in creating this if it sounds feasible, although my plan was do it as a local webservice. If there is information on recorded game format perhaps it would be better to create it standalone so it works for AoC, HD, and openage. Thoughts?

FONTCONFIG_LIBS configuration missing (Fedora)

I got an issue trying to install it on fedora. I replace each debian package described in the installation instructions to the packages found in fedora repository (which the command would be sudo yum install cmake python3-devel SDL2-devel ftgl-devel SDL2_image-devel opus-tools glew-devel freeglut-devel libpng-devel freetype-devel opusfile-devel mingw32-fontconfig, after it is working we can even add in the documentation). The problem is with the FONTCONFIG_LIBS variable (the output message claims, the whole output is here), which I think it would need to be defined but I don't know to where exactly, any guess? Thank you guys in advance

Building foundation offset

The hotspot of buildings sprites may be offset. The placement algorithm probably needs to be fixed, the calculation is done in the terrain_object class. This algorithm needs to be improved, the hotspot is not correctly aligned with the terrain grid.

Error example:
openage

3D messages ingame

We need support for displaying any text in the game.

This allows us to e.g. display debug messages for current coordinates of objects which would otherwise spam the console.

The first step would be creating a new logging function, which gets the display coordinates as first input.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

SDL rendering without OpenGL

It would be great to have simple SDL rendering without OpenGL for old & troubled video chips, that has no hardware acceleration for 3D & OpenGL.

Render manager

The rendermanager is some kind of batching mechanism to optimize the opengl calls.
This mainly means to reduce the amount of texture and shader switches for now.

Everything that should be rendered is submitted to the render manager. It orders the jobs and finally draws them in the optimized, but correct order.

The remaining features are tracked in the TODO-list below.

Targets for media convert python module

Currently, the openage.convert script always executes the conversion in a fixed manner, the only adjustments possible are filename matches for archive extractions.

Please implement some job-like architecture so that each conversion task can be selected separately and grouped together to common conversion targets.

The file that currently hardcodes the conversion procedure is py/openage/convert/mediafile.py.

Find another solution to find python in cmake

Finding Python with cmake will not work on OS X if python3 is installed via homebrew.
See the cmake issue, the homebrew issue and #16 . There has not been any activity regarding the cmake issue since April.
An alternative solution is this cmake module. It's licensed under BSD. Details regarding licensing can be found here.
For a temporary fix when using homebrewed python3, use the following to configure the project *you might need to adjust the version):

  --raw-cmake-args \
  -DPYTHON_INCLUDE_DIR=/usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/include/python3.4m/ \
  -DPYTHON_LIBRARY=/usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/lib/libpython3.4.dylib \
  -DPython_FRAMEWORKS=/usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework

Static code analysis

In addition to test cases, we should have some kind of static code analysis integrated into the buildsystem.

build on ubuntu 14.10

Any luck getting it built on Ubuntu 14.10 ?

I keep getting this :
(I have all the libraries installed, just don't know how to communicate that to the build system)

CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
(Required is at least version "3.3")
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-2.8/Modules/FindPythonLibs.cmake:208 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
cpp/CMakeLists.txt:74 (find_package)

Holes in terrain with Age2HD media

After the game loads fully (took a while)

The map is shown with some holes on terrain. I don't know if it's caused by a difference in age2HD media content or by other bug related with the open driver (radeonSI)

openage_2014-10-31_11-01-05_00

Here are some additional info:

glxinfo:

name of display: :0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
GLX_ARB_create_context, GLX_ARB_create_context_profile,
GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample,
GLX_EXT_create_context_es2_profile, GLX_EXT_framebuffer_sRGB,
GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_swap_control
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_create_context, GLX_ARB_create_context_profile,
GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile,
GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB,
GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
GLX_ARB_create_context, GLX_ARB_create_context_profile,
GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB,
GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_create_context_es2_profile, GLX_EXT_framebuffer_sRGB,
GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
GLX_SGI_swap_control, GLX_SGI_video_sync
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD ARUBA
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.3.1
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile}

lspci|grep VGA:

00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7520G]

I can also provide the output from the terminal while running openage. Where can I post the file?

Create asset packs and automatically locate them with the engine

Implement an asset loader that overlays multiple asset source directories. For an installed game, this should be /usr/share/openage (installed by the package) and ~/.openage (the user-writable "userasset" folder).

You can also specify further paths to look for packs.

The userasset folder is used for storing files that are created by the user (e.g.: datapacks (converted game assets)), savegames, screenshots, etc.

The "asset locating mode" may be specified via --assets={dev, installed}. If not specified, it's auto-determined from the files in the folder where the executable lies (does openage_version exist?). dev => look in ./assets.

Performance optimization feature: Support packing folders in (tar) archives.

The AssetLoader takes an asset path (such as termcolors.docx) and an optional "on-modification" callback function (think inotify, manual "reload-assets" instruction) and returns a file-like object for reading (or raise an Exception).

All code in openage should rely on the AssetLocator instead of directly opening files.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Setup CD conversion support

Very related to the conversion targets (#79) and the version detection (#61) is the support of converting media and game files from setup disk images. The Python module openage.cabextract provides cab extraction features needed by the .cab files on the disc.

  1. Pass mount point of the original CD (or ISO image)
  2. Detect version of the disk image
  3. Use fslike abstraction to mount all archives on disk.
  4. Convert contents of mounted archives.

The invocation should originate from openage/convert/driver.py.

Version detection for original media files

The convert script should detect the present version of the original game and provide the matching file actions. This allows us to support different patch levels as 1.0c and better AOE:HD support.

@zuntrax started implementing the ideas which need to be adapted to the new codebase.

render the game version on screen

If people create screenshots which should illustrate positioning, rendering, etc.. problems, it'll be easier to debug if the used gameversion is directly visible.

The game version could be displayed in the lower left corner. Toggling its display with e.g. F3 might be helpful (like minecraft did it).

Stuttering sound

What I Do And What I Get:

  • Scroll until getting to the trebuchet (the "car" one)
  • Right click the map once
  • Hear stuttering "U-U-U-U-U-U-U-E-E-E-E-E!"
  • Start smashing right click so the trebuchet appears-dissapears-...
  • Hear 'UUUE!" without stuttering a few times (they don't go in parallel)
  • Hear a last stuttering u-u-u-u-e-e

I'd like to test the in_memory sound instead of the dynamic... but just changing this

                gamedata::audio_loader_policy_t::DYNAMIC

to this:

                gamedata::audio_loader_policy_t::IN_MEMORY

on game_main.cpp:205 doesn't work at all (no sound).

Can anyone reproduce? ๐Ÿ”‰ ๐Ÿ”Š

Create nightly distro packages

Breaking off from #81...

I have openSUSE build working (download instructions).

I have fedora and openSUSE builds working (download instructions).

I have script created (which I need to commit somewhere, putting in package repo almost seems right, but not quite...I'll consider it). The script can be setup on cron, pick the latest commit, update package repo and .spec file for latest commit tar ball, and push changes to repo to trigger build. I'll get that setup on remote server in the future, could possible be done via travis as well.

It may also make sense to move to something like home:boombatower:openage as the repository? I was originally branching games repo since that was my target, but on my request to move into official games repo it was suggested that non-playable games are probably not a good idea.

It would be slick if we did the necessary work to support building for .deb packages. https://en.opensuse.org/openSUSE:Build_Service_Debian_builds Perhaps someone is familiar with deb packaging? Then we can get nightly builds for all major distros from one place!

Open Build Service (OBS) is great in that it provides the familiar fork/branch and pull request workflow for packaging in addition to allowing us to package for all major distros in one place. Can even make changes through web interface!

Invoke conversion script from the game binary

The openage.convert script should be invoked by the game.

The game launches its own Python interpreter to perform the conversion.
The input path could be queried interactively someday,
the output path equals the userassets directory which will be ~/.openage/ later.

  • Create openage --convert invokation
  • Load python interpreter in the game (cpp/python.cpp)
  • Modify sys.path
  • AGE2DIR equals the argument to --convert
  • Invoke openage.convert.__main__.main()

Rendering of buildings broken under r300g/Mobility FireGL V5250 (poor driver/hardware support?)

Buildings simply do not render under r300g (on a Mobility FireGL V5250, like Radeon X1700) : http://plantmonster.net/~oldlaptop/images/openage-blackbuilding.png

The following fragment of console log seems relevant:

r300 FP: Compiler Error:
../../../../../../src/gallium/drivers/r300/compiler/r500_fragprog_emit.c::emit_paired():  emit_alu: Too many instructions
Using a dummy shader instead.

Whether this can or should be fixed on openage's end, I don't know. Perhaps it's even a hardware limitation.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Expand --data argument to allow for ~/ and such

As per #81, the .desktop file would like to use the following command

openage --data="~/.openage/assets"

It appears that openage does not expand that and looks for literally ~/.openage/assets. Would be great to see it expand the argument.

Possibly change old tags and/or at least use semantic versioning going forward

Seems a bit silly to have a 1.0 and 2.0, 2.1, 2.2 releases before the game is even playable. Perhaps reroll tags as 0.1, 0.2, 0.3, ... Unless there is something depending on them. Obviously, the best to change tags, but it just seems strange to start first usable release on 3.x or even higher.

Also got the high version number feedback when submitting to distro official games repository as well.

Either way http://semver.org/ seems like the generally good practice going forward.

Sometimes the game hangs loading with a black screen

The log reads this:

DBG0  inserting new chunk at (00,00)
DBG0  neighbor 0 not found.
DBG0  neighbor 1 not found.
DBG0  neighbor 2 not found.
DBG0  neighbor 3 not found.
DBG0  neighbor 4 not found.
DBG0  neighbor 5 not found.
DBG0  neighbor 6 not found.
DBG0  neighbor 7 not found. 

It usually happens to me on a cold boot. It fixes by itself, I don't know what's the cause. When it fixes for the first time, it keeps working afterwards.

I'm on Arch Linux x86_64, currently running GNOME3.

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)

Loading screen

The asset loading may take some time, especially it's currently dumb and just loads everything instead of accessing on demand.

There should be some "progress bar", "spinner" or at least on-screen hint that assets are being loaded. Probably related to #70, a black screen is likely to be seen when waiting for the asset loading.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Build system uses nonexistent python 3.3 headers

On Debian testing (with python3.3 and 3.4 interpereters installed, but only python3.4 headers), the build system attempts to use 3.3 headers that do not exist. Inspection of the CMake cache suggests it's attempting to use the 3.3 interpreter with the 3.4 headers; PYTHON_EXECUTABLE is /usr/bin/python3.3, while PYTHON_INCLUDE_DIR is /usr/include/python3.4m. The compiler is finally invoked with -I /usr/include/python3.3m, however.

Screenshot storage and numbering

Currently, each screenshot is put to /tmp/openage_00.png.
This should be updated to ~/.openage/screenshots/openage_xxxx.png, where xxxx is incremented automatically (start counting at 0!).

For debugging purposes, the game version described in #27 should be included on the screenshots when it's not disabled by the user.

preprocessor-free coordinate system

The preprocessor hackery has to be replaced by the new openage.codegen python generation.

This should create the necessary headers and should end the pain of the current C preprocessing implementation.

The implementation is located in libopenage/coord.

New logger subsystem

We need a better logging system.

Filtering messages, verbosity levels, origin tracking, backtraces, ...

Can not flattr

Hi,

when trying to flattr this really nice project via the button in the readme I get:

Sorry, content not supported
Unfortunately we can't support flattring this content. We couldn't find an owner for it and thus can't flattr it - sorry for that.

If you think we should've been able to find an owner, then contact our support. If you want to find something else to flattr, then visit our catalog.

Maybe a problem with the button, maybe something temporary - just wanted to let you know :)

Best regards
Niklas

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.