HDTenEightyP/NetNews huggingface dataset:
From: S.N.Owen@newcastle.ac.uk (Si Owen)
Newsgroups: rec.games.programmer
Subject: Re: Software Pinball Machine
Keywords: pinball
Date: 5 Nov 92 12:54:30 GMT
Organization: Computing Laboratory, U of Newcastle upon Tyne, UK NE1 7RU.


>In article <1992Nov2.204624.24267@u.washington.edu> goble@hardy.u.washington.edu (Brian Goble) writes:
>
>I have programmed many arcade style games but never anything like a
>pinball machine.  It seems very challenging and I am interested in hearing
>what others have done or how they might go about it.
>
>Email or post...thanx!
>
>-Brian

 I've not actually put this into practice, but it's something i remember
 reading in a computer mag somewhere regarding collision detection with walls.
 The ball sprite was an odd number of pixels so it had a proper centre. The
 collision detection data consisted of equations of lines linking the boundries
 of solid areas, and a collision was detected when the CENTRE of the ball lay
 ON one of the lines (or passed through into a 'solid' area). At first thought
 this sounds like the ball will be half way into the wall before the collision
 is detected. BUT the tables are set up with an outline equal to the ball
 radius added to them. ie:


       X   |                              Where:  C is call centre touching
       X   |                                        collision detection line.
       X   |
       X   |              
       X    \                                     
        X    \              
         X    \            _____  Ball
          X    \          /     \
           X    \_________(__C__)___________  Collision detection line.
            X             \     /
             X             \___/
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  Wall shown on screen.

 It seems to make it quite easy to check all around for collisions will walls.
 Most of the time is spent wading through tables of line data, making checks
 for contact with the ball.
 Curved surfaces are obviously made with short lines with a slight change in
 angle, the penalty for a higher resolution curves is just more lines to
 check!! There is probably an optimum number of lines for a realistic curve.
 If someone tries (or has tried) this method, maybe they'd like to share it
 with us.

 Hope you understood this!

 Si

 S.N.Owen@newcastle.ac.uk
Newsgroups: rec.games.programmer
From: kaufman@eecs.nwu.edu (Michael L. Kaufman)
Subject: Re: Redefining Characters in Text Mode
Organization: EECS Department, Northwestern University
Date: Wed, 11 Nov 1992 23:41:30 GMT

There is a file floating around called VGAFONT.ZIP.  It will do everything
you want and more, but only on a VGA display. Let me know if you can't find 
it and I will upload it to SIMTEL.

Michael

-- 
Michael Kaufman | I've seen things you people wouldn't believe. Attack ships on
 kaufman        | fire off the shoulder of Orion. I watched C-beams glitter in
  @eecs.nwu.edu | the dark near the Tannhauser gate. All those moments will be
                | lost in time - like tears in rain. Time to die.     Roy Batty
From: andrean@cs.utexas.edu (Andre A. Nurwono)
Newsgroups: rec.games.programmer
Subject: Re: Code for Loading.
Date: 10 Nov 1992 01:03:06 -0600
Organization: CS Dept, University of Texas at Austin
NNTP-Posting-Host: ozona.cs.utexas.edu


>no idea what the processor demographics are, and even so, unless
>they listed game usage specifically, I'll stick with what's best for XT's

They said the new Pentium (a.k.a 586) instructions would actually make
virtual 8086 code 20% slower, thus needing a recompilation.
286-486 wasn't worth it to recompile. But now we're seeing something
different though. Maybe it'll make standards for IBM programming
more portable...

>and 286s.  I will test the ADC CX,CX version though.  Optimization will
>be important later, right now I just want to see my game up and running to
>inspire me.  I'm really losing motivation like usual.

If you have the time, go for it! Me, I'd just get it working first.
But the designing phase sometimes bogs me down though.
Maybe its because I haven't taken Software Engineering yet.

>Abrash uses JNC which is where I first found it.  Sutty and Blair
>(Advanced programming guide to SVGA (They did EGA/VGA aswell) provided the
>additional REP method.  Most people think Abrash is god.  Although personally
>I tought PGP sucked, and I don't know why people beg for copies.

Seemingly time is that valuable for everybody.
-- 
Andre Nurwono               | "Ho, haha, guard, turn, dodge, parry, spin, ha,
andrean@cs.utexas.edu       |  thrust... (BOINNNG!)"  - Daffy Duck
From: ron@zooid.guild.org (Secret Mud)
Newsgroups: rec.games.programmer
Subject: Re: beginners on mac?
Date: 13 Nov 92 12:21:07 GMT

That message was a lot more than two weeks old.

Is portability a major issue in most game programming?  Besides, I can port to
to the Atari ST without major problems.

As for flexibility, there is a difference between flexible and limp.
From: mgemmel@cs.vu.nl (Martin Gemmel)
Newsgroups: rec.games.programmer
Subject: Re: Software Pinball Machine
Date: 5 Nov 92 08:05:40 GMT
Organization: Math & CS, VU Amsterdam

Writing a pinball simulator is what I've been thinking of for a long
time, too.

f110019@hamlet.ucdavis.edu (Julian Burger) writes:

} In other words, you would have a pinball-table description language which
} would be parsed and a table created from it.

