How can software rendering be fast?

Started by
17 comments, last by peter_b 19 years, 11 months ago
I was referring to games written entirely in ASM. Yes, I''m well aware of the benefits of ASM optimization, but it''d be stupid to write entire large-scale applications in ASM. It''s a waste of time. There''s a very good reason why high level programming languages were developed.

---------------------------Hello, and Welcome to some arbitrary temporal location in the space-time continuum.

Advertisement
Etnu: Tell Chris Sawyer that (he wrote RollerCoaster Tycoon with about 99% ASM) But I agree, a full scale project with that much ASM isn''t really to recommend.
quote:Original post by Etnu
but it''d be stupid to write entire large-scale applications in ASM. It''s a waste of time.

I can''t see anyone on this thread suggesting that.

The OP talked about "games like halflife, tombraider and quake". All those games use(d) ASM optimized renderers, and that is the trick they used to get decent speeds.
Edit: Ignore me, Jolle beat me to it.

Also, those old games had *much* lower polycounts, vastly reducing the actual amount of pixels that has to be rasterised. And they tend to run in much lower colour depths to allow all sorts of crazy optimisations.

[edited by - PouyaCatnip on May 7, 2004 5:12:36 PM]
Software rendering is still around. Just that noone takes notice.

Here's my humnble contribution.


[edited by - Bad Maniac on May 7, 2004 5:16:05 PM]
JRA GameDev Website//Bad Maniac
This is more of an optimization thread than a graphics thread, really, so [Moved to: General Programming]

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

A real game company would probably use Pixomatic these days rather than rolling their own software renderer. Software renderers can be fast because computers are fast. Half-life was based mostly on Quake source, but Valve had a Quake 2 license as well.

Everyone with a clue already knows this, but assembly is useful for optimization only in certain situations. Abrash''s book on optimization makes this abundantly clear in the very first chapter: time spent optimizing code that doesn''t need optimization is time that is wasted.

Good software renderers may or may not use assembly, but using assembly won''t necessarily give you a good software renderer. Writing entire games or engines in assembly mostly shows people that you are either a demo scene coder or are living in 1995.
http://www.hostileencounter.com/
http://www.theprodukkt.com/
I still use a lot of assembly these days, particulary MMX/SSE for image and vector operations. However, writing an entire game in ASM is an overkill. It can be fun if you''re a dedicated programmer.

One of the things I do with my C++ projects is decompile my optimised EXEs with IDA Pro and analyse how my code is structured. You will learn heaps, and as ALX hinted, your high level coding habits will change and end up writing C++ code that favours the optimiser.
Latest project: Sideways Racing on the iPad

This topic is closed to new replies.

Advertisement