www.tombraiderforums.com

www.tombraiderforums.com (https://www.tombraiderforums.com/index.php)
-   Software Development (https://www.tombraiderforums.com/forumdisplay.php?f=55)
-   -   EdisonEngine project (https://www.tombraiderforums.com/showthread.php?t=225556)

stohrendorf 13-01-21 21:12

CroftEngine project
 
CroftEngine (formerly known as EdisonEngine)
So, just another fan engine arrived... It started as a fork of OpenTomb but became pretty much a separate and very distinct engine afterwards. (You can find everything here: https://github.com/stohrendorf/CroftEngine)

The goal is to replicate the original TR1 engine as close as possible, while fixing bugs (except those bugs that became features).

The current state is that it's fully playable. There's still some minor things to do that are not related to gameplay.

Graphics are basically done, yet there is some room for minor refinement.

Non-gameplay related things, i.e. savegames, settings, and all the other stuff not related to playing the levels, is 99% done.

To play it, follow the instructions in the readme as it can be seen here: https://github.com/stohrendorf/CroftEngine or read the user's manual here: https://drive.google.com/file/d/1iRz...wfApWhDoN/view.

Native Controller Support
https://github.com/stohrendorf/Ediso...nfig-small.jpg

Native Glidos Texture Pack Support
https://github.com/stohrendorf/Ediso...pack-small.jpg

Easy Setup Wizard
https://github.com/stohrendorf/Ediso...tup-wizard.jpg

Customisable Graphics
https://github.com/stohrendorf/Ediso...ings-small.jpg

Extensive Statistics
https://github.com/stohrendorf/Ediso...tats-small.jpg

New Immersive Water
https://github.com/stohrendorf/Ediso...ater-small.jpg

Ghosts - Race Against Yourself!
https://github.com/stohrendorf/Ediso...host-small.jpg

TR-Freak 14-01-21 03:20

Fascinating :jmp:
It looks like it behaves 1:1 like TR1

New Dwight 14-01-21 03:36

This is amazing! I love the workflow and excellency in execution. :tmb:

vvsgh 14-01-21 11:01

Hi, Steffen!

It's good to see you again :) I'm also glad that somebody is still working on TR1 engine.

I believe that only you and Gh0stBlade are still looking for faithful re-implementation of the original engine.

stohrendorf 24-01-21 18:10

Thank you for your feedback so far. I'm not checking here that often, but I've got some valuable responses on discord so far from the few people who actually tested the engine. This led to a series of new tickets in the github issue tracker, of which most are already resolved, and as a side effect led to improvements across the engine. I'm now putting up compiled binaries on github whenever I think it could be worth checking it again. Unfortunately, I can't fix issues I'm not aware of, so a lack of testers doesn't really help in that regard. So you might want to check out the releases once in a while: https://github.com/stohrendorf/EdisonEngine/releases

Cheers.

Cochrane 25-01-21 22:36

Oh, I remember this from back in the day. And I remember me being an uninformed asshole about some OpenTomb design decision and arguing quite a lot back thenů sorry about that. Great to see you and this project are still around! Greetings from 52074.

stohrendorf 13-02-21 20:14

Thanks :)

While I'm not too active here, alpha-2 has been released on github, with an updated gameplay video.

Cheers.

griffabee 13-02-21 20:56

The hi-res texturing is looking brilliant!

-Roli- 13-02-21 21:02

One word: STUNNING! :jmp:

stohrendorf 18-08-21 06:54

Quick notice, the beta is to be expected within 2 weeks, this is a short gameplay video of what to expect: https://earvillage.net/2021-08-18%2004-53-02.mp4

Famicom 13-11-21 22:17

Let me bump this thread by saying how good the whole thing looks. Can't wait to give it a try. Everything in the videos looks very faithful to the original: camera movements, enemies behaviour... Really cool.

ANoDE 14-11-21 09:21

This looks very promising indeed!
Is the game compmetely playable in this? I'd love to give this a spin once it is.

stohrendorf 14-11-21 15:51

Quote:

Originally Posted by ANoDE (Post 8330789)
This looks very promising indeed!
Is the game compmetely playable in this? I'd love to give this a spin once it is.

In theory it is fully playable, but because I have too few testers I can't say for sure. I'm testing bits of the first levels myself, but I'm bad at testing, and I'm pretty sure there are still bugs and glitches I don't know yet.

ANoDE 14-11-21 18:49

Quote:

Originally Posted by stohrendorf (Post 8330828)
In theory it is fully playable, but because I have too few testers I can't say for sure. I'm testing bits of the first levels myself, but I'm bad at testing, and I'm pretty sure there are still bugs and glitches I don't know yet.

Ah, ok :)
I've just played up to The Lost Valley, and so far, I'm more than impressed. This looks to be a VERY faithful re-implementation. I'm no hardcore player, who knows every nook and cranny, but to me it feels like it plays EXACTLY like the original - which is very cool.

The only minor issues I've detected so far:
* Sometimes, when pressing ACTION + UP to grab a ledge, Lara will jump, but fail to attach to the ledge. I have to let go of both keys and try again. This happens randomly and various spots but is not really reproducible.
* The "Depth of Field" effect should always focus on Lara. In some instances, the camera zooms out a bit farther than usual (for example during the first bat-encounter in "Caves"), rendering Lara blurry.
* Sometimes, when traversing through L-Shaped rooms, the camera will not correctly follow Lara. Instead, it will show the outer edge of the block behind Lara. This may be original engine behaviour, or it may be introduced due to the use of a widescreen resolution. In any case it's rather annoying since in this case it is virtually impossible to navigate Lara, as you can't see her. Moving a few steps forward / to the side usually makes the camera re-focus on Lara again.
* Shadows are cast through the floor. This can be seen right after throwing the switch after the blades in the City of Vilcabamba. The shadow of the bear can clearly be seen on the ground.

Again, these are VERY minor issues - I just thought I'd mention them in case you're in a bug-hunting mood.

At any rate, I'm more than impressed by this. Definitely gonna keep an eye on it.

I'll continue my playthrough during the next few weeks. Should I find a game-breaking bug, I'll open an issue on github :)

stohrendorf 14-11-21 19:19

[QUOTE=ANoDE;8330849]Ah, ok :)
I've just played up to The Lost Valley, and so far, I'm more than impressed. This looks to be a VERY faithful re-implementation. I'm no hardcore player, who knows every nook and cranny, but to me it feels like it plays EXACTLY like the original - which is very cool.

