• Do not use Works in Progress as a way of avoiding the releases system! Works in Progress can be used for sharing early betas and for getting suggestions for improvement. Releases of finished content are not allowed in this forum! If you would like to submit a finished addon, click here for instructions on how to do so.
  • We've updated our submissions guidelines to address AI generated content, take a look at them here.

WIP 1.09.4 Adventure Mode Stage

CesarOG922

The story... is true.
Something that I always found interesting about 1.09.4 was its "Adventure Mode", a gameplay mode one could make stages with which changed some mechanics of the game, as well as adding new things like the Light Speed Dash, to be more like the Sonic Adventure titles. Only one stage ever used it, and it was an extremely short Metal Harbor-esque stage that only existed to demonstrate the gameplay mode's features. I kind of wondered what it would be like if SRB2 2.2 had an actual full stage in this style, since this mode ended up being removed later on and the mods I played in 1.09.4 that featured it were kinda rough. So when I learned "MIDIMan" made a port of this gameplay mode to 2.2 , I decided to make a map using it, with some modifications.

With this stage I'm kind of trying to get a Sonic Adventure 1/DX type of level design, very linear, but with somewhat open sections you can do cool skips in. The length of the stage should be about 2 minutes for an average run, though I'm only like 40% there.

This is my first post here that has stuff like images on it so maybe when I first post this it will look a bit strange, but here's some images of what I'm working on:

srb20001.png