The idea sounds good, but for the moment the most important question
is just how to calculate ball motions and the effects of the various
objects on the ball(s). I think a feature to read custom table
descriptions could easily double the code, as you would have to
precompute lots of data for each object (no doubt involving floating
point operations).

} For example:
} bumper (50,30) {  ; center position (virtual coordinates) in parens
} 	size 20			; relative to something
} 	force 50			; kicker force, or negative if absorbs energy
} 	points 50
} 	...
} 	etc

I'm sure you don't want to have only bumpers, but how do you specify
objects other than bumpers?

Martin
From: warwick@cs.uq.oz.au (Warwick Allison)
Newsgroups: rec.games.programmer
Subject: Re: Advice needed for fastest sort algorthm
Date: 12 Nov 92 01:36:34 GMT
Reply-To: warwick@cs.uq.oz.au

foo@netcom.com (Mark Hall) writes:
>warwick@cs.uq.oz.au writes:

>   O(n logn) is optimal for arbitrary things. In some special cases,
>you can do better. Radix sort fits one of these special cases.

>)>This integer may then be
>)>represented as the path in a binary tree, with the higher order
>)>bits represented as paths near the root and the lower order bits as
>)>paths near the leaves.
>)
>)Guess what?  The number of bits will be of the order LOG N !!!!!!

>   Number of bits will be log P where P is the largest integer. 
>That doesn't have to have much to do with the number of items.
>(hint: sort the government debt of the top 15 debtor nations, 
>values expressed in lire. What is N? What is P?)

You're fighting against yourself here.  P will be GREATER than N, but
once passed through an appropriate O(1) hashing function, the number
of bits will still be of the order LOG N.  ie. O(log2 15), ie. 4, ie.
you need a neato hashing function that maps those debts to unique,
order preserving values in the range 0..15.

See?

Point is, Radix sort ONLY WORKS when there the number of distinct (unique)
values in the unsorted data is less than O(log N).  If your data has
that characteristic, go ahead and use Radix sort.  Such data is rare,
however.  BUT, Radix sort can be very cheaply implemented on computers,
reducing the constant - that's the real reason it is faster in some
cases.

--
Warwick
--
  _-_|\      warwick@cs.uq.oz.au            /Disclaimer:
 /     * <-- Computer Science Department,  /  
 \_.-._/     University of Queensland,    /   C references are NULL && void*
      v      Brisbane, Australia.        /  
Newsgroups: rec.games.programmer
From: wool8657@mach1.wlu.ca (john woolsey 9209 U)
Subject: Windows Programming
Organization: Wilfrid Laurier University
Date: Thu, 12 Nov 1992 00:25:12 GMT

I just got a copy of Turbo Pascal for Windows second hand, because I wanted
to do some windows programming. I used to program in pascal before I moved
to C. There are a lot of things that I am not very impressed about, but the
most annoying is that there is almost no documented support of using the
actual windows routines for creating windows. They seem to want to force you
into their form of object oriented programming. This wouldn't be a problem
except they have forgotten a few variables that I desperately need for what
I am doing in windows. My problem is this. Every time I run the create
windows program it cashes with a segmentation fault. The kernel catches it,
but it doesn't help my program to work. I think that I am somehow defining
some variables wrong that are crashing the machine (brilliant eh :-)

When creating a window Class. I am having difficulty. I am unsure on what to
use for an hInstance, hIcon, and hCursor value. I have basically made up
numbers with varying results for all of them. I also do not know what to do
with the variable lpszMenuName. These variables are all from the record used
in RegisterClass call, which should be standard from all forms of windows
libraries.

When creating the window I have a record, which I am pretty sure returns
values, but I have set them with values anyways since there is no
documentation to explain it. (read sample code needed desperately).
lpCreateParams = ''. No idea what they want there. hInstance = 0. hMenu = 0.
Probably should create a menu, and patch that in here. hwndParent = 0. I
think this creates the first window, but I am not sure. deExStyle = 0. I
can't find the defines for this. I used the standard style above.

