Log Archive


 
Monday, December 30, 2002

Since the last entry, I've fixed working on the camera code. And it's in a pretty useable state. I'd still like to add a couple things, but that can happen later. Right now I'm concerned with converting the engine code over to the MC++/C# engine. The editor needs to be updated badly; it's in broken state at the moment. The camera, lights, octree, and entity creation abilities need to be added.

Mike, my new partner, has made some progress on the text system, and I hope he'll take up the task of UI coding. If not that's still something I'd like to work on. He complains a lot about Perforce, which is probably because he's so used to CVS. Hopefully, that's the reason because I'd hate for this to become a real issue. It's been great working him otherwise. It's rare to find someone else equally excited and with enough ability to complete this project.

This year has been good to me despite the rocky first half. I've definitely grown as a person through more trials than I could have imagined. I've rekindled some old friendships and started new ones. Working on this project has been the fulfillment of a dream, and it wouldn't have been made much more difficult without the support of my family and friends.

This is my last log of the year. Happy New Year to everyone!

Tuesday, December 24, 2002

Unbelievable. It looks like I'm going to be sacrificing some sleep in order to get some programming done. Ever since I started game testing at 3DO, I just haven't been making the same kind of progress on the game as I used. Well that's going to change. It just so happens that there is another guy in the testing department who is willing to help me out with the engine. Things looks very promising at the moment, but time will tell. I've been working on a Camera class for the past couple of weeks and it's finally coming together after a couple simple mistakes were fixed.

Wednesday, December 4, 2002

I've made a cool optimization to the octree construction and model rendering. Added simple lighting to the engine, and I'm now in the process of porting the work over to the C# engine. I wanted to work on collision detection and response for the demo, but I think I should take my time and percolate all the changes into the editor before things get out of hand. I've started reading up more on Design Patterns and Object Oriented Software Construction. And I'm gleaning some really useful insights. Something I've struggled with for a long time, public data members in classes, disappeared when I read about Creational patterns. I don't know why I didn't think of it sooner, probably because I never liked the idea of frienship in classes, but I could never decide whether to follow the "good practice" of hiding data members when I would have to supply accessor functions anyway. I like the idea of uniform access, and C# properties are great! But doing the same in C++ feels like a hack. I would need to access private data members in my model export classes. Anyway, by using friendship and creating a "construction" class that gets private access, I got rid of my problem. So users won't accidentally break something, and they can still access a classes private data using a "construction" class. I forget if there's a name for the pattern. ^_^


Monday, November 25, 2002

Setting the stage

I created an octree generator for landscape partitioning, and also reworked my test app to test it. Things were going pretty smoothly until I decided to drop a transformer model in and move it around. I haven't written any physics routines yet, so I just wanted to see if the appropriate nodes would be reported on collision testing. But I wanted to attach the camera to the entity.

I didn't like the way I had designed things, so I decided to spend some time reading up on a design book: Designing Object-Oriented C++ Applications Using The Booch Method. Either, I'm getting older, or the stuff is getting more relevant. When I first picked up the book, I could barely get into the first chapter. I knew it would be helpful, but I couldn't see how to apply it at the time.

There's still so much to do, so I'll be reading the book while coding. I plan to get something playable in a couple of months.

Monday, November 18, 2002

Spinning Circles

I created a framework for the game. Something simple to test entity creation, the camera, and entity context. I have the Sideswipe model running around, and you can switch back and forth between controlling it and the camera. It's kind of funny seeing it run around as if on an invisible track.

I'm starting some major work on the scene module and entity creation. I was able to pull some cool info on how I might be able to dynamically load a dll in C#. I'll need this to create specific entities in the editor. Once I get the octree running and tested in the framework, I'll port it over to the editor. And I'll be able to create stages at that point.

Monday, November 11, 2002

Switching Gears

It's so weird looking back at my code archives to see how far I'm come. It's taken more than half a year, and I'm just about back where I started when I was working on my game demo without having an engine. Things were all sort of a jumble which probably would be fine for "production" code from what I have heard from professionals, but maybe someone will appreciate the work I put into the organization. But looking back on how I spent my time, I think I could have achieved a lot more if I were more willing to commit wholeheartedly to the design and implementation of the engine early on.

After having finished the model loading and animaton part of the editor, I'm starting work on the framework of the game to test the soon to be added entity and scene namespaces. The entity namespace will handle loading and instantiation of entities such as the actors, props, and special effects in the game.

