📄 screenres.htm
字号:
<!--Header-->
<HTML>
<HEAD>
<TITLE>GPMega - Beginners Section - Choosing A Screen Resolution</TITLE>
<META NAME="DESCRIPTION" CONTENT="An article explaining both the benefits and downfalls to the various screen resolutions and color depths of todays games. It offers suggestions on the right choice for your game by covering data collected through a custom test program, a good read...">
</HEAD>
<BODY BGCOLOR=#000000 TEXT=#FFFFFF LINK=#00FF00 VLINK=#00FF00 ALINK=#0000FF>
<!--End Header-->
<!--Advertiser-->
<CENTER>
<TABLE>
<TR>
<TD>
<A HREF="http://www.ugo.com/">
<IMG SRC="/GPMega/ugologo120.gif" BORDER=0 WIDTH=120 HEIGHT=60></A>
</TD>
<TD>
<IMG SRC="/GPMega/sponsored.gif" WIDTH=468 HEIGHT=10><br><br>
<SCRIPT LANGUAGE= "JavaScript">
<!--
var now = new Date();
var random_num = now.getSeconds();
document.write("<A HREF='http://www.ugo.net/RealMedia/ads/click_nx.cgi/www.perplexed.com/GPMega/beginners/screenres.htm/" + random_num + "/@Top'>");
document.write("<IMG SRC='http://www.ugo.net/RealMedia/ads/adstream_nx.cgi/www.perplexed.com/GPMega/beginners/screenres.htm/" + random_num + "/@Top' BORDER='0' WIDTH='468' HEIGHT='60'></A>");
//-->
</SCRIPT>
</TD>
</TR>
</TABLE>
</CENTER>
<!--End Advertiser-->
<!--Splitter-->
<BR>
<!--End Splitter-->
<!--Body-->
<FONT SIZE=2 FACE=Helvetica>
<STRONG>
<!--Top Navigation-->
<A NAME="top"></A>
<CENTER>
<TABLE WIDTH=75%>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>
<IMG SRC="gradsplit2.jpg" WIDTH=100% HEIGHT=1><BR><BR>
<A HREF="http://www.perplexed.com/GPMega/"><IMG SRC="logo.jpg" BORDER=0 ALT="Home" WIDTH=80 HEIGHT=47 ALIGN=CENTER></A>
<FONT COLOR=#666666 FACE=HELVETICA SIZE=-1><I>
This Article Is Taken From <A HREF="http://www.perplexed.com/GPMega/">The Game Programming MegaSite</A>, A Definitive Resource For Game Developers!
</I></FONT><BR>
<IMG SRC="gradsplit2.jpg" WIDTH=100% HEIGHT=1>
</TD>
</TR>
</TABLE>
</CENTER>
<BR><!--End Top Navigation-->
<!--Title-->
<H3 ALIGN=CENTER><font color="#FFF600">C</font><font color="#FFED00">h</font><font color="#FFE400">o</font><font color="#FFDB00">o</font><font color="#FFD200">s</font><font color="#FFC900">i</font><font color="#FFC000">n</font><font color="#FFB700">g</font><font color="#FFAE00"> </font><font color="#FFA500">A</font><font color="#FF9C00"> </font><font color="#FF9300">S</font><font color="#FF8A00">c</font><font color="#FF8100">r</font><font color="#FF7800">e</font><font color="#FF6F00">e</font><font color="#FF6600">n</font><font color="#FF5D00"> </font><font color="#FF5400">R</font><font color="#FF4B00">e</font><font color="#FF4200">s</font><font color="#FF3900">o</font><font color="#FF3000">l</font><font color="#FF2700">u</font><font color="#FF1E00">t</font><font color="#FF1500">i</font><font color="#FF0C00">o</font><font color="#FF0300">n</font><BR><FONT SIZE=-2>By: Dominic Filion</FONT></H3>
<!--End Title-->
<P><A href="http://members.xoom.com/armagammon/">Armagammon Game Engine</A>
<P>One of the main disagreement in many amateur game projects lies at the heart of screen resolutions and color depth. Graphic artists when more pixels, more color, while programmers want more speed, and less work.
<P>As a programmer, you are in charge of all the technical aspects of your
game - it is your job to know when to draw the line. Nothing keeps you
from having your game run at a resolution of 1024x768x32, apart from the
fact that no one will buy your game.
<H3><FONT COLOR=YELLOW><I>Screen resolution and performance</I></FONT></H3>
<P>In the great majority of games, the most intensive task performed is
pushing pixels around. If you have a screen resolution of 640x480, that
makes 307,200 pixels. In 16-bit color depth, each pixel takes 2 bytes,
making 614,400 bytes. That means your game has to "push" 615
kilobytes of data every time it is drawing the game screen. Obviously your
game screen has to be refreshed several times per second to give a good
illusion of motion - 20 frames per second is a good target. So, a
640x480x16 resolution game will have to "push" 12,288,000 bytes
of data every second, or 12 megs/second.
<P>This is quite attainable even on slower computers; but the numbers rise
very rapidly as the screen resolution increases. Put the color depth at
24-bit, and the number rises to 18 megs/second, at which point slower
computers (P100-P150) will have a hard time keeping up.
<H3><FONT COLOR=YELLOW><I>What's a good framerate ?</I></FONT></H3>
<P>Television has 30 frames per second, while movies have 24. Having
numbers in this range is ideal. 15 frames per second is a minimum : there
will be noticeable chopiness, and the game will not feel as responsive. 10
frames per second is definitely too slow.
<P>It's interesting to note that sometimes users don't mind if the game is
choppy. When Quake II came out, the great majority of people who played it
could barely get 15 frames per second, and a good portion only had 10
frames or lower. But Quake is, of course, the exception, not the rule :
people won't like your game if it's choppy.
<H3><FONT COLOR=YELLOW><I>The Numbers</I></FONT></H3>
<P>To show you what kind of performance you can expect from your computer,
I've built a small screen benchmark application, called <A
href="screenbench.zip">ScreenBench</A>.
ScreenBench blits a screen-wide image in several display modes, using
several blitting techniques, and shows the resulting framerates. I
encourage you to download and try ScreenBench on your computer - I'd be
very interested in anyone sending me what numbers they get on their
machine, so I can compile a database of sorts.
<P>My system is a Cyrix P166+, with 64 megs RAM and a 2 meg Matrox
Millenium I. The monitor's refresh rate is 85 Hertz; the bus speed is 33
Mhz. The rest of the system specs don't really matter for this test. As
you can see, my equipment is somewhat dated; however, Pentium 166's are
the highest minimum specs I've seen for a 2D game yet, and it's asking a
lot. Any game should try to include at least the P166 in the minimum
specs, otherwise you will be cutting yourself from a very important share
of the market. We'll get back to this later.
<P>So, let's look at the first results we get with ScreenBench.</P>
<TABLE border=1 borderColorDark=#808080 borderColorLight=#c0c0c0 width="95%">
<TBODY>
<TR>
<TD colSpan=4>
<P align=center><FONT size=4><STRONG>Raw DirectDraw Hardware
Blitting Performance, without flipping</STRONG></FONT></P></TD></TR>
<TR>
<TD> </TD>
<TD>
<P align=center>640x480</P></TD>
<TD>
<P align=center>800x600</P></TD>
<TD>
<P align=center>1024x768</P></TD></TR>
<TR>
<TD><STRONG>8-bit color</STRONG></TD>
<TD>
<P align=center>371.0</P></TD>
<TD>
<P align=center>208.9</P></TD>
<TD>
<P align=center>137.8</P></TD></TR>
<TR>
<TD><STRONG>16-bit color</STRONG></TD>
<TD>
<P align=center>185.1</P></TD>
<TD>
<P align=center>110.9</P></TD>
<TD>
<P align=center>*</P></TD></TR>
<TR>
<TD><STRONG>24-bit color</STRONG></TD>
<TD>
<P align=center>121.1</P></TD>
<TD>
<P align=center>*</P></TD>
<TD>
<P align=center>*</P></TD></TR>
<TR>
<TD><STRONG>32-bit color</STRONG></TD>
<TD>
<P align=center>*</P></TD>
<TD>
<P align=center>*</P></TD>
<TD>
<P align=center>*</P></TD></TR></TBODY>
</TABLE>
<P>* there was not enough video memory on a 2 meg video card to do this operation
<P>Well, these numbers look pretty amazing, to say the least. 371.0, for
640x480x8, is more than 10 times what you get on television; it's more
than the eye can perceive. The good news is, if your player has a solid
video card with plenty of video RAM, you could get away with a great
performance, in any screen resolution. The bad news is, your player may
only have 2, or 4 megs of video RAM. In fact, 2 megs video cards are
still being produced today. So, on a 2 megs or 4 megs videocard,
these numbers are just fantasy : most of your game graphics won't fit in
the video memory, and most of your blits will be software-based, not
hardware-based. This is why ScreenBench didn't do the tests in many
resolutions : there was not enough video memory to fit 2 screenfuls of
data in the video card at the same time.
<P>The time will come when there's plenty of video RAM on all video cards
for you to put most of your game's data on. But right now, the trend of
video cards with little video memory is still here (after all, the average
user has absolutely no use for video memory apart for games).
<P>Note that there hasn't been any significant breakthrough on 2D blitting
for a while now (after all, it,s just moving data around), so I think
almost everyone one should have similar numbers for the previous table,
regardless if they have the latest Vodoo cards or the original Matrox
Millenium I.
<P>That being said, let's quit Fantasy Land and get some more
down-to-earth numbers.</p>
<TABLE border=1 borderColor=#ffffff borderColorDark=#808080 borderColorLight=#c0c0c0 width="95%">
<TBODY>
<TR>
<TD colSpan=4>
<P align=center><FONT size=4><STRONG>Raw DirectDraw Software
Blitting Performance, without flipping</STRONG></FONT></P></TD></TR>
<TR>
<TD> </TD>
<TD>
<P align=center><STRONG>640x480</P></TD>
<TD>
<P align=center><STRONG>800x600</P></TD>
<TD>
<P align=center><STRONG>1024x768</P></TD></TR>
<TR>
<TD><STRONG>8-bit color</STRONG></TD>
<TD>
<P align=center>125.7</P></TD>
<TD>
<P align=center>79.5</P></TD>
<TD>
<P align=center>50.2</P></TD></TR>
<TR>
<TD><STRONG>16-bit color</STRONG></TD>
<TD>
<P align=center>62.6</P></TD>
<TD>
<P align=center>40.4</P></TD>
<TD>
<P align=center>25.2</P></TD></TR>
<TR>
<TD><STRONG>24-bit color</STRONG></TD>
<TD>
<P align=center>40.5</P></TD>
<TD>
<P align=center>26.5</P></TD>
<TD>
<P align=center>*</P></TD></TR>
<TR>
<TD><STRONG>32-bit color</STRONG></TD>
<TD>
<P align=center>30.1</P></TD>
<TD>
<P align=center>19.7</P></TD>
<TD>
<P align=center>*</P></TD></TR></TBODY>
</TABLE>
<P>* This video mode is not available on 2 meg video cards
<P>Ouch. Now that's a reality check. The software blit is almost 3 times
slower than our hardware blit!
<P>This table is here you may see the most difference between systems.
Again, the video card doesn't matter much here : it's the CPU and mostly
the bus speed that matters, so if you have some one of the newer 100mhz
bus systems, your numbers should be much, much better. AGP or PCI won't
matter much either I believe.
<P>But these are the numbers you should expect from a P166, our minimum
spec system. Those numbers aren't half bad, after all - 8-bit ad 16-bit
speeds are excellent, and 24-bit is even attainable, providing your game
doesn't have serious performance bugs.
<P>Alas, even these numbers are still not close enough to reality. All
games today implement page flipping, providing cleaner pictures and
responsive. Unfortunately, flipping is a great performance killer. See
below...</p>
<TABLE border=1 borderColor=#ffffff borderColorDark=#808080 borderColorLight=#c0c0c0 width="95%">
<TBODY>
<TR>
<TD colSpan=4>
<P align=center><FONT size=4><STRONG>Raw DirectDraw Software
Blitting Performance, with flipping (double
buffering)</STRONG></FONT></P></TD></TR>
<TR>
<TD> </TD>
<TD>
<P align=center><STRONG>640x480</P></TD>
<TD>
<P align=center><STRONG>800x600</P></TD>
<TD>
<P align=center><STRONG>1024x768</P></TD></TR>
<TR>
<TD><STRONG>8-bit color</STRONG></TD>
<TD>
<P align=center>75.0</P></TD>
<TD>
<P align=center>75.0</P></TD>
<TD>
<P align=center>37.5</P></TD></TR>
<TR>
<TD><STRONG>16-bit color</STRONG></TD>
<TD>
<P align=center>37.5</P></TD>
<TD>
<P align=center>37.5</P></TD>
<TD>
<P align=center>9.1</P></TD></TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -