A 3D game engine for making retro FPS games.
This is a 3D game engine designed specifically to replicate the retro look of old classic shooters of the 90's, commonly called 2.5D shooters. Level geometry consists of 2D polygons projected into 3D space, and objects in the world are billboarded sprites.
This engine is not derived from id Tech 1, BUILD or Marathon's engine. It does not play any classic 90's shooter out of the box. The renderer is GPU-accelerated; there are no plans for a traditional software renderer.
This engine consists of a client, server and editor.
$ npm run build-client
$ npm run build-server
$ npm run build-editor
If you are building the client, you must also build a files manifest so the client knows what files it has access to.
$ npm run build-files
To run the client or editor, serve the /public
directory using your webserver of choice, or if you want to get up and running quickly, you can use the built-in webserver by running the webserver
task:
npm run webserver
You can run the game server like this:
$ npm run server
This project is licensed under the zlib/libpng license:
rock3d.js: A 3D game engine for making retro FPS games
Copyright © 2018 Alex Mayfield alexmax2742@gmail.com
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
- This notice may not be removed or altered from any source distribution.
The following is a list of runtime dependencies and their licenses:
npm package | License |
---|---|
content-type | MIT |
earcut | ISC |
gl-matrix | MIT |
react | MIT |
react-dom | MIT |
ws | MIT |
This repository contains graphical and sound assets courtesy of the Freedoom project, and are provided under their original 3-clause BSD license. These assets are for demonstration purposes and are not necessary for the proper functioning of the engine if you use your own assets instead.