The First 100% QuickBasic Game Review Magazine
Updated November 20, 2004

Game Reviews 42 RPGs 55 Arcade 34 Puzzle 18 Platform 10 Strategy
Sections QB News Site Archives Game Guides Our Projects Entertainment Awards QB Links
Interact QB Chatroom Mailing List Submissions Link to Us Job Openings

The Truth About MUX
(2/25/2003) Is it really QB? We talk with Pauli Merilainen, head of PieSlice Productions, about their jaw-dropping FPS.


A masterful blend of QB, C, and ASM, MUX is a marriage of languages done right.

After playing a few hours of Pieslice Productions' first-person shooter, MUX. Engineered by Pieslice Productions, we were a little bit skeptical that any QB game could incorporate a twenty-level, mature-themed game with the kind of multiple weapons, ambitious level design, and special effects that MUX boasted. "This had to be a pure C effort!," Editor Vance Velez thought in his mind loud enough for the rest of the V Planet staff to hear.

Determined to find out the truth about MUX, we went straight to the source, Pieslice Productions executive director Pauli Merilainen. Unaware that there was skepticism regarding the QB roots of his game, Pauli gave V Planet proof-- the source code of MUX itself! Afterwards, Pauli treated Vance with an in-depth interview about QB's latest FPS.
 
Vance: What's the biggest misconception people have about trying to make an FPS in QB?

Pauli: They underestimate the QB. You can push the limits of QB with some external libraries and some well written C/ASM code. It's also quite easy to rewrite the bottlenecks of your QB program in C. Most of the FPS is still algorithmically quite simple. You can also speed up your programs by using fixed-point math instead of floating points.

Vance: What were some of the things you were working on during MUX where you were like, "Yeah! Betcha they didn't expect that to be done on QB!"

Pauli: The lighting engine and high-resolution graphics. No anime characters...

Vance: What level in MUX really illustrates some of the best things that the MUX engine can do?

Pauli: I think Level 7, "Dark Tunnels". Basically you see nothing except some light spots. You can destroy some of the lights, making the level even darker. You see enemies' silhouettes in front of the light sources. You hear their roars echoing in the corridors. It's kind of eerie.

Vance: What kind of AI do the enemies in MUX use?

Pauli: They use the following algorithm: First, they count their direction vector which points to layer. The AI engine tries to move enemy "vectorwards". If there's a wall it makes a double check whether the enemy can move to the directions of X and Y components. If they can, they move "componentwards" 1.5 times the vector component length. If they see you in front of you (basically same algorithm as the raycaster, but only one ray fired) they start firing.

Firing angle is the same as their direction angle, plus or minus some random number depending on the enemy's weapon accuracy. The enemy firing accurary is somewhat character related but every enemy is individual in MUX. Some might fire more accurately, some might fire with greater firing rate or some might be a sort of "hawks" which start shooting at the player immediately when he's in front of their guns.

Vance: What are some of your favorite enemies and weapons to program and see in action while developing MUX?

Pauli: For the weapons, definitely the chaingun. It's so nice. Firing rate is about 4000rpm. Eats ammo like popcorn. And I like the sound it does. For the enemies, the Muncho is my favorite. It's so grotesque, even though it's not very dangerous. And it dies nicely... you can see it's intestines falling on the floor. POOF!

There was basically no difference programming the weapons or enemies because each enemy and player weapon uses same routine. The enemies and weapons are just a pack of integers ;-)

Vance: Where did the idea for the MUX OS come from?

Pauli: From DOOM Operating System. I was too lazy to code menus and I decided to make a Quake-styled hotkey/console interface. (I decided to develop MUX less than a year!)

Vance: You said that MUX uses a combination of QBasic and C. Where was the C part of the code used, and could it have been feasibly done using QB?

Pauli: At first, MUX was a full QB-game but it was soooooooooooooooo slow that I decided to rewrite the raycasting part in C. MUX uses some perverse optimizations that aren't available in QB (i486 instructions, binary shifts, unsigned ints instead of LON.) It cut down the system requirements of MUX. It runs smoothly on my 166mhz Pentium MMX laptop, and on a 350mhz P2 it flies. In fact it's so fast that you have to limit its speed to keep it playable. Not bad for a QB game ;-)

Vance: How far along would you consider MUX compared to commercial FPSes? (Wolfenstein 3D, Doom, ROTT, etc.)

Pauli: MUX has some techniques which weren't implemented even in Duke Nukem 3D. ROTT had dynamic lights, but in MUX they also affect on floors and ceilings, not only walls.
Most of the "older" FPSes had awfully drawn textures and actors, think about Wolfenstein. Neon colors!

I tried to keep in mind that no pure hues exist in real life when I created the MUX color palette. Every color is somewhat mixed with gray, which makes MUX look more realistic. The wall textures are also blurred, which makes them look less "pixelated". It's also good to keep in mind that MUX has "tall-res" mode which isn't popular with coders (why? it's a lot of better looking than 13h), although it's an easy hack.

Vance: Do you think QB can handle an online or network FPS?

Pauli: Definitely yes. If someone wants to make "MUX Tournament", don't let ME stop you!

Vance: In your opinion, which of the big four (PC, PS2, Gamecube, XBox) is furthest along in terms of benefitting FPS fans and offering potential for more FPS goodness?

Pauli: I think PC. The innovations will come first to PC, then to consoles. PC is always one step ahead. Consoles have some pros against PC: games always work without hardware problems and there's no CPU-speed sucking parasite called Windows.

Vance: Are you interested in working on a commercial FPS for any of these four platforms?

Pauli: I'm mostly interested in story-based adventures and epic strategy games. I thought MUX's going to be a demo, but it expanded to whole game (quite big indeed). Creating an FPS is very difficult task. But I'm not disappointed with that fact. Download MUX to see what's it all about!

Thanks to Pauli for a great interview! Check out V Planet's review and download for MUX by clicking here

Interview by Vance Velez, Editor

Back to Site Archives

V Planet! Archive
This is an archive of V Planet, circa November 2004, when the site was last active. This is read-only, and preserved here as part of the QB Zines Archive at Pete's QB Site.

Site Highlights
2004 QB Gaming Gold Awards Almost Set To Begin!
Get ready for this year's Gaming Golds! After a long hiatus, this year promises to be one of the biggest galas in the history of the QB world. Who will take home the gold this year?

Site Watch
Pete's QBasic Site
The original king of QB reviews is back with a vengeance! Check out the new and improved version of his website and don't forget to upload your latest QB projects to Pete's new download section!

Affiliates
Antz Entertainment
GBGames QBasic
HyperRealistic Games
InnerMark
NeoBasic
Jocke the Beast
Pete's QBasic Site
Pickers Games Website
Piptol Productions
Programmer's Heaven
QB Colony
QB Chronicles
QB: Cult Magazine
QB45
QBasic/QuickBasic News
QBasic Contest
Central
RPG-Dev.Net
Statto Software

Links



QBasicNews.comGBGames QB Game Review SiteStattoNet (Links/Site Reviews)Antz EntertainmentQB Top 50QBRPG Top 50The Hulla-Balloo NetworkQB45 (Future Software)