SRB2 Message Board

SRB2 Message Board (
-   SRB2 Discussion (
-   -   Suggestions (

SSNTails 09-11-2005 07:52 PM

Welcome to the SRB2 Suggestions topic. Before you post, there are a few things you should know:

1. We know this is a really large topic spanning over 6 years of posts, but try searching to see if your suggestion has been posted before and see if anything comes up. You don't want to beat a dead horse, after all.
2. Please keep discussion to a minimum. If something is going to involve a detailed and long discussion longer than 30-40 posts, please post in a new topic in SRB2 Discussion.
3. Keep discussion of other's ideas civil. You knew this already, though.

Remember that there is absolutely no guarantee that we'll use anything posted in here. We do read this topic for general opinions of what SRB2 lacks, of course, but no promises.

JTE 09-11-2005 11:28 PM

Some stuff in ZDoom that I think would pwn in SRB2:
  • Textures
    In ZDoom, you can use any textures, flats, sprites, internal graphics, or whatever on any surface (flats as wall textures and whatnot). Srb2 has duplicates for wall textures of some flats, but that's bad because you get confuzed between the names (For example, people may need to use GFZROCK on the floor and not know the name of the flat)... This may be hard to program, but it'd definately help.
    IMGZ patches found between TX_START and TX_END are assumed to be single-patch textures by the same name and are automaticly added and usable. Which means you don't need to use PNAMES and TEXTURE1 every time you wanna make another single-patch texture, making things a lot simpler and easier (and in ZDoom's case, you could also use this as an easier way to make large floor textures). This would be great in SRB2, as it'd allow us to use custom textures in contests, because we don't have to worry about merging everyone's PNAMES and TEXTURE1 lumps and people replacing GFZROCK with their own textures and such.
  • ACS scripts
    ACS scripts are map-based scripts originally implemented in HeXen, which is C/C++ style and simply uses a bunch of predefined functions to do things. This is the BEHAVIOR lump in ZDoom and Hexen maps, and it's VERY powerful. WadAuthor and DoomBuilder support the editing and compilation of such scripts, but we'd need to convert the maps to Hexen format and somehow make all the line specials into Hexen's action specials and make a new version of the ACS compiler to support them. That is a hella lot of work, I won't make you think I have some magic solution to make it easier, but the power... The power is worth it. To me at least. ACS scripts can do everything linedef executors can do (except for the script-executing linedef exec, which I told graue to make in my quest for such power as this) and then some. You can change line and sector specials mid-game, change the camera to a camera mobj placed somewhere in the map beforehand (of which there are three types: Security cameras, aiming cameras, and moving cameras), spawn objects mid-game at spawnpoints placed beforehand (Anything from enemys to cameras to scenery can be spawned at will), spawn objects at X/Y/Z locations (Which means you can spawn an object directly above a player if you want), change object tags and action specials, execute the effects of certain action specials (You can make a script that damages you, thrusts you upwards, AND spawns an object above you to catch you and apply that to a sector if you want), change lighting effects, fade colors, and just about anything else I've ever wanted to do. (Heck, I made a game of Battleship with it, I doubt you'll have trouble finding a new gametype to make using it or enemy AI programs (See DECORATE below) or anything else programming-wise that you need...)
    This is like DeHackEd/SOC, except it creates things from scratch. It was originally made simply to create new static and animated scenery objects (hence the name), but has grown to be able to create all things mobj. Sure, we have empty slots for the SOCing now, but this system was designed for the most flexible ease of use possible. You can inherit propertys from existing objects to make a new edited version, you can create a new object from scratch and define all its states as well (so no looking for obscure numbers in the source code) and tell it to use any action pointer or action special available (so you could have an enemy that attacks by using ACS scripts and opens a door when it dies. Imagine having an enemy that can cause the floor to collapse into a lava pit when it's mostly dead and sprout wings!)... It would be more useful with ACS scripts then without, as that's one of the few things it can do that DeHackEd and SOC editing can't. The fan community has added to it the ability to create new weapons, and I suppose if you're going through all the trouble of making DECORATE, why not add that too? Who wouldn't mind somebody coming along one day and making a new kind of overpowered weapon ring, eh?

That's all for now. If I remember anything I'd forgotten later, I'll be back... I doubt any of this will even be considered for Srb2, though, other then TX_START and TX_END. Of course, if I could just get ZDoom Srb2 off the ground, we'd already have all this, as well as slopes, mirrors, horizon lines, skyboxes, and all those other fun ZDoom things. ;) We'll see... We'll see...

Darkhaven3 09-20-2005 04:55 AM

1.1 needs some more useful console commands:

eval <operator> <numbers or variables>

The purpose of this command is to compute simple or complex math using the prefix notation rather than the infix notation; for example, if I wanted to compute 2+2, I would type:

eval + 2 2

Or if I wanted to compute 2+(3*2):

eval + 2 * 3 2

Now, if I wanted to compute 1+3 something and store it in a variable, I'd do this:

eval = AliasedVariable + 1 3

It's pretty basic and it can't possibly be that hard to implement.

comp <output_type> <operator> <numbers or variables>

This command follows the same concept as "eval" except it works more like a hex calculator. For example, if I wanted to compute 2+2 and I wanted the output to be equal to one byte, I would do this:

comp byte + 2 2

Or, if I wanted to compute 255+255 and I wanted the output to be equal to one word (or two bytes to those not familiar with hacker-lingo), I would type this:

comp word + 255 255

And the output would be FFFF.


The purpose of this command is to force any commands being processed by the console to stop immediately.

dumpmap <filename>

This is especially useful if one wishes to get a dump of a map exactly as it is at the time of dumping; for example, if the player picked up some items and killed one or two enemies, then the map would be modified as such. Maybe not very useful to the newbie player, but could be very useful for developers.

dumpvis <filename>

Useful for dumping what SECTOR numbers, how many THINGs, how many SEGs and how many NODEs are in the player's view at the time of dumping; also, if you guys use this, be sure to include a dump of the player's coordinates on the BLOCKMAP and maybe his offset in REJECT (in hex?) in the exported log file.

dumpthing <thing#> <filename>

Takes the corresponding THING # as it was placed in an editor and dumps it's coordinates and flags in hex into whatever <filename> is. Also more of a developer thing than much else.

envtest <line#> <filename>

Retests the player's polar coordinates against the line set in <line#> and exports the player's distance from that line in X, Y, and "Z" into <filename>. More for developers.

Shadow Hog 09-20-2005 06:41 PM

Let me save us all some time with that, SSN.


Originally Posted by Darkhaven3
eval <operator> <numbers or variables>



Originally Posted by Darkhaven3
comp <output_type> <operator> <numbers or variables>

Not in ZDOOM, but variation of eval, so I dunno if it'd be that hard to derive.


Originally Posted by Darkhaven3



Originally Posted by Darkhaven3
dumpmap <filename>

In ZDOOM... I think. Dunno if it (or the similar "dumpthings" command) keeps Things or ditches them, but we already have a "writeobjects" command for objectplace, so just use that.


Originally Posted by Darkhaven3
dumpvis <filename>

Not in ZDOOM.


Originally Posted by Darkhaven3
dumpthing <thing#> <filename>

Might be. The command's there, but I'm not sure if the actions are the same.


Originally Posted by Darkhaven3
envtest <line#> <filename>

Not in ZDOOM.

JTE 09-23-2005 03:02 AM

I would prefer we ditch the whole "PLAY" sprite system and go with what I made for SRB2RP. Instead of having PLAYA0, PLAYB0, PLAYC0, etc. for Sonic and whatever you want for custom characters, make it use STNDA0, STNDB0, STNDC0, etc. for standing, WALKA0, WALKB0, WALKC0, etc. for walking, and all that... Then you can have an adjustable amount of frames in any animation, so you can have a 26 frame jumping animation or a 1 frame walking animation or whatever. I programmed it myself and it worked fine, though I failed to get netgames to work with it, which is most of the reason I dropped SRB2RP. I spent days working on it just to break netgames. But if you could get it to work in netgames... You'd never have to worry about breaking character wads again. Because anything you add on would be optional, and you could program in what to replace animations with when one has 0 frames in it. But we wouldn't need to have 180 sprites in every character wad anymore. Thus we would have a lot more people willing to make a lot more character wads. Crappy Sonic 3 ripoffs would spring up from every direction, it'd be great.

Some kind of type-on or fade in/out text options for CECHO would add quite a lot to it. And possibly the ability to use a custom font whom you supply the first few letters of or something. And instead of making the words appear in the exact center of the screen, centering them around 30% of the screen from the top would make it look MUCH better. (Hexen uses 37.5%, though ZDoom only uses that as a default) Yes, I want almost all things from ZDoom to be in SRB2 one way or another, since I can't make ZDoom SRB2.

Also, if you could make the Knuckles bots let you jump on them when they're climbi- ... Oh wait, bots are my job, sorry.

JTE 10-03-2005 01:27 PM

Somehow magically make joystick binds seperate from keyboard binds so you don't have joystick controls overriding keyboard controls X.x
And make it so that you can have the same control assigned to 2 joysticks. So you can have one joystick turn and move forward and backward, while the other joystick turns and looks up and down. I don't really like strafing by joystick in SRB2, though analog control is very wonderful...

hotdog003 10-03-2005 01:38 PM

This may sound like the stuff from page 5, but it's different. Trust me...

fork exp cmdtru cmdfls

It may look rather funky at first glance, but it's actually quite simple. Here's what it would look like in C:

if (exp) {
} else {

exp: Expression. Thing to evaluate, such as 1+1=2
cmdtru: Aliased command to execute if the expression is true
cmdfls: Aliased command to execute if the expression is false

Consider the following:

alias "ctru" "echo 5 + 5 < 20! Yeah!"
alias "cfls" "echo 5 + 5 > 20. How strange!"
fork 5+5<20 ctru cfls

Or this:

alias "ctru" "echo Get rings!!"
alias "cfls"
fork rings>5 ctur cfls

The first one should always print out '5 + 5 < 20! Yeah!', and the seccond one will tell you to get more rings if you have less then five. Very usefull.

shadowstar 10-03-2005 04:32 PM

We also need variables such as $rings, $lives, $score <playernum>, $color <playernum>, $skin <playernum>, $name <playernum>, $playernum <name> $time, $prm1 (the first parameter that makes the equation correct if it is), $prm2 (the second one), $x, $y, $z, $lastthingsaid, $currentlevel... Consider the possibilitys.
You could do something like this:

Fork $skin 1,2,3,4,5,6,7,8,9,10 = tails,knuckles, swichtosonic nothing
alias switchtosonic "changeskin $prm1 sonic"
alias nothing "echo No players were found playing as tails or knuckles."

Also, there should be another gametype called special, which lets you make up your own gametypes. These commands would be useful for it.

Changeskin <playernum> (host only)
Changecolor <playernum> (host only)
Teleport <playernum> <x> <y> <z> (host only)
Gravity <playernum> (host only) ---- Seperate gravity for each player
Globalgravity (host only) -- Works like 1.09 gravity change.
Changescore <playernum> (host only)
Createobject <thingnum> <x distance from you> <y distance from you> <z distance from you> (x and y work by direction)
Deleteobject <thingnum> <x distance from you> <y distance from you>
<z distance from you>
Allowplayertocreateobjects <playernum> (host only)Allowplayertodeleteobjects <playernum> (host only)
Createobjectatplayer <playernum> <x distance away from player> <y distance away from player> <z distance away from player>

Shadow Hog 10-09-2005 04:17 PM

It would seem somebody deleted this suggestion in one of the purges, so I'm resuggesting it - Quake-style bindings, like +forward, -back, +jump, +mlook, et cetera. Mostly for use in scripts, really.

Eryn 10-24-2005 09:27 PM

A 3rd-person crosshair would be nice.

Spazzo 10-28-2005 08:50 PM

What i've always hated is that Team match (by color)doesnt show whos on your team. How about you do something like you did in CTF, and have the team you be on show what color team your on pressing Tab, and having your name also show in that color if you get hit, die, or type.
For Player, you could have it be like in a sorta graph format, and theres 3 colums, and on top of each is a sonic spot, a tails one, one for knux, and a blank one for wads (could be oppupied with zim if none are present) and the players name is listed underneath the face.

FuriousFox 11-24-2005 02:37 AM

Admittedly, I haven't checked this for myself, but if it isn't there, add it in.

Music changer linedef executors should have the option to fade out the music currently playing and THEN switch to the other music, instead of just an instant switch.

Oogaland 12-06-2005 09:47 PM

Something similar to the following might help new users along a bit: When the list server is notified of a new game, it could send a few packets, with a second or so between each, to the machine running the game, on the port that it's running it on. The game, for its part, could CECHO a warning, and maybe a pointer to, if it hasn't received any UDP packets from the master server by ten seconds or so after registering with it.

Omega the Hedgehog 01-02-2006 09:15 PM

Oooh, ooh, before I forget; Add the possibility of having a set number of lives in match mode, so it efficiantley becomes an 'elimination' mode. That would rule, and at the very least add some much-needed replay value to match. It's already been mined of all interesting playability, so why not? =P

Oh, and Spazzo, nice idea.

Shuffle 01-05-2006 12:10 AM

You know how it's been suggested before that players have names above their head in netgames? Well how about something like that.. but only in CTF, and you can only see them when they're on your team? Maybe not a name, just an arrow so you know where everyone is. It'd be really helpful if you're trying to find out where your flag holder is.

FuriousFox 01-15-2006 04:12 AM

Maybe the game should come up with a little "YOU MUST HAVE PORT 5029 OPEN TO HOST. IF IT IS NOT OPEN, NO ONE WILL BE ABLE TO JOIN" screen when you select Host Game for the first time.

It would at least help out with people hosting unjoinable servers a small bit.

FuriousFox 01-24-2006 02:24 AM

Server hosts should be able to see a users IP Address upon joining the server.

The BAN command should also work with IP addresses

UNBAN command, for removing a single ban instead of all of them.

Fred 02-02-2006 08:35 PM

I literally need a flag for the Change Music linedef executor, one which waits for the current music to reach the end before playing the new one. Quite basically, I want to do something in the lines of Mystic Mansion (Sonic Heroes), where a different segment of music plays per room, but it won't actually change segments unless the one currently playing reaches the end.

Ritz 02-02-2006 09:47 PM

Some sort of pulley object, like the ones in SA1's Red Mountain and a few of the stages in StH. That is, a handle that, when touched, holds the player ala Tails and carries him over a set path. The path could be determined with axis changers or something, and the speed could be determined by angle.

Rob 02-19-2006 08:29 PM

An OpenGL special objects for maps.
(1 x 1 px. things, for example, that give off OGL lights, only visible in OGL mode [things being things in maps]) Ther could be other OGL specials, that's just an example of something that could be done.

ST218 03-09-2006 11:01 PM

We should be able to use Chaos Spawns, or a special like them, in other modes.

Spazzo 03-15-2006 03:16 PM

Oh! How about we have a sector type that has spikes come up and down at certain intervals, just like Sonic 1? it would make race more interesting. :P

Bigboi 04-09-2006 04:40 PM

I demand that if you beat the game on ultimate, you get the Sonic at the end to give a speech on how good you are, a la Earthworm Jim.


"YOU'RE THE BEST! Wow. You beat the game on ultimate! That's incredible! I couldn't even do that! You can put this game in the recycle bin, because you've mastered it. Seriously, put down the joystick, and know that you, rest assured, are the best. You're probably the only person whos heard me say this. Me talking, right now! You! We care about you. If you ever feel bad about yourself, remember this day and what you're hearing right now. YOU, ARE, THE, BESSSST!! And if you fail at anything, if you come in last at the track meet, you just sit there and raise your head up and say, "Sonic Team Junior said, I was the best. Damn it, I'm the best. I CAME IN LAST, BUT I'M THE BEST." If you wake up one day, and you're in prison serving a life sentence, you just look up and say, "I'M THE BEST." When you're down. When you're lonely! When all your friends abandon you because you're such a jerk. You sit there and say to yourself "I'm the best. I'm the best. I'M THE BEST!!

Bigboi 04-10-2006 04:28 AM


Originally Posted by SSNTails
What's even funnier is that I just listened to that track yesterday.

Maybe a "What are Hedgehogs?" lecture for easy mode, too.

Prime 2.0 05-10-2006 09:19 PM

How about putting in a scroll-down/up feature for the character select menu? I ask this because if you put that in, you can have more than 7 character wads loaded, which would be nice.

knuxshadow 05-14-2006 07:53 PM

Im thinking in a new mode online like match, ctf... my suggestion mode treats to collect rings in a limit of time, who has got more rings win

Spazzo 05-17-2006 12:20 AM

How about a birds-eye view of a map for race and coop? The TAB DEVMODE map might do well. It could go in a corner, or be accessable by the press of a button. It could just be an image of the course, with little color-changable sonic, tails, and knuckles faces that move to show people moving. Players names could be put underneath it, too.
Also, skyboxes. I know its been said already, but PLEASE. :P

Rob 05-20-2006 12:32 AM

1) A way to make images in the intro scene NOT fade.

Spazzo 05-27-2006 11:24 PM

When you press the rankings buttion in circuit mode, it should show what your current posistion is, ala mariokart.

Princess Draykon 06-02-2006 02:11 AM

A FOF that can only be passed through by the host. That way we could put barriers around custom exits to make Lobby like areas.
Also maybe a FOF that can only be passed through by non-player things.

Basically I'm asking for discriminating FOFs.

Naga 06-04-2006 06:35 PM

This was something that Shuffle accidently did...

An option to spin jump, and after the frames have looped a few times (2-5?), you change to the characters falling animation.

SPINFALL, maybe?

Chabo 06-07-2006 05:56 AM

The ability to see your teamates by an arrow of somekind so you can just see where they are. And note that the flag carrier should have a different arrow colour. Also instead of havvin a message above the flag carriers head maybe they could glow a certain colour maybe?

Shuffle 06-09-2006 05:45 AM

How 'bout making the console not tiny-fy itself at high resolutions?

Princess Draykon 06-09-2006 03:02 PM

Completely remove the Default color.
It's flawed, multiability dosen't work with it, Hiressprites dosen't work with it, custom abilties don't work with it. Very little works with it.

Rob 06-18-2006 01:28 AM

How about using Marble Zone's lava texture, rather than Hill Top's?
Simply because Marble Zone's looks more like REAL magma.

FuriousFox 06-20-2006 03:24 AM

Respawning bustable blocks, for when you want to hide stuff behind breakable walls in Multiplayer but don't want the hole to stay open.

Mystic 06-20-2006 09:07 AM

It would be nice if there was a way to determine the number of pages on the Statistics screen, and specify what map goes where. That way I could keep GFZ-CEZ from being shown, and add a "page break" where the Archives levels start.

Digiku 06-29-2006 02:13 AM

An option to toggle filtering for sprites and HUD in OpenGL? I'd really like that. You mentioned in IRC that "non-blurred sprites + bilinear environment" is possible after all.

Chaos Zero 64 07-06-2006 03:35 AM

What I don't like about the speed pad sectors that forces you to spin, is that nonspinnable characters can still go. It would make the game more challenging for a nonspinnable character to have to find another way of going fast.

Spazzo 07-11-2006 10:47 PM

Staff times for time attack!
Have each course have bronze, silver, and gold times. You could have it so that if you got gold, for example, that course's picture would have a gold border around it. You can make unlockables around this too. IE: Unlock a special feature if you have beaten all staff times with a gold rank.

All times are GMT. The time now is 12:24 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, vBulletin Solutions, Inc.