Aspyr seems like a great place to work. Unfortunately, because we are a port house, I have to be very careful about what I talk about – lots of NDAs and the like. So I probably won’t be talking about work much…at least until I ship something.
Work is progressing on my framework. I’m hoping to get it polished off this week so I can get back to the ‘splosions. I was tempted to try to implement a “perfect”, McShaffry-style framework that rigidly separates everything, using standard messages to communicate between subsystems. The advantage of such a system is that it makes things like multiplayer easy – a subsystem doesn’t care where its messages are coming from, so you just package them up and send them over the network.
The disadvantage is that writing such a system takes a long, long time. It probably would have taken me a month to implement such a system…and it feels like overkill for Star Revolution. I was toying with having a multiplayer component in the game, where two people can link up over a LAN and fight with their custom-created ships, but that will be the last thing that gets implemented…if it gets implemented at all.
Now, that’s not to say that the system I’m using is bad…oh, no. My framework is now much better than it was when I used it for Inaria. Putting in states cleared up a whole lot of issues about where certain code should go. I’m expanding the GUI system based on the concept of an immediate mode GUI. GUIs can now also be loaded from disk. I’m also enhancing the font system to do things like automatic word-wrapping (and one cool thing about using OpenGL for my blits is that I get colored fonts for free).
I’ll probably bite the bullet and implement a completely event-driven framework for my third project…whatever that turns out to be. And once it’s done, it’ll be done.
One thing I have got to do, though, is nail down exactly what Star Revolution’s gameplay is going to be like. Because I can’t start designing the interface for the game until I do.
I’m going to again advocate that if this is a PC skew, I’d have a mouse-driven RPG interface in the style of Neverwinter Nights. I just generally like it better than arcady stuff.
However, if you want it to potentially go out on a console (handheld or even Xbox Arcade) then you’ve got no choice but to make the whole thing work from a console controller with analog stick and everything.
Although, if it were to go on a DS, you could use the pen. Well, I don’t know how robust the DS is these days.
Definitely PC-only, but I didn’t like Neverwinter Nights’ interface. I don’t like radial menus, I think they require too much effort on the part of the user. The user has to right-click, wait for the menu to appear, and then see what options are available – and since the menu is typically constructed from the available options for the object, something like “Pick Up” may be in a different place for one object than for another. So the player has to sit there and look at the icons, possibly mousing over them to get a tooltip if he can’t remember what an icon means, and then finally make a decision. It’s annoying. It’s a classic case (in my opinion) of putting the onus on the player because it’s an easy solution to code.
So I’ll almost certainly use a more traditional interface panel with buttons…if I can figure out exactly what buttons should be where in what situation.