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.

No Comments

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.

No Comments

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.

No Comments

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.

No Comments

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.

No Comments

Searching For Game Bugs

I decided to work on the game for a little bit, for a change of pace.  I added a few new beta testers the other day.  While watching the logs, I noticed some issues with the chat server that were kind of weird.  I’m trying to track down a nagging little bug that I’ve just ignored for a while.  I also discovered that if an error message is displayed, you have to Alt+Tab to dismiss it when running in full screen mode.  So when a fatal error like this is displayed, I need to make sure that the full screen game window is closed first.

Anyway, I still need to finish the mesh skinning code that I’m going to use to render the avatars and monsters.  I think I just need a short break from it, then it will be easier to finish.

No Comments

Skinned Mesh Support

I’ve been working a lot on the skinned mesh support in the engine lately.  I was having a problem with the engine’s 3ds Max exporter crashing when you exported a mesh that contained physique, but I have that fixed now.  If you tried to export a skinned mesh that was not already triangulated (i.e. a NURBs surface), then the number of skinned vertices would not match the number of vertices actually in the mesh data.

I also added some new features to the .fx effect file importer in the world builder.  There were some issues that needed worked out, so that I could load the effect file that is going to be used to render the skinned meshes.

So, I finally have all of the data that I need.  Now I just need to finish the skinned mesh support in the mesh object itself.

No Comments

Looking for 3ds max Artist

I’m currently looking for an artist who can create 3ds max physique-based skinned avatar and/or monster meshes.  I’m also looking for a skilled web developer to work on the account management system  If you are interested in contributing to the Been There Game project, then please let me know.  I’d be more than happy to hear from you!

I’ve been taking a break for the last few weeks.  I’ve been pushing myself way too hard for a long time.  However, I’m recharged and ready to finish working on the mesh object code where I left off.

No Comments

Updating Mesh Scene Object

I’m currently updating the mesh scene object hierarchy to support skinning data.  The skin weights, and the bone data, are already exported by the custom 3ds Max exporter.  All of this data can be successfully loaded by the engine.  I’ve also been working on the HLSL vertex shader in the effect file that will be used to render the skinned meshes.  I may need to make some small changes to the effect system, to make things work out exactly the way that I want.  I hope to be testing this all out very soon.

No Comments

Skinned Avatar Mesh

I need a skinned mesh with bones, so that I can test the shader that will be used to render the avatars in my game.  I’ve been going through the 3ds Max tutorials on biped and physique.  I forgot how to do mesh skinning.  It’s been a long time since I tried to use the physique modifier on my own.  It’s all coming back to me pretty quick though.  I’d like to export a skinned mesh with a basic walking animation soon.

No Comments