+==========================================================================+ | The rec.games.programmer FAQ | | Revision 1.3 (15/1/96) | | by gavin@senator.demon.co.uk | +==========================================================================+ This is a FAQ for the usenet group rec.games.programmer. This is mainly intended for people new to this group but anyone should read it. Table of contents: --------------------------------------------------------------------------- Part 1 What is the rec.games.programmer group about? 1.1 Guide to posting on rec.games.programmer. 1.2 What about posting source code? 1.3 What platforms is rec.games.programmer about? Is it only for DOS? 1.4 Are there any other usenet groups that are useful? 1.5 Is there a game programming mail list? 1.6 Questions that should not be asked on rec.games.programmer. Part 2 Frequent questions that occur in RGP. 2.1 What is ray casting? 2.2 What is a BSP tree? 2.3 What is Mode X? 2.4 What games are written in mode X? 2.5 When I try to use the Pel Panning register the screen blanks. 2.6 In 16 colour VGA modes the mode uses an oddly arranged palette. 2.7 Is it possible to use DMA for video memory transfers? 2.8 Can I use a second monitor for debugging my programs? 2.8.1 Can I use ANY second monitor? 2.8.3 What do I need in order to set this up? 2.8.4 How do I set my computer up to do this? 2.8.5 Sometimes my VGA monitor starts up in shades of grey instead of colour. 2.8.6 How do I use my second monitor with my debugger? 2.8.7 Can I use the second monitor in DOS? 2.8.8 What are the disadvantges to hooking up two monitors? 2.8.9 Is there a easy way to output text on the mono monitor? Part 3 Reference Information 3.1 What other documents can I get which are useful? 3.2 Are there any Frequently Asked Questions (FAQ's) that are useful? 3.3 Are there any useful FTP sites around? 3.4 Are there any good programming/games books? 3.5 Are there any good World Wide Web (WWW) pages that are interesting? 3.6 What tools do I need/are availible? 3.7 What compilers are good for games programming? 3.8 Ordering information for compilers. 3.9 IRC channels. 3.10 What if I need more help? Part 1. ------- What is the rec.games.programmer group about? --------------------------------------------------------------------------- This group is mainly about programming games but a lot of posts are about general graphics and programming techniques that sometimes don't readily apply to game programming. This group mainly discusses how to program games and techniques for making games better. If you post any question about game programming, programming or graphics to this group somebody is bound to answer you if you follow the advice and guidelines given in this document. 1.1 Guide to posting on rec.games.programmer --------------------------------------------------------------------------- Before posting any message on rec.games.programmer you should follow these guidelines. Firstly FTP the relevant documents described in question 7. A lot of questions that are posted to rec.games.programmer could be answered simply by looking before posting. Posts that begin with a header like "WANTED: source to display PCX's" are frowned upon and don't usually get replied. If you wanted to write a program to display PCX's and even though you had looked through the FTP sites mentioned, read the files concerning the PCX format and still didn't have a clue then a message like, "I am having great difficulty trying to display a PCX file. I have read the specs of this format but don't understand the header fully. I would be grateful for any help." After sending a message like this you are sure to get a reply with some useful information. To keep people happy make sure that you keep your message width no wider than about 75 characters. This gives enough width for people to quote your post without fouling it up, making it less readable. Posts with lines that are longer than 80 columns are split up by most usenet readers to several lines making it very hard to read. Don't quote somebody's entire message - you only need enough for them to remember what they wrote. Make sure that you don't quote the message header or your SIG doesn't appear twice as this is really annoying to most people. Please keep your postings short. Some people have to pay for their internet connection and don't want to download a 2000 line post which does not interest them in the slightest. Don't post large binary files to this group there are binary groups for this. Upload them to a relevent FTP site if you think that they would be interesting for other people. 1.2 What about posting source code? --------------------------------------------------------------------------- When you want to post source code (unless specifically asked to post your source code) don't post all of it. Only post enough to show your problem - or your solution. Highlight the part that you think is the problem so that anyone reading your post can work out what's wrong. 1.3 What platforms is rec.games.programmer about? Is it only for DOS? --------------------------------------------------------------------------- About 50-60 percent of all rec.games.programmer posts are DOS related but this doesn't mean that it's a DOS only group. A lot of posts are general to any type of platform. Most of the source code posted to this group is in C or C++. Some is in Assembly and Pascal. 1.4 Are there any other usenet groups that are useful? --------------------------------------------------------------------------- There are several groups that are also useful for programming and more general programming related posts should be directed there. Here is a short list with comments about the groups discuss. rec.games.design This group is about designing games. comp.ai.games Artificial intelligence in games comp.lang.asm.x86 Assembly language programming on 80x86 processors. alt.lang.asm Assembly language on all types of processors. comp.graphics.* Several newsgroups concerned about computer graphics. comp.lang.c About the C language. comp.lang.c++ About the C++ language. comp.os.programmer General programming in MS-DOS. comp.sys.ibm.pc.demos Discussion of the demoscene and programming demos. alt.sb.programmer Programming the Soundblaster family of sound cards. comp.os.os2.programmer Programming in the OS/2 environment comp.sys.mac.programmer Programming for Apple Macs comp.unix.programmer Programming on UNIX systems rec.arts.interactive-fiction For Programmers/Authors of text adventures Most of these groups have very good FAQ's that I strongly advise that you read before you post there. Some groups (especially the C ones) have very rigid ideas of what and what not should be discussed. 1.5 Is there a game programming mail list? Yes, To subscribe, send mail to majordomo@inquo.net with the text 'subscribe game-prog' int the message body. 1.6 Questions that should not be asked on rec.games.programmer? --------------------------------------------------------------------------- Some posts such as "Macs are rubbish" and "OS/2 is better than windows" and questions such as "which platform is better?", "what compiler should I use?", "is C better than Assembly?" and especially not "was Doom written in C?" should not be asked because they cause a lot of wasted bandwidth and flames. Also try to avoid posting subjective comments as if they were facts. The most common of these in rec.game.programmer is the opinion of a good framerate. Please do not dissagree with people when they say that something has a good or bad framerate. Everybody has their own opinion of how fast a good framerate is. Please don't reply to a posting where the poster has described a framerate that you feel is too fast/slow with a statement saying it is too fast/slow. A better response would just be a reply stating that it is not what you want, preferably with an acknowledgement of framerate subjectivity so people will observe that you are not making a blanket statement. -proposal: ( subj ack ) this could be used as quick way to denote statements as being subjective. --------------------------------------------------------------------------- Part 2 ------ This section covers common questions that turn up in rec.game.programmer. Much of the questions on r.g.p are looking for resources. If that is what you are after, skip to Part 3. 2.1 What is ray casting? Ray casting is a technique for doing graphics for games like Wolfenstein 3D. The idea is to cast a ray out from the observer point through your data representing the world until you hit an object. The object you hit is the object you draw and the distance the ray traveled describes the size to draw the object. You only draw the object one pixel wide (position of where you hit it) and the height is the scaled size. If you do this for every column across the screen with slightly different ray angles (representing the view angle) you get a graphical view much like castle wolfenstein. ------ 2.2 What is a BSP tree? BSP stands for binary space partitioning. It is a method for storing the layout of objects in 3d graphics. Doom uses a 2 dimentional BSP tree to speed up its rendering. The idea of a BSP tree is that the polygon (or line for 2D BSPs) at the head of the tree will have all of the polygons in front(looking at the polygon directly face on) on the left branch of the tree and all of the polygons behind on the right branch of the tree. If a polygon intersects a plane (ie. nether in front or behind) then the polygon must be broken in two with a piece placed in each tree.Both the left and right subtrees are generated with the same principle with the remaining polygons. The usefullness of this data format I'm not going to explain here because it begins to look like maths. Michael Abrash wrote a good article on BSP trees in the May/June 95 DR Dobbs Source Book. The faq is at http://www.graphics.cornell.edu/bspfaq/ also on x2ftp the is ftp://x2ftp.oulu.fi/pub/msdos/programming/theory/bsp_tree.zip BSP (binary space partitioning) trees by E.Edwards + code ------ 2.3 What is Mode X? Mode X is a tweaked mode. The Mode X faq says ' Mode X is a derivitive of the VGA's standard mode 13h (320x200 256 color). It is a (family) of undocumented video modes that are created by tweaking the VGA's registers.' The pros and cons of Mode X are too numerous to go into here. the faq is at ftp://x2ftp.oulu.fi/pub/msdos/programming/faq/modex.faq ------ 2.4 What games are written in mode X? Epic Pinball, Jazz Jackrabbit, Doom, Wolfenstien, Cannon Fodder? Lots of others. Generally you can tell if a game uses modex by running in a window under Windows or OS/2. If it doesn't work properly then it's probably a tweaked mode of some sort. ------ 2.5 When I try to use the Pel Panning register the screen goes blank. The Index port has a bit that needs to be high. Add 20h to the index when accessing 3C0h. This turns index 13h into an OUT of 33h ------ 2.6 In 16 colour VGA modes the mode uses oddly arranged palette registers In 16 colour modes you get to pick which of the 256 palette registers you use by setting the 16 EGA palette registers to be set to the number of the VGA Palette register. So to make the mode use the first 16 VGA palette registers you should write the numbers 0..15 to the EGA palette registers ------ 2.7 Is it possible to use DMA for video memory transfers? After quite a lot of discussion on r.g.p it was determined that although it is technically possible it is complicated to achieve and the performance was not worth it. It is faster to use the CPU. 2.8 Can I use a second monitor for debugging my programs? (dual monitor subfaq answers by Michael Pohoreski, mpohores@sfu.ca) Yes. Borland and Watcom's debugger support debuging on a second monitor. I've used both Borland and Watcom debuggers with a second monitor. I don't know if the Microsoft, Symantec, etc, debuggers support a second monitor. 2.8.1 Can I use ANY second monitor? No. It must be a monochrome monitor. 2.8.2 What happens if I use/install two VGA cards. DO NOT DO THIS! You'll blow one (or both VGA cards!) 2.8.3 What do I need in order to set this up? A VGA Card, a VGA monitor, a monochrome video card, and a monochrome monitor. The VGA card has a 15-pin connector. The monochrome card has a 9-pin connector. Note: You can use a EGA or CGA card instead of the VGA, but you'll be just be hurting your eyes with the poor resolution of the EGA/CGA. The rule is this: A colour card and a monochrome card can co-exist. The same types of cards can't. 2.8.4 How do I set my computer up to do this? Install a VGA card AND the monochome video card in your computer. Hook the monitors up. Start your computer up. You might have to change your BIOS to VGA/EGA/Color. Your computer should be using the VGA monitor for ouput at startup. 2.8.5 Sometimes my VGA monitor starts up in shades of grey instead of colour. i.e. I run a VGA game, and everything is in black and white (and grey) A. Your VGA card is not getting control, and hence defaulting to monochrome VGA. You'll have to upgrade your BIOS or your VGA card. Note: The monochrome VGA mode is not the same as a monochrome card! 2.8.6 Ok, I've setup everything up and everything works. How do I use my second monitor with my debugger? Watcom automatically detects the monochrome card and will use it. Run Turbo Debugger with /do to use Dual-Display. 2.8.7 Can I use the second monitor in DOS? Type "MODE MONO" to switch to the monochrome monitor. Type "MODE CO80" to switch back to the colour monitor. 2.8.8 What are the disadvantges to hooking up two monitors? If you have an ISA 16-bit VGA card and a monochrome card installed, the VGA card will slow down to 8-bit mode. If your VGA card is a PCI/VESA card, then you won't have any slowdown. Run 3Dbench to test your VGA card's speed for a ballpark figure. 2.8.9 Is there a easy way to output text on the mono monitor? Yes, there is a mono device driver. Just stick it in your config.sys (DEVICEHIGH=), and type DIR > MONO1 after rebooting to see it work. begin 666 monodev.zip M4$L#!!0``@`(`#0M*2#]F,I;V@$``&8"```+````34].3T1%5BY365.]4,]K MTW`4?]\$VZZTC18IGNI7<%\51FB\"!(4#P$]U%6'TRE54,O,P1::*'B+#&5I M8Q`9ZG'>/>2P0RB"9=E:<0BS>AAX\^#BOHT0\1_P/Q@7';OO+\%K&VI0UOL&I\!M0VNYX+O#?`(Z4\TE'2*)(ALX6(5=[;4?9!-Y:%`$G,Q7%B M_CT@6NAF(`C;0>LXMS#RX=!@1+%6K>';E?OJK0K6[ZC5:1'CR4I=4VM5+/TL MC.&;#_"$>C?*SM8TM9).II.'?P-02P$"%``4``(`"``T+2D@_9C*6]H!``!F M`@``"P```````````"``````````34].3T1%5BY365-02P4&``````$``0`Y )`````P(````` ` end ---------------------------------------------------------------------------- Part 3 ------ Resource Information --------------------------------------------------------------------------- A great deal of the questions on rec.game.programmer are things like 'where can I find xxxxx?' or 'Does anyone know of any good books to teach xxxxx?' This section will endeavour to answer as many of these questions as possible. 3.1 What other documents can I FTP that are useful? --------------------------------------------------------------------------- This is a list of very useful documents that are available freely on the internet. All these files are highly recommended and I recommend that you get all of them especially PCGPE. PCGPE: The PC Game Programming Encyclopedia known also as PCGPE is a collection of files related to game programming organised by Mark Feldman. This is an excellent reference and covers topics such as: Assembly Language List of op-codes Scrolling Palletes Mode X 3D VGA tutorials VESA standard SVGA programming Algorithms Texture Mapping BSP Trees Sound Programming Sound Formats Graphics Formats Mouse Joysticks EMS/XMS This file can be found at ftp://x2ftp.oulu.fi/pub/msdos/programming/gpe pcgpe10.zip PCGPE main file patch10a.txt Update PCGPE 1.0 to 1.0a wpcgpe10.zip PCGPE in Windows Help format It would be a good idea to get this file and read the contents before posting to rec.games.programmer. Help-PC: ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/helppc21.zip This is a very good hardware, software, C and assembly reference. Ralf Brown's Interrupt List (four parts): ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/inter45a.zip ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/inter45b.zip ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/inter45c.zip ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/inter45d.zip This is a massive list of interrupts and it's very useful. Introduction to Mode X: ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/xintro18.zip This is a very good introduction to the undocumented mode of the VGA and cards known as Mode X. There is lots of information, a simple C library and pictures of the memory organization. Gavin's Guide to Assembly: ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/asmtutwp.zip This is a great beginners guide to 80x86 assembly written by me. A text version is availible in the same directory as asmtuttx.zip Denthor's Demo Trainers: C++ ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/tut??new.zip Pascal ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/tut??.zip These are a very good guide both to demos and games. It covers: mode 13h, pallete, animation, mode X, drawing, 3D and much more. Zed's 3D Tutor: ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/zed3d050.zip Good introduction on 3D computer graphics with pictures. Information about 3D and shading from VLA: ftp://x2ftp.oulu.fi/pub/msdos/programming/vla/3d_math.zip Lots of useful information about equations and how to use them. Michael Abrash's DDJ Graphics Columns: PS: ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/graphpro.lzh Ascii: ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/graphcol.zip These are extracts from his programming columns in Doctor Dobb's Journal in C/Asm. It covers 3d, polygons, antialiasing and optimization among others. This is the basis of his new book, "Zen of Graphics" and it is excellent. Game Developers Magazine: ftp://x2ftp.oulu.fi/pub/msdos/programming/gdm/ gdm001.zip - Issue 1 gdm002.zip - Issue 2 gdm003.zip - Issue 3 gdm004.zip - Issue 4 gdm005.arj - Issue 5 gdm006.arj - Issue 6 This is an excellent electronic magazine which is published by Phil Inch bi-monthly. It has some very interesting information in it and I recommend it for beginners and experts alike. 3.2 Are there any Frequently Asked Questions (FAQ's) that are useful? --------------------------------------------------------------------------- Here is a list of useful FAQ's which you may find useful. Getting Started in Game Development FAQ: ftp://ftp.accessnv.com/fg/misc/gamefaq.txt DJGPP DOS Game Programmers FAQ (GNU C Compiler): ftp://x2ftp.oulu.fi/pub/msdos/Programming/docs/gccfaq10.zip Tile-Based Games FAQ by Greg Taylor: ftp://x2ftp.oulu.fi/pub/msdos/Programming/docs/tilefaq.12 3D programming information: ftp://x2ftp.oulu.fi/pub/msdos/programming/faq/3d-prog.18 comp.graphics FAQ: ftp://x2ftp.oulu.fi/pub/msdos/programming/faq/graphics.faq comp.graphics.algorithms FAQ: ftp://x2ftp.oulu.fi/pub/msdos/programming/faq/algorith.114 comp.graphics.animation FAQ: ftp://x2ftp.oulu.fi/pub/msdos/programming/faq/animatio.12 rec.games.design FAQ: ftp://x2ftp.oulu.fi/pub/msdos/programming/faq/design.201 Gravis Ultrasound FAQ: ftp://x2ftp.oulu.fi/pub/msdos/programming/faq/gus.faq Mode X FAQ: ftp://x2ftp.oulu.fi/pub/msdos/programming/faq/modex.faq Watcom Games Programming FAQ: ftp://x2ftp.oulu.fi/pub/msdos/programming/watcom/watcom.07 Sega Programming FAQ: ftp://x2ftp.oulu.fi/pub/msdos/Programming/faq/sega1409.faq Binary Space Partitioning (BSP) FAQ: http://www.graphics.cornell.edu/bspfaq/ Source code for BSP FAQ: ftp://ray.graphics.cornell.edu/pub/bsptree/ rec.arts.interactive-fiction FAQ: ftp://ftp.gmd.de/if-archive/rec.arts.int-fiction/faq hhtp://speedracer.nmsu.edu/~jholder 3.3 Are there any useful FTP sites around? --------------------------------------------------------------------------- This is a list of all sites which contain useful information for programers. x2ftp.oulu.fi (130.231.48.141) /pub/msdos/programming This is the best site for programming. It is almost all MS-DOS. It is split into subdirectories for differnet sections and it is very easy to find the file you want. get: ftp://x2ftp.oulu.fi/pub/msdos/programming/00INDEX.ALL This is a list of every file on this site. Read this before posting to rec.games.programmer as it may solve your problem. ftp://x2ftp.oulu.fi/pub/msdos/programming/x2info/x2index.c This program makes finding files on x2ftp.oulu.fi easier. (x2ftp is also mirrored in the USA at ftp.infomagic.com who also produce a CD-ROM with the contents of this archive) ftp.cdrom.com /pub/demos This is mainly a demo oriented site with lots of code for doing various demo effects. There are some very useful files on this site. This stores files that were previously on hornet.eng.ufl.edu and it is bigger and faster. Simtel Though Simtel doesn't have any game programming files it does have quite a few generally programming files that are interesting. Simtel isn't actually on the internet but it is mirrored at: ftp.demon.co.uk (UK) ftp.cdrom.com (US) /msdos/asmutil Lots of useful files for assembly programmers. /msdos/c Large collection of C programming material. /msdos/cpluspls Some C++ code here. Garbo: garbo.uwasa.fi General msdos. /assember Files for assembly programming and some assemblers. /graphics Some graphic programming information. /artificial Some useful files about artificial intelligence. FTP Sites of commercial companies ftp.intel.com Intel - some info but hard to find ftp.microsoft.com Microsoft - lots of info ftp.creaf.com Creative Labs - Sound Cards ftp.borland.com Borland - Programming examples ftp.watcom.on.ca Watcom - some examples ftp.mv.com Dr. Dobbs Journal official site ftp.scitechsoft.com Scitech Software (UNIVBE) ftp.accessnv.com /fg This is the Fastgraph FTP site and it contains the latest version of Fastgraph plus lots of source code for various games and programs which use it. A lot of other useful programs can be found here too. 3.4 Are there any good programming/games books? --------------------------------------------------------------------------- There are only two game programming books at the moment that I would advise anybody to buy, they are "PC Games Programming Explorer" and "Action Arcade Adventures". PC Games Explorer Action Arcade Adventures Dave Roberts Diana Gruber Coriolis Coriolis ISBN: 1-883577-07-1 ISBN: 1-883577-06-3 The game discussed in PC Games Explorer can be found at: ftp://x2ftp.oulu.fi/pub/msdos/programming/misc/alnalley.zip If you are interested in virtual reality then the following book might be the one to get you started. Playing God, Creating Virtual Worlds Bernie Roehl Waite Group Press ISBN: 1-878739-62-X The lastest version of AVRIL (a VR library by Bernie Roehl) can be found at: ftp://x2ftp.oulu.fi/pub/msdos/programming/libs/avril20.zip All three of these authors read this group regually and are happy to answer any questions you may have. [New books need to be added here. I'll get round to that soon] These books are refered to quite a bit on r.g.p {looking for ISBN # still} The Zen of assembly language - Michael Abrash The Zen of code Optimization - Michael Abrash The Zen of Graphics Programming - Michael Abrash Tricks of the Game Programming Gurus - Andre LaMothe, Sams Gardens Of Imagination - ? Sams Teach Yourself Game Programming in 21 Days - ? Sams Flights of Fantasy - Christopher Lampton, Waite The Black Art of 3D Game Programming - ? Waite hhtp://www.waite.com /waite/books.new/BA_3d_Game_Programming/html/ba3dgpcov.html Computer Graphics Principles And Practice - James Foley, Andries van Dam, Steven Feiner and John Hughes. Adddison-Wesley The Graphics Gems Series - Andrew Glassner (editor), Acidemic Press 3.4 Are there any good World Wide Web (WWW) pages that are interesting? --------------------------------------------------------------------------- There are several good web pages that are useful for programming and games information. Yahoo http://www.yahoo.com has the largest list of web pages around and it is easy to find one that will interest you. Here is a list of some pages that are interesting. Game Programming: http://hopper.cs.bsu.edu/homepages/pursley/gameprog/ Game Programming: http://www.ee.ucl.ac.uk/~phart/gameprog.html Game Programming: http://www.ocf.berkeley.edu/~emrek/gp/gameprog.html Game/demo/general programming: hhtp://www.teleport.com/~sabre Gameboy Specs/development/emulator: hhtp://fly.hiwaay.net/~jfohwei General information: http://www.power.net/users/HappyPup/homepage General information: http://www.xraylith.wisc.edu/~ebrodsky/ C programming: http://www.cm.cf.ac.uk/Dave/C/CE.html C programming: http://www.cs.tu-berlin.de:80/~jutta/c/index.html C++ programming: http://www.quadralay.com/www/CCForum/CCForum.html C++ programming: http://info.desy.de:80/gna/html/cc/text/index.htlm Good C++ Style: http://www.cs.princeton.edu/~dwallach/CPlusPlusStyle.html Graphics: http://mambo.ucsc.edu/psl/cg.html 3D: http://www.lightside.com/~dani/ 3D Engines: http://www.cs.tu-berlin.de/~ki/engines.html The PNG Format: http://sunsite.unc.edu/boutell/png.html Gravis Ultrasound: http://www.xmission.com/~grue/gus.html Creative Labs: http://www.creaf.com/ Watcom: http://www.watcom.on.ca/ Borland: http://loki.borland.com:8080/ Scitech Software: http://www.scitechsoft.com/ Siggraph: http://www.siggraph.org/ Computer Literacy: http://www.clbooks.com/ Coriolis Group: http://www.coriolis.com/coriolis/index.html Games Domain: http://wcl-rs.bham.ac.uk/~djh/index.html DJGPP: http://www.delorie.com/djgpp Algorithms: http://www.algorithm.com/ Computer Graphics: http://www.best.com/~bryanw/ Computer Graphics: http://www.mind.net/xethyr/demos/gfx.htm Graphics Formats: http://www.dcs.ed.ac.uk/home/iat/ Infomagic: http://www.infomagic.com DDJ: http://www.ddj.com Intel Secrets: (Undocumented information on Intel Processors) hhtp://www.x86.org/ 3.5 What tools do I need/are availible? --------------------------------------------------------------------------- Before you start programming there are several tools that you will need to get. These include: Compiler, Debugger and Profiler: You need a compiler to actually compile your code into a executable program which you can then run. A debugger is useful (but not needed) for making sure that your code does what it is supposed to and that there are no bugs in it. A profiler is useful for knowing which parts of your program are slow and need to be optimized. A profiler and debugger usually come with the compiler. Libraries for graphics and sound: When you first start you don't want to worry about having to write the code for all the graphics. For this reason there are several very good libraries that you can buy and link into your code. If you are thinking of including sound into your game then you don't want to worry about all the different sound formats and sound cards you just learn to use a certain library. Here is a list of useful libraries availible on the internet. Many of these are shareware and require payment to the author. Note: The filenames given might not be the most up to date version of the file. Please send me the name of a more up to date version. Sound libraries: ================ VAT ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/vat052.zip VAT Watcom ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/vatpm051.zip SMIX Pascal ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/smix117.zip SMIX Watcom ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/smixc117.zip SMIX C ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/smixw121.zip DIGPACK/MIDPACK ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/dmkit150.zip DiamondWare ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/dwstk102.zip GUS SDK ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/gusdk222.lzh Midas ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/mdss040a.zip Ruckus ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/rukc110.zip TinyPlay 286 ftp://x2ftp.oulu.fi/pub/msdos/programming/mxcode/tinyplay.zip TinyPlay 386 ftp://x2ftp.oulu.fi/pub/msdos/programming/mxcode/tnypl211.zip DSIK C ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/dsik_c.zip DSIK Pascal ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/dsik_pas.zip DSIK Watcom ftp://x2ftp.oulu.fi/pub/msdos/programming/mxlibs/dsik205.zip Graphic libraries: ================== FastGraph Light ftp://x2ftp.oulu.fi/pub/msdos/programming/fg/fgl402.zip WGT C ftp://x2ftp.oulu.fi/pub/msdos/programming/wgt4.zip WGT Watcom ftp://x2ftp.oulu.fi/pub/msdos/programming/wgt5beta.zip SVGACC ftp://x2ftp.oulu.fi/pub/msdos/programming/libs/svgacc23.zip Xlib Watcom ftp://x2ftp.oulu.fi/pub/msdos/programming/xlib/xlib06p1.zip Xlib Pascal ftp://x2ftp.oulu.fi/pub/msdos/programming/xlib/xlibp202.zip Xlib C ftp://x2ftp.oulu.fi/pub/msdos/programming/xlib/xlib612.zip YakIcons ftp://x2ftp.oulu.fi/pub/msdos/programming/xlib/yicons24.zip VLA's modex.inc ftp://x2ftp.oulu.fi/pub/msdos/programming/vla/mx2_vla.zip Watcom Mode X ftp://x2ftp.oulu.fi/pub/msdos/programming/watcom/w_modex.zip Mode X Library ftp://x2ftp.oulu.fi/pub/msdos/programming/libs/modex105.zip Mode 13h 3d Lib ftp://x2ftp.oulu.fi/pub/msdos/programming/libs/otm3d95.zip Mode 13h Lib ftp://x2ftp.oulu.fi/pub/msdos/programming/libs/vgl20.zip 3.6 IRC channels. --------------------------------------------------------------------------- There are three interesting channels that are on IRC: #gamecode This is for discussing games and game programming. #coders This is more demo orientated but still useful. #c This is about the C language For more information about using IRC look for the FAQ's for these usenet groups: alt.irc, alt.irc.questions and alt.irc.ircii 3.7 What if I need more help? --------------------------------------------------------------------------- If you still need some more help write to me at: gavin@senator.demon.co.uk I try to reply to every message I get and I will do my best to help you. History: --------------------------------------------------------------------------- 1.0 First Version 1.1 Added questions 8,11,12 and 13. Added Fastgraph FTP site. Added ISBN and Publisher of "Action Arcade Adventures". Added locations of AVRIL and Alien Alley. Added 3D info from VLA. Added XINTRO18.ZIP Reorganised and rechecked sections. 1.2 Added some more Web pages of interest. Added FTP sites of libraries. Added some more libraries. Tried to use a little better grammer and spelling. Added "Master Class Assembly". 1.25 Added more WWW sites. Added Watcom's new address. Added Borland. Modified review of DJGPP. Tried to make sure that the libries mentioned are the latest versions. Added IRC. Added GDM. 1.26 Added more about PCGPE. Removed TOTGPG. Added some WWW pages. Changed HORNET to CDROM. Added CSIPD. Added some more about GARBO. 1.27 Changed a few gramatical mistakes. Added a little more information. Updated some information. Removed non-game programming books and compilers. 1.3 Modified by lerc@aurora.co.nz. Reformatted into parts. part 2 completely new. Minor additions to parts 1 and 3. Web page list reformatted to accomodate longer descriptions. ------------------------------------------------------------------------- Contributers: Gavin Estey (gavin@senator.demon.co.uk) The FAQ Neil Graham (lerc@aurora.co.nz) version 1.3 update Michael Pohoreski (mpohores@sfu.ca) dual monitor information [FAQ END]