NCOT Technology
NCOT Technology
  • 74
  • 504 939
Tilemap Game Engine Development - Agon Light C Programming
In this video, I took the next step in my game development for the Agon Light by building a tilemap system and integrating it with the existing physics engine from the previous video. The tilemap, a classic way to structure game levels, includes solid tiles that interact with game sprites. While detecting collisions with tiles is usually straightforward, incorporating a physics engine made things more complex.
I decided to let the sprite system handle everything-deciding when to call the physics code or resolve collisions with the tilemap. After a few false starts and bugs, I managed to get everything working smoothly. To speed up the process, I used Tiled for map creation and wrote custom Python code to convert its output into a format my game engine could use.
Testing on hardware revealed some critical bugs and performance issues, which I tackled by implementing dirty rectangle optimization. In the end, I had a functional, efficient sprite system with physics and tilemap integration, setting the foundation for designing and building the actual game. There's still plenty of work ahead, but the core of the engine is now in place.
Find me Online
==============
ncot.uk
Support The Channel!
====================
Thanks a lot for watching this video! If you're not a subscriber, consider becoming one!
If you want to support what I do, consider the links below.
paypal.me/NCOTTechnology
ko-fi.com/ncot_tech
liberapay.com/NCOT_Technology/donate
patreon.com/ncot_tech
Hashtag Soup
============
#programming #agonlight #cprogramming #retrocomputer #linux #gamedev #c
มุมมอง: 5 504

วีดีโอ

