HDTenEightyP/NetNews huggingface dataset:
From: vanderby@mprgate.mpr.ca (David Vanderbyl)
Subject: Re: Triple Buffering: NOT!
Keywords: buffering
Reply-To: vanderby@mprgate.mpr.ca (David Vanderbyl)
Organization: MPR Teltech Ltd.
Date: Thu, 24 Dec 92 22:38:39 GMT

giglio@betsy.gsfc.nasa.gov (Louis Giglio) writes:

>In article <1992Dec24.185505.27786@mprgate.mpr.ca>,
>vanderby@mprgate.mpr.ca (David Vanderbyl) writes:
>|> eker@loria.fr (Steven Eker) writes:
>|> >If your frame redraw code takes longer than one video frame, one way
>of speeding
>|> >things up is to use triple buffering rather than double buffering.
>|> [explanation deleted]
>|> 
>|> Triple buffering is completely useless. (Almost) Here's why.
>|> 
[explanation deleted]
>|> 
[unwarrented preaching deleted]


>If you sit down with a piece of paper and pencil I think you will see
>that you are actually wrong.  Look at it this way:  with your double
>buffering scheme the CPU sits around and does *nothing* while it waits
>for the next frame.  With triple buffering the CPU starts drawing the
>next
>frame, so it effectively has a head start.

[table-deleted]

>I know this "chart" is a confusing mess, but if you work it out
>yourself,
>you'll see the point.

>The triple buffered display gets slightly ahead of the double buffered
>display, yielding a higher frame rate.

I do see the point.  But what are you going to do with about 25 frames
when the frame rate is 30?  I don't think showing 25 frames with some
repeats will be much better animation than showing 15 frames with all
repeats.

Of course, we are assuming that the redraw rate is just longer than the
frame rate.  Of course if the redraw rate was a lot longer then triple
buffering could improve things. An example would be if we could increase
from 4 to 5 redraws per second.
From: stylian@aramis.uucp (Philip Stylianos)
Newsgroups: rec.games.programmer
Subject: Synchronization with Refresh
Date: 28 Dec 92 19:15:31 GMT
Distribution: usa
Organization: University of Chicago

Who wants to field this one:

The actual code that synchronizes page display with video refresh.


-- 
                                /
  |)| .|.   (`L  |.            /  C is good.  C works.
  | ||||||) _)|\/||([|)()(`   /
         |     / _________)  /
Newsgroups: rec.games.programmer
From: boutell@isis.cshl.org (Tom Boutell)
Subject: Re: Copyrights of old games...
Organization: Cold Spring Harbor Labs
Date: Mon, 21 Dec 1992 13:45:21 GMT

In article <1992Dec21.030635.15139@news2.cis.umn.edu> toddl@county.lmt.mn.org (Todd Lehman) writes:
>copyrights on things like the Mean Value Theorem.  And you wouldn't want
>Dr. Mandelbrot to own the copyright to the Mandelbrot set just because he
>discovered it.  So why should the "inventors" of Tetris be allowed to own
>the copyright to Tetris?  I don't see the reasoning there. 

A copyright on the Mean Value Theorem would set back all mathematical
and scientific efforts. A copyright on Tetris merely prevents you from
stealing the look of somebody's game. Unless you've got some terribly
important practical use in mind that justifies theft of the concept.
I sure can't think of one.

The Mean Value Theorem is of general use; so is the Mandelbrot set (though
if patents, not copyrights, were applied, this wouldn't be so horrendous,
as this grants the originator a few years of compensation - ie, they
get a chance to make some money off their discovery - before everybody
can rip them off).

Do you think people would invest the same amount of effort in "discovering"
(since you prefer the word) new games and going to the trouble to flesh
them out if they knew they'd just be ripped off?

You put the finger on it when you said it's the sort of game where "it's
obvious once you see it." So's incandescent light. I, for one, think
Edison was entitled to a decent share of profit before everybody duplicated
his "obvious" "discovery".

-T

-- 
Tom Boutell, boutell@cshl.org

