Code Monkey home page Code Monkey logo

xl-engine's People

Contributors

luciusdxl 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

xl-engine's Issues

Linux and OS X support

I would just like to add issue to support linux (also to show interest in project).
Know you mentioned it will take some time.

Add Proper Vsync and/or frame limiting support

Vsync currently adds a large amount of input latency, this is due to the fact that the game rendering and main thread are not properly synced, which means that input does not get updated correctly when vsynced. While the games play 'ok' even still, input has noticeable latency.

In addition non-vsynced frame limiting should be supported to avoid taking up 100% CPU on powerful systems.

Finish Sound System First Pass and Upload

The Sound system is currently barely working and only supports single shot 2D sounds. Finish the looping and 3D sound support and upload to the repository.

Make sure sound works correctly in working games.

Sound Code is nonexistent or missing from the repository

Both Gameloop.cpp and Services.cpp refer to a "sound/sound.h" - which is missing from the repository. I would also like to work on this project, and I request that these files be exposed so that I may add to this project. I am still a student - but I believe I have what it takes to work on a project like this. I have installed the Freetype and GL libraries, but I believe the only thing I need to compile this project is Sound/*. I am also new to this GitHub stuff so if I am doing something incorrectly - feel free to let me know. Thank you.

Properly support GPUs that require power of 2 textures and severe texture size limitations

Currently even the OpenGL 1.3 device assumes non power of 2 texture support and 2048 x 2048 size limits. The XL Engine should work even with older GPUs that cannot handle non power of 2 textures and/or more severe texture size limits.

Note, however, that GPUs will be required to support at least 512 x 512 textures and that game resolutions may be limited by GPU texture size.

Lucius, something's happened to your forums

The XL Engine forums are absolutely FILLED with spam. I checked in because I wanted to read some of the old project posts, but all the posts were out of order, and the vast majority of what was there was spam...

Add Multiplayer Support

Add multiplayer support for games that should support it (such as Blood) and possibly add it to other games as well (maybe Dark Forces, for example).

Add framebuffer support for the OpenGL 2.0 and 3.2 devices

Add framebuffer (FBO) support in order to:

  1. Support hardware rendering with the same virtual resolution support that the software renderers currently have.
  2. As a first step to a proper post processing system.
  3. Later add more advanced effects like shadows, reflections, etc..

Implement the OpenGL 3.2 device

The 3.2 device is currently a stub and needs to be implemented. However the 2.0 device will be perfectly adequate for the Beta 1 release - since it will only support software rendering.

This is being assigned to "Beta 2" to coincide with hardware rendering support.

Pull out texture code into the common GL code.

Currently the texture code is mingled with the rest of the device code and duplicated in multiple places. Pull it out into the common GL code similar to the vertex buffers and index buffers.

Midi Playback Support

Obviously the engine needs to support Midi playback. Initially the engine will use software synthesis - adding hardware support later (that will be another ticket).

Replicate Original Game Functionality

Intentionally vague bucket issue. Essentially the reverse engineering and implementation of the results using the XL Engine. This is obviously required for Beta 1 since it is, really, the whole point of this. :)

This may be split into sub-tasks as the release comes closer to handle game-specific bugs and issues.

Add Performant Dynamic Per-Frame Vertex Data

Currently the OpenGL 1.3 device handily outperforms the OpenGL 2.0 device when rendering UI due to the poor way vertex buffer updates are currently handled. A proper fix that buffers updates and double buffers vertex data should fix this performance gap (~2100 fps vs. 1300 fps).

[XEngine, True 3D] Implement Hardware Rendering for True 3D games.

As stated, this applies to XEngine game(s) currently - implement the True 3D hardware renderer. This is a large task that will most likely spawn other tasks once work starts.

Note that this is slated for Beta 2, Beta 1 - the first release - will be software rendering only.

[XL Engine UI] Build Remaining UI panels

Some of the UI panels have not been started yet, currently requiring settings to be changed manually.
Panels that need to be started and completed include:

  • Per-Game settings
  • Per-Game controls
  • Game setup (auto-detect game path, manually set game path, mod loading)

Example xlgames.ini file?

I'd like to run XL-Engine with a copy of Dark Forces I bought off of steam, it's not clear whether that's possible (shouldn't there be gob and lfd loading code somewhere in here?).

I had to make a number of changes to get to the point where the xl engine runs, and these are in https://github.com/lucasw/XL-Engine/tree/return_fail - one thing I had to do was disable the vsync enable/disable call because it was crashing on my machine.

I couldn't find any example xlgames.ini so I created one from the source code:

https://github.com/lucasw/XL-Engine/blob/return_fail/xlgames.ini

ullscreen=1
immediateExit=0
showAllGames=1
uiGlow=0
colorCorrect=1
# setting this true crashes on Intel graphics adapter
# TODO try Radeon HD 8790M with DRI_PRIME
vsync=0
reduceCPU=0
launchGame=0
frameLimit=30
brightness=100
saturation=50
contrast=50
gamma=50
musicVolume=50
soundVolume=50
# gus, gravis, sf2
midiformat=gus
# TODO string type
patchloc="/etc/timidity/freepats.cfg"
# openGL 1.3
# openGL 2.0
# openGL 3.2
graphicsDevice=autodetect
windowScale=50
gameScale=50
gameCount=1
# TODO
# keyMapping=0
game0Name="Dark Forces"
# game0Lib=  # don't have any .so files for Dark Forces
#game0Icon=""
game0Path="~/other/games/darkforces/gog_dark_forces/data"

The first time I ran it it triggered the creation of xlsettings.ini.

I get an error:

[Error]dlopen(Games/) failed, error: Games/.so: cannot open shared object file: No such file or directory

But I don't have a game0Lib defined, because I don't have a .so file for this dos game (another clue this is not the code to DarkXL?).

Other errors

There are a number of sound effects that aren't in the repo:

No such file or directory : UI/Sounds/sub_bass_mouseover.wav
No such file or directory : UI/Sounds/echo_affirm.wav
No such file or directory : UI/Sounds/echo_affirm1.wav
No such file or directory : UI/Sounds/echo_deny.wav

Also a number of png files aren't present: computer.png, dashboard.png, joystick.png and others.

If I run without the game0Path I get a blank blue-gray screen with some text of the version number in the upper left. The code makes it look like the tilde ought to bring up a ui but it doesn't that kepress (or any keypress?).

This is using Ubuntu 16.04.

[2.5D] Implement perspective correct 2.5D rendering.

Another post Beta 1 feature. Implement a perspective correct 2.5D sector renderer that can support games such as Dark Forces (Jedi), Blood (Build) and potentially simpler block based engines such as Arena.

Note this applies to rendering only - the feel of the game should come from the per-game gameplay/physics implementations. The renderer should be flexible enough to accurately render the sector data from different games and engines. Finally software rendering will always be available as a fallback.

[XL Engine UI] Finish Video Settings panel

The current Video settings panel is placeholder and needs to be finished.
This includes:

  • Changing window size and/or fullscreen resolution on the fly.
  • Changing game virtual resolution on the fly (should work while the game is running).
  • All options in the UI working correctly.

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.