Page 1945 of 1951

Re: The Still New What Did You Last Do Thread

PostPosted: Fri Jul 23, 2021 2:43 pm
by dpJudas
leileilol wrote:Another confusing thing about UnrealEngine1 is that the brightness adjustment's never consistent between renderers.

This is in part because the code is total spaghetti for all those renderers. When I wrote the VulkanDrv I really just wanted a faithful rendering the way the game looked like in what I guess was Direct3D 8. But all those renderers do things slightly differently in such a way you can never be sure which one of them are actually doing it right, and which are just doing an approximation as allowed by that particular render API.

I think I got fairly close to the correct thing, probably only missing the shiny surfaces. Still, it's very hard to even check as most of those API's require you to dig out some 25 year old computer to check. :)

Re: The Still New What Did You Last Do Thread

PostPosted: Fri Jul 23, 2021 2:44 pm
by InsanityBringer
I remember many many years ago noting that all the Unreal classes still existed in Unreal Tournament and fucking around with INF files to allow playing the original levels with them, but I never played with this extensively enough to tell if there are any major errors or problems. On the offchance there aren't, I guess that could serve as a crude method of using UTEngine to play the original Unreal.

Though they changed the original game's ammo pickup sound for.. some reason?

Re: The Still New What Did You Last Do Thread

PostPosted: Fri Jul 23, 2021 3:07 pm
by dpJudas
Yep that's one of the reasons I'm fairly convinced it can't be too difficult in theory. All those monsters you can spawn are Unreal 1 stuff. I suppose I could try buy Unreal 1 and give it a spin just to see what happens if I feed it that folder instead. :)

Re: The Still New What Did You Last Do Thread

PostPosted: Fri Jul 23, 2021 3:26 pm
by leileilol
Pretty much all the Unreal weapon sounds got changed around patch 220/ ~Dec98. I don't like them either :S (no offense to Sonic Mayhem but i'm very fond of the old, quiet, lazy soundideas mashes - which were actually considered "surprisingly wimpy" even back in mid-98. Compare Unreal's weapon sounds to something like M.A.X., Descent 2, Shattered Steel, etc.)

Re: The Still New What Did You Last Do Thread

PostPosted: Fri Jul 23, 2021 5:07 pm
by Kokonut
Image
I got way too bored, and then 5 minutes later behold: the ultimate pista0 to end all pista0. It's all of them at once! To upset EVERYONE!

Re: The Still New What Did You Last Do Thread

PostPosted: Fri Jul 23, 2021 5:39 pm
by Nash
Will the engine be able to run Deus Ex? :D

Re: The Still New What Did You Last Do Thread

PostPosted: Fri Jul 23, 2021 6:12 pm
by dpJudas
Nash wrote:Will the engine be able to run Deus Ex? :D

Not by me. :) Some of the docs I have on the file formats do describe some of the changes for Deus Ex models though.

Re: The Still New What Did You Last Do Thread

PostPosted: Fri Jul 23, 2021 8:14 pm
by dpJudas
I managed to get it to load data from the unreal gold packages. Here's one of the maps:



There's a bunch of minor differences between the games though that will take some actual effort to solve. I had to disable all the unrealscript code to get that screenshot as the way Unreal boots differs slightly from how Unreal Tournament does it. A simple example of this is that in UT the LevelInfo object is always named LevelInfo0, while it seems to have different numbers depending on which map I load in Unreal.

I think the conclusion is that someone with dedication could certainly add Unreal support in the engine. Maybe someone will do that some day if I get it to run UT correctly. :)

Re: The Still New What Did You Last Do Thread

PostPosted: Sat Jul 24, 2021 1:25 am
by Graf Zahl
The game I'd like to see supported is Klingon Honor Guard. The game itself could still run on modern systems with a bit of effort if it wasn't for using that old and broken "Video for Windows" for playing its cutscenes.That makes it bail out every time I try to start a level.

Maybe we can get some effort under way to get these games working once this thing is stable enough.

Re: The Still New What Did You Last Do Thread

PostPosted: Sat Jul 24, 2021 2:58 am
by KynikossDragonn
dpJudas wrote:A simple example of this is that in UT the LevelInfo object is always named LevelInfo0, while it seems to have different numbers depending on which map I load in Unreal.


That probably might be the result of what happens if you "Import" a entire level T3D in UnrealEd, it has the tendency to somehow make multiple LevelInfo actors into the map.

Which is really rather stupid because the only way to really fully "rebuild" a map from scratch is to start a blank map and import a T3D of the entire map you want to rebuild.