Clausthaler is the best non - alcoholic beer in the known universe.
From: Jacob.Hartog@f99.n121.z1.fidonet.org (Jacob Hartog)
Newsgroups: rec.games.programmer
Subject: Plotting Pixels
Date: 26 Dec 92 16:41:24 GMT

To ask a probably stupid question...

        Is there any way to plot pixels to the screen in Turbo Pascal faster than just setting a address in video memory to a certain value?  Will inlining assembly speed things up much?

 * Origin: NineJackNine (1:121/99)
From: djmst19+@pitt.edu (David J Madura)
Newsgroups: rec.games.programmer
Subject: Re: Royalties/Profits
Date: 23 Dec 92 20:20:20 GMT
Organization: University of Pittsburgh

>
>It's his idea, but I expressed it.  The copyright is mine, I hold all
>rights.  If he wanted ~30% alone for the idea, what does he think
>is gonna happen during our "large game" where there concept was
>totally mine, and he had little input on development, and money
>making potential is much greater.
>

	Well I dont know the specifics of your situation but here's
my advice.  I've written a couple commercial games as have friends of mine.
Writing scripts for Lynx games brought up to $1500 that's it.  That's the
basic game design and concept.. Atari gave you an idea/title that they want done and you wrote up what type of game should be made, etc.. (Home Alone, Bill & Ted, etc..)

I have never given an artist more than 25%... unless he is outstanding and
does a disproportionate amount of work maybe up to 40%.  If the game concept is yours, the copyright is yours, most of the ideas are yours then if he insists on 50% then find someone else to do artwork.. There is no way he is going to get 50% from anybody.

I've paid artists on per picture basis and given them small points but it's
never gotten past 25%.. of course none of them have ever had any input on game design or concepts.
From: mlake@irscscm.UUCP (Marshall Lake)
Newsgroups: rec.games.programmer
Subject: Business Opportunity
Date: 28 Dec 92 13:13:46 GMT
Reply-To: mlake@irscscm.UUCP (Marshall Lake)
Distribution: usa
Organization: Internal Revenue Service, Washington, DC


We at TEAM Software are considering putting together a catalogue of
computer software for the end user.  This software could be any type
(entertainment, utility, educational, etc.) and run on any platform
(PC, Amiga, Macintosh, Atari, NeXT, UNIX, etc.).  The software would be
inexpensive to the end user (we envision $5 to $15).  It would be kept
inexpensive by not including any type of packaging and providing the
documentation as a disk file.  We would not necessarily exclude higher
priced software, however.

For this approach to work we feel we would need to offer a lot of
product in the catalogue.  We have access to extensive mailing lists for
various platforms.  The programmer would retain all rights to the
software and there would be a contract between the programmer and TEAM
Software.  We expect the programmer to make a royalty of 10% to 15% of
our gross.

Do you know anyone who might be interested in providing software for
something like this?


Marshall Lake
TEAM Software
POB 7332
Washington, DC  20044-7332
tel 703-533-2132
fax 703-538-4598
uucp ...!uunet!{media,mimsy!bogart}!irscscm!mlake
Internet mlake@irscscm.UUCP
CIS 73717,3174
GEnie MLAKE

-- 
Marshall Lake
...!uunet!{media,mimsy!bogart}!irscscm!mlake
mlake@irscscm.UUCP
From: m0013@tnc.UUCP (ARI JORDON)
Newsgroups: rec.games.programmer
Subject: Re: Goto [variable] in C++ ?
Date: 29 Dec 92 05:34:18 GMT
Reply-To: m0013@tnc.UUCP (ARI JORDON)
Distribution: rec.games.programmer
Organization: The Next Challenge, Fairfax, Va.

In article <1992Dec28.144429.1427@jupiter.sun.csd.unb.ca> kinsman@jupiter.sun.csd.unb.ca (Aphoriel/Kinsman) writes:
>This is a question from someone new to C...
>
>How could I set up C code so that a program goes to a function where the name
>of the function is placed in a string variable? The specific use I'm thinking
>of is for an adventure game, where the function the parser calls depends on
>the verb the player used in typing in his command.. I could set it up as:
>
>-If verb_parsed is 'eat' then call eat_function
>-If verb_parsed is 'give' then call give_function
>
>and so forth, but this is awful... How could I write it in C to look like:
>
>-Go to [verb_parsed + string_holding_parameter_characters]
>
>Like that.
>
>Thanks in advance,
>-Sean Givan / Aphoriel/Kinsman


