NiGHTS tutorial

From SRB2 Wiki
Jump to: navigation, search
Test.png This article or section is outdated and has not been updated to reflect the release of 2.1.

Please help the Wiki by correcting or removing any misinformation, as well as adding any new information to the page.

The NiGHTS system of mapping is quite different from normal level making, and, as a result, has always been considered very complicated amongst mappers. For a long time, SRB2's own official Spring Hill Zone was the only complete NiGHTS map available for play, due to the complexity of the system. Spring Hill Zone was included starting with Version 1.04. With the advent of Botanic Serenity and several other custom NiGHTS maps, the popularity of NiGHTS mapping and documentation on the system has increased, although the mode is not used for custom maps very often. This page serves to document the NiGHTS system, and is intended to make the system as a whole easier to understand for mappers.

About NiGHTS

The NiGHTS gametype in SRB2 is based on the game NiGHTS into Dreams, a links-type game residing on the Sega Saturn.

NiGHTS into Dreams allowed two main types of gameplay. One type was where the player was free to roam the 3D world without restriction (other than the outer boundaries of the world) by walking and jumping. The second type allowed the player to gracefully fly along a 2D-esque path. The latter type of play was what mainly defined NiGHTS. The game was cited mainly for its graceful freedom of movement in the 2D flying movement, which the players were able to experience. They could fly fluidly in all directions along the 2D path; an analog controller was made for the Sega Saturn specifically for this game, and as rumor says, was requested by Yuji Naka himself.

Players flew through hoops, collecting "chips" (replaced by rings in SRB2) to destroy Ideya Captures and "Stars" (replaced by wing logos in SRB2) to gain bonus points within the time limit that governed how long they were able to fly. The objective of the level was to destroy all the Ideya Captures in the level by doing just this, and also to gain as many points as the player could. The players were able to do these tasks both by walking through the 3D world and flying along the 2D track, thus allowing for the immense amount of freedom this game is known for.

Main components of a NiGHTS map

A typical NiGHTS map contains some essential elements in which without these elements, the map probably wouldn't be able to function properly in NiGHTS. These components are the following:

  • The 3D world itself (the map)
  • A Super Sonic transform point, called Ideya Drone
  • Collectives of rings and wings
  • An arrangement of Axis Points which define how the track is traced out
  • An accompanying arrangement of Axis Transfers. These are placed along the paths defined by multiple Axis Points to allow the player to hop from one Axis Point of the path to the next.
  • An Ideya Capture

Axis Points

The parts of an "Axis Point".

The Axis Points are the most integral part of a NiGHTS map. An arrangement of these Axis Points defines how the 2D flying track is traced out. Without these Axis Points, there would be no definition of a 2D track, and thusly, no proper NiGHTS level.

An arrangement of Axis Points to make a NiGHTS path. (anigif)

The Axis Point arrangement consists primarily of "Axis Point" Things, Thing Type 1700. An Axis Point consists of a circle; the position of the Thing stands for the center of the circle, and the perimeter itself of the circle is the area where Super Sonic can fly about. The size of this circle is defined by the Thing's Angle value, which in turn stands for the circle's radius; for example, an Angle value of 512 makes a circle whose radius is 512 fracunits, and Super Sonic would be able to fly along that circle.

The complete path consists of a number of these Axis Points, with their circle perimeters all connecting to each other at a single point each. These points of connections allow Super Sonic to hop from one circle to the next, making a sort of path.

Inverted Axis Points

Proof that both Regular Axis Points and inverted Axis Points are essential to a NiGHTS path. (anigif)

A full NiGHTS path consists of both regular Axis Points and inverted Axis Points. The difference is that a player travels across a regular Axis Point counterclockwise, while they travel across an inverted Axis Point clockwise. Both of these types of Axis Points are required because both of these two orientations are what make up the turns and twists of a NiGHTS track. One cannot make a turn without having an opposite orientation to accompany it, as shown in the picture to the right.

To make an inverted Axis Point, simply add "16384" to the Axis Point's Angle value. For example, if an Axis Point were to have a 512 radius, the Angle value for an inverted Axis Point would be "16896".

Axis Transfers