The only minor issues I've detected so far:
Quote:

Originally Posted by ANoDE (Post 8330849)
* Sometimes, when pressing ACTION + UP to grab a ledge, Lara will jump, but fail to attach to the ledge. I have to let go of both keys and try again. This happens randomly and various spots but is not really reproducible.

That is to some extent a shortcoming of the original engine while extrapolating Lara's position into the future. I'm not sure if I did it partially wrong, though.

Quote:

Originally Posted by ANoDE (Post 8330849)
* The "Depth of Field" effect should always focus on Lara. In some instances, the camera zooms out a bit farther than usual (for example during the first bat-encounter in "Caves"), rendering Lara blurry.

The engine uses the center of the screen as the focus point. This usually works well enough if there's an enemy big enough, or if there's a wall in front, but in certain cases like this it doesn't really work, unfortunately. I haven't come up with a solution to that.

Quote:

Originally Posted by ANoDE (Post 8330849)
* Sometimes, when traversing through L-Shaped rooms, the camera will not correctly follow Lara. Instead, it will show the outer edge of the block behind Lara. This may be original engine behaviour, or it may be introduced due to the use of a widescreen resolution. In any case it's rather annoying since in this case it is virtually impossible to navigate Lara, as you can't see her. Moving a few steps forward / to the side usually makes the camera re-focus on Lara again.

It'd be nice to have a screenshot or a short video showing the problem.

Quote:

Originally Posted by ANoDE (Post 8330849)
* Shadows are cast through the floor. This can be seen right after throwing the switch after the blades in the City of Vilcabamba. The shadow of the bear can clearly be seen on the ground.

That's a much more complex problem than it seems to be, and I'm aware of that. The problem is that the shadows are projected downwards until infinity. To make shadows "stop" at floors, the engine would both need to know the shadow caster position and the floor position. This can get quite complicated, especially in cases where an object is between two floors, and the shadow would have to be projected onto different floor heights below, possibly including another entity, stopping at different distances, and eventually even adding shadows from the object it's casting shadow onto. In general, it would mean implementing a rather complicated rendering pipeline on a per-object basis and the object's possible shadow interactions with other objects. I believe it would produce a lot more potential problems than it would solve, so I don't want to bother with it unless someone presents me a brilliant idea how to solve it ;)

Quote:

Originally Posted by ANoDE (Post 8330849)
Again, these are VERY minor issues - I just thought I'd mention them in case you're in a bug-hunting mood.

At any rate, I'm more than impressed by this. Definitely gonna keep an eye on it.

I'll continue my playthrough during the next few weeks. Should I find a game-breaking bug, I'll open an issue on github :)

Thanks :)

Teeth 14-11-21 20:44

Does it run in 4K?

stohrendorf 14-11-21 22:18

