Posts tagged Intel
Instead of developing games on the side for the past couple of years, I’ve been deep in a lead UI development position on a product called Intel Visual BIOS, which is the BIOS setup interface one would see after hitting F2 while the 7 or 8-series Intel-brand desktop motherboards are booting. Since Visual BIOS 1.0 released last year, the small development team has been hard at work on Visual BIOS 2.0, and we’ve added a wealth of new features that I like to think of as Intel’s last hurrah in the desktop motherboard area before we stop making boards (however, the Next Unit of Computing will live on).
In addition to the new features, I think we’ve accomplished some excellent things from a software usability perspective. But before I talk about that, the new features!
Screenshot capabilities were one of the most highly-requested features we had on our list, so the capability to take screenshots in Visual BIOS has been added. The interface turned out very nicely, and on selecting an area or taking a full-screen capture, you’ll see our new file explorer.
File Explorer (NTFS and Fat32)
We are still working on expanding the capabilities of what you can do in a pre-OS environment as rapidly as possible, but this is the current interface you will see when you are updating your BIOS or browsing files in general. We’ve tried to make this as smooth and easy as possible, and hope to expand its feature set over the lifetime of Visual BIOS 2.0. It includes a real-time filter for files in folders that are currently being shown.
Enhanced search and right-click Menu for options
Start typing in this globally-accessible search bar and you will see all of the options that match your query, as well as where in Visual BIOS they are located. And if you want to jump to where an option is, a button that appears next to the option you’re looking at will take you to the page of the application where it can be found. As much as we’ve attempted to make settings as easy to find as possible, there is no hiding that the BIOS is still a complex place, but hopefully this makes it much easier to get where you need to go.
More keyboard shortcuts!
This screenshot doesn’t actually show all of the new shortcuts we’ve added yet. Things like Alt-Left/Right now change pages quickly and easily. Arrow keys intuitively move around the application, as does tabbing.
One of the features I thought would be helpful to power users is the ability to create a custom list of options that are accessible from anywhere in the application. It has the same look as the search capability, but shows only the options that have been right-clicked (or CTRL-D’d) and added to favorites. Favorite options are removed the same way. If you’re trying to overclock your system, getting to a list of the settings you care about quickly is best done through this new capability, and they’ll be there whenever you return to Visual BIOS after a reboot and some testing in your OS.
Enhanced fan speed, temerature, and voltage control
In the desktop boards group we’ve always been very proud of our powerful system monitoring and controls. The settings that have always been present were somewhat hard to manage all in one place in the past, and in addition, before Visual BIOS came around they were nested deeply in a text-based setup interface. We really wanted to provide a more modern interface that would allow quick management of individual fans, temp sensors, and voltages, and I think we’ve finally accomplished it through a listing of selectable fan headers and sensors that, all in one screen, allow total control of the system. The little eye icons allow graph lines to be turned on and off so that you can isolate any data you are particularly interested in.
Enhanced Performance Interface
One of the biggest and most important changes to Visual BIOS is a somewhat experimental new interface for the performance settings on Intel boards. I will post images of this interface after our new boards are released, and let users and reviewers discuss its merits, faults, and ultimate usability, but before the new line of processors launches, all I can say is that it is tightly integrated with the new Intel Architecture and quite different from what users are used to, hopefully for the better! Overclocking is quite different conceptually on the new architecture, and the way the settings are presented will be quite different as well.
There are a few more features here and there throughout the application that should make everyone feel comfortable with the new interface, but many of them are user interface tweaks that make navigation quicker and easier, which leads into the usability we’re so proud of with Visual BIOS 2.0.
While developing the UI for VB2.0, keeping in mind navigation and ease-of-use has always been a primary focus. To that end, one will notice many different ways to get to the same place in the application. For instance, searching for an option and “jumping” to another page with an option’s arrow button will take you to wherever you’re trying to go. A similar concept was implemented for the transition between the three home pages of Visual BIOS, where general things like boot order, the Overclocking Assistants, and performance monitoring information can be found, and the Advanced section of Visual BIOS. We’ve added a dropdown that will quickly let users jump to any page within the Advanced section.
Right next to that Advanced button are four global buttons that are present throughout the entire application – screen capturing, favorite options, profile management (including loading defaults), and a sort of meta-BIOS collection of abilities under the wrench icon like File Explorer, Update BIOS, and an “About” section. This makes it incredibly easy to access profiles and favorite settings anywhere, which should in turn make it as easy to “get in and get out” of BIOS as quickly as possible. As proud of we are of the interface, most users will never want to spend more time than is necessary in Visual BIOS, and we’ve done our best to minimize the time it takes to accomplish setting changes or updates.
One final capability that we’ve added to Visual BIOS is the ability to launch EFI applications. This feature is not fully-realized yet, as in general running an application will most likely intend to use a directory and external files, and support for this is not yet fully present. However, for EFI applications like RU.EFI (http://ruexe.blogspot.com/), which take control of the screen and run in their own visual environment, the process of running an application and returning to Visual BIOS is very smooth. Of course, this is always possible from the EFI Shell as well, which can be booted to directly from Visual BIOS by double-clicking it in the boot order list after enabling the “Internal EFI Shell” option.
Intel Visual BIOS 2.0 will launch with Intel 8-Series Desktop Boards later this year.
Intel Visual BIOS 2.0 is an EFI application built into the flash chip on your motherboard, so space limitations have been a big consideration from the beginning. To that end, much of the artwork seen in the application is created dynamically each time the application is run. Things like the gradients and animations are all done at a software rendering level, but given the power of modern Intel processors (and some fancy code optimizations!) the speed at which the application runs is not an issue. Without an operating system, rather, using the UEFI environment, many of the UI controls like draggable boot devices and animated menus and transitions were built much from the ground up out of necessity. Even though this is the case, it’s easy to see how powerful the UEFI environment is when development effort is focused into that area.
The BIOS has typically been an area that is sorely lacking in usability and modern interaction, but that trend is starting to disappear as competition is fostered through increasingly enhanced UEFI applications for controlling motherboard configuration. Although UEFI is primarily written in C, Visual BIOS is essentially a pure C++11 application running in that environment, and the bulk of development occurs in Windows with Visual Studio 2012. An ambitious but completely feasible project would be to run the very same, fully-functional BIOS setup interface in both UEFI and Windows or other operating systems.
When the application is compiled and built into a BIOS, the standard UEFI build process compresses Visual BIOS to just over a megabyte, which is a size we’re very happy with considering the level of graphical fidelity we’ve reached, not to mention the fact that Visual BIOS has three different visual incarnations for Intel’s Performance, Mainstream, and Next Unit of Computing products. All this said, for the time being Visual BIOS is locked at a resolution of 1024×768, which is a substantial area for improvement down the line.
VB2.0 is largely a completely re-written application compared to VB1.0, and as such one of the biggest and hardest sacrifices was backwards-compatibility with 7-series boards. The 1.0 architecture was not fit to handle the features we have been working on for 2.0, and in addition features like our new performance interface are tightly integrated with the upcoming line of processors to ensure that changing performance settings with this new architecture is as intuitive and educational as possible. This, coupled with the closure of the Desktop Motherboard division, made it impossible to maintain that compatibility, and our deepest apologies go out to users of the original Visual BIOS, whom I know were very interested in the expanded feature set.
Where to begin?
According to WordPress, 323 days ago I posted a development video of what I was calling Ne+. That whole idea/game perished shortly after. There were many reasons why I never saw it through to completion, but at the end of the day I gave up and it was my fault.
One of the reasons was that I started working for Intel. Even now I can’t say what it is I’ve actually been doing professionally for the last year, except to say it’s certainly the best work I’ve ever produced and it’s been a very exciting and interesting ride for me. Hopefully I’ll be able to link to some images and videos soon.
A few weeks ago I was looking over the code I had written for my senior project. There was a lot of good stuff in there, although a lot of it needed to be cleaned up. Getting lighting, shaders, 3D audio, a tile engine, and other components all working was no small task. And a lot of it can be used to a greater purpose, I hope. So with that in mind, I’ve started working on a new project. Mistake number one is that it’s already far more ambitious than my first project, and we know what happened to that one. I won’t claim it’s going to be great, I won’t even give it a name, but I am going to keep putting time into it here and there.
The first big thing that I did was implement a different tile engine, so that now the senior project code I wrote is being used to create an old-school top-down tile movement system. You can draw boundary tiles in Tiled and be able to run into them with your character, and just yesterday evening I created an NPC class that you can also run into, although the way I implemented the collision checking for those was a little hackish. Movement speed is isolated in a configuration file as it should be. I also have a space skybox with a nice 3D camera to play with, currently used as the background of my main menu. I think I should be able to get a lot of mileage out of it for many different pieces of the game.
So, I really won’t say too much more now, as I just want to have something to show at this point. But there are still things in the works, and right now I am more productive than I’ve ever been.