An Axis Transfer and its usefulness in a NiGHTS track. (anigif)

Axis Transfers (Thing Type 1701) make the entire path of a NiGHTS map—the multiple Axis Points which connect to each other to make such a path—work. They allow the player to hop from Axis Point to Axis Point in the first place. Without these Axis Transfers, the game would not know when to carry the player from one Axis Point to the next, and so since Axes' paths span up to a semicircle's length, the player would be indefinitely stuck in a semicircle.

Axis Transfers are placed at the points where two circles of their respective Axis Points converge. For each arrangement, there can be only one joining point. It is at this joining point where the Axis Transfer is placed, and the game would be able to transfer the player from one circle to the next, continuing them on through the path.

DEVMODE illustrates how Axis Transfers truly work. A short wall is created that stretches from the Axis Transfer to the Axis it will transfer Super Sonic to. Super Sonic needs to cross this wall to go to the next Axis. Therefore, putting an Axis Transfer not on the track, but within 1 fracunit of the track, will still be registered properly, allowing Axis Transfers to happen at any point on the Axis.

Axis Transfer Lines

An Axis Transfer Line. (anigif)

An Axis Transfer Line (Thing Type 1702) is a special kind of Axis Transfer which transports the player across a straight line. To make a straight line requires placement of two Axis Transfer Line Things; one marks the beginning, and the other marks the end of the line, much like a point-to-point setup.

Using this point-to-point-esque setup, one can easily make straight lines in any angle. It helps, however, if the Axis Transfer Lines are placed so as to allow the player to transition seamlessly from Axis to Axis. For example, to make a 45° line, the Axis Transfer Line Things should be placed midway through the circles, rather than on the 90° points so commonly used to transition from Axis to Axis.

Bitsets

The bitsets of the Axis Points and Axis Transfers are also as equally important as the aforementioned two. Essentially, they tell the game at which order Axis Points come in the path. For example, Axis Point 1 would have a second Axis Point right next to it, joined at a certain point by an Axis Transfer. The player is intended to hop from Axis Point 1 to the second Axis Point that's next to it. Therefore, this second Axis Point would be called "Axis Point 2".

Axis Points and Axis Transfers must be bitset properly for the track to be correctly defined. In Doom Builder or SRB2 Doom Builder, this process is very easy: In the Thing window, there is a "Flags Value" box which affects what bitset the Thing contains. Normally, a Thing would contain bitset "1". This means the Flag number zero is checked, as it is with all Things. Another common bitset is "9", which means the Ambush flag is also tagged. This is very commonly used with rings. Bitsets, however, are handled differently for Axis Points and Axis Transfers.

Bitsetting Axis Points

Bitsetting Axis Points.

For the first Axis Point that is placed, the bitset should be "1". For the second Axis Point that is placed, the bitset should be "2". This pattern continues on to the last Axis Point which defines the track (and as it is placed, should loop back to the first Axis Point in a typical setup).

Bitsetting Axis Transfers

Bitsetting Axis Transfers. (anigif)

Axis Transfers are bitset according to the Axis Point they transfer the player to. For example, an Axis Transfer with bitset "2" would transfer the player to Axis Point 2. Anytime the player touches this Axis Transfer, the transfer would occur to Axis Point 2, even if this Axis Transfer isn't directly connecting to the specified Axis Point.

Typically, an Axis Transfer would be placed on the point where Axis Point 1 and Axis Point 2 join. Logically, as this point is shared by both Axis Points, Super Sonic would touch the Axis Transfer, and then the Axis Transfer, being bitset "2", would then transfer the player to Axis Point 2.

Axis Transfers and looping

Bitsetting a last Axis Transfer. (anigif)

The aforementioned setup continues until the last Axis Point. At the last Axis Point where the track loops, the bitset of the Axis Transfer should be one more than that of the last Axis Point. For example, if the last Axis was bitset "8", the last Axis Transfer should be bitset "9", even if there is no Axis Point bitset by "9". When that occurs, the game assumes that it's the end of the track, so it transfers the player back to the first Axis. This setup was formerly done with the "Axis Transfer LastToFirst" Thing.

Bitsetting Axis Transfer Lines

