• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Gym Design Challenge: Submissions

  • 1,309
    Posts
    12
    Years
    • She/Her
    • Seen Nov 24, 2023
    Gym Design Challenge
    Submissions

    Post your theme name, credits and demo link to submit your entry for the Gym Design Challenge here in this thread!

     
    Last edited:
    [PokeCommunity.com] Gym Design Challenge: Submissions


    Theme: Flying-type.
    Credits: None.
    Download: View attachment pokeemerald.bps.zip (it's a zipped BPS file because PC doesn't support BPS right now, only IPS which is no good for decomps).

    It's on a mountain. Not ideal for a gym, but drawing all the tiles so that they worked inside was a bit too much, and because of the way the fans work I really need a lot of vertical levels. My original design would have looked better as a gym, but it was too tricky to make work.

    Spoiler: Design Process

    My original idea for the fans was that they'd blow you up in whatever direction you're facing, and allow you to cross them like a bridge if they're turned on and filling the gap between two high points. I started sketching a puzzle that works like that:
    [PokeCommunity.com] Gym Design Challenge: Submissions

    <A> means a switch that toggles A fans, and (A) is an A fan.
    But I gave up on this idea after realizing that it's hard to make the player have to follow a particular path. And also that I'd have to draw a ton of new tiles, which is way beyond my skill right now!

    So I simplified! Instead of the direction you're facing now it's always up, that means I could reuse the Mach Bike mudslides and mountain tiles. It also made it easier to design the puzzle elements, because there are far fewer cases to worry about. I sketched some set-ups that would force the player to make the switches be in a particular state:
    [PokeCommunity.com] Gym Design Challenge: Submissions

    And then tried to design a puzzle that made use of those contraptions, but as you'll see it suffered from being relatively square, which doesn't make sense for a mountain:
    [PokeCommunity.com] Gym Design Challenge: Submissions


    I started again! This time I made sure to design from the top down so that it would roughly fit into a pyramid that would be suitable for a mountain and settled on this:
    [PokeCommunity.com] Gym Design Challenge: Submissions


    I'd still like to explore other possibilities for fans going in other directions. I think vertical fans are more interesting than horizontal ones, because the latter is basically just those spin tiles from the Rocket Game Corner.

    Spoiler: Code Notes

    Nothing particularly interesting, fiddled with New Game to skip the intro text and warp to warp 0 instead of the center of the map, and disabled the initial rumbling of the truck:
    Code:
    diff --git a/src/main_menu.c b/src/main_menu.c
    index 61a60a8e7..4326346de 100644
    --- a/src/main_menu.c
    +++ b/src/main_menu.c
    @@ -1062,7 +1062,9 @@ static void Task_HandleMainMenuAPressed(u8 taskId)
                 default:
                     gPlttBufferUnfaded[0] = RGB_BLACK;
                     gPlttBufferFaded[0] = RGB_BLACK;
    -                gTasks[taskId].func = Task_NewGameBirchSpeech_Init;
    +                NewGameBirchSpeech_SetDefaultPlayerName(Random() % 20);
    +                SetMainCallback2(CB2_NewGame);
    +                DestroyTask(taskId);
                     break;
                 case ACTION_CONTINUE:
                     gPlttBufferUnfaded[0] = RGB_BLACK;
    diff --git a/src/new_game.c b/src/new_game.c
    index 464da6414..c644e6ae1 100644
    --- a/src/new_game.c
    +++ b/src/new_game.c
    @@ -128,7 +128,7 @@ static void ClearFrontierRecord(void)
     
     static void WarpToTruck(void)
     {
    -    SetWarpDestination(MAP_GROUP(INSIDE_OF_TRUCK), MAP_NUM(INSIDE_OF_TRUCK), -1
    , -1, -1);
    +    SetWarpDestination(MAP_GROUP(INSIDE_OF_TRUCK), MAP_NUM(INSIDE_OF_TRUCK), 0,
     0, 0);
         WarpIntoMap();
     }
    
    diff --git a/src/overworld.c b/src/overworld.c
    index e11dbbfda..02e19e5fe 100644
    --- a/src/overworld.c
    +++ b/src/overworld.c
    @@ -1544,7 +1544,7 @@ void CB2_NewGame(void)
         PlayTimeCounter_Start();
         ScriptContext1_Init();
         ScriptContext2_Disable();
    -    gFieldCallback = ExecuteTruckSequence;
    +    gFieldCallback = NULL;
         gFieldCallback2 = NULL;
         do_load_map_stuff_loop(&gMain.state);
         SetFieldVBlankCallback();

    Besides that, the only trick is reading the flags in the animation code to decide whether to animate the fans, and which position the switches should be in. I doubt either of those is the "right" way to do it, but it was convenient for me.
     

    Attachments

    • [PokeCommunity.com] Gym Design Challenge: Submissions
      pokeemerald.png
      6.2 KB · Views: 118
    Last edited:
    I was going to make another submission, but unfortunately I ran out of time! However, I can show you the mechanic that I coded:

    The idea is that the gym is set in a swamp, and each step you take in the mud brings you closer to sinking into the cave below! If you step out of the swamp the sinking is reset. So the puzzle would be working out how to get between the islands of solid group in a sea of mud.

    Also, if anyone is interested, I wrote some dialogue. I can only apologize for how badly I've butchered the accents.
    Spoiler: Dialogue

    Code:
    PetalburgCity_Text_GymGuide:
            .string "Howdy, CHAMPION-bound {PLAYER}!\n"
            .string "TAUPE's GYM LEADER TYLER built his\l"
            .string "gym out on this swamp to raise his\l"
            .string "POKéMON as the Lord intended.\p"
            .string "Careful though, y'all ain't no 'bray\n"
            .string "an'll sink u'neath the mud to the\l"
            .string "cave below if you dilly-dally!$"
    
    PetalburgCity_Text_Trainer1_Pre:
            .string "TYLER's grandmammy was a true master,\n"
            .string "she founded the whole LOUSIAN POKéMON\l"
            .string "league. That's why all o' the LEADERs\l"
            .string "in LOUISA are related!$"
    
    PetalburgCity_Text_Trainer1_Post:
            .string "Hoo-whee! You done beat me faster 'an\n"
            .string "PONTYA out an open barn. Sure you ain't\l"
            .string "TYLER's cousin or somethin'?$"
    
    PetalburgCity_Text_Trainer2_Pre:
            .string "I moved to LOUISA from UNOVA last year\n"
            .string "but still can't understand a word the\l"
            .string "locals say!$"
    
    PetalburgCity_Text_Trainer2_Post:
            .string "I thought it would be easy to find a\n"
            .string "farm boy to become a YOUNG COUPLE with\l"
            .string "but they all already have girlfriends!\p"
            .string "I try not to think about how that works.$"
    
    PetalburgCity_Text_Tyler_Pre1:
            .string "I'm TYLER! TAUPE's GYM LEADER, n' king\n"
            .string "of GUMBO! Y'all came at a good time!\l"
            .string "I've just finished a pot. TAUPE-folk\l"
            .string "are known for their hospitality.\p"
            .string "Here!$"
    
    PetalburgCity_Text_Tyler_Pre2:
            .string "There ain't none better! I won first\n"
            .string "place at the last three fairs, n' will\l"
            .string "be goin' over ta them city folk in GALAR\l"
            .string "'fore the fall ta win the CHAMPIONSHIP.\p"
            .string "...\p"
            .string "But ya'll didn't come all this way to\n"
            .string "hear me yap. I been fixin' for a rumble\l"
            .string "e'er since milkin' the 'TANKs.$"
    
    PetalburgCity_Text_Tyler_Post1:
            .string "Well, shucks! Y'all have a bond deeper\n"
            .string "than this here swamp. It ain't a ribbon\l"
            .string "at the county fair, but please take the\l"
            .string "BOWL BADGE.\p"
            .string "An' here's a little somethin' from me.$"
    
    PetalburgCity_Text_Tyler_Post2:
            .string "That's right, GUMBO! We ain't believers\n"
            .string "in fancy TECHNICAL MACHINES out here\l"
            .string "in TAUPE TOWN. We like life simple n'\l"
            .string "natural. Come back 'nytime ya hear,\l"
            .string "ma pot is always on.$"
     
    Back
    Top