Archive for the ‘Random’ Category.
3rd July 2009, 09:50 am
The Emotional State of the Internet is a website which analyzes Twitter messages and calculates how the internet is feeling. It’s updated every 10 minutes. You can also see a historical chart of the current top emotion.
It’s interesting to see the difference between what emotion people twitter about the most in various languages. French speakers talk about how lonely they are. Germans by a wide margin talk about “angst” the most. While Google Translate tells me it means “frightened” in English, according to Wikipedia it more accurately translates to “anxiety.” This is why I keep the original word listed and put the English translation in parantheses.
Italians tend to talk most about being “triste” which means sad while Spanish speakers talk by a slightly wider margin about being happy.
Maybe Spanish speakers are happier than everyone else or maybe they use Twitter mostly to express happiness and tend to keep other emotions to themselves.
If you want to what people are getting emotional about you can click on “keywords” at the top of the page. That will list all the current keywords for all the various emotions the site is tracking.
15th May 2009, 02:02 pm
A-Star (A*) Implementation in C# is an excellent implementation of A* in C#. It plugged neatly into Bunnies 3.0 which will soon have a sequal “Zombies.” The AI in Bunnies consists of stupid bunnies that just bounce around and multiply and slightly more intelligent enemies that will come at you and shoot at you if they see you. In “Zombies” you can run but you can’t hide. The game will be slow moving but difficult to kill hordes of enemies with limited ammo and various weapons. The A* algorithm is being used by the zombies to always keep them moving towards you no matter where you go.
This isn’t my first use of the A* algorithm and the flaws with it are still there. My first use of A* was for a simulator that had tanks and flying vehicals moving around complex 3D terrain that was created using DEM data (geological survey data of real life locations). One of the test paths took a helicopter over Mount Saint Helens. The helicopter would fly up the side of the mountain at the maximum pitch, fly down into the mountain, fly up out of the mountain and then fly down the side of the mountain to the destination.
The reason it did this is because A* always wants to be close to the final destination which was at the base of the other side of the mountain. So if it got a chance to lower the altitude to be close to the base it did. But that’s obviously not the optimum path. The fix for flying vehicals is to find the farthest point in the list of destinations which can be seen with a simple line of sight check. So from the base of the mountain the helicopter can see the top of the mountain so it heads straight there. From there it can see the other side of the rim so it flies straight there. And from there it can see it’s destination so it flies straight there. A path that was dozens of points is reduced to less than 10.
The technique is basically just doing intelligent post processing on the A* path to cut out unnecessary steps. Land vehicals had limits on the angle of the terrain they were going over. Sometimes A* would come up with tangled paths that didn’t go anywhere. So to fix that I found the farthest point along the A* path that the vehical could see and travel to without violating the steepness rule. That easily cut out knots that A* had created and simplified paths significantly.
Because the Bunnies Engine deals with flat terrain the line of sight algorithm can be used on the zombies to simplify their movement. Once I start putting together an actual tutorial on A* I’ll give visual examples of how post processing helps clean up A*.
30th April 2009, 05:38 pm
The original software rendering location will remain up for now while I slowly transition each of the lessons to the new Real Time Software Rendering Blog.
I found that it was quite the pain to update the old site since it was all static HTML and any syntax highlighted code was highlighted by hand. WordPress has a handy dandy plugin that automatically does the syntax highlighting. So this move will hopefully motivate me to continue adding new lessons on more topics.
There is certainly no shortage of lesson ideas that I’d like to cover.
5th January 2009, 10:30 pm

