RayDevWiki

Rayman Developer Community Wiki

User Tools

Site Tools


ray1:basics

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
ray1:basics [2023/01/24 09:16] – created raycarrotray1: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:overview|multi-platform engine]] this one has a single global game loop which sole purpose is to execute the orders, as long as the game is not paused. The orders are stored in a linked list where each order contains a pointer to the previous and next item. 
- 
-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// 
ray1/basics.1674551774.txt.gz · Last modified: 2023/01/24 09:16 by raycarrot