I'll ditch working on Visual Studio 6, since 7 is a complete replacement, and I'm probably the only one looking at the code anyway. It'll still be a cinch to recreate the projects for 6 if there ever needed again, but I won't be maintaining the engine for it anymore.

Thursday, November 7, 2002

Engine and Viewer

I'm quite late on my scheduled update, but with good reason. It's been a while, but I've finally finished a replacement for the MFC model viewer! A lot of my time has been spent in learning how to use C#, Managed C++, CsGL, the Magic Library, and rewriting the engine components to be useable in the editor. Of course the learning process never ends. Now, I can move on towards creating the stage creation components of the editor with this new foundation I created.

I'd like to point out that the downloads section has been updated. The new editor requires downloading the .NET runtime which is a hefty 20 megs. That's no problem for you broadband users! But eventually I hope that Microsoft will find some other means of distributing it. You can get it here.


Monday, October 28, 2002

A Touch of Magic

While working on the editor, I wanted to emulate Animation:Master's user interface. It uses a lot of standard windows controls and is laid out nicely. But while going through Windows Forms Programming by Erik Brown, I found out that creating a MTDI (multiple tabbed document interface) wasn't going to be an easy task in the .NET framework. Luckily, I found Crownwood's user interface library called Magic.

It took a little bit of experimentation to figure out how to properly use it, but it's actually really easy to use and gives a professional, modern look to the editor.

I'm in the process of writing the routines to handle the user interface. And it's taking a little rewrite of the graphics server to open it up for easy access of data. A valuable lesson I'm learning is to not hide stuff unless I have to.

Meeting At the Flugtag

One of the best decisions I made last week was to hold the support group's meeting at the Redbull Flugtag. It was not because the meeting went well, but because everyone ditched! At least I was able to have a good time watching the show with a friend. With 22,000 people on the pier, I gave up any attempt at finding the others.

The skydivers and teams were great, and the whole crowd was applauding and having a great time. It's really too bad we couldn't meet and go there.

Monday, October 21, 2002

MD2 animations

I've gotten most of my engine components migrated over to managed C++. And I'm able to render md2 models in a C# app using CsGL. I've done quite a bit of work reworking the internals of the engine so that VertexModels behave more like SkeletalModels. Now they derive from the same base classes, and are going to use the same Track classes for blending animations. Later on, it this work should make it easier to swap models of different types easily.

So while I'm working towards writing the editor, I'm having to go backwards into the engine to clean things up to add more features. I'd like to be able to blend md2 (vertex) animations through the same interface as skeletal motions.

I have a couple bugs to deal with but it looks like from my test that I'm able to go from a stand to run cleanly, sorta. It's not perfect, but it looks better than going from a stand to a full-on run. Once I finish up with the vertex motion blending, I'll move on to adding more to the editor and then add Skeletal Models.

Monday, October 14, 2002

Migrating to .NET

I finally threw my hands up in the air and gave up on trying to get my dlls from VC6 to work with the managed classes for VC7. Instead, I reorganized the projects for the engine to accomodate VC7. Now I'm compiling static libs in VC7 for the managed C++ wrappers.

Progress is going smoothly with the md2 converter and gbgraphics namespaces. I have the beginnings of my new editor in the works, and adding UI components is a cinch in C#.

Monday, October 7, 2002

SF GameDev Meeting

I've been organizing a support group for people in the Bay Area working on games or demos. Last Saturday we had our first meeting with Boni, Mark, Jeffrey, and myself. It was exactly what I hoped it would turn out to be.

We met over at the Century 20 theater complex in Daly City, hung out near the fountain and talked. Luckily it's been sunny for the past week, so we only had to contend with talking over the roaring BART trains. It wasn't the ideal location. We could have gone over to the Starbucks, but it was a nice day.

We got to know each other, past and present. And talked about stuff: programming, movies, jobs, schools, and conferences, etc. I hope we will continue to meet, grow our group, and work towards one day having some sort of showcase for our games.

Engine Progress

I've struggled a bit with reorganizing my code this week. I have no idea what's going on with my VC6 dlls in .NET, so I modified the projects to output libs and dlls. The MC++ wrappers will use the static libs to link with, so they'll work in C#, and the dlls will be used in the game.


Monday, September 30, 2002

Engine Progress

I've been working on reconfiguring the engine to output dlls instead of static libraries. Maybe I should have done this a long time ago? But in any case it seems I still need static link libraries. I'm getting a weird "null object reference" exception when I access my dlls through managed C++. It's weird because the exception is thrown when I attempt to open a file through basic_fstream, but not when I close the file. And I can't step through the dll code in the debugger.