hurm, well, perhaps the simplest way (assuming all your functions take
the same parameters) is something like this:

typedef int (*FuncPtr)();

FuncPtr arrayOfFunctions[] = {func1, func2, func3...};

/* code to set i to the proper index of the function you want */

FuncPtr f;
f = arrayOfFunctions[i];
f(/* params, if any */);

i've seen this used most commonly for programs that have a variable
function that is decided by the user (such as a program to graph y =
f(x) where the user choses f from a list).  you can use a structure,
one element of which is a string (the key for looking up the
function), the other of which is your function pointer.

note: you can cheat, and use functions that don't all take the same
paramaters, but be careful, and make sure you're passing the right
number to the function...

-- 
The Next Challenge - Public Access Unix in Northern Va. - Washington D.C.
703-803-0391 To log in for trial and account info.
From: stix@ccwf.cc.utexas.edu
Newsgroups: rec.games.programmer
Subject: Scaling and Perspective [TP6.0]
Summary: Joshua, where are you?
Keywords: oh, woe, is, I.
Date: 27 Dec 92 08:01:18 GMT
Organization: The University of Texas at Austin


	I've read, in the FAQ, that Joshua C. Jenson submitted
some keen source to this newsgroup back in August.  Silly me, I didn't
archive it.  Any leads as to where to find it again?  Thanks, eh?

Stix
--
stix@ccwf.cc.utexas.edu
...no other possibility...
From: rreed@terapin.com (Rick Reed)
Newsgroups: rec.games.programmer
Subject: Re: Trailblazer
Date: 23 Dec 92 02:43:22 PST
Organization: BBS

In article <19383.2b3335dd@ecs.umass.edu>, nllopis@ecs.umass.edu writes:
>In article <1992Dec15.205804.21794@hou.amoco.com>, zklf0b@gs144.hou.amoco.com
(F
>ergason) writes:
>> In article <1992Dec15.160623.22219@ugle.unit.no> gardabr@unix1 (Gard Eggesbo
A
>brahamsen) writes:
>> 
>> 
>> This is certainly not always true.  Does anyone remember a game called
>> Trailblazer?  I want to say it was published by Mindscape, but I am
>> sure i will be corrected if that wasnt the case.  I got to see it at
>> Epyx before Mindscape got it.  Needless to say, Epyx rejected it, but
>> Mindscape didn't.   Just all depends on the company, the game, the mood
>> of the guy who is reviewing submissions that day... 
>> 
>Funny... I remember Trailblazer being published by Gremlin Graphics.
>It was a long time ago and it was for the AMSTRAD CPC though... I
>guess they might also have different companies for different versions
>back then :) (good old times!! sniff...)
>
>       
>       Noel Llopis

I remember it as the orignal board game by Metagaming!  I think it was
Microgame 15 or something.  A starfaring trading game of sorts, it was.  I also
remember its subsequent conversion into a computer game, perhaps what was
mentioned above.

        -Rick

rreed@terapin.com
From: baylor@ccwf.cc.utexas.edu (Baylor)
Newsgroups: rec.games.programmer
Subject: Copying whole screens for Page Flipping
Date: 28 Dec 92 22:37:17 GMT
Organization: The University of Texas at Austin, Austin TX


	Me and my finicky Pascal compiler can't get some code
to work. I'm trying to page flip and to do it, i want to copy 
everything from page 0 to page 1. Below is a hard-coded routine
to copy all of page 0 to page 1, hoping of course page 1
starts at 0a000:8000.
	And it don't work - it sometimes does nothing (page 1
stays the same) or else only icons with bit 0 set (like blue,
gray purple colors) are copied, but when they copy they make 
solid white icons. I assume somehow only bit 0 is being copied over,
which is why page 2 only has black and white images on it.
	I don't have the hang of switching planes, and since i 
