Having played this game countless times, I had never noticed the screen was mirrored. To me, that is the best trick in this bag full of tricks. Would love to see sister episodes for stuff like the special stages in Sonic 3D and the rotating tower in Mickey Mania.
Yeah, someone made a game for Macintosh (I forget which) and they used the same technique there. They mirrored the top/bottom of the rooms, and then drew the game objects over everything as another layer.
Not only that, the alien sprite is also completely horizontal and floating halfway between the floor and ceiling. So in this case, everything on-screen is still 100% mirrored horizontally.
Zack, you're talking about a different thing than James and Karanthaneos. At 6:11 there's the potentially mirrored spinning thing. But at 6:07 there is a non-mirrored thing that looks like it could have been a wall texture, but wasn't.
While assembly code is a bit beyond me, I loved the breakdown of how it was coded, and how it was optimized for the hardware. A very well put together video. Please do more!
Definitely wasn't expecting you to follow this video up with a literal tutorial on how to do raycasting on a Sega Genesis. This video is as impressive as the graphical effects it covers. Also, only 6 and a half minutes it took for you to explain these things too. That is awesome, man. Thank you for this :)
I was really hyped for LEGO Worlds when I saw TT developed it. I'm not sure where it stands in technical achievement, but the usability and controls were very underwhelming. Company names stay, but the developers change.
@ I don't really know what's the power of any iPhone, but the better ventilation that the switch has allows it to work a lot harder. Although this may not be an objective observation; personally I don't find TT's LEGO-themed games all that complicated. Surely there's some serious math involved in optimizing which pieces need to get rendered, but it's rather simple compared to other AAA games, and the hardware is much more forgiving for various small inefficiencies that they could make. The only company that really amazed me lately for its runtime efficiency is Id. And again, as a PC user I was let-down by the controls and contents rather than image quality (graphics weren't that marvelous, but I don't care much for that - LEGO is all blocky anyway). Maybe I grew cynical of good-old companies after observing some of them going down dark paths. Maybe TT has incredibly talented programmers. For now I just think that their products are barely worth mentioning in conversations with my friends.
What a fascinating video! I love seeing behind the scenes stuff like this! When you mentioned that the screen was mirrored, i had a jaw-dropping "OH MY GOD" moment! I had no idea, it didn't look mirrored and i never would have noticed had you not pointed it out!
More! That was fabulous. I'm a 38 year old engineer, so I'm old enough to remember playing, and now smart enough to understand it - it's like the Goldilocks zone for enjoyment of this stuff. :)
Wow, this was awesome! Great work, Jon. So glad you're sharing these super cool and innovative old tricks that were used on those old systems. Keep it up, sir. Great work. Would love to see more of this in the future. :)
"Write in the comments if you want more or less of this kind of thing." Who would want less? These videos are fantastic. Wow at the tricks you used to get this demo to run up to 58.4 fps! Especially that macro trick. Really would like to see more on Genesis Toy story if possible. The game is a technical marvel on the Genesis. You guys did some neat audio mixing tricks with that game too.
Gotta love unrolling loops. A friend made a generator, which generated 68k source files containing huge unrolled loops, to render each scanline of a scaled image at any scale factor (imperfectly, there were a few bugs), and I created the code that will scale vertically by skipping or repeating some lines, and it turns out, I can scale 4 images simultaneously where 1 image is generally large and 1 is very small, and DMA all the art in 30fps! And on top of that, because it was for a menu, and the code was just small enough, I was able to Kosinski compress the code (Actually, I also wonder what Kosinski compression would have been called back in the day?). It did create for some very awesome effect, and again show how much a beefy CPU can do. Also, really liked the high production value of the video, keep it up! More technical effect videos would be cool to see.
Yeah, when writing shaders, I often unroll my loops and I remember when I started in scratch (many years ago) we would manually unroll loops for faster 3D rendering (though it was very primitive).
I don't pretend to understand all of this but please do more stuff like this. Anything is nice, but this is great. Also if you have anything on Toy Story 2 you'd be pressing some of my oldest gaming nostalgia buttons. And if not, thanks anyway just for being part of the company that made it.
I miss the days where programmers had a responsibility to ensure that their code ran at a decent framerate. Nowadays it's just "Our game runs at 10fps? It's clearly your fault for not having a ten thousand dollar computer."
+Retro Frontier I only have the utmost respect for programmers who dealt with those limitations, but I wouldn't belittle the achievements of modern programmers to that degree. The hardware may have gotten considerably more powerful but what players demand of their games have also skyrocketed. Plus you mention Game Maker, a program I feel I'm an expert at but not one I'd consider myself a programmer from. GML isn't C++, which is actually used in nearly every modern video game. They share some similarities and lord knows both are easier than assembly, but pretending they are on the same difficulty level would be quite misleading. And even then while a terrible programmer could make a game in a few hours with Game Maker, an expert of the program could pull off things in the same amount of time that the other programmer wouldn't think Game Maker was even capable of. Also if you're aware of lower level modern programming languages like C and C++, you'll know that there are still many problems like the ones seen in these videos you still have to contend with. The ease of tackling them may be mitigated and the amount of memory you have to work with may sometimes seem infinite, but that doesn't mean having issues where you have to count specific numbers of bytes don't happen.
If you look at Nintendo, you'll see this spirit is not gone. Just look at MK8 and BOTW on the Wii U. Nintendo always saves a buck on the hardware and spends it on making the software that much more efficient for their consoles!
This is only the case in PC land. Console developers still have a responsibility to make sure their code runs at a decent framerate on the platform they're developing for. And, just like in the old days, they meet that challenge with varying diligence and success.
Looking back into this, this is probably the best Coding Secrets video I have ever saw. The music, length, and best of all, the Lego HUD all combine to make this the most detailed and beautiful video on your channel! I would LOVE to see more of this editing (whenever possible)
This channel is gold. You're a genius, Jon! Often times for me, lack of funds for certain projects calls me to be more creative, but in this case, hardware limitations really pushed you guys to push the boundaries and create something amazing from very little. Very very impressed!
this stuff is just facinating!!! you sir are responsible for many of my favorite childhood games. I'm so glad you're willing to share this incredible insight into what you were thinking!
Amazing video and it's super informative, absolutely if you get enough requests other than myself please publish more of these, the scene really needs more ppl like you my friend.
Have to say, amazing videos. Cannot believe I've not seen anything else like this before on youtube. I find it incredibly interesting, especially with the limitations of the technology at the time and you are very articulate and explain things so well. I haven't the foggiest how to write or understand code by I fully understand what you are doing and trying to achieve with your videos. Great work!
This was so cool! I feel like ASM makes a tad more sense to me now than it did before, haha. Definitely appreciate the rundown! Would love more techy stuff like this in the future!
I LOVE this kind of thing!!!! I do like how some of your later videos break things down in a way that is easier to understand for non-programmers, but as a programmer this stuff just speaks to me in a wonderful way - these days, it's always about writing the least number of lines of code to accomplish things for ease of maintenance (It is for me, at least!) but it's fascinating to see how things used to be, when space and runtime were both extremely important and had to be managed when writing this stuff.
Woooow! So the screen was mirrored! Mindblow!!!! I loved so much this game as a kid! And I still do!! I always bring Toy Story when i'm talking about Genesis vs. Snes! Also, that mod player is amazing too! AMAZING video! I would love to see more about the development of this game! Subscribed!
Loved this. Always wondered how tricks like this were pulled off on 16-bit hardware. Blown away at how clever it all was. I don’t know any code, but his explained it in a way I could understand, so thank you!
A sincere thanks for choosing to share Your knowledge, and taking the effort to make these videos in order i to do so. And I personally appreciate how You "get to the gist" and present the general principles in an easy and relatable way, it almost feels as if You could have figured it out Yourself ;)... Best regards
More! I don't know about the technical side of games but watching your videos over and over helps me to understand more and more, a "byte" at a time, lol.😃
Oh god this is just brilliant! Early 3D was so tricky to implement that it wasn't possible without all sorts of hacking around. Even for PC during the years when Megadrive was around, Doom and System Shock were about as much as you could ever get, for 16-bit consoles it was even stricter. Also awesome job with revealing the trickery of game engines. There will always be interest in that kinda stuff just like people still keep releasing Megardive demos (Overdrive and others). And since code breakdowns of old games are so rare (I can only remember 1 dev for megadrive ever sharing his code - Chris Shrigley), such content is always unique and insanely valuable among us enthusiasts. There are also emulator developers who are always interested in insider info, so don't be afraid to dive as deep into code geek stuff as you can or wish, there will always be interest! Thanks for your channel, keep on kicking ass!
I'm discovering your channel and as a younger developer but raised by an Amiga 600, I'm craving these first-hand stories of 16-bit game development. Thanks a lot for sharing, hoping to see more!
This is absolutely fascinating. I'm a developer in another industry and I find tales of 16-bit development to be interesting and actually... inspirational. You guys (the people that coded the games of my youth) are actual heroes to me.
4:30 Wow, actually I hadn't even noticed that it was mirrored. That is such a simple yet clever trick. But then there's still a non-symmetrical wall at 6:07 ..
Wow! It only took me 22 years to get to know how some parts of the Toy Story game were made :D. I must say that the first time I saw that level I was very confused of what to do, nothing in that level made sense to me for a while. What great memories this brings :D Thanks for sharing, please do more :)
I really like how writing a huge amount of code instead of a loop, WAS the solution back then, as cartridge space and cycle times were much more important to consider. Now-a-days it's perfectly fine for code readability to cause a slight "performance" hit at run-time. Just goes to show how platform limitations really have an impact, and that modern clock speeds and memory are insanely higher now. Really enjoyed the video, would love to see some more of this "breakdown" type of video.
Absolutely incredible! I always wondered how this stage was handled as a child. Awesome explanation and please do more videos like these in the future. Subbed.
It seems so simple when explained that way, but someone had to look at the issues they were facing and come up with all of these solutions. This is pretty crazy, I love how this channel presents its content.
Incredibly interesting. Please share more of these types of videos. Back in the day, there was certainly a bit of an obsession with games players about the special effects seen in games from yourselves, Treasure, Konami and other great coding houses that seemed to border almost on witch craft compared to what most developers put out.
Nice channel, subscribed. While I already stopped coding a long time ago, but the way you described it is easy to understand for anyone with basic engineering logic.
I'm currently learning Python as my first programming language, and although the code in this was at a much lower level it helped me understand why code is programmed a certain way at a higher level. This is brilliant stuff, thanks.
You're like the Vsauce equivalent within gaming science, showing and telling in such a way that a lot of people understand the concept of what you're talking about. love your content, keep it up :)