Objects: Difference between revisions

From Ukikipedia
Jump to navigation Jump to search
No edit summary
 
(reformated the oibject group list)
 
(49 intermediate revisions by 21 users not shown)
Line 1: Line 1:
'''Objects''' are every single thing that exists in the [[Super Mario 64]] world except the landscape (background and terrain). The limit of objects in a [[List of courses|course]] varies from 240 to a bit less. For example:
{{rewrite}}
* [[Bowser in the Fire Sea|BitFS]] has a limit of 232 Objects
* [[Tick Tock Clock|TTC]] has a limit of 238 Objects
Objects exist in two tiers: unimportant objects and important objects.


== Unimportant Objects ==
An '''object''' is an entity in the game that is not part of the level geometry of the course. Most objects either interact with Mario and/or move in some way, act as stationary platforms or simply exist for aesthetic purposes. The maximum number of objects in a [[List of Courses|course]] is 240.
Most special effects are unimportant objects. Some examples of unimportant objects are:
* Smoke from being burned in lava
* Yellow Stars from ground pounds and headbonking
* Sparkles around a Koopa shell and a 1-UP
* Dust from collecting [[Stars]] or ground pounding


* Wind particles
== Object Groups ==
Every object is part of a larger "group" that helps define its behavior<ref>[https://github.com/n64decomp/sm64/blob/master/src/game/object_list_processor.h#L32 Object Group Enumeration]</ref>. Of the 12 groups, some are more strongly defined than others, but they are still a useful tool to categorize objects in the game.


== Important Objects ==
{| class=wikitable
Every object that isn't unimportant is important. Some examples of important objects are:
|-
* Every character, including [[Mario]] himself
! Group Name
* Coins of every type
! Description
* 1-UPs
|-
* 1-UP checkpoints
|Player Group
* Power Stars (Including [[100 Coin Star|100 Coins Stars]] and [[8 Red Coins Star|8 Red Coins Stars]])
|The first group, this group is composed of "playable" characters, which is simply Mario. Had Luigi been finished, it's possible he would have been in this group.
* Fire
|-
* [[Caps]]
|Group 2
* Cap/coin blocks
|This group is unused, it is possible this would have been a Luigi group, too.
* Moving platforms and some stationary platforms
|-
* Boxes of every type
|Destructive
* Trees of every type
|The destructive group consists of (non-playable) objects able to destroy other objects. This group consists specifically of four objects- Bob-omb, Bob-omb explosion, cork shell, and a beta object that was unused.
* [[Cannon|Cannons]] (Count as 2 objects: the blue base and the cannon barrel)
|-
* Signs
|Group 4
* Coins' twinkles
|Like the second group, this one is also unused.
* Dust from Mario walking or sliding
|-
* Teleporters
|General Actor
* Water switches
| This group contains most normal 'enemies' or actors ([[MIPS]], [[Bullet Bill]], [[Bully]], etc)
|-
|Pushable
|This group consists of objects able to push other (non-playable) objects. This behavior often goes along with [[transport cloning]]. This group consists of objects such as goomba, koopa, and spiny.
|-
|Level
|This group consists of objects within levels that are interactable, such as hearts and stars. This group often acts as "catch-all" along with default.
|-
|Group 7
|Group 7 is another unused group.
|-
|Default
|If an object isn't put into a different group, it ends up here. For this reason, this group acts as a "catch-all" for odd objects.
|-
|Surface
|These are any items that have surface collision, specifically walls, floor, and ceilings. Often these are items that would be easy to consider just part of the course geometry, such as the submarine in DDD or ship in JRB. Worth noting- this group is a requirement to have surfaces, so objects like Whomp and Thwomp still fall into this category despite being "actors".
|-
|Polelike
|The polelike group consists of objects that could be described as "radial" in that the attract Mario to some sort of radial center. This includes poles, whirlpools, tornados, trees, etc.
|-
|Spawner
|This group consists of most objects that spawn other objects, like coin spawners or star spawners.
|-
|Unimportant
|Unimportant objects generally do not affect gameplay at all and exist purely for visuals. This group has the unique quality of unloading to stay under the object limit, hence their "unimportant" name. Some examples include smoke, wind, and dust.
|}


== Objects Limit ==
[[File:Mario 64 freezed.png|thumb|289x289px|Freezed game after collecting a coin in [[Tick Tock Clock|TTC]]. Note the object counter (top-left) at his limit (238) in the Top Left of the screen]]
'''Object Limit '''is the maximum amount of objects a course can have loaded at the ''same time'' until the game [[Game Freeze|freezes]] (Note: this don't apply to the total Objects in the course, only to the ones that are loaded, as unloaded objects don't use slots).


Another way to explain is when all the course's object memory slots are full with Important Objects and another one is added. When this happen, the game freezes.
 
==Processing Order==
During a frame, object lists are processed in the following order: Spawner, Surface, Polelike, Player, Pushable, General, Destructive, Level, Default, Unimportant <ref>[https://github.com/n64decomp/sm64/blob/master/src/game/object_list_processor.c#L172 sObjectListUpdateOrder declaration]</ref>
 
== Object limit ==
The '''object limit''' is the maximum number of important objects a course can have loaded simultaneously before the game cannot handle loading any more. This limit is 240 at all times, but the [[debug]] code that displays object count fails to count certain spawners<sup>which?</sup>, making this limit seem lower in some courses<sup>citation needed</sup>. This doesn't apply to the total objects in the course, only to ones that are loaded at the time. Unloaded objects use no slots. As the object limit is approached, unimportant objects will sacrifice their slots in order to empty them for important objects. If no vacant slots are available when any object (important or unimportant) is loaded, a [[crash]] will occur.


== Trivia ==
== Trivia ==
* Unimportant Objects can give their slots in the object slots if it is full and another object wants to load, thus preventing the game from freezing.
* [[Clone|Clones]] never unload and thus occupy object slots even when the original object is unloaded.
* [[Clone|Clones]] never unload and thus occupy object slots even when the original object is unloaded.
* [[Parallel Universe|PUs]] don't naturally contain any objects, but they can be brought there.<ref>https://www.youtube.com/watch?v=AVtCM1B6iYk "Bringing Objects to PUs"</ref>
* [[Parallel Universe|PUs]] don't naturally contain any objects, but they can be brought there.<ref>[https://www.youtube.com/watch?v=AVtCM1B6iYk "Bringing Objects to PUs" by UncommentatedPannen]</ref>


== See Also ==
== See also ==
* [[Object Slots]]
* [[Object Slot]]
* [[Game Freeze]]
* [[Game Freeze]]
* [[Parallel Universe]]
* [[Parallel Universe]]
Line 51: Line 70:
==References==
==References==
<references/>
<references/>
[[Category:Terms]]
{{objects}}
{{DEFAULTSORT:Objects}}
{{DEFAULTSORT:Objects}}
[[Category:Objects]]

Latest revision as of 14:11, 11 October 2023

An object is an entity in the game that is not part of the level geometry of the course. Most objects either interact with Mario and/or move in some way, act as stationary platforms or simply exist for aesthetic purposes. The maximum number of objects in a course is 240.

Object Groups

Every object is part of a larger "group" that helps define its behavior[1]. Of the 12 groups, some are more strongly defined than others, but they are still a useful tool to categorize objects in the game.

Group Name Description
Player Group The first group, this group is composed of "playable" characters, which is simply Mario. Had Luigi been finished, it's possible he would have been in this group.
Group 2 This group is unused, it is possible this would have been a Luigi group, too.
Destructive The destructive group consists of (non-playable) objects able to destroy other objects. This group consists specifically of four objects- Bob-omb, Bob-omb explosion, cork shell, and a beta object that was unused.
Group 4 Like the second group, this one is also unused.
General Actor This group contains most normal 'enemies' or actors (MIPS, Bullet Bill, Bully, etc)
Pushable This group consists of objects able to push other (non-playable) objects. This behavior often goes along with transport cloning. This group consists of objects such as goomba, koopa, and spiny.
Level This group consists of objects within levels that are interactable, such as hearts and stars. This group often acts as "catch-all" along with default.
Group 7 Group 7 is another unused group.
Default If an object isn't put into a different group, it ends up here. For this reason, this group acts as a "catch-all" for odd objects.
Surface These are any items that have surface collision, specifically walls, floor, and ceilings. Often these are items that would be easy to consider just part of the course geometry, such as the submarine in DDD or ship in JRB. Worth noting- this group is a requirement to have surfaces, so objects like Whomp and Thwomp still fall into this category despite being "actors".
Polelike The polelike group consists of objects that could be described as "radial" in that the attract Mario to some sort of radial center. This includes poles, whirlpools, tornados, trees, etc.
Spawner This group consists of most objects that spawn other objects, like coin spawners or star spawners.
Unimportant Unimportant objects generally do not affect gameplay at all and exist purely for visuals. This group has the unique quality of unloading to stay under the object limit, hence their "unimportant" name. Some examples include smoke, wind, and dust.


Processing Order

During a frame, object lists are processed in the following order: Spawner, Surface, Polelike, Player, Pushable, General, Destructive, Level, Default, Unimportant [2]

Object limit

The object limit is the maximum number of important objects a course can have loaded simultaneously before the game cannot handle loading any more. This limit is 240 at all times, but the debug code that displays object count fails to count certain spawnerswhich?, making this limit seem lower in some coursescitation needed. This doesn't apply to the total objects in the course, only to ones that are loaded at the time. Unloaded objects use no slots. As the object limit is approached, unimportant objects will sacrifice their slots in order to empty them for important objects. If no vacant slots are available when any object (important or unimportant) is loaded, a crash will occur.

Trivia

  • Clones never unload and thus occupy object slots even when the original object is unloaded.
  • PUs don't naturally contain any objects, but they can be brought there.[3]

See also

References