3d games

Started by
10 comments, last by TTK-Bandit 15 years, 4 months ago
Does or has any person/company written a full 3d game in assembly?
Advertisement
GBA games(especially 3D ones) would have to have been made in assembly, as would any SNES games(star fox) or genesis games(virtua racing, most 32X games), and Payback for the GP2x was written in 3D
GBA games do not, in fact, have to be written in assembly. There are several C++ compilers that can make games for the GBA. DevKitPro (the suite I use for homebrew GBA) includes one, and it would not surprise me in any way if the official Nintendo SDK had one too. Just a minor correction. IDK about the other platforms listed, though.

@ the OP:
Having done a small amount of x86 ASM, I think it would be a major PITA to get a 3D game working in it, especially since most of the APIs were developed for a higher level language. It would be far faster (development time wise), and therefore more profitable, to develop in those languages, so it is unlikely for there to be a fully complete 3D ASM game. However, I'm sure a more knowledgeable person could come up with a better response.
Was one of the earlier unreal engines written in asm?
And Railroad tycoon, this is just something I have in the back of
my head so _Very_ possible im wrong here..

Stefan
Quote:Original post by Veslefrikk
Was one of the earlier unreal engines written in asm?
AFAIK, they contained many, many ASM optimisations, but I don't recall any actually being written in assembly. Once C compilers became even close in performance to hand-written code, it ceased to be cost effective to develop in assembly.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Quote:Original post by swiftcoder
Was one of the earlier unreal engines written in asm?


Quote:Original post by VeslefrikkAFAIK, they contained many, many ASM optimisations, but I don't recall any actually being written in assembly. Once C compilers became even close in performance to hand-written code, it ceased to be cost effective to develop in assembly.



Wow, I wonder how either of these thoughts spread, as Tim Sweeny has been very proud of writting Unreal Engine without needing -any- ASM for optimizations.

All of the Unreal engines shares the same lineage, UE3 evolved from UE2 and UE2 from UE1 (or 1.5 as it may be) large portions of the core code remains unchanged (utility classes, BSP traversal, collision) and UE has alwasy been devoid of ASM. In fact alot of unreal is written in UnrealScript which is a comparitivelly high-level language, and the UnrealEd 1 was written in Visual Basic.

It's ID and Carmack's games that are known for their ASM optimazations.
I don't know of any game or company that had everything in 100% assembly in the 3D pipeline.

It would just be a very long nightmare, especially if you had bugs and had to debug it!

It's possible though if anyone feels crazy enough. :P I'm not sure I have the patience and will power to put myself through that.
As far as I know, it actually wouldn't be optimal to write it by hand in assembly anyways. Three main reasons.

1) Obviously, development time
2) Portability
3) Efficiency

Writing a couple of often called functions in assembly may be advised for hardware level stuff. Otherwise, most mature compilers (depends on hardware and compiler implementation though) will be able to optimize better than hand coded assembly.
invertedstick.com
Quote:Original post by monp
Does or has any person/company written a full 3d game in assembly?


Off course. Writing games fully in assembly was still quite common 20 years ago. C compilers were still somewhat slow and they didn't do any optimization: if you wanted a variable in a register you had to use a specific keyword for that!

So a lot of the 3D games of that era were likely to have been written in assembly (especially those made by amateurs/small teams that didn't see portability as the main issue).
Quote:
It's ID and Carmack's games that are known for their ASM optimazations.



Right you are; well, sorta. You said games, plural, when I do believe that it was in fact just one game, DOOM, which used an ASM renderer. This was, of course, way before the days of 3D video cards, so rendering quickly with 512K of video ram needed direct implementation through assembly.

Unreal wasn't released until 3D video cards were becoming the standard. Wasn't the original Unreal released around the same time as Quake 2?

Quake 1 may have used the same sort of assembly rendering routine that DOOM used, but I don't think it was used or needed after that...

This topic is closed to new replies.

Advertisement