HDTenEightyP/NetNews huggingface dataset:
From: greg@dent.uchicago.edu (Greg Kuperberg)
Subject: Re: Royalties/Profits
Organization: Dept. of Mathematics, U. of Chicago
Date: Thu, 24 Dec 1992 01:44:01 GMT

In article <1992Dec21.210345.20236@rose.com> colin.buckley@rose.com (colin buckley) writes:
>My partner/artist and I recently finished a game and got into an argrument
>over the split of the profits.

Unfortunately, I can tell you from experience that the game industry
is a turbulent business with a lot of unscrupulous turkeys in it.
Generally they are also unintelligent and if you keep your eyes open
you can avoid them.

Unless you share finances with your business partners, you should first
sign a contract and then do the work.  And you should have some sound
legal advice when you write or read this contract.  You don't
necessarily have to hire a big-time lawyer, but you should know what
you are doing somehow.

>How are royalties handled in the commerical and shareware game industry
>for outside games?  

Often, badly.

>I assume inhouse people get a salary and that's it.

I was a counterexample.  

For every conceivable profit arrangement, including a lot of fraudulent
ones, someone has probably done it that way.  There is no industry
standard for small software establishments.

>My Graphic artist wanted 50% for the basic concept and the graphic
>work.

If you are accurately characterizing your acquaintance's position, this
sounds dubious maybe to the point that you shouldn't work with this
person again.  My personal rule for both free and paid programming is
that concepts walk, programs talk.  Admittedly the graphic work counts
for something.  However...

>Sob story below related to the above, read at own risk...

The most important thing to do is to put it in the past.  Don't pick at
this wound.  If you've made a basic agreement, set its limits, put it
in writing, honor it, and keep it apart from your future business.
Newsgroups: rec.games.programmer
From: colin.buckley@rose.com (colin buckley)
Subject: HiColor Pictures
Organization: Rose Media Inc, Toronto, Ontario.
Date: Mon, 28 Dec 1992 23:55:18 GMT
X-Gated-By: Usenet <==> RoseMail Gateway (v1.70)


Date Entered: 12-28-92 18:46
SC>I am interested in HiColor pictures.. or rather True Color pictures, ie
  >at 640x480 resolution with 32K colors would make any game much more

True Colour is 16.7m, however being able to do both 16.7m and 32K, I can't
personally see a difference at 640x480 on a .28dp monitor.

I'd think higher resolution would be more important in a game then
even more colours.

SC>I would be interested in hearing anyone working with HiColor for any
  >game programming.

