Page 67 of 72

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Tue Dec 12, 2017 7:18 am
by Higor
These should only be applied over the latest stable builds.

This can crash during joining process.
- Asynchronous decompressor, info on screen (join a server, download some files while you're playing offline)
- Package downloader and loader using GUID, you can now join servers with mismatching files.

Stuff that I'll add over the builds:
- Info on additional packages during download (how many need to be downloaded, full data)
- URL protocol filters.

============
Servers have the experimental relevancy loop
- Better visibility checks through windows, less actors replicated.
- Improved Pawn bandwidth hack, pawn positions look better.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Tue Dec 12, 2017 8:17 am
by sektor2111
Primary test failed. I had to move at work so I will check more details later.
Connecting server using no stuff declared in INI files from client - properly joined.

All declared and the same files used in both server and client 440.
3 times downloaded the same few files and then client said that map file was not found "file load failed etc." which was the first download. I was unable to join even after restarting client - I think map it's in cache but unusable. This way doesn't seems to work. I'll track logs and screenshots after work. In case of failures I'll go back to old XC_Core XC_IpDrv.

Edit:I could check more details about this update as long as I'm back from work.
To be honest I don't know what you did but I'll fallback to v20 as it was before. I see double downloads from redirects and then the same stuff from server like redirect doesn't exist. I'm talking about files which aren't in cache. Else at end of downloading client says that cannot find map file but map is cached normally. With old client V20 is not that different when server has this v21. What did I miss ? New V21 for the moment it's useless as long as is not compatible with old XC_Core.dll, XC_IpDrv so I have do changes back to v20.
Edit2: Found something not OK here in my client side I forgot external lzma file but this doesn't explain why client is trying 2 times a download from lzma redirect if first time has failed and has no decompressor. - Why does it need to download useless files if cannot deal with them ?
I've added lzma.dll file, but map cannot play, client has to uncache map else NONE game. By having server V21 and client V20 everything works normally.
To summarize this V21 is NOT for clients, unless they want to not join to servers that easy...

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Tue Dec 12, 2017 5:28 pm
by Higor
The external LZMA isn't an optional component, XC_IpDrv will always attempt to download the LZMA file first.
The package file finder now always attempts to match the package GUID, so it makes sense that files in your game directory are now discarded over cached versions (if game files are mismatches).

Logs aren't as verbose, the only difference you'll see is whenever the game attempts to replace a game file with a cached file, in the following case if have Unreal CD's Dusk.umx in my game and I was able to join a server using the long contaminated Dusk.umx without problems.

Code: Select all

XC_Engine: Loading GUID compatible package Dusk from ../Cache\B2ECEB6B47299A05CF10598A925E1E86.uxx

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Tue Dec 12, 2017 8:11 pm
by sektor2111
With or without LZMA, downloaded map from whatever location won't load not local map from map folders. Client is rejected and cannot enter game EVER without having exactly map file in maps folder. I'll setup client and I'll drop a screenshot + a log snippet if you want to see it.
[attachment=0]Cli_v21.png[/attachment]

Log file confirms what's happening.

Code: Select all

...
DevNet: Receiving package 'MH-{mcslc}-WarOfMonsters'
...
DevNet: Compressed filesize: 230293
....
....
Warning: Failed to load 'MH-{mcslc}-WarOfMonsters': Can't find file 'MH-{mcslc}-WarOfMonsters'
Warning: Failed to load 'Level None.MyLevel': Can't find file 'MH-{mcslc}-WarOfMonsters'
NetComeGo: Close XC_TcpipConnection0 12/12/17 21:17:03
Map is the first file in download chain and then it says what you see. Don't get me wrong but in this way player need all maps which server might have, else player has no business there, this doesn't happen in V20. I don't care about dusk file, Level is NOT Loaded not even from cache, as long as client doesn't have main Level the rest of debate is useless.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Wed Dec 13, 2017 1:20 am
by Higor
Fixed map package linker.
Restored 'most' of the import verifications to preload stage (less likelly to crash the game)
Some packages may fail to load even if in Cache.ini, gotta find out what's up with that.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Wed Dec 13, 2017 6:54 am
by sektor2111
Take in account that some "user" (like me) might delete cache when it grows too much but without editing Cache.ini. The problem is then you cannot count on that file, and then I did not have any issues so far so you can forget Cache.ini deals because what's in that file might be a false reality. UT by default seems to have some good sanity checks and others are None (you know them better than anyone here...).
I go to my "testing lab" for primary tests before to leave the home for moving at work...
Edit: Test failure - operated with a clean cache and less clean with a similar result.
Client could not load a texture downloaded.

Code: Select all

...
DevNet: Receiving package 'QUAKE3c'
...
DevNet: Compressed filesize: 1131545
...
DevAudio: Galaxy SetViewport: WindowsViewport0
Warning: Failed to load 'QUAKE3c': Can't find file for package 'QUAKE3c'
NetComeGo: Close XC_TcpipConnection0 12/13/17 08:03:33
LZMA.dll is there, no "collisionhook" active and no "levelhook" is being used.
In final stage I'm hoping to load all content from "packagemap" or else all goes nowhere.
Edit2: Test number 2: Less relevant things.
Client has XC files and decompressor but UT.ini is set for default engine.
Lzma loads/decompress properly - some messages are shown shortly on screen. All is decompressed and loaded correctly - client is able to play.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Wed Dec 13, 2017 10:19 pm
by Higor
Breakthrough!

- Download progress tell you how much crap the server wants you to install.
- Package loader and verifier should cover all failure cases.
- Mismatch will only be shown if the loader is trying to replace a package that already exists in memory, in that case load a different map to unload packages and try rejoining.
-- Side effect: Triggers a specific log that was only previously seen in Unreal Editor, it indicates whenever a cached package is being loaded.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Wed Dec 13, 2017 10:54 pm
by Chamberly
Spoiler
Looks like the redirect doesn't fall back to 'failed' mode after not finding files. - I found redirect not forwarding files to download if it doesn't found the lzma/uz unless I re-connect to the server to download the file. Just a small boo boo, but totally enjoying it!
Image

Love it! :mrgreen:

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Wed Dec 13, 2017 11:12 pm
by ShaiHulud
Very nice - great work

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Wed Dec 13, 2017 11:19 pm
by sektor2111
Woow ! Good so far...
[attachment=0]Cli_21V3.jpg[/attachment]

Next stage of testing is mismatch problem. I'm gonna screw some files on purpose to see how do it works. So far it's awesome - no kidding. :gj:

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Thu Dec 14, 2017 12:07 am
by nogardilaref
Whoa, that screenshot above caught my attention, great job at it Sektor. :mrgreen:
Is that some feature from this engine or so?

Also, would that mean that eventually we could create our own progress bars and whatnot, and render the progress in our own, as well as maybe render full images like more modern games...
This does sound very interesting.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Thu Dec 14, 2017 12:31 am
by sektor2111
THIS is Higor keeping UT alive (I know it sounds like a deja vu) but here is for real. XC_Engine v21 has a target connecting to an XC server (it's a default thing for now) getting over mismatch problems. First attempts had some flaws but Higor could figure what's the deal.
The real fact is right now I cannot quit using XCGE because I will need to remove crapped map, outta yard. I can play almost forgotten stuff just because XC_Engine does exist. Main things which are OKAY for me and are intensive used:
- fixing default Windows PlayerCanSeeMe crash bug;
- adding ReplaceFunction - very used by my XC_MonsterHunt;
- adding option for changes in Paths Network from a Level - NavAdder which I wrote has such a goal;
- iterators by Higor made me to have a different Bot class OVER-used in all my games;
- LZMA compression for redirect made things more safe and faster and... smaller files - very small uz files are crashing default UT game engine, btw.
And... the cherry - Solving mismatching problems ? This is the best ever thing if it proves operational.
Higor deserve a barrel with beer. While he was working at packages chapter he added some aka U227 stuff which simply makes you - the player - to know how long you have to wait for downloading files.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Fri Dec 15, 2017 2:25 am
by papercoffee
sektor2111 wrote: Higor deserve a barrel with beer.
Make this two. ;)

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Fri Dec 15, 2017 4:59 am
by Higor
This build should be stable enough, just needs some more testing before I move onto other features.

Server:
Bugfix in extended PreLogin checks.

Client:
ClientTravel, Open cannot be used to open local files anymore.
Fixed bad code that could either crash on join, or make the client load the map with an incorrect package.
Clients no longer send options 'Game' and 'Mutator' in their login string.

Re: XC_Engine [20] - XC_Core [7b] - XC_IpDrv

Posted: Fri Dec 22, 2017 3:14 am
by [rev]rato.skt
I am having a problem, when I try to download the file from redirec and it does not find, it does not download from unreal and build this error...
i test AllowDownloads=False and AllowDownloads=True :|
Image