| This is the website of Percy's Persistence Engine! The Persistence Engine is a combination of two software tools: a static library client and a server executable. To use the Persistence Engine, you include the library into your project, make some minor alterations to your code, and use the simple functions provided. These simple functions will connect to a computer of your choice, which you must run the server executable on. The clients can then save any amount of information in the server, and associate each piece of information with a certain name and password. Thus, the idea is to have modifications use this to allow players to save their information and retrieve it later upon logging onto another Half-Life server. The interface is simple to use, and requires no previous knowledge of networking. At present, both the server and client will only compile on Windows machines -- to make the necessary adjustments for Linux would be fairly easy with a bit of study. The Persistence Engine uses some cryptography to ensure security from anyone reading the transmissions. The rather more serious problem of server administration has, as of yet, not been addressed. Upon connecting to the server, the client sends a public RSA key to the server. The server encrypts a random string of characters and sends it back to the client. The server and client then communicate using Rijndael encryption in counter mode with the the string of characters as the key. However, as stated, that is not to say there are not serious security issues with the server. To sum up, the Persistence Engine is a simple interface that allows any program, say, the server of your Half-Life mod program, to save and load information to an external server. Many different Half-Life servers, for example, could save and load to this same external server. In this way, you can save things like rankings, statistics, levels, or inventories. There will be a forthcoming tutorial on Wavelength on how to use the Engine, and there will be further updates to both the client and the server software as time goes on. It's important to understand that this software is in alpha 0.01 right now, I'd prefer people testing it out and giving me comments rather than using it in production software. :) It's pretty user-friendly, and once I get the tutorial out it'll be easy to use it. However, try taking it now, checking it out, letting me know what you think. (And warning: these files are PRETTY BIG. I'll see what I can do to reduce their size, but for now I'm even leaving the debug symbols in. The zip file is pretty small, though.) The client and server both use the magnificent Crypto++ library by Wei Dai, and I use the pthread_win32 library for the pthreads in the client. If you have any questions/jokes/comments/ideas/etc., please email me. |