(This intro area looks kinda bland, I'll probably try to make it look nicer later.)

srb20002.png

(Homing Attack Tutorial.)

srb20003.png

(Another Homing Attack area but with a mid-air light speed dash at the end, this is the first kinda open area.)

srb20004.png

(More stuff.

Here's a somewhat long thing about the Water:

The water and the Thok Barrier water are supposed to be seamless in appearance, though I've disable the Horizon effects for now because the level isn't done. Sadly, one of the visual effects with the water, having the Thok Barrier and regular water overlap by placing a transparent Sky-textured FOF in the in-map water, looks broken in OpenGL, and the Horizon effect thing doesn't look right either, so I guess once you guys get to play this, make sure you're using Software Rendering. Also, the cloud reflections. Do they need to be a bit more visible or are they fine as is? I've asked myself that a few times.)

srb20005.png

(Image of a bottom path if you mess up a Homing Chain.)

srb20006.png

(Another lower path.)

srb20007.png

(A cool temple with 3 different ways of getting through, a Homing Chain, pillar platforming, and springs from a Knuckle's path)

GIF:
srb20004.gif


Maybe it's weird for my first custom level to be something which does not play like regular SRB2, but it seems to be turning out okay.
 
Last edited:
Maybe it's weird for my first custom level to be something which does not play like regular SRB2, but it seems to be turning out okay.
This is probably the single most impressive first custom level I've ever seen.
 
I didn't mention this previously, but I made a custom Lua ability for Tails that replaces his flight with this triple flight burst thing. Its very rough, it takes like 2 frames to recharge after touching the ground for some reason instead of being instant like with most other characters, and the animation bugs out sometimes, but it works.

srb20005.gif

Here's the code in case anyone knows how to make this better maybe. I used that tutorial on the Wiki as a base to start off, and I don't know if that was a good idea:
Flight Code:
freeslot("S_PLAY_FBURST3")
states[S_PLAY_FBURST3] = {
    sprite = SPR_PLAY,
    frame = SPR2_FLY,
    tics = 1,
    action = nil,
    var1 = 0,
    var2 = 0,
    nextstate = S_PLAY_FBURST3
}

freeslot("S_PLAY_FBURST2")
states[S_PLAY_FBURST2] = {
    sprite = SPR_PLAY,
    frame = SPR2_FLY,
    tics = 1,
    action = nil,
    var1 = 0,
    var2 = 0,
    nextstate = S_PLAY_FBURST2
}

freeslot("S_PLAY_FBURST")
states[S_PLAY_FBURST] = {
    sprite = SPR_PLAY,
    frame = SPR2_FLY,
    tics = 1,
    action = nil,
    var1 = 0,
    var2 = 0,
    nextstate = S_PLAY_FBURST
}

freeslot("S_PLAY_FDIVE")
states[S_PLAY_FDIVE] = {
    sprite = SPR_PLAY,
    frame = SPR2_FLY,
    tics = 1,
    action = nil,
    var1 = 0,
    var2 = 0,
    nextstate = S_PLAY_FDIVE
}

// Code for the actual ability itself.

addHook("AbilitySpecial", function(p)
    if p.mo.skin == "tails" then
        local flightboost = 12
        if p.pflags & PF_THOKKED then
            return true
            end
        if not (p.pflags & PF_THOKKED) then
            if p.mo.eflags & MFE_UNDERWATER then
                flightboost = $*3/5
                end
            P_SetObjectMomZ(p.mo, flightboost*FRACUNIT, false)
            if p.mo.state == S_PLAY_JUMP then
                p.mo.state = S_PLAY_FBURST
                S_StartSound(p.mo, sfx_putput, p)
                p.pflags = $ & ~ PF_SPINNING
                return
                end
            if p.mo.state == S_PLAY_FBURST then
                p.mo.state = S_PLAY_FBURST2
                S_StartSound(p.mo, sfx_putput, p)
                p.pflags = $ & ~ PF_SPINNING
                return
                end
            if p.mo.state == S_PLAY_FBURST2 then
                p.mo.state = S_PLAY_FBURST3
                S_StartSound(p.mo, sfx_pudpud, p)
                p.pflags = $ & ~ PF_SPINNING
                p.pflags = $ | PF_THOKKED
                end
            end
        end
    end)
    
// Code for flight cancel.

addHook("SpinSpecial", function(p)
    if p.mo.state == S_PLAY_FBURST or p.mo.state == S_PLAY_FBURST2 and not(p.pflags & PF_THOKKED) then
        P_SetObjectMomZ(p.mo, -12*FRACUNIT, true)
        p.mo.state = S_PLAY_FDIVE
        p.pflags = $ | PF_THOKKED
        end
    end)
    
// Attempting to make it so that when the player lands, the ability resets.

addHook("PlayerThink", function(p)
    if p.mo and p.mo.valid then
        if p.mo.skin == "tails" then
            if P_IsObjectOnGround(p.mo) then
                p.pflags = $ & ~ PF_THOKKED
                -- print ("touched ground")
                end
            
// Tries to make animations and sounds play correctly during or from the ability.
            
            if p.pflags & PF_STARTJUMP and tailsflightcap == 0 then
                p.mo.state = S_PLAY_JUMP
                end
            if P_IsObjectOnGround(p.mo) and p.mo.state != S_PLAY_ROLL and p.pflags & PF_SPINNING and not (p.pflags & PF_STARTDASH) then
                p.mo.state = S_PLAY_ROLL
                S_StartSound(p.mo, sfx_spin, p)
                if p.pflags & PF_JUMPED then
                    S_StopSound(p.mo)
                    end
                if p.mo.state != S_PLAY_SPINDASH and p.pflags & PF_STARTDASH then
                    p.mo.state = S_PLAY_SPINDASH
                    end
                end
            if not P_IsObjectOnGround(p.mo) and p.pflags & PF_THOKKED and p.mo.state != S_PLAY_FDIVE then
                p.mo.state = S_PLAY_FLY_TIRED
                end
            if not P_IsObjectOnGround(p.mo) and p.mo.state == S_PLAY_FDIVE then
                if p.speed < 55*FRACUNIT then
                    P_SpawnThokMobj(p)
                    end
                end
            if p.mo.eflags & MFE_SPRUNG and p.mo.state != S_PLAY_SPRING then
                p.mo.state = S_PLAY_SPRING
                end
            if P_IsObjectOnGround(p.mo) and p.mo.state != S_PLAY_ROLL and p.pflags & PF_SPINNING and not (p.pflags & PF_STARTDASH) then
                p.mo.state = S_PLAY_ROLL
                end
            end
        end
    end)


Anyway, a small update:

srb20008.png


I came up with a new temple design here. The unfinished area in the background ended up getting removed later on though because it didn't mesh well with the section before it. I might plop this temple somewhere else I guess, as it's kind of just been moved into a small test room for now, for when I have somewhere to put it.

As of now I've kinda been stuck trying to figure out what to put after the other "cool" temple in the last post.

srb20011.png

In the interior, there are springs that send you upwards onto the roof of the temple.

srb20016.png

And on the roof, I have no idea what to put up here honestly. I do know I want to make sure the level doesn't become too vertical because I don't want the player to be able to see my ugly Thok-Barriering as easily, and also I don't like setting up FOFs and stuff too much. I guess maybe this is something replaying Sonic Adventure 1 & 2 could help with, so I can get ideas? (When I read that to myself, I realized how stupid it kinda is to make a level based on a type of level design without having recently interacted with that level design. Live and learn I guess...)



The following images are kind of unrelated to the stage itself since I was just messing with stuff in that test room I mentioned earlier, but I experimented a bit with drawing the lighting the geometry would cast on the ground as differently lit sectors next to said geometry:
srb20009.png

(That's what the infinite water effect is supposed to look like btw, also custom floor textures from my backyard.)

srb20010.png

Sonic Adventure DX kind of does something like this in parts of Emerald Coast and Station Square to compensate a bit for the removal of Lantern Engine lighting. It looks kinda cool, but I don't think I'd want to torture myself by actually implementing this manually drawn lighting onto the whole level.

Also I just realized something that would affect gameplay when it comes to that infinite ocean effect. Because the water visually looks as if it stretches infinitely, if the player is running on water as Metal Sonic, they can't tell easily whether they're on in-level water or if they're going to crash headfirst into an invisible barrier that looks like more water, like some messed up Wile E. Coyote trap. Maybe I could add little floating things in the water that outline where that barrier is? I've made a custom object before (the trees), so maybe that shouldn't be too hard unless I want them to bob in the water I guess. Maybe I do want them to bob.



This was probably a kinda incoherent bunch of nothing to bring up here, but I don't really know how often updates should be made. I'll probably have something better to show later.
 
Last edited:
This was probably a kinda incoherent bunch of nothing to bring up here, but I don't really know how often updates should be made. I'll probably have something better to show later.
Focus on posting things because you are happy with it, not because you feel an obligation to. This isn't Discord or Reddit, your thread is not going to be completely buried because you did not post for a few days.

This project meanwhile has all of the hallmarks of something that will be very interesting to watch, as it is very unusual for someone to go full steam into custom assets as well as Lua scripting almost out of the gate.
 
I figured out what to put after that temple:

srb20023.png

A big Light Dash trail that leads you into a narrow area which should (hopefully) bring the player to a lower vertical height naturally. I might change this into some platforming on floating things then a light speed dash though, because right now, that's a lot of free rings.

srb20021.png

Like in Metal Harbor or Green Forest, if there are no rings to light dash across, like if you're playing in multiplayer and your friend takes them all, there's a series of springs down below to bring you to that ledge on the other side.

srb20024.png

There's also this little area, which is another path to reach the other side of that light dash area. It's slower than the springs but there's an open bit of ocean if you go left past the big light gray cliff thing. It might be a good shortcut for Metal Sonic.


In the last post, I mentioned how I wanted some floating things in the open ocean areas to help let the player know how much space they actually have to run around on the water, showing them where all the invisible walls are. I actually made them now, though I don't really feel that confident in the design of them:

BUOY.png


srb20012.png


srb20006.gif


They're these weird little Eggman buoys with hats signifying that boats cannot go past them (I gave up trying to figure out what the symbol for preventing people from swimming past was for buoys after 2 google searches). They bob up and down too, though I did it in a kind of un-optimized way by just copying and pasting the sprite 3 times at different heights for each of the animation frames instead of trying to program their motion in Lua (Oh no! 3.76 wasted kilobytes!). I guess that doesn't really matter that much though, SRB2 itself has like 11 individual sprites featuring both the post and the little ball thing on top together for the star post's rotation animation.

Anyway, the design itself. I think I did okay with it when it comes to it existing separate from the level, but I feel like it's a bit too detailed and doesn't look great when far away, too many colors which look kind of ugly when combined with the mostly natural grays, browns, and greens of the stage. Also, the fact that they have an Eggman design could probably make the player think they are hazards like Bomb Spheres or something, and it might make them try to jump over instead of seeing them as a warning thing for the invisible wall they're heading towards. Maybe I'm underestimating the average Sonic player's intelligence with that thought though.


I also found this which is both really useless and really amusing
(Possible epilepsy stuff here. If you have those kinds of problems, don't click. It's not worth it.

srb20007.gif



Sorry it's been like a week since I was last here, but now I'm no longer stuck so stuff might update more frequently. Unless I get distracted with trying to make the music for this stage...
 
Sorry it's been like a week since I was last here, but now I'm no longer stuck so stuff might update more frequently. Unless I get distracted with trying to make the music for this stage...
So... Yeah it's been like over a month, I'm sorry.
Again.

I haven't made much progress on the level, with only a few extra bits being added during that time. The reason why is because I have to do school stuff now. I have to do other things with my life other than playing Sonic Robo Blast 2, unfortunately.

:dramahog:

I will still be working on this, but things are gonna be pretty slow now. I don't have much to show but here's what's new:


srb20025.png

I changed the water at the "cool" temple to not be ocean, so if you fall in, there's stuff there now, you don't die anymore.

srb20027.png

I added this small area after the first more open area to punish (time-wise) the player for passively letting an "automatic" sequence play out as Knuckles, though this more so serves as an introduction to Bomb Spheres.

srb20028.png

Here's a new optional lower area which is located a bit after the areas I showed last post.

srb20029.png

A narrow pathway which leads the player downwards from that light dash section.

srb20026.png

A very unfinished look at the next part of the level I'm trying to work on. This whole section looks pretty different now from behind, but I don't really want to put an image of it yet because there's missing textures and stuff. Also, isn't it fun when SRB2 (or I guess Zen Node) just decides to stretch collision into places where it isn't supposed to go?


The music I mentioned up there hasn't been made yet, which, aside from having to focus on school and other more important things now, is due to the fact that I have no confidence in being able to make something that can sound even remotely comparable to Sonic Adventure's or SRB2's soundtracks.

I guess I'll admit something which also probably has made stuff pretty slow, I have zero actual level design plans or concepts for this. Basically everything within the level, aside from the level's visual theme and length goal, has just been made up as I went along. I probably wouldn't get stuck as often while working on this if I had a plan to reference. I should make one later.

I don't really know when I'll make another update (I'm not gonna state an amount of time because I might miss it again), but I hope I can finish enough stuff for an actually big update here.
 
So, I have returned (after like, an entire pregnancy's worth of time) and have started to add more to the level again. I've also replaced some of the sound effects with the ones from Sonic Adventure 2, which will hopefully make things feel more "Adventurey". It's the summer, so I kind of have a large amount of free time on my hands now, which should hopefully be enough to finish this thing that's taken way too long. :threat:

Below are a few images showing what I've been working on:

srb20030.png

This is that one unfinished section I showed off in the last post. It's mostly complete, the Emerald Coast-esque wooden structures guiding you around to the bottom of a hilly area you have to scale up, with a riskier Homing Attack + Light Dash shortcut you can take to skip it.

srb20031.png

I also have a new Knuckles section, a secret small cave filled with Bomb Spheres. Reach the end of it to earn an extend monitor.

srb20033.png

More "sunken treasures" have been added into various corners of lakes and ponds throughout the level.

I'm not really all that sure when I'll make a new update to this, but I'm hoping to get more done on this level soon. I'm also debating on whether to rename the level to something else or not. Ground Island is kind of a boring title, it's just two earthy things combined with each other... It's also kind of a lie because there are multiple islands. Leave suggestions if you have any I guess! :wonderful:
 
So this is a bit of a smaller update, but I have made some changes I've wanted to do for a bit to the visuals. Below are some examples of the new visual things I've tried doing.

srb20037.png

srb20038.png

srb20039.png
The beginning has gotten a new look, the ruins seen later in the stage are more prominent here now and the area generally feels a bit larger with the added decorative hills giving a sense that this level is a larger place than just the path you're running on. It still is kinda empty, but it's progress I guess.

srb20040.png
A visual example of the addition of ruins kind of giving the level a more complete feeling. The broken down temple the player sees as they first enter the canyon, along with the previously existing waterfall give a better first impression I feel. Speaking of water...

srb20042.png
I redid the water for the ocean to kind of work slightly better with OpenGL, with an updated reflection of the larger clouds as well. It still has problems, with the water looking weird if you get close to sea level, but it's more seamless now with the Horizon Effect. (Also yeah the sky texture is more bearable to look at now)

srb20020.gif
Pre-existing areas have also been somewhat redesigned a little, like I added an actual wall here to make going to the other paths more meaningful. Other examples mostly just involve slight enemy, ring, and power-up position changes, as well as adding small cracks to the ruins structures in other areas for a more ancient, aged look. Also, here's how that water reflection effect looks on non-ocean water. I think it's neat.

Also, I kind of got distracted and made an entire new game mechanic kind of in Lua, though I don't think I'll actually apply it to this stage. If you guys show interest, I might consider having it released as a seperate thing. I feel like with all the other changes I'm making, adding this would kind of dilute the mod from its main goal, being essentially a "what-if" 2.2 full stage equivalent of 1.09.4's Adventure Example.

I essentially made a somewhat clunky implementation of Sonic Advance 2's trick system. After you hit a spring, you can press SPIN to perform a trick that sends you forward in the direction you're facing, or, you can press JUMP to perform a trick that sends you upwards.

There are sort of three categories of characters, which affects the properties of how far the tricks can send the player:
  • "Speed" characters (Sonic / Metal Sonic) are kind of in the middle, with a decently quick forward trick and a somewhat high upward trick.
  • "Flight" characters (Tails / Fang) have a much higher upward trick, with their forward trick being pretty weak.
  • "Power" characters (Knuckles / Amy Rose) have a very far and quick forward trick, but have a very weak upward trick.
srb20014.gif
srb20016.gif

Sonic demonstrates the trick system in the testing area.​

It's kinda fun to mess with, though some animations are kinda weird, like Tails' tails disappear when he does tricks and I have no idea how to fix it. Also I'm not sure if my balance with how the tricks work is good, since I kind of haven't really played Sonic Advance 2. Also if I ever do release this as a separate add-on I have no idea how to accommodate custom characters aside from I guess listing all of their skin names in the functions for the tricks (Like over a hundred "or" statements)? I also found another add-on that kinda does the same thing not long before I finished this so releasing it might be kind of redundant?

Anyway, back to the actual thing this thread is about...

I don't really have much else to add other than that I guess I'm kind of open to suggestions if you have any? I guess I kind of feel as if, I know this is my first mod here, the level design might kind of suck? Like, some areas are kind of just there and most likely to be skipped by most, rings and items are kind of more plentiful then they probably should be, and I don't really know how to place enemies that well, like where they're supposed to be and what type they should be. As far as I know, no one's really utilized "MIDIMan"'s Adventure Mode port for a stage, and Adventure Mode itself was removed from SRB2 due to negative reception, so I'm a bit worried about how people will recieve this, but I guess I'm not gonna know how people feel until the people can actually play this. If you have tips or recommendations from what you see, it's okay to let me know.

Anyway, I'll be back soon with more stuff! :wonderful:
 
Idk really how to word things whenever I make an update to this, but I have made some progress I suppose. I guess I'll get straight to the additions and tweaks and whatever.

srb20051.png
srb20059.png

srb20060.png

srb20061.png
New secret caverns have been added for Knuckles and Amy, leading to different paths and emblems. (If you're curious, the emblems work similarly to how they did in Final Demo here.)

srb20056.png

srb20072.png
The new main path section is also being worked on. It's kind of not finalized, but the idea is that once you go past the arch thing, you'll have to platform upwards while above a waterfall that'll throw you into the ocean. Also, that temple I got rid of a while ago finally got a spot to be used in as well, being kind of incorporated into an alternate path which connects to the other small alternate route those Buzzes above the ocean are leading to. Speaking of Buzzes...

srb20068.png

srb20025.gif
I have used the powers of SOC to create a new form of Buzz with electric power! It's basically just kind of like those GUN Beetles in Sonic Adventure 2, it just kinda stays in place and shields itself in electricity every few seconds... It helps in making homing attack stuff more timing focused though.
srb20065.png
Also, not much else to add with this one, just the new water palette. I think it looks okay despite being kind of purple on some surfaces.

I've done some more Lua stuff because I like torturing myself I have a lot of issues in general with how 2 of the characters control, and also kind of wanted to improve how they feel when using Adventure Mode's camera and player control set up. Let's start with the least bad one I dealt with, then Fang.

srb20028.gif

Knuckles now no longer does that stupid landing thing when he falls from gliding, nor does he do that stupid slide when he's gliding against the ground. Instead, now, for the former, he'll just keep going like from any other fall, and for the latter, he just immediately goes into running while also retaining whatever momentum the glide previously had. As a way to transition from gliding on the ground to running, Knuckles also now has this little rolling animation, which I think is neat.

srb20029.gif

srb20032.gif

Fang is now tolerable to use. Fang can now whip out his gun and quickly shoot stuff while moving on the ground and jumping, not losing any speed in the process. His bullets also have a cool new afterimage effect. When on the ground at top speed, Fang can also do a somersault which allows him to pass under small gaps. It's not like rolling, it's kind of like the somersault in Sonic Adventure 2. This somersault also, if you make your inputs really quickly, allows you to really quickly redirect your speed to another direction. If you're running one direction, you can somersault to another direction for an instant turn, then immediately jump to get moving at near top running speed, as staying in a somersault for too long will make you lose speed. Bouncing is also faster, as that animation Fang does when landing has now been reduced to 1 frame.

For both of these characters, I kinda have to figure out how to make it so exiting their jumping abilities doesn't cut your speed in half, at the very least for Fang anyway. If you have advice, let me know.


So, that's all I have for now. I'll probably have more later, so see you then I suppose.

srb20024.gif
 

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

Back
Top