Official Level Design Contest Rules & Deadlines

Status
Not open for further replies.

SeventhSentinel

STJr Team Representative
Administrator
Sonic Team Junior
Kart Krew™️
Judge
The Official Level Design Contest is back! For those not in the know, the Official Level Design Contest (OLDC for short) is a contest held multiple times a year, accepting maps of all kinds, from all users, to compete against one another. During the voting process, voters are encouraged to leave feedback on every level they have played, which makes the contest a very effective way to get constructive criticism on your levels, allowing you to figure out what you might need to do in order to improve.

Basically, if you want to get into level designing, if you're already an experienced designer, or if you're somewhere inbetween, join the contest! Show your work, get enough eyes on it, let people give you ideas and feedback, and you might even win the coveted title of Contest Winner!

Please read over all the rules carefully, even if you were around during previous contests. Some rules have been changed, mostly for more leniency, and you may be happy to see some of the changes, especially if you're a fan of creating custom content!

ENTRY RULES:

  1. Make sure that the level works properly, that it is normally accessible, and that it does not interfere with other levels. This means that:
    • Single Player levels need to be completable, and show up as the first level when starting a new game.
    • Multiplayer levels need to have enough player starts, and need to be accessible via level select.
    • Existing resources (textures, objects, sounds, music, etc.) can not be overwritten.
    • Any scripts present in your level must not interfere with other levels. If your level contains significant gameplay changes, please ensure that they are contained solely within your level slot using a MapLoad hook. In this case, please notify us in your submission post.
  2. Previously released levels are not allowed. Private testing is allowed (and encouraged!), but the level must not have been released on the MB or elsewhere.
  3. The level has to be your own work. This means that ports, remakes and edits of existing levels are not allowed, unless the original level is yours. In such a case, the level should be sufficiently different from your original level.
  4. Aside from the Single Player division, the following Multiplayer divisions are present in the contest:
    • Circuit
    • Match (with support for SRB2 Battle's Control Point and Diamond in the Rough gametypes)
    • Capture the Flag (with support for Battle CTF)
    • SRB2 Battle's Arena
  5. Each participant can submit one level to the Single Player division, and up to three levels to each Multiplayer division. Collaborations are allowed, but fall under the same entry limits.
  6. Custom assets and scripts are allowed! Custom sound and music is also allowed. This sound and music must be under 3 MB total (the map itself and other assets are not subject to this limit). This filesize limit is shared between all of your Multiplayer entries.

To submit your level, create a new thread in the Contest Submissions subforum. If you submit multiple entries, each one requires its own thread. Entries are due twice per year, at 23:59 UTC (18:59 EST), which means the deadlines are as follows:
  • OLDC Round 1: June 1st
  • OLDC Round 2: December 1st
After each deadline, all entries are gathered into two files. One contains the Single Player entries in a small hub world, with a map voting system courtesy of the SUGOI series. The other contains the Multiplayer entries, reorganized into a map rotation per division. Within one week, these files will be compiled and uploaded for the public to play through, which kicks off the voting period of two weeks. During this time, a discussion thread for the contest will also be opened. Once the voting period is over, the votes will be counted and the results will be made public as soon as possible.

VOTING RULES:
  1. To vote, make a thread in the Contest Voting subforum. It will be private during the voting period, and will be made public alongside the results.
  2. The actual voting is done by ranking all entries of a division, from favorite to least favorite. You don't have to vote on all divisions!
  3. Participants voting on a division they have entered are required to rank their own entry first.
  4. When providing comments or reviews, remember to keep it constructive!

Now get out there and get mapping! Don't be afraid to show off your progress. Good luck and have fun!
 
Last edited:

SeventhSentinel

STJr Team Representative
Administrator
Sonic Team Junior
Kart Krew™️
Judge
How to restrict code to your map:
Keep in mind that this is only relevant if your code affects the behavior of the player, the camera, geometry or of objects that exist in other maps; for custom objects that exist only in your map, this method won't make a difference.

1. Create a custom level header parameter

This is done by opening your level header and inserting a parameter with a name of your choice followed by the prefix Lua., for example:
Sonic Object Configuration (SOC):
Lua.MyMomentumMod = true
Keep in mind you can give any value to this parameter, since it's going to be parsed by the game as a string and not as a number or boolean. Just make sure the name is unique and no one else is going to use it on their map by accident. This will create a setting that's exclusive to your map.

2. Check for the parameter in your hooks

At the head of every function called by hooks that control your custom behavior, check for the parameter's existence. It will be accessible as a mapheader_t variable written in full lowercase. For example,
Lua:
local function MyMomentumFunction(p)
  if not mapheaderinfo[gamemap].mymomentummod then return end --  if the map doesn't have parameter MyMomentumMod, abort the function

  -- rest of your code
end

addHook("PlayerThink", MyMomentumFunction)
Or in the abridged format,
Lua:
addHook("PlayerThink", function(p)
  if not mapheaderinfo[gamemap].mymomentummod then return end --  if the map doesn't have parameter MyMomentumMod, abort the function

  -- rest of your code
end)
Assuming this parameter is not defined in other maps, it will read as nil for them, and so your code is safe to only execute in yours.
 
Status
Not open for further replies.

Who is viewing this thread (Total: 1, Members: 0, Guests: 1)

Top