OpenXRay / xray-16

Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. Join OpenXRay! ;)
https://discord.gg/sjRMQwv
Other
3.05k stars 456 forks source link

Xray 1.6 for SHOC and/or Oblivion Lost Remake #162

Closed russwest44 closed 5 years ago

russwest44 commented 7 years ago

I'm brand new to this. I have a small amount of C++ experience, mostly in small modifications. I just want to get a general idea of how difficult it would be to modify xray 1.6 to run specifically old engine builds like the one used for OLR. 1.6 is more stable, looks better and seems to perform better in general, so hopefully it is feasible for someone with limited experience.

CrossVR commented 7 years ago

We are very interested in porting the older Stalker games (ShoC and Clear Sky), however this is not as easily done as simply loading the resources into the new engine.

A lot of the game is written in LUA scripts, but some (most?) of the gameplay code is integrated with the engine, so we need to ensure the 1.6 version of the engine can link to multiple versions of the game.

There is also the concern over the format of the resources, GSC iterated on these formats and 1.6 may not support the older formats used in the previous games. So backwards compatibility would need to be implemented.

There are probably things I've missed, but that should give you a general idea of the difficulty.

russwest44 commented 7 years ago

hmmmm, so basically xray would have to include parts of the old build and 1.6? Kinda like using the old engine to handle everything handled by the cpu and stuff, while 1.6 renders it? Forgive me if I'm way off.

CrossVR commented 7 years ago

No that would mean it's not running in the new engine, that would mean you just ported the render backends from 1.6 to the old engine.

What I mean is linking the xrGame module from the old engines, which should contain most of the gameplay code, in the latest version of the engine. And giving the engine the ability to load older versions of the resource formats.

Do note that I'm oversimplifying the process, nothing is easy in the XRay engine and trying to link older modules into newer versions of the engine will probably result in a lot of issues that need to be fixed. And there will probably be some gameplay code outside of the xrGame module, I don't know if that module covers all of the gameplay code we need to port.

russwest44 commented 7 years ago

That sounds like a much less complicated way of accomplishing what I was brainstorming there.

CrossVR commented 7 years ago

It's actually more complicated than just porting the render backends. But by porting the render backends all you're achieving is a bit of a visual upgrade. What we actually want is to have all the games running on the same version of the engine, that way they benefit from all the other extra features added in the newer versions.

This is also necessary to make sure that all previous chapters of Stalker benefit from the clean ups and improvements being made here instead of having the effort split between the different versions of the engine.

russwest44 commented 7 years ago

That's a great goal, I'm going to compile openxray and start playing around to hopefully learn a thing or two.

CrossVR commented 7 years ago

You might run into some trouble building it right now, it's a bit complicated and I'm working on improving the process. Use this guide as a starting point: https://github.com/OpenXRay/xray-16/blob/dev/doc/howto/build.txt

And follow these two comments from me: https://github.com/OpenXRay/xray-16/issues/153#issuecomment-273448204

russwest44 commented 7 years ago

awesome, thank you. Already following but those comments might help if I run in to trouble.

CrossVR commented 7 years ago

Let me know if you get stuck somewhere and don't feel discouraged if you can't get it working right away.

If you want to help improve the process, this is the PR I'm working on: https://github.com/OpenXRay/xray-16/pull/160

russwest44 commented 7 years ago

I am so lost still, tons of errors while compiling.

Xottab-DUTY commented 7 years ago

Can you provide your errors here? In a gist maybe.

CrossVR commented 7 years ago

@russwest44 A couple of projects will never compile right now, but those are not needed to build the xrEngine project.

Also make sure you are on the dev branch and not on the master branch.

IriaSomobu commented 7 years ago

@Armada651, you said that:

There is also the concern over the format of the resources, GSC iterated on these formats and 1.6 may not support the older formats used in the previous games. So backwards compatibility would need to be implemented.

But maybe it easier to upgrade/patch resources with old format to current using something like external converter?

CrossVR commented 7 years ago

@iillyyaa2033 If you've built a converter, then you can do the conversion on-the-fly in the engine, meaning you've actually implemented backwards compatibility. I don't see a real advantage to converting them beforehand unless the formats are so significantly different that it becomes a CPU-intensive operation.

IriaSomobu commented 7 years ago

Ok, I've understood.

russwest44 commented 7 years ago

I get like 3 errors in the "root" file of bugtracker. I can't fix the last syntax error and I can't proceed with compiling.

russwest44 commented 7 years ago

First off, when running xrbinprep, I get this cmd.txt

CrossVR commented 7 years ago

Syntax errors in BugTrap? Can you post the compiler log?

russwest44 commented 7 years ago

I will, I'm recreating the project right now and it's taking 10x longer than normal so maybe I did something different. I can only imagine how long it will take to compile.

russwest44 commented 7 years ago

gist

https://gist.github.com/russwest44/511cb5a28dcee5788b72cc7036727ebe

russwest44 commented 7 years ago

Never mind, every single step is either an error or warning, sorry for so many comments

Xottab-DUTY commented 5 years ago

Watch for #382 and #392