2D physics game programming in C, retro style | Gamedev the hard way #2
มุมมอง 7K2 หลายเดือนก่อน
Join me on a journey as I attempt to write a game for my Agon Light using nothing but raw C programming. In this second episode I figure out how to make a very basic 2D rigid body physics system work. It doesn't matter if you don't have an Agon Light, I'm bringing you along for the ride. We'll be looking at how games deal with the objects they manipulate, and how to detect and resolve collision...
Writing a game the hard way - from scratch using C. #1
มุมมอง 177K3 หลายเดือนก่อน
Join me on a journey as I attempt to write a game for my Agon Light using nothing but raw C programming. In this first episode I figure out what kind of game to make, look at some shareware games of the past and get a basic game engine working, using nothing but C code - no external game engines or modern development tools. It doesn't matter if you don't have an Agon Light, I'm bringing you alo...
Stealing the secrets of the NES - Agon Light Tilemaps in C
มุมมอง 2.5K5 หลายเดือนก่อน
Support the channel: ncot.uk/support Github: github.com/ncot-tech/agon-graphics In this video, I explore how early computers used clever tricks to create moving graphics, focusing on how Nintendo developed tile-based games on the NES. Using these techniques, I built a scrolling tilemap system for the Agon Light using C. We start with a quick look at the evolution of game graphics, from text-bas...
Programming Bitmap Graphics - Agon Light using C
มุมมอง 2.1K6 หลายเดือนก่อน
Get the code: github.com/ncot-tech/agon-graphics Support the channel: ncot.uk/support Visit the website: ncot.uk In this video I look at how you can program the Agon Light to display bitmap images using C. I go through how to convert a PNG image into an RGB2222 format bitmap image, and then use the C library functions to load that into the Agon Light, and the VPD commands necessary to display t...
Programming Windows Screensavers - Agon Light Graphics Programming
มุมมอง 7K6 หลายเดือนก่อน
Support the Channel - ncot.uk/support Get the code for this episode - github.com/ncot-tech/agon-graphics I'm learning how to program the Agon Light, and as a project thought it'd be fun to try and program two of the classic Windows 3.11 screensavers - Mystify and Starfield Simulation. My aim is not to simply program the Agon Light by cloning the Windows 3.11 screensavers, but to learn how to pr...
Programming Language Easter Eggs
มุมมอง 1.5K7 หลายเดือนก่อน
Easter eggs are usually hidden inside our games and software, but did you know there are some hidden inside the tools and languages used to make that software? Come with me on a fun Easter diversion while we eat our bodyweight in chocolate, and look at six programming Easter Eggs. Some of these are from the Python programming language. It seems they had a lot of fun making the language itself a...
Calculating Pi using Python - Gauss-Legendre and Monte Carlo methods - #piday 2024
มุมมอง 6518 หลายเดือนก่อน
Let's celebrate #piday in this appropriately short video by writing some #python programs to calculate Pi. The first method uses something called the Gauss-Legendre method. It works by iteratively refining an approximation of Pi, generating the answer digit by digit. When writing code to calculate Pi we run into issues trying to store the calculated value. A floating point or double precision f...
Agon Light 2 - C Programming, Better Keyboard Routines, Joystick Ports
มุมมอง 3.2K8 หลายเดือนก่อน
Dive into the exciting world of DIY hardware hacking. Join in as I explore joystick integration, keyboard inputs, and serial debugging using the versatile Agon Light platform. Delve into the technical intricacies of GPIO pins, assembly language programming, and C compiler usage for low-level development. Discover the power of computational thinking, boolean logic, and UART serial communication ...
Cellular Automata - Simulate life from chaos and code
มุมมอง 1.2K9 หลายเดือนก่อน
Today, we're diving into the world of cellular automata. A digital playground of sorts where simple rules lead to astonishing complexity. where order can arise from chaos and collapse back into chaos just as quickly. First we have a look at One Dimensional Cellular Automata which were originally conceived by John Von Neumann in the 1950s. These cellular automata operate on a grid of cells, usin...
Agon Light C Programming - An Introduction
มุมมอง 4.2K10 หลายเดือนก่อน
Instead of bashing away in BASIC, it's possible to do some coding in C on the Agon Light. Let's find out how in this introduction to an ongoing series where I figure out the Agon hardware and work on a game. I have no idea what game I want to make, and I'm not entirely sure how to achieve some of the necessary functions, but it'll be fun figuring it out and I hope you come along for the ride! T...
The Dark Art of Programming - Writing Cursed Code
มุมมอง 2.6Kปีที่แล้ว
It's Halloween, programming is an art form and there's a darker side to it. Come with me in this fun video as I explore several languages that hate you and are trying to make your life difficult, before we go off down the rabbit hole and find some truly horrific examples of real programming. There's languages that are hard to read, languages that are deliberately hard to understand with nonsens...
FORTH - Better than BASIC?
มุมมอง 41Kปีที่แล้ว
Let's look at FORTH, the obscure stack based programming language that nobody seems to use. Or do they? After getting an Agon Light Z80 computer and discovering it can do things other than run BBC BASIC I went looking at other programs to run on it. I came across Agon-Forth and that got me thinking. What's the point of FORTH, why's it barely used and is it really as awkward and strange as it ap...
Sinclair BASIC vs BBC BASIC - How to fit an entire devkit inside 64K
มุมมอง 13Kปีที่แล้ว
Sinclair BASIC vs BBC BASIC - How to fit an entire devkit inside 64K
The Internet - Mid 90's Web Culture
มุมมอง 5Kปีที่แล้ว
The Internet - Mid 90's Web Culture
Zilog Z80 Deep Dive - How does it work?
มุมมอง 28Kปีที่แล้ว
Zilog Z80 Deep Dive - How does it work?
The Computer Timeline: Calculators, Maths and Reverse Polish Notation
มุมมอง 1.3Kปีที่แล้ว
The Computer Timeline: Calculators, Maths and Reverse Polish Notation
How the 1880 Census Led to the Invention of the Computer
มุมมอง 497ปีที่แล้ว
How the 1880 Census Led to the Invention of the Computer
Tiling the Plane - What are Wang Tiles?
มุมมอง 872ปีที่แล้ว
Tiling the Plane - What are Wang Tiles?
DIY Solar PV Installation - Can it save me money?
มุมมอง 520ปีที่แล้ว
DIY Solar PV Installation - Can it save me money?
Hacking Your Way to a Smarter Home: Integrating Smart Sockets with Home Assistant
มุมมอง 2.5Kปีที่แล้ว
Hacking Your Way to a Smarter Home: Integrating Smart Sockets with Home Assistant
BBC BASIC in RiscOS on a Raspberry Pi is really cool!
มุมมอง 15Kปีที่แล้ว
BBC BASIC in RiscOS on a Raspberry Pi is really cool!
Samsung SDP-860 Document Presenter Thing [VLOG 1]
มุมมอง 566ปีที่แล้ว
Samsung SDP-860 Document Presenter Thing [VLOG 1]
2022 Review and Beyond!
มุมมอง 194ปีที่แล้ว
2022 Review and Beyond!
The £3,000 brick phone - mobile phones in the 1980s
มุมมอง 9852 ปีที่แล้ว
The £3,000 brick phone - mobile phones in the 1980s
DMA - Direct Memory Access on the ZX Spectrum Next
มุมมอง 1.3K2 ปีที่แล้ว
DMA - Direct Memory Access on the ZX Spectrum Next
Clever engineering on a budget - ZX Spectrum Interrupts
มุมมอง 10K2 ปีที่แล้ว
Clever engineering on a budget - ZX Spectrum Interrupts
Breaking the 64k barrier - Spectrum Memory Banking
มุมมอง 7K2 ปีที่แล้ว
Breaking the 64k barrier - Spectrum Memory Banking
How 8bit computers work - interrupts, memory and DMA | Computing Fundamentals
มุมมอง 5K2 ปีที่แล้ว
How 8bit computers work - interrupts, memory and DMA | Computing Fundamentals
Programming Vlog 0x04 - Reinventing the wheel
มุมมอง 5722 ปีที่แล้ว
Programming Vlog 0x04 - Reinventing the wheel

