Exploring Verge³
by Overkill
First Things First.
Some things to go over before I'll go any further.
Salutations!
Hello there! Greetings! Hody two. My name is Overkill. I enjoy web design, programming and making games.
Verge³ feeds my hobby of game creation, even on my horribly subpar Pentium 166-mhz computer.
I've been hanging in the Verge community since about 2000.
Over the years I've gained much knowledge about Verge³ and programming. I'd like to share this knowledge.
That is why I have started this project of writing tutorials.
I'll try my best to explain in a way a newbie can understand, but I can't guarantee everything I say makes sense.
The people who have been around Verge long enough to have programmed something might gain more from this. I honestly don't know.
Anyway, I'm hoping someone might get something out of my rants and explanations.
Well, that I've introduced myself let's get rolling on the Verge³, shall we?
What You'll Need
The following are some files you'll need or possibly want for your development:
- Verge - Maybe this one wasn't too obvious, maybe it was, I don't know. So, you kind of have to nab a copy of the Verge³ Release off of Verge-RPG.com. Not so obvious is the fact that vecna (Creator of Verge) puts the latest executable at http://vecna.verge-rpg.com/verge.exe which you can save over the release you find at the site.
- fmod.dll - This is required. It's the sound and music engine used by Verge³. It's necessary even if you don't want any audio in your game.
- verge.cfg - Not *required*, but it's nice to have this file anyways, so you have some customizability over your projects.
- system.vc - This is definitely required. Without code, you have nothing. Not required though if you set "releasemode 1" in verge.cfg, though.
- system.xvc - This is your code that's compiled when you run Verge³. Required if you set "releasemode 1" in verge.cfg.
- VOpenCHR - Not *required*, but do you really want to use DOS Prompts and stupid stuff to create sprite (.chr) files? Didn't think so. ^__^;; Visit here to nab a copy of it.
- MapEd3 - Once again, not *required*, but do you want to use the built in map, sprite and event systems? I suggest you get it. It should come with the Verge³ Release off of Verge-RPG.com
- PackEd - Useful, if you want to store all your project files in one small package. This can prevent outsiders from tampering with your project components and source code. I'm not sure, but it might even compress files. I personally haven't used it yet, but I've seen how it works.
- One (1) Brain - Yes, an open mind, your thinking cap, will take you far distance in your development. It helps you not get stressed, as well as making you wise enough to take breaks when you do get frustrated.
Verge.cfg
This file allows you to do some basic configurations to verge. You should be able to simply edit it. If you don't have a verge.cfg, just make a plain text file in Notepad and save it as Verge.cfg (make sure it's not Verge.cfg.txt, or something though!). The below are some various commands you set.
xres [res]
yres [res]
Sets the horizontal x resolution, and vertical y resolution of the screen or window. Some common resolutions used are:
- 256x256
- 320x200
- 320x240 ("Winners use 320x240" -- Benjamin Eirich, Director, USDR)
- 640x400
- 640x480
...Anything bigger or smaller will have serious speed differences for each PC running your project.
Example:
This sets the resolution to 320x200.xres 320 yres 240
nosound [0/1]
This sets sound off when true (1). The sound is on by default (0) if not specified.
Example:
This mutes the sound.nosound 1
windowmode [0/1]
This sets windowed mode when true (1). If set to false (0), the game will play fullscreen. Nice people don't make their games fullscreen, since fullscreen has various issues on high-res and low-res monitors. Plus, if Verge freezes in fullscreen, you can't CTRL-ALT-DEL it!
Example:
This makes the screen windowed, because I'm friendly.windowmode 1
automax [0/1]
This maximizes the screen when true (1). However, maximized view stretches the screen to fit the window, and the screen will look somewhat skewed. If set to false (0), the window will be match the exact resolution. Automax only applies to windowed mode.
Example:
Sets the window to look normal size, but might be hard to see on dual monitors with your triple prescription glasses or something.automax 0
Note: Windows 98 users (like me), will notice an odd occurrance when they set "automax 0". The window will appear to be a title bar with no screen! To fix the problem, grab the lower-right corner and drag until the sizer "snaps" into place. Or, you could just set automax 1, your choice, not mine.
releasemode [0/1]
This will compile VC code when false (0). If true (1), VC code won't be compiled and instead it'll read what you compiled last. Turning on releasemode will speed things up considerably when you have massive chunks of code. Releasemode was designed to make it easy for others to play your release (duh! ^_-).
Example:
The code will compile as usual, which is what you want until you release your project for public consumption.releasemode 0
startmap [mapname.map]
This picks the map you start on, not required. The map must exist, obviously, or Verge'll hate you.
Example:
Let's make Verge pop up with a test map!.startmap test.map
vcverbose [0/1]
When true (1), Verge writes a useful debug file when compiling. I don't see why you'd want this off, really... >__>
Example:
Write a debug file when we compile things!vcverbose 1
mount1 [packfile.vpk]
mount2 [packfile.vpk]
mount3 [packfile.vpk]
mount4 [packfile.vpk]
Loads pack files created by PackEd. The .vpk files have to actually exist if specified, and can't be corrupted (sorry! ;___;). These commands are entirely optional
Example:
Load a fancy splash introduction to verge³!mount1 zarilsplash.vpk
gamerate [ticks per second]
Whatever. Don't use this. I don't, nobody I know does. Adding this command changes the timing of *everything* according to the docs, which I strongly reccommend against.
Example:
...Look, don't use it, please. Never use this. Ever. This example makes there only be 60 ticks per second as opposed to the default 100 ticks/second. Remember, don't... use... it.
gamerate 60
System.vc
Verge needs you to make this file somehow. For non-coders, if you have a system.vc file existing already, open it with a text editor like Notepad (Next chapter I'll scold for using Notepad though!) and paste the following lines. If you don't have a system.vc, make a plain text file and save it as system.vc (make sure it isn't system.vc.txt!), then paste the following in it:
void AutoExec()
{
Exit("Yay, I run VERGE!!!!!!! :o :o :o");
}
That program should compile and exit with a window saying "Yay, I run VERGE!!!!!!! :o :o :o". Simple. Next chapter I'll explain how to actually code and replace this crappy placeholder file.