have to copy from a plane from dest to plane on source, i hope
1 plane switch does tha plane switching for both source and dest.
If any of you have any ideas about what i could look at, please 
let me know.
	Kinda makes me wish i had an amiga...




Procedure Copy_Page; assembler;
(* Updates global variable Vis_Page                 *)
(* ES:DI - Destination (to)   DS:SI - Source (from) *)
(* CX    - Plane Loop         CX    - Row Loop      *)
 const
      ScreenWidth          = 320;
      ScreenHeight         = 200;

      Sequencer_Index      = $3C4;
      Color_Plane_Index    = $02;
      CurrentPlane : byte  = 8;

      Screen_Offset        = $0A000;
      ScreenBytes          = ScreenWidth div 8; (* Bytes per scanline *)
      PlaneBytes           = ScreenBytes*ScreenHeight;
      PlaneWords           = PlaneBytes div 2;
      Page_1_Offset        = ScreenBytes*ScreenHeight;
(* var
    CurrentPlane : byte;*)
  Asm
     push ds
     push es

     cld

     mov  CurrentPlane,8
     mov  cx,4   (* Num Planes *)

     mov ax,Screen_Offset
     mov ds,ax

     mov ax,Screen_Offset
     mov es,ax

 @@Set_Address:
     mov di,Page_1_Offset
     xor si,si

     @@Plane_Loop:
         push cx           (* Save Plane Number *)

         mov dx,Sequencer_Index    (* set plane *)
         mov al,Color_Plane_Index
         out dx,al
         inc dx
         mov al,CurrentPlane
         out dx,al

         mov cx,PlaneWords  (* copy that plane *)
         rep movsw

         shr CurrentPlane,1    (* next plane *)
         pop cx                (* set cx back to planes *)

         loop @@Set_Address

     pop es
     pop ds
  End;
From: Chad.R..Collins@f7.n105.z1.fidonet.org (Chad R. Collins)
Newsgroups: rec.games.programmer
Subject: Goto [variable] in C++ ?
Date: 29 Dec 92 11:03:59 GMT


kinsman@jupiter.sun.csd.unb.ca (Aphoriel/Kinsman) writes:

>This is a question from someone new to C...

>How could I set up C code so that a program goes to a function where the
name
>of the function is placed in a string variable? The specific use I'm
thinking
>of is for an adventure game, where the function the parser calls depends on
>the verb the player used in typing in his command.. I could set it up as:

>-If verb_parsed is 'eat' then call eat_function
>-If verb_parsed is 'give' then call give_function

>and so forth, but this is awful... How could I write it in C to look like:

>-Go to [verb_parsed + string_holding_parameter_characters]

>Like that.

>Thanks in advance,
>-Sean Givan / Aphoriel/Kinsman

	Well, I don't know the specifics of what you are doing, but you might
want to look into the switch/case statements....

Chad R. Collins
collins@blkbox.com
Newsgroups: rec.games.programmer
From: collins@blkbox (Chad R. Collins)
Subject: Re: What motion blur does for you.
Organization: The Black Box, PO Box 591822 Houston, TX 77259-1822 
Date: Tue, 22 Dec 1992 20:20:57 GMT

greg@zaphod.uchicago.edu (Greg Kuperberg) writes:

>In a previous article,
>Re: Jerky Animation (Was: The Correct Way to Control Game Speed),
>I discussed motion blur and a way to achieve it with sprites in a simple
>case.  I mentioned that motion blur is the best possible approximation
>for the human eye to true visual motion.  I should qualify this a little.

>If you consistently follow a motion-blurred object with your eye as it
>moves across the screen, it will not look particularly better than
>a non-blurred moving object.  The win of motion blur is when your mind
>is following the object but your eye is fixed, which is what will
>usually happen when you view an animation.

