Skyrim small tables are actually shelves buried. If you can't see it ...
(Recreating my list of #gamedev tricks thread)
In Jak and Daxter if by any chance the Area/assets ahead aren't fully loaded the game will make you trip to give it more time to fully load. #gamedev
In Super Mario 64 to achieve the infinite stairs effect, Mario gets teleported back. Also the reason why Speedrunners can glitch and skip it using the backwards jump trick. #gamedev
There was a memory exception in Wing Commander on exit, because of the deadline they left it but change the error message to "Thank you for playing Wing Commander!" #gamedev
This #gamedev trick is from Undertale, to prevent NPCs to walk on pits, Magic glass.
In Fallout 3 the Trains are actually a character wearing a train model as a hat. Engine didn't allow for vehicles, so this way they could reuse NPC movement code. #gamedev
In Super Mario Bros. because of memory limitations clouds and bushes are the same sprite but using a different tint color. #GameDev
In Kirby's Dream Land for GameBoy, to save memory some enemies have the same "back" part of the sprite and only change the face. #GameDev
Here's one of my fav, in Zelda: A Link Between Worlds because a true top-down view in 3D would have perspective issues, they purposely tilt the objects, so the perspective looks good to the player from top. #GameDev
Duke Nukem 3D mirrors reflection were achieved by duplicating the room on the other side. If you deactivate clipping you can go to the other side. True reflections are computational intensive even today #GameDev
In NBA Jam: T.E. for Genesis/Mega Drive developers only found out after making the 250k cartridges, that there was a save bug. But playing the game in a certain order fixed it, so it got a day one "patch" in the manual saying how to initialize memory. #GameDev
@djlink This game was one of the reasons I got into the #NBA as a kid! (that and Channel 4 coverage, and those great Bulls teams!)
@djlink Yep I knew this. Pretty ingenious solution.
@GreyAlien yup, and several other games used this too, like Metal Gear and more.
@djlink @GreyAlien Deus Ex pulled a similar trick (inheriting it from the Unreal engine which showed off mirrors in their first game). Then the sequels (which spent their CPU on other things) had to find some excuse for why their mirrors didn’t work!
@djlink This is one of the more interesting "hidden tricks". not long ago I saw a video on YT where they did this trick combined with opacity masks to fake corridor reflections on a semi-reflective floor for a mobile game in unity. Its a bit unintuitive to think it might be cheaper, but yeah churning out polygons might be just cheaper then the math involved for reflections. draw calls shouldn't be much of an issue since it's literally duplication/mirroring of geo/uvs/materials and such right?
@visionsmind exactly, also, if not looking to the geometry area it will be discarded depending on cull options, so it's a win-win. I guess the downsize is that it needs a lot of work to get done instead of a sophisticated shader that would give it out of the box
@djlink I like how link is leaning back all the time fucking his back up to get the job done hahaha
@djlink Such a great game too!
@djlink Reading about the crazy things #gamedev did to make things work on old consoles is always fascinating. Here's some more on the Sega Genesis. https://megacatstudios.com/blogs/retro-development/pushing-the-sega-genesis-to-its-limits
Pushing the Sega Genesis to Its Limits

All of this information is getting pulled from the following series of videos. If you are planning on doing anything along these lines, it is a great idea to not only read this document but also watch the videos that are being referenced. They break down how to do these effects piece by piece in order to achieve these impressive effects: https://www.youtube.com/playlist?list=PLi29TNPrdbwJLiB-VcWSSg-3iNTGJnn_L   2-Color 60FPS Full Screen Animations https://youtu.be/c-aQvP7CUAI   Doing a full-screen animation, even at two colors, at 60 frames per second would obviously be way too large to fit on a Genesis game. Even with compression, it would end up being larger than the max size. In order to get around that, the creators of Sonic 3D Blast took a very interesting approach to achieve the effect. This is a single frame pulled out of the animation. The way that they were able to create the fluid motion is by making the animation itself ¼ of the perceived amount of frames and then overlaying a handful of frames on top of each other with different palette indexes. They then set palette index0 to a dark color and then the appropriate indexes for the first “subframe” to a light color. Finally, all other indexes are set to the same color as index0. Then they simply cycled the palette between frame changes to animate all of the subframes to create the smooth animation. So while it looks like a smooth 60fps animation, it’s really a very choppy 15fps animation with a ton of palette cycling going on in it. What that means for an artist is that they have to set up each frame to have a series of frames overlaid on top of each other. Each of these subframes needs to be a unique color, as does any area where subframes overlap like in the above image.   3 Dimensional Curvature https://youtu.be/z1mcLXEJTkA   This is an interesting trick that makes use of horizontal scan line interrupts and a lot of math to create a 3 Dimensional perspective with a slight curvature to it. The background itself is composed of a tileable portion that is mirrored and then offset in a way to hide the seam where it is mirrored. Those are the mirrored segments lined up to show that they are indeed mirrored, but when they are placed next to each other, you can see that the artist did it in a way that the mirroring would be hidden. The way the perspective curve is achieved is entirely through using horizontal interrupts to remove select horizontal lines from rendering, and doing it in a curve in order to make it shrink the higher you go up the screen. The resulting combination will give you a full image that looks like this: In motion with a vertical scroll, it gives off a pretty great sense of perspective. There are about a million different ways this concept can be used as well other than just perspective tricks. Using this method you should be able to actually squish and stretch entire background layers vertically for example.   Full on FMVs in a Genesis game https://youtu.be/IehwV2K60r8   The first thing that was done to save a little bit of space to make a fully rendered video actually fit into a full-featured game was the make the video slightly shorter than the native screen resolution, as well as only rendering it at 16 colors (as opposed to using the four available palettes). The video itself is played back at 15fps to further save space. Then finally they used RNC compression on the entire thing to shrink it down even further. The problem with RNC compression though is that it can’t process fast enough for a nearly full-screen 15pfs screen animation. This is where they yet again used horizontal scan-line interrupts. This is what the video looks like in the game when you are playing it. This is what the image that is being rendered actually is. They took the frames of the video and sliced a bunch of horizontal lines out of it to produce an extremely shortened version of the image. You’ll also notice all of the vertical lines running through the image. RNC compression handles vertical lines a little better than dithering patterns. Those lines will be dealt with shortly though. In order to make the image fill the screen, they used horizontal interrupts to duplicate each line of the image, stretching it back out to fill the screen up. That is how they went from the short image above to a nearly full-screen image in the final product. In order to change the horizontal lines into a dithering pattern, they offset every other scanline by one pixel, creating the checkerboard pattern that you would expect. They went back and offset the odd scan-lines instead of the even ones and alternated between the two at a constant 60fps. Doing this took what was originally just a series of vertical lines and convincingly turned it into some extra colors. In the end, the entire 12.5 second FMV only ends up weighing roughly 660kb, which is only a small portion of the available 4MB of the total ROM.    

Mega Cat Studios
@GodofGrunts very cool, thanks for sharing. I forgot about the FMV on Sonic 3D. That was crazy to think back then. GBC also has a game that had a video, I think it was Cannon Fodder
@djlink Reminds me of a Lego Star Wars game that was done in a previous workplace for the old Java mobiles. They set it during the part where Luke, Han and Chewbacca break out Leia because they could just use the Stormtrooper sprites and switch heads to save on memory.
@arzi ahah nice, sometimes limitations lead to very interesting creative solutions.
@djlink I love these posts. Thanks for doing them.
@khalidabuhakmeh and thank you for reading them :)