Quote:

Originally Posted by Teeth (Post 8330871)
Does it run in 4K?

Yes... I mean, probably. I don't own a 4k display so you need to test it yourself.

ANoDE 15-11-21 15:40

Quote:

Originally Posted by stohrendorf (Post 8330854)
That is to some extent a shortcoming of the original engine while extrapolating Lara's position into the future. I'm not sure if I did it partially wrong, though.

Ah, ok. Just thought it'd be worth mentioning :)


Quote:

Originally Posted by stohrendorf (Post 8330854)
The engine uses the center of the screen as the focus point. This usually works well enough if there's an enemy big enough, or if there's a wall in front, but in certain cases like this it doesn't really work, unfortunately. I haven't come up with a solution to that.

I see. Well, it's not THAT much of a problem anyway :)


Quote:

Originally Posted by stohrendorf (Post 8330854)
It'd be nice to have a screenshot or a short video showing the problem.

Just tried to reproduce it, but it's rather difficult to do. I was only able to recreate it by turning REALLY close to the corner of a block. I feel it was easier yesterday. I'll keep an eye out for this and post a video / screenshot if it happens again.

Quote:

Originally Posted by stohrendorf (Post 8330854)
That's a much more complex problem than it seems to be, and I'm aware of that. The problem is that the shadows are projected downwards until infinity. To make shadows "stop" at floors, the engine would both need to know the shadow caster position and the floor position. This can get quite complicated, especially in cases where an object is between two floors, and the shadow would have to be projected onto different floor heights below, possibly including another entity, stopping at different distances, and eventually even adding shadows from the object it's casting shadow onto. In general, it would mean implementing a rather complicated rendering pipeline on a per-object basis and the object's possible shadow interactions with other objects. I believe it would produce a lot more potential problems than it would solve, so I don't want to bother with it unless someone presents me a brilliant idea how to solve it ;)

Wow, I was not aware this would be so complicated.

Bokkie 15-11-21 16:51

I've watched the video and it looks great, however it cannot run on my machine, got the following error:

Code:

[2021-11-15 18:49:44.965009 info 0x00000c58] Check user data dir: "s:\\tr1b6"
[2021-11-15 18:49:44.965009 info 0x00000c58] Check user data dir: "C:\\Users\\Administrator\\AppData\\Local\\edisonengine"
[2021-11-15 18:49:44.966009 error 0x00000c58] Abnormal termination. Stacktrace:
 0# pybind11::error_already_set::~error_already_set in edisonengine
 1# pybind11::error_already_set::~error_already_set in edisonengine
 2# terminate in ucrtbase
 3# pybind11::error_already_set::~error_already_set in edisonengine
 4# UnhandledExceptionFilter in KERNELBASE
 5# memset in ntdll
 6# _C_specific_handler in ntdll
 7# _chkstk in ntdll
 8# RtlRaiseException in ntdll
 9# RtlRaiseException in ntdll
10# RaiseException in KERNELBASE
11# CxxThrowException in VCRUNTIME140
12# pybind11::error_already_set::~error_already_set in edisonengine
13# pybind11::error_already_set::~error_already_set in edisonengine
14# pybind11::error_already_set::~error_already_set in edisonengine
15# pybind11::error_already_set::~error_already_set in edisonengine
16# BaseThreadInitThunk in KERNEL32
17# RtlUserThreadStart in ntdll
Signal 22 caught; stacktrace:
 0# pybind11::error_already_set::~error_already_set in edisonengine
 1# pybind11::error_already_set::~error_already_set in edisonengine
 2# raise in ucrtbase
 3# abort in ucrtbase
 4# pybind11::error_already_set::~error_already_set in edisonengine
 5# terminate in ucrtbase
 6# pybind11::error_already_set::~error_already_set in edisonengine
 7# UnhandledExceptionFilter in KERNELBASE
 8# memset in ntdll
 9# _C_specific_handler in ntdll
10# _chkstk in ntdll
11# RtlRaiseException in ntdll
12# RtlRaiseException in ntdll
13# RaiseException in KERNELBASE
14# CxxThrowException in VCRUNTIME140
15# pybind11::error_already_set::~error_already_set in edisonengine
16# pybind11::error_already_set::~error_already_set in edisonengine
17# pybind11::error_already_set::~error_already_set in edisonengine
18# pybind11::error_already_set::~error_already_set in edisonengine
19# BaseThreadInitThunk in KERNEL32
20# RtlUserThreadStart in ntdll


stohrendorf 15-11-21 19:28

Is that from the log file or from the terminal window? The log file usually contains a little bit more information, this one looks like it can't find the necessary game data. Usually it prints out a lot more information about the environment, including OpenGL information. Could you maybe send the log file of the crash?

