In the spirit of the holidays, this is some plain-old fun. We’ve talked about video games implemented in FPGAs before – https://digilent.com/blog/?s=game – but what about the other way around?
At this point there’s a long history of video games incorporating principles of computer engineering, after all, the people working on them are all intimately familiar with these principles, many being programmers themselves. This article aims to go over some of these, with a particular interest in those related to the FPGA space.
- Minecraft’s Redstone systems allow players to implement digital logic circuits in-game, allowing them to move blocks, route mine carts, and build entire computers. The MinecraftHDL mod allows you to use the same hardware description languages used to describe circuitry to be implemented in FPGA fabric to design these complex pieces of in-game logic.
Here, redstone circuits and pistons with varying activation timings push and pull blocks around, creating a walkway through an otherwise blocked off wall.
- Turing Complete, in addition to allowing users to play through what would otherwise be multiple semesters of electrical and computer engineering curriculum, by the end allows users to export the entire processor that they’ve designed to Verilog. This description could then be imported into a tool like Vivado, synthesized, implemented, and loaded onto an FPGA board.
An unoptimized solution to one of the levels midway through the game, a 3 bit binary decoder built from logic gates.
- Factorio, in addition to its deep system-design focused gameplay (and excellent dev blog), features a circuit network system that is another case of video game designers implementing systems that use many of the core skills of digital logic design. Modders took this to the extreme and built tooling for these circuits to be written using hardware description languages: https://github.com/Redcrafter/verilog2factorio.
A simple circuit network used for resource prioritization – crystals are held on a belt unless a box is filled to a specified level.
For many, these games are a great entry point to the world of digital design and computer engineering and can build lifelong fascinations with these topics. If someone in your life is interested in these topics, any of these games could be a good way to build their interest and abilities. If they want to dig in further, the Basys 3 is well suited for future FPGA engineers, providing a variety of input/output features to help flatten out the learning curve: Shop the Basys 3 here.
Have any other examples of games that highlight aspects of digital design? Sound off in the comments!