Katana-Steel / lithtech

70 stars 15 forks source link

AVP2 support #110

Open x3k30c-azalia opened 9 months ago

x3k30c-azalia commented 9 months ago

Dear Rene Kjellerup,

I tried to mail you earlier. Is there any chance to remake/support AVP2? It would be great to see a linux port of these lithtech games anyway as they work horrible under wine.

Actually, I tried compiling it (AVP2) myself then saw the difficulties, the source code of the Talon engine is simply unavailable. Then I saw the GPL release and your fork and I though about something similar, maybe it would be possible to port the game to work on the GPL engine.

What I would also like to ask that would it be possible to somehow cooperate with you guys? I am definitely not at your skills but maybe I could do a few things. I saw that AVP2 is not on your support list anyway.. Actually, I gave it a try with gcc, many parts of the GPL engine could be compiled with some changes, I know that this is far from enough. On top of that, AVP2 relies on missing source code like lithtrackmgr which is simply missing from the GPL engine and it's quite a big file. Maybe I could try to reverse engineer it.

Starting from zero (with the 2012 release - I thought I give it a try in my spare time) - for me - I think it would be impossible to do all the required changes and finish it, and I don't have the time either hence I am asking it.

Some background: I haven't worked with games, except AVP1. I've made some changes on the source code of AVP1 (detail textures, texture enlargements, FOV fixes, EAX patches), a bit more playable, that's all (the Game wasn't rewritten by me of course, that's the Icculus guy).

Regards, Akos

Katana-Steel commented 8 months ago

Can't make any promises at this time. Thank you for the suggestion, and I'd have a look, time permitting.

oopsallnaps commented 7 months ago

I've done some work in this area for NOLF 1 models. AVP2 works as well. (Vertex animations aren't supported yet.) There's some issues with bone weighting since this engine only supports 3 weights per vertex (since it's early hardware accelerated transforms), and nolf1/avp2 can have quite a bit more (since it's done in software.)

The code is an absolute mess as it basically converts the model format on the fly (by filling in the newer mesh structs, I haven't touched the rendering code.) But it's a proof of concept. I'm working on a version of this for the level format as well. After the level code is working I'll be hooking up the old API layer for Lithtech 2 games onto this engine. (It'll be ifdef'd for now.)

I've attached some preview images of a test in-game model viewer. You can see the weighting issue on Cate in the second photo.

image image

x3k30c-azalia commented 7 months ago

Thanks for the response. (The newer GPL engine allows 3 weights?) is the model/level code/format you are working on related to this issue (game assets) "Figure out the difference between formats and rework the engine to support both. (very unlikely)"?

Besides this, I can't ask or comment any more as I am not familiar with the structure of the engine anyway, client vs server etc. but by diff-ing some of the code files, there are some differences for sure but in many cases it's just the addition and/or the lack of functions or class members between the old and the new engine.

At least there is some hope as there aren't many people who would volunteer to do something like this.

I usually work on other projects. If I have some time, I will try to understand the structure and mechanism of the engine first. I am also available at x3k30c@tutanota.com