Basically I can't create a window using the standard routines, and I am
frustrated. I have found a lot of neat little toys that would come in handy,
and I am pretty sure that I understand how they work, but on most of these
variables I have little idea where to start, or which one is causing the
program to crash uncerimoniously. I can create a window with the object
oriented fation, but there are many things I can't do if I go through that
method.

Please mail me some example code if you have written any non-object oriented
code in C, or Pascal. I assume that the function calls would be similar for
any type of windows programming. thanx in advance. I will post some working
code to the net if anyone is interested, or I will mail to all interested
parties the basic code in Turbo Pascal for windows to open, and manipulate a
window.
Newsgroups: rec.games.programmer
From: krisr@cue.bc.ca (Kristof Roomp)
Subject: Re: Advice needed for fastest sort algorthm
Organization: Computer Using Educators of B.C., Canada
Date: Tue, 10 Nov 92 01:12:31 GMT

In article <1992Nov8.012628.23338@menudo.uh.edu> libh@Jane.UH.EDU writes:
>  The bubble sort takes N! (# factorial) steps, rather than N*N steps.  A BIG
>difference.  But as pointed out, the quicksort is the easiest to implement
>since it is in C libraries.  Why reinvent the wheel.  If that isn't quick
>enough then I would check out Knuth's 'Art of Programming' Vol. 3 since it is
>pretty much only about sorting.
>
nope.its worst case is n*n where n is the number of items in the list...
you have to watch the quicksort with lists of objects which are already
sorted, because its performance on a sorted list is a lot worse than
the bubble sort. on a presorted list , the quicksort will also use
in the order of n stack space. This could be prevented by taking a different
pivot element when quicksorting (like the middle one). the library quicksort
uses the first element.
From: bls@sector7g.Eng.Sun.COM (Brian Scearce)
Newsgroups: rec.games.programmer
Subject: Re: Advice needed for fastest sort algorthm
Date: 10 Nov 1992 19:53:36 GMT
Organization: Sun Microsystems
Distribution: world
Reply-To: bls@sector7g.Eng.Sun.COM
NNTP-Posting-Host: sector7g

Bubble sort is O(N^2).

The O(N!) sort is StupidSort, which consist of randomly permuting the
data and checking if they're sorted.

---
Brian Scearce                                           bls@sector7g.eng.sun.com
              The above does not necessarily represent Sun policy.
                  "You can't fit the truth on a t-shirt, man."
                                 "That'd fit."

Newsgroups: rec.games.programmer
From: cclark@trentu.ca (J. Chris Clark)
Subject: Re: The Yak is Back...
News-Software: VAX/VMS VNEWS 1.41    
Organization: Trent University Computer Services Department
Date: Thu, 5 Nov 1992 05:43:00 GMT

In article <1992Nov4.214158.17392@mnemosyne.cs.du.edu>, vputz@nyx.cs.du.edu (Victor Putz) writes...
>Secondly: I would like some information on name generation for
>role-playing games.  Anyone have references/ideas/algorithms/code?

Um..  What do you mean by this?  Do you mean generating monster/NPC/place
names?  If so, I thought the programmer just made them up!  :)

>-->Vputz


Sorry to be sarcastic, but I'm just not sure what you mean...
Chris :)

Newsgroups: rec.games.programmer
From: vputz@nyx.cs.du.edu (Victor Putz)
Subject: Yak... yak... one more Yak...
Organization: University of Denver, Dept. of Math & Comp. Sci.
Date: Fri, 13 Nov 92 15:24:13 GMT



That's right, folks.  For all five of my YakIcons fans out there (got two
since my last post), version 1.4 is almost ready to go.  None of the
graphics handling areas have been enhanced, but I have added support for a
new class, yakLib.  A yakLib (extension .Yar, for Yak ARchive) is a
collection of all the drawing files or other "loadable" data used by your
program.  Using the included yar.exe program, just put all the loadable
files into , say, "foo.yar".  Then  data can be loaded into your program
with a simple

yakLib myYakLib("foo");

char * hunkOData = myYakLib.loadToMem("spam.foo");

..and the entire contents of the file "spam.foo" will be loaded into a new
allocated chunk of memory, returning a pointer to this chunk.  Routines
have been written to retrofit the icon classes to load from a yakLib, ie

myIcon.load("boodle.yak",&myYakLib);

The .yak extension denotes my own proprietary file format (grump!  I got
tired of DM256); an included program, DRW2YAK.exe, will convert your old
.drw files just fine.  .Yaks take up a little more room on disk than
.drws, as they are not RLE encoded, but they compress better under arj,
zip etc.

