Happy New Year

Happy New Year from Mind Blown Games! I look forward to starting a fresh new year working on Been There Game. I expect good things to come soon!

Posted in Announcements | Tagged , | Comments Off on Happy New Year

Upcoming Game Client Programming and Testing

I plan to spend my time this holiday working on Been There Game. I’ve actually made great progress lately. For one thing, the bug that has been bothering me was finally resolved! Great way to end the year.

Happy Holidays from Mind Blown Games!

Posted in Announcements, Game Development | Leave a comment

Game Client Testing

Still testing the Been There game client. I’m currently working on a minor bug that has been bothering me for a while. Other than that, things are still working out pretty well.

I added a new feature to the game engine that I’m calling area sound. Unlike full 3D sound, it’s much less CPU intensive. It’s still positional, however the sound direction (and velocity, etc.) is not taken into account. This allows us to have different environmental effects (or music, etc.) fade in and out, based on the player’s current location in the world. Sounds are started and stopped automatically as needed.

Posted in Engine Development, Game Development, Music & Sound FX | Tagged , , | Leave a comment

Littletown

After a couple of months, the Been There test world called “Littletown” is finally back up and running! I’ve been chasing down a bunch of little pesky bugs in the new servers. However, they seem to be running pretty smooth now. Unlike the old servers, they don’t use any CPU when they are sitting idle now. I’ve spent a lot of time optimizing their code! I can leave the services run in the background, and not worry about them at all.

Final verdict on the Windows I/O completion port model is a big thumbs up. I’m not going to lie though, it’s a very complicated model to implement. However, it’s very efficient, and simply works great. I like it so much more, that I re-wrote the game’s Linux Gatekeeper server to run on Windows now. My sockets code base for Windows is just way more solid and robust. Plus the debugging is way easier for me.

Posted in Engine Development, Game Development | Tagged | Leave a comment

Salted Hash

Salted hash? No, I’m not talking about food lol. I’ve been working on the authentication methods between the client and the server. The stored passwords in the database are now hashed using a secure hashing algorithm. No more plain text passwords. I know, sounds bad, but it was strictly for testing purposes. The web site uses SSL encryption, and also hashes the passwords as well. However, I’m still working on the encryption methods for the game client.

I decided to salt our hashed passwords in the client with random bits that are generated on demand by the server. This way a login packet should never contain the exact same data every time a client authenticates and logs in. This is done to avoid a “replay attack”, where a “man in the middle” snoops the login packet, and tries to use it later to authenticate as that client.

Note that hashing is not encryption. Hashing is strictly one-way, and theoretically can’t be decoded. Encryption implies that a decryption can take place.

Posted in Game Development, Web Site Updates | Tagged , , , , | Leave a comment

Visual Studio Conformance Mode

I decided to enable the Conformance Mode (permissive-) option that was introduced in Visual Studio 2017. It’s supposed to help me write code that is both more correct, and more portable. I found out quickly that it reports a lot of conformance issues! Especially bothersome is the fact that you can’t directly call inherited members in templates that have been derived from. You have to either declare a using statement at the top of your template class to inherit the parameters/members from the base template, or add a scope resolution operator to them. You could also change the call from function() to this->function(). Since ‘this‘ is always implicitly dependent in a template, this->function() is dependent and the lookup is therefore deferred until the template is actually instantiated. It was a lot of work cleaning things up, since this code base is so large.

The Orion Engine SDK has evolved all the way from Visual Studio 6.0, to the most recent 2019 version. I’m very pleased that it still builds correctly and cleanly with all of the strict options enabled!

Posted in Engine Development, Game Development | Tagged , , , | Leave a comment

Client/Server Test Applications

I made a couple of simple applications that I’ve been using to test the latest client and server code. It’s certainly helped me find and fix a few bugs already. I feel like the code is pretty solid now. I can also use these test applications to send a bunch of “bad” data to my network drivers. You know this will happen once my servers go live again. I can verify that my algorithms, such as the “stale socket check”, are working as I intended. Time to keep plowing forward!

Posted in Game Development | Tagged , , , | Leave a comment

Network Server Driver

Finally, the new and drastically improved network server driver is working! I’m so excited! I have some quirks to work out still, but all is good. Now, I’m moving on to some encryption and hashing stuff that needs to be addressed.

Posted in Engine Development, Game Development | Tagged , , | Leave a comment

What’s Been Going On?

Getting close to finishing up the network driver code for the servers. I’m finding that I want to re-factor a few network related things in the Orion Engine SDK. I’m finally getting close to a new public test of the game client! I’ve also been further securing the login code. I’ve added some Cryptography related classes and functions to the SDK. Been doing a lot of testing and planning lately as well. It’s all good!

Posted in Engine Development, Game Development | Tagged , , | Leave a comment

Network Server

I’ve been working on the network server code over the past week. It’s modular in design, meaning I can replace the existing module on all of the server applications and they will automatically use the new, optimized code. I’m implementing the “Overlapped I/O Completion Port” method. It’s a very complicated implementation! I hope I don’t need much longer to finish it. I feel in the end I’m going to have a very scalable, high-performance server library capable of handling thousands of simultaneous connections!

Posted in Engine Development, Game Development | Tagged , , , , , | Leave a comment