Mac OS 8 & 9
    Mac OS X
    Source Code
    Executable Demos
    Collision Detection
    Creating Icons
    Game Dev
29 July 2012 : That's all folks! After years and years of neglect, PIGE has been retired, so there will likely be no further updates in the foreseeable future.

14 July 2011 : Cleaned up some links and added two book references to the A* page.

24 June 2008 : Added an updated version of the OpenAL project, which includes an Xcode version. Checked for broken links

10 November 2005 : Added some links for Java examples of the OpenAL example.

28 June 2005 : Made some minor corrections to the OpenAL tutorial page. Made a few cosmetic changes, and checked for any broken links.

30. May 2004 : Added some new code to main.cpp which adds the getFPS() function. getFPS() calculates the frames per second and displays the rate as a bitmap font in the top left corner. Printing the font uses GLUT, and is much simpler than many other methods of displaying fonts. The GLUT method may be somewhat limited, but it works well for this case.

28. December 2003 : The downloads page has the new additions for Windows and Macintosh projects, source code, and demos for PIGE and other related programs.

15. December 2003 : Added the source code for the Mac OS X version of the PIGE project. I intend to get the Windows version put up...someday, hopefully 'soon'.

9. December 2003 : Yet more additions to PIGE. Added the Crate and OpenAL demos (along with the CodeWarrior project). Updated the Windows Compilation page for easier instructions to create OpenGL and OpenAL applications under Windows and CodeWarrior.

8. December 2003 : Added the Windows version of the OpenAL demo. The a.wav, b.wav, and c.wav files also need to be downloaded and saved in the same directory as the executable file. The source code for it is main-openal.c.

18. November 2003 : Added two new pages (Crate | Room) featuring screenshots of PIGE in action. The two parts of the final thesis have also been posted in the Downloads section. They are available as PDFs.

31. October 2003 : Made some updates to the collision detection page and its links.

21. October 2003 : Erased a lot of the collision detection material, but it will be replaced with the official material from the completed thesis.

3. October 2003 : In light of noticing that my OpenAL tutorial is a link on the main page of OpenAL.org, I've updated the tutorial, flushing it out further with material from the completed thesis.

14. July 2003 : Spent the past several weeks on completing the code (collision detection works now to some degree). Even when I was "almost" done, it still took around another 20 hours to get everything printed and finished in the end.

14. April 2003 : I passed my Master's Orals (muendliche Pruefung) on 8. April 2003, so I've been busy finishing off the rest of my thesis. Fun, fun, fun.

6. April 2003 : It seems that the newer Creative OpenAL SDK installer puts the OpenAL Framework for Mac OS X in the /Library/Frameworks folder instead of the /System/Library/Framework folder where everything else is. Got footsteps to sound when the character is walking about. The only problem I had was I forgot to add the alutInit() call in the main() function, so it was having problems with the buffers. Oops. But that was just a small problem, and everything works well, now. :)

4. April 2003 : Worked further on the demo. Finally got the floating ball to change colors. Needed to convert the randomly changing ints to floats, plus I was referring the wrong variables. Oops. Why NOT to program when you are tired...also this shows the benefits of leaving a program and coming back later. One finds stupid mistakes later on. Also made a ceiling texture and updated the LoadGLTextures function so it is more modular and easier to load in new images. Also worked on the write up of the thesis some, too.

3. April 2003 : No, I didn't stop working on the project, I've been doing mostly the write up part of the thesis for the past few days. It has quite a bit of meat on it now and just needs to be flushed out a little more. The collision detection part will probably be the most work to do to finish it off for now. FINALLY got that idiotic Windows-OpenAL bug fixed. It kept returning an Unexpected Exception error when trying to load in the sound files with alutLoadWAVFile. The last parameter, a char *, needed a char variable declared like this in the function &foo. So that is a great success that I was able to get that figured out.

28. March 2003 : Installed Visual C++ onto the Windows box to see if that will help with the OpenAL problem under Windows. My guess is it won't, but it doesn't hurt to give things a shot. Also worked on the write-up of the thesis.

27. March 2003 : Worked on write-up of the thesis.

