Version 0.4.4
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 (13.1 MB)
*.RAR - Compressed with WinRAR (10.8 MB)
*.7z - Compressed with 7Zip (10.8 MB)
Library Files (Not required for EXE users) (1.00 MB)
[edit] Release Notes
Released on April 3, 2007
Well this release takes the cake on the fastest release with the most changes by far. Theres tons of goodies to look at in this. Lets start with the biggest - the map editor. The map editor was completely rewritten with the GUI design help of Nex. It should be very easy to use now. It also added support for the maps to be shaped anywhere from 5x5 to 254x254 tiles, so you can choose the optimal size for your map which will be much more friendly on the server's CPU, RAM and even bandwidth if you use smaller maps. Summoning was also added in so you can summon multiple "slave" NPCs. Other NPCs will attack them, and your summons will attack them back, along with follow you. Also added in some visual goodies, like the fog weather for the cave and correct zooming. Then theres some fixes and such, and other things of importance. :)
[edit] Change Log
Fix - Fullscreen minimizing crashing: Fixed the fullscreen mode from crashing. Was tons of work to get it working with the blur effect and alternate render both in. Also, when going back into fullscreen, the mouse is automatically recaptured.
Fix - NPC array clearing crash: Added a small problem avoidance that caused the server to crash when unloading every NPC in the server (in NPC_CleanArray).
Add - Variable map sizes: Map sizes can now be sized anywhere from 5x5 at smallest to 254x254 maps at largest. No more 100x100 maps for everything!
Add - Active window check: The client will now check if it is the active window before receiving and handling any GetAsyncKeyState() (ie movement) events. This should fix that nasty annoyance of the screen moving when doing stuff in the background.
Fix - Login crashing: Fixed a bug that caused the server to crash when trying to connect with a character that didn't exist.
Change - Alternate render settings: Alternate render settings was split into two groups - one for map tile rendering, one for not. This is because the map tiles make the heaviest usage out of the 4 lights, while alternate rendering can only support a single light. This was mainly implemented for myself since the only thing I have problems with visually are the chat boxes, so I can fix that without breaking the map. Edit: Also added support for alternate rendering on text, since thats quite a big FPS hit (tons of small images).
Fix - Alternate rendering preserving textures: The last texture is cleared in alternate rendering if Engine_Render_Rectangle is called since some parts of the code call it directly instead of through Engine_Render_Grh. One place this fixed was the HP/MP bars under characters.
Remove - Widescreen support: Removed the widescreen support since it was just causing too many problems, and theres too many different wide-screen resolutions support, so figuring out which ones are support, which aren't, and which to use was just a pain in the butt.
Change - Map editor: Completely redesigned the map editor with the help of Nex666. Theres quite a lot of new and changed stuff to it, but a lot of the old is still there, too. Hopefully this will make people complain less about the difficulty of the map editor. ;) This took over a full days worth of work, so just think of this as worth about 20 change log entries. :)
Fix - Zooming: Fixed the zooming routine. Also made it so the backbuffer texture only renders as much as it needs, so no extra texels are drawn outside the buffer area when flipping the texture to the buffer.
Add - XP theme manifest to tools: The game tools (ie everything that doesn't start with Game or Update) that have forms were changed to have support added for XP style manifesting, which forces those ugly VB-style buttons and such to XP style ones.
Remove - Form skins: Really sorry to those who helped with the form skins, but I removed them since they were becoming too much of a hassle. The replacement is listed above.
Add - NPC_AI_ClosestChar: Added a routine to find the nearest character instead of just users, which allows you to treat slave NPCs just like you would PCs.
Fix - Ranged NPC search area: Ranged NPCs will now search based on their attack range, not a larger area, making the routines run a bit faster.
Fix - Heal spell: Fixed the heal spell, which was broken because the Skill_ValidSkillForClass routine didn't work properly when the class requirement = 0, which was supposed to make it so theres no requirement, not that no one could use it.
Change - Default resolution: Changed the default resolution back down to 1024x768 since enough tested was done on it to call it good, and it seemed to slow down too many computers with such a high resolution.
Change - Mini-map group color: Changed the mini-map's grouped character color since it was impossible to tell before if it was a grouped character or a NPC.
Add - Slave NPCs as grouped in mini-map: Slave NPCs will now show up as grouped NPCs in the mini-map if the NPC belongs to the user.
Change - NPCs slaves of NPCs: Removed the partial support for NPCs being slaves of NPCs, which mostly consisted of many parameters and variables being specified as the CharIndex, then the routine checking if the char was a user or NPC and handling accordingly. This is because if "NPCs summoning NPCs" is added in, the NPCs will just be treated as thralls.
Add - EXP/gold from slaves: Slave NPCs, when killing another NPC, will give the EXP / gold to their owner.
Add - Ranged NPCs vs slaves: Ranged NPCs (ie the Ninja) will attack and run from slave NPCs belonging to a user.
Add - NPCs attacking slaves: Normal NPCs (those of slave index 0, ones created by the server and not by spells) will now attack other slave NPCs. This means NPCs will attack your summoned NPCs. They do not chase them, though, only attack them if they are already within attacking distance - otherwise, they come straight for you.
Fix - No hurting slaves: Owners can no longer hurt their slaves. In other words, players cant hurt their summoned NPCs.
Add - NotSlaveOfIndex to NPC_AI_ClosestNPC and NPC_AI_AttackNPC: Added a NotSlaveOfIndex parameter to NPC_AI_ClosestNPC so you can make sure that NPCs both summoned by the same player don't run around and try to attack each other.
Add - Server_HeadToPos overflow checks: Added some overflow checks to the Server_HeadToPos routine to lower the chances of it crashing by positions of (0,0).
Fix - NPC dropping items on death by non-user: When a NPC is damaged and NPC_Damage is called where UserIndex = 0 (ie attacked by another NPC), items will still drop.
Add - NPC_AI_AttackNPC and NPC_AttackNPC: Added two routines to help aid in the creation of NPC-vs-NPC fights.
Add - NPC summoning: Added the ability to summon NPCs through a spell. You can summon as many NPCs as you want (up to 255), but theres a limit you can set server-side to balance things. NPCs are automatically unsummoned after a specified amount of time, and their strenght is based upon the summoner's magic level. When warping, the NPCs will follow you. When logging off, the NPCs all dispell. Although it is only tested with just PCs right now, it is built to work so NPCs can summon NPCs, too.
Fix - Client character erasing: The client now wont crash when trying to erase a character that does not exist.
Change - Class variables: Changed class variables to integers instead of bytes, so you can have 16 classes instead of 8.
Add - Thrall counter: Thralled NPCs (ones created either through /thrall or through spells, in other words, NPCs created not by the map) can now have a counter which defines how long they stay thralled (in milliseconds). Once this time passes, they are automatically removed. The value is stored in RespawnCounter since thralled NPCs cant respawn, so no extra memory is allocated.
Fix - Map unloading: Fixed a vital typo that prevented maps from being unloaded from memory.
Add - Fog weather: Added fog to the cave for an example weather. At first I tried a bunch of little clouds, but that looked like crap, so I did it like DXRE (my old old engine) did it. You'll have to see it to find out. ;)
Fix - FPS viewer loading error: When the server FPS viewer loads and the file can't be found, it'll give the correct error instead of a VB error.