>The reason that motion-blur is right is that your eye is a
>continuously open camera; it has no oscillating shutter as movie
>projectors or high-speed cameras do.  The persistence of an image
>in your retina is about a tenth of a second, and the only way
>your mind knows that an object in your field of vision is moving is
>that its image is blurred.  Your mind de-blurs the image.  An unblurred
>moving object in an animation makes the image processing in your head
>think that the object is changing position without moving.

	Is there no other way to accomplish this? What you described in your
previous post really isnt practical for me- there will be too many objects
moving over an irregular background. My other choices have left me in a bit
of a quandry- if I use page flipping, waiting for the vertical retrace slows
things down too much, but if I dont, the animation is of course poor.

	I was wondering... is there any way to do page flipping more
efficiently than reading registers until they read the correct value?
I have recalled seeing something about being able to hook the retrace into
an interrupt- is that possible? As is, using page flipping is a ridiculous
bottle neck- here is the profile of a quickie routine I wrote to move a
sprite around the screen

page_flipping 76% of time
getting background 5%
restoring background 3%
putting sprite to screen %1 (compiled bitmap)

and the rest went to stuff like reading the joystick, etc.

Once you add more sprites, of course the page flipping takes up less of
the time, but the affect is the same- if you move the sprites at only
one pixel a frame, they look beautiful but they are WAY too slow....if you
move them more than one you get multiple images- the most I was able to
test was a speed of 10 pixels/frame and I could make out 3 distinct images!

Right now, I am looking at a couple of choices:
a) use page flipping and have a slow and boring but nice looking game...
b) dont use page flipping and have a fun game that doesnt look so hot...

I would appreciate a c) if anyone knows of one... :)

Thanks,
Chad R. Collins
collins@blkbox.com
From: shrydar@tartarus.uwa.edu.au (Christopher Phillips)
Newsgroups: rec.games.programmer
Subject: Re: Jerky animation (Was: The Correct Way to Control Game Speed)
Date: 24 Dec 1992 07:50:33 GMT
Organization: The University of Western Australia
NNTP-Posting-Host: tartarus.uwa.edu.au

toddl@county.lmt.mn.org (Todd Lehman) writes:

>Has anyone else observed this ghosting effect?  Does anyone know what is
>the cause?  I believe it to be an optical illusion, since the ghosting is
>not there when your eyes remain fixed.  It's the same kind of effect you

Yes, I have seen this effect.  What happens, is your eyes try to follow
the object at a smooth velocity,and the object looks like it is jumping
back and forth by delta/2.

In the following sequence of frames, the 'O' represents the point your
eye is following:

+---+
|O  |
+---+
+---+
|  O|
+---+
    +---+
    |O  |
    +---+
    +---+
    |  O|
    +---+


So as your viewpoint moves right at 2 chars per frame, it looks like the
object is first centered on char to the right, then one char to the
left, one to the right, and so on.

For some reason, it does not seem as apparent with 3d scenes; perhaps
because there is less purely-linear motion.

Better frame rates are still usefull with 3d, though.  12.5fps looks
_much_ smoother than 8.33.  Six fps is still enough for a convincing
sense of motion, so it's more a cosmetic detail.

Christopher Jam                       c64 forever!!!!!
From: eker@loria.fr (Steven Eker)
Newsgroups: rec.games.programmer
Subject: Page flipping (was What motion blur does for you)
Date: 24 Dec 92 10:35:09 GMT
Organization: CRIN (CNRS) Nancy - INRIA Lorraine

In article <1992Dec22.202057.18233@blkbox>, collins@blkbox (Chad R. Collins) writes:
[stuff deleted]
|> 
|> 	Is there no other way to accomplish this? What you described in your
|> previous post really isnt practical for me- there will be too many objects
|> moving over an irregular background. My other choices have left me in a bit
|> of a quandry- if I use page flipping, waiting for the vertical retrace slows
|> things down too much, but if I dont, the animation is of course poor.
|> 

If your frame redraw code takes longer than one video frame, one way of speeding
things up is to use triple buffering rather than double buffering.

With double buffering once your redraw is complete you have to waste cpu time
waiting for the next vertical retrace so that you can flip pages.

