gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Game Design > Status overlays and screen real-estate

#11960 - poslundc - Sat Oct 25, 2003 1:42 am

I'm trying to hammer out the details for how my status overlay will work in my game. I'm worried about the screen becoming too congested, though, and would appreciate some feedback on my idea.

Basically I need to show the character, their life points, and the max points they can have, plus a bar indicating their "force" level.

Not too much to ask, except that I want to simultaneously display this information for five (yes, five, although not always five, just five maximum) characters without overcrowding the screen.

Here's a rough idea of what I'm thinking of right now:

[Images not permitted - Click here to view it]

The transparent square is where a 16x16 "portrait" of the character would go.

The life points are four digits (ranging from 0 to 9999). My font for the numbers is four pixels wide; add one pixel for tracking and I need 20 pixels to display the numbers, or the better part of three tiles.

The "current" life points would start on the top row of the pastel block, next to the bottom right corner of the portrait. The maximum life points would then be displayed beneath that.

I'm not entirely sure what to do about the force bar (especially since I want it to have multiple "levels"), but I'm thinking of having it wrap around the outer frame.

In any case, my question is what do people think about having the status information spread out like that over the entire screen... do you think it will be too difficult or annoying for the player to keep on top of their party's status?

I've tried placing them all together, with mixed results. It's an extremely tight squeeze if I try to put them all into one row at the top, and it pretty much conceals the majority of the backdrop if I do. On the other hand, I can make them all in a vertical column on either side of the screen, but then the playing field gets extremely lopsided.

What do you guys think of it? What kind of a system would you like to see?

(While we're on the subject, I'm trying to decide how to bring up menus from within this framework, that let you choose actions for a specific character. Kind of like Secret of Mana's ring menu system, but without plagiarizing them. :) I've got some ideas, but I'm curious to hear what suggestions others may have.)

Thanks,

Dan.

#11961 - tepples - Sat Oct 25, 2003 3:18 am

poslundc wrote:
Basically I need to show the character, their life points, and the max points they can have, plus a bar indicating their "force" level.

OK, your basic HP/MP meter.

Quote:
Not too much to ask, except that I want to simultaneously display this information for five (yes, five, although not always five, just five maximum) characters without overcrowding the screen.

Ever played Gauntlet for NES? That game managed to squeeze four characters' status meters across the bottom of the screen. Without the limitation of 8x8 tiles (pseudo-APA text engines are more practical on the GBA than they were on the NES), you can squeeze more into each line.

Quote:
Here's a rough idea of what I'm thinking of right now:

[Images not permitted - Click here to view it]

And here's what it'd look like with my changes:
  • Add a 24-pixel bar indicating the proportion of HP remaining.
  • Lose the max HP. You can display this when you expand the character's stats window. For a quick glance, the bar plus the color of the HP text will indicate whether a character needs a medkit administered.
  • Draw the fractional portion of the force bar as a 24-pixel blue bar. You can indicate the integer portion with overlapping color changes, as some of the Street Fighter games do.

[Images not permitted - Click here to view it]
Does it look too crowded? Yes, some of the background is hidden, but the 8-pixel space between windows keeps it from looking too claustrophobic.

I made the mockup in GIMP. Source

Quote:
(I'm trying to decide how to bring up menus from within this framework, that let you choose actions for a specific character. Kind of like Secret of Mana's ring menu system, but without plagiarizing them. :)

Don't worry. Many players are likely to associate "ring menus" or "pie menus" with The Sims.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#11962 - poslundc - Sat Oct 25, 2003 4:34 am

tepples wrote:
Ever played Gauntlet for NES? That game managed to squeeze four characters' status meters across the bottom of the screen. Without the limitation of 8x8 tiles (pseudo-APA text engines are more practical on the GBA than they were on the NES), you can squeeze more into each line.


I guess I'm not up on the lingo... what exactly is a pseudo-APA text engine? (I tried acronymfinder.com but no probable matches there, unless the American Psychiatric Association has come up with a clever way to render text.)

Quote:
And here's what it'd look like with my changes:
  • Add a 24-pixel bar indicating the proportion of HP remaining.
  • Lose the max HP. You can display this when you expand the character's stats window. For a quick glance, the bar plus the color of the HP text will indicate whether a character needs a medkit administered.
  • Draw the fractional portion of the force bar as a 24-pixel blue bar. You can indicate the integer portion with overlapping color changes, as some of the Street Fighter games do.

...
Does it look too crowded? Yes, some of the background is hidden, but the 8-pixel space between windows keeps it from looking too claustrophobic.


Hm, some good stuff there. I notice you were using a 4-pixel tile height for the font, status bars, etc. Which is probably a good idea, although it would mean more work for me to implement... ;)