The next game I decided to go with from the original Elmo game is the Feed Dorothy game. The object of this game is to move Dorothy so she catches the food. In my version you feed her cookies. In the original version the object is to feed Dorothy fish food. Bleck.
From a technical standpoint this demonstrates some additional game programming concepts. The cookie comes from the fish food container. The fish food container moves around and shakes. Dorothy is actually animated to look like her tail is waving. A 2D image of a goldfish was progressively modified with the “bulge” filter in Paint.Net (a free and excellent image editing tool for Windows). The fish object then progressively rotates through the frames of animation. “States” are used extensively to keep everything in sync. Also, both the fish food and Dorothy face the direction they are moving.
We’re no longer simply moving around static images like the Soccer Game.
The next game to be implemented is the Alphabet Game where Elmo must dodge obstacles and collect one letter at a time. I found a couple examples of Elmo saying the alphabet on YouTube. One is a rap song. The other is a skit with Grover where Elmo says every letter except one. I’ll see how I can best use those in the Alphabet Game.
15th September 2008, 01:46 pm
One of questions many gamers have is “why do you even have lives?” It made sense back in the arcade days because lives cost real money. There was a financial incentive to make the game difficult so you’d die often and have to pop in more quarters. Many modern console games just annoy you if you run out of lives. For example making you go through the whole process of loading up your saved game again.
ACME Arsenal doesn’t have “lives.” You can still die but there are numerous checkpoints throughout the levels so that if you die you don’t lose much time and there’s no real punishment. That I like. Although it can be annoying in some parts where it’s possible to hit a checkpoint and then fall making you choose between killing yourself or working your way back up to the checkpoint. In some cases it’s faster to just kill yourself and get started back at the checkpoint.
The biggest annoyance is found at the tutorial level when you learn how to do double and triple jumps. The double jump is easy. The triple jump requires you figure out what the heck the manual is talking about. You press A twice and then twist the nunchuck a quarter turn left or right. What they don’t make clear is how the nunchuck must be held when doing the twist. You may assume from the illustration and the intended action that you rotate the controller while holding it vertically. That is not the case. You have to hold the controller level and twist your wrist to the side.
One complaint reviewers had was inconsistant behavior when trying to get the character to perform various actions. I’m guessing that was caused by not holding the controller properly. In many games an animation is used to tell you how exactly to move the controller. ACME Arsenal doesn’t do much to help you out.
Until you figure out how to hold the nunchuck and rotate it to perform the triple jump consistantly you’re not going to get very far in the game.
Once you’ve figured out how to work the controls the game is actually pretty fun. One of “cheats” that you may discover on your own quickly is that weapons that are provided by the game to perform a certain task reappear within seconds after picking it up. So you can pick up a gun and stay in the same spot and your ammo count will continue to go up rather quickly. This doesn’t apply to weapons dropped by enemies. In some levels you can find a weapon, wait for a minute or two in the same spot and have hundreds of rounds of ammo and go on a rampage. If you die you lose the weapon and all the ammo and you may not be able to go back and get it again after you make it past some checkpoints.
I picked the game up for about $15 and I’d say it’s worth the money. It’s frustrating to begin with but once you get the hang of it it becomes more entertaining.
15th September 2008, 12:34 pm
14th September 2008, 05:46 pm
The Bunnies site has been updated. One of the features of the game that the site didn’t support was bump mapped and depth mapped walls. There is now a tool available that will allow you to use any tile piece as a bump and/or depth map for any other tile piece.
The client has supported this feature for awhile. I had previously just manually set up a couple test tiles directly in the database.
It would probably be a good idea to put together some sort of manual for this product now. The Bunnies web-site is now fully capable of editing maps for the Bunnies game. The rest of the game development process is going to revolve around making Bunnies fully internet enabled. Currently the server serves only to access map information and download resources. What I’m looking to do next is to allow multiple players to interact when they’re in the same map. The first part of that is implementing a chat interface.
11th September 2008, 12:01 pm
World Daily Press has been updated a bit. Previously the main page allowed you to browse through categories and see all the articles for the current day. There was a seperate archive page that allowed you to browse older articles but didn’t have categories. That seemed silly to me so I finally merged the two. The archive now handles everything. You can browse through the current day and previous days and view only the articles in certain categories. It’s also paginated so you don’t get overloaded with summaries on a single page.
It’s still horribly plain looking (see also: ugly) which may be fixed eventually.
18th August 2008, 06:32 pm
Bunnies! finally has a new release. Since the last release bilinear filtering has been added which smooths over pixelated graphics, lighting effects have been improved and bump/depth mapping support has been added to wall textures.
Outside of rendering improvements Exits are now part of the game. Previously the user determined the level order. Now they only determine which level they want to start on. The map designer creates the exits which take the user to the next map.
One of the big issues with lighting was the shadows cast by walls. The lights would wrap around the walls in some cases. The fix was a change in algorithm. Now our friend the vector is used to check the dot product of the wall vector and the light vector. No more light wrap around. There was also an issue with the light intensity calculation which resulted in the colors of objects being distorted.
I think the next step is to add in a messaging system. There needs to be a console mode which will allow the user to enter in text messages and send them. The network protocol already exists. It’s just not yet used in the game. And then from there it’s time to have the server start passing messages between users.
And that of course is the beginning of actual multiplayer.
18th August 2008, 09:09 am
Circuit City had New Super Mario Bros on sale for $25 so I picked it up. It’s a mishmash of features from various Mario games and some new things. But at the core it’s a back to basics side scrolling goomba stomping good time.
Although I like Super Mario Galaxy I’m tired of complicated 3D games where much of the game is fighting the camera and awkward controls. I’d like to see a Wii version of NSMB with 3D graphics but the same 2D game play. Mostly because I prefer to play games on the TV rather than a hand held. In the mean time I spend my monies on Virtual Console games like Donkey Kong Country and the original SMB games. I have all of them and the Japanese version of SMB2. The Japanese version of SMB2 is just mean. By the second world there are already hidden blocks that you have to hit just right so you have enough room on the screen to go back and jump on top of it so you make it over the otherwise impassable pit.
Ever since 3D graphics started becomming the rage 2D side scrollers have tended to go away. And there’s really no reason for it. Take advantage of the increased GPU power to make better looking graphics but keep the controls simple. I don’t always want a challenge. Sometimes I just want some fun.