Bitsetting Axis Transfer Lines. (anigif)

Axis Transfer Lines require a bitsetting pattern of their own. If the Axis before it was bitsetted "1", then the first Axis Transfer Line Thing should be bitset one more than that (in this case, "2"). The second Axis Transfer Line Thing serves not only as an indication of the end of the straight line, but also as a sort of Axis Transfer to the next Axis. It should be bitset one more than the first Axis Transfer Line Thing (in this case, "3"). As it serves as an Axis Transfer of sorts, the next Axis Point should be bitset the same as the second Axis Transfer Line Thing.

It is in this sense that a set of Axis Transfer Lines can, to a degree, be considered their own Axis, since the first Axis Transfer Line Thing has its own bitset number which is not shared with any Axis Point.

Bitsets and map editor differences

Note that bitsets are handled by decimal notations in Doom Builder and SRB2 Doom Builder. In some map editors, however, bitsets are handled by hexadecimal notations. The first Axis Point would be bitset "0x0001", and the second would be bitset "0x0002". When working with hexadecimal, be careful to remember that after "0x0009" come the letters A-F. Axis Point 9 would be bitset "0x0009", and then Axis Point 10 would be bitset "0x000a". This goes through to Axis Point 15, which would be bitset "0x000f", and then at that point, Axis Point 16 would then be bitset "0x0010", as that is after F.

A typical NiGHTS track

A working NiGHTS track that one might see in a map editor.

The way Spring Hill Zone is set up, there is one NiGHTS track which contains wings, which increase a player's score, and rings, required objects that the player must collect to to complete the level. The NiGHTS track starts and ends at the Ideya Drone, where the player transforms into Super Sonic. To complete the level, there also exists an Ideya Capture, which the player must destroy using a certain number of the required rings. After the Ideya Capture, the track itself loops into the beginning, where the player completes the level.

The starting point

The player would typically start at a place where they're near the Ideya Drone; for example, right in front of it. This way, they can very easily access the flying part of NiGHTS, where they can collect rings and wings.

The first half (before the Ideya Capture)

After transforming into Super Sonic, the player is faced with the task of collecting a certain amount of rings so they can destroy the Ideya Capture later in the level. Exactly how many rings are needed is defined by the Ideya Capture's Angle value; if it is "80", the player needs 80 rings to destroy it.

Since this part of the level is before the Ideya Capture and the player has to collect rings to destroy it, the first half of the level may put emphasis on collecting rings, and be designed as such. The second half, the "Bonus Time" section, could put more emphasis on scoring points. Along with having to collect rings, the player can score points by collecting wings as well, and also flying through the various hoops that are in the level.

The Ideya Capture

At the end of the first half is the Ideya Capture. If the player has collected enough rings, they can destroy the Ideya Capture and the "Bonus Time", or the second half, starts. If not, they can collect more rings (at any point in the level, even the second half of the stage).

The second half (after the Ideya Capture)

When the Ideya Capture is destroyed, the "Bonus Time" starts. Here, points scored by grabbing collectibles are multiplied by 2. Whereas the first half would be designed for the player to collect rings, the second half of the level can be primarily designed for the player to get bonus points, since the task of collecting rings and destroying the Ideya Capture is done with, and the player can proceed to score as many points as they can in the Bonus Time.

The ending point

The end of the second half of the level would usually loop back to the beginning point of the track. The player ends the level by touching the Ideya Drone. When touching that point, the game recognizes that the level has ended.

Item placement

Item placement in NiGHTS consists mainly of placing items—namely, wings, rings, hoops, and other items—on the 2D track. Items do not snap to the track, so they must be placed as close as possible on the circles of the track for them to be touched by Super Sonic. On a 32- or 64-fracunit-grid, this will be very hard. However, there are certain ways to accommodate these conditions.

NiGHTS Objectplace

NiGHTS sports a special Object placement mode specifically designed for item placement on the track. This greatly eases the process of (and can even be argued as being essential for) placing items on the track, as one can see where exactly their items are placed. Not only can one easily control how high their items are directly on the track, but they can also set the angle of the hoops, which is difficult to manually set using bitsets. Using NiGHTS Object placement mode, one flies as Super Sonic and directly places items wherever they would like to see them placed.

