NOTE: Low color & FPS recording (game runs Real Smoof™!)
https://github.com/WelfzTwingoFurs/WegTek3D
###################################################################################
########### Godot raycaster-like engine!! . . . . WEGTEK-3D, Version 14 ###########
###################### written by Welfz Twingo Furs, aka Weg ######################
###################################################################################
[created using Godot Engine v3.3.2-stable Win64, at https://www.godotengine.org/]
FEATURES:
-Moving up & down, looking up & down;
-Polygon world with height;
-Field of view (FOV), draw distance options;
-Clipping (vertices behind camera don't distort);
-Z_Index sorting (Polygons in front of polygons behind);
-One-sided polygon option;
-Depth-shading, adjustable;
-Polygons are colorable, 'darkable', texturable as unmoving-plaid or UV;
-Mono sound system;
-WIP Whole-polygon culling (if entirely outside screen, don't render) option;
-Sprite objects with height, & any amount of rotation frames;
-Sprite ground-shadows/reflections;
-Basic 'dynamic' darkness system for sprites, darken as floor is;
-Flat floor, triangular diagonal floor, & flat wall collision;
-Mouse & keyboard control;
-Viewbobbing, viewrolling options;
-Screen resizable to any size without stretching;
-Scrolling sky sprite & stretch options, floor sprite;
-Animated weapon & feet sprites;
-All changeable textures support any resolution;
-Map using draw_line, 2D & 3D options, zoom option;
-Convenient map-making options;
-Basic weapon inventory;
-Driveable cars, dynamic suspension, manual gears, customizeable base;
-Third and first person camera, with dashboard, steering wheel, Km/h and RPM gauges;
-Basic pedestrians that wander, get hurt, fight back or run away, and die.
IMPERFECTIONS:
-No diagonal wall collision;
-No shared vertices;
-Heavy texture distortion up-close;
-Clipping intervenes with UV-texturing;
-No camera-edge clipping (polys pieces outside screen still render);
-No screen clipping (polygons pieces behind others still render);
-Cull on + "Both bad neighbours" deletes polygon if the OK Vertex's index is over 0
(comparing to resized instead of original?);
-Draw distance innacurate to value depending on Angles FOV;
-Floor-sprite position slightly innacurate to aspect ratio;
-Mouselook different sensitivity for X and Y;
-No in-game options (all settings in editor);
-The car is infinitely tall for walls and other cars;
-Cars' polygons distort when clipping;
-NPCs can't dodge things, only follow targets.
###################################################################################
CONTROL KEYS:
-WASD / Arrows: Move, rotate;
- Shift (hold): Strafe;
-PGup & PGdown: Look up & down;
- Space & Ctrl: Fly up & down;
- L: Mouse toggle;
- [/], O/P: Weapon select;
- Mouse1/2: Shoot weapon;
- F: Enter/exit car;
- C: Change camera:
- Q/E: Look, in car;
- M: Radio, in car;
-Shift (+Move): Change gear;
- Alt (hold): View map;
- Alt & +/-: Zoom map;
- X: Noclip toggle.
DEBUG KEYS:
- Quote ('): Console toggle;
- Scroll-lock (+Move): Angle;
- Home: Look center;
- End: Fly center;
- F1: /2 screen-size;
- F2: *2 screen-size;
- F3: Reset/Fill screen;
- F4: Pixelize screen;
- +: Zoom in;
- -: Zoom out;
- F5: Reset scene;
- F8: Close game;
- F9 (hold): Time-scale -;
- F10 (hold): Time-scale +;
- F11: Time-scale =1;
- F12: Time-scale =0.
###################################################################################
SPECIAL THANKS:
-JJoeyay, for teaching me Godot and inspiring me to make games;
-3DSage's 'Make Your Own Raycaster' series on YouTube;
-Kofybrek's 'Writing my First Ray Casting Game using C++ and SFML - SFML Tutorial';
-javidx9's 'Code-It-Yourself! 3D Graphics Engine' series on YouTube;
-Nic from college, for helping understand the polygon processing logic;
-Theraot from Stackoverflow, for making the slope collision for me.
8)
Old raycaster versions, & others
available at "older-versions".