// edit: you may want to take a look into the user's manual, too: https://drive.google.com/file/d/1iRz...wfApWhDoN/view

Bokkie 15-11-21 20:14

Many thanks, the user manual helped :)

It looks very very good, nice job

stohrendorf 19-11-21 15:25

Beta 7 is out: https://github.com/stohrendorf/Ediso...ses/tag/beta-7

This mainly includes many refactorings not visible to the user, but also a few bug fixes, new dust particles, and a new ammo counter display.

MyRaider4Life 21-11-21 00:16

Is there by any chance a way to skip levels?

Made it to Obelisk of Khamoon but the drawbridges don't drop when you pull the levers, so I'm unable to collect the 4 items needed to progress.

Wanted to give you props as well, this engine is awesome. Love the vibrance in colours. I feel like it's the closest we have to the PS1 version. :cln:

stohrendorf 21-11-21 06:39

Quote:

Originally Posted by MyRaider4Life (Post 8332000)
Is there by any chance a way to skip levels?

You can edit share\scripts\tr1\level_sequence.py and add add a line level_sequence=level_sequence[x:] at the the end, where you should replace x by the number of entries you want to skip of the level sequence (e.g., 1 if you want to skip the video, 2 if you want to also skip the first level, etc.)

Quote:

Originally Posted by MyRaider4Life (Post 8332000)
Made it to Obelisk of Khamoon but the drawbridges don't drop when you pull the levers, so I'm unable to collect the 4 items needed to progress.

EDIT: Bug is fixed. [Can I have your save please so I can investigate this bug?]

Quote:

Originally Posted by MyRaider4Life (Post 8332000)
Wanted to give you props as well, this engine is awesome. Love the vibrance in colours. I feel like it's the closest we have to the PS1 version. :cln:

Thanks!

stohrendorf 21-11-21 19:48

Quote:

Originally Posted by ANoDE (Post 8330849)
Ah, ok :)
Sometimes, when pressing ACTION + UP to grab a ledge, Lara will jump, but fail to attach to the ledge. I have to let go of both keys and try again. This happens randomly and various spots but is not really reproducible.

core messed up the math. I fixed it and now I wonder why this didn't manifest as often as it should have.

ANoDE 24-11-21 08:14

Quote:

Originally Posted by stohrendorf (Post 8332117)
core messed up the math. I fixed it and now I wonder why this didn't manifest as often as it should have.

Yay!

Glad to hear it :)

Btw. I'd also really appreciate a level skip code (I feel like I've mentioned that somewhere already, if so, please disregard, I don't want to sound pushy), since the loads are not compatible between versions and I don't want to restart from the beginning each time.

stohrendorf 24-11-21 16:13

Quote:

Originally Posted by ANoDE (Post 8332487)
[snip] since the loads are not compatible between versions and I don't want to restart from the beginning each time.

Savegame format has been stable for a few releases already, last time it wasn't compatible was Beta 2.

ANoDE 24-11-21 18:50

Quote:

Originally Posted by stohrendorf (Post 8332537)
Savegame format has been stable for a few releases already, last time it wasn't compatible was Beta 2.