@djlink

Oh shoot I never noticed this. It’s like the Skyrim table thing. That’s clever.

@djlink Clouds are just sky-bushes if you ask me ;)
@djlink Good old Gamebryo.
@atmanrising prob a bunch of games still using some of that code these days.
@djlink Gamebryo was my client back in 2010/early 2011. They were doing some cool stuff with Gamebryo Lightspeed at the time! But there was a lot of jank in the code and it didn't perform all that well on consoles ...
@djlink this has continued to be one of my favorite "if the engineers won't build it the designers will do something wierd" story
@esdin ahah same, the has to be tons of stories like this, after a certain point in production coders might not have time to put new features and designers creativity gets unleashed.
@djlink So much software development is train hats. That's not necessarily a bad thing.
@djlink I get the feeling they weren't able to find all the engine programmers they would have wanted.
@djlink Think i've read that somewhere before, but cool trick.
@djlink this is my personal favour it’s, I don’t know why it resonated so much with me.
@jono ahah that's great
Steve Gaynor on Twitter

“please share your most embarrassing game dev crimes. Mine: all the scripting in Gone Home is contained in 2 gigantic uScript graphs, bc I didn't know about interlinking many smaller graphs at the time. It's only 2 bc the first one started running too slow to navigate. Your turn.”

Twitter
@djlink imo it's even funnier to me that it's not technically a hat, it's the characters arm https://www.pcgamer.com/heres-whats-happening-inside-fallout-3s-metro-train/
Here's what's really powering Fallout 3's metro train

The truth? Even stranger than a train hat.

PC Gamer
@djlink oh my, wing commander. This brings back memories. So many hours spent between this and Descent
@aristurlte never tried Descent, gotta search that one.
@djlink Descent 1, 2, and 3 are up on steam I think. They were for a while, then got taken down due to some publishing rights issue, but I think they're back up there again.
@djlink On the subject of wing commander, today i got the odd notion to watch the WC4 cutscenes - and i just spotted Rico from Starship Troopers was in it
@Kurzheck nice catch. there were a lot of now (and even then) famous doing FMV stuff for games, it's a v interesting era of games, reminding C&C too.
@djlink this effect coupled with the "Shepard Tone Illusion" in the music is simply brilliant - https://www.charliemccarron.com/2013/06/shepard-tone-illusion-and-the-super-mario-64-endless-staircase/
Shepard Tone Illusion and the Super Mario 64 Endless Staircase • Charlie McCarron

I think of the Shepard tone illusion like an infinite staircase. Play this video, and then replay it. Do you hear the tone continue to creep up?

@jorge and still spooky considering what is happening, the whole OST is great.
@djlink Did not realize that. That is extremely clever. It's a ridiculously good solution because it not only gives the game more time to load, but gives the characters more character.
@ahribellah agree, it's a neat thing that stays in character, much better than any loading screen.
@djlink @ahribellah The "squeeze through a narrow space" bits in a bunch of recent games has the same purpose. :)
@fuzzysteve @ahribellah indeed :) that one is just way more obvious than this clever one (imo)
@djlink @ahribellah You've right. :) And at least neither is an elevator ;)
@fuzzysteve @ahribellah one of the reasons I never replayed ME1 and could play ME2 and 3 again xD
@djlink Love this one, such a clever trick.