Well, my problems magically disappear when I link with static libraries. I guess I'll create a couple test apps to try to figure out what's going on.

Problem Solved

I found a solution to my problem but I don't know why it works.

I did the standard thing of declaring a couple macros to export/import dlls, for example:

#ifdef DLL_BUILD
#define GBEXPORT __declspec (dllexport)
#else
#define GBEXPORT __declspec (dllimport)
#endif


However after building the wrapper and running my C# test app, I'd get an exception thrown at me. However linking with my static libs would fix it. So I decided I would create static lib configurations. So I changed my macros to:

#ifdef USING_DLL
#ifdef DLL_BUILD
#define GBEXPORT __declspec (dllexport)
#else
#define GBEXPORT __declspec (dllimport)
#endif
#else
#define GBEXPORT
#endif


When I was experimenting with dlls again, by accident I forgot to include USING_DLL in my wrapper projects. So for some weird reason when including dllimport in my wrapper project, I get weird problems with C#.

Prince of Qin

I've been playing this pretty cool game for the past couple of days. The cover says it all. It really is a mix of Baldur's Gate and Diablo with a Chinese twist.

Here's the bad: It has terrible voice acting like the kind from cheap anime dubs. The dialogue seems like a direct transliteration, so there a lot of awkward moments in the story. It's hard to get emotionally involved when the lines read like a old kungfu flick. For most of the game so far, it's been 4 easy steps to winning each battle. 1. Engage the characters special abilities. 2. Draw a couple dumb AI into battle. 3. Dispatch. 4. Goto 1.

The good: The art is really well done. I guess I'm biased because I think 2D art would be better for this type of game than 3D art. The nonfictional basis for the story is really interesting: Using the death of the First Chinese Emperor to set off a series of events in a "what if" scenario. In history, the prince dies, but in the game he lives on. The game is also really open ended. You become really involved in a plot of revenge, and it's up to you decide where you want to go.

The ugly: The areas are big, and it's too bad the mini map feature doesn't work in caves. You can't carry that many items on each character, so there's a lot of shuffling of items. The battle music is monotonous and can get annoying.

But overall the game is pretty good.

Monday, September 23, 2002

C# and .NET

After going through 9 chapters of Windows Forms Programming with C#, I've been able to get a good grasp of C# and forms programming. Going through CsGL, has given me an even better understanding of the .NET Framework and Managed Extensions with C++. It's shown me that I still have a ton to learn about Interop services, Assemblies, Attributes, and C#.

Today I started work on writting a C# wrapper for the engine, so the C# editor can access it. The one really crappy thing is that users will need the .NET runtime redistributable which is hefty 21MB download.

Syberia

I just finished this new adventure game. I don't know why GameSpot and Just Adventure are giving it rave reviews. The locales were imaginative, though stark. The character dialogue was interesting at times, but never really engaging. Plus the order in which you go through the dialogue has no effect on the story. The puzzles in general were errands: bringing items from point A to point B, pixel-hunting, or exhausting options. There was very little thinking involved for the majority of them, though I have to admit there was one that required some detective work.

Overall, the story is the best part. The worst part is how it left me hanging at the end. I'd rate The Longest Journey or Grim Fandango much higher than Syberia.

Spirited Away

This movie made my week. I saw it on Saturday at the Metreon in a pretty empty theather. I have a feeling it's going to get really popular via word of mouth.

I love that fact that the animators were really able to bring this girl to life. Miyazaki's world is so imaginative I felt a tinge of sadness that I had to leave after 2 hours. Head over to Rotten Tomatoes to see all the good reviews.

Monday, September 16, 2002

A New Book

I just got Windows Forms Programming with C# by Erik Brown. I'm on the 6th chapter and so far it's a great book though a bit on the easy side. There's a lot of good information in 160 pages I've gone through so far, but there's a ton of filler, too. I think if the book were re-edited and targeted towards more experienced programmers a book half it's size could distill the same information on Forms programming.

The book builds up a photo album application from the ground up, reusing the work done from the previous chapters. Brown takes the time to explain the namespaces, interfaces, and classes of the .NET framework. I spent at least a week combing through the .NET documentation looking for high-level overview trying to fit all the pieces together. Instead of spinning my wheels in place, I've been able to get a good start towards writing an editor.

I'll be going through the CsGL, C# graphics library, module along with the book to fill in the gaps of creating an editor using OpenGL.

TFRemake

