XProger/OpenLara

Roadmap

XProger opened this issue · 7 comments

The fixed_updates_per_second branch was experimental for a while, it successfully recreated and tested the original control mechanics and interpolation between frames to achieve a smooth gameplay at a fixed 30 updates per second. The original mechanics completely fixes most of the current issues, but due to the fact that in TR2-5 the arsenal of weapons, the set of enemies and objects was significantly expanded, it became difficult to reproduce all their logic without significant deviations from the original behavior.

After 5 years of OpenLara development I decided to recreate the architecture and logic of the original engine as accurately as possible, relying on debug symbols, new accessible materials and my current experience in reverse engineering. Most of the OpenLara engine parts will be rewritten.

Goals

  • close to the original gameplay engine architecture with fixed 30 updates per second
  • close to the original behavior of entities (Lara, enemies, objects etc.)
  • accurate recreation of shooting and damage calculations
  • smooth gameplay at 60-144 Hz monitors via linear interpolation from the actual 30 fps
  • transfer all features available in OpenLara to the new code base
  • graphics modding support for the rooms geometry, models, animations, textures and materials
  • the possibility of easiest further expansion for TR2-5

Roadmap

Milestone A

  • Merge recreated logic from experimental branch to GBA port
  • Come up with the new engine architecture
  • Write fast software rasterization for ARM
  • Restore TR1 gameplay parts (Lara, objects, triggers, camera, enemies, weapons, inventory)
  • #368
  • #370
  • #407

Milestone B

  • Replace the main engine with the new one
  • Write the general renderer interfaces (draw/render)
  • Restore all existing platforms code and make new releases

Milestone C

  • Fix stability issues
  • Analyze and cleanup the github list of existing issues

*After this milestone I will continue to make ports to other platforms in parallel (#15)

Milestone D1

  • Tomb Editor support
  • Graphics modding support

*At this point we'll get stable TR1 support again with some great things

Milestone D2

  • TR2 support

Milestone D3

  • TR3 support

Milestone D4

  • TR4 support

Milestone D5

  • TR5 support
vvs- commented

Should we view that more as an idealized or simplified roadmap? That is we know that there is much in common between different TR versions, so it could be borrowed heavily from e.g. TR5 even at milestone A.

Another question should be about level of cooperation between all other projects of similar goals, e.g. TR1Main, TR2Main, TOMB5. I see that you consider it as a personal project. But I really think that such an enormous undertaking was not successful previously not the least because of development resources stretched too thin.

P.S. And I'm really confused by how TOMB5 was affected by TR source leak. It seems that it was likely abandoned but then continued by a different people and in a different place. A lot of work for uncertain reasons.

Of course it's simplified plan to show the main direction without any timelines. Many things might be changed or extended during the progress.

I'll add the Tomb Editor collaboration to the Milestone D1, thanks.
The main branch support TR1-4 level formats and I already solve some pitfalls there, so it should be much easier to integrate other part in sequence... but it'll be difficult for me to start from TR5, AFAIK it has many hacks of the original engine.

TOMB5 was a great project and was not in vain. We learned a lot from it and those things will be reflected in OpenLara and other projects in the future not only TR-related.

regarding "Restore TR1 gameplay parts (Lara, objects, triggers, camera, enemies, weapons, inventory)":

Are the missing gameplay parts game breaking? Or can I still play through OpenLara from start to end?

Cheers and thanks for working on OpenLara! :)

@kscheel for now in the new engine most of the gameplay logic is missing starting from LEVEL3A. The main branch (old engine) has everything for TR1 and can be fully completed from start to end.

is the new engine the fixed point code? or it will still feature floating point code?

Maybe it can't be done but, didn't TR (don't know which) and LoK share the engine? If it's the case, how about a Legacy of Kain compatibility as a future goal?