July 2nd, 2024

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 articleLink Icon
Total Annihilation Graphics Engine (2012)

The 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)

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

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

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

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)

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.

Link Icon 11 comments
By @blindriver - 5 months
I still play TA every now and then. It's STILL fun, much more fun than SC2 to be honest, especially with the homebrew units that people seemed to have created over the last 30 years! I remember when I used to play against my cousin before the turn of the century and we would be playing across the continental US east coast to west coast. We maxed out the units to 500, gave each other 30 mins of build time, and then launch massive attacks. It would slow down to something like 1 FPS when the fighting was the most intense but it never crashed and it was rock solid and probably the most impressive piece of software I've seen.
By @loganmarchione - 5 months
For anyone looking to play a modern version of TA, there is Beyond All Reason (BAR).

https://www.beyondallreason.info/

Also the entire game is open-source on GitHub.

https://github.com/beyond-all-reason

By @cmdrk - 5 months
not directly related to the article but Beyond All Reason (open source spiritual successor to TA) is quite enjoyable and I recommend anyone who enjoyed TA give BAR a try.
By @guhcampos - 5 months
Total Annihilation was a big favorite of mine back in the day, and I guess I have to thank him for that, as I had a PC Chips powered Celeron with 32MB of RAM and it was one of the few great games I got to play.

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.

By @psadauskas - 5 months
What a great blog, TA was by far my favorite RTS in that era! Poking around other posts, I found this link to someone examining the Supreme Commander engine, too: https://www.adriancourreges.com/blog/2015/06/23/supreme-comm...
By @Centigonal - 5 months
> Now the whole way that TA did texture mapping was just screwed. Frankly we had no idea what we were doing.

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.

By @on_the_train - 5 months
TA has unreasonable influence on many technical people. I always see it being revered. Love to see it, way ahead of its time
By @maxglute - 5 months
What was the competitive play scene like? I thought TA was much more spectator friendly than the RTS games that blew up.
By @nubinetwork - 5 months
> Except I fucked up and left a bug in there. Ever notice that a lot of the buildings have a weird purple halo? Basically the table broke when dealing with the edge and transparency because I didn't have a correct way to represent that. Then I ran out of time, I think I could have fixed it.

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...