Attribute Sorting

In order to finish the animation system, I need to finish the mesh data attribute sorting code.  The vertices must be sorted by the number of bone influences, as this determines which vertex shader should be used for each batch.  I hope to finish this code soon!

Posted in Engine Development | Leave a comment

Down Time

I’ve been taking a much needed, long break away from the project.  I’ve been working on it for many years now.  However, I hope to resume work soon.  I’d still love to get the character animation code working.  That is going to be the next step.  I’ll post more updates here soon.

Posted in Announcements | Leave a comment

Been There Web Site

I’m pretty much finished with the account management system for the game.  All of the required functionality seems to work great.  I need to get my testers to try out the web site now.  Later, I may do more work to further harden it against attacks by malicious users.  However, it’s already pretty tight I think.  I’ll continue to review the code for a bit, to make sure there are no issues that need more attention right now.

I’m really glad to have this piece of the puzzle in place.  Now I need to get back to work on the engine again.  I was getting really close to having the character animation system ready to test!

Posted in Web Site Updates | Leave a comment

Account Management System

I’ve been working on the account management system for the game.  I’m creating the web site on my Linux Apache web server using PHP.  I finally figured out how to get PHP to connect to the MS SQL Server used by the game.  I learned how to create sessions, which will help keep my site secure.  I also installed an SSL certificate for my domain, so that I can use full encryption on the web site.

I was going to hire someone to do the work on the account management system, but I may not need to now.  Everything is coming together nicely.  I need to do more work to prevent SQL injection attacks, but I should have it all ready very soon.

Posted in Web Site Updates | Leave a comment

Web Hosting

I got tired of Godaddy raising their web hosting prices, so I decided to setup my own linux apache web server.  This was inevitable anyway, since I want my account management system web site to be behind the firewall along with the master game database server.  I’m not going to expose my SQL server directly to the Internet.  I simply copied all of the web site and MySQL databases from the old server to the new one.  Everything seems to be working well.

Posted in Web Site Updates | Leave a comment

Good Wires Gone Bad

I had to replace the Ethernet cable on the database server today.  Whenever I used Remote Desktop to connect to the machine, I was getting a lot of vertical lines and garbage pixels.  As it turns out, the signal was getting really crappy.  The new cable should actually help the performance of the game server considerably, since the communication to and from the SQL server won’t suffer from so much network packet loss.

Posted in Hardware | Leave a comment

Upgraded Database Server

I had a faster CPU laying around that I was able to put in the database server.  I also upgraded its memory, switched out the old CD-ROM for a DVD-ROM drive, and installed a second hard drive that I can use for backups.  I wish I had the money for all new database server hardware, but I guess it’s not in the cards for me at the moment.

While I was at it, I upgraded the database to SQL Server 2008.  This caused a few issues with the game servers that I had to work out.  It took me several hours to figure out why I could not connect to the DB using ODBC.  As it turns out, I have to also specify the port number, i.e. 1433, in order to successfully make a connection.  Apparently, the database server was trying to respond on a different port than what I was expecting.  Anyway, the upgrade is complete.  The game is back online and everything seems to be working smoothly.

Posted in Hardware | Leave a comment

Scene Object Updates

I’ve been making changes to the base scene object.  Now there is a flag that you can use to render the current scene object after all of the children have been rendered, instead of the other way around.  This was needed due to the way mesh skinning is performed.  All of the bones (i.e. matrices used to influence the vertices) are added as children to the mesh itself.  The combined transform for all of these bones need to be calculated prior to rendering the skinned mesh.  A new object called a Matrix Palette was added to the mesh scene object.  It’s used to setup, and update, all of these bone transforms.

For the blend indices, we need to compensate for the lack of UBYTE4 on older hardware, so we use the UINT32 data type instead of UBYTE4.  In the shader hardware it’s going to end up being interpreted as a color and converted into 4 floats, instead of a single 32-bit integer. Thus, we will need to swizzle and scale the components back into the original 4 unsigned bytes.  This really feels like a serious hack to me; but after hours of searching the Internet, it’s apparently the only way it can be done using older hardware.

Some small changes were made to the helper functions that handle vertex declarations.  There were some instances where en element would not be detected, if the data type is different than normally expected.  For example, a position element may have been padded into a 4 element tuple; instead of using a 3 element tuple, the default.

Posted in Engine Development | Leave a comment

Updated Game Server

I updated the game server for Been There this week.  It now supports chat commands from an administrator account to kick and/or ban users from the game.  If you kick a user, it immediately logs them out of the game servers.  When you ban a user, they can’t log back into the game until re-enabled by an administrator.

In order to support the above, I had to finish handling the disconnect event in the client.  Now when you loose connection to the servers it shows a lost connection screen, with a quit button to gracefully exit the game.

Posted in Game Development | Leave a comment

Fixed Game Client Bugs

I finally fixed a nagging bug in the Been There Game client that has been around for a while now.  On rare occasions, the client would crash and you couldn’t see the error message unless you used Alt+Tab first.  Well, with the help of a minidump file (a useful subset of information normally found in a full crash dump file), I finally found out what was causing the crashes!  The modifications that I made also fixed the issue with avatars not appearing sometimes.  To fix the problem with the prompt to create a crash dump file not showing up, I now make sure that the application is not running in a full screen window before trying to show the message box.  I was trying to display it over top of the crashed window, but it would not always show up reliably.

Posted in Game Development | Leave a comment