Announcing PhoenixUI (downloadable prototype)
Hi, for those of you who don’t frequent the forum, you probably don’t know me. I am Jeff, David’s twin brother and I have recently started working on Lugaru 2. I’ll be updating my progress here and on the forums as is custom. On to the meat of my first blog post:
As you might have noticed from playing other 3d games, their in-game user interfaces are often quite lacking. In fact, many of them were not even designed to be used on a PC and their interface is just slapped on to allow the game to be started. Mouse wheels don’t work, you can’t select or copy text, you can’t tab between editfields, basically, nothing quite behaves the way you’re accustomed to. Well, that is understandable, since no one is crazy enough to invest the time in emulating a complete, modern windowing system, right? Not anymore because that is exactly what is going to be in Lugaru 2!
The goal behind “PhoenixUI” is to have interface elements that behave exactly like your operating system. That is, you’ll be able to press tab to switch between controls, double click a word to select it, have multiple redo/undo states in text fields, and so on. This way when you are creating a map in the map editor, typing in the chatroom before a multiplayer game begins, or using the extensive wolfireNET feature to download maps and mods or check rankings and such (more on this in another post someday), you won’t have to fight the interface to get it to do what you want it to.
So please try out this prototype of PhoenixUI and let me know if you find anything that doesn’t behave properly according to Mac OS X’s interface. A few things to note: if this runs slow on your computer, don’t worry. When it is implemented inside of Lugaru 2, it will barely use any CPU time - this is just a prototype. Also, the OS X theme is temporary and will be changed to an original theme to avoid the wrath of Apple legal.
Download:
PhoenixUI prototype (Win)
PhoenixUI prototype (Mac)
Outdated Screenshot:

Nice, but understandably slow on my ole 800MHz monster. Everything fine except double-clicking on a word doesn’t select it as it would in cocoa/windows.
Wow, sweet! I’ve always been annoyed by games that have clunky interfaces like you described, where you have to use the mouse for everything, and can’t select text in the middle, etc. This is really awesome!
Oh, and congrats on your first blog post Jeff!
@mickeymoose: Hmm… Double clicking on a word should select it. I spent a lot of time on that feature.
Double-clicking for text selection works here (G4 PBook 867, 10.4.6). However, it also selects the single words when discreet text is selected. Is it supposed to do that? No complaints otherwise, seems to work fine, albeit a little slow on my setup (no wonder…).
Fixed :) I will upload the new version later.
Waitaminnit… I haven’t been viewing the forums, so I guess I missed something, but… multiplayer? Chat rooms? Rankings? Mods? Built-in map editor (if it uses Phoenix, I assume it’s built-in)???? Excuse the language, but I think I just shat myself.
If Lugaru 2 has improved stealth abilities (I’m going to be harsh and say that the original Lugaru’s stealth was very shallow and two-dimensional), AI, and a more complex fighting system (more combos, faster reaction time, etc.), which seem like givens, as well as a robust multiplayer mode (for such a versatile stealth/action game as Lugaru, you could come up with many modes apart from deathmatch and capture the flag… how about Rogue versus Guards? One Rogue has to stealthily complete an objective while the Guards, who must work together to outnumber the Rogue, must kill him before he completes his task).
Also, any chance of built-in voice communications? If you have complex team-based modes like I mentioned or even just capture the flag or some kind of Battlefield-esque node capturing game, you’ll need chat. However, if it’s (slightly less overwhelming) just one-on-one fights, it becomes less of a requirement (and the game becomes less of a draw…).
Lugaru has a crapload of potential that can easily be realized with more complex maps (I’m sure a mapmaker will give us them, but the maps in Lugaru 1 were very flat and always just variations of “flat thing with trees and blocks”), improved gameplay mechanics, and a kickass online service. If you can really pull this off (and, seeing the talent behind Wolfire, I don’t doubt that you can), this will be one shareware I will gladly lay down the dollars for.
Phoenix is very good, although it lags a tiny bit on my 1.25 ghz eMac. I’m pretty sure this is not a machine that will be able to run Lugaru 2, though, and even if it was, the performance of Phoenix is more than passable for a menu system, and the design is far greater than most. A keyboard shortcut to switch windows would be a nice addition, though.
It works on my MacBook Pro.
Any chance that you would consider releasing this, or licensing this so that other mac games could use your system? Many of the open source gui engines (like CEGUI) are fairly lacking, and I’d rather work on my game than it’s GUI…
Quite impressive, Jeff. Still slow on my MacBook Pro, but great implementation and usability. A little eerie, but cool.
I can’t wait to see how it works in-game with a custom theme.
Licensing this API is a possibility. I feel your pain about the lack of quality GUI toolkits, which is why I’m creating this in the first place. It’s too early for details, but I’m making this API with programmers in mind and am also working on a layout tool similar to Apple’s Interface Builder.
The UI always behaves as though full keyboard navigation is on; as it’s off by default, this will be confusing to most OS X users. Having the Cancel button selected by default seems a bit odd, too.
If I select in the text field by dragging from right to left, the right side of the selection jumps about (rounding issues).
Performance is definitely an issue. It feels like it’s running in a tight loop, rather than an event and timer system. I assume you knew that, though.
The alpha channel for the window corners is wrong.
I will fix the window corners, thanks.
Regarding the other stuff; I’m pretty sure the cancel selected by default is the way Apple does it (will have to double check) but these mockups are totally random. In the real UI, I will actually make sure the layouts follow the HIG.
Apple’s usual tab behavior is a subset of the full keyboard navigation, which I must implement for Windows users, so that is why it is on right now. It can be turned off very easily in code. I am sure there is a simple API call I can make to check the users preferences, but I don’t want to clutter the code with platform specific code (yet).
Don’t worry about performance. It actually is event driven from the ground up and is very well encapsulated. The problem is that it does not have any double buffering or anything yet. I guarantee you that by the time it is in Lugaru, with the optimizations I have planned, it will use like 2% CPU. The text rounding issue is a bug in the API it uses on OS X. It works properly on Windows and Linux and this won’t be present in Lugaru.
Hi Jeff,
one thing is strange: In the window “This title is particulary long” it is possible to move the “some text” think by clicking and dragging it up and down.
Oops, that was a debug feature I accidentally left in
Good catch.
Hi Jeff,
one more thing:
In the “Second Window” the line on bottom of the checkbox disappears when clicking into the “disabled edifi….” but reappears when leaving it.
Strange…
Hey Jeff,
When I try to close the windows using “command-w” (Mac), it doesn’t work. However, “ctrl-w” works, which is the standard for Windows (I think).
Also, upon opening PhoenixUI, it takes over my CPU, ramping up my processor load to 100% (PowerBook G4, 1GHz, 1GB Ram).
I presume that “Second Window” is supposed to be entirely disabled? If so, great, because it is.
Otherwise, really sweet!
Thanks for the feedback.
The command/control stuff is just specific to the prototype, not to the final implementation. The 100% CPU thing is intentional for now.
well its pretty cool but whats the point?
ummmm… i don’t get it