Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!apple!olivea!uunet!stanford.edu!neon.Stanford.EDU!flamingo.Stanford.EDU!espie From: espie@flamingo.Stanford.EDU (Marc Espie) Newsgroups: comp.sys.amiga.programmer Subject: Re: Lemmings - a tutorial Part V (last) Message-ID: <1991Mar27.211819.19370@neon.Stanford.EDU> Date: 27 Mar 91 21:18:19 GMT References: <23837@well.sf.ca.us> Sender: news@neon.Stanford.EDU (USENET News System) Distribution: ca Organization: LIENS, ENS, 45 rue d'Ulm, Paris (France) Lines: 140 In article mykes@sega0.SF-Bay.ORG (Mike Schwartz) writes: >In article <23837@well.sf.ca.us> farren@well.sf.ca.us (Mike Farren) writes: >>mykes@sega0.SF-Bay.ORG (Mike Schwartz) writes: [stuff deleted] >>>The Amiga is NOT a Mac and it is NOT a PC. >>Then why do so many game developers keep treating it like it is? One >>of the things the Amiga can do that those machines can't is to run a >>full and fast multitasking OS - why are you so insistent that the first >>thing we should do is throw that away? > >The Amiga is capable of doing awesome video games if you program it right. >The 68000 is not really that fast, and the operating system is fast only >when you compare it with Unix. Game developers treat the Amiga like it >is a PC by using the OS. You can't take over a PC, because you need the >BIOS to interface to a variety of hardware configurations. The multitasking ??? hey ! There aren't only amiga 500 with 512 K around. >ability of the Amiga is certainly impressive, but the Amiga has other >qualities that video games often need to stress more. Like the blitter, >copper, audio, etc. Most of the PC people I have seen that move over to And the new agnus chip, and the third party diskdrives, and the old amigas 1000, and the new 3000 with os2.0, and the hurricane cards and... >the Amiga struggle with volumes and volumes of poorly illustrated RKM >manuals and typically don't make games that I rate very high. Well, there should be the programmer interface manual going out. Anyway, RKMs are intended for people who know a bit about operating systems, not PC type guys (say again ? what OS ? Ah the BIOS, you mean:-) ) > >The Amiga operating system is not a high performance video game operating >system. BOBs are slower than what I use. Intuition takes 30% of the CPU >time when you just move the mouse around (check out a CPU performance >monitor on a 68000 machine while moving the mouse). Layers are totally >unnecessary and way too slow. Exec tasks require a minimum of 2K of stack >each, while any game I ever do needs only 512 bytes of stack for 80 tasks >under my own kernel. > >You mention in your lecture/article stream that the OS steals 80K of >RAM (that is almost 20% of what you get on a 512K machine). Even if I >don't need that 80K for the game, I can always find something useful >to do with it (like adding instrument samples for the music driver). How about checking the configuration of the machine you use ? If your game is designed for 512K, maybe (just maybe) you could preserve the OS when running on >1Meg machines. If you're really good, you can even check the speed of the processor and leave part of the OS running... How about a download on your a3000 while you're playing an arcade game ? Since the blitter has a 32 bit path, this means that *even* coprocessor stuff runs twice as fast as on a 500. Plenty of time left... F18, for instance, works much better on >1.5meg machines. And it runs with a 68030 at an impressive speed... > >The ROM Kernel routines have many many bugs in them that you end up >programming your way around. It is not lazy to want to avoid the Disregarding the fact that there aren't so many bugs around (if you're used to game machines, maybe you don't respect multitasking rules :-), Commodore is working on 2.0, which will be more stable and better... and break most arcade type games. What about 68030 and MMU ? Are they a bug ? What the heck, perfectly reasonable self-modifying code BREAKS when running under them. >hassle. It is just more cost effective to make the best games the >machine can do and to make them as fast and often as you can. > >The only thing that the OS gets for you is the ability to use hard >disks. If commodore were smart, they would make ROM routines >accessable for video games to access the hard disk when the OS is not >running. This is really what the machine needs. > >It may shock you, but I actually do much more programming of the Amiga >in 'C' under the OS than I do taking it over. When you make a game >that is 40 Megs worth of source files (graphics, sounds, code) on hard disk >and ends up on 2 880K disks, you need to write a lot of programs to >manipulate the data. IFF format, for example, is fine for a source file >format, but wastes disk space in a product. > >Most people who program the Amiga don't have the ability (or gumption) >to write in assembler language. These are the people who I would >call lazy. Most people who program the Amiga don't have the ability >to write their own native operating systems that outperform the ROM >Kernel, so for them the OS is the only choice. In my case, I write >assembler language because I can. I take over the machine because >I can. People actually pay for what I program, so in order to give >them the best I can do, I go the extra mile. It is ridiculous to >say that someone who goes to the extra effort that assembler language >programming takes is lazy. Most of the code I've seen in Assembler does atrocious things and is fairly unreadable. Code written in C tends to be cleaner... And I know some people who don't know ANYTHING about high-level languages and Operating Systems. For them, assembler is the easiest way. Assembler vs C: compare IFF SMUS/soundtracker. On one hand, you have a fairly reasonable format, not incredibly effective. On the other hand, you have a highly effective memory dump, with major problems. - VERY bad design. Features like sample length/repeat stuff should be coded with the sample. Several different versions exist, all are subtly incompatible with each other. - not supple. Does it support iff sample ? Does it support fibonacci compression ? - hardware dependant... the difference between NTSC/PAL kills it. > >Have you ever taken over the Amiga? I bet if you did, you'd change >your tune. I on the other hand have done things both ways (using the >OS and taking over), and the power you gain by taking over more than >offsets the capability to multitask your game with other programs. >Open your mind and give it a try, then we can really have a productive >disagreement. Again: you can take over and keep the OS in a corner, that is easy to do. You can even partly take over and leave os stuff running. Ok, what I've said doesn't apply to all games. But I'm sick of seeing many games breaking the OS for gratuitous purposes. Why is Shadow of the Beast so badly protected ? Why does full metal planet take over the machine ? Why does Populous crash so often ? Why do I spend so much time making BROKEN games running ? installing bootblocks, patching codes, trying things out ? Why have so many games decided the joystick should go into port 0 ? Is this so difficult to add an option (and leave my mouse where it is) ? I can understand that you feel personally attacked by what Mike Farren says. So, alright, you're a nice little programmer. Now, look at existing games... Don't you feel a little uneasy about some of them ? >******************************************************** >* Appendix A of the Amiga Hardware Manual tells you * >* everything you need to know to take full advantage * >* of the power of the Amiga. And it is only 10 pages! * Which is the surest way to break things. You should *at least* read the recommendations at the beginning of the RKM. >******************************************************** Marc Espie (espie@flamingo.stanford.edu)