With triple buffering once your redraw is complete, you start drawing the next
frame in the third buffer.
You have an interupt routine tied to the vertical retrace which checks
if the next frame is ready and does the page flip if so. Thus the extra buffer
allows you to have complete synchronisation of page flipping without
syncing (& therefore slowing) your redraw code.

This is easy to do on ataris/amigas but I don't know about PCs. Incidently
triple buffering also works well for sound generation if you're synthesizing/
pitch shifting your waveforms on the fly.

Steven
From: cbusch@ub.d.umn.edu (Chris)
Newsgroups: rec.games.programmer
Subject: VGA paint programs...
Date: 26 Dec 1992 18:04:55 -0600
Organization: University of Minnesota, Duluth
NNTP-Posting-Host: ub.d.umn.edu

   I hope I am not asking a redundant question....
   I need a 256 color paint program that does the following: some tool
that melts colors together so that I get a shaded effect; the
left mouse button to be the drawer, while the right mouse button picks
up colors (from anywhere!); a way to save the picture and palette as 
simple linear numbers in a binary file, a good random spray painter, a 
good magifying tool (that allows all other tools to be used in that
magnified area eg sprayer, circles, lines etc), flips, resizing (shrinks
and expands pics), rotatations, etc.
   Well, this is my wish-list, and it would be great to find an
inexpensize commercial, shareware, or freeware program to fit the bill.
Actually, I'll take a combination of programs to get the desired effects.


--
Chris Busch   CBUSCH@ub.d.umn.edu
"C++ is the language of choice."
"The use of COBOL cripples the mind; its teaching should, therefore,
    be reguarded as a criminal offense." - E. W. Dijkista 
"Don't ask 'why would you do that?' instead ask 'why wouldn't you do that?'"
Newsgroups: rec.games.programmer
From: timb@sr.hp.com (Tim Bagwell)
Subject: Re: Royalties/Profits
Date: Mon, 21 Dec 1992 23:43:39 GMT
Organization: HP Sonoma County (SRSD/MWTD/MID)
X-Newsreader: TIN [version 1.1.9 PL6]

There is an old saying that goes, "The person who knows HOW to do
something will always have a job working for the person who knows WHY".
I say you should probably give him what he wants and be glad that you
have a product at all. If it is successful then the concept is worth the
price. If not, then neither of you make much and you can go on to the
next idea armed with more experience.

The only exception to this would be if you put up $$ to begin with. Then
the percentages are well established. Someone who risks $$ always has
priority over the person who just contributes know-how.

Wrap it up and move on to the next idea. Next time you might consider 
having all interested parties put up their share of the $$ that
would be involved in building the prototype or some reasonable amount 
to be considered earnest money. This establishes a firm percentage 
take of the profits and helps to ensure that everyone has something 
vested. The alternative to this would be to sell your services for 
a fee and give-up any take in the profits except for royalties.

Just my opinion. Good Luck!
From: chrisg@cbmvax.commodore.com (Chris Green)
Newsgroups: rec.games.programmer
Subject: Re: Synchronization with Refresh
Date: 29 Dec 92 15:43:29 GMT
Reply-To: chrisg@cbmvax.commodore.com (Chris Green)
Distribution: usa
Organization: Commodore, West Chester, PA

In article <1992Dec28.220109.62313@cc.usu.edu> sl8nl@cc.usu.edu writes:
>> The actual code that synchronizes page display with video refresh.
>
>Here it is:
>

	I wouldn't recommend that code 100%, as some EGAs have the polarity 
of the vsync bit reversed. The solution is to measure the duty cycle of the
vsync bit at startup, and thus determine its polarity.
-- 
*-------------------------------------------*---------------------------*
|Chris Green - Graphics Software Engineer   - chrisg@commodore.COM      f
|                  Commodore-Amiga          - uunet!cbmvax!chrisg       n
|My opinions are my own, and do not         - icantforgettheimpression  o
|necessarily represent those of my employer.- youmadeyouleftaholeinthe  r
|"A screaming comes across the sky..."      - backofmyhead              d
*-------------------------------------------*---------------------------*