To enable NiGHTS Object placement mode, run the NiGHTS map and transform into Super Sonic. Once you become Super Sonic, enable Object placement mode by going into the console and typing objectplace on. When this command is entered while the player is playing as NiGHTS Super Sonic, the command enables NiGHTS Object placement mode.

When in NiGHTS Object placement mode, the player can freely move around as Super Sonic. Their energy bar is frozen to allow infinite use of the drill dash. They are also given a set of controls to place items with:

Rotate Camera L Place wing
Rotate Camera R Place ring
Throw Ring Place hoop
Toss Flag Place NiGHTS Bumper
Spin Place Custom Thing
op_mapthingnum <thing #> Specify Thing to place using "Spin" (console command)
writethings Write Things to lump "newthings.lmp" in the SRB2 directory (console command)

A good example to use for the Custom Thing place (Spin) key is the circles of rings and wing logos. Since they don't have placement keys of their own, the Spin key is good for placing Things like the item circles.

Manually placing hoops

Warning icon.png This article or section is badly written and in need of a rewrite. You can help the SRB2 Wiki by fixing this article to meet with the standards described by the Manual of Style.

As easy and convenient as NiGHTS Object placement mode is, one will still essentially have to fine-tune the item placement in their map editor. For example, hoops may be more evenly spaced out using a map editor. The item heights of rows of rings and wings can be adjusted to be the same, or otherwise. To cope with the required precision of placing items on a NiGHTS track, it helps to set the grid to 2 fracunits. This allows greatly mobilized item placement in a map editor.

Vertical hoops

Let's start out by making vertical hoops. These are the easiest type of hoop to make, because the Angle value 64 is valid for all hoops going vertically. Decrease the grid size and zoom in on a curved portion of Axis 2. Place a hoop as close as you can to the track and give it an Angle of 64. However, let's not have the hoop be buried in the ground. Let's make it be a little higher.

Now for hoops, the Z-offset does not determine its height from the floor. The height of a hoop from the floor is actually set in its flag value. So give your hoop a flag value of 256.

Let's create five more hoops at the same point, but give them heights of 320, 384, 448, 512, and 576, respectively.

Farther down Axis 2, let's create another set of vertical hoops with heights 576, 512, 448, 384, 320, and 256, respectively.

Horizontal hoops

Horizontal hoops are a bit harder to make, as they do require a specific Angle depending on their direction. We are going to place an eastward horizontal hoop 128 fracunits east of Axis Transfer Line 3. Let's give it a height of 128, so set its flag value to 128. Since these are horizontal hoops, there is only a yaw value; therefore, we can just use the values listed in Hoop > Example values. So give the hoop an Angle of -16384. Let's create some more. Place five more hoops after the first horizontal hoop, making each hoop 64 fracunits east of the previous one.

X-shaped hoops

You may have seen these hoops in NiGHTS: Journey of Dreams. Creating these types of hoops is the next step in difficulty. Place a hoop 256 fracunits east of the last hoop. We're gonna have this hoop be a little bit higher than that last hoop, so let's give it a flag value of 256. Now, since these hoops are not horizontal, we have to add a pitch value to our yaw value. Since we're still on eastbound track, our yaw value is -16384. We want one hoop going diagonally up and one hoop going diagonally down. Our first pitch value is 32. Add -16384 to 32 to get our Angle value of -16352. Now create another hoop at the same point. This time, our pitch value is 224, since it's going diagonally down. Add -16384 to 224 and we have an Angle of -16160.

Horizontal hoops on curved track

Now that we're going towards Axis 4, let's put some hoops there, too. We're going to keep it simple, so we're going to only make hoops in normal yaw directions. At the place where Axis 4 goes directly northeast, place a hoop. We're going to give this a height of 320 fracunits, so set its flag value to 320. Consulting the list of Example Values, we see that northeast hoops have a yaw value of -8192. Since these are horizontal hoops, no pitch value will be added; therefore, our Angle is -8192. At the point where Axis 4 goes north, place another hoop. Our Angle this time is 0. At the point where Axis 4 goes northwest, place a hoop with an Angle of 8192. Place a hoop on top of Axis Transfer 5—making sure to not accidentally mess the Axis Transfer up—and give it an Angle of 16384.

