Introduction
Iron Chitlin posted:
Fuck you FutureFriend.
What is Bad Rats?
Bad Rats is a fun Incredible Machines clone that will keep you on the edge of your seat with each new outcome, every puzzle has a million different solutions, making it a highly replayable game. You use each Rat's special abilities to get revenge on catkind.
It's pretty great, yeah.
Videos
Hall of Fame
Endorph posted:
A summary of one's feelings upon being gifted Bad Rats, brought to you by my friend:
Thread Stuff
By Geemer
By Endorph
By Melodicwaffle
By Robotfisherman and Melodicwaffle
By Robotfisherman
By Mico
EntranceJew Info posts
EntranceJew posted:
Here are some notes that I've been keeping as I've been thumbing through Bad Rats:
- There are remnants of online multiplayer using servers, maps, and clients in the debug code.
- The console code "go*" where * is any number between 1 and 44 will load that level.
- The console code "kill" or "killme" will kill the player.
- The console code "sol" will show the solution.
- The debug code was originally from a project titled "HORSE CLUB".
- Alternate subtitles for "Bad Rats: Rats Revenge" include: MAD RATS / BAD RATS / BLOOD RATS
- The author of Bad Rats is Brazilian and speaks Portuguese, most of the code is written in such.
- There was originally plans for haptic feedback.
- Bad Rats has code to determine if the player is stuck. All it does is print debug text.
- Every single time the code needs to figure out what level it is dealing with, it performs 44 consecutive IF statements instead of using a SWITCH or calling a function with an argument. This is a coding pattern that appears in the code a lot.
- None of the custom functions use parameters.
- In spite of most of the rats being numerically ID'd, they are all accessed by names like "rato1" instead of on a lookup.
- The code is littered with GOTOs -- usually to escape a function, in spite of RETURN being available.
- When Bad Rats exits, it launches a program called "ratsend.exe".
- The "Super Nail" was a bonus for steam.
- End / Delete rotate the camera for whatever reason.
- There was a point in time where all of Lung Rat's imparted force was calculated from the X axis.
- Every single math operation is multiplied by a unit called TIME, presumably for frame normalization. TIME never receives a formal definition and isn't listed in the development kit's guide.
- Bad Rats uses the RANDOM() function 206+/-2 times.
- 98 of those random functions are in the rat's physics definitions.
- The cat's (gato) "vaimorre" (will die) animation consists of 4 frames, using the engine's morph function (similar to a tween) to blend between them.
EntranceJew posted:
I didn't want to tell anyone about it just yet, but you've forced my hand.
Here's what it is:
Color Printer" post="417880210 posted:
Actually, it's zooming in and out. If it's labeled "rotate" then I dunno what the fuck.
Here is the first stage zoomed all the way out (actually there's a bit more than this but it's just a stretched out ugly stone texture). Notice the hand:
Also when you zoom in all the way, it starts zooming back out only everything is flipped horizontally. I know why that does that for zooming in/out objects in say, flash, but I'm trying to comprehend how that works for the fucking camera of the playing field.
EDIT: Also zooming in/out totally fucks with the solution plan overlay.It tries to scale it but ends up miserably failing.What am I saying no it doesn't it just overlays it on the screen.
It's a monkey paw lookin' thing with three different animations.
Compared to the other models in the game, I wouldn't say it was made by the author because:
It's compiled into the maps. It was probably meant to be the cursor for a while.
- The name "Hand.MDL" uses the English word for hand, whereas the author would be more inclined to use "mao".
- The three animations (stand: idle, catch: kunckles bent, hit: open palm) are also in English.
- The filename itself has its first letter capitalized and the extension is in allcaps, which doesn't match the pattern of all lowercase filenames.
EntranceJew posted:
I did a global search/replace of " RANDOM(" for " (" so that every would-be-random value was its maximum and there's something I learned: You can take the random out of Bad Rats, but it won't do a goddamn thing. It's difficult to say for certain, but it doesn't really feel like I've gotten that much more consistency out of it.
This means that most of the equations are ill-conceived. I need to do some more digging before I can say just how messed up they are.