Scotch Engine
A downloadable game
This is a small game engine I am working on that is written currently written in Python, taking inspiration from the DOOM Engine (idtech 1) and the Build Engine (Duke Nukem 3D). This makes use of 3D Projection AND NOT raycasting and a very simplistic portal rendering system (the portals aren't really portals, but rather just windows and only define what sector to render next. I did this to remove the depth buffer and it helped A LOT.)
Eventually, I will put this onto PyRayLib for more FPS, as it runs at 15 FPS with the current map (shocking, isn't it? It's due to visplanes.) or if that doesn't work, a C port. This will freeze whenever you use your controls for a short bit, and will freeze on first start. I don't know why it does this, but it does. 1.0 is just a demo showcasing the map, textures and single entity. Suggestions are welcome :)
So far, I've implemented the following;
- Perspective Correct Texture Mapping - this is for both visplanes and walls
- Entity "OnTouch" events - incredibly basic, touching the ammo box will only destroy it.
- Sector Lighting - this is a multiplier from 0.0 to 1.0.
- Very basic portal rendering system - windows to other sectors are just the middle splits in certain walls - portals - which define what is rendered next, currently always the sector infront of that window.
- Entities - they have a width and height and can have any sprite - you can configure them to whatever you like
- Jumping & Gravity - self explanatory.
Controls
- WASD for navigating the map in cardinal directions
- Space to jump
- X to screenshot (hopefully you can access the folder)
Credits
- mutantleg for their LAB textures
- PlusZero on Reddit for helping me with the texture mapping
- Yuriy Georgiev for their clipping function
Source: https://github.com/GooseyMcGoosington/Portal-Renderer-Test/tree/main
Published | 1 day ago |
Status | Prototype |
Author | Goosey |
Tags | 3D, Game engine, Retro |
Download
Install instructions
Download the zip titled 'Scotch Engine 1.0', and extract contents to a folder. Run the .exe.
If there are any problems, (freezing is NOT a problem, thats just how PyGame wants to roll right now), please let me know.
Leave a comment
Log in with itch.io to leave a comment.