26. March 2003 : Figured out why the Mac OS X version of the Texture demo kept crashing. I forgot to put the crate.tga image into the build folder since that is where the executable runs. Once I did this, the program ran properly. Also modified the code slightly so it returns an appropriate error to stdout instead of just crashing with no proper response. Worked plenty on the write up. Even without much of the source code, the thesis is at 30 pages. Especially once the demos are flushed out properly, the thesis should grow to at least 40 to 50 pages. Perhaps much more once the source code is added in the appendexies (sp?). A good sign might be that the programming is coming close to an end and the paper work needs to be completed and polished off.

25. March 2003 : Got the textures to now load in Windows. Same changes as with Linux, except it HAD to have the texture[1] to be an unsigned int instead of an unsigned long type. Otherwise, nothing needed to be changed. Took some screenshots to show how things look under different operating systems. Also learned how to take a screenshot with RedHat 8.0. Same as Windows, just press the Print Screen button, except RH8 is real slick. It pops up a window asking what to name the screen capture. Very cool. Even cooler is when one opens up the home directory in a window view (Finder for Mac folks, Windows Explorer for Windows people) and double-clicks on an image. The image is viewed within that window, and a scroll wheel will allow the user to zoom in or out. Yet another cool thing with Linux. Now, time for a stupid question. Why doesn't Microsoft ever come up with cool stuff like this? Oh, yeah, because they are Microsoft, and Microsoft and innovation never go together. That is possibly even worse than good and morning appearing in the same sentence.

24. March 2003 : Got textures to load in Linux. I used an old Mac OS 8/9 version of a spinning crate, and I only needed to make a few small modifications to get it to work correctly under Linux. Combined the LoadTGA.h and LoadTGA.cpp files into one header file (so not to confuse between C++ and C) and removed any unnecessary include files ("tk.h") or made the necessary modifications ( instead of just ). Also, in the main.c file, the unsigned long texture[1] needed to be changed to an unsigned int texture[1] so no errors would result. Even with the error, the program seemed to run just fine.

23. March 2003 : Windows 98 (with Codewarrior 5) considers the alutLoadWAVFile prototype to be alutLoadWAVFile(char *, int *, void **, unsigned int *, unsigned int *, int). Found a new OpenAL link: http://www.gel.ulaval.ca/~dumais01/genu/tutorials/AdvanceTutorial2.html. Later worked on the write up of my thesis. The intro is close to complete. The first 9 pages are also close to done and organized. The conclusion is in decent shape. The porting section will have extra material added to it, but it is probably about half done. I have a good idea on how to modify the OpenAL section.

22. March 2003 : Got an OpenAL demo to compile under Windows 2000 (with Visual C++ 6.0), but when run from VC++ it gives some nonsensical error and doesn't start. If the executable is run from a Windows Explorer window, it comes up with this error: Entry Point Not Found : The procedure entry point alEnvironmentfIASIG could not be located in the dynamic link library OpenAL32.dll.

21. March 2003 : g++ -I/user/X11R6/include/ -I/usr/X11R6/include/X11 -L/usr/X11R6/lib -lXt -lX11 -lXmu -lXext -lXi -L/usr/local/lib/ -lopenal -lGL -lGL -lGLU -lglut -o openal openal.cpp

open /dev/[sound/]dsp: Resource temporarily unavailable fcntl: Bad file descriptor init() - No errors yet.init - no errors after alGenSources

export LD_LIBRARY_PATH="/usr/include:/home/admin/Mesa-5.0/include/:/home/admin/openal/openal/include/:/usr/local/lib/"

Without the /usr/local/lib/ being in the library path, it will not be able to 'find' the libopenal.so.0 library in the /usr/local/lib/ directory, even if it does exist.

Woo-hoo! Got OpenAL to work under Linux. Had some problems because of ONE LINE of code. In the init() function, there is a alutInit() call (there is already another alutInit() call in the main() function), and so this seemed to tie up the sound resources under Linux. Mac OS X seemed to have no problem with this, however. These are the errors which will result if the alutInit(0, NULL) line is in the init() function.
open /dev/[sound/]dsp: Resource temporarily unavailable
fcntl: Bad file descriptor