Since the Axis Loop is unusually small for a NiGHTS track, we'll place only one hoop there. On top of Axis Transfer 6, place a hoop with an angle of -16384. And finally, on Axis 7, place a hoop at the point going northwest. Give it an angle of 8192.

Diagonal hoops

We're going to now learn how to make hoops that go diagonally down/up. But first, let's place another hoop with a flag value of 320 and put it 64 fracunits north of Axis Transfer Line 8. It's going north, so its yaw value is 0. This one's actually going to be horizontal, so its pitch is also 0, making its Angle 0. Create another hoop with the same properties 64 fracunits north of the previous hoop.

Now we are going to make hoops going diagonally down. For the first diagonal hoop, you want the height to be lowered half the distance between it and the previous hoop. We'll put this hoop 128 fracunits north of the previous hoop; therefore, this hoop must be lowered 64 fracunits, making its height be 256. Since it goes north (0) and diagonally down (224), its Angle is 224. We will place the next hoop 128 fracunits north of the previous. This one however, should be lowered the same distance between it and the previous loop; therefore, the flag value is 128. Also give it an Angle of 224.

We're going to start going horizontal again. Place a hoop 128 fracunits north of the previous. Like with the first hoop going diagonal, this hoop is lowered half of 128 fracunits (64). So give it a flag value of 64. And because it's north and horizontal, our Angle is once again 0.

Right angle hoops

We are actually going to leave Axis 9 devoid of objects and start placing things after Axis Transfer Line 10. In a regular map, this would actually be a bad idea, considering the size of Axis 9. First, to get NiGHTS Super Sonic flying a little higher, let's place some vertical hoops. So place a hoop 128 fracunits south of Axis Transfer Line 10. Flag it 192 and give it an Angle of 64. Put seven more hoops with heights of 256, 320, 384, 448, 512, 576, and 640 respectively.

Exactly 192 fracunits down the track we are going to place a hoop going horizontally. Our yaw angle is -32768 since it is going south. (SRB2 Doom Builder will change it to -32767, just ignore that.) Give it a flag value of 640. Now, since the radius of a hoop is 96 fracunits, place another hoop 96 fracunits south of the previous one. It also must go 96 fracunits lower, meaning its flag height must be 544. This one will go vertically, so give it an Angle of 64. We now have a right-angle hoop!

Let's make another one. This time, we'll have it start going down and end up going forward. So place another hoop at the same spot as the last one, but give it a flag value of 384. Remembering that a hoop's radius is 96 fracunits, place another hoop 96 fracunits south of the previous. Lower it 96 fracunits (this makes 288) and give it an Angle of -32768 because it is going horizontally south.

Putting some extra stuff

Now, just for fun, let's fill that line up with something. So, exactly 128 fracunits south of the last hoop, place a horizontal hoop with a height of 288. Now place twenty more hoops, each one being 96 fracunits south of the previous.

We're done now! Test it and see if it works!

SRB2 Doom Builder has a facility where it automatically marks the circles that are made using Axis Points. See Other tips and amenities below. One can make a similar effect in other map editors by creating a circular sector whose radius is equal to that of the Axis Point.

NiGHTS development mode

A screenshot of NiGHTS development mode.

While flying around as Super Sonic, NiGHTS sports a special function when devmode 32 is enabled: it provides a visual cue — a Rail Ring shot, essentially—of where a relevant Axis Transfer is in relationship to the current Axis Point that's being flown on. When it's possible to pass the Rail Ring shot, the player will pass through it and transfer to the next Axis like they normally would, all the while the game says "Transfer!" in the center. The game also prints out the Axis Transfer numbers that belong to the Axis. As shown in the screenshot, "Transfer 1" is the Axis Transfer to the previous Axis, while "Transfer 2" is the one for the next Axis.

These behaviors are useful for two reasons: to know where the Axis Transfers are in the map while playing, and to work out problems that might exist in the NiGHTS track. It also helps to enable god mode when devmode is used with NiGHTS. The player actually gets hurt by the Rail Ring shots, so god would allow for fluid movement through the visual cues.