Quote:
Don't worry. Many players are likely to associate "ring menus" or "pie menus" with The Sims.


Well well well... how about that? Looks like binding precedent to me. Looks like ring menus, er, I mean pie menus, may be back into consideration after all.

Dan.

#11975 - tepples - Sat Oct 25, 2003 3:22 pm

poslundc wrote:
I guess I'm not up on the lingo... what exactly is a pseudo-APA text engine? (I tried acronymfinder.com but no probable matches there, unless the American Psychiatric Association has come up with a clever way to render text.)

APA means "all points addressable". I've used "pseudo-APA" to refer to techniques used on tile-based display systems to simulate a bitmapped display, namely the trick (used in Metroid Fusion's text, a few of fr018's effects, Qix's playfield, Videomation's playfield, MS-DOS 6.22's Defrag program's mouse pointer, and the like) of dynamically updating the data of a fixed-width tile font with new pixels.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#11983 - poslundc - Sat Oct 25, 2003 7:22 pm

Ah, gotcha. That's how my text enginge already works anyway.

I was hoping to save on some processing power by just creating tiles for all possible states of the meter and using those instead of having to redraw the actual meter to reflect changes. My VBlank is pretty busy as it is. But I guess it's go big or go home...

Funny how text backgrounds are so poorly suited for text.

Dan.

#11986 - tepples - Sat Oct 25, 2003 7:44 pm

poslundc wrote:
I was hoping to save on some processing power by just creating tiles for all possible states of the meter and using those instead of having to redraw the actual meter to reflect changes.

You could just make the numbers into sprites.

Quote:
My VBlank is pretty busy as it is.

You know, the GBA isn't the NES or the GB. On the GBA, you can copy data into VRAM at any time, not just during Vblank. Try computing the next frame's tiles and then copying them once you get a chance.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#11991 - abilyk - Sun Oct 26, 2003 4:19 am

Technical issues aside, I thought I'd offer my opinion on your status layout. The two lone windows at the bottom corners seem too disjointed from the other three. Tepples' suggestion solves that issue, but all five windows on one line is far too cramped for my liking. My suggestion? Place the windows along two adjacent sides of the screen, anchored at the top left corner:

Your design:
[Images not permitted - Click here to view it]

My suggestion, take 1:
[Images not permitted - Click here to view it]

My suggestion, take 2:
[Images not permitted - Click here to view it]

I think my "take 1" looks pretty good. "Take 2" I don't really care for, since it really weighs down that corner of the screen. It's kinda similar to the pop-out inventories of Metal Gear Solid, but what works for items isn't necessarily good for status icons. Maybe you'd like it, though, so I posted it too.

#12005 - poslundc - Sun Oct 26, 2003 4:56 pm

tepples wrote:
You know, the GBA isn't the NES or the GB. On the GBA, you can copy data into VRAM at any time, not just during Vblank. Try computing the next frame's tiles and then copying them once you get a chance.


Do you not think that this will create any tearing/artifact problems?

Dan.

#12010 - Gopher - Sun Oct 26, 2003 6:49 pm

you only get tearing if the part of the screen you're drawing to is refreshed while you're drawing. Think of the refresh as "running laps" around the screen, witht he vblank as a pit stop. If you're drawing top to bottom as well, as long as the vcount doesn't pass you, you're fine. Technically, you could start drawing to row 0 when vcount hits 1, as long as it gets to 2 before you get to row 1, you won't get any tearing. Unless you're SO slow it goes all the way around and passes you again, but then you've got serious speed issues.
_________________
"Only two things are infinite: the universe, and human stupidity. The first is debatable." -Albert Einstein