DIYDoom
q3vm
DIYDoom | q3vm | |
---|---|---|
5 | 7 | |
530 | 805 | |
- | - | |
0.0 | 3.6 | |
over 1 year ago | 2 months ago | |
C++ | C | |
MIT License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
DIYDoom
-
QCVM: Bite-sized QuakeC VM written in C
Don't sell yourself short, I imagine you could achieve a lot more than you think! It's just a case of breaking the problem down, simplifying accordingly and (probably the most difficult bit) finding the time to sit down and work on it. There are some DIY courses that could even be followed and mashed up to approximate a scriptable "3D" engine with a bit of creativity. You could familiarise yourself with building a simple compiler + VM for a little language by following "Crafting Interpreters" (https://craftinginterpreters.com). For the engine side of things someone recently posted this "DIY Doom" over @ https://github.com/amroibrahim/DIYDoom which looks like a bit of fun.
I mean it's a bit tougher to do it all completely from scratch, but I reckon most HNers could get quite a lot of the way there :)
-
Game Engine Black Book: Doom [pdf]
see also a tutorial on writing a doom-compatible engine from scratch:
https://github.com/amroibrahim/DIYDoom
they also have a community forum, diyidtech, at https://discord.gg/a8n4Y2z
-
How hard is to convert C++ code to C?
For reference, I want to convert this C++ code (https://github.com/amroibrahim/DIYDoom/tree/master/DIYDOOM/Notes001/notes)
-
Rustenstein 3D: Game programming like it's 1992
see also: a series of posts (with accompanying code) on rewriting the doom engine from scratch:
https://github.com/amroibrahim/DIYDoom
- Can you share some resources that show how to make a rudimentary DOOM game and how stuff works?
q3vm
-
QCVM - QuakeC Virtual Machine written in C89
I am a big fan of Q3VM and have even used it in a couple of projects.
-
QCVM: Bite-sized QuakeC VM written in C
But it returned in Quake 3 the n?
https://github.com/jnz/q3vm
- Buying a permissive license for a Copyleft project
-
SHOULD A BEGINNER ATTEMPT A VIRTUAL MACHINE PROJECT?
You might want to check out Q3VM (A stripped down virtual machine from Quake III).
- Is it possible to dynamically execute C code from C++?
- Is there a Plan9 port for TCC?
-
Where can I find the source code of C language itself?
Finally, the compiler itself is the easy part, emitting x86/x86_64 instructions is where it starts to get very complex. For this reason, I really recommend Q3VM (https://github.com/jnz/q3vm). It is a single file VM (originally written for Quake III) which interprets fantasy but greatly simplified instructions from a slightly modified LCC compiler (also part of the project). This might be very useful to learn from.
What are some alternatives?
VoxelSpace - Terrain rendering algorithm in less than 20 lines of code
wasm-micro-runtime - WebAssembly Micro Runtime (WAMR)
Portal-Raycaster - A software portal rendering game engine
Wren - The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.
dhewm3 - dhewm 3 main repository
pocketlang - A lightweight, fast embeddable scripting language.
rustenstein - Wolfenstein 3D port written in Rust
lcc - The lcc retargetable ANSI C compiler
REminiCRT - Flashback with CRT emulation shader
Senegal - Senegal programming language
qzdl - Qt version of BioHazard's ZDL
QCVM - Bite-sized QuakeC VM written in C