Sign in to follow this  

3d games

This topic is 3285 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites
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...

Share this post


Link to post
Share on other sites
I am writing a win32 opengl fps engine in pure assembly and it is taking much longer than if i had used a higher level language.
I am doing this purely for the learning experience and personal satisfaction.
I would not recommend doing it this way under any type of deadline.

Writing a fps game engine in assembly is like trying to eat an elephant, you just have to keep focused and take it one 'byte' at a time...

Share this post


Link to post
Share on other sites
Quote:
Original post by sweetbread
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.

In fact, even idTech4(Doom3) uses a lot of asm optimizations..just check the sdk and you'll see it.
dunno about idTech5.

Share this post


Link to post
Share on other sites

This topic is 3285 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this