q3vm
qwpython
q3vm | qwpython | |
---|---|---|
7 | 2 | |
799 | 8 | |
- | - | |
3.6 | 10.0 | |
2 months ago | almost 9 years ago | |
C | Python | |
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.
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.
qwpython
- QWPython: QuakeWorld dedicated server with game logic translated to Python
-
QCVM: Bite-sized QuakeC VM written in C
I had a huge amount of fun back in those days messing with QuakeWorld and Quake2, learned a ton of stuff.
One project was embedding a Python2 interpeter in QuakeWorld, along with a QuakeC->Python translator. The translator and the resulting Deathmatch and CTF games are here: https://github.com/barryp/qwpython
The other was embedding a JavaVM in Quake2, and instead of trying to translate the C game logic, we recreated the whole thing from scratch in an object-oriented Java fashion: https://github.com/barryp/q2java
Thanks to Carmack for opening up those old engines, that was a real education.
What are some alternatives?
wasm-micro-runtime - WebAssembly Micro Runtime (WAMR)
DIYDoom - An attempt to understand how DOOM engine works
Wren - The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.
john-carmack-plan - An archive of John Carmack’s .plan files in readable markdown format
pocketlang - A lightweight, fast embeddable scripting language.
QCVM - Bite-sized QuakeC VM written in C
lcc - The lcc retargetable ANSI C compiler
q2java - Embedding of a Java VM in Quake2 to run games written in Java
Senegal - Senegal programming language
janet - A dynamic language and bytecode vm
quake3pico - This is a port of the Quake 3 engine to Pico Neo 3 and Pico 4.