Interesting. Because after upgrading to Beta7 (from Beta6.1) the game always crashed when loading any particular save :-/
Maybe all my saves were corrupted by having picked up a pickup again after using it?
(Unfortunately I don't have them anymore)
Anyway, good to know - I'll only have to replay the first few levels.

Should I file a bug report next time the game won't load old saves?

stohrendorf 24-11-21 19:08

Quote:

Originally Posted by ANoDE (Post 8332570)
Should I file a bug report next time the game won't load old saves?

Yes, please. Although I'm not exactly sure why it crashed, it's probably because of the internal fix having some unforeseen side effects.

stohrendorf 27-11-21 11:28

Beta 7.1 is out, containing the fixes for the reported bugs here and on GitHub: https://github.com/stohrendorf/Ediso...s/tag/beta-7.1

ANoDE 29-11-21 14:39

Quote:

Originally Posted by stohrendorf (Post 8332863)
Beta 7.1 is out, containing the fixes for the reported bugs here and on GitHub: https://github.com/stohrendorf/Ediso...s/tag/beta-7.1

Thanks for the update! The flickering textures are resolved now (yay)!
I've already create a new bug report concerning traversal - but this one seems to be a bug in the original game code as well, so I'm not sure if it even should be fixed (although it's probably annoying when it happens)

stohrendorf 29-11-21 16:35

Quote:

Originally Posted by ANoDE (Post 8333110)
I've already create a new bug report concerning traversal - but this one seems to be a bug in the original game code as well, so I'm not sure if it even should be fixed (although it's probably annoying when it happens)

Not exactly sure what happens there, but it could (just a theory) break wall cracks shimmying, e.g. the secret above the waterfall in lost valley could become unreachable if I fix this, but we'll see.

ANoDE 29-11-21 17:27

Quote:

Originally Posted by stohrendorf (Post 8333137)
Not exactly sure what happens there, but it could (just a theory) break wall cracks shimmying, e.g. the secret above the waterfall in lost valley could become unreachable if I fix this, but we'll see.

I actually thought about this as well, when reporting it.
Crack shimmying to me feels like an engine flaw abused by the level designers rather than something that should work based on the engine's design parameters.
If fixing this causes issues, I opt for leaving it the way it is. It's been that way for 25 years, who am I to complain 🤣

stohrendorf 30-11-21 16:19

It's a flaw with the level data and the handling of bridges. In this case, the engine is instructed to calculate collisions for both bridge parts, the flat one and the sloped one. The sloped one does its height calculations assuming a) the bridge spans only one sector in each direction, and b) the position it should calculate its floor or ceiling height for is a valid position on the bridge. The "optimized" math does a simple modulo operation on the coordinates, resulting either in an infinite plane in case of the flat bridge, or a jagged height/ceiling line in case of the sloped one. If you happen to hang on a seam like in this case, the front left is compared to the right part of the sloped bridge (because of the infinite jigsaw height line), which lets the engine determine that there's not enough space to climb on.

Took me a while to find the root cause, but it can be fixed without damage unless one intentionally abused this bug.

ANoDE 30-11-21 17:59

That's great news! Thanks for looking into it :tmb:

Quote:

Originally Posted by ANoDE (Post 8330849)
* Sometimes, when traversing through L-Shaped rooms, the camera will not correctly follow Lara. Instead, it will show the outer edge of the block behind Lara. This may be original engine behaviour, or it may be introduced due to the use of a widescreen resolution. In any case it's rather annoying since in this case it is virtually impossible to navigate Lara, as you can't see her. Moving a few steps forward / to the side usually makes the camera re-focus on Lara again.

Quote:

Originally Posted by stohrendorf (Post 8330854)
It'd be nice to have a screenshot or a short video showing the problem.

I was now finally able to get a video of this issue, btw.

Savegame: https://www.dropbox.com/s/dxs940bcor...amera.zip?dl=0


It's really no biggie, as moving Lara fixes the camera anyway, but it would still be better to be able to see where she is going - even if it's only a few steps.

EDIT: Got a different example. In this one the camera doesn't show Lara for nearly 2 blocks.

stohrendorf 30-11-21 21:00

Huh, that's interesting, never experienced that behaviour before except when it was a fixed camera position, which somehow looks like it is. Will investigate.

MyRaider4Life 04-12-21 12:59

Thanks for the update fixing the drawbridge issue!

I have another problem now though, I can't seem to load my save from the previous version in 7.1, any workaround for this? :o

stohrendorf 04-12-21 16:35

Quote:

Originally Posted by MyRaider4Life (Post 8333894)
Thanks for the update fixing the drawbridge issue!

I have another problem now though, I can't seem to load my save from the previous version in 7.1, any workaround for this? :o

Can you send me your save so I can take a look at it?

stohrendorf 05-12-21 01:52

Quote:

Originally Posted by ANoDE (Post 8333347)
It's really no biggie, as moving Lara fixes the camera anyway, but it would still be better to be able to see where she is going - even if it's only a few steps.

Unfortunately it's camera code. Camera code has always been my super villain. I did a few debug sessions, but I didn't see anything that's easy to fix, and I'm highly afraid to touch the camera code at all after years of strange bugs and crashes. The reason it's behaving differently from the original is because I had to tweak a few things which were bugged in the original engine and caused crashes in my implementation because of added sanity guards. Unless it's a non-minor problem I'd really like to keep my fingers off from it.

ANoDE 05-12-21 04:38

Quote:

Originally Posted by stohrendorf (Post 8334016)
Unfortunately it's camera code. Camera code has always been my super villain. I did a few debug sessions, but I didn't see anything that's easy to fix, and I'm highly afraid to touch the camera code at all after years of strange bugs and crashes. The reason it's behaving differently from the original is because I had to tweak a few things which were bugged in the original engine and caused crashes in my implementation because of added sanity guards. Unless it's a non-minor problem I'd really like to keep my fingers off from it.

Oh, ok :)
Thanks for having a look at it, though. :)


All times are GMT. The time now is 04:56.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.