Multimares

SRB2 also supports a Multimare setup, where there can be multiple sections to a level, like having to destroy four Ideya Captures. This is essentially connecting four separate tracks into one level. The rules described above all act as one unit for each separate track.

Spring Hill Zone has only one track, or "mare" (the word mare can also be referred to as a "round" of play.) There is only one Ideya Capture to destroy. However, there can be multiple mares in one level. NiGHTS into Dreams' actually uses this setup by default; its levels each have four mares, so there are four Ideya Captures to destroy. Four mares are recommended for a multimare setup, as that is the length of a level used in the original NiGHTS. There can be up to 8 mares total.

Setting up multimares

Remember that each single mare must have a certain amount of rings, and an Ideya Capture to make use of those rings. Keeping that in mind, each mare must have these things of its own. The first mare is defined simply by what was described above. To define additional mares, certain steps are involved. Therefore, these rules start at the second mare.

To determine the mare that an Axis Point, Axis Transfer, Axis Transfer Line or Ideya Capture belongs to, multiples of 4096 are added to the Thing type number. For example, an Axis Point for the first mare has the Thing type 1700, while an Axis Point for the second mare has the Thing type 5796 and an Axis Point for the third mare has the Thing type 9892. A list of values to use for each mare is below:

Mare # Axis Point Axis Transfer Axis Transfer Line Ideya Capture
1 1700 1701 1702 1710
2 5796 5797 5798 5806
3 9892 9893 9894 9902
4 13988 13989 13990 13998
5 18084 18085 18086 18094
6 22180 22181 22182 22190
7 26276 26277 26278 26286
8 30372 30373 30374 30382

The map editor configuration files list the Thing types for each mare separately, so you don't need to calculate them yourself and can simply pick them from the Thing type list.

Designing multimares

The starting point of a multimare map. All multimares should start at the same point.

Each mare should be a short, even section of the whole bigger level. If a level were to be as long as Spring Hill Zone is, then consider these rules: Spring Hill's single Ideya Capture requires 80 rings to destroy. If one were to make a multimare level as long as Spring Hill, their mares should be divided equally to total the length of a level like Spring Hill. If a level were to have four mares, each Ideya Capture should require 20 rings to destroy, as 20 × 4 = 80. Since fewer rings are required, the tracks could be shorter than the whole big track of Spring Hill, since there are more.

However one designs their multimares, they all must have their starting points at the same position. A player switches mares by touching the Ideya Drone. It is there that the switch to a certain mare is made. Therefore, each mare's starting point should touch the single Ideya Drone.

In any event, especially at the starting point, one can almost expect Axes to overlap when designing a multimare level, whether intentional or not. The accompanying diagram is also an example of the kind of overlapping one can expect at certain places in a multimare level. It can be considered important to keep close track of your levels, especially if they have multimare designs.

Also, you should design multimare maps so that Super Sonic must touch the Ideya Drone (or the place where it would be touching the floor) when he transfers to the next mare. Otherwise, the player may unknowingly pass over the Ideya Drone if they are high enough.

Other tips and amenities

  • It's perfectly acceptable for Axis Points to deliberately overlap, even in single-mare levels. There is actually a design limitation put in place: Only half of an Axis Point can be used until the game expects an Axis Transfer. If there is no Axis Transfer by the end of the circle half, the player gets stuck. To bypass this limitation—for example, to make the player revolve around a circle completely—one can actually place a second Axis Point at the same position, put an Axis Transfer at the half of the circle, and then bitset it to transfer the player to the second Axis Point that was made.
  • Axis Points don't all have to have a 512 radius, contrary to what the example maps may suggest. They can be of any radius up to, theoretically, 16383 (although an Axis this big is actually handled in a screwy way by the engine). The most common sizes are 512, 1024, and 2048.
