Send News. Want a reply? Read this. More in the FAQ.   News Forum - All Forums - Mobile - PDA - RSS Headlines  RSS Headlines   Twitter  Twitter
Customize
User Settings
Styles:
LAN Parties
Upcoming one-time events:
San Diego, CA 08/21

Regularly scheduled events

Carmack on QVM

John Carmack updated his .plan with details on the QVM, or Quake Virtual Machine, that he has implemented into Quake III: Arena over this past week. It's a giant update, but here's an excerpt:

The basic setup is that I have a modified version of the lcc compiler that generates assembly files that are processed by a new tool "q3asm" into a .qvm file that can be interpreted by q3. You can still use normal dll's for debugging, then release interpreted code. You can release a binary dll if you need some native system services (some networking stuff, for example) or are doing very compute intensive work, but I strongly encourage everyone to try to use the virtual machine.

The interpreted code has two prime benefits: portability and security.User mods done with qvms will automatically work on mac, linux, and any other oddball ports that get released.

A qvm program cannot modify anything outside its private address space, and the "system calls" to the game strictly limit what can be touched. I was scared about the binary dll's in Q2, but rationalized it to myself that people running public servers should be aware of the dangers. With Q3 allowing client side programming, it just needs to be safe for everyone.

Email Digg Facebook Twitter   Share More    


 

  
   Current Headlines
Major Hyperdrift League Demo
Final Fantasy XV Delayed
LawBreakers Alpha Aftermath
U.K. Sales Charts
Blue Byte's PC Legacy
Morning Patches
Morning Consolidation
Morning Metaverse
Game Reviews
Hardware Reviews
etc.
Out of the Blue
StarCraft II Multiplayer Plans
New AMD Radeon Crimson Drivers
Vampire: The Masquerade - Bloodlines Sequel Plans?
Steam Top 10
Sunday Patches
Sunday Crowdfunding Roundup
Gatherings & Competitions
Sunday Previews
  

 



footer

Blue's News logo