Re: The Still New What Did You Last Do Thread

PostPosted: Sat Jul 24, 2021 7:34 am
by dpJudas
Graf Zahl wrote:The game I'd like to see supported is Klingon Honor Guard. The game itself could still run on modern systems with a bit of effort if it wasn't for using that old and broken "Video for Windows" for playing its cutscenes.That makes it bail out every time I try to start a level.

Maybe we can get some effort under way to get these games working once this thing is stable enough.

It is certainly possible getting all those UE1 games working with a little bit of work. They all use the same VM. They only differ in having added or removed a few native functions, slight changes in the Actor.spawn function or events firing during ticking. Maybe a minor change in the mesh or level format (Deus Ex improved the mesh vertices).

The best thing is that they all actually include the source code of their unreal scripts. The UTEngine project includes a debugger (like Visual Studio's debugger) that lets you step through the code, examine the local variables, see the call stack, etc. If enough people chime in I think it should be possible to support the entire UE1 family of games with just one codebase. :)

@KynikossDragonn: this wasn't an import though. It was exactly as the files looked like in the Unreal Gold packages. I suppose you're right this could be just an artifact of how UnrealEd functioned in the early days. Or it could be somehow related to level hub depths or something like that. In any case, for Unreal 1 support someone would have to figure puzzles like that out. :)

Re: The Still New What Did You Last Do Thread

PostPosted: Sat Jul 24, 2021 7:52 pm
by KynikossDragonn
dpJudas wrote:I suppose you're right this could be just an artifact of how UnrealEd functioned in the early days. Or it could be somehow related to level hub depths or something like that. In any case, for Unreal 1 support someone would have to figure puzzles like that out. :)


Yeah that's how I was trying to get the point across, the maps in Unreal went through a lot of serious changes that often are best done by exporting a map to T3D then re-importing the T3D after restarting UnrealEd. A LevelInfo actor is exported in the T3D and I don't think UnrealEd is smart enough to not just accidentally double LevelInfo a map somehow doing that.

Re: The Still New What Did You Last Do Thread

PostPosted: Mon Jul 26, 2021 2:15 pm
by irontusk341
Last thing I did today is something i've been trying to tackle all day actually.... Does anyone here have an Unlimited Data plan? I do, but, i'm working on trying to livestream in HD from my phone on Facebook but the problem is, the stream cuts to 24FPS and at 360p... I would love to stream in 60FPS and I would be happy with at least 30fps and 720p. Any streamers have a workaround?

Re: The Still New What Did You Last Do Thread

PostPosted: Mon Jul 26, 2021 11:50 pm
by InsanityBringer
Image
Finally getting back to learning Vulkan. According to cloc I'm at 1000 lines (around 100-150 are the win32 template program though) to do nothing but set up enough state to clear the window to random colors.

I've got a good idea how to progress to drawing a triangle. Pipelines maintain shader programs, and the descriptor sets to provide information for them, as well as vertex attribute descriptors. Render passes for holding state relating to the actual drawing, with framebuffers used to bind images to the render pass attachments. Buffers are there... The biggest challenges so far are figuring out how the heck to make this all into sane code. And figuring out what important puzzle piece I'm missing.

Re: The Still New What Did You Last Do Thread

PostPosted: Tue Jul 27, 2021 11:53 am
by dpJudas
InsanityBringer wrote:The biggest challenges so far are figuring out how the heck to make this all into sane code. And figuring out what important puzzle piece I'm missing.

The important puzzle piece you're missing are the image transitions. Vulkan is one of the most tricky APIs I've encountered when it comes to managing it. All those object types you listed have subtle cross dependencies with no compile time way of ensuring you don't break them.

For example, the pipeline objects, renderpass objects, framebuffer objects, and the image objects must agree on the layout. If they aren't in perfect sync you get no warnings beyond horrible unreadable log messages from the validation layer. To make it even better the render passes can change an image object's layout just by using it, making it extremely complex to track what layout an image is in. If you use any kind of shortcut, like keeping the image layout in the general layout, the validation layer will moan at you about performance warnings.

My favorite part is that I think Nvidia doesn't even use those layouts for anything. All it is in an excercise in keeping the validation layer happy. Rage currently produces warnings about the layouts getting out of sync, and yet there are no visual glitches. Lovely design. I'm so happy they gave this to us with seemingly less than a 5% speed improvement over OpenGL. Sometimes even a speed regression as it is hard to make sure you do it better with this insane lowlevel way of describing your pipeline. :)