Finally, I am cannibalizing the xmouse demo program to make a sprite
editor which should be able to handle any size sprite up to ... oh, big. 
Unfortunately, the window onto the sprite will be only 32x32, so if you
have lots of really big sprites, using DM256 and DRW2YAK may be the way to
go. (you'll be able to see the whole sprite in yakedit, but only work on a
magnified window of 32x32).

For those of you still following this post with no idea what I am talking
about, YakIcons iws a Borland C++ collection of routines which provide for
reasonably flexible, powerful programming of graphical icons.  It is
specialized for tile-bassed adventure games (like the Ultimas), although
future improvements will make it just as powerful for eight-way scrolling
arcade games (potential is there now, but I forgo speed for the ability to
 walk behind tiles like mountains).

A new version of Flight of the Boodles using the yaklib class (from 97
program files to about 5) will be on wuarchive sometime today, including
source for the program itself.  YakIcons 1.4 should be up around Monday if
I'm productieve enough.

-->Vputz, yer friendly Yak.

PS: I will be out of the programming scene for a few moths starting
December and will probably lost the ability to get on News.  If you want
to be on the YakWare mailing list (announcement of new products, help,
etc, etc), PLEASE leave me your addresss (real-mail) in mail.  In the
meantime, let's see some games from Y'all!

Newsgroups: rec.games.programmer,comp.sys.ibm.pc.games
From: rdippold@qualcom.qualcomm.com (Ron Dippold)
Subject: Re: Epic...
Organization: Qualcomm, Inc., San Diego, CA
Date: Thu, 12 Nov 1992 19:02:46 GMT

colin.buckley@rose.com (colin buckley) writes:
>Date Entered: 11-12-92 05:42
>SL>BTW, be watching for Epic MegaGames new releases!

>Why?  Are they distributing one of yours?  I think Epic's games are
>no competition for Id or pure Apogee games so far.  Jill wasn't all that

One reason I can think of to look forward to some Epic releases is
that they now have Renaissance doing games for them.  Those have the
potential to be incredible, especially with the new members they have.


>Tim used to brag so much about Jill before it came out in RIME's game design
>conference, I'm sure Apogee and Id, which also used to participate in that
>conference, (All three are long gone or silent upon success.) had a good laugh
>once they saw it.

Jay Wilbur from Id hangs out on Usenet and answers questions.
According to Scott Miller at Apogee, Apogee helped Epic with getting
set up business-wise, although he didn't give any specifics.  Sez the
market is big enough for many more quality shareware houses, and if
anyone suffered from say, another Apogee appearing, it'd be the
commercial companies.
-- 
Dime: dollar with all the taxes taken out.
Newsgroups: rec.games.programmer
From: colin.buckley@rose.com (colin buckley)
Subject: redefining Characters
Organization: Rose Media Inc, Toronto, Ontario.
Date: Thu, 12 Nov 1992 10:46:48 GMT
X-Gated-By: Usenet <==> RoseMail Gateway (v1.70)


Date Entered: 11-12-92 05:42
MC>I need any information on how to redefine the IBM ASCII character set
  >*WITHOUT* going into graphics mode. I know it involves interupts
  >and can be done without having to redefine the ENTIRE character set.
  >i.e. I would like to keep the alphabet and numbers but want to make
  >      all the other characters into happy faces, trees, etc.
MC>Can it be done?

Sure, EGA and VGA can both use user-defined character sets.

