Version 0.4.0

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 (11.86 MB)

*.ZIP - Compressed with WinZip (12.76 MB)

*.RAR - Compressed with WinRAR (10.46 MB)

*.7z - Compressed with 7Zip (10.45 MB)

Libraries Files (Not required for EXE users) (1.00 MB)

[edit] Release Notes

Released on March 13, 2007

Quite a lot of huge changes were made in this release. The multi-server system was added along with a lot of support for it so you can have a theoretical infinite amount of players on the same world as long as you have enough servers to back it up. Also, a skinning system for the forms was added so hopefully people will submit some skins so you can view the editors in the style most pleasing to you. Another big thing was the mini-maps, which come in two flavors, both very delicious. Besides that, tons of other things to check out. :)

[edit] Change Log

Add - Spell sound effects: Added some demo sound effects to the 3 enchantment spells (Bless, Protect and Strengthen).

Add - Sound effects: Added two sound effects, one for spell casting, other for throwing a ninja star. Both of them I made, and both of them are horrible, but they get the job done (for the most part).

Add - Form skinning system: Added a form skinning system based off a very heavily modified code of some other form skinning system I found (except for theirs was much buggier ;)). This is used only on tools, so the client and server both won't require it by default. The idea is to give a selection of more comfortable and eye-pleasing interfaces that users can choose from instead of being stuck with the default one and having to do a lot to change it. Took about a complete day from morning to night to finish, so hopefully it goes to good use.

Fix - GrhDatMaker: Fixed a small problem in GrhDatMaker, a Grh value was set as an integer instead of long from a long time ago.

Fix - Map editor light optimization: The map editor won't report layer 1's lights unused anymore because layer 1 defines the lights for objects and characters, and theres cases where tiles with no graphic and blocked still need light on the base level.

Add - Projectile initial degree: Changed projectiles to have the initial degree as the degree between the attacker and the victim instead of 0.

Change - MOTD format: Changed the MOTD to work like the help buffer.

Change - /Help format: Changed the help to be loaded from a separate file, and at runtime, it is created into a byte array automatically so it can be sent to the client very quickly (like the pre-cached messages, but longer).

Fix - NPC drops: Fixed a small variable bug in the NPC drops that prevented it from loading.

Change - Whisper packet: Changed the whisper packet from client -> server to break the name and message apart on the client instead of on the server, which saves the server a bit of processing.

Change - MediumText to Text in MySQL fields: Changed a lot of the MediumText to Text fields in the MySQL database, since those who had it listed as MediumText really didn't need that much text.

Add - Valid chat text check: The client now will check to make sure there is a string to be handled for the chat-based commands before it is sent to the server. For instance, "/shout" alone wont send, but with text next to it, it will.

Add - Chat trimming: Made the client trim all the chat-based command strings before they are sent to the server so the server doesn't have as much crap to deal with.

Change - CurrentTime system: Removed the CurrentTime function and replaced it with just using timeGetTime directly since the CurrentTime added extra overhead that we don't want. Instead, at the start of every server loop, ValidateTime is called, which checks if the timer has rolled over.

Add - Strength and agility raise damage: Made the mod minhit and maxhit raised by the user's strength and agility values so every point of strength is +1 damage, and every point of agility is +0.25 damage.

Fix - Map editor file paths: Changed the map editor to use the module that holds the settings of all the file paths instead of defining them itself.

Change - Mini-map to vertex buffer: Changed the mini-map's blocked tile outline to be set to a vertex buffer for a bit more speed.

Change - FVF size calculating: Changed the FVF size calculating (Len(FVF)) to using a constant for a wee bit extra speed and just in case the FVF is unloded from memory (common with the temp vertex array).

Change - Rain intensity: Lowered the rain intensity to about half of what it used to be.

Remove - Waterfall character binding: Removed the support for the waterfall to be bound to characters... no idea why that was even in there in the first place.

Remove - Chat vertex array: Removed the chat vertex array and replaced it with a general usage temporary vertex array for creating vertex buffers. Also made the chat vertex array clear from memory after the vertex buffer is made.

Fix - Chat buffer batch rendering: Finally fixed up and finished the chat buffer to batch render instead of rendering each letter at a time. The speed difference isn't that noticeable, but it helps.

Add - Map editor mini-map: Added the mini-map to the map editor, also toggled by pressing tab. It works slightly different then the client on how the characters are drawn, but for the most part, it is all the same.

