If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Proto:Prey (2006)/1995 Prototype

From The Cutting Room Floor
Jump to navigation Jump to search

Hiddenpalace.org logo.png  This prototype is documented on Hidden Palace.

This is a sub-page of Proto:Prey (2006).

Loading into the prototype will have you appear at a black screen. The console and certain keys can be used here.

On December 25th, 2022, Hogsy of gaming preservation site TalonBrave.info would release a prototype of Prey from 1995. The build is dated November 9th, 1995. It was made during Tom Hall's lead on the project and was a pitch demo shown to GT Interactive, the publisher of Prey until 1999.[1]

This version of the game would continue to be worked on until August 1996, when much of the team, notably Hall would leave 3D Realms. Paul Schuytema would then be brought in were by November that year, everything would be scrapped in favor of a new vision and engine.

The build is more of a tech demo then a game, with the only thing to do is just wandering around. Outside of the sci-fi setting and name, nothing from this version of the game would appear in later builds or versions. To extract content from the prototype, it is recommended to use glPrey.

Hmmm...
To do:
Nearly done, just a few outlying things left:
  • Improve formatting in the "Features" section (make sure that everything isn't a bullet point).
  • Elaborate more on the map and add some model renders of the entire map.
  • Notes about the WAD that might be helpful
  • Would crash messages like SafeFree : Tried to free a freed pointer and SPAN: Depleted Span Cache be worth documenting?
Elementary, my dear Cactus.
This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically:
  • What's the specs of the build? (version of DOS, hardware requirements)
  • How capable (if at all) is the engine of real-time 3D?
  • The game generates .LBMs (likely screenshots) but I have no idea how this is done.
  • Apparently there's a lot of debug symbols left over, including a layout of the Prey engine source tree from the time of the build's creation.
  • The game seems to use some code from Doom for reading the WAD, all of the function names and variables for handling WADs are identical.

Features

General

  • Text saying " goddamnit!" (sic) can appear in game when loading into a map with the console open or when the game crashes. The message will rapidly appear and disappear, causing the screen to glitch out.

Prey06-1995Prototype-GoddamnitMessage.png

  • The game is dead silent and has no sounds.
  • The game possesses no HUD, weapons, enemies or portals.
    • Portals seemingly were never considered for this iteration of the game.
  • The game will check for a mouse open loading into the map.

Prey06-1995Prototype-MouseDetected.png

  • The build is generally quite unstable and will crash often, especially with its default settings. Disabling some variables in console, like mipmapping, can improve performance.

Platform

This build runs on DOS, whereas the final game was released for Windows, Xbox 360, Mac OS X, and Linux.

Engine

The game runs on a proprietary game engine from 3D Realms called Prey Engine, (the developers also gave the engine various inside joke names such as "Tears" which according to them is "what our competitors will be shedding when they see how cool it is")[2] primarily developed by the late William Scarboro. No commercial product ever made use of this engine.

The engine itself appears to be real-time 3D, processing basic collision and physics.

Paul Schuytema's 1996-1998 "Talon Brave" iteration of the game also used an engine called "Prey Engine" but it was separate from this one.

The final game runs on a modified version of id Tech 4.

WAD

The game uses a .WAD file to store its data, not so dissimilar to games like Doom, Quake and Rise of the Triad. The file is called MACT.WAD.

Controls

  • Movement is handled with arrow keys: up or Mouse 2 will move you forward and down or Mouse 3 will move you backward, left and right will turn the camera.
  • A will move you up, Z will move you down.
  • X will strafe left, C will strafe right.
  • W will cycle between three different rendering options: wireframe, flat shading and full rendering. By default, the build starts with wireframe rendering.
Wireframe Flat Shading Full Rendering
Prey06-1995Prototype-WireframeRendering.png Prey06-1995Prototype-FlatShadingRendering.png Prey06-1995Prototype-FullRendering.png

L will enable or disable an "auto leveling" mode, where the camera will automatically snap itself into a neutral position after you move it in a direction.
Prey06-1995Prototype-AutoLeveling.gif
G will turn on or off gravity.

F will bring up some numbers displaying a measurement of time, but the purpose of them is unclear. The numbers appear to be randomly chosen from a pre-set list. Pressing F at the boot screen will show the player having "inf" time.

Space will perform a jump, but it only moves very slightly up in the build. pressing repeatably or holding space will make you move up regardless of if gravity is turned off or on.

Console

Tab ↹ will open the console; the console in the final game is opened with Crtl+Alt+~.

Prototype Final
Prey06-1995Prototype-Console.png Prey06-Console.png
  • help - List all the available commands.
  • record - Records a demo.
  • save - Stops recording of a demo.
  • play - Plays a demo.
  • load - Load into a map.
  • print - Stats a specified variable in the console.
  • set - Enable/disable a variable.

Variables that can be used with "print" and "set" include:

  • mipmap - Enables/disables mipmapping. Enabled by default.
  • shading - Enables/disables shading. Enabled by default.
  • blockshading - Enables/disables "block shading". Enabled by default.
  • span - Enables/disables textures. Enabled by default.
  • volumerender - Enables/disables some sort of coordinate marker. Disabled by default. Disabling it again will cause a purple line to appear on the bottom of the screen.
  • cellvis - Enables/disables complete rendering of the map. Enabled by default
  • "precision", "videosize" and "videotype" can also be modified with the command but it is not known what they do precisely.
Mipmapping True (Full Rendering) Mipmapping False (Full Rendering) Mipmapping True (Wireframe) Mipmapping False (Wireframe)
Prey06-1995Prototype-FullRendering.png Prey06-1995Prototype-MipmapFalseTextures.png Prey06-1995Prototype-WireframeRendering.png Prey06-1995Prototype-MipmapFalseWireframe.png
Cellvis True Cellvis False
Prey06-1995Prototype-CellvisTrue.png Prey06-1995Prototype-CellvisFalse.png

Demos

Hmmm...
To do:
Add a video of the demos.

The prototype has a few demo files (with .DMO as an extension) named MARK, MARK2 and TEST. The demos themselves are very fast and only feature wondering around the map.

The demos named "Mark" presumably refer to Mark Dochtermann, a former developer of Prey.

Crashing

When the prototype crashes, often the screen will become filled with garbage and the DOS command line will be made available. Otherwise, it will just crash to a black DOS screen with a message stating the cause of the crash.

Map

There is only a single map present, known as DEMO4.BSP. To load into the map, open the console at the bootup menu and type "load demo4" or start the build with "prey demo4" at DOS.

It is rather easy to get stuck in the collision of the map and you will have to turn gravity off to get out.

Starting Area

Prey06-1995Prototype-FullRendering.png

The area that the player starts at when the map loads in. It features a structure in the middle of the room and two hallways that lead to other areas of the map. The hallway to the player's right leads a hallway to a room with light. To the back of the room is a ramp that leads to various rooms.

Room with Light

Prey06-1995Prototype-RoomWithLight.png

The room with light features a large talon-like structure, various stalagmites and light. The room is a dead end.

Room with Bridge

Prey06-1995Prototype-RoomWithBridge.png

A room with a bridge. The ceiling features a large cross. A window can be seen to the side of the room.

Room with Square Holes

Prey06-1995Prototype-RoomWithSquareHoles.png

A room with four square holes on the floor. The two protruding spikes on the right wall lack collision. The left wall has two pillars in each corner with lights.

The walls of the hallway after this room don't have any collision.

Large Room

Prey06-1995Prototype-LargeRoom.png

A large room at the end of the downward rooms, it features a large cross above, a large purple pillar, some lights and a sign with the letters "GTIS", referring to GT Interactive Software. The spikes protruding out the walls also lack collision.

As seen in some prerelease screenshots, this room once had some details that are absent from the build.

  • The sign said "PREY" instead of "GTIS".
  • A large gray room can be seen to the distance, with a doorway leading to it.
Hmmm...
To do:
Any possible remnants of these?
Prerelease Screenshot Prototype
Prey06-November1995-Screenshot0012.gif Prey06-1995Prototype-LargeRoomCrossPillar.png
Prerelease Screenshot Prototype
Prey06-November1995-Screenshot0016.gif Prey06-1995Prototype-LargeRoom.png
Prerelease Screenshot Prototype
Prey06-November1995-Screenshot0012.gif Prey06-1995Prototype-GTIS.png

Textures

The build has various textures found in the WAD. None of the textures present made their way into the final game. Hogsy had released some textures in 2020 prior to releasing the prototype.

Hmmm...
To do:
Note which textures are unused.

There are also a variety of textures from Rise of the Triad. These textures were likely used during the early stages of the project before more original art was made.

The colormap used by the prototype.
Prey06-1995Prototype-COLORMAP.png

Text

Unused text found in the executable.

Hmmm...
To do:
  • Hexadecimal addresses.
  • Add the rest of the debug symbols.
iew.bsp
venguv.dat
?m.bin
Atemact.wad
dlprey.exe
mar.dmo
aiERROR.TXT

Various files that don't exist in the prototype.

?cam.dmp
camera saved
ttcamera loaded at %f %f %f

Some kind of camera function?

D:\SOURCE\PREY\engine.c
D:\SOURCE\PREY\clip.c
D:\SOURCE\PREY\input.c
D:\SOURCE\PREY\loader.c
D:\SOURCE\PREY\surface.c
D:\SOURCE\PREY\texture.c
D:\SOURCE\PREY\preymain.c
D:\SOURCE\PREY\span.c
D:\SOURCE\PREY\vector3.c
D:\SOURCE\PREY\cli.c
D:\SOURCE\PREY\cli_util.c
D:\SOURCE\PREY\actor.c
raster.asm
P:\LIBMACT\clrmap.c
fopen
fclose
set386
P:\LIBMACT\util_lib.c
P:\LIBMACT\vidmsdos.c
precise.asm
P:\LIBMACT\wad.c
P:\LIBMACT\crc.c
P:\LIBMACT\task_man.c

Strings of the source tree of the engine at the time of the build's creation.

(Source: Emotion Engine 1999 (TCRF Discord))
VECTOR3_VectorAdd_
VECTOR3_VectorSub_
VECTOR3_ScaleVector_
VECTOR3_VectorLength_ v
VECTOR3_NormalizeVector_lv
VECTOR3_2x2Det_
VECTOR3_CrossProduct_
VECTOR3_TripleProduct_(w
VECTOR3_DecomposeVector_tw
VECTOR3_RotateVAV_H&
__IVECT&
__JVEC
__KVECl&
	__ZEROVECx&
_clistarted
CLI_Setup_
CLI_ReadSetup_Dy
CLI_WriteSetup_ly
CLI_printf_
CLI_Update_Xz
CLI_Startup_
CLI_Shutdown_|&
_float_precision
_videosize
_videotype
_blockshadingP@	
_preyframeT@	
_cliscripthandle
CLI_RecordCommand_x{
CLI_SaveCommand_l|
CLI_PlayCommand_
CLIUTIL_ReadVariables_
CLIUTIL_WriteVariables_H
CLI_Enable_T
CLI_Disable_
CLI_Active_h
CLI_DeleteVariable_
CLI_AddVariable_
CLI_GetVariable_H
CLI_PrintVariable_ 
CLI_SetVariable_$
CLI_PrintAll_P
CLI_CheckCommand_
CLI_SetCommand_
CLI_PrintCommand_
CLI_LoadCommand_\
CLI_PrintDirectory_
CLI_HelpCommand_
CLIUTIL_Startup_l
CLIUTIL_ShutDown_
CLI_DrawFrameCharacter_
CLI_StringWidth_
CLI_NextWordInString_H
CLI_ScrollFrame_
CLI_NextLine_
CLI_DrawString_T
CLI_DrawCursor_
CLI_DrawPrompt_
CLI_AddInputNode_@
CLI_AddInput_

Various debug symbols.

(Source: Emotion Engine 1999 (TCRF Discord))

References