20. March 2003 : Worked on the write up of my thesis. Compiled the picking3d.cpp program under Windows98. No problems, whatsoever. Just needed to rename the header file to . Tried using a Makefile to get the picking3D file to work under Linux, but it barfed up a bunch of garbage, as if it couldn't resolve all of the 'gl' and GLUT functions. However, after using this command-line command: gcc -I/user/X11R6/include/ -L/usr/X11R6/lib -lX11 -lXi -lXmu -lglut -lGL -lGLU -lm -o picking3D picking3D.c it worked fine. I renamed it to be a standard C file and commented out the library, so it worked perfectly fine as a .c file instead of a .cpp.

19. March 2003 : Tried to compile OpenGL programs under Linux (Redhat 8.0). Had some trouble at first and kept getting this error when compiling: cannot find -lglut I eventually decided to reinstall Mesa and the Mesa demos (the Mesa web site had some good tips on how to get things working properly), and after doing that, things worked great! Still, somewhat frustrating, but not as bad as Codewarrior was with Windows.

17 - 18. March 2003 : Die, CodeWarrior, die! Now, don't think that I have some murderous intentions towards Codewarrior. I'm just speaking German, meaning "The, CodeWarrior, the!" Okay, you got me. CW is being highly irritating. It took over an hour to get it to set up with OpenGL and avoid odd errors. Eventually I got it working.

16. March 2003 : I'm seriously beginning to wonder if I might be able to change my thesis to a Why I Hate PCs manifesto instead. But there is little wonder why I waited so long to have to return to the PC to port PIGE. Here are the multiple problems I am having with this idiotic PC system.

Linux did not want to play mp3 and wave files on the hard drive (however, with the SB 512 PCI it would play CDs). After getting the proper drivers, this would all work fine under Windows 98. Okay, so the only problem lay in getting audio files to play from the hard drive, go to the sound card and play through the speakers. I tried a different sound card, a SB 16 PCI. Still same problems, if not worse. It didn't even play CDs. So I took out the SB 16 and replaced the SB 512. Then I started up the computer. The computer hummed, but nothing appeared on the screen. I checked all the cables, power, etc, etc. Still nothing after restarting the computer. So I connected the monitor to my Mac. It worked, so that wasn't dead. I removed the video card from the PC, reinserted it, reconnected the monitor. NOW it finally works. Also there is no sound card, but I noticed that there were some sound ports connected right to the motherboard. So I connected the the speakers to the on-board audio ports. I started up Redhat 8.0. I finally heard noise! However, the CD doesn't work unless I connect speakers or headphones directly to the headphone jack on the CD player. Okay, that's liveable. Now for the Windows test. Windows isn't happy with anything. It won't play CDs, it won't play audio files. It's just pissed off. So to eventually test things for both Linux and Windows, I'm either going to have to get some more speakers and hope that I can have both the sound card and the on-board audio working at the same time for both Windows and Linux. Either that, or figure out how to cancel out the on-board audio jacks under Linux or forward them to the sound card.

14. March 2003 : Put a SoundBlaster 16 PCI into the PC to see if Redhat 8.0 would play nicer with that card than the SB 512 Live! I was using. No better luck. I hate linux sometimes.

