glFont Still Going Strong
Posted in Game Development on Sat, September 27, 2008 at 11:57 AMAfter 10 years, glFont is still quite popular. Version 1 was released in 1998, and version 2 in 2002. Even though the latest release is over 6 years old, I still receive emails from users on a regular basis. This month alone has seen more than the average, including one from a commercial game studio wanting clarification on the license so they can start using it in their products.
Unfortunately, over the past 10 years, probably about half of the emails I receive are the "I have a bug in my program, can you fix it?" type, with source code attached. I find that a lot of people that attempt to start using glFont don't even have a basic knowledge of OpenGL. Most of the time the attached code is some random OpenGL boilerplate sample taken from somewhere on the web with some glFont calls thrown in. My consolation is the fact that glFont has been used in many commercial products and successful hobbyist projects.
To this day I have received not a single cent for glFont, which is fine. I think at one point I threw in a note that said "donations welcome" (I was a poor student at the time), but nobody seems to have taken me up on that. People wonder why I never charged for it, but I think that's obvious: it wouldn't have helped anyone that way. Getting frequent emails that say stuff like "Thanks for your wonderful tool!" etc., is satisfaction enough.
Now, if I'll ever get around to releasing version 3 that has been sitting on my hard drive since 2004...
4 commentsSome More Good Reading
Posted in C++ on Wed, June 18, 2008 at 10:07 PMSome more good C++ reading materials that I left off my last post for some reason:
- mr-edd.co.uk: I don't exactly remember how I stumbled upon this guy's blog originally, but it's always highly interesting. This guy knows his stuff, and he pushes the languages in ways that sometimes make it look foreign (which isn't a bad thing, because it stretches your brain). Highly recommended for anyone who wants to learn something new.
- Visual C++ Team Blog: This is the official blog for the Microsoft Visual C++ team. Sometimes there is some really neat information posted here, sometimes not. Worth perusing for the good information, in my opinion.
Adventures in Source Control
Posted in Misc on Fri, June 6, 2008 at 02:30 AMWay back in 2006 I had an interesting email conversation with my friend Jeff Hansen about Gentoo Linux, source control, and other things. I used to work with Jeff back at the TALL Group. He now works for a company called Card Access doing Linux kernel development. (He's also a genuine, real-life Nintendo World Champion--for 3 years in a row.)
Anyway, Jeff asked if I'd ever tried git for version control. At the time, I was still using CVS. Not long after that I started using Subversion and left CVS behind for good (thank goodness). Subversion has worked out relatively well for me over the past few years, and it was such an improvement over CVS that I never really gave serious thought to looking at anything else.
git has since come up in a few conversations with both Jeff and another friend in recent months, and as a result I've had an item on my mental to-do list to investigate it. Over this past weekend I finally took some time to read up on it. I also watched a rather lengthy, but quite informative presentation that Linus Torvalds himself gave on git at Google. You can watch it here: Tech Talk: Linus Torvalds on git.
I've read that Linus likes to ruffle feathers, but it's funny actually seeing him do it instead of just reading about it. git came about because Linus was looking for a source control system to replace BitKeeper that met certain criteria (distributed, fast, etc.) and decided that everything out there was crap. He states: "The end result was that I decided I can write something better than anything out there in two weeks, and I was right." He slams CVS, Subversion, Perforce (which I have never used), and pretty much every source control system out there except git (obviously) and Mercurial (which I have also never used).
At another point in the video, he says, "You can disagree with me as much as you want, but during this talk, by definition, anybody who disagrees is stupid and ugly, so keep that in mind." Probably the most confrontational thing he did was to call the designers of Subversion morons, and then directly calling any Subversion contributors in the audience "stupid." (These quotes are taken from a transcript of the video.)
Linus' interesting personality aside, I've found a lot of aspects of git really intriguing. His technical arguments on all of the major points are really solid. I've actually been playing around with it and there are a few things that I really, really like:
- It really is FAST. Unbelievably fast. I was skeptical at first, but no longer. It's waaay faster than SVN.
- Branching and merging really are easy, just like Linus claims. I actually imported one of my SVN repositories into git and did a merge of two branches there that I had been putting off, and it went swimmingly.
- I really like being able to continue working on the repository while offline. I don't know how many times I've copied a Subversion repository (in addition to the working directory) to my laptop so I could continue working on a project without net access.
Some other things I like about git, but which I haven't verified or played around with yet:
- Because it's distributed, you don't have to worry about commit access to a central repository. This seems really, really cool.
- The storage format is supposed to be very efficient due to compression and some other things.
- git actually tracks the content in files, not files themselves, so apparently you can track the history of specific pieces of code even if that code gets moved between files.
- git guarantees your data integrity. Given a single SHA1 commit identifier, you can verify that your entire project's data is exactly the same as when it was committed, so nobody can come in and corrupt your repository without you finding out about it.
- git has a command called bisect, which helps you track down the specific commit at which a bug was introduced. Basically it helps you do a binary search on the project through time, which cuts down on your reproducing time until you actually find the bug.
git seems really promising, and I'm going to keep playing around with it. I never thought I would find a compelling reason to switch from Subversion but I might just be wrong!
18 commentsGood Reading
Posted in C++ on Sun, June 1, 2008 at 11:07 PMAs a huge fan of C++, I'm always interested in learning new things from people that have been much more involved with the language over the years than I have. I've been subscribing to a couple of blogs for some time now that have been very educational, and I thought I'd share.
Herb Sutter
Herb Sutter is currently the chair of the ISO C++ standards committee and has been involved with the C++ standardization process for quite some time (if not the entire time). As such, he's incredibly expert and reading his work is always enjoyable.
Recently his writings have focused on concurrency issues. He's got a whole series of articles on synchronization, multi-processing, etc. that have been published on Dr. Dobb's Journal (you can find links to the articles on his blog).
In addition, his non-blog website is also great reading, especially his old (but still relevant) series Guru of the Week. He's got a lot of really great gems in there and it's really worth reading through all of them in my opinion.
Andrew Koenig
Andrew Koenig has also been involved in the standardization process, and is the father of argument dependent name lookup in C++, which is also known as "Koenig lookup."
He tends to write more about C++ and programming philosophy in general, and doesn't get into the nitty gritty like Herb Sutter. Nevertheless, still interesting reading.
Enjoy!
6 commentsEpic Games Acquires Chair Entertainment
Posted in Game Development on Thu, May 22, 2008 at 12:44 AMWhile browsing gamedev.net this morning (Or was it yesterday? I can't seem to remember...) I read an interesting piece of news that stated that Chair Entertainment had been acquired by Epic Games, the makers of the Unreal Engine.
I met one of the co-founders of Chair, Geremy Mustard, back in Utah while I was attending BYU. At the time he was working on an Xbox/PC game called Advent Rising. Later, his brother and another fellow by the name of Ryan Holmes founded Chair.
I can't remember if I mentioned this in the past or not, but I actually did stop by Chair in Provo, UT late last year and met with Geremy to talk about the possibility of working there. They didn't really have a need at the time and I wasn't really looking to move back to Utah, so it either did or did not work out, depending on how you look at it.
Anyway, Geremy & Co. are fantastic fellows and it's really cool to see their success in being acquired by a very high-profile, well-known games company. I wish them the best of luck as a "wholly owned subsidiary" of Epic.
For more information, you can see the press release.
SVN and WinMerge
Posted in Misc on Sat, May 17, 2008 at 04:33 PMToday I went looking for a good diff viewer on Windows. Typically if I'm doing heavy diff viewing, I switch over to my Linux box and use KDE's kompare. kompare is an excellent tool, and you can pipe the output of Subversion straight into it to get a nice graphical view:
$ svn diff | kompare -o -
However, sometimes I really wish I had more than just viewing svn's diff output manually on Windows, hence the search for a good Windows diff viewer. I found a nice, open-source one called WinMerge. I had quite a bit of trouble integrating it with svn on the command line though, because WinMerge doesn't seem to accept diff output from stdin.
After a bit of digging I found this tidbit by a guy named Joshua Flanagan. Although it involves creating a Windows batch file (blech), it seems to do the trick and I have a nice diff viewer now. We'll see how I like it, and I'll keep everyone posted.
6 commentsI Beat My Prior Record
Posted in Life on Tue, April 22, 2008 at 09:43 PM 1 commentGet a Job, Take Over the World
Posted in RTS From Scratch on Sun, April 20, 2008 at 10:49 PMI am pleased to announce that I have accepted a position with Bungie! I will be relocating to the Seattle area soon and am looking forward to working with some amazingly talented and creative individuals. This is absolutely incredible opportunity, and really, I could go on and on and on about just how excited I am. However, in the interest of brevity (and because all of my relocation preparations, including a recent trip to Seattle to find housing, have left me quite exhausted and bloodshot at the moment), I will save some thoughts for another post.
My start date has been set, leaving me with just enough time to wind down some contracts here and take care of relocation preparations and logistics. Next stop: world domination!
1 commentBungie!
Posted in RTS From Scratch on Sat, March 29, 2008 at 06:19 PMOn Thursday I had a great chat with the lead recruiter for Bungie. Then late yesterday evening, I got an email saying they would like to bring me in for an interview! I waiting to hear back on the specific day and details and so forth, but HOW AWESOME! I'm really excited to have chance to visit the Bungie offices. Stay tuned for more information on both this and my interview with Insomniac!
2 commentsGetting Closer
Posted in RTS From Scratch on Tue, March 25, 2008 at 05:33 PMLast week my phone interview with Insomniac went really, really well. I spoke with two gameplay programmers there (one lead and one senior) in a conference call. First they asked me some questions on me and my programming background, why I wanted to get into games, etc. Next we talked a bit about game design on the last game I beat (Crysis). Following that was the technical section, with some questions about 3D math and then some on C/C++. I felt I nailed all of the questions except for one small one (although I did get started on the right track). After that I got to ask them a bunch of questions: what they liked about Insomniac, how they enjoyed coding for the PS3, what compiler they use, etc. It was a ton of fun! They promised to get back with me in a few days via the HR department.
Fast forward to today, when I received a call from HR! They want to do an in-person interview and they are flying me out to Burbank next week. Awesome! I am really, really excited. I'll be there in their office for about 5 hours, after which I will fly back here to Las Vegas. This is such great news and I am SOOOO relieved. AWESOME!
But that's not all! Last night I heard back from one of the top engineers at Bungie who had reviewed my test. One of my solutions was non-optimal, and he gave me the chance to come up with a better solution. One of my solutions had a performance problem on large data sets, which he asked me how I could fix. Lastly, he asked a "how might you..." question about doing something differently on one of the questions. I was SOOOO relieved to hear back from Bungie, and the fact that they were giving me a chance to improve on my test must be a good sign, right? Of course!
I wrote back and two of my corrections were right on target. The third was acceptable, but couldn't be used under all circumstances, so I had a third chance to improve upon it. Luckily I solved it in the general case before I struck out, and was informed that I passed! I'm supposed to be hearing from their lead recruiter soon to talk about various options. AWESOME!
Really, both Insomniac and Bungie are incredible companies and I would be immensely privileged to work for either one. Hopefully I'll also get a chance to visit the Bungie offices in WA soon! It will be an incredibly hard decision if I get an offer from both. Anyway, I'm just so grateful that I'm making progress towards another offer!
Stay tuned for more news!
2 comments| Older » |


