home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.programming:3339 comp.unix.programmer:5745 comp.unix.misc:4652 rec.games.corewar:1538 rec.games.programmer:5138 comp.org.ieee:597 comp.org.usenix:1096 comp.lang.c:18729 comp.lang.c++:18264 comp.software-eng:5096
- Path: sparky!uunet!dtix!darwin.sura.net!spool.mu.edu!yale.edu!qt.cs.utexas.edu!cs.utexas.edu!ut-emx!ccwf.cc.utexas.edu!ahmedh
- From: ahmedh@ccwf.cc.utexas.edu (ahmed h al-mehdi)
- Newsgroups: comp.programming,comp.unix.programmer,comp.unix.misc,rec.games.corewar,rec.games.programmer,comp.org.ieee,comp.org.usenix,comp.lang.c,comp.lang.c++,comp.software-eng
- Subject: Description of The 1991 IEEE CS National Programming Contest
- Message-ID: <85642@ut-emx.uucp>
- Date: 21 Dec 92 05:41:45 GMT
- Sender: news@ut-emx.uucp
- Reply-To: ahmedh@ccwf.cc.utexas.edu (ahmed h al-mehdi)
- Followup-To: comp.programming
- Organization: The University of Texas at Austin, Austin TX
- Lines: 150
- Originator: ahmedh@bashful.cc.utexas.edu
-
- :---------------------------------------------------------------------:
-
- Description of the 1991 IEEE CS National Programming Contest
-
- :---------------------------------------------------------------------:
-
-
-
- Many people have asked for either a description or a copy of the
- contest driver from last year. Unfortunately, the master tape was
- corrupted and its immediate backup was stored incorrectly. For some
- time, we have been unable to locate the automatic backup, however, we
- recently found it. Included here is a description of the game "Gobble"
- which was used as the virtual world in the 1991 National Programming
- Contest. It bears few technical resemblances to the 1993 NPC, but the
- "team effort" aspect of the game is important to note and will be
- preserved.
-
- At present, we are very busy trying to finish the 1993 NPC code to meet
- our deadline of January 30th for a mock contest needed to playtest the
- world, and we do not have time to massage the 1991 NPC program and
- release it. We are sorry about the inconvenience and hope that this
- description will serve to illustrate how the contest driver worked.
-
- npc.ece's internet address has recently changed to 128.83.196.60 .
- Mails that were sent to npc on Dec. 18 may have bounced. Please mail
- them again. We apologize for any inconvenience.
-
-
- -Dave Taylor,
- 1993 NPC Chair
-
- ---
-
- "Gobble" description-
-
- The game contestants had to create players for was called "Gobble".
- It was basically a capture-the-flag game. The object was to get one
- of your players to the middle of the screen, pick up the turkey, and
- return it to your side. On each team were three players, Ma, Pa, and
- Squirt. Ma was very strong and was armed with a frying pan which could
- be swung very quickly but had a short range, and she moved slowly. Pa
- was almost as strong as Ma, but he was armed with a hoe which has a
- slightly longer reach but less power than a frying pan; he was slightly
- faster than Ma. Squirt is the weakest but fastest player, armed with a
- slingshot which takes a long time to shoot but has an infinite range.
- If a player is hit enough times (depending on his strength), he or she
- will pass out temporarily and recuperate his/her strength. There is no
- way to kill another player permanently, and the turkey could not be
- killed. Furthermore, the person carrying the turkey cannot shoot and
- moves at half speed.
-
- The world looked like this:
-
- ________________________________________________________
- | |
- | |
- | BB |
- | BBBB |
- | BB |
- | ______ _______ |
- | | | |
- |___ | | ___|
- |p | | | | p|
- |o M| O O |M o|
- |r P| O T O |P r|
- |c S| O O |S c|
- |h | | | | h|
- |___| | | |___|
- | |______ _______| |
- | |
- | BB |
- | BBBB |
- | BB |
- | |
- | |
- |________________________________________________________|
-
- Legend-
-
- M = "Ma" starting position
- P = "Pa" starting position
- S = "Squirt" starting position
- T = Turkey starting position
- O = Window- can see through but not walk through or attack through
- B = Bush- can walk through and attack through but not see through
- | or _ = Wall- can not walk through, see through, or attack through
-
- The characters (Ma, Pa, Squirt, Turkey), the bushes, and the weapons'
- areas of effect were modeled as circles. The walls of the house,
- windows, and the porch areas were modeled as rectangles. The world
- coordinates were 2D "floating point"- it was not a matrix-based game.
- A point reflected a pixel position on a Sun workstation (resolution =
- 1152x900) for convenience.
-
- Each character had a specified attack range, attack rate, attack
- strength, "hit points", and movement rate. The players wrote
- individual clients which controlled each player on their team. The
- game processes (in UNIX) were laid out as follows.
-
- _________
- /Heartbeat\
- \_________/ ------------------------.
- |
- v
- ______
- /Server\
- .------+--------+------------> \______/ <---------+------+---------.
- | | | | | |
- v v v | | v v v
- ____ ____ ________ | | ____ ____ ________
- /Ma 1\ /Pa 1\ /Squirt 1\ .----' '----. /Ma 2\ /Pa 2\ /Squirt 2\
- \____/ \____/ \________/ | | \____/ \____/ \________/
- v v
- _____ ________
- /Sound\ /Graphics\
- \_____/ \________/
-
-
- The heartbeat process provided ticks to the server and served to time
- the rate at which the game turns were processed. The sound and
- graphics servers were given the complete state of the world so that
- they could illustrate it and do the sound effects on workstations
- separate from the ones with the character processes to give them all
- the CPU. The server sent different information to each client,
- depending on what it could see in the game. It also took commands from
- the clients such as "move to X,Y", "attack at X,Y", and "pick up/drop
- turkey".
-
- Technical information-
-
- All communications was through TCP/IP sockets to insure that data was
- not lost and to enable a game to be played on four machines with the
- clients of one team on one machine, the clients of another on the
- second, the graphics and sound on a third, and the server and heartbeat
- on a fourth. Although the original intent was simply to spread the
- load around, this provided an interesting side-effect. If one of the
- processes on one team used too much CPU time, the other processes on
- the team suffered, providing a potentially useful balance in the game.
-
- All code was written in C, and the client interfaces were in C. The
- graphics used the Sun pixrect library, using the full screen as the
- playing field (256-color), and the sound used the Sun's internal 8kHz
- speaker. The socket communications were in ASCII and used the
- fprintf() and fscanf() functions to communicate. The background tiles,
- animation tiles, texture maps, and starting/ending movies were all
- drawn by hand and digitized. All artwork was scanned in on a Microtek
- flatbed scanner on a Macintosh and were retouched using Adobe
- Photoshop. The sounds were digitized from several sound effects CD's.
- The music was performed live and digitized.
-