(Craig Yack's Home Page)


You are visitor number

Looking for TTopRPG? Click here!
If TTopLaunch messed up your TTopRPG exe, follow this link and look for the 8/9/09 announcement.


Previously, I intended this site to be instructional towards developing a game engine. With my various attempts at developing one and stopping in the middle only to start over again, I figured I might as well just make it a hobby site and show off what I've done. Recently, I've begun developing a graphics engine once again, and I think it's good enough to continue adding to without having to scrap it and start over. Maybe I can start a page that lists my pitfalls so you can avoid them. In any case, this site is just to present my work, and I'll include a few helpful links in case you and I share the common interest of developing graphics and game software.

I'm a member of GameDev.Net, under the alias "Waverider", in case you are curious about the discussions I start (which lately have been very few).

You may also find me in Eve Online under the alias Topodo. Read my bio for mission walkthroughs and other advice!

A couple sites I commonly refer to for coding samples are CodeSampler and NeHe Productions.

Enjoy your stay, and feel free to comment on what you see.

My email

A funny D&D comic site for your enjoyment

My projects - TTopRPG - Game Engine - Demos - Short Stories - HeroScape - About this site - Resume

Latest Updates

3/30/09 - is moving! Hopefully downtime will only be about 8 hours when it starts. If you fail to access, try its replacement site, NOTE: TTopLaunch looks at "" for updates, so while is down, this update process will not work. Once the transfer is complete, you can continue to access everything via The transfer is scheduled to begin April 3rd. If your attempts to reach fail after that time, you may also need to flush your DNS ("ipconfig /flushdns" at Command Prompt, ran as Administrator).

12-28-2008 - TTopRPG 2.0 came together very well. It received some accolades from various users, and I'm glad the players like it. I GM'd some of Red Hand of Doom with it, and ran Mud Sorcerer's Tomb (Dungeon #138), Caverns of the Ooze Lord (Dungeon #132) and Tower of the Last Baron (Pathfinder LB1) on Saturdays. I'm starting to add some map building functionality to bring it up to par with what MapTool has to offer, maybe even take it a little beyond by making the controls a little more intuitive.

4-26-2008 - I spent a few months writing a HeroScape emulator, but after presenting it to WotC, I was told I couldn't use it. So, now I'm reworking TTopRPG to run under C# 2008 Express. It's not a bad language. It takes some getting used to. And .NET actually makes a lot of coding for Windows controls easier, once you figure out how to work it. Unfortunately, it doesn't easily turn data structures into byte buffers and vice versa, making it a challenge for network packet translation. I may end up going with C++ 2008 Express instead.

1-3-2008 - I like HeroScape so much, I gave it its own page! Pardon the WALL OF TEXT while I pretty it up and add more links.

12-30-2007 - I finally got bored with EVE Online and quit, although my help page is still up for anyone who searches for the name Topodo in the game. I tried LOTRO for a while, got bored and stopped. For the first time in a few years, I'm no longer playing a MMO game. I became interested in collecting adventure material for Dungeons and Dragons 3.5 again, particularly the Adventure Paths released by Paizo in the Dungeon magazines over the past few years. I'm currently in a weekly online game for the Savage Tide path. In addition, I recently became interested in the HeroScape board game, which is basically a minis game using dice on hex-shaped terrain. I've collected a number of pieces and sets, mostly on sale or clearance, this being the holidays and year end. Take a look at the kinds of maps you can make with the right sets! Although, looking back, paying the monthly price for a MMO game is much less expensive!

5-14-2007 - Check out my Game Engine 2007 page for more progress and demos.

5-6-2007 - Here's a latest version, with a static light source, projected floor texture, and doors. There's a small bug with the texture not showing through alpha walls, but that will get fixed eventually. Next up will be light source flares, I think. I'd like to get spotlights going, but I can't get my mind around how to project perspective textures on arbitrary surfaces yet.

5-4-2007 - After some inspiration, I decided to try reducing the buffer switching to speed up the frame rate. The benefit wasn't as dramatic as I was hoping (from 30-35 fps to 45 fps in Debug and 56 fps in Release), but the frame rate is better. However, here is one example of a bug I'm trying to track down since I converted to C++. In VB, it seemed I could figure out where the problem is quickly. In C++, the problem could be anywhere. * Found it, I had the viewpoint transformed to a door's orientation when I restored a clip plane. Nasty bug to find. I just stored the world transformation when I set the clip plane and temporarily restored it before I reactivated the clip plane.

4-30-2007 - I've converted the bulk of my VB code to C++. All in all, I'd say it runs about 6 times faster. Pretty nice, but I'm finding that even though hardware acceleration can really speed up rendering, you still have to use it economically to get the most out of it. And that will require some serious rework on my part. I'll think about that at another time. In any case, I allow the light source to be a little behind a surface to light it, which gets rid of the sudden appearance of light on a surface. I think the result is very acceptable. Compared with the older way of doing it, the new way is much easier on the eyes.

4-22-2007 - I've reworked the lighting to blend one minus destination color, instead of multiplying by source alpha and adding. The lighting becomes less agressive but still effective. Compare the new version with the old version. See how the lightmaps on the far wall don't blob so much in the new version? Much nicer.

4-18-2007 - Sometimes you have to show off again, too. And once more.

4-14-2007 - TTopRPG came together well, and I've used it for the past 6 months for some online RPGing. The last couple months have also been spent attempting another game engine, this time in Visual Basic. Sometimes, you just have to show off.

6-1-2005 - Began devlopment on TtopRPG, an experimental online D&D tabletop emulator

12-21-2004 - Added a World of WarCraft page

9-26-2004 - I'm going to experiment with some new ways of building a game engine and will discuss and post my results. I'll need to pick up a couple books first.

9-12-2004 - I participated in the World of Warcraft Stress Test Beta last week. It was a lot of fun. I played on the Archimonde server as Myrdok the warrior, Elyrra the mage and Gapper the hunter. I very much look forward to World of Warcraft coming out in retail.

8-23-2004 - Well, when I first started this site, I put a lot of base information down, as well as some further discussions that I was interested in at the time. After browsing through a number of texts, message boards and tutorials, I'm taking some steps back and would like to rework my original approach, because what I do have here presents some good expectations for the learner, but not really anything for someone to start with and build on. I'm hoping to come up with something that everyone can use. No promises, though. Had things come together the way I planned or hoped, there would be a lot more to this site than there is now. I don't know if it's something I can pull off.

12-4-2003 - Started a Crawl project discussion for a game I am making with a fellow programmer

10-29-2003 - Added an EverQuest page, since I started playing again.

8-1-2003 - Added Billiards demo to the demos page

7-23-2002 - Added a Short Stories section. Enjoy!

2-8-2002 - Added a discussion on rendering 3D worlds in OpenGL.

12-8-2001 - Haven't added much lately, just testing a new machine right now!

9-15-2001 - My prayers go out to the victims and families who suffered loss in the World Trade Center tragedy. Many blessings go out to the servicemen and people of New York for pulling together and helping the rest of us remember what it really means to have the spirit to live in this great country. America was greatly wounded by this heartless attack - but we have become a stronger country for it.

Regarding the terrorists, this pretty much says its all

9-4-2001 - Added discussion on the System object
8-9-2001 - Added TriGuy demo to the Demos page


Hello there, and welcome. Allow me to introduce myself. I am a programmer interested in developing games, and this site will showcase and describe the work I'm doing.

In addition, if you are a programmer that wants to develop fully functional games like Quake, StarCraft and Battlezone, you might find it helpful to take a look at my sections on game engine design. I've drafted a few attempts and have a pretty good idea of what goes into a well laid out game engine, and I will be attempting to develop a generalized engine that supports both 2D and 3D style games, complete with networking and form support. To this end, I'll be posting what I think are the more valuable discoveries I've made regarding game engine design. Maybe they will help you along on your way as well.

Most books I've read only show bits and pieces of game engines. Others may demonstrate an entire engine, but specific only to the game being developed. My goal is to make a game engine that is easy to add to and understand, mainly because I want to program games, and sometimes the best way to have control over what a function set does is to write it yourself!

Stand by for more changes, I have a lot to add yet. As I make progress, I'll post more here to share with you. You can expect discussions and small demos to be posted.

Thanks for stopping by!

- Craig


My bio - Game Engine - Demos - Short Stories - About this site

Site developed with Dreamweaver 4