That's cool. How can I learn how to do this? What's the background material?

This is a very good series if you want to build it in rust. https://os.phil-opp.com/

That minesweeper game seems to only use the vga buffer and that blog series explains that tech very well.

I doubt you'd be able to fit compiled Rust into 512 bytes, though.

True, fitting a game and a boot loader into 512 bytes is very impressive. You can build pretty tiny rust binaries if you don’t link the std library though. Check this out for some tricks: https://github.com/johnthagen/min-sized-rust

That blog post explains the vga buffer quite nicely so you should also be able to use the same information when writing assembler.