ความคิดเห็น

  • @UnderArea51
    @UnderArea51 6 วันที่ผ่านมา

    QUESTION: can you demonstrate the process of this game’s game design doc, prior to writing code? You do deliver it verbally but I have noticed the most missing piece of almost every tutorial- throughout TH-cam, is showing how to first walk through steps, of writing the program design - the so called rough draft.

  • @edgeeffect
    @edgeeffect 7 วันที่ผ่านมา

    I missed out on LOGO... I'd dismissed it as "just for kids"... I've head people talking recently about how it's a pure functional language... I could have been "2020 cutting edge" all the way back in the 1980s. The weird characters are ONLY in `MODE 7` - Teletext doesn't use quite the same ASCII as everybody else's ASCII. Programming was a bit weird for me. Back, just before The Beeb came out, we had a computer studies class and most things were done on the blackboard and copying out chunks of textbooks and it was AS BORING AS HELL. Then I got hold of our school computer's manual and started to stay late at school just "mucking around with BASIC" and, almost like magic, I just "got it" and, overnight, became the 1980's kids equivalent of a "leet hacker"... This is quite a stereotypical tale of a dyslexic kid not fitting in to the educational system - even though I didn't know I was dyslexic back then. I've spent most of the intervening 40+ years permanently glued to a computer keyboard. Other kids would want to know what games each computer had, I wanted to know if it had any interesting programming languages... I loved my Jupiter Ace!

  • @edgeeffect
    @edgeeffect 7 วันที่ผ่านมา

    As a massive BBC Micro fan back in the day, I always regret never even using an Archimedes. Ooooh... we didn't have all this `RECTANGLE` and `RECTANGLE FILL` milarkey on The Beeb... we had `MOVE` and `DRAW` for lines and `PLOT 85` for filled triangles and that was about it. The BBC BASIC assembler was (and still is, I think) the best assembler I've ever used. I'm working on an assembler for AVR at the moment that I'm trying to make as fab and groovy (will, it be? ... who knows)... ... ... But, anyway, It did leave me with a pang of nostalgia (even at such a young age) for hand-assembling Z80 assembly language with a pencil and paper and typing the hex into our school's Research Machines 380Z.

  • @brucewayne-cave
    @brucewayne-cave 9 วันที่ผ่านมา

    In 1986 we used FORTH in our University Electronic Music class. We used 'Words' to control VCAs & VCOs to create sequencers / recorders for: Moog, Arp and Buchla synths, that we stored on 8" floppies. - THANK YOU FOR THE VIDEO !

  • @Gaafet
    @Gaafet 11 วันที่ผ่านมา

    Those screen savers were so ugly but when I was a kid, the 2000's, they were mesmerizing, those pipes went go on and on, but they went nowhere

  • @charg1nmalaz0r51
    @charg1nmalaz0r51 12 วันที่ผ่านมา

    Seeing the llamatron splash screen triggered some locked childhood memory lmao

  • @Fuzzwah
    @Fuzzwah 14 วันที่ผ่านมา

    20:10 I came to watch some C code, stayed for the shirt

  • @munha666
    @munha666 14 วันที่ผ่านมา

    not from scratch , you use an initial project / template

    • @ncot_tech
      @ncot_tech 14 วันที่ผ่านมา

      @@munha666 yes, that I made myself.

  • @dziuaftermidnight
    @dziuaftermidnight 15 วันที่ผ่านมา

    where can i buy your shirt?

    • @ncot_tech
      @ncot_tech 15 วันที่ผ่านมา

      @@dziuaftermidnight I think they came from somewhere like Shein.

  • @colonelb
    @colonelb 18 วันที่ผ่านมา

    Great video series, I've been playing around with something similar. If it helps, you mentioned the delta time and not being able to figure that out - here's the code I use for that, assuming you have access to <time.h> for your Acon board then there is a clock() function that returns the number of clock ticks since the program started, on GNU it returns the milliseconds as a long. You need 3 global variables: time_this_frame, time_last_frame, and delta_time. Then in the game loop, set time_last_frame to time_this_frame, time_this_frame to clock(), and delta_time to time_this_frame - time_last_frame. That's the simplest way I've been able to figure out how to deal with timing each frame. Hope it helps, cheers!

  • @warrenbullock3165
    @warrenbullock3165 18 วันที่ผ่านมา

    Great videos, if you also include bare metal raspberry pi programming I’m watching that too.

  • @oilovcloves63
    @oilovcloves63 19 วันที่ผ่านมา

    Inspiring stuff, must get my Agon Light 2 setup again and try some of this stuff. Many Thanks

  • @RecordofRadio
    @RecordofRadio 19 วันที่ผ่านมา

    being as old as I am, i remember having to go to the library and find books on coding tricks and things when I was like 10. When I was a wee lad, probably about the same age, I coded a rudimentary pac-man clone in C++ and every step strengthened my skill as a coder because I had to actually work out every bit myself, for the most part. Nowadays I've bumped into quite a few gamedev folks who simply cannot work out a problem if there's not a tutorial on youtube to help out. So I look at my hardcore no-internet up-bringing as a blessing. That said, I do love having an actual game engine built by others these days.

  • @svanholm71
    @svanholm71 21 วันที่ผ่านมา

    Love it! A few minutes in, I was thinking "Yep, I'll join you coding!" ;) What is the background music?

  • @CallousCoder
    @CallousCoder 21 วันที่ผ่านมา

    I adored Perl! I am missing MUMPS, that was a scary language too :)

  • @CallousCoder
    @CallousCoder 21 วันที่ผ่านมา

    Just last week I wrote a partial forth interpreter in a few 100 lines in Zig on my c h a n n e l. With some nice demoes of print colours, a resistor calculator and a 16 bit on screen knightrider scanner. So the ultimate primer for programmers wanting to learn Forth My interpreter being stuck on a modern OS doesn’t actually compile to jmp statements to other immediate words it just reinterprets them. Doing self modifying code on protected operating systems is a bit of a faf these days especially since it’s also all virtual addressing too. It’s definitely possible but not trivial like it was on systems without an OS. And for the purpose of embedded controlling system even the reinterpretation is fast enough. And WASM is a stack based system very much akin to forth as is BitCoin back end.

  • @Netherilt
    @Netherilt 21 วันที่ผ่านมา

    Nice shirt, bro! Love your tutorials!

  • @CallousCoder
    @CallousCoder 21 วันที่ผ่านมา

    On my channel there’s tons of old programming stuff and also new lowlevel stuff (ARM64) and zig. And gems like Forth.

  • @johnhaugabook
    @johnhaugabook 21 วันที่ผ่านมา

    Watching because - overall process is interesting, good fun facts here and there, and; oh - I saw something shiny and got distracted.

  • @MichaelLeeRilee-n3u
    @MichaelLeeRilee-n3u 22 วันที่ผ่านมา

    Open Firmware is a Forth.

  • @klever-kenneth
    @klever-kenneth 23 วันที่ผ่านมา

    "We don't call these problems, we call them design constraints" That cracked me up.

  • @airjuri
    @airjuri 24 วันที่ผ่านมา

    Heh, i made port of my Mega65 game to C64 with C. It was fun excercise.

  • @heavymetalmixer91
    @heavymetalmixer91 24 วันที่ผ่านมา

    The link to your website in the video description is down, do you have a different link for the same post or info?

  • @syntaxed2
    @syntaxed2 24 วันที่ผ่านมา

    You can just check if player is colliding with a wall type tile just before the physics runs and if so disable physics?

  • @LakeEola
    @LakeEola 24 วันที่ผ่านมา

    This is an amazing effort. Well done. Use the right tool for the right job, I agree with you completely. This is not the project to do in assembler. Adding python in where it makes sense is a perfect choice. Python is well equipped for handling data and XML is data. I love 6502 assembler by the way, was my first language. This is quite the labor of love. Good for you. Don't listen to any naysayers 👍🏼

  • @jonwest776
    @jonwest776 25 วันที่ผ่านมา

    Just a thought. Make your rooms different sizes.

  • @grumble2009
    @grumble2009 25 วันที่ผ่านมา

    Great to see the game coming along, but sadly I've no Agon light (yet) to follow along with. Looking forward to some x86 / vga assembly stuff that i can play with in Virtual Box :) Thanks for the videos!

  • @spounka
    @spounka 25 วันที่ผ่านมา

    A great video! Questions I have: - You did notice that your tilemap was slow, but how did you know "Why" it was slow? I find the investigation of such things interesting - You did mention that you're using dimensions as a physics, while it does work, why haven't you for example baked the collisions into convex shapes and just load them with your engine, now I know doing it with the console real-time is slow, but your levels are static, so why not writing a python script for it? it seems way more robust to me as even with bullets and such, these won't be an issue

  • @micaiahstevens8840
    @micaiahstevens8840 26 วันที่ผ่านมา

    SOO you asked why we are here. I have no interest in the Agon; except it's an interesting platform to see you work on. I am here for the C, although I use C# as my go to language. (Didn't even know how to spell Agon.) Although some Pi and other things MIGHT be fun to mess around with personally. I love your style and comments very umm nice explanations a lot of the time. I imagine, and NOT sure I would do it, but I made a Zelda clone on basic, back in the day. Maybe I should revisit that. IF I had the time, money to do it. I always wanted to do a Text based game again. I have a small one in C# core, should revisit that. Then you got to build all the tools to even make a game hehe. I would suggest next time you're doing the Agon hardware. If you could show your debug screen. I imagine it still refreshes weird as it clears the screen each frame. You might put in a second or two of delay to let your eyes adjust while it goes to a low flicker. Some tinkering might get it to a reasonable state. I would be interested in a one-off tutorial, for your basic setup, for python, agon and c setup. Getting a working platform is always the REAL challenge for me. I mean a step-by-step guide. You explained your sprite and tools, but missing some of the connection bits. (AND if you take on a new challenge, seeing a tutorial for that would rock.) SUCH as I have an arcade machine that does blah. I need to take the C to a rom module and install it in the cabinet like this. (As an outrageous example.) Keep up the great work. I am not suggesting PI but would be interested in whatever you had in mind.

  • @bitinsistencia4649
    @bitinsistencia4649 26 วันที่ผ่านมา

    I hug from Brazil!

  • @peterdidow3228
    @peterdidow3228 26 วันที่ผ่านมา

    Coding with hardware limitations is fun! I have a version of asteroids running on an 32x24 LED matrix, Red ONLY and it looks terrible! Terribly fun to code though. Written in python. Also, TILED is a great tool for game dev. I've used it on other projects

  • @Reveletur
    @Reveletur 26 วันที่ผ่านมา

    I like watching for aspirational reasons.

  • @elTurBoss
    @elTurBoss 26 วันที่ผ่านมา

    I like the z88dk dev kit :)

  • @natah_the_ninja6121
    @natah_the_ninja6121 27 วันที่ผ่านมา

    I watch these videos, because I’m a nerd who collects old tech, and I want to make it more fun

  • @kalpi_plays
    @kalpi_plays 27 วันที่ผ่านมา

    I found your videos when i was looking at the rc2014; really liked your presentation style so I stuck around. Have you considered a neo6502 for when you are ready to jump into asm; similar product to the agon but has a real 6502 instead of a ez80 microcontroller larping as a cpu

  • @charlesdorval394
    @charlesdorval394 27 วันที่ผ่านมา

    Thank you for not making "One of those videos" ! And I have to agree, I've been messing with C strings for a while on my current project, it's ... something.

  • @flamingo2946
    @flamingo2946 27 วันที่ผ่านมา

    I watch these videos because I like to pretend I understand what low level programming is. Or programming in general, really. I'd like to see you doing that DOS 3D thing you were talking about. It would give me nostalgia, I think

  • @arronshutt
    @arronshutt 27 วันที่ผ่านมา

    I like the idea of you writing DOS based gaming stuff, and having people shouting at you to fix things..is also engagement!. Also doing stuff on the Raspberry PI, expecially if it's unusual stuff on the Rasberry PI rather than the usual turning on a LED etc. I think I spotted your deliberate mistake in the code. I'll send you my internet driving licence so you can endorse it with my 100 internet points and you can advise me on the monetary fines that have to be paid and what mandated video punishment I need to sit though to atone for my careless observation that allowed me to fall into your trap there ...! ;)

  • @minirop
    @minirop 27 วันที่ผ่านมา

    I enjoy watching programming videos ("low" as venizz5112 said, I hate webdev), and specifically for yours, what hurdles you hit and how you circumvent them.

  • @HenryStrattonFW
    @HenryStrattonFW 27 วันที่ผ่านมา

    "For the shits and giggles" no better reason to give anything a crack

  • @jirihoogeveen3775
    @jirihoogeveen3775 27 วันที่ผ่านมา

    I'm watching this kinds of video's to see how other developers work and think. And dreaming of creating a big game one day. But I'm guessing, that that will take another 20 years :)

  • @diegofloor
    @diegofloor 27 วันที่ผ่านมา

    I love low level programming. I was working on a megadrive game a while ago. Also, you are very entertaining to watch. Half the time I don't know if you have an amazing dead pan humor or you're just unintentionally funny. Regardless, it's a lot of fun!

  • @TheDarkelvenangel
    @TheDarkelvenangel 27 วันที่ผ่านมา

    I'm watching your video because I'm interested in how you are making this game on a limited system. I'm building my own limited system so this is very interesting for me.

  • @kevinpeno
    @kevinpeno 27 วันที่ผ่านมา

    I'm just here for the shits and giggles, learning something new comes second but is certainly part of the experience. Really though, I'm here because its not a typical "gamedev" series and the way you're willing and able to talk to me like I'm there pair programming with you, bouncing ideas off each other and coming up with a solution. Since I can't speak back realtime, I suppose I'm the rubber ducky in this relationship. 🦆🦆

    • @kevinpeno
      @kevinpeno 27 วันที่ผ่านมา

      About your flash drive. Does the Agon support network drives for booting or loading an HDD? You should then be able to connect via eth between the two (crossovers are usually not needed anymore these days) if you want to keep it off the main network. You may also have some luck connecting via USB-C if the Agon supports thunderbolt 3 or some other protocol that allows for USB-C negotiation.

  • @Saboteur709
    @Saboteur709 27 วันที่ผ่านมา

    Low level coding, game programming, fashion influencer, and very funny. What's not to love?

  • @UnderArea51
    @UnderArea51 27 วันที่ผ่านมา

    LOVE this idea! 🎉

  • @jamesfloyd6693
    @jamesfloyd6693 27 วันที่ผ่านมา

    I love your fashion sense sir.

  • @SilasTheSilent
    @SilasTheSilent 28 วันที่ผ่านมา

    Youre cool man

  • @AndrewBorrill1
    @AndrewBorrill1 28 วันที่ผ่านมา

    Nice to see your code examples, it may help the viewers if you add in some extra comments to explain what small blocks of code do, you know what the code does but viewers may not find it easy to decipher. I have been programming since I was at school and I'm now 65! My first experience of assembler programming was on a Science of Cambridge Mk 14. It was a small single board computer with a small led display and a hex input keyboard. Programs had to be loaded into memory, by hand, each time you switched it on! You had two work out the assembler you needed on sheets of paper and then allocate the appropriate hex values to match the assembler mnemonics. Then type them in through the hex keyboard and finally run the program. A very small program could take hours to hand assemble and enter. Pure torture! But back in those days very exciting. Your game task is very interesting so I am looking forward to the next installment.

  • @venizz5112
    @venizz5112 28 วันที่ผ่านมา

    I'm watching your videos because I love "low" level programming languages and game dev. I've tried to get into game dev multiple times with Unity and failed. I think it was because I felt like I was learning Unity too much, and not feeling like I could get much coding done. I saw your first episode of this series, and it 100% made me realize I could just code a game in C++. Huge props for your videos for inspiring me to attempt game dev in C++.