An example of "irregular placement", found near the end of Botanic Serenity. Note how the first and third Axes are on the 32 grid, while the second is independent of it. (anigif)
  • Axis Points don't have to join strictly at the 90° points. So long as the circles touch, they can be joined anywhere. Botanic Serenity, and especially its secret counterpart, makes heavy use of this fact and incite "irregular placement" of Axis Points in this manner. However, when doing this, you must be very careful to make sure that the player really will cross the invisible wall created by the Axis Transfer (shown in development mode) to the next Axis, and that the Axes really do touch. This can be verified by zooming into the map very closely, even as much as 2000-4000%. Also, it's best to have the starting Axis and ending Axis of the irregular placement both on the standard grid of the map, as done by the first and third Axes of this arrangement, so placement for the rest of the map will go back to being standard and easy.
  • Interesting effects can be made using the linedef executor special Trigger Linedef Executor (NiGHTS Mare), especially when used in a multimare map. A notable example is being able to use the mare indicator signs (wall textures MAREA-MAREH). Once an Ideya Capture is destroyed, the game assumes to be "in the next mare" (though it actually transfers to the real mare once the Ideya Drone is touched); therefore, it's best if the triggering sector is right at the Ideya Drone, so at that point, the mare signs can change accordingly using other linedef executors.
  • The player cannot drown in NiGHTS levels. This makes big underwater worlds possible. This behavior was actually taken from NiGHTS into Dreams, where NiGHTS, for one mare, flies through an underwater section of Splash Garden, being the dream world that it is.
The almost dream-like environment of Botanic Serenity Zone. Note that the ceiling is solid.
  • NiGHTS is famous for having eye-catching dream environments. Decoration would be a substantial complement to a traditional NiGHTS map. Botanic Serenity heavily emphasized the environment, which was intended to complement the gameplay very significantly.
  • The 3D movement part of the gameplay has its importance in addition to the 2D flying gameplay. Environments should be made with accommodations for those who are trekking in traditional 3D Sonic-style. Springs could be used for this purpose to make areas accessible by Sonic. A good rule of thumb to follow is to allow every part of the environment to be accessible by Sonic, and make it possible (not necessarily easy, but at the very least possible) for Sonic to collect the rings required to destroy the Ideya Capture solely by traveling in 3D gameplay. Spring Hill Zone and Botanic Serenity both allow for this possibility.
  • The 3D movement of Journey of Dreams is an alternative style; maps created like this often have very limited 3D movement. There should be something useful to do in there, though. While the catch-the-Goodle element of Journey of Dreams is unsupported by SRB2, dying as soon as one runs out of time as NiGHTS Super Sonic is supported by giving the Ideya Drone the Ambush flag. In that case, make sure to give the player a higher time limit for each mare.
  • There is a draw-distance limitation in place in NiGHTS maps. This is to limit the amount of sprites that are drawn on the screen at once (which is heavily increased by the hoops, which by themselves consist of many sprites). Because of this, all Things, such as hoops, wings, rings, and even flowers and other decorations, cannot be seen from far away. It is for this reason that one should not rely on far-away visual cues very heavily. Designing scenery should also take this limitation into account.
  • SRB2 Doom Builder has a helper which aids with placing Axis Points for making tracks, doing so by outlining the circles made by Axis Points (as actually shown in the screenshots above). It's disabled by default. To enable this helper, toggle the option in the Configuration by going to "Tools" > "Configuration...", and then in the Configuration window, click on the "Interface" tab, and then check the checkbox labeled, "Outline all Things in Things mode". Save the Configuration. When the Things mode is enabled, the circle outlines will appear by their respective Axis Points.

Samples

Sample 1

Example WAD: example_nights-path.wad
  • This example WAD can be played in Single Player mode. It uses MAP01, replacing Greenflower Zone Act 1.
  • An example of a regular NiGHTS path, showcasing the path itself, as well as bitset patterns to follow. Seen in A typical NiGHTS track.

Sample 2

Example WAD: example_nights-multimare.wad
  • This example WAD can be played in Single Player mode. It uses MAP01, replacing Greenflower Zone Act 1.
  • A simple example of a multimare NiGHTS map. It primarily showcases bitset patterns to use. Note: Actual multimare NiGHTS maps shouldn't be laid out like this. Multimares can be (and are encouraged to be) asymmetrical and more spread out than what this map shows.

See also