- What permissions do you give others to modify and/or maintain your submission?
- Modify: YES - Maintain: YES - I give permission for my entire submission to be modified by others or used in their own work. I give permission for my entire submission to be maintained by others as well.
Greetings, I'm ArtoMeister, and I've been making various characters for Dr. Robotnik's Ring Racers ever since Kart Krew allowed us to tinker with the game and submit them. Today I would like to show you folks the process of making and implementing racers into the game itself since I know there are many who don't even know where to start.
I know it's a bit overwhelming at first, but you'll get through this and succeed.
Just to be clear, this is a guide on how to implement the racers into the game, not a guide on drawing. If you're looking for feedback and guides on how to improve your pixel art, I would suggest you look elsewhere.
One more thing, this guide contains spoilers for Dr. Robotnik's Ring Racers, including some unlocks that are found late into the game. If you're ok with this, continue reading.
It's important to list the things we need to make this add-on of yours possible.
List of essentials:
Before drawing our racer, we must first determine if our character is symmetrical or asymmetrical. Figuring this out will determine which Kartmaker templates we will use and how much work you will have to do. Go to Kartmaker and find the folder that best corresponds to your racer.
Once you've figured out what your racer will be and which template to use, you can start drawing your racer onto the kart itself. How you go about that will be up to you. Again, this is not a drawing tutorial, it's a Ring Racers tutorial.
When drawing a racer, it is recommended that the head and the body are separated into their own layers in order to easily reuse the head for when the racer is drifting or looking back.
Another thing, Ring Racers uses a limit of 256 colors as seen below. Going outside of these values will force the game to apply the nearest value it can find to that foreign color. Please attempt to draw within these colors.
Here's the full list of things a racer needs in order to be considered finished:
Here is a custom racer I did for example. He has everything mentioned above. (Except for the talking graphic)
After you've drawn your racer, they should be given a visible paint region on them, using the shades of green as seen below. These shades of green are used to paint your racer and allow them to appear in the various colors the game offers. You are not forced to use all the shades on your racer, just that these 16 are your maximum amount.
The paint region should be visible from all angles, on the XTRA Graphics, Signpost, and Joke Signpost.
Death Sprites are allowed to have exceptions for not being paintable. (Gutbuster is a good example of this exception, as his ring is entirely gray.)
Additional stuff who's paint region should also be visible.
XTRA Graphics on top and the two Signpost on the bottom.
After you have finished with the drawings, you will need 11 audio files for your racer, using the Ogg format. However, if your character is mute or you don't have enough, just having the gloat voice line is fine, as it is the only required voice line.
Each voice line has a specific purpose:
Now that you have your sprites and voice lines, it is time to take a look at the properties file. This is the main text that Kartmaker uses to export your racer into a wad file, which is one of the file formats Ring Racers uses.
Opening the text file will give the information for labeling our racer. My modded racer, Bijou, will used as an example.
Here is what Bijou's properties file looks like, let's examine and explain each one.
Name is simply how the file itself will be referred to by the game. Think of it as the Racer's ID. These IDs can also be seen in the "rivals" section.
Realname is how the racer's name is displayed when finishing a round. If your racer's name has a space, do not put it. Instead, put an underscore. The underscore itself will not appear in-game.
Prefix is used for the audio files and will be automatically added by Kartmaker when exporting them. The prefix itself should be 4 letters long. No more, no less. An attempt to diverge from this amount will result in the audio file not playing.
Bijou's prefix here is BJKS on each of the voicelines.
The racer's stats will determine where it is placed on the character select and their play style.
Ring Racers' stats work by trading one thing for another. Both of these stats range between 1 to 9.
The first number is speed and acceleration.
Increasing the first number will give you more speed, but you accelerate less. So your top speed is high, but if your momentum is broken, it'll take a while before you reach that top speed again. Acceleration will also determine how fast your spindash is.
If you lower your speed, you will get more acceleration. You will recover much easier, however your top speed is not as high as before.
Notice how Tails' spindash comes out faster. However, he is much slower at overall speed than Sonic.
The second number is weight and handling.
If you decrease the second number, you will be lightweight. This means you can turn very easily around tight corners, but everyone can push you with ease.
Increasing the second number will make you heavier, with you being the one who's pushing people. However, your steering becomes stiffer and turns are much harder.
To accommodate for your lack of turning, your drift sparks come out much faster when compared to a lighter racer.
Notice how Sonic, who is lightweight, can adjust himself very easily during these tight turns, where as Metal Sonic struggles to adjust himself due to his poor steering and is forced to brake at times. However, Metal Sonic's drift boost also come out faster in comparison to Sonic.
So that's what those two numbers are and what they mean. Let us move on now.
Startcolor will have the ID of any color in the Palette. It will then count 15 more values of color that will be given the responsibility of acting as the paintable colors. 96 is the default as that is where all the previously mentioned greens are located. The Startcolor should not be altered unless there is a good reason to do so.
Pref Color, or Preferred Color is the default color for your racer, it is the color that will appear when selecting the "Default" color in the palette and when your racer is selected as a CPU within the race itself.
Bijou's Preferred Color is Silver.
You can see she is using it when on the Default Color and when she's a Computer Player.
Lastly, we have Rivals.
Rivals are a unique feature of Grand Prix mode. You can choose between three different characters to become your rivals. This is where the name I mentioned earlier comes into play. Type down three racer names in these spaces. You can only do a maximum of three, the game doesn't count anything above that limit. You also can't make yourself a rival.
When entering any cup in the Grand Prix, the game will always give you those three characters you chose. If there are fewer than three Rivals, the game randomly chooses a character to fill in the slot.
Bijou has these three as her rivals, so they will always appear in the same order in the Grand Prix regardless of the Cup chosen.
After you finish your first race in the Grand Prix, the game will pick between the three characters and give one of them the rival status, as displayed by the game. Rival characters are given special privileges compared to all other CPUs. They have much more aggressive rubber banding and usually roll much more powerful items. Modded characters can also be rivals however you have to load them first before entering the race. Otherwise, the game will simply pick a random racer.
Everything else mentioned in the properties file should be ignored and not modified in any way.
If you have done everything, create a folder that contains the sprites, all the audio files, and the properties file. Drag this folder into Kartmaker and wait for it to give you the wad file. If the program closes it means something is wrong with the racer's assets.
Check for:
A) The properties file itself not being named "properties"
B) The image containing the sprites not being named "sprites"
C) Any spaces in the names found within the properties file, replace them with an underscore
D) The size of your "sprites" image being smaller or larger than it should be normally.
It should look something likes this
Alright if everything goes well, put this wad file into your add-on folder and open the game to make sure everything works.
Now, although you have your racer, we are not finished just yet. This is a wad file, but most people tend to convert these into pk3 files, which are more compressed.
Open SLADE so that we can change the format.
First, open your wad file within SLADE, then make a new zip archive.
Next create two folders, one called "Sounds" and another called "Skins"
Within the Skins folder will be the sprites of your racer, so make a new folder with the name of the racer and both the S_SKIN limp and all the sprite lumps in there.
Over in the Sounds folder, make a new folder inside also with the racer's name, then put all the voice lines in there.
Your setup should be something like this
Within the racer's skin folder, their S_SKIN lump should always be located at the top of the other sprites, not below them. Avoid any buttons in SLADE that automatically organize your lumps. If the S_SKIN lump is placed below the sprites, the racer will have issues loading them into the game.
Where the S_SKIN lump should be located
If the voice lines are too low, you can use any audio-editing program to adjust the volume of the voice lines and put them back in the Sound folder again. There is no specific range I would recommend, simply mess around and see if the volume is similar to the base roster's volume.
Next, we have to go back to our Skins folder and find the "skin" text file. This is where a lot of the stuff we did in the properties file can be found. Now within SLADE, we can apply special flags to your character. None of these are required, it is more so dependent on what kind of racer you've made.
The first flag is "Machine". When characters remain underwater for a short period, they make a sound when gasping for air.
However, if you are a machine, the sound emitted is different. This can apply to things such as robots, skeletons, or any other creature that doesn't need to breathe for their own lore reasons.
Metal Sonic has the "Machine" Flag where as Sonic does not, listen for the difference between the sounds when they exit the water.
The next flag is "Badnik".
When a racer explodes with the Badnik flag, the explosion has an additional smoke effect, the death sprite is increased in size, and the stretching effect applied on death is removed.
This is mainly used for Sonic's Badniks. However, you can apply this to any character that dies and drops something on death.
The best example of the differences is between Gutbuster and Ring the Racer. Both of these use the exact same ring sprite but notice the size difference between the two as well as the sounds and visuals, this is because Gutbuster has the "Badnik" flag whilst Ring does not.
Same ring sprite, different sizes
The last of the three flags is "Ironman". This is the only flag that has gameplay changes when applied.
When a racer has the Ironman flag, they will transform into a random character when starting a new lap, taking damage in Battle mode, or hitting a UFO Catcher. They will adopt the stats of the racer they transformed into. The only characters you cannot shape-shift into are other racers with the Ironman Flag. However, you can transform into modded racers if you have them loaded.
Heavy Magician with a roster that has custom racers loaded. She transforms into one of them, that being Enderman.
Heavy Magician transforming into another racer after finishing the first lap.
Heavy Magician on a Sealed Star Map, transforming on every hit with the UFO Catcher.
Heavy Magician in Battle/Capsule Mode, transforming upon taking damage.
Their true form is revealed when the racer takes damage, but they quickly transform back.
Whatever character you shapeshift into will have its icon will be rotated 180 degrees and the skin color you chose. You do not copy other voices, you will always have the voice of the Ironman Racer.
The three flags as seen in SLADE
One final thing I should mention is the High Res Scale. This is more of a value than a flag and it determines how large or small you want your characters to be displayed in the game. The default value is 1 and can be changed to anything higher or lower depending on your racer. This is mainly used for any characters that are either high resolution or have a more retro style.
Let me reiterate that all these four things are not necessary, it just depends on what kind of racer you've made.
A recommendation I would have if you're making multiple characters is to put them in separate folders to organize everything. So each racer's sprite would have its own folder in "Skins" as well as its own folder in "Sounds".
After everything is finally finished, attempt to save the zip archive by clicking the "save as" button. Please be sure to follow the SRB2 Forum's Filename Conventions when creating your racer/pack. At the end of the file name type ".pk3".
So, that's it, your first racer is finished. Congratulations! You've made your first Ring Racers add-on!
Now you may be wondering, how do I share this wonderful creation of mine with the world?
Well, the two main options are the SRB2 Forums, and Gamebanana, with the former being the more popular option.
Go to the SRB2 Forums page, which you're reading this on so there you go, and tap the "register" button to make a new account.
Within the forums is the "Addons & More" Section, and within that is Dr. Robotnik's Ring Racers.
Within those subcategories are the characters, which is where you will post your racer.
You'll find a button that says "Add New Content". It will take you to a page where you will create the showcase of your add-on. Start tinkering around with the description and create a little summary of your character. Or go overboard with the detail, choice is yours.
Once you've submitted your character to the forums, it will be in the approval process, in which a judge from the forums will review your add-on and make sure it follows the Submission Guidelines. If your add-on is rejected, you will most likely receive a message from the judge telling you why they rejected it and what you can do to fix it.
Be patient as the approval process is not automated, each submission is reviewed by real people who have busy lives, so it could take as long as a few hours or up to three weeks until your add-on is approved for submission and available to the public.
And that's the end of this guide! Hope you folks enjoyed reading it. And remember, you're welcomed in releases!
I know it's a bit overwhelming at first, but you'll get through this and succeed.
Just to be clear, this is a guide on how to implement the racers into the game, not a guide on drawing. If you're looking for feedback and guides on how to improve your pixel art, I would suggest you look elsewhere.
One more thing, this guide contains spoilers for Dr. Robotnik's Ring Racers, including some unlocks that are found late into the game. If you're ok with this, continue reading.
It's important to list the things we need to make this add-on of yours possible.
List of essentials:
- Kartmaker, which is a program found within the Ring Racers folders
- Any drawing program for drawing your racer
- Any audio editing program to modify the volume and implement an echo on one of the voice lines
- SLADE, which is a DOOM Modding tool that we'll use to modify our racer with ease
Before drawing our racer, we must first determine if our character is symmetrical or asymmetrical. Figuring this out will determine which Kartmaker templates we will use and how much work you will have to do. Go to Kartmaker and find the folder that best corresponds to your racer.
Once you've figured out what your racer will be and which template to use, you can start drawing your racer onto the kart itself. How you go about that will be up to you. Again, this is not a drawing tutorial, it's a Ring Racers tutorial.
When drawing a racer, it is recommended that the head and the body are separated into their own layers in order to easily reuse the head for when the racer is drifting or looking back.
Another thing, Ring Racers uses a limit of 256 colors as seen below. Going outside of these values will force the game to apply the nearest value it can find to that foreign color. Please attempt to draw within these colors.
Here's the full list of things a racer needs in order to be considered finished:
- A full turn-around of the racer
- Altered versions of the racer's turn-around for when they turn their head and get hit
- 3 Graphics for your racer (Two of which showcase the Racer's face and one which is the Minimap Icon)
- A Signpost for winning first place
- Death Sprite/Animation for when the racer explodes
- A joke version of the Signpost (Optional, as it is only seen using a password)
- A HUD element for when they talk (Optional, the base game maps never need this)
Here is a custom racer I did for example. He has everything mentioned above. (Except for the talking graphic)
After you've drawn your racer, they should be given a visible paint region on them, using the shades of green as seen below. These shades of green are used to paint your racer and allow them to appear in the various colors the game offers. You are not forced to use all the shades on your racer, just that these 16 are your maximum amount.
The paint region should be visible from all angles, on the XTRA Graphics, Signpost, and Joke Signpost.
Death Sprites are allowed to have exceptions for not being paintable. (Gutbuster is a good example of this exception, as his ring is entirely gray.)
Additional stuff who's paint region should also be visible.
XTRA Graphics on top and the two Signpost on the bottom.
After you have finished with the drawings, you will need 11 audio files for your racer, using the Ogg format. However, if your character is mute or you don't have enough, just having the gloat voice line is fine, as it is the only required voice line.
Each voice line has a specific purpose:
- Attack 1 -> When the racer uses an offensive item, will also be used when selecting the racer
- Attack 2 -> An alternative voice line for attack
- Boost 1 -> When the racer uses any of the sneakers
- Boost 2 -> An alternative voice line for boost
- Gloat -> When the racer uses a power item, use the audio program to apply an echo of 0.25 on delay time and 0.25 on delay factor.
- Hitconfirm -> When the racer successfully hits another racer
- Hurt 1 -> Whenever the racer is hit by anything
- Hurt 2 -> An alternative voice line for hurt
- Lose -> If the racer receives a rank of D or lower
- Slow -> When the racer overtakes another racer
- Win -> If the racer receives a rank of C or higher. Also used in Battle Mode when countering Insta-whips and scoring a KO.
Now that you have your sprites and voice lines, it is time to take a look at the properties file. This is the main text that Kartmaker uses to export your racer into a wad file, which is one of the file formats Ring Racers uses.
Opening the text file will give the information for labeling our racer. My modded racer, Bijou, will used as an example.
Here is what Bijou's properties file looks like, let's examine and explain each one.
Name is simply how the file itself will be referred to by the game. Think of it as the Racer's ID. These IDs can also be seen in the "rivals" section.
Realname is how the racer's name is displayed when finishing a round. If your racer's name has a space, do not put it. Instead, put an underscore. The underscore itself will not appear in-game.
Prefix is used for the audio files and will be automatically added by Kartmaker when exporting them. The prefix itself should be 4 letters long. No more, no less. An attempt to diverge from this amount will result in the audio file not playing.
Bijou's prefix here is BJKS on each of the voicelines.
The racer's stats will determine where it is placed on the character select and their play style.
Ring Racers' stats work by trading one thing for another. Both of these stats range between 1 to 9.
The first number is speed and acceleration.
Increasing the first number will give you more speed, but you accelerate less. So your top speed is high, but if your momentum is broken, it'll take a while before you reach that top speed again. Acceleration will also determine how fast your spindash is.
If you lower your speed, you will get more acceleration. You will recover much easier, however your top speed is not as high as before.
Notice how Tails' spindash comes out faster. However, he is much slower at overall speed than Sonic.
The second number is weight and handling.
If you decrease the second number, you will be lightweight. This means you can turn very easily around tight corners, but everyone can push you with ease.
Increasing the second number will make you heavier, with you being the one who's pushing people. However, your steering becomes stiffer and turns are much harder.
To accommodate for your lack of turning, your drift sparks come out much faster when compared to a lighter racer.
Notice how Sonic, who is lightweight, can adjust himself very easily during these tight turns, where as Metal Sonic struggles to adjust himself due to his poor steering and is forced to brake at times. However, Metal Sonic's drift boost also come out faster in comparison to Sonic.
So that's what those two numbers are and what they mean. Let us move on now.
Startcolor will have the ID of any color in the Palette. It will then count 15 more values of color that will be given the responsibility of acting as the paintable colors. 96 is the default as that is where all the previously mentioned greens are located. The Startcolor should not be altered unless there is a good reason to do so.
Pref Color, or Preferred Color is the default color for your racer, it is the color that will appear when selecting the "Default" color in the palette and when your racer is selected as a CPU within the race itself.
Bijou's Preferred Color is Silver.
You can see she is using it when on the Default Color and when she's a Computer Player.
Lastly, we have Rivals.
Rivals are a unique feature of Grand Prix mode. You can choose between three different characters to become your rivals. This is where the name I mentioned earlier comes into play. Type down three racer names in these spaces. You can only do a maximum of three, the game doesn't count anything above that limit. You also can't make yourself a rival.
When entering any cup in the Grand Prix, the game will always give you those three characters you chose. If there are fewer than three Rivals, the game randomly chooses a character to fill in the slot.
Bijou has these three as her rivals, so they will always appear in the same order in the Grand Prix regardless of the Cup chosen.
After you finish your first race in the Grand Prix, the game will pick between the three characters and give one of them the rival status, as displayed by the game. Rival characters are given special privileges compared to all other CPUs. They have much more aggressive rubber banding and usually roll much more powerful items. Modded characters can also be rivals however you have to load them first before entering the race. Otherwise, the game will simply pick a random racer.
Everything else mentioned in the properties file should be ignored and not modified in any way.
If you have done everything, create a folder that contains the sprites, all the audio files, and the properties file. Drag this folder into Kartmaker and wait for it to give you the wad file. If the program closes it means something is wrong with the racer's assets.
Check for:
A) The properties file itself not being named "properties"
B) The image containing the sprites not being named "sprites"
C) Any spaces in the names found within the properties file, replace them with an underscore
D) The size of your "sprites" image being smaller or larger than it should be normally.
It should look something likes this
Alright if everything goes well, put this wad file into your add-on folder and open the game to make sure everything works.
Now, although you have your racer, we are not finished just yet. This is a wad file, but most people tend to convert these into pk3 files, which are more compressed.
Open SLADE so that we can change the format.
First, open your wad file within SLADE, then make a new zip archive.
Next create two folders, one called "Sounds" and another called "Skins"
Within the Skins folder will be the sprites of your racer, so make a new folder with the name of the racer and both the S_SKIN limp and all the sprite lumps in there.
Over in the Sounds folder, make a new folder inside also with the racer's name, then put all the voice lines in there.
Your setup should be something like this
Where the S_SKIN lump should be located
If the voice lines are too low, you can use any audio-editing program to adjust the volume of the voice lines and put them back in the Sound folder again. There is no specific range I would recommend, simply mess around and see if the volume is similar to the base roster's volume.
Next, we have to go back to our Skins folder and find the "skin" text file. This is where a lot of the stuff we did in the properties file can be found. Now within SLADE, we can apply special flags to your character. None of these are required, it is more so dependent on what kind of racer you've made.
The first flag is "Machine". When characters remain underwater for a short period, they make a sound when gasping for air.
However, if you are a machine, the sound emitted is different. This can apply to things such as robots, skeletons, or any other creature that doesn't need to breathe for their own lore reasons.
Metal Sonic has the "Machine" Flag where as Sonic does not, listen for the difference between the sounds when they exit the water.
The next flag is "Badnik".
When a racer explodes with the Badnik flag, the explosion has an additional smoke effect, the death sprite is increased in size, and the stretching effect applied on death is removed.
This is mainly used for Sonic's Badniks. However, you can apply this to any character that dies and drops something on death.
The best example of the differences is between Gutbuster and Ring the Racer. Both of these use the exact same ring sprite but notice the size difference between the two as well as the sounds and visuals, this is because Gutbuster has the "Badnik" flag whilst Ring does not.
Same ring sprite, different sizes
The last of the three flags is "Ironman". This is the only flag that has gameplay changes when applied.
When a racer has the Ironman flag, they will transform into a random character when starting a new lap, taking damage in Battle mode, or hitting a UFO Catcher. They will adopt the stats of the racer they transformed into. The only characters you cannot shape-shift into are other racers with the Ironman Flag. However, you can transform into modded racers if you have them loaded.
Heavy Magician with a roster that has custom racers loaded. She transforms into one of them, that being Enderman.
Heavy Magician transforming into another racer after finishing the first lap.
Heavy Magician on a Sealed Star Map, transforming on every hit with the UFO Catcher.
Heavy Magician in Battle/Capsule Mode, transforming upon taking damage.
Their true form is revealed when the racer takes damage, but they quickly transform back.
Whatever character you shapeshift into will have its icon will be rotated 180 degrees and the skin color you chose. You do not copy other voices, you will always have the voice of the Ironman Racer.
The three flags as seen in SLADE
One final thing I should mention is the High Res Scale. This is more of a value than a flag and it determines how large or small you want your characters to be displayed in the game. The default value is 1 and can be changed to anything higher or lower depending on your racer. This is mainly used for any characters that are either high resolution or have a more retro style.
Let me reiterate that all these four things are not necessary, it just depends on what kind of racer you've made.
A recommendation I would have if you're making multiple characters is to put them in separate folders to organize everything. So each racer's sprite would have its own folder in "Skins" as well as its own folder in "Sounds".
After everything is finally finished, attempt to save the zip archive by clicking the "save as" button. Please be sure to follow the SRB2 Forum's Filename Conventions when creating your racer/pack. At the end of the file name type ".pk3".
So, that's it, your first racer is finished. Congratulations! You've made your first Ring Racers add-on!
Now you may be wondering, how do I share this wonderful creation of mine with the world?
Well, the two main options are the SRB2 Forums, and Gamebanana, with the former being the more popular option.
Go to the SRB2 Forums page, which you're reading this on so there you go, and tap the "register" button to make a new account.
Within the forums is the "Addons & More" Section, and within that is Dr. Robotnik's Ring Racers.
Within those subcategories are the characters, which is where you will post your racer.
You'll find a button that says "Add New Content". It will take you to a page where you will create the showcase of your add-on. Start tinkering around with the description and create a little summary of your character. Or go overboard with the detail, choice is yours.
Once you've submitted your character to the forums, it will be in the approval process, in which a judge from the forums will review your add-on and make sure it follows the Submission Guidelines. If your add-on is rejected, you will most likely receive a message from the judge telling you why they rejected it and what you can do to fix it.
Be patient as the approval process is not automated, each submission is reviewed by real people who have busy lives, so it could take as long as a few hours or up to three weeks until your add-on is approved for submission and available to the public.
And that's the end of this guide! Hope you folks enjoyed reading it. And remember, you're welcomed in releases!
______________________
===SPECIAL THANKS===
pikaspoop and casual koopa, who provided additional information and feedback for this guide.
SharkGuy, for allowing me to use his screenshot in the S_SKIN example.
===SPECIAL THANKS===
pikaspoop and casual koopa, who provided additional information and feedback for this guide.
SharkGuy, for allowing me to use his screenshot in the S_SKIN example.