Abrash was fooling around with HiColour when it first appeared, grab some Dobbs
if you don't have them already.
.----------------------------------------------------.
| Colin Buckley                                      |
| Toronto, Ontario, Canada                           |
| InterNet: colin.buckley@rose.com                   |
|                                                    |
| So Eager to Play, So Relunctant to Admit it...     |
`----------------------------------------------------'
---
   RM 2.00 : RoseNet<=>Usenet Gateway : Rose Media 416-733-2285
Xref: sparky rec.games.programmer:5199 comp.os.msdos.programmer:11647
From: cbusch@ub.d.umn.edu (Chris)
Newsgroups: rec.games.programmer,comp.os.msdos.programmer
Subject: need mouse code
Date: 27 Dec 92 22:11:02 GMT
Organization: University of Minnesota, Duluth
NNTP-Posting-Host: ub.d.umn.edu


  I need some mouse code that is preferably written in C++, but I'll
take it in C or Pascal.

--
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?'"
Xref: sparky rec.games.programmer:5228 comp.sys.amiga.programmer:17981
From: cmcmanis@pepper.Eng.Sun.COM (Chuck McManis)
Newsgroups: rec.games.programmer,comp.sys.amiga.programmer
Subject: Re: Game timing
Date: 31 Dec 1992 07:34:01 GMT
Organization: Sun
NNTP-Posting-Host: pepper

In article <1992Dec17.144044.18199@westminster.ac.uk> (Liaket Ali) writes:
>A question (hypothetical) related to Game timing...
>
> For example, consider a flight simulator which, say, updates 
> 10 pixels in 1 frame in order to achieve a frame rate of 10fps.
> I would like to be able to then update 5 pixels in 1 frame to achive 20fps.
>
> Is this possible? And how would I go about programming it.

It is relatively simple mentally, somewhat less easy programatically.

First you set up four processes/tasks.
	Task #1 sets up the timer.device to send it ticks on a regular
	    basis (say every 10 ms or so)
	Task #2 moves the items in your game around based on their
	    "velocity" (which is of course speed/time)
	Task #3 renders the current screen to the "hidden" buffer
	     and then flips the viewed buffer.
	Task #4 is the "main" task and runs the game and provides
	     the user interface.

So in task 1, your doing something like :
	do {
		wait(tick);
		ticks_received++;	/* global variable */
	} while (1); /* forever */

In task 2 your doing something like :
	static	last_ticks = 0, cur_ticks = 0;

	do {
		Wait(MovePort);
		cur_ticks = ticks_received; /* that global again */
		delta = cur_ticks - last_ticks;
		move_pieces(delta); /* does the work */
		/* check to see if scores should be made */
		if (collisions) {
			PutMsg(Mainport); /* tell game what happened */
		}
		PutMsg(RenderPort); /* tell the renderer to "go" */
	} while (1);

In task 3, your renderer, you do something like :
	static	CurView, OtherView, TmpView;
	do {
		Wait(RenderPort);
		/*
		 * Draw all of the pieces into their new
		 * positions in the "hidden" bitmap.
		 */
		...
		LoadView(OtherView);
		TmpView = CurView;	/* Swap views */
		CurView = OtherView;
		OtherView = TmpView;
		PutMsg(MovePort);
	} while (1);

In task 4, your "game process" you do something like:
	do {
		Wait(GameIO | MainPort);
		/* process user input, fire buttons etc */
		if (Fire1) {
			...
		}
		if (Collision) {
			do_explosion();
			delete_items(exploded_items);
			score++;
		}
		...
	} while (1);


The effect of a design like this is that it runs correctly on *all*
machines, from slow to fast. The only difference is the frame rate
goes up if Task 3 completes sooner or if Task 2 completes sooner.
Further you can do things like run in "2x" time mode simply by
telling Task 1 to report that its seen twice as many ticks as it
really has. Finally, once you've got the basic "engine" built you
will notice that tasks 1, 2, and 3 are reusable in any game, and
you only need to redo task 1 and the artwork for different games.


--
--Chuck McManis			    Mr. NIS+			    Sunsoft
uucp: {anywhere}!sun!cmcmanis   BIX: <none>   Internet: cmcmanis@Eng.Sun.COM
These opinions are my own and no one elses, but you knew that didn't you.
Newsgroups: rec.games.programmer
From: greg@zaphod.uchicago.edu (Greg Kuperberg)
Subject: What motion blur does for you.
Organization: Dept. of Mathematics, U. of Chicago
Date: Mon, 21 Dec 1992 17:17:31 GMT

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.
From: greg@marvin.uchicago.edu (Greg Kuperberg)
Subject: Re: The Correct Way to Control Game Speed
Organization: Dept. of Mathematics, Univ. of Chicago
Date: Tue, 22 Dec 1992 23:12:52 GMT

In article <1992Dec21.103840.1737@nntp.hut.fi> jmunkki@vipunen.hut.fi (Juri Munkki) writes:
}On most modern macs, the "TickCount" clock has nothing to do with video
}update, but it still works at approximately 60 ticks per second. It does
}skip ticks when there are a lot of interrupts (like LocalTalk activity),
}so it's not advisable to use the tick clock for accurate timing.
}
}The Time Manager provides drift-free millisecond and microsecond timers
}and should be much better suited for timing tasks once you learn how to
}use it.

I think you're right about TickCount, but by my bet is to go with
the Vertical Retrace Manager rather than the Time Manager
for video animation.
Newsgroups: rec.games.programmer
From: vaitkus@lexmark.com (Keith Vaitkus)
Subject: Books Needed 
X-Disclaimer: These views are the poster's and not necessarily those of Lexmark
Organization: Lexmark International
Date: Mon, 21 Dec 1992 18:14:03 GMT

I want to learn more about graphics on the PC, down to the hardware level.
I want to be able to work with VGA and higher resolution modes, and understand
enough that I can write some drivers if I need to. 

A while back someone posted som books that were good if not 'definative'
references. Could that person repost them? 

I already know about Foley's book, but I'm looking for more specific PC
implementation stuff. Thanks!

--

---------------------------------------------------------------------------
                                              /\    Keith Vaitkus
                                             //\\   
                                            ///\\\  Lexmark International
                                            \\\///  email: vaitkus@lexmark.com
                                             \\//   voice: (606) 232-4382 
                                              \/
From: baylor@ccwf.cc.utexas.edu (Baylor)
Newsgroups: rec.games.programmer
Subject: Copy whole EGA screens
Date: 31 Dec 92 17:54:05 GMT


	Ok, my code to copy EGA screens from one page to another
finally works. Thanks to all those people who asked why some idiot
would try direct moves when he could use Latched Moves, which of 
course solved the problem.
	Included is the code to copy from page 0 to 1 for both the
people possibly interested (EGA, like the good old days)


(******************************************************************)
Procedure Copy_Page; assembler;
(* Updates global variable Vis_Page                 *)
(* ES:DI - Destination (to)   DS:SI - Source (from) *)
(* Select Plane - Sequencer, Index 2                *)
(* Select Write Mode - Graph, Index 5, bits 0 and 1 *)
 const
      SC_Index            = $3C4;
      Plane_Select        =  $02;
      All_4_Planes        =  $0F;  (* turn on all 4 planes *)
      Graph_Index         = $3CE;
      Write_Mode_Index    =  $05;
      Latch_Write_Mode    =  $01;   (* latches - 32 bit *)
  Asm
     push es  (* forget this and get runtime error -1 *)
     push ds

 @@Set_Address:
     mov ax,Screen_Offset
     mov ds,ax
     mov es,ax

     mov di,Page_1_Offset
     xor si,si

     (* Turn on all 4 planes *)
     mov dx,SC_Index
     mov al,Plane_Select
     out dx,al
     inc dx
     mov al,All_4_Planes
     out dx,al

     (* Set Write Mode 1 - latches *)
     mov dx,Graph_Index
     mov al,Write_Mode_Index
     out dx,al
     inc dx
     mov al,Latch_Write_Mode
     out dx,al

     (* Copy Data *)
     mov cx,PlaneBytes  (* Bytes per line times height *)
     rep movsb

     pop ds
     pop es
  End; (* asm *)
(******************************************************************)
From: egg@dstos3.dsto.gov.au
Newsgroups: rec.games.programmer
Subject: XLIB04b - Bug fix release
Date: 17 Dec 92 14:46:46 CST
Organization: Defence Science and Technology Organisation

Hi folks,

  A bug fix release (XLIB04b) should now be available
    * in binary form from wuarchive.wustl.edu in pub/MSDOS_UPLOADS
        (temporarily)
    * nic.funet.fi in pub/msdos/games/programming (a little later in the week)
      nic being the permanent archive site.
    * in uuencoded form from me, IFF you have no FTP access

  To those who have been waiting, my apologies for the delay.

  For those new to this group XLIB is a high quality (in my opinion ;-),
  high performance graphics library for the VGA 256 colour tweaked modes.
  Most of the major graphics primitives are supported and the source code
  is provided FREE.

  The library is written for the Borland C family of languages and TASM.

  Themie Gouthas.

  PS. I like to keep reminding everyone that the success of this library is
    due to the support of a lot of people out there, especially Matthew
    Mackenzie. Again, thanks to everyone for their support and contributions.

--- updates.doc extract -------------------------------------------------
Xlib version 4b modifications

10-12-92   BUG FIX RELEASE

           Files Modified
           --------------

           XMAIN.*
           XPBMCLIP.*
           XVBMCLIP.*
           XCLIPPBM.*

           Modifications/Additions
           ------------------------
           Some minor fixes and modifications in xmain.asm
            fixed the split screen starting scan line problem

            This fix is a cludge - Sam Thompson has suggested a more
            elegant fix but I just dont have much time these days

            changed mode setting code to allow 320x200 mode to have same
             aspect ratio as mode 13h

           The clipped functions were modified to return 1 if the image being
            clipped was completely off the logical screen.
           Minor clipping bugs which gave inconsistent results when clipping
            to the left and right screen borders were fixed in the XPBMCLIP &
            VBMCLIP modules.
           A bug in demo 2 which caused crashing on 486 machines was also
           fixed. (The speed of the 486 resulted in 0 time delay which inturn
            caused a division by zero error)

Newsgroups: rec.games.programmer
From: draper@ais.org (Patrick Draper)
Subject: Re: Empire History (was: Strategy algorithms)
Organization: UMCC
Distribution: inet
Date: Thu, 24 Dec 1992 01:08:26 GMT

In article <1992Dec23.174515.3509@nntpd.lkg.dec.com> mitton@dave.lkg.dec.com (Dave Mitton) writes:
>I added code that prevented you from doing fatal things with units
>(Armies to Sea) without an "Are you sure?" message.
>I rewrote the algorithm that figured out the next square for a unit on
>a programmed path.
>My partner was unhappy with canned set of maps and wrote his own map
>generator.  He also spent a bit of time attempting to debug the computer
>enemy algorithms.

So, do you know how the enemy algorithms work? I've always imagined that
they were some sort of weighting system, with high risk/threat grid areas
getting the lions share of troop allocation.


------------------////////////////////\\\\\\\\\\\\\\\\\\\\------------------
| Patrick Draper-ZBT       Disclaimer:  I can't control my fingers,        |
| draper@umcc.ais.org                   I can't control my toes! - Ramones |
| University of Michigan Computer Club                                     |
NO CARRIER                     We are a nation of laws, not people         |
------------------\\\\\\\\\\\\\\\\\\\\////////////////////------------------
Newsgroups: rec.games.programmer
From: kinsman@jupiter.sun.csd.unb.ca (Aphoriel/Kinsman)
Subject: Goto [variable] in C++ ?
Organization: University of New Brunswick
Distribution: rec.games.programmer
Date: Mon, 28 Dec 1992 14:44:29 GMT

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
From: K3046E0@ALIJKU11.BITNET
Newsgroups: rec.games.programmer
Subject: sprites
Date: 28 Dec 92 23:21:59 GMT
Organization: Johannes Kepler University Linz - Computing Center


 hi every1,

  i am currently busy writing a Parsec-like game.
  Has anyone heard of c++ (or c) libs that support sprites ? (which
  i can get via anonymous ftp ?)

         Thanks,  Roland
Newsgroups: rec.games.programmer
From: colin.buckley@rose.com (colin buckley)
Subject: Royalties/Profits
Organization: Rose Media Inc, Toronto, Ontario.
Date: Thu, 24 Dec 1992 00:45:47 GMT
X-Gated-By: Usenet <==> RoseMail Gateway (v1.70)


Date Entered: 12-23-92 19:43
S >He could have charged you anywhere from $10 to $15 dollars an hour based
  >on an estimation of the difficulty of the work, time requirements, etc
  >etc.  And that's DIRT CHEAP for this kind of work, especially if the artist
  >is good.  If he's not, then dump him and use someone else who can deliver
  >value to you on the next game.

He isn't a professional graphic artist, he can do the same quality though.
He has no credentials, experience, and never thought of himself as an
artist until I proposed we work together on various game ideas.  Then
I didn't even think he would be as good as he is.  He certainly had
no samples to send to potential employers.  The reason I proposed the
"partnership" was because we were friends and I knew he could write
music.  I had planned on doing the graphics myself.

He can definately draw though, but this isn't an epic Sierra adventure
with 100's of full 256 VGA backgrounds and animated characters.  He
drew one full screen, the player in his various positions, a ball,
and a close up of a head that talks.   Is that equal to 5000 lines of
source code?  Having done both programming and graphics work, I can't
say it is.  Going by classes, I'd have to say I'm a fast programmer too.

I don't lack any artistic or creative skills, I did some graphic work aswell,
I'd just rather program.  When he was a sysop, his board was plastered
with my ansi and graphic art.

I disagree that it's not time based.  If there were 2 programmers, and
him, he'd want his 50%, leaving the programmers 25% after spending much more
time on it.

I can see I won't be getting any sympathy from the replies so far, he
has no net connections so atleast I can complain without worry of losing him.
Of course, why would he go if he's getting 50%..
---
   RM 2.00 : RoseNet<=>Usenet Gateway : Rose Media 416-733-2285
From: bell@beethoven.cs.unc.edu (Andrew Bell)
Newsgroups: rec.games.programmer
Subject: Re: Goto [variable] in C++ ?
Date: 30 Dec 92 08:01:08 GMT
Organization: The University of North Carolina at Chapel Hill

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?

You can't, but why bother?

>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..

So set up a table and a function:

struct CommandEntry {
  char *command;
  int (* function)();
} commandTable[] = {
  {"eat",eatFunction},
  {"give",giveFunction}
  [...]
};

#define NUMCOMMANDS (sizeof(commandTable))/(sizeof(struct commandEntry))

void
callCommand(char *command)
{
   /* Go through the table until we find a match */
   for ( int commandnum = 0 ; commandnum < NUMCOMMANDS ; commandnum++ )
       /* If we find one... */
       if ( !strcmp(command,commandTable[commandnum].command) )
       {
           /* run the command and return. */
           commandTable[commandnum].function();
           return;
       }
    /* If we didn't find this command, say so. */
    fprintf(stderr,"Unrecognized command.\n");
}

Or something like that.
From: baylor@ccwf.cc.utexas.edu (Baylor)
Newsgroups: rec.games.programmer
Subject: Story boards
Date: 26 Dec 92 01:16:55 GMT
Organization: The University of Texas at Austin, Austin TX


	Well i'm slightly happy with my spare time - i have working
sprite editors (fixed 16x16 and 32x32) in ega and Have gotten most of
the bugs out of the world-map generator. My EGA assembler blits work
pretty cool, and while not the fastest, are still pretty fast.
	So now i come to the part that all true programmers hate - 
what do i do with it?
	While designing icons and testing blits on the map, i came
up with castles, villages, tundra, grass, water, bridges, treasure
and even a hero. But now what do they do? Is there a way you guys
have found usefull for scripting a real game out?
	It's easy to do a keen-arcade find-the-door level. A simple
sample game in this format (early ugly ultima) is easy also.
	But a REAL game, with subplots and hordes of items and hidden
cities and such - it's enough to give me a headache. How my story flows
really should decide my icons, map, treasure, etc.
	I have a concept for a plot, kinda like an idea for a book,
but i'm not sure what to do to turn that into a real-live involved
"takes-at-least-a-week" to solve-type game.
	For those who've actually finished a game, how did you control
the game plot? Story boards and extensive sketches (ala-disney)? Trial-
and-error? Are you just geniuses? Is there some better way to organize
my thoughts before the rush that my routines work leaves me?
	Thanks for any advice - i've been trying so hard to get 
the techy parts working that now i don't know what to do when they did.
						- baylor


Newsgroups: rec.games.programmer
From: empath@ais.org (Tim Triemstra)
Subject: Re: What rez are these games in
Keywords: Wolf 3D Lemmings Vistapro Fastgraph xlib xblt
Organization: UMCC
Date: Sun, 27 Dec 1992 06:50:22 GMT

If you are looking for a good graphics lib for better than 32bit
(ie: 386+) you will probably want to ditch the Borland C++.  With
either High-C++ (which includes MetaGraphics and is supposed to
be good.)  Or,. you could get Zortech C++ 3.1 and buy the FlashGraphics
from FlashTek (what I did) and get a 32bit protected mode graphics
lib with SVGA (up to 1024x768x256) support and a BGI interface (if
you want it, or use the native interface.)

Hope this helps.

Newsgroups: rec.games.programmer