There's been pretty good progress on the new site. I'm looking forward to sprucing it up with some new graphics and content in the coming weeks. One last thing, I wish good luck to my cousin, who's starting CalPoly this week.

September 7, 2002

I squashed a couple more bugs in the model viewer. There was a problem loading up .bmp textures. The 8-bit color palette of some BMP files were only using 255 of the 256 colors, so random values were filling in the empty color. For some strange reason, the empty color was being used as a valid pixel color too. I just initialized the empty color to zero. I made some other minor adjustments to the viewer.

Not much is going on while I wade through the .NET documentation. There's a ton of stuff to go over learning about Windows Forms.

The TFRemake site is coming together.

September 2, 2002

I've finished documenting the what I have of the engine. I had to fix a couple bugs in the doxygen output, but everything is look good now. It's just a matter of putting everything together with the menu for the tfremake site.

I'm really getting interested in writting the network component after reading most of Networked Virtual Environments by Singhal and Zyda. Dead reckoning doesn't seem as difficult as I thought it would be, but collision resolution seems like something I'll have to experiment with.

Next I'll start work on learning Windows Forms and more about Managed C++.


August 26, 2002

My Grandfather passed away last week. I'll be preparing for his funeral, so I probably won't be updating for a while.

August 18, 2002

I fixed a bunch of things with the modelviewer, and added several new options. Hopefully, it'll be the last time I'll have to look at the code.

This week has been pretty productive. After reading up on Dreamweaver, Fireworks, and Flash, I was just about to start work on the website when my uncle offered to take over and build it for me. What a lucky break!

I was able to switch gears and start work on documenting the engine using doxygen. After a couple of hours of tweaking, I finally start work on documenting. The GBTime module is done, and the GBIO module is in progress. I got side tracked with the modelviewer, but now I can get back to documenting.

I need to figure out how to use cascading style sheets to format the html doxygen generates.

August 14, 2002

I uploaded the latest version of GBModelView. I'm planning to create a new site with greater focus on the engine implementation, documentation and TF remake. I should have a preliminary site done within the next couple of days.

August 13, 2002

Quite a bit has happened in the last week. As I started work on testing some code for the entity management system, I tried modifying the model viewer code to work with it. Everything turned out fine, but I really hate the way MFC was designed. The FOX toolkit is so much cleaner. So I decided to go do a little research and remembered that one of the instructors from the Game Institute mentioned something about Windows Forms making GUI programming easier. After doing some research, I found out that it's possible to use managed C++ with Forms. I went and got a copy of Visual Studio .NET. The install took a long time, and the environment will take some getting used to. However, I'm convinced this will speed up development of the game by making it easier to create tools.

I also did some research on how to spruce up this site. I considered converting some of my downloads into java applets using GL4Java. I'll put that I do on my huge todo list. However, I think it is an appropriate time to do a massive reworking of the site. It desparately needs a face lift with more focus on the engine and the Transformers remake.

Here's a great website: GoodThink for when you're feeling down and need a good mental boost.

August 5, 2002

I'm back on track coding up a world editor for the game. I'll be using an octree for the static geometry of the world. And dynamic objects will be attached to the leaf nodes of the octree. Later on, I'll do research on chunked LOD methods as a rendering optimization. I'm really interested in putting together the framework app to see how all the pieces are going to fit together. It will give me a better idea of how the modules will communicate and also get me started on networking. A couple days ago I noticed that the prowl md2 model had problems with back facing polygons. When I have time, I'll try to remember to get my hands on an md2 editor so I can flip those normals. Then I'll be able to experiment with enabling back face culling. I updated the model viewer, which adds a frames per second counter and a back face culling option. No frustum culling at the moment. The engine has been updated with a number of fixes to the math and model libraries. I should start a list of items to do.

As a side note, it looks like Miramax's Shaolin Soccer is getting good reviews. They've done some edits some people may find disagreeable, but I'm glad if it does well in the US market. It'll open the door for more foreign movies. I'm crossing my fingers hoping Zhang Yimou's "Hero" will kick major butt when it's released in December.


July 29, 2002

There's nothing like a blank slate to trip me up. After finishing with the model viewer, I was preparing to start work on the next module to deal with terrain rendering and collision detection. I wanted to create another app to view the terrain and do object placement, but I didn't like the idea of using MFC again. I came across Ruby while talking to Edwin about "The Pragmatic Programmer" by Hunt and Thomas. One thing led to another, and I was considering using the FOX toolkit instead of MFC. After deliberation, I think it makes sense for me to stick with MFC for now. It's better to sharpen my skills than to spread myself thin trying to learn too many things at once.

