What is vbGORE
From VbGORE Visual Basic Online RPG Engine
Keep in mind that this only includes some of the major points of vbGORE. There is plenty more to discover that you will be sure to like!
- 1 Introduction
- 2 Features
- 2.1 Server and Networking
- 2.2 Graphics
- 2.3 Audio
- 2.4 Security
- 2.5 Game Features
vbGORE is an Open Source ORPG (Online Role-Playing Game) engine, made through Visual Basic 6 utilizing the support of DirectX8 and WinSock API libraries. It is designed for the public to have the ability to create their own ORPG without extensive programming knowledge. And though programming is not required, having a basic knowledge will allow for better personalization and use of the engine.
vbGORE is much more powerful then many of your typical VB (Visual Basic) made ORPGs (Online RPG) / OREs (Online RPG Engine). With the power of the DirectX 8, you are open to all the 3D effects you could want in a 2D rpg engine by putting in 3d rpg engine abilities from alphablending and rotations to scaling and lighting. With the 6 tile layers, flexible particle engine and 24 lights per tile, you are able to create a world the way you want it to look. Also, with the optimized binary packet sending and the Sox Winsock API wrapper, you can support tens of thousands of players with less bandwidth then any other VB ORPG engine.
For those who are new to the free ORE scene, there are many engines created in VB, though most of them are the pretty much the exact same. They all use very large packets to get the smallest task done and send the packets way more then needed, making your bandwidth skyrocket. On top of that, a lot of them run very slow and use DirectDraw through DirectX7. This engine runs faster then many of the competitors, and does it while supporting very popular 3D effects such as rotations, scaling, lighting, and alphablending. The cost of it all though is simplicity. Some of the other OREs may be easier to use, especially while vbGORE is still in development, but it is up to you to decide if the major CPU, RAM and bandwidth usage is all worth it. The ultimate goal in vbGORE is to create a powerful, fast and flexible engine while maintaining ease of use. It is constantly under development, getting more powerful every day. We're not going to become one of those VB ORPG engine that just die off because the programmer decides he doesn't want to work on it anymore. In fact, we plan to create a game with our own engine some day, so we want it as complete and powerful as possible.
To use vbGORE, you do not have to know how to program in Visual Basic, but it sure will help a lot. There are guides and tutorials on how to add new features for those who are still new to the game programming scene, though take in mind that the better you are at programming the easier of a time you will have adding your own features. If you do wish to learn how to program though, we are here to help and try to supply guides on how to get you started with game programming in visual basic along with programming guides on important key concepts used so you can better understand how the game engine works.
Server and Networking
Packets and Bandwidth
Using GOREsock, a WinSock API wrapper, combined with binary packets and custom buffering and buffer prioritizing, vbGORE is able to quickly send small packets of information over the internet. This allows you to save money from paying for a lot of bandwidth, or even be able to host your server from your own computer! In testing situations, vbGORE has been able to use as little as 0.5 kilobytes per second per player while fighting a large group of NPCs. This means that on a low-end cable connection with 40 kb/sec upload rate, you can host 80 players without a problem! With a decently fast dedicated computer and typical cable or DSL connection, you can host a server powerful enough to support more players than you may ever need!
As of version 0.4.0, vbGORE offers the ability to expand your game server across multiple servers. This means that there is theoretically no limit to the amount of players you can have in a single world. The servers will communicate with each other, sending players to the correct server when changing maps, along with send messages (such as private and global messages) to players on a completely different server as you. All the servers have the same content, too, using the same MySQL database to load all their information.
Most all unused memory is unloaded from the server, whether it is maps, NPCs, objects, or players. The time that maps (including the NPCs on the map) and objects can remain in memory unused is easily adjustable. This also does not mean a slow map switching and object reading times - vbGORE utilizes the speed of binary file I/O to quickly load the information back into memory when it is needed. An entire map with multiple NPCs on it can be completely loaded back into memory in about 1-2 milliseconds (1/1000ths of a second), while objects in less then 0.1 milliseconds.
3D Graphics Engine
Next to networking, one of vbGORE's strongest points is the graphics engine. With a DirectX 8 graphics engine, Direct3D, vbGORE allows you to use lighting, rotations, alphablending, scaling, particle engine and tons more effects on any graphic, allowing you to bring your graphics to life. The graphics are rendered at a fast rate with very minimal overhead, allowing even low-end computers to run your game!
The use of particle effects allows you to create visually stunning graphics through simple formulas. The particle engine is set up to be handled very easily and provides plenty of examples on how to use it. Effects can be used for anything from spells, level up effects, in attack animations, or even bound to maps to create effects to go with your map designs such as for fire and water!
Custom Bitmap Text
The ability to create custom text has become an important feature in engines these days, and vbGORE couldn't make it any easier for you to do so! Using CBFG, you can easily create your custom font, then vbGORE will do the rest! The custom text also renders (draws) much faster then using system text through DirectX, giving you a nice speed boost!
Realism can be brought to your game by using weather effects. Through just a few lines and using the examples supplied by vbGORE, you can create all kinds of weather effects (and sounds for those effects) through the weather engine, from a lighting storm to a soft snow fall.
Mini-maps are automatically generated for you every time the map changes, and rendered through a vertex buffer for maximum performance. The mini-map comes in more then one flavor, so its up to you to choose which you like the most. You can also display signs, exits, and characters on them.
2D/3D Sound Effects
Not only does vbGORE let you play sounds, it will let you play it with a custom algorithm designed to generate pseudo-3d sound effects. As you get farther away from the sound source, you can hear it fade and pan out to the corresponding speaker. Though if that isn't your choice in preference, you can play sounds in 2D (no modifications to volume/panning based on location) just as easily.
The smallest details in a game can add the greatest effects. Hearing a waterfall in the distance before you approach it, or listening to a fireplace crackle at your local tavern. vbGORE allows you to easily bind sound effects just by specifying the sound effect number and the tile you want to place it on so you can create much more memorable and life-like environments.
Sounds for attacks can be easily defined. For users, all you have to do is bind the sounds to the objects. For example, a sword could have more of a sharper and quieter woosh with slicing sound at the end, while a staff can have a big woosh then "thud!". For NPCs, you just have to define which sound effect that NPC uses for their default attack.
vbGORE supports music in mp3 format and allows you to specify which song to play on which maps. If the song runs through, it'll loop it for you. If you switch maps but the music doesn't change, it'll just keep on going where it left off.
vbGORE makes encryption on packets a breeze - just specify a few variables for your key, what encryption you want to use (RC4 and XOR only, due to being fast and having no size inflation), and vbGORE will do the rest. It automatically generates a series of obfuscated keys at runtime then cycles through them when packets are sent, making the exact same unencrypted packets look completely different when encrypted!
Compression and Encryption
For encryption, you have the choices between Blowfish, CryptAPI, DES, Gost, RC4, XOR, Skipjack, TEA, and Twofish. You can use these to encrypt your game's content, whether it is your graphics, sounds or music! For compression, vbGORE supplies RLE, RLE (looped) and LZW compression methods. These allow you to compress any files or data you want, such as if you were sending files through an auto-updater. All compression and encryption algorithms are very popular methods used in the industry and have been proven over time to be fast, efficient and secure.
One of the most important parts of an online RPG is player to player communication, so an in-game mailing system has been developed to allow players to send mail with messages and items attached to it to other players. Mail can be read by clicking any tile marked as a mailbox. The mailing interface shows you the subject of the message along with when it was sent and if it is a new message or not.
A favorite in the 2D world, paper-dolling allows you to "dress up" characters by visually displaying the items a character is using on their sprite. Just as easily as vbGORE lets you use paper-dolling, it can be removed just by ignoring all the paper-doll layers but the body for those who prefer to go without.
By a simple click of the mouse on another character, you can target them for your target-based actions. When a character is targeted, they will glow is a nice green aura for you so you can easily see who you are attacking. Though, if they are through obstacles, they will appear red so you know you can't hit them with an attack that doesn't go through obstacles. To un-target a character, all you have to do is click elsewhere on the screen besides on another character, and the targeting will be removed.
Quests are easily defined in the database, and can include rewards for accepting the quest and completing it. Along with that, you can include requirements for accepting the quest, and define either a certain amount of objects you have to get or NPCs you have to kill. Quests can then be given to NPCs to use just by changing a single number on them. You can define quests to be done as many times as the user likes, or only one time, along with text the NPCs says at different stages and conditions of the quest.
vbGORE offers a complete item system, from NPCs dropping multiple items, each with a different drop chance to users picking up those items and selling them to a local merchant. You can also drag items around the interface so you can sort them in your inventory, place them in your Quick Use bar, or send them in the mail to another user.
Spells and Skills
There is no limit on the flexibility vbGORE has to offer with the spells and skills system. The demo game that comes with vbGORE has includes area-of-effect, buffs (raise stats), de-buffs (lowers stats), healing, and more. You can use these on yourself, or target a player or NPC and use it on them. NPCs can use them on you or other NPCs, too, whether it is healing their comrades or weakening you!
This is always a goody of many games, especially those with very active chatting. When players or even NPCs talk, a chat bubble will appear above their head with the message they wrote. For NPCs, this can be toggled off and on for every message, while with players, it can be toggled depending on the chat styled used.