Difference between revisions of "MPUZ: Developing"

From Mario Fan Games Galaxy Wiki
m (anti-redundantation)
m
Line 1: Line 1:
{{production}}
 
 
{{MPUZ}}
 
{{MPUZ}}
 
== Introduction ==
 
== Introduction ==

Revision as of 19:58, 28 July 2009

This information is subject to change.
MPUZ
Mpuz logo.png
Development Main Page
Basics
Intermediate
Advanced
  • none
Reference
[Edit]


Introduction

Despite MPUZ being nowhere close to being done a full game in its own right, it also allows for a great deal of customization; objects, levels, and maps can be created by users, and of course the graphics, sounds, and music can be changed. Oh, and there's an external dialog file which you can translate to another language or something. Or spoil the whole game, whatever.

Anybody who's been paying attention knows MPUZ uses Lua for object scripting, which makes it quite easy to code objects. Numerous pre-coded functions are already included and ready to use, but there's nothing stopping you from re-inventing the wheel if you so desire. Throughout this "manual", you'll find various references to these functions, and will also be introduced to some special keywords like me or selected.

MPUZ may seem somewhat limiting at first, since objects' scripts are basically pre-packaged code blocks that can't be customized on an instance-by-instance basis, at least in a way you might find familiar. However, each level can include its own script to allow per-object coding to be easier (and is needed for level-specific "events", unless you want to use objects for those, for some reason). If your level uses its own dialog file, you will need this script... or those objects.

Object Model

In fact, MPUZ is quite object-based, since I'm lazy and it's easier to program an engine when you don't have to make exceptions for special cases. Early versions of the engine considered Mario to be a special object, and he always got the revered [1] slot in the object list (so he could be accessed separately and directly). Now, he's just as insignificant of a construct as, say, a brick block. Well, he does have player controls so I guess that makes him special.

Objects themselves are somewhat complex; the *.mpo file contains more than just the script: object graphics and other information are also stored in those files. While this could possibly cause you to have redundant graphics and therefore waste a little hard drive space (not that likely), it makes it easy to distribute the objects; if someone wants to use one, they just dump it somewhere in their Objects folder.

MPUZ also deals with objects a little more intuitively than Click products, so you don't have to. It actually treats object instances as individuals, but you can just as easily "select" groups of objects should you have the need.

Getting Started

Assuming you have decided on what you're going to make, you will need to open the appropriate editor (level or object). Chances are, you've noticed the sidebar, so that's what you'll want to explore next.