Digital Spaces Developer Blog

 Subscribe in a reader



ESS-STS125 Beta4
Written by Peter Newman   
Wednesday, 01 October 2008

With this being flat out getting the final polishing on the ESS project, I've been working late and then going flomp, rather then blogging. Most of my time has gone into the ESS Space content, which has polished up very nicely. A custom GUI theme and a nice layout concept has really made it very nice to look at and use. The space does much more UI customisation then any Space we've created before, with very few implementation gotchya's, which is nice. Unfortunately it does have one very glaring bug, causing a crash on Intel chipsets. It's a known issue, due to the way some (common) Intel chips and drivers fake hardware capabilities they don't have, and don't fake them well.

In terms of the Digital Spaces engine, there has been mostly usability changes made. It's now possible to specify signals (for DIUserInput1::QuerySignal) that only fire on mouse movement with a mouse button held down. In ESS-STS125 we've used this to only do mouselook while the right mouse button is down, allowing for a good compromise between the freedom of mouselook, and the CEGUI UI. Also added was a rough keyboard accelerator system for the system UI. This is hard coded, but it allows F2 to bring up help, and Enter to OK the system windows (and Esc to dismiss, in the case of the Quit window).

The Settings menu has been replaced with a dialogue. It is automatically generated, as the menu was. It's still a bit ugly, due to the lack of vertically aligned text, but it works, and will look better as components export more options via DIAcceptConfiguration2.

 
Release 0.12.2
Written by Peter Newman   
Tuesday, 23 September 2008

Release 0.12.2 is now available. This release includes:

  • Fixed Billboard creation from scene files
  • Significant SGManager performance increase when dealing witha large number of self-animated objects
  • Correct handling of wide-screen screen modes
  • FMOD based sound component replacing the OpenAL based sound component
  • Improved keyboard event suport
 
Bug fixing, especially around the GUI
Written by Peter Newman   
Monday, 22 September 2008

I've spent the last few days picking up the remaining low impact items off the STS125 project, and fixing a few high impact issues, mostly relating to the behaviour of CEGUI.

In CEGUI, when you click multiple levels into a menu, then move your mouse to a new top level item, the menu you previously clicked down into is hidden, as expected. However, when you mouse back to the top level item for that menu, it is displayed again, in all it's depth. In a few places, this was causing an issue. I would build the menu contents before display, beginning with removing any existing contents. However, something somewhere was remember the existence of those items, and crashing. So I've gone through the places where I automatically generate a menu, and restructure the code to re-use existing items, rather then wiping them out and starting afresh. This seems to have fixed a few crash bugs that were occuring intermittantly, it probably better practice, and introduces a new bug: When the menu no longer should contain an item, it will still be there. In the cases where this is used, it's definately an improvement over the previous behaviour, of throwing a fatal exception.

I also spent some time today testing Ogre 1.6RC1. There seems to be an issue with some Intel chipsets and a cubic reflection map we are using in the STS125 project, and Ogre 1.6 supports excluding rendering techniques based on chipset. This would allow us to have one effect for everyone but the Intel chips, and a lower quality alternative for the lesser capable devices.

Unfortunately, Ogre 1.6 seems to use functions from a newer version of DirectX. Thanks to Microsoft's excellent design decisions, it turns out there are multiple versions of DirectX 9.0c. Each version slips in a new DLL file, with the neccessary symbols. However, without bundling a DirectX updater with our installer, we can't be sure they have the latest version of DirectX. And some people do not want to upgrade, for what ever reason. And some people cannot, due to certain irregularites with their Windows licence keys, and Windows Genuine Advantage preventing the installation of updates.

This leaves us with a bit of a conundrum. Not support Intel chipsets (easily, something could be hacked), which has in one case reportedly caused a blue screen and reboot, or bundle DirectX9.whatever (which may have licencing issues, although I think it's clear, as long as it's distributed verbatim), and forcibly install it on peoples computers. This would also, of course, increase the download size of our online distributed product. 

 
ESS-STS125 Beta-1
Written by Peter Newman   
Thursday, 18 September 2008

Over the last week I've been working madly to get the ESS-STS125 ready for the closed Beta1 testing. This moves it from the 5 or so users we had testing it (as an Alpha) to more. How many more will probably ramp up as less issues are encountered, we will see how it goes.

In terms of Digital Spaces development, I've marked (but not uploaded) a 0.12.2 release. From 0.12.1, the main points are:

  • FMOD based sound component
  • SGManager lazy updating leading to a significant performance increase.
  • Main window automatically handles aspect ratio for wide-screen and square screens
  • Addition of mouse-axis combined with mouse-button events, largely to allow click-and-drag control of the camera, while still using SimulationControl::FPS Camera
Assorted bugfixes throughout, of course, with the commit number going from 714 in 0.12.1 to 739 in 0.12.2 .
 
OpenAL vs FMOD
Written by Peter Newman   
Friday, 12 September 2008

I've spent today replacing the OpenAL sound implementation with one based on FMOD . Because our existing "3D Audio" wasn't actually 3D, this was actually pretty straight-forward.

FMOD has a few advantages. Hopefully, one will be that it works on all our testing users machines. OpenAL has been not working on different computers, producing no sound, while returning OK's throughout the sound playback process. On some computers, using the OpenAL has caused all sound to seemingly zero volume (sound from other applications is muted), while on other computers, other applications continue to produce sound consistently.

FMOD also has integrated support for a variety of sound file formats, and also natively supports sound streaming. OpenAL is still a lower layer library, which doesn't in and of itself support any file loading at all. ALUT attempts to bridge this gap, but hasn't gotten very far. OpenAL also hasn't had a lot of ongoing development, as far as I can tell, while FMOD is constantly being developed.

The only downside with FMOD, and it could be quite a downside, is it's not Open Source. It not only has closed source, it also has licensing fees when used in a commercial product. For now, our current projects are free, and our engine is also free, so we are able to use their free to use licence, but if some-one wants to use our engine, and produce a commercial offering, while they won't need to pay us any licensing fees (although I hope they would pick up a support contract), they will need to pay some to Firelight Technologies, the creators and owners of FMOD. FMOD's licensing specifically handles the situation where the software (in this case, the Digital Spaces engine) is free, but the content (the Space) is not, and requires a licence. It's not an onerous licence fee, but it is there, and will need to be considered.

To that end, I plan/hope to also keep the OpenAL sound module in development. This will provide an alternative to people, with the caveat of it (currently) not working reliably on all machines. Presumably it is possible, as popular commercial applications (games) have used OpenAL sucessfully on a wide range of machines, but I don't know what voodoo they have used to make it work. It may be something as simple of having to specify a "unmute" flag somewhere.

 
<< Start < Prev 1 2 3 Next > End >>

Results 10 - 18 of 24