July 20, 2002

Finally added texturing to the models and server. Eventually, I'll have to have multitexturing and environment mapping to make all the robots look shiny. The engine has been updated as well as the modelviewer. The vertexmodel data format has been changed, and there is a minor texture problem. When in debug mode some very dark textures are not drawn.

July 19, 2002

hmph.. Typical.. After updating the engine, I found some bugs. Luckily they didn't take long to squash. There seems to be a couple visual bugs with the vertex and skeletal mesh rendering. I'll deal with those later for now, I'm going to improve the graphics server functionality. The model viewer has been uploaded as well.

July 16, 2002

Big engine update today. The animation system is looking good. Though it hasn't been fully tested, it would be wise to back up the code at this point. The model converter/view is working except for texturing, but that should be a cinch to add. The converter is app is almost finished. I think a last thing to do is to add keyboard input to manipulate the skeletal animations.

Before working on the world system, the entity module needs to be complemented to ease model loading and instantiation.

July 12, 2002

Redesigned the model viewer/converter. I'm finally getting comfortable with MFC, and things are starting to make sense. I still have some issues with the way things are setup, but at least I'm making progress. Hopefully, Edwin will have the texture code running soon, and with the motion files animating, the app will be done. Then I can move on to working on the world renderer.

July 8, 2002

"Self-discipline is when you tell yourself to do something and you don't talk back."~W. K. Hope

Been hard at work on writing a model viewer/converter using MFC. I had some trouble figuring out how to use splitter windower with the document/view architecture, but that's resolved now. Got a preliminary renderer going, but I'm getting some strange, visual artefacts. I think it's because GeForce2's don't render OpenGL quads properly. Once I figure out how to use a tree view, I'll be able to load up skeletal motions for testing the animation system.

June 29, 2002

After reading up on how to build an extension using the Tcl library, I think it would be easier to just use MFC for a guis. I have all the tools available and the documentation is better layed out for MFC. Plus, making the code cross-platform is not an issue. I'll be able to refocus on completing the initial model renderer for the converter. I'll probably use Tcl to create small scripts for managing the file and workspaces.

Once the engine is done I should make a custom AppWizard for use with the engine.

June 21, 2002

Spent the past week studying Tcl/Tk, and hopefully by next week I'll have figured out how to use it with OpenGL. I finished implementing an animation mixer for the engine. I haven't tested it yet, but it isn't too different from the animation tests I've done before. This time I'm slerping between animations in a similar fashion to Cal3D. Eventually, I'd like to automate a file conversions and project workspace creation with Tcl.

Finding an entry level game programmer job hasn't been easy. To date, I found only 1 in the months I've been looking, and the test was pretty difficult. However, there are a lot of game tester jobs.

June 12, 2002

In an effort to create more meaningful log entries. I'll probably update only once a week now. That way I'll be able to focus on the engine and game.

I've been working on rewriting the Animation:Master export module to get it ready for the gbgraphics module. I've never written an animation mixer before, so I looked to Cal3D for inspiration. I wish I could just convert kfm files to Cal's format, but I don't think that would be easier. Also, that would require possible conversion work for the ply formats. Also the experience of coding it myself is good too.

Been working together with Edwin on using the Perforce server, and I have to say that it blows WinCVS out of the water for ease of use. Too bad the free license only allows two users, but that might not be so bad since multiple clients are allowed.

June 2, 2002

Uploaded a new resume, and I'm currently back to work on the game engine. Finishing up the input module.

May 29, 2002

Uploaded an old game that I made while back in UCSD. It's cool how my old Prof. had it lying around on his harddrive.

May 28, 2002

Spent the weekend working on the site, talking with the CS group and a friend. It looks like I won't be able to work on the Crystal Space game entry. I don't think it's feasible given the constraints. Hopefully, the group will stay together to just socialize and exchange information. I'm seriously looking for my first break in the industry too. There are a couple new downloads in the downloads section.

The Resources section has an updated set of links for those searching for an industry job.

May 24, 2002

Updated the site with a Shadow Realms design doc.

May 23, 2002

I'm creating faqs for TND and CS while I work on figuring out how to use them. I know someone's gonna find them useful later. It's annoying combing through the forums and mailing lists for info.

May 21, 2002

Tcl is such a cool language, I wonder why I didn't come across it in college. Maybe after getting comfortable with it, I'll be better equipped to "dismantle" the Nebula Device.


May 19, 2002

