In the year 1997, with Sylvester Stallone's Demolition Man still fairly fresh on our minds, developer Shiny took the opportunity to name one of their games after an abbreviated phrase that was mentioned several times in that film. Under the assumption that MDK stood for "Murder, Death, Kill" and the fact that you run around as a guy whose head is a sniper rifle, the Playstation generation couldn't wait to get their hands on it. As it turned out, the game was not the gruesome murder simulator many people expected, but a humorously quirky action title like most of the prior games Shiny was known for. In the sequel, the main character from the first game, Kurt Hectic, would share the duty of saving the earth with Doctor Fluke Hawkins and the four-armed, gun-toting, cigar-chomping robotic dog, Max, the other members of the game's titular trio. It's the crazy sort of stuff that keeps gaming fresh, and with its recently-announced comeback in the making, I can think of no better place for the franchise to make a killing than on the Wii. I'm writing this script for MDK 2, primarily because it's more modern and easier to get running on a modern computer than the original MDK. Though the first game was arguably more fun, Bioware's sequel is a worthwhile follow-up because it made Doc and Max controllable characters. Playing as Kurt alone would be a blast, but Doc and Max's inclusion provide the kind of variety and assorted gameplay that would make it a perfect match for the Wii audience.
The first level puts you in Kurt's prototypical "coil suit," and has you free-falling into an alien minecrawler on a mission to eliminate every creature on board. A freely deployable ribbon chute slows your descent, and then it's onward to the green bloodletting.
In the next stage, you'll play as Max, who can equip different weapons in each of his 4 paws/hands, and do a bit of flying with a jet pack. It's more straightforward shooting against lots of baddies, but sometimes that's all you need in a gaming session. There is still a place in the world for that sort of thing, right?
The frail Dr. Hawkins has to use his wits to MacGuyver various apparatus for dispatching the alien threat from his orbiting space ship, the Jim Dandy, in the third level. From there on you'll cycle through each level with a different one of the three characters. The levels are expansive and don't have auto-saving checkpoints, but that ought to be re-considered for Wii gamers-on-the-move, who don't have the time to sit through and replay long missions.
MDK2 uses OpenGL for graphics, but Direct X's DirectInput is used for mouse controls, so I adapted Carl Kenner's first person shooter script for aiming and looking around. This requires an IR source, such as a Sensor Bar, for aiming, but if you the IR source falls out of the Wiimote's view, the view will continue moving in the same direction until you point back at the Sensor Bar.
PIE.FrameRate = 60Hz
var.BoxSize = 60%
var.BoxSpeed = 700 Mickeys //per half screen of movement
var.ScrollSpeed = 800 Mickeys per second
var.X = MapRange(Wiimote.PointerX, 0,1, -1,1)
var.Y = MapRange(Wiimote.PointerY, 0,1, -1,1)
/*Use a different system when the cursor is visible. Also, stop scrolling when the Wiimote moves significantly while it is not pointing at the screen */
var.BeingUsed = False
Mouse.X = Wiimote.PointerX
Mouse.Y = Wiimote.PointerY
var.BeingUsed = True
ElseIf |Wiimote.RelAcc| > 7
Var.BeingUsed = False
If |var.X| < var.BoxSize
//pointer is inside the box (horizontally), so move based on change in pointer position
Mouse.DirectInputX += delta(var.X)*var.BoxSpeed
//pointer is outside the box (horizontally), so scroll based on fixed rate and sign of x (+/-)
Mouse.DirectInputX += var.ScrollSpeed*sign(var.X)
If |var.y| < var.BoxSize
Mouse.DirectInputY += delta(var.y)*var.BoxSpeed
Mouse.DirectInputY += var.ScrollSpeed*sign(var.Y)
When I used to play this game with a game pad or keyboard and mouse back in the day, I'd get a little confused switching between characters. With GlovePIE, I can map functions to multiple buttons and/or motions, so it's a little easier to transition between characters.
Equals = Wiimote.Up //Use, Equip, Right Hand
Minus = Wiimote.Down or Nunchuk.CButton //Unequip, Left Hand
ArrowKeys = Nunchuk.Joy //Move, Zoom
Mouse.LeftButton = Wiimote.B //Shoot, Combine
Space = Nunchuk.Zbutton //Sniper Mode
Mouse.RightButton = (Nunchuk.GY < .5) //Jump, Jet Pack Throttle
LeftBracket = Wiimote.Minus //Inventory Left
RightBracket = Wiimote.Plus //Inventory Right
Shift + P + I + E = Wiimote.Home //Stop script
Playing MDK2 again after all these years, it kind of leaves something to be desired. There's not much variety in enemies and the level design isn't quite as captivating as I remembered. It's still a brilliantly conceived premise that should be warmly received by the hardcore Wii fanbase, just so long as it is brought up to the standards of today's games.
MDK may not have been my first choice among Interplay classics I'd like to see ported to the Wii, but I still desire it greatly. If you've got some Interplay favorites that deserve waggle-ification, feel free to tell us in the comments.