6 ms·
Q3VM – Lightweight, embeddable Quake III Interpreter/Virtual Machine
- pankajdoharey 8y agoWoW, i had no idea Quake had a vm inside it.
- xedarius 8y agoReally smart. It's worth mentioning that the Q3VM was the entry point to many of the exploits created for Q3, just something to bear in mind.
- janosch9001 8y agoIt is forked from the well maintained ioquake3 project. But do you have further informations? I'd love to fix stuff if possible (and maybe back port that to ioquake3).
- rasz 8y agoHow did that work? You need to load your custom scripts somehow in the first place, Im guessing in a form of game mod. So you are already running custom code at this point.
- AgentME 8y agoWhenever you connect to a server, the client autodownloads any game mods used by the server. Random servers and their game mods aren't supposed to have arbitrary unsandboxed code execution on your system, but they could if they exploited a vulnerability in the code vm. The code vm is supposed to be safe for running arbitrary code in a sandbox.
- dejv 8y agoWhat could be usecase for using this VM? Any idea why to use it in non-game app?
- Epskampie 8y agoI don't understand either. If you have to write in C, and you have to compile, what's the advantage?
- johannes1234321 8y agoSpeculation: Assuming the VM has no bugs it is sandboxed. The code run can't access the file system or freely allocate memory. Thus code from less trusted sources can be executed. (Another comment indicates that the VM has a history of bugs, so it might not be advisable, but I have no experience with it)
- deleted 8y ago[deleted]
- farnulfo 8y agoSource code of third party mods ?
- monocasa 8y agoYou don't really get source code. You only get bytecode that's harder to reverse than a fully compiled binary if only for the lack of tooling.
- ndepoel 8y agoThe main advantage for Quake 3 was that the server, client and UI code could be compiled into platform-independent bytecode modules. This was mostly a boon to mod creators, who had to build only one version of their mod that would work on all Windows, Mac and Linux systems alike.
- hinkley 8y agoI thought I heard this was also a boon for the scenario creators and level builders working alongside the graphics engineeers. They get something a little less hairy and volatile to work with, and execution speed isn’t that critical because you’re only making hundreds or thousands of decisions per second.
- EamonnMR 8y agoIt's not clear from the documentation, is this forked out of the Q3 codebase or based on the LCC book or just totally independently created?
- juliangoldsmith 8y agoThe README says that this is forked from the Quake 3 codebase.
- justin66 8y agoid took the LCC compiler and targeted it toward their custom bytecode VM. I have no idea what this author has done with the code since then, though.
- janosch9001 8y agoIt is forked from the ioquake3 code base. I've added computed gotos to the interpreter to speed it up a bit.
- tree_of_item 8y agoWebAssembly is a better choice today. This thing is interpreting C, so just embed wasm instead so people can use stuff like Rust too.
- janosch9001 8y agoThere are of course many VMs out there. Totally depends on the individual use case.
- deleted 8y ago[deleted]
- fsiefken 8y agoDoes it have VR support?
- burnte 8y agoIt does, as well as support for the other 24 letters. ;)
- mulle_nat 8y agoHow good is this in terms of execution speed ? Compared to Lua for example (since that is mentioned in the README).