Total Annihilation Graphics Engine (2012)
The article details Jon Mavor's work on Total Annihilation's graphics engine, overcoming hardware limitations and implementing optimizations like caching units as sprites and improving image quality. Mavor's dedication and technical insights are well-received.
Read original articleThe post discusses the development of the graphics engine for Total Annihilation (TA) by Jon Mavor. He joined the team in 1996 and faced challenges due to hardware limitations and the use of fixed-point math in the engine. Mavor worked on improving unit rendering performance, image quality, and adding new features. He implemented techniques like caching 3D units as sprites, splitting buildings for animation efficiency, and handling shadows differently for units and buildings. Mavor also addressed image quality issues by anti-aliasing buildings and optimizing texture mapping. Despite encountering some bugs, he managed to enhance the rendering process significantly. The post reflects on the complexities faced during the development process and highlights Mavor's dedication to refining the graphics engine for TA. Additionally, it mentions his interest in continuing to explore similar game development challenges in the future. The comments from readers express appreciation for the insights shared by Mavor regarding the technical aspects of game development.
Related
Eight million pixels and counting: improving texture atlas allocation in Firefox (2021)
Improving texture atlas allocation in WebRender with the guillotiere crate reduces texture memory usage. The guillotine algorithm was replaced due to fragmentation issues, leading to a more efficient allocator. Visualizing the atlas in SVG aids debugging. Rust's simplicity and Cargo fuzz testing are praised for code development and robustness. Enhancements in draw call batching and texture upload aim to boost performance on low-end Intel GPUs by optimizing texture atlases.
Homegrown Rendering with Rust
Embark Studios develops a creative platform for user-generated content, emphasizing gameplay over graphics. They leverage Rust for 3D rendering, introducing the experimental "kajiya" renderer for learning purposes. The team aims to simplify rendering for user-generated content, utilizing Vulkan API and Rust's versatility for GPU programming. They seek to enhance Rust's ecosystem for GPU programming.
Programming Like It's 1977
The article explores programming games on the Atari VCS, a pioneering hardware platform from the 1970s with constraints that inspired creativity. Coding in 6502 assembly language offers a retro experience. The Atari 2600+ release supports old hardware for modern gaming. Learning on the Atari VCS reveals early programmers' challenges and solutions, fostering creativity.
Apple II graphics: More than you wanted to know
The article explores Apple II graphics, emphasizing its historical importance and technical features like pixel-addressable graphics and sixteen colors. It contrasts with competitors and delves into synchronization challenges and hardware details.
Getting the World Record in Hatetris (2022)
David and Felipe set a world record in HATETRIS, a tough Tetris version. They used Rust, MCTS, and AlphaZero concepts to enhance gameplay, achieving a score of 66 points in 2021.
https://www.beyondallreason.info/
Also the entire game is open-source on GitHub.
I think I still own the CD-ROMs and the very awesome soundtrack is playable on a CD Player, as it used track 1 for data and the rest for audio, just like Sega Saturn games.
BTW the plot from Total Annihilation would make for a very good TV Show, I wish someone picked up the rights.
I worked on an open-source TA successor game way back when, and I figured mapping a texture off of a big atlas of different textures to each quad of your model was just how old games did things. I am just now realizing that this level of jank was unusual.
No I can't say I ever noticed that... and I've probably played thousands of hours, including playing through the entire campaign for both sides...
Related
Eight million pixels and counting: improving texture atlas allocation in Firefox (2021)
Improving texture atlas allocation in WebRender with the guillotiere crate reduces texture memory usage. The guillotine algorithm was replaced due to fragmentation issues, leading to a more efficient allocator. Visualizing the atlas in SVG aids debugging. Rust's simplicity and Cargo fuzz testing are praised for code development and robustness. Enhancements in draw call batching and texture upload aim to boost performance on low-end Intel GPUs by optimizing texture atlases.
Homegrown Rendering with Rust
Embark Studios develops a creative platform for user-generated content, emphasizing gameplay over graphics. They leverage Rust for 3D rendering, introducing the experimental "kajiya" renderer for learning purposes. The team aims to simplify rendering for user-generated content, utilizing Vulkan API and Rust's versatility for GPU programming. They seek to enhance Rust's ecosystem for GPU programming.
Programming Like It's 1977
The article explores programming games on the Atari VCS, a pioneering hardware platform from the 1970s with constraints that inspired creativity. Coding in 6502 assembly language offers a retro experience. The Atari 2600+ release supports old hardware for modern gaming. Learning on the Atari VCS reveals early programmers' challenges and solutions, fostering creativity.
Apple II graphics: More than you wanted to know
The article explores Apple II graphics, emphasizing its historical importance and technical features like pixel-addressable graphics and sixteen colors. It contrasts with competitors and delves into synchronization challenges and hardware details.
Getting the World Record in Hatetris (2022)
David and Felipe set a world record in HATETRIS, a tough Tetris version. They used Rust, MCTS, and AlphaZero concepts to enhance gameplay, achieving a score of 66 points in 2021.