12. March 2003 : Worked on getting the icon to track properly with the real mouse cursor. It is coming closer. Found out that there needs to be different mouse sensitivities for the x and y directions for some reason. mouse_sensitivity_x is set to 0.0009799849 (I can't remember how I came up with that number, but it works), and mouse_sensitivity_y is currently set to 0.0013. This seems to work pretty well for the most part. Might need to tweak it a tad more. Worked on creating some new wood and stone textures, also.

11. March 2003 : Correcting the rotation/movement problems with the PIGE demo. It now works! Yea!

9. March 2003 : Got the small rotation/movement demo to work properly.

8. March 2003 : Worked on a smaller demo to get rotation and relative movement working properly.

7. March 2003 : Worked on rotation and movement, which seems a little odd right now. I can either get movement to work properly, but the rotation isn't centered properly, or the rotation will work properly, but movement will only go along one line.

6. March 2003 : Moved over some other code from the October 2002 version of PIGE which wasn't in the current version. Created a different DO icon (a hand). Had some odd problems, but I finally realized the problem stemmed from that the image wasn't originally square (128x128), so all that would show up would be a white square or it would crash the program when attempting to start. Made some additions to the Creating Icons tutorial, and also took a snapshot of the process. Will add it eventually.

5. March 2003 : Worked on adding more content to the demo room. I now have a floating ball, added a raised section of the floor, and some walls for a bedroom. Also realized that this version is a little older than what is on my laptop. Will have to make some small additions from the other version.

4. March 2003 : 5 minutes later...found out the problem. I removed some glRotatef() statements, and that corrected the clipping problem.

3. March 2003 : Finally was able to overcome a problem I've been attempting to figure out for several months. How to lay a '2D' image over the rendered 3D world. Thanks to Daniel Oberhoff for the helpful source code. Unfortunately, there is one odd side effect. When the icon is moved across the screen to the right, typically the left part of the image begins to get clipped off. Further the icon moves to the right, more of the icon disappears. Still, it is nice to have this problem solved to some degree.

2. March 2003 : Got the full screen mode to work in Mac OS 10.2. I had to download the LATEST build of GLUT 3 for this OS, recompile it, and then copy the new framework over to the Frameworks folder. After that, it worked fine. Probably just some error with OS 10.2's implementation of GLUT.

26. February 2003 : Worked further on the collision detection demo. Probably going to have to rip it appart and start mostly from scratch. Just removed unnecessary files from the project for now. Had a few odd problems in loading in the world data. Such as having both a local and global variable, and the local one to a function was containing the data the global variable needed, so nothing was appearing properly. Odd stupid problems one encounters at times.

24. February 2003 : Worked a little on the collision detection demo.

21. February 2003 : Worked on loading in a world for the collision detection demo.

18. February 2003 : Read about viewing and projections in the OpenGL Red Book. Downloaded the latest version of the Glut framework (3.0.1) for Mac OS 10.2.4 (Feb. 14 version). Here are the instructions on how to download, compile, and install it.
  1. Go to http://developer.apple.com/samplecode/Sample_Code/Graphics_3D/glut.htm
  2. Download the sample (327.7 Kb)
  3. Open Terminal.
  4. Change to the directory where the glut folder was placed. (i.e. cd /downloads/glut )
  5. At the command line, type: pbxbuild install
  6. Copy the new framework to the Frameworks directory with this command: sudo ditto /tmp/GLUT_External.dst/System/Library/Frameworks/GLUT.framework /System/Library/Frameworks/GLUT.framework
17. February 2003 : Found the problem with the A* algorithm. One small correction and that was it. The code has been uploaded to the Source Code section. It is a-star.l. Time to begin work on the collision detection. Also copied the text detailing the A* algorithm into a word processor to further the documentation for my thesis.

12. February 2003 : The A* algorithm is working now. Parts 6 and 7 turned out to be easier than I originally thought. Got it working okay, but had a few odd problems. When sorting the OPEN list, I had it in the reverse order -- largest to smallest 'f' values -- which is the opposite of what I wanted. So it was finding the longest path. Once I fixed that, it found the shortest path. After the goal is found, it traced back to the start node. This worked with the original map, but had problems with another map for some odd reason. But it is getting very close.

6. February 2003 : Burrowed myself into the library and EPS building for a couple hours and got a decent amount accomplished. Completed parts 6, 8, and 9 of the 9 Step A* algorithm. However, 7 will probably include a lot of work, so its not over yet.

4. February 2003 : Finally got the X Server in RedHat 8.0 to work properly. I switched out the Nvidia GeForce 2 MX video card for an ATI Rage Pro, and also replaced the M$ mouse with a Kensington mouse. Kudzu was able to detect the new hardware changes. Had to comment out a line in the XF86Config file, but once I did that, Redhat started up fine. Also had a problem with the ethernet card not responding...probably because the ethernet cord wasn't plugged in. But once I did that and ran the Internet Connection Wizard, I was up and running within minutes...or seconds.

Also, much earlier in the day, I added a bit of code to the 3D picking example which will print out the frame rate. Pretty simple, actually, only 10 lines of code (or so) added to get it to work.

3. February 2003 : Programmed more of the A* algorithm in CLISP

30. January 2003 : Wrote up the Pseudocode from Nilsson's AI book about the A* algorithm.

28. January 2003 : Wrote up some further explanations on the A* algorithm. Started to reread Nilsson's explanation of A* in his book Artificial Intelligence: A New Synthesis. The thing is almost starting to make sense after awhile.

26. January 2003 : It's 3:51 (yes, in the morning), and I have completed a milestone. Life is good. Plus I found some keys I haven't seen in several months. They were in my laptop bag the entire time, and it is amazing for the number of times I've reached into that bag, that I never saw the keys earlier. Anyway, I got a picking & selection demo working. When I first created it a few days ago, it wasn't working. I pawwed through some other code, and found the two whole lines that prevented the demo from working properly.


Those two functions needed to be in the function which redisplays the screen so picking can occur. Coding can certainly be funny, but at least I didn't spend a week or two trying to go about some difficult task and then find out there was an easier and better way built in which requires only one bleedin' line of code!...that would be another story. So what to start on next? Back to A*, I suppose. Also, cleaning up the picking & selection code and posting it would also be a good thing.

23. January 2003 : Downloaded the Macintosh OpenAL Runnable Libraries under Mac OS 10.2 and ran the OpenAL demo. It works fine. However, the OpenGL demo of PIGE will start up, show a black screen, flicker, and then close. Will need to further investigate this problem.

21. January 2003 : I'm going a little off course on my planned route, but that's okay, since I'm just jumping ahead for now. Instead of working on the A* algorithm, I'm working on the 3D Picking & Selection code. I have a 2D version which works, but I'm checking to see if the mathematics behind 3D selection is much different or not. So the 3D Picking project has begun. From looking at some examples, this might end up being relatively easy, or it might have snares all over the place and take up 2 weeks worth of time.

13. January 2003 : On the .plan page, I added the tentative schedule for this semester.

2. January 2002 : Added some new info on the Frequently Asked Questions page. Read more about SDL and Linux game programming.

24 - 28. December 2002 : Worked further on the A* algorithm. Started a small tutorial and a CLISP program. Especially with games, it would be useful to detail modified versions of the A* algorithm, especially for real time situations, or when the goal changes position.

23. December 2002 : I'm supposed to be taking a break right now, but my mind drifts too often to various subjects. Started to research through Mac Game Programming on the A* algorithm for path finding. Will try and research more on this later in the day/week/year. Might even make a small, separate program or tutorial to demonstrate if it is working or not.

13. December 2002 : Classes have ended, but the work continues on. I will be working on some object picking & selection and collision in a 3D world over the next several months. Hopefully over the break I will gain the proper amount of time to read through some of the new books I've collected lately.

1. December 2002 : Was alerted to the fact that neither the PIGE nor OpenAL demos work under Mac OS 10.2. They work OK under 10.1. This is something I will have to research soon to discover what is going wrong.

6. November 2002 : Bought two new books which should be useful for my thesis: Programming Linux Games by Loki Software and John R. Hall and Mathematics for 3D Game Programming & Computer Graphics by Eric Lengyel, who was the lead programmer for Quest For Glory V. The Linux book should prove enlightening which displays some SDL code. Hopefully understanding it further will help me in converting some SDL-littered code to a more platform independent implementation of the same code.

14. October 2002 : Was alerted with another potential problem with my OpenGL tutorial for Mac OS X. If just a C++ Tool is used, then a stand-alone executable isn't created. Probably need to start the project as a Carbon (non-nib based) or Cocoa project, then remove the unwanted files.

13. October 2002 : All hasn't been total inactivity. I've been working on the write up for this project. Today I worked on trying to convert some collision detection code which uses SDL into a more platform neutral project. Leveled it down to 11 errors, but I think that is only for the Main.cpp file.

27. September 2002 : Uploaded a Picking & Selection example to the Downloads page. The new code is titled picking.cpp. You can also download the PIGE OpenAL example from the Downloads page.

25. September 2002 : Worked a little with OpenGL in the past few days, trying to under stand the difference between projection and model views. Decided to ditch the complicated manuevers and just went a little more straight forward in trying to relocate the custom cursor by moving its Z axis distance really close to the camera. The icon resulted in getting quite large, and this might require some further manipulation, but it seems to be coming closer to what I'm trying to achieve. Will probably have to scale the icon down since it gets quite large as it approaches the camera.

20. September 2002 : I'm on a roll! Three straight days of work and reports....and life is good. I added more to the OpenAL tutorial and made the entire PIGE-OpenAL project (1.4 MB) available for download.

19. September 2002 : I received an e-mail about the vague instructions on the Compiling OpenGL for Mac OS X page, and after reviewing it, I found some problems with the tutorial. I have updated it so it is clearer, easier to set up an OpenGL project, and also more up to date. The old tutorial referenced Mac OS 10.0, and there are some differences when using Mac OS 10.1. I haven't tried Mac OS 10.2 with this project yet.

18. September 2002 : If I wasn't trying to be at least somewhat modest, I might be proclaiming myself to be a programming guru/god about now. Aftering working on both my graphing calculator EdenGraph and an OpenAL example and having great success in both projects tonight, I have taken up residence on Cloud 9.

I did manage to get an OpenAL example working under Mac OS X. I mostly worked from a Linux example which was a little cleaner than Jeremy Bell's OpenAL Template since he incorporates the Doppler effect into his demo. I will post the source code, and perhaps the entire project and build.

14. September 2002 : Read through part of the programmer's guide to OpenAL to get a better handle on OpenAL. This helped somewhat to make the process a little clearer (Sing: I can see clearly now...). I finally figured out how to get Jeremy Bell's OpenAL example to work again...after reading through his comments in the main.cpp file, I copied the .wav files into the OpenALTemplate.app/Contents/MacOS/ folder using Terminal (it doesn't work from a standard Finder window). So, this is at least one more step closer to getting things working.

9. September 2002 : Pawwed through more OpenAL code, but it is confusing, so I switched over to some OpenGL to figure out how to get the icons to appear on top of the 3D scene. I found some old e-mails which give some clues about views and orthogonal projects and such. With some further Photoshop experience under my belt now, I went back to the do_alpha32.tga (hand icon) and redid the icon so there isn't some excess white space around the hand which looks awkward.

5. September 2002 : Working on this project gives me that warm, happy glow of accomplishment...as long as something gets done and works! Recompiled Jeremy Bell's OS X OpenAL demo, and then the sounds wouldn't load for some odd reason. However, the initial executable file worked OK. On my own OpenAL example, I added extra variables and frameworks, and it compiles now (with a few prebind warnings, but I'm not going panic just yet).

3. September 2002 : Set up a schedule for particular milestones I wish to try and set and complete during this semester. The PIGE demo won't be Doom III by any standards, but if I can get most of what I have scheduled working, then I will be pretty content. Perhaps I should then make this open source and release it to the programming hounds and see what happens... First milestone is to get OpenAL up and running on all systems. I have a Mac OS X version working, but I'm trying to weed out any Mac specific code and make a raw version which should be more agreeable to Linux and Windows. I also have a Linux/Windows version which I haven't tested yet, but if the code is good, it should work without TOO many problems (I hope).

August 2002 : Putting together a POS PC system (ewwww....), the thing is somewhat old (350 MHz), so the BIOS is having problems with the large hard drive (60 GB) I placed in it, plus I've been having innumerable problems with getting both Windows 98 and RedHat 7.0 to play nice on the same system.

30. July 2002 : Looking through the examples of OpenAL code. Fortunately, for this project, I'm just looking at creating a simple demo when it comes to sound. Nothing too complicated, just be able to play some sounds. If stereo effects can be produced, great. Jeremey's example is more complicated than what I'm going for at this moment, so I will try and make a more stripped down version of his code.

29. July 2002 : Back from the Dio/Scorpions/Deep Purple concerts, and already hitting the homework. Jeremy Bell wrote a Mac OS X version of the example code found at http://www.dev-gallery.com/programming/openAL/basic/basicOpenAL_1.htm. Download the OpenALTemplate.sit at homepage.mac.com/jeremybell/FileSharing.html.

24. July 2002 : Working off of 5 restless hours of sleep (I woke up at the unholy hour of 6:30), it is amazing how well my brain is still working. Must be all of that Mt. Dew. Anyway, tonight was one of my most productive sessions in many, many months. I found some great new sources for OpenAL (developer.creative.com), and I'm on my way to getting OpenAL to work. I'm still hitting some odd errors, but I'm reading through some documentation provided by Creative, so this should hopefully clear the skies some. I originally copied the code from the mac/build folder which I downloaded via CVS from openal.org to the /System/Library/Frameworks/ folder on my iBook (running OS 10.1.5 at this point). However, that directory is owned by root, so I was at first denied priviledges to copy anything there. I then typed: sudo chmod 777 /System/Library/Frameworks/ and then created an OpenAL.framework directory. I then reverted the Frameworks directory back to 755. Then I later found an installer by Creative, and this process was much, much easier. For Windows or Mac, go to developer.creative.com, then go to Games, then OpenAL, and download the proper files to get started with OpenAL. Once I finally figure out how to get things running, I'll post a decent tutorial, which will probably be the first OpenAL tutorial for Mac OS X...at least, I haven't found any others yet.

15. July 2002 : Holy logjams, Batman! An update! I've been pretty busy this summer semester working on a Java-based FTP client, and I'm currently in the process of moving, so there isn't much time left. However, I did go to OpenAL.org, and finally figured out how I'm supposed to download the proper OpenAL files and frameworks. Instead of something common or naturally intuitive, they just give commands to download the files using cvs. Great if you know what you are doing, but horrible if you don't have a clue. Here are the two commands I ran from a command line terminal in OS X.

cvs -d:pserver:guest@opensource.creative.com:/usr/local/cvs-repository login
(use password "guest")
cvs -d:pserver:guest@opensource.creative.com:/usr/local/cvs-repository co openal

This copied a directory wisely named openal in my home directory. It seems to have all of the resources for Windows, Linux, and Mac (8/9/X).

1. April 2002 : Wrote the tutorial for creating mouse icons.

12. March 2002 : Been busy with my two CS 570 project. May not get too much accomplished this semester for my thesis, but I will work on it more during the summer. Started to move the Myr.h (and a few other .h files) from Psychomancer over to PI GE. I will be starting to creating scenes for the inventory and character stats screens. Also did research on how to get the cursor to appear on top of everything. This might require the glOrth() command.

17. February 2002 : Added code so the TAB, space bar, and ENTER keys could be seen. Quite simple, but difficult to find any info on the web. For the TAB, I just used the \t combination, the space bar is number 32 (look under the manual page for ascii), and ENTER is either \n or \r. \n is the typical new hard line character under C, but since this project is originally being coded on a Mac, the \r case is also included, which is the Mac's version of \n. Spent another hour or two trying to figu re out how to get multiple directions working when moving the camera around. There are GLUT functions which tell if a special key or a standard keyboard key has gone up. Here are two sites which explain some of these special functions: http://pyopengl.s ourceforge.net/documentation/ref/glut/glutspecialupfunc.html and http://www.geocities.com/SiliconValley/Code/1219/glut.html . Between this program and another program I was working on, my head hurts. As Dr. Gumby would say, "Your brain needs to come out !"

14. February 2002 : Reviewed picking & selection code. Began figuring out how selectable objects are to be represented in the engine.

8. February 2002 : Received a 256 MB module of RAM. The iBook now has 320 MB of RAM, all the better to process graphics with, my dear.

5. February 2002 : Received my new iBook. Repartitioned the hard drive so there is 3.5 GB allocated for OS 9, and the rest is for OS X. Installed the latest OS's and CodeWarrior 5 for OS 9.

31. January 2002 : Not so much of an update, but more of an over view of what's to come. I put in 3 credits last semester, and this semester I will be putting in 2 credits. I have an iBook on the way and I will be doing some work on that compute r, too.

21. January 2002 : Recompiled the Windows version of the program for Windows 98. I will be trying Windows 2000 soon.

17. January 2002 : Destroyed the teapot image I've been using to test with and started to create a room. There are now several essentials: four walls and a floor with a nice wood texture. Some manipulation was necessary to get everything lined u p correctly, but once things started to work correctly, things went pretty smoothly in creating the main structure of the room.

16. January 2002 : Created a wood floor image using Photoshop. Go to http://www.orionnetlinks.com/Tutorials/wood.asp for the tutorial on how to create wood textures.

11. January 2002 : Spent several hours working with loading in new images. Good old Murphy made himself present. The lips/talk icon was created. It needs to be 32 bits so the alpha channel is in effect (for background transparency).

10. January 2002 : After taking some time off during the winter break, it's now time to get back to the grind. Netscape 6.2 had some formatting problems with several of the pages. This formatting problem has been fixed.

17. December 2001 : Converted the work accomplished so far over to Linux and Windows. Linux had complications in compiling and couldn't find the -lglut library for some reason, even though OpenGL programs worked fine on the same system several mon ths ago. Something might have been corrupted or deleted. Windows compiled, but it crashes and it doesn't show anything on the screen. Both the Linux and Windows versions had to be slightly modified, especially when regarding the code with loading in te xtures and the texture[] array. I needed to create a GLint for Linux and unsigned int t_texture[] array for Windows to get the code to work properly in particular places. Further work will be documented to illustrate the problems found.

9 - 13. December 2001 : Worked further on a collision detection tutorial. It is now available at http://www.cs.montana.edu/~charon/cs515/.

8. December 2001 : Worked on some rotation and translation functions to move the 'camera' around. Will experiment with the LookAt function later and see how that compares to just translating and rotating the scene.

6. December 2001 : Read yet another collision detection tutorial and looked through the 'collision detection' available in the book Black Art of Macintosh Game Programming (Chapter 18) by Kevin Tieskoetter.

5. December 2001 : Read more on collision detection. Yes, this is quite an extensive topic. Worked on a small example program on how to create message lists for characters when talking with them. It is currently in a text-based form, but it shou ld be later incorporated into a demo version of Psychomancer.

4. December 2001 : Read an article about collision detection.

25. November 2001 : Studied graphics collision. A tutorial and some examples will be posted once I've completed researching on collisions.

8. November 2001 : Worked several hours on researching graphics collision detection.

7. November 2001 : After completing two presentations in the past two weeks, I should now have more time for my thesis. Worked on adding lights to the scene, and started to research collision detection.

1. November 2001 : Tried to add new objects, but nothing would show up. Eventually found out that I needed to transpose an object -5.0f in the Z direction for them to appear.

30. October 2001 : Worked for about 4 hours, and made lots of headway. Finally got the TGA images to load. Found that the glutGameString needs to be called before InitGL, or the TGAs won't load. Also managed to get the icons to revolve. Started working with transparencies. The eye icon works and the background is transparent, but the crate image doesn't even show. Now having problems with any other items showing up on the screen. This is the next thing to look after. Also spent plenty of ti me trying to get the mouse precision to work properly. Depending on how fast and far the cursor is moved, this creates a variable distance in which to move the icon cursor.

26. October 2001 : Worked for about 5-6 hours in trying to get TGA images to import properly. I have a program which works find under Mac OS 9, but OS X is being somewhat of a bugger. Eventually discovered that I need to also add the image to the project for the project to see it correctly. Getting one step closer to getting the cursor to work.

23. October 2001 : Tried to get C++, Carbon and Project Builder to all compile. It will work fine as long as the main.h file isn't completely deleted from the system, but it can be removed from the project.

19. October 2001 : Played around with creating a cursor. Managed to create a small square to act as the cursor. When right-clicking, the mouse will turn different colors.

11. October 2001 : Upgraded the Mac OS X Project Builder to 1.1 and Mac OS 9.2.1. Had some problems with recompiling OpenGL programs under PB 1.1, but this was soon resolved with the help from the Apple discussion boards.

10. October 2001 : Updated my G4 PowerMac to OS 10.1.

. 4. October 2001 : Read through some GLUT and OpenAL resources. Compiled a few example programs, experimenting with GLUT's capabilities, especially with full screen mode and working with the cursor.

3. October 2001 : Pulled out The Red Book (the definitive OpenGL guide) to read more on OpenGL. Read up on some GLUT resources on the web.

26 - 27. September 2001 : Read through the Moon Travel tutorial to learn more about the Mac OS X Carbon API.

25. September 2001 : Created and updated several web pages.

24. September 2001 : Read over several documents on collision detection. Also investigated OpenAL and other possibilities of creating sounds. This took a nice hour or two.

20. September 2001 : Created the .log file.

16. September 2001 : Put the necessary OpenGL files onto a Windows machine and found tutorials on how to compile OpenGL programs under Windows (Win32 app and Windows Console versions), and ran these programs under MS Visual C++. Will try and get Codewarrior to work under Windows too...might be similar to how the Mac does things...

13. September 2001 : Worked for 3 hours on downloading example programs from the NeHe site and getting them to compile.

11. September 2001 : Worked on getting OpenGL programs to compile under Mac OS X.

6. September 2001 : Started to work on PIGE. Created the web page and started looking for resources on compiling OpenGL on various platforms, especially OS X.
Page created: 20. September 2001
Last modified: 15. December 2003