This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
ray1:basics [2023/01/24 09:16] – created raycarrot | ray1:basics [2023/01/24 12:27] (current) – removed page since it was created in the wrong place raycarrot | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Rayman 1 (Jaguar) Engine Basics ====== | ||
- | The basics of the engine is described below. | ||
- | ===== Order ===== | ||
- | The orders are the most important objects in the engine. Rather than having multiple nested game loops for the different areas of the game like the [[ray1: | ||
- | |||
- | An order mainly consists of a verbe, parameters, display and an absolute x and y position. | ||
- | |||
- | ==== Verbe ==== | ||
- | A verbe is a value describing what the order should do each frame. The value is used as an index in an array of functions and is what gets called each frame. The parameters in the order are stored as 16 16-bit values, but can be used differently depending on the verbe. Each verbe expects different parameters, ranging from pointers to different types of object data or functions and values describing its current state. | ||
- | |||
- | The following list of verbes comes from the earliest prototype: | ||
- | 03: vrb_plateforme1 | ||
- | 06: vrb_anim_joystick | ||
- | 07: vrb_recaloum | ||
- | 10: vrb_deplace | ||
- | 15: vrb_movespr | ||
- | 17: vrb_follow_scroll | ||
- | 18: vrb_event | ||
- | 19: vrb_bandeX | ||
- | 20: vrb_main_scroll | ||
- | 21: vrb_sub_scroll | ||
- | 25: vrb_basic | ||
- | 26: gene_no_init | ||
- | 29: vrb_anim_simple | ||
- | 30: vrb_anim_custom | ||
- | 31: vrb_anim_bboss | ||
- | 34: vrb_recul | ||
- | 35: vrb_clignote | ||
- | 36: vrb_board | ||
- | 50: vrb_plateforme2 | ||
- | 51: vrb_main_scroll | ||
- | |||
- | ===== Display ===== | ||
- | A display is an object containing a sprite or other type of graphics to be rendered to the screen. It also keeps track of its properties, such as position, collisions, display priority and more. | ||
- | |||
- | ===== Level ===== | ||
- | //FIXME TODO: Describe how levels get created from commands// | ||
- | |||
- | ==== Event ==== | ||
- | Each level in the game consists of an event map. This map d describes which events should trigger at what points in the level. Although this system appears to allow for different types of events it is only ever used to spawn in different types of multi-sprite objects when they should appear on screen. | ||
- | |||
- | ===== Multi-sprite ===== | ||
- | A multi-sprite is a class of objects primarily triggered by events and used in the game's levels for things like enemies and platforms. There are different types of these with some being referred to as mega-sprite objects if they have additional data defined. Other multi-sprites are used for things like displaying the game's backgrounds. If so they are not triggered by events but rather created by an order or from the level creation commands. | ||
- | |||
- | These objects all commonly contain a value describing the number of displays it uses (this value may be 0 if the game dynamically handles this itself), an optional pointer to character data and a verbe. It also contains the parameters to be used for the verbe. When this is loaded, known as being inserted, an order gets created for it to ensure its verbe gets executed each frame. | ||
- | |||
- | ==== Character ==== | ||
- | The character object is used by multi-sprites to define common properties such as colliders, hit-points and display priority. Its usage sometimes differs depending on the verbe. | ||
- | |||
- | ==== Object State ==== | ||
- | //FIXME TODO: Describe how objects keep track and transition between states// | ||
- | |||
- | ===== Graphics ===== | ||
- | //FIXME TODO: Describe how it handles Atari Jaguar graphics objects// |