I'm thinking about working on a game using another engine so I can better understand how one is used and put together; currently, reviewing the Nebula Device 3D engine. It looks awesome because it is modular and the core looks mature. Plus Nomads is being made with it. Check it out at RadonLabs.

I added some links to friend's sites that have nothing to do with game development.

And here's a favorite quote:

"A mighty pain to love it is, and 'tis a pain that pain to miss; but of all pains, the greatest pain is to love, but love in vain." -Abraham Crowley

Depressing isn't it. ^_^


May 16, 2002

Ahh.. Nice and clean once again. Hopefully, the page isn't too busy now. I added some nice "Diversion" links.


May 15, 2002

I don't know what's wrong with my calculations, but when I try to solve for the eigenvalues of the covariance matrix, I keep getting complex values as roots. I know the cubic solver works, and I'm pretty sure I'm reading the math notation for the matrix correctly.

I went over to Magic Software's web page after searching through the flipCode forums and found some code to calculate the oriented bounding box. It uses a different covariance matrix than Gottschalk's and uses some sort of iterative method to solve for the eigen vectors. I don't want to spend the time figuring it out so it might as well be magic to me. The convex hull program was added to the download section.

What I want to do next is to generate a binary sphere tree hierarchy for each keyframe of a KFM file. For those unfamiliar with KFM, it's Animation Master's exported animation file format. After each keyframe has a tree generated, I could interpolate the spheres between the frames. It would be a lot faster than merging spheres after transformation. I'm also planning to rewrite parts of the AM module of the GB Engine so traversal of the bone hierarchy won't have to be done recursively


May 13, 2002.

I've been studying Gottschalk's paper on OBB trees. There's quite a bit of math I have to go over, but luckily the covariance matrix equation is given. I'm planning to use the obb's as a part of a recursive algorithm where the obb's volune is substracted from a sphere's volume. If the difference is greater than a certain threshold, I'll subdivide the object along its longest axis just like in obb tree construction. The only difference is that the hierarchy will use spheres.

I finished the convex hull algorithm and just implemented a cubic equation solver to determine eigenvalues for the eigenvectors of the covariance matrix. Now I just need to test the code by loading up an A:M ply file.

Just updated the site with some cool links and the beginnings of a San Francisco game company database; thanks to Jake Covert.

I posted a sample of my "programmer" art in the about section.


May 8, 2002

I've started work on a new collision detection system for animated objects with skeletons. The basic idea is to create a binary tree of spheres, sorting into each child a set of bones. When a sphere encompasses one bone a split metric will be used to determine whether the vertices should be sorted into separate, smaller spheres.


May 7, 2002

I got a preliminary BSP/PVS compiler done, along with an update to the engine's geometry code. It was a real pain getting the code to work. For a week I thought my code might have been screwing something up with the leaf or portal generation. It was the data exported from A:M that was the cause of most of my troubles.

I learned BSPs do not cope well in curved environments, and they're really picky about seeing the back faces of polygons. So in my demo I used extruded boxes. Spending all this time programming to use A:M as the art source, I haven't really learned how to use A:M, so creating my test cases was quite annoying. I'll probably need to write an editor for my BSP compiler, to make efficient use of A:M data. The auto-generated portals tend to produce a lot of slivers and point portals.

The demo loads a simple level, and allows you to move a character, represented by a green sphere. The blue polygons represent the current leaf's potential visibility set. You can toggle leaf, portal, and pvs set rendering.

I decided to remove the module tests from the engine source to shrink the download size.


April 29, 2002

Been working on getting the site ready. Uploaded the engine source. Currently working on a BSP/PVS compiler for indoor scenes. I'll have it completed by the end of next week. Here's an idea to put on the TODO list. Create a plugin for A:M to run the engine. So far the engine contains a Math, File, and AM module. There's some other code that hasn't been incorporated yet, but the plan is to keep the architecture open so either OpenGL or DirectX can be used for rendering. And DirectX will be used for everything else. I tried the Math tests on a GeForce, and they ran slowly. Need to find out the problem. There are release binaries included for the tests.

The TabSphereCollider uses A:M Ply files that have been converted into a binary AABB tree. One sphere is sent flying around to collide with the surface of the objects. Each triangle that's hit lights up. Generating the tree is pretty fast. After optimizing it might be able to calculate during runtime.

The SphereTree is spatial partitioning scheme for things in space or maybe underwater. The test drops a bunch of spheres into the world and lets them collide. I got the technique from Game Programming Gems 2.

1