Add - Mini-maps: Added support for mini-maps. The mini-map is shown and hidden by pressing tab. It displays the character locations, signs and exits. Depending on what option you select for the drawing, you can also select how the blocked tiles are drawn (either as an outline, or draw all the tiles you can walk on). Characters drawn on the mini-map are only the ones you can see in the screen.

Add - Tile exit flag on maps: Added support for a tile exit flag on maps in the .dat files. Unlike the .inf files, the .dat file just stores if there is an exit or not so that way the client will know if there is one at all. This is going to be used for the mini-map.

Change - Client map clearing: Changed the map clearing to directly clear the memory in bulk instead of removing bits at a time so maps switch faster.

Fix - Client map user clearing: Fixed the map clearing to completely clear off all users.

Remove - CharIndex from client maps: Removed the CharIndex from the client MapData array since it is not used.

Add - NPC attack sound effects: Added the ability to define the sound effect played when a NPC attacks so each NPC can attack with a different sound.

Add - Object use sound effects: You can now define the sound effects used when objects are used. For weapons, this is when the weapon is swung/thrown. For use-once objects, this is played when they are used. Works pretty much at the same times as the UseGrh. For no weapon being equipted, a constant is used to find what sound effect to play.

Add - Cross-server shouting: Added the ability to shout across servers if multiple servers are defined, so every time someone shouts, it will go to everyone in the game instead of everyone on that server.

Add - EXE-based server ID defining: Added the ability to overwrite what the server ID is by defining it in the EXE's name. For example, renaming the server to 3.exe will force the server to ServerID = 3, no matter what the ServerID is defined in the Server.ini file. This allows you to easily change the ServerID, keep track of the servers easier, and use multiple server EXEs without having to copy the server files (so you can run as many servers as you want from the same directory).

Add - Client-side emoticon delay: Added emoticon delays for the client so they can't spam emoticons.

Change - Object unloading time: Changed the objects to unload after 5 minutes by default instead of 10.

Fix - Server map unloading: Fixed a few problems in the server map unloading that caused the maps to not unload at all even if you specify them to be unloaded when no users are on them. Also fixed some bugs caused by users traveling to the new maps before the map being loading by ensuring the map is loaded before any actions take place with it.

Add - Cross-server whispering: Added support for whispering to a user on a different server the the one whispering.

Add - Cross-server communication: Added support for the servers (if multiple servers are used) to communicate with one another. This allowed for messages to be relayed through the servers so users can still talk to users on other servers. The servers communicate to each other through Winsock Control sockets completely separate from the primary (client-to-server) sockets.

Fix - Data_Send: Fixed some bugs in Data_Send that caused the server to crash with multiple players online.

Change - RemoveOnline: Changed the RemoveOnline function to change the "server" flag to 0 only if it is the ID of the server that is being loaded.

Change - Online MySQL flag: Changed the "online" flag in MySQL to "server". Instead of holding 1 or 0 for online or offline, 0 is for offline and a higher value holds the ID of the server the user is on.

Add - Chat scrolling with mouse wheel: Added support for scrolling the chat window (default 25% of the screen per scroll) when the chat window is visible and the mouse is over the window.

Change - Chat scroll rate: Changed the chat scrolling screen to scroll at a range of 50% of the screen per pagedown/pageup click.

Fix - Hit rate calculations: Made the hit rate calculations based on Agil + Str / 4 and constant for NPC vs PC, PC vs PC and PC vs NPC.

Remove - WeaponSkill stat: Removed the weaponskill stat since it was pretty useless.

Fix - NPC shop item loading: Fixed the NPC shops to load items and display them correctly.

Fix - NPC inventory shortcut message: Fixed the NPCs to say Ctrl + W instead of Ctrl + I for the inventory.

Change - MySQL information location: Moved the MySQL information to the Server.ini file instead of in the code directly to go with the multiple servers.

Add - Multiple servers: Added support for multiple servers. Unlike many other games, what server you are on is based on the map the user is on instead of each server holding an entirely different world. As users log in, they log into their last used server. If it is the wrong server, they are moved to the correct one. Same goes for switching between maps. This allows developers to take advantage of multi-core CPUs and a series of servers over a LAN, or just servers hosted at different locations. The servers share the same database, so all the game information is the same between servers.

Fix - NumConnections: Fixed the NumConnections updating so the server will now properly display the number of users connected on the tooltip.

Remove - Useless user resizing: Removed some unneeded user array resizing and such from the server.

Personal tools