Interiors-
This time around the interiors were almost completed. Now NPCs show up where they’re supposed to, you can even click on some of them – although right now you can loot them like dead bodies – except with no loot.
Obviously they’ll talk eventually, though not in the next demo. Next up the interior textures are now corrected for region like the exteriors. The taverns, mage’s guild, temples, etc. look more fitting for the Daggerfall region now. The doors that connect the exterior and interior are fully functional, before they only worked if you were on the ground level. Now you can go through upper level doors, climb the spiral staircase and get on the wall and so on. And finally the interiors use the proper dungeon like lighting (no more directional lighting) and the lights work correctly now.
Exteriors-
Exterior NPCs are now showing up in cities, although the work is still preliminary. The outdoor lighting intensity also changes with the time of day, so the lighting matches the sky better. The sky now smoothly fades between images, so you won’t see a pop when it changes. This cross fade happens over about 5 seconds, so the gradients actually change very smoothly. I also implemented an optional sky filter that smooths out the sky gradients and dithering but preserves the edges – the sky looks smooth but not blurry. This is done on load, if the option is enabled, so there is no additional runtime cost or memory consumption – so there’s no reason not to use it unless you don’t like the effect. The luminance range is computed for each image and used to automatically adjust the filter parameters to preserve edges and provide just enough smoothing regardless of how bright or dark the image is.
Windows now work correctly. No additional memory or textures is used and the palette information is lost once the textures are uploaded to the GPU, so it took a little work to get the proper color to change without any filtering artifacts and only changing the correct color and nothing else. The way the renderer works is that alpha controls opacity and emissiveness. However with outdoor textures, not including flats which have a different shader, no pixels need to be emissive except for the windows at night. So what I did is leave the color alone (a middle-dark gray) and set the alpha to fully emissive. Then in the exterior shader (for geometry) I blend in the proper window color over an alpha range that is otherwise unused, which gives a smooth bilinear look even though its blending in a different color. I also blend between different colors for the window based on time of day (represented as a single float in the shader), as well as different final emissive values. This way windows are full bright at night but are properly shaded during the day.
This leads to the last feature I want to talk about, an optional feature: bloom. Basically only those pixels that are marked as fullbright (windows when they’re fullbright at night, light source flats) glow and only if the intensity of the color is greater than a threshold – that way fire on top of a torch will glow but not the wood. The geometry is rendered only once, the intensity value is written into a second render target as the scene is being rendered. You can see the bloom in the screenshots below, they are the last set.
Interior NPCs, proper region texturing and proper interior lighting:




Exterior NPCs


Exterior Windows


Bloom






August 6, 2009 at 9:09 pm
These new screens look great! You are doing a great job that will be most appreciated man. Good luck, and hope you finish up soon
August 6, 2009 at 9:22 pm
Once again, incredible work, especially that bloom effect on the windows and light sources. It lends a more realistic look to an otherwise somewhat cartoony game, though I happen to love the native look of the game anyway.
August 6, 2009 at 9:58 pm
dude this is getting more awesome for each update!
love the bloom effects!
August 7, 2009 at 4:22 am
excellent
August 7, 2009 at 5:54 am
Bloomin’ marvelous
August 7, 2009 at 7:46 am
Amazing Job!
August 7, 2009 at 10:07 am
This is really fantastic work!
However, the more ‘modern’ effects you implement – such as bloom and, eventually, higher resolution textures…the stronger the disconnect between engine capability and art assets in terms of quality will be; what I mean is – nobody would mind the simple geometry of Daggerfall or the low-res 2D sprites in their original, pixelated DOS glory, however their age really becomes more and more jarring the more technologically advanced features are implemented.
I hope that modders or others are eventually able to replace the art assets, so that it fits together again and we get a truly modern, great-looking version of Daggerfall!
August 7, 2009 at 3:27 pm
Of course modding will be possible, browse the forums for various discussions on the topic. And remember that all these enhanced features are optional – even high resolution is optional. You can play in 320×200 if you want, or high resolution with no texture filtering, or turn off bloom and sky smoothing.
August 7, 2009 at 12:53 pm
and again pefect
August 7, 2009 at 1:23 pm
Awesome work! I love the lighting and bloom!
I really appreciate you including all of the technical details in the blog as well. I understand *most* of what you say and it’s nice to know how you’re going about achieving these results.
August 7, 2009 at 2:28 pm
For those of use drooling over this, how much work is involved in coding the actual gameplay? I’m assuming you can parse the data from the daggerfall data files, but is the logic game logic as easily accessible or will you have to rebuild everything from scratch?
August 7, 2009 at 3:31 pm
I’m building gameplay systems as I go along. The data is generally accessible (like quest data) but I generally have to build the logic and fill in gaps where data is missing. But this is why the first demo contains combat, inventory system, interaction, etc. – to show that a gameplay system is being developed as well.
August 7, 2009 at 2:32 pm
The above poster makes a good point, while I like the new features a ton, I think a classic no frills mode would be awesome too.
I think the bloom feature with the windows would look alot better if it could reach farther out into the environment. Shine on the surrounding walls and such.
Anyways, absolutely superb work man! I never thought I’d get to see a modernized Daggerfall, you’re my hero!
August 7, 2009 at 3:29 pm
As I replied to a commentor above, all these extra features are optional. You can turn off texture filtering, disable bloom, play in 320×200 emulated mode, etc. You choose what set of extended features you use.
August 7, 2009 at 9:57 pm
Those screenshots look soooooooo good.
I can only imagine what it would look like with a little re-texturing.
August 7, 2009 at 10:04 pm
Great work so far! This is a really big project, and the progress so far is just amazing. It makes me want to go work on some of my own projects and try finishing them (for once
.
Here’s a little idea: I believe the window lights in Daggerfall go out after awhile – to give the impression that the residents have gone to bed. Could that be randomized a bit? It’s been a long time since I’ve played, but I believe Daggerfall had all the window lights go out at the same time every night. It would be more convincing if some lights start going out, and others stay on a bit longer. Maybe a few stay lit all night? It’s just an idea
August 7, 2009 at 10:17 pm
They actually stay on all night in Daggerfall, they turn off around 7am actually. Nonetheless, your idea is still valid and would make a nice extended feature.
Oh and good luck on your projects!
August 8, 2009 at 3:54 am
You rule, lucius.
August 8, 2009 at 5:43 am
Okay thats a good long text to translate for me, I will start translation soon.
The pictures also are just getting better with each news from you Luciusdxl and those one with the bloom effect are just so nice that my words could not describe how good they are looking.
August 8, 2009 at 6:22 am
All I can say is:
Again – excellent work!
It’s amazing to see this coming along so quickly!
August 8, 2009 at 7:30 am
Can’t wait for the Linux version.
August 9, 2009 at 2:21 am
You’ll have to wait a bit longer than windows’ users
August 9, 2009 at 10:14 am
Possibly not. Fullscreen 3D applications are some of the best supported applications under Wine. Could always try the demo out and see if it worked.