A few videos have been posted of the test build already. Thanks for covering it, you guys. I enjoyed watching. 🙂
A few videos have been posted of the test build already. Thanks for covering it, you guys. I enjoyed watching. 🙂
One of the issues that caught me by surprise was a UI scaling problem. This turned out to be more interesting than expected, so I decided to write up a visual diary post about it.
For those who didn’t experience the problem, this is how it looked (1280×960).
What’s happening here isn’t technically a scaling problem, it’s a positioning problem. See, Daggerfall has a fixed-size UI of 320×200 pixels. My custom UI system was designed from the ground up to scale Daggerfall’s fixed UI to any resolution while maintaining correct aspect ratio. Depending on the width to height ratio of your resolution, the fixed UI may need to be pillarboxed (black bars down the sides) or letterboxed (black bars top and bottom). The goal is to fit the entire UI into the display without any clipped off edges and keeping that pixel-perfect ratio.
So what’s going in the screenshot above? The answer is that I forgot to turn on vertical alignment in the UI for the parent panel. This means the UI is stuck to the top of the screen instead of letterboxing like it’s supposed to. This is how the above display should look (1280×960).
The scaling and aspect ratio are correct in both cases, just the UI wasn’t centering vertically like it should for the letter-box effect at that resolution.
Unfortunately, it really isn’t possible to avoid pillarboxing or letterboxing with a fixed UI, unless you have a resolution that is an exact multiple of 320×200. For example, the screenshot below is a perfect x4 multiple of 320×200 and fits the frame completely at the correct aspect ratio (1280×800).
Now it occurs to me that some people simply don’t want letterboxing or pillarboxing. The best solution I can offer is a new option in the INI called “FreeScaling”. When this is enabled, the GUI will scale width and height independently. Here’s an example with FreeScaling enabled (1280×960).
The result is the UI is stretched as required to fill entire viewport. This obviously means the aspect ratio is no longer correct, but the chunky pixels still don’t look that bad with a little stretching. I’m willing to bet a lot of people actually play this way in DOSBox without noticing. It’s all down to personal preference anyway. If you want perfect aspect ratio, just leave things at default and the UI will scale and position itself properly now. If you definitely want to get rid of the black bars, then enable FreeScale and enjoy.
It’s also worth noting this does not apply to the game view rendering, which always fills the entire viewport. Only the classic 320×200 UI has this quirk.
I’m just happy my retro UI system is robust enough to handle all these different resolutions, scales, and positions while still working as it should. That’s an accomplishment by itself.
Thanks to feedback from intrepid testers, I have a solid list of priority items to fix. I will start rolling out fixes in the next 24-48 hours, and may need to spread fixes across multiple test releases.
On the whole, the first compatibility test went very well. Daggerfall Unity ran for most people on a wide variety of systems, and most of the bugs found can be easily resolved. A very positive start to things.
Here’s the list of priority fixes coming in next couple of test builds.
The first test build of Daggerfall Unity is now available for download. Grab your version below.
Invalid download ID. Invalid download ID.Note: Please see Setting Up below for more information on running build.
Note for Linux users: This build has videos and MIDI audio disabled. This will be fixed in test build 2.
I plan to drop multiple test builds leading up to first true release. Each test build will open up more features and fix more bugs. By the time the first true release is available, I’m hoping most of the big problems will be resolved.
Thank you to any testers who jump in this early and let me know of problems you encounter. While testing, please keep in mind this build is specifically to test the below key items. At this time, I don’t require any bug reports unless it pertains to the following.
This build is missing several features planned for the first true release. Following are the main limitations of this build.
To play this build of Daggerfall Unity, please follow these steps.
Note: CD-based installs of Daggerfall may not install videos locally, resulting in a crash to black screen. If this happens (and your Daggerfall path is definitely correct), check that you have 17 *.VID folders in your installs arena2 folder. If these are missing, you can copy .VID files from the CD to your local arena2 folder.
The INI file contains all game settings. Not all settings are currently live. Key settings are.
General
Weapons
Save/Load
Preferred method of feedback is the following thread on the forums.
http://forums.dfworkshop.net/viewtopic.php?f=18&t=141
When reporting bugs, please include the following in your report.
And once again, a big thankyou to all contributors, testers, and supporters of this project. You are each helping to create something wonderful.
Just a quick update today, as I’m right in the thick of it getting the test build ready.
The below GFY shows the current early state of importing classic Daggerfall save games inside Daggerfall Unity. At the moment this is just spawning a character to exact position in world, but I hope to be importing all vital character details eventually. As with everything else, classic save import will become more advanced over time. My ultimate goal is for you to be able to import your Daggerfall characters and pick up the game more-or-less where you left off.
This represents a nice milestone in development so far, one that has required several weeks of planning and engineering just to accomplish this much. Now to put some meat on those bones.
Sometime in the next 7-10 days, I will release a test build of Daggerfall Unity as part of my lead-up to first release. Everyone is welcome to try to the test build, but testers should be comfortable with editing INI files as this build will not include a launcher. I’m hoping to get valuable feedback and squash as many bugs as possible prior to first release. Test build will be available for Windows and Linux.
The first release of Daggerfall Unity will carry the moniker “Outer Loop” as this best describes the work so far. The outer loop is that essential framework of game startup, character creation, free roam, save/load, basic combat resolution, resting, and player death. With this framework out of the way, I can start work on individual systems that exist inside of the outer loop. For example, quests, inventory, and loot tables are systems that will be incrementally added over time. Systems with a high number of dependencies (e.g. quests rely on many other systems) will arrive later than more atomic systems with a lower number of dependencies.
Once the first release is available, I’m hoping to set a release schedule of every 4-6 weeks at most. I’m planning out the work in small dependency-aware chunks that should be achievable in those time-frames. This means releases will generally pendulum back and forth between small features and large features.
I have tried my best to create a versioning save/load system so that your saves from older releases can be loaded by newer releases, but it may become necessary at some point to set a minimum supported version for saves. I will mention this in the release notes if and when it happens.
As always, life has a habit of getting in the way despite best intentions. I will let you know whenever there will be delays due to personal issues or scheduled leave time.
Thank you all for your support and encouragement so far. I look forward to hearing your feedback if you decide to play with the upcoming test build.