Version 0.5.3
From VbGORE Visual Basic Online RPG Engine
Contents |
[edit] Downloads
All downloads contain the same files, just using different compression methods.
*.EXE - Self-installing file (12.2 MB)
*.ZIP - Compressed with WinZip (12.8 MB)
*.RAR - Compressed with WinRAR (10.4 MB)
*.7z - Compressed with 7Zip (11.0 MB)
Library Files (Not required for EXE users) (1.04 MB)
[edit] Release Notes
Released on May 2, 2007
This version contains some pretty vital bug fixes, namely the packet size bug fix. This bug prevented you from sending packets > 1024 bytes - any additional information was just ignored and lost. Also, there was a fun algorithm I made that resulted in about a 11% FPS increase by cropping a texture drawn outside of the screen automatically. Instead of drawing the whole image and letting the buffer cut it off, it just alters the X/Y and Tu/Tv (texture co-ordinate) values accordingly, drawing only what you see. This speed increase is especially noticeable on the fog weather since those textures were so huge. Also added WAV file detection to the updater client/server so WAV files are handled through a different compression algorithm, Monkey Audio Compression, instead of the normal LZMA, for faster compression at a higher ratio. Finally, peer-to-peer trading was finished, so you can all stop bitching at me about that. ;)
[edit] Change Log
Change - Price to Value: Changed the variable price to value to fit a more generic description of the object. This didn't change in the database, though.
Add - Object value in inventory: Added the object value in the user's inventory objects so you could see how much it is worth without having to go to a shop.
Add - Player-to-player trading: Added a secure method for trading between players through a player-to-player trading system. Players can trade gold and up to 9 items at once through the trading. Yup, the feature you have all been waiting for, and it only took about weeks to do it.
Fix - User_RemoveInvItem's UpdateInv value: Fixed the User_RemoveInvItem routine to actually make use of the UpdateInv parameter.
Fix - UpdateAll on User_UpdateInv: Fixed the UpdateAll flag on the server's User_UpdateInv routine to work correctly with clearing out objects.
Fix - Server-side class check: Fixed the server-side class checking to work correctly.
Fix - Map editor's TLVertex: Fixed the map editor to use the same TLVertex as the client - it still had a Specular value in it for some reason. Whoops!
Change - Map editor weather: Changed the map editor's weather to work exactly like the client's weather so it is easy to copy new weather over. Also updated the map editor to show the fog weather.
Add - Render cropping algorithm: Added an algorithm to Engine_Render_Rectangle (map editor and client) that will actually crop a texture to draw only the visible part of it instead of draw the whole texture and let the backbuffer crop it off. This only takes affect if the image is actually going to need to be cropped. In the end, its not any slower for those rendered fully on the screen (it uses the same algorithm), but for those cropped it should be at least slightly faster, with more bonus from those that crop more (ie the fog weather). Through testing on the main map, the old algorithm got about 88 FPS average while the new got about 95 FPS average. Horray!
Add - Input_Keys_ClearQueue: Added a command that will clear the key cache / queue for GetAsyncKeyState so key presses from a long time ago aren't transferred over. This is called at the start of every game loop so only key presses will react if they have been pressed that loop, not if they have been pressed since they were last checked for. This should fix that "random movement" when first logging in that sometimes occurs.
Fix - Packet size bug: Fixed a very nasty, very elusive little bug that didn't poke its head in until now (which is actually good news, which you will understand why by the end of this). The bug was caused by a minor oversight when designing the server and client socket's buffer size. The client and server both used a buffer of 1024 bytes. The server's buffer is small because of performance and flooding prevention (along with it is rare the client even sends packets over 20 bytes), but the client was never meant to be so small. This means that for every packet over 1024 bytes, the end was chopped off. For the client, this happened when logging in when having over 24 items in the inventory. Combined with the whole login phase, it pushed the size slightly over 1024, chopping up the MOTD that was placed at the end. The sockets were recompiled, the server with a 3072 byte buffer (just in case - have to take mailing and such into consideration), and the client at 16384 bytes (the client doesn't receive packets more than a few times a second, so the speed reduction shouldn't even be noticeable). This only applies to packet receiving, not sending, which can be any size.
Fix - Logging in with last MinSP/MP/HP: Fixed the login to update your stat mods fully before setting back your MinHP/MP/SP. Before, it was set before your mod stats were updated so you couldn't log in with 100% if you had stat modifiers for HP/MP/SP.
Fix - File processor file deleting: In cases where the source file = the destination file, the file won't be deleted even if the tick box is ticked.
Change - File processor controls safety lock: The file processor's controls are locked from being edited when the algorithms are running so the contents can't be tampered with, leading to unwanted results.
Remove - DES and TEA encryption: Removed DES and TEA encryption because they were not matching up to the other algorithms when weighing the speed and security.
Fix - Updater client: Added a potential fix for the problem of the update client sometimes constantly downloading a file over and over.
Change - Default background music volume: Decreased the background music volume to be much more "in the background".
Fix - GUI fluency: Fixed up some of the GUI fluency with the last clicked window handling for certain windows.
Fix - Data_Server_CharHP/MP: Fixed a huge critical bug in the Data_Server_CharHP/MP routine on the client. The client was grabbing the character index as a byte and not an integer. That means that any time when the character index would be over 255, it would probably crash or break all the data after it in the packet.
Remove - PTD: Removed the packet transfer delay timer since it too often was being confused with ping, and really didn't have much use.
Fix - User_RemoveInvItem: Fixed the User_RemoveInvItem routine to only perform its operations if the user has the item that is being removed already equipped.
Add - Update server/client WAV detection: The update server and client will now recognize WAV file suffixes and use Monkey Audio Compression on them instead of LZMA to achieve better compression speed and size ratio.
Add - Monkey Audio Compression (MAC): Added another compression algorithm specifically designed for WAV format files. It compresses WAV format files faster than LZMA (default update server compression) with a higher compression size ratio.