It's Function 11h of Interupt 10h.  "A detail list of this function (
and it's MANY subfunctions) is beyond this message."  Look for Ralf's
INTERrupt list, you'll only need INTER3xA for an Int 10h description.

  >I tried to do it on my IBM which uses MCGA graphics and I have a sneaking
  >suspicion that if it can be done it can only be done on VGA cards or higher.
  >I *HAD* an example of how to do this but it didn't work and now I've lost it.
  >If someone could post or email me the exact C code on how to do it (I'm  usin
  >Borland's Turbo C) I would be most appreciative.

VGA cards may have 2 character sets, using a bit in the attribute byte
specifying which set.

  >i.e. I could have three hundred happy faces flying around without much slowdo
  >      or problems determining wether they were hit.

Only 256 characters possible, and you said you only wanted to redefine
the high ASCII and possibly control characters so that's only 128+27.  Unless
you make it VGA only and use the second set (another 256) aswell.

PCTools for DOS looks pretty cool with it's redefined characters emulating
Windows.  I was planning on redefining a character to a C-in-a-circle for
some shareware I was once long ago doing but I lost interest...
n----------------------------------------------------.
| 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
Newsgroups: rec.games.programmer
From: soward@slow.inslab.uky.edu (John Soward)
Newsgroups: rec.games.programmer
Subject: Develop for game machines? How?
Date: 7 Nov 92 21:20:09 GMT
Reply-To: soward@slow.inslab.uky.edu (John Soward)
Organization: University Of Kentucky, Dept. of Math Sciences

Does anyone out there have any info concerning the undoutable complex and  
expensive ritual someone must go through to attempt to develop games for the  
SNES, gameboy, etc?

thanx in advance,

--
    ________________________________________________________________________
   /   'The midnight sun will burn you up" -The Cure, Piggy in the Mirror  /
  /         soward@ms.uky.edu | soward@inslab.uky.edu (NeXT Mail)         /
 /_______________________________________________________________________/
Newsgroups: rec.games.programmer
From: f85-tno@nada.kth.se (Tommy Nordgren)
Subject: Re: Advice needed for fastest sort algorthm
Organization: Royal Institute of Technology, Stockholm, Sweden
Date: Thu, 12 Nov 1992 19:51:55 GMT

In article <1dj6jmINNder@tartarus.uwa.edu.au>, oreillym@tartarus.uwa.edu.au (Michael O'Reilly) writes:
|> John A. Slagel (jas37876@uxa.cso.uiuc.edu) wrote:
|> : kds@phy.duke.edu (Stokes Kevin) writes:
|> : 
|> : 
|> : >  This new project has objects much closer to the observer, and I fear
|> : >there may be significant changes in the list order between every sort.
|> : >Which sorting algorthm is the most time efficient?
|> : 
|> :    Definately the quick sort.  Its even built into ANSI C specs, so it
|> :    should be easy to implement.  Look up quicksort in your C manual. If
|> :    I remember right, bubble sort works in O(n*n) and quicksort works in
|> :    O(n*log n).
|> 
|> Wait a bit..
|> Quicksort is nothing like the best. It has an AVERAGE running time of
|> N log N,  but the worst case is n^2. The worst case occurs when the
|> data is already sorted.... Nearly sorted data does very badly. On top
|> of this, the quicksort is difficult to implement efficently.
|> 
|> If you want a real FAST sort, implement a merge sort, or a radix sort
|> (radix is O(n), but it is only useful for small numbers). Merge has a
|> worst case of N log N, but needs more memory than a quicksort. On the
|> up side, it can be made very fast.
|>  
|> :   John A. Slagel, email: jas37876@uxa.cso.uiuc.edu
|> Michael
	Not only has quicksort bad worst-case performance, but this worst 
case WILL occur in the considered application, since the list will always be
nearly sorted after any reasonable wievpoint movement.
From: warwick@cs.uq.oz.au (Warwick Allison)
Newsgroups: rec.games.programmer
Subject: Re: Advice needed for fastest sort algorthm
Date: 12 Nov 92 06:40:25 GMT
Reply-To: warwick@cs.uq.oz.au

oreillym@tartarus.uwa.edu.au (Michael O'Reilly) writes:

>Warwick Allison (warwick@cs.uq.oz.au) wrote:
>: >This integer may then be
>: >represented as the path in a binary tree, with the higher order
>: >bits represented as paths near the root and the lower order bits as
>: >paths near the leaves.
>: Guess what?  The number of bits will be of the order LOG N !!!!!!

>No it won't. The running time of the algorithm is N * M, where N is
>the number of items of data, and M is the radix width.

>1/2 a seconds thought will reveal to you that M is a constant, and
>thus the running time is.... O(n).

BOGUS!  M is NOT a constant.  Sure, for values between 000 and 999
it is the constant 3, and for values between 000000 and 999999 it
is the constant 6 [assuming decimal radix sort, for simplicity].
and for values in the range 000000000 to 999999999 it will be 9.

ie. for a range of R values, M = log R.  Now, I suggest that for
general purposes, R will be larger than N.  For example, R will
be 2^32 (ie. integers), while N will be, say 10000000.

Basically, what it boils down to is that you MIGHT be able to
do better with a Radix sort, provided your data only has a small
range, but Radix sort is NOT in general better than Quicksort,
or Merge sort.

--
Warwick
--
  _-_|\      warwick@cs.uq.oz.au            /Disclaimer:
 /     * <-- Computer Science Department,  /  
 \_.-._/     University of Queensland,    /   C references are NULL && void*
      v      Brisbane, Australia.        /