Nav: (Display/Hide) - Home - About the Author / this page

Current Projects: Americana Engine (Game Engine Development)

Wednesday, July 25, 2012

Zuma Blitz Level Modding

Testing out a Zuma's Revenge map in the Zuma Blitz game engine.

I've always had an idea for the past few months to play new maps - every week has been an exact repeat of a previous board (this week's board was done in March), and apparently they ran out of curve ideas.

With a bit of modification, it's entirely possible to change the ball path entirely. Though I took the curve from Zuma's Revenge, it's apparent that we can actually build new curves. Research on reverse-engineering curve files in order to create a new board is underway in an attempt to build up creative levels.

Note: Doing it this way with boards found in Revenge are harder since it wasn't designed for Blitz play (with five colors and balls are easier to clear). Expect a difficulty spike.

Findings:

  • Number of colors of balls that occur, as well as some other things (like curve speed how frequently colors appear in groups, etc.) is within the curve file.
  • Skull position is determined within the curve file, not in the level xml file
  • Zuma Revenge boards work on Zuma Blitz (board images may need to be adjusted however)

Limitations:

  • No 'frog on rails'. I like to have this (and so do many people), but it's not implemented in ZB.
  • No lily pads either, but you CAN choose where your frog will be at (it doesn't have to be at the center). Keep in mind the size of the board is 800x600px when choosing a position when modding the xml file. It's scaled down appropriately from there.
  • No more than two curves.
  • On Kroakatoa, board mods are permanent - this may or may not be a good thing.

How-To:

This might be a bit complicated for some to do, but I'll try to explain briefly. This is client-only, meaning only you will see the changes. Will post detailed instructions later.

  • You'll need xampp, popunpak, and a copy of Zuma's Revenge (for example boards).
  • Run xampp on your system - this will create a web server on your computer.
  • Copy the board image/curve files (.dat files ingame) from ZR to the htdocs folder.
  • Use Fiddler to redirect board/curve requests to files on localhost.
  • Play ZB as usual while traffic is being captured on Fiddler. You should have the new board layout.

Test:

NOTE: Not guaranteed to work on all systems.

  • Disable secure browsing on Facebook
  • Install Fiddler
  • Run Fiddler, Go to FiddlerScript, add this somewhere in the OnBeforeRequest function (between the curly brackets) and click on Save Script:
      if (oSession.uriContains("/level.xml")) {
       oSession.url = "bchantech.dreamcrafter.com/zumablitz/custom/level.xml?v=114";
      }
       if (oSession.uriContains("grotto2-2.dat")) {
       oSession.url = "bchantech.dreamcrafter.com/zumablitz/custom/Jungle5.dat?v=114";
      }
       if (oSession.uriContains("grotto2.jpg")) {
       oSession.url = "bchantech.dreamcrafter.com/zumablitz/custom/jungle5.jpg?v=114";
      }
       if (oSession.uriContains("splash.jpg?v=")) {
       oSession.url = "bchantech.dreamcrafter.com/zumablitz/custom/splash.jpg?v=114";
      }
    
  • Ensure Fiddler is capturing traffic
  • Run Zuma Blitz, make sure it's not https in the address bar, if so change it to http
  • Start the game and you should have a new board.

0 comments: