On Friday, January 18th, me and eight other people were let go from GarageGames. So now I am looking for work and have a strong desire to stay here in Las Vegas since it is an amazing town. I've filed for unemployment, revised my resume like crazy, and begun applying at a number of places here in town. I'm mainly been targeting IT and programming jobs here in the casino, education, and government arenas. Hopefully something will catch soon!
Note: I killed this project and the GitHub project associated since it was getting unwieldy with the binary commits. It never really took off since I ended up being entirely too busy to actually do any Innovation Friday work. IF was a great idea that ended up not being able to pan out. - DMB 7-10-2013
GarageGames is a great place to work. I cannot stress how cool the people are here and how awesome the projects we work on are. But this isn't about a basic PR piece on new engine tech or business models. This is about an initiative we have started to help employee development. Putting it that way sounds so sterile though. Really, what we wanted to do was find those things that we are passionate about and help us cultivate them. We have started calling this Innovation Friday. During this time, we can work on approved personal projects, and pretty much anything that is "innovative" or will help better us as employees, people, and as a company will be approved.
So what does this mean for our current workload? Well, we already had the rest of 2012 schedules out, so to keep expectations, anyone interested in working on Innovation Friday projects will work a 10 hour days from Monday-Thursday and have 8+ hours to work on their own projects Friday. That way we are still delivering what our investors and customers are expecting, but we are also getting to work on some really interesting projects. For example, some of our projects are directly tech related. We have a number of projects that we are working on, both open source and private to the company. We have dungeon master tools for D&D 4th edition under development, an audio-only game using UDK, HTML5 profiling tools, Augmented Reality projects, fluid dynamics in Box 2D, Windows 8 research and game projects, DM tools for 4th Edition D&D, etc. It falls under quite a wide umbrella.
You probably also noticed that we are not restricting ourselves to our own tech. While the Torque engines are formidible pieces of tech, one of the points of Innovation Friday is to expand our horizons as creative individuals and developers. For example, with my audio game, I wanted to get a feel for UDK's toolset in a real project (albeit one without visuals) and create something socially interesting and exciting to me. I also wanted to use UDK in a very different context than it is usually being used (i.e. to create very pretty games). It will also allow me to attempt to work with the blind (hopefully) to explore some of the assumptions that sighted people make in terms of video game audio.
As I said briefly before, we are doing these projects under either an open or closed model. My audio game, for example, will be open sourced for anything that I can (any scripts that I write, documentation, assets, etc). The HTML5 profiling tools and fluid dynamics tests in Box2D will be open as well. Some of the Windows 8 research projects and other internal networked development tool projects will most likely remain closed and in R&D mode.
And these projects may fail as well, which is important as well. Projects can fail for any number of reasons, but being able to pinpoint how and why the project failed (the tech is not ready yet, I didn't have the experience to pull this project off, cease and desist order from someone with a patent on the thing you're trying to accomplish, etc) lends itself to the learning process. You may learn something new about the technology you are working with, you may learn that you need others to help, or that you need an extensive research period to get up to speed. These are all valid learning experiences that are often costly to companies in R&D. It also helps us as people get better at choosing projects and technology, and more importantly how to kill projects if we begin spinning our wheels.
So what does this mean, really? Well we've committed as a company to investing in our employee's ideas *whether they belong to the company or are released into the wilds of the open source community*. Right now it is new Wild West territory and we are still figuring everything out, but we are going to iterate on this idea and our ideas as employees to figure out how best to expand our talents and experiences. So much of what we do in the game industry is about the grind. Grinding on this project, or between this one and that one, or grinding hour upon hour to a critical deadline. There are usually very few people who can actively work on R&D projects because we are so busy, so when we decided to do this project and invest in our own people, it was a rejuvinating move.
A lot has happened since the last time I wrote an entry. I interviewed and was offered a job at GarageGames in Las Vegas. After consulting with numero uno (my wife Marni), I took the job. In roughly two weeks, we packed up a 2700 square foot house in Pocatello and moved the vast majority of the contents to an 1800 square foot house in Las Vegas. Most everything is still in the garage. The house is a great place with easy access to the office. I'm renting from my friends Matt and Talana Fairfax who have recently moved to San Francisco.
The sad part of the whole ordeal is that Marni is still in Pocatello attempting to sell our house. We are currently looking at renting it out and getting her down here as soon as possible. I miss her so much.
So that's the big hullaballoo!
I can't believe I had forgotten about these tutorials. I found them in the back alleys of my hard drive. Old RPG Maker XP and Sauerbraten tutorials. If I can find the BlitzMax and Torque 2D ones, I'll post them as well.
Sauerbraten is the next iteration of the Cube engine. It was designed around two core concepts: make first-person shooters and make them easy to mod. It is, in my opinion, far more intuitive than FPS Maker. Yes, I am a huge geek who plays with a lot of different pieces of gaming crap. Here is a simple tutorial that I put together to show how easy it is to create content for Sauerbraten.
Sauerbraten is about 90 megs to download and it is free. It is available for Windows, Mac, and Linux. And it is one of the easiest engines to modify since it was built from the ground-up with the idea that it would be used to create content and modify existing levels and content. It may not have some of the visual bling of Unreal Engine 3, but then it wasn’t made with that bling audience in mind.
In this simple tutorial, I’m going to discuss how easy it is to work with Sauerbraten . It is open source (zlib license) with full source included. So, if you really wanted to, you could make a complete game (which would require completely new textures and models).
Upon running Sauerbraten, you will be placed in the first of many demo maps. By pressing ‘e’ to enter edit mode and then ‘~’, the > console will come up. Typing ‘newmap’ will bring up a clean map interface.
Select a piece of ground with the mouse and then scroll down on the mouse wheel. It will raise the ground. This behavior is moving towards and away from the user based on perspective. Therefore, up scrolls away or burrows while down scrolls towards or raises the cube. Make something like 5 cubes tall and select the top one on the side.
Now, scroll away to extend that cube as well five cubes.
Now, use the WASD keys like in many first-person shooters to move the camera down under the piece you have created and select the bottom cube. Extend it down two cubes.
Now select and extend the cube directly below it up one cube. This will make the basis of a broken doorway.
We have roughed out a simple doorway. Now lets create a wall around it to provide a little more “stability”. Select a line of five cubes on both sides of the door and raise them ten cubes high.
Now select the top of the doorway and raise it to match the other walls. Now the broken door looks a bit more stable.
Unfortunately, it still looks blocky and annoying. We will take care of that once we have our basic level roughed out. The next step is to fly up above our structure and raise the rest of the walls. Select each line separately and make them 15 cubes long (to create a square room).
We will wait to fill in the roof until a bit later. Right now, what we are going to do is lower the interior five cubes. Select the floor (do not select the walls on accident) and lower them by three cubes.
Now select the area near the door and raise it to the level of the door to create a small platform inside the doorway.
Next, we will raise the steps so that the player can walk up and down them. Raise the cubes in front of the platform.
Now let’s try to run down the steps. Fly outside the building and press ‘e’ to exit edit mode. Run into the building (WASD) and down the steps. That’s a pretty big fall. Now try to run back up them. Crap. The cube size is too big. You can jump up them (space), but that is hardly preferable when you made stairs. Luckily, you can change the cube size. Press ‘g’ and hold it and scroll backwards. You will notice that the cube size changes. Scrolling forwards (away from you) will make the cube bigger and towards you, smaller. Make is one-size smaller than the size it was before and carve the steps again.
Run through it to test. Perfect. Now, create a one-cube high, 5×5 platform on the opposite side of the room. This will be our altar platform.
For a little variation, lower the edges to give it a more interesting look.
Boy that texturing is ugly, but it is definitely helpful when trying to see which side of the cubes you are on. Let’s make it a little prettier. Fly outside of the building and select the front wall. Now, press ‘y’ and hold it while scrolling up or down on the mouse wheel. Select a texture that you like and seems to work okay with the building. I chose a brick texture.
Do the same to the interior walls and the exterior walls so that they seem to be made of the same material.
Next, we will shape the broken part of the door. This will finish out the basics of playing with basic geometry in Sauterbraun. The next couple of images will create a bit of rough shaping using the different grid sizes (’g’ key and scroll).
Now press ‘q’ and move your mouse cursor to a corner. Use the mouse scroll to manipulate the corner (’f’ will manipulate all four corners at once). Start making the corners of the cubes a little more angular and natural as if they have been cracked.
Next, select the entire top of the building and raise it one block to create a ceiling.
RPG Maker XP has some interesting caveats, and one of the first things that I wanted to do and had difficulty finding any information on was creating a door that would open. Now, this may seem very logical to many, but I was not an avid user of RPG Maker 95 or 2000, so it seemed a bit confusing to me at first.This is a simple mini-tutorial for creating doors that open in RPG Maker XP.
Tutorial Time: 2 minutes.
Experience Level: Beginner
Scripting Experience: Not applicable
Software Requirements: RPG Maker XP
Creating doors that open is a very simple process, but for some reason there was a dearth of examples on actually doing it. So I decided to write up a simple tutorial on creating doors that open in RPG Maker XP. In this mini-tutorial, we will create a simple map with a house and door. That is it. Nothing fancy, nothing special. Just a simple door.
STEP 1: Creating the Map
Start a new project (or load an existing one if you desire). Double-click on the default map that is created with your new project and change the Tileset to “09: Castle Town”. Select layer 2 and scroll down the tiles to find the house wall. Select it and draw a house on the map. Next, select the roof right above the wall and place it on the map so that it creates a house. Now we are ready to make our door.
STEP 2: Creating the Door Event
Click on the event layer and double-click on the map where the bottom of the door should be (at the base of the house on the middle tile). The door graphic is two tiles large, so it will cover more than just this tile. It will only show up when testing, however. Name the event “Door” for this tutorial. Now double-click on the Graphic box.
Scroll down the list to “170: Door01?. Accept the default of the first closed door and click OK. Double-click in the event area and switch to tab 2. Click the “Set Move Route…” button. Select “This Event” from the drop-down to make sure that it affects this event and not the player. Now comes the repetative part.
Click the “Change Graphic…” button. Scroll down the list to “170: Door01? and select the image just below the default (1/4 open door). Click Ok. Click the “Wait…” button and accept the default of 4 frames. This will allow the door to open gradually (animated) rather than instantaneously (seemingly not animated). Repeat this step with the next two frames of the door, adding a wait to each one. When you have finished the last frame and have an open door, click Ok. Exit the event screen.
STEP 3: Testing the Door Event
Click the run button and save the project. Start a new game and walk up to the door. Press the space bar to trigger the event and open the door. Viola! You have a door that opens.
In this tutorial, we look at the default RPG Maker XP combat system and how to work with it and tailor it to our game and character’s levels. We will fight the Wharf Rats from the previous tutorial and set up exactly how they should be treated (badly!). At the end of the combat, we will determine any treasure that is dropped and give the player a new skill. This should give you a good idea of how to perform a number of common battle-related actions all in one simple tutorial. Now let’s get started!
Tutorial Time: 10 minutes.
Experience Level: Beginner
Scripting Experience: Not applicable
Source files: Included with RPG Maker XP
The first thing that we must do is edit our player’s stats in the database a little bit. At the onset, the massive amounts of hit points might seem nice, but it will make leveling more difficult and rather annoying in the future. So, go up to the menu and select Tools and Database. Click on the Actors tab and double-click the MaxHP graph. We are going to reset all of the starting values for the main character. Set the values for level 1 as follows:
Click on the “Generate Curve” button and set the slider all the way to the left for faster progression. As you test the game, you will want to adjust the curve, but for our purposes, let’s keep it easy.
The next thing that we have to do is create an enemy type for our two hapless Wharf Rats. In the Database, select the Enemies tab. Change the maximum to 34.
Now, double-click on 33. Change the name to Roger. Double-click the Battler graphic box and select “044: Trader01?. Change his stats to represent the following image (don’t want him to start out too hard!). Also change his experience to 5 and gold to 8 (he’s holding out on his buddy).
We an keep the rest of the settings the same. These guys are not magic users. They are idiots on the wharf.
Now double-click 34. Set the name to Steve. Double-click the Battler graphic box and select “025: Cleric01?. Change his stats to represent the following image. Change the experience to 5 and the gold to 2.
Click Apply and OK.
The third step is to create a troop of these Wharf Rats. Troops are basically the way that enemies appear in combat. You can have single enemies or multiple enemies and using troops, you can tailor your game to specific types of battles (read: boss battles) or allow them to occur randomly. Click the Troops tab and change the maximum to 33. Double-click 33.
Set the Name to “Roger and Steve”. In the right-hand list, scroll down to Roger and double-click his name. He will appear in the center of the window. Move him to the left. Now double-click Steve and move him to the right. Now click the “[ED] Battleback…” button. Select “011-PortTown01? as the background.
Click “Battle Test” button. Click on the 2 tab and select the drop-down. Select “(None)”. Do the same for 3 and 4 since the main character does not have anyone with them yet. Click OK.
After a couple of rounds, you will win. This is what we want. You will also notice that you do not get any gold or experience yet. We will now include the loot that the player gets for winning the battle. We will take care of that once we take care of scripting this simple battle sequence.
Double-click the long cinematic event we created in the last tutorial and go down to the end. Double-click the “@>” after “Show Animation: Player, Venom”. On Page 3 of the events, click the “Battle Processing…” button. In the drop-down, select “033: Roger and Steve” and click “Continue even when loser”. Under the “If win…” section, double-click the “@>”. We are going to change their graphic to a “downed” graphic to show that they have lost the battle. Go to the second page of events and click “Set Move Route…” and select “Change graphic…” Select “189-Down01? from the list. Select the third image on the bottom row.
Now do the same thing with the second Wharf Rat, but choose “192-Down04? and the first graphic in the second row.
Now let’s give the player a shield, a sword, and 10 gold (one of them was holding out on the other!). Double-click the “@>” below what you just changed and click the “Change Gold…” event and change the constant value to 10. Click OK.
Now we need to do something if the player fails to win the fight. Luckily, we want to go easy on them (we don’t want them to stop playing the game because they died in the first battle). We’re just going to have Roger say:
Roger: Gaaar! You don’t have any money!
Then we will have them move off to the left of the docks. Double-click the “@>” below the “If lose” condition and create a Show Text event. Add in the text above and click OK. Now add a “Set Move Route” event for each of the Wharf Rats and move them. Turn Wharf Rat 1 to the left, Move left, Move Left, Move up three times and turn him to face left. Now, move Wharf Rat 2 to the left and then have him face right. This will put them up against the net and have them facing each other. Now let’s have them tell the player to bug off if they try to talk to them. Double-click Wharf Rat 1 and add a Show Text event.
Roger: Leave me alone!
Do the same for Wharf Rat 2.
Steve: Get out of here!
Unfortunately, after all this work, I see a problem. Run the game, beat the thugs, and then go and step on the place where the event triggers. Boom. If we step in the event space, it will trigger the event again. This is the kind of debugging that you will have to do constantly as you develop…only it will probably be a lot hairier! Let’s add a conditional statement to the event so that once we beat the Wharf Rats, it will not trigger again.
Double-click the cinematic event and click in the event command list pane. Press Control-A to select the entire script. Right-click and select Cut (Control-X). Double-click on the remaining “@>” and add a conditional Branch event. Select “Self Switch” and leave it on A. Set the next drop-down to “OFF”. All switches start in an OFF state. Once you trigger them, you can set them to an ON state and they will not happen a second time. This is what we need to do in this case (no need to have the Wharf Rats continuously fighting the main character).
Next, right-click on the “@>” just under the start of the branch and select Paste. This will paste the entire script into the branch. Now, go down to the bottom just past the color-coded combat event. Add a “Control Self Switch” event from Page 1. Set “A” to “ON”. This will make sure that we do not trigger the script a second time.
Run the game and test the combat. Right now, the weapon is doing some massive damage and they cannot hit you (your weapon and armor are extremely powerful). You can change the stats in the Database and even things out a bit. Playtest again and again until you get a feel for combat. Give the player a chance to lose, perhaps by upping their attack power to test the “If Lose” event.
This concludes this tutorial and provides a simple taste of the options available for simple combat. The documentation included with RPG Maker XP should be sufficient to explain the particulars of each option in the combat interface. Remember to use F1 for help.
In this tutorial, I will present how to create a simple, old-school cinematic setup like in classic Final Fantasy games. This will lead into the next tutorial on combat.
Tutorial Time: 20 minutes.
Experience Level: Beginner
Scripting Experience: Not applicable
Source files: Included with RPG Maker XP
Now that we have our player on an empty map, we can fill it in and give them a locale to start their adventure! First of all, we will create the docks area. Then we will create a couple of thugs and provide simple old-school cinematics to give the beginning of our adventure a bit of flavor. This flavor, of course, will end in a brawl on the docks. Wharf rats are hostile, you know.
Let’s begin by setting up the map. Like before, I will show you the entire map in its three layers. This time, however, I will not walk you through the creation of it. Below are the three layers. Try to recreate the map. I have also included the map file in case you really need it, but you should be familiar enough with the tools to create a map from the reference pictures.
Now that we have a map, let’s change where the player is transported to (otherwise they will be in the water!). Click on the Oracle map and double-click the Oracle event. At the bottom where we transported the player, right-click the Transfer Player event and select edit. Click on the drop-down box and click on the left-hand dock by the pier tie-down.
Go back to the Docks map. Now we are going to create two wharf-rat pirate characters who are going to taunt the player and (in the next tutorial) attack. Go to the Events layer. Double-click on the left-most square below the steps at the top of the map. Change the Event Name to “Wharf Rat 1?. Change the graphic to “145-Prisoner01?. Now create another event just below him and name it “Wharf Rat 2?. Change the graphic to 103-Civilian03. Select the picture that has it facing up.
Now that we have our two non-player characters talking to each other, let’s make them do something when the player gets near them. Create an Event at 017, 005 and call it “Cinema Trigger”. The basic flow of this event will go as follows:
The player will move up and trigger the event. Then the Wharf Rats will call the player over to them. Then they will circle the player, berating them before attacking. The different arrows show the basic movements of the player and the Wharf Rats.
First, we will create three text events to show off their dialogue skills.
Roger: I’m so hungry, I could eat a horse!
Steve: I’m so hungry I could eat a rat!
Roger & Steve: Too bad we don’t have any money!
Now that we have the basis of conversation, let’s make them notice the player. It took some time to get the timing to where I wanted it. Once you have finished the tutorial, play with the various values (especially the waits). When doing it yourself, you will need to sit down and run through the event several times just to make sure that it flows the way you want it to.
1. Noticing the Player
During this step, the wharf-rats will turn to the player, get excited, and jump up and down in excitement. They will then call out to the player, telling them to come over to them.
On Page 2 of the event list, select “Show Animation…” Change the Character drop-down to “Wharf-Rat 1?. Now select “098: EX Exclamation”.
This will cause an exclamation point to pop up above his head.
Next, we will have the Wharf Rat turn to the player and jump in place. On Page 2, select “Set Move Route…” A screen with a large number of options will come up. We will use this to set the Wharf Rat’s actions in this section.
Click the “Turn Right” button, then click the “Wait…” button. Change the wait time to 4 frames. Next, click the “Jump” button. Keep the values for X and Y at 0 (other wise the character will jump around the map the number of spaces along the X and Y axis). Click OK. Now, if you’ve noticed, a lot of old-school RPG’s will repeat an action to make it seem more exciting. We are going to do the same thing here. Right-click the “Show Animation: [Wharf Rat 1], [EM Exclamation]” and copy it. Paste it below the Set Move Route event you just created. Now, right-click the Set Move Route event and copy it. Paste it below the last exclamation event. Right-click the event we just pasted and select edit.
We are going to change the event a bit so that it does not seem to be the exact same as it was previously. Click on the Turn Right event and click the Jump button. Keep the values at 0 again. Now, delete the Turn Right event (they are already facing right!). Right-click the Wait event and change it to 2 frames. Click OK.
Now it is time to work on Wharf Rat 2. Luckily, most of our work is done for us. Right-click Wharf Rat 1’s first “Set Move Route…” event and copy it. Paste it at the end of the list. Right-click on it and select edit. Under the drop-down with Wharf Rat 1’s name, select Wharf Rat 2. Change the “Wait…” event from 4 frames to 2 and delete the “Jump” event. Click OK. Right-click and copy Wharf Rat 1’s Exclamation animation and copy it at the end. Edit it and change the Character drop-down to Wharf Rat 2. Copy Wharf Rat 1’s second “Set Move Route…” event and paste it at the end. Edit it and change it from Wharf Rat 1 to Wharf Rat 2. Next, change the “Wait” time to 4 frames. Click OK. Add a text event which reads:
Roger: HEY YOU!
The full script for this step:
2. Moving the Player
During this step, we will move the confused player over to the wharf-rats. Now that you are familiar with the interface, it should be a lot simpler to get around. First, we will have the player notice the Wharf Rats yelling at them. Then, we will have the player automatically move towards them, but be puzzled.
First, copy the Wharf Rat exclamation animation and change it to the Player by editing it. Next, click “Set Move Route…” and have the player wait 4 frames, then move up and turn left. Click OK. Add two text elements so that the Wharf Rats can tell the player to come on over!
Steve: What are you doin’ on our docks?
Roger: Yeah! Come here!
Create a “Show Animation…” event and change it to “097: EM Question” to display a question mark above the player’s head. Next, “Wait…” the default 20 frames and create a new “Set Move Route…” event. Move left 8 times (this should put you right next to the Wharf Rats).
3. Berating the Player
During this step, we will have the wharf-rats revolve around the player, berating their character. I will break it down into simple steps to show what I am accomplishing with each piece of this event script since it is longer than the others ones we have worked with previously.
First of all, we will have to wait a couple of frames for the player to get into position (otherwise the Wharf Rat will be there before the player, which just looks odd). Add a “Set Move Route…” event for Wharf Rat 1 and have him wait 32 frames. Next, have him Move Right, Wait 4 frames, and then Turn Down. Click OK. Add a Text event.
Roger: You’ve gotta lotta nerve, coming here without being asked!
Create a “Set Move Route…” event for Wharf Rat 2. Have him Turn Down, Move Down, Turn Right, Move Right, Wait 4 frames, and then Turn Up. Click OK and add a new text event.
Steve: Yeah! What do you think we should do with him, Roger?
Now, we will have the player realize that they are in a hostile situation. We will have the player look back and forth between the thugs. Start a new “Set Move Route…” event for the Player. Have them Turn Up, Wait 8 frames, Turn 180, Wait 8 frames, then Turn 180. This will get them turning back and forth between the Wharf Rats.
Now we are going to have the Wharf Rats move counter-clockwise around the player to size them up. Create a new “Set Move Route…” for Wharf Rat 1. Have him Turn Left, Move Left, Turn Down, Move Down, Move Down, Turn Right, Move Right, and Turn Up. Click OK. Create a new “Set Move Route…” for Wharf Rat 2 and have him Turn Right, Move Right, Turn Up, Move Up, Move Up, Turn Left, Move Left, and Turn Down. Basically, they will be circling the main character. Click OK.
The complete script for this step is listed below.
4. Attacking the Player
We will use an animation to signal their attack during this step. It is a short and simple step since we will be creating the battle sequence in the next tutorial. First, let’s wait a couple of frames. Select Wait from the main event list on page 1 and accept the default of 20 frames. Next add some text from the Oracle.
Oracle: Uh-Oh! I was hoping that nothing like this
would happen so soon! Get ready! I think they’re
going to jump you!
Finally, on Page 2 of the event list, select “Show Animation…” and make sure that Player is selected under Character. Select “053: Venom” from the drop-down box of animations.
The complete script for this step is listed below.
That’s nearly the end of this tutorial, though we are going to assume that the player wins this simple battle. So we’ll add a way for them to leave the area. But first, here’s the finished event list.
5. Complete Event Command List
This is the complete Event Command list for all of the steps above.
Planning for “After the Battle”
Now we will create a new transport event to take the player to the next map. Create a new map called “Port Town” with the Port Town tileset. Double-click one of the squares on the stairs at the top of the map and create a new event. Call this event “to Port from Docks”. Transfer the player somewhere on the new, blank, map. It doesn’t matter where for now. You can flesh that out when you make a new map. Right-click the event and select Copy. Now click the stairs next to it and right-click to paste the event. Do the same until all three of the top-stairs have this event.
This concludes the cinematic tutorial and has set up the necessary elements for the next tutorial: Combat!
In this tutorial, we will use a basic “event” (or in the case of the previous tutorial, Non-Player Character) to create a somewhat complex dialogue and decision tree not unlike the beginning of a number of role-playing games. By the end of this tutorial, you will be able to select character graphics, change characters, make branching decisions in dialogue, and teleport our character to a new map.
Tutorial Time: 15 minutes.
Experience Level: Beginner
Scripting Experience: Not applicable
Source files: Included with RPG Maker XP
Unlike the last tutorials, this one will be less graphically intensive since it mainly concerns using the event scripting engine (without touching Ruby). I will, however, make a point to show the exact things that we are trying to accomplish graphically. This is also one of the areas where playing the “game” to debug the conversation and choices will be necessary. You should get into the habit of doing this as you progress along your development path. It will become necessary as your adventure gets longer and the complexity of your game gets higher.
First, let’s look at the event screen again. Make sure that you are on the event layer (the box) and right-click on the Oracle that we added in the previous tutorial and click Edit Event… (or double-click it). You should see the familiar event screen where we changed the graphic and name of the Oracle.
Let’s get to work!
The first thing that I will do is go through an explain the different aspects of what we will be doing so that you can get a clear idea of how RPG Maker XP events work. Then we will put them all together and create a “starting point” for a traditional role-playing adventure. Double-click in the large text box on the right (List of Event Commands). This will bring up the event selection screen. There are three tabs on this screen. I will go through the options that we will be using in this tutorial.
Page 1 is where we will be spending the majority of our time. The important buttons to note for this tutorial are the Show Text…, Show Choices…, Control Variables…, and Conditional Branch… Page 2 has a number of other useful options.
Of these, Transfer Player… is the only one we will be using in this tutorial. Page 3 has a two more options that we will be using.
We will be using Name Input Processing…, Change Actor Class…, and Change Actor Graphic… from this screen. Note that there are several battle options available on the pages. We will be using those in a later tutorial on combat.
Let’s get started with a little dialogue design. The point of this bit of dialogue is to allow the player to determine the type of character that they want to be. The selection will be extremely simple but will give you a good idea of how to manipulate events and player characters–or actors as they are called in RPG Maker XP.
First, we will provide a bit of introductory dialogue. I will place this in boxes so that you can easily copy-and-paste it (though typing it in is the preferred method with any tutorial because it forces you to do something rather than simply reading and clicking). Next, we will provide a simple decision tree to allow the player to select the type of character they want to play. Next, we will allow them to type in their name and start the game. This will teleport them to a new map with the character that they selected. It is a simple process that can be a bit daunting to a new user–which is why I created this tutorial series.
Click on the Show Text… button on Page 1. A small box will open up. Type in the following:
Welcome to On High, the place where lost souls find adventure!
Press F2 to see how it looks inside the game.
Run the game, start it like normal. Face the Oracle and press the space bar.
It will show this piece of dialogue. That’s pretty much all that you need to do to show a piece of dialogue, an item description (”You search the chest…”), etc.
Create a new dialog box the same way as before and put in the information below.
First of all, I would like to know a little about you. Which would you say best fits the type of person you aspire to be?
Next, we will create a branching system to flesh these questions out a bit. Double-click the event window and click on the Show Choices… button. Choice 1 should be Fighter, 2 should be Thief, 3 should be Cleric, and 4 should be Mage. Make sure to disallow canceling the decision since you want the player to choose a character class.
Double-Click the “@>” space just below the “: When [Fighter]” segment (highlighted in the above image). Go to Page 3 and select “Change Actor Class” (yes, I know we are not actually changing it since the first one is a “fighter” already, but it will help should you make a large-scale change to the characters in the database and still want the player to select their starting character type. Click OK and you will notice that it added a line in script which ensures the class that the player has chosen.
Now, double-click the next “@>” and select “Change Actor Graphic”. We are going to do this so that the player feels that they are actually sculpting this character. The first option is correct since we are changing the first character type. Click the Character Graphic drop-down and select “001-Fighter01? (should be selected already). Click the Battler Graphic drop-down and select “001-Fighter01? (should be selected already). Again, this is to ensure that the player’s selection is used even if changes are made to the character database in the future.
Now, we need to do this with the rest of the classes in the appropriate sections, but before we do that, we need to set a variable so that we know what the player has chosen. Double-click the next “@>” and on Page 1, select Control Variables. The default variable (single “0001:”) is fine. Under the Operand section, keep the Constant selected but change the value to “1? (the default is “0?). This tells us that the first choice has been set to the value of “1?. We can reference this later.
For the next steps, we will set the value to 2, 3, and 4 for the different class types. Go ahead and finish out the selections like you did previously, changing the class and graphics accordingly to the first option (Thief01, Cleric01, Mage01) and adding the new value.
The finished selection should look like the following image.
Now that we have the class set up, we can set up the gender. For the most part, this will be the same as before, but with different character graphics. We will also set a new value for the variable in case we need to reference their gender and class later (say a NPC saying something like “I like me dem wimin fightars!” before the player beats them senseless).
Double-click the “@>” after the “: Branch End” statement and add some more text.
Now, do you feel more like a man or a woman?
Now, Add Choices and change the first two values to Man and Woman. Make sure to select “Disallow” on the cancel option. Now there should be a branching section for Man and Woman. Again, to be pedantic and to make sure that things are set up the way we want them, we are going to replicate some of the work we have done previously. Luckily, it will be much easier this time (copy and paste!).
Double-click the “@>” under Man. Click the Conditional Branch option and make sure that the variable is “0001:” and the value is “1?.
Now, right-click the “Change Actor Graphic” line under Fighter and paste it in the branch. Under the Else, create a new conditional branch and set the value to 2. Copy and paste the Thief “Change Actor Graphic” line there. Do the same with Cleric and Mage until it looks like the picture below.
Now, scroll down to the “: When [Woman]” section. We are going to do the same, but we are going to set a variable and change the graphics to represent female characters rather than male ones. Copy the first Conditional Branch under Man (notice that it selects all of them because they are all contained within that main one). Paste it under Woman. Right-click “Change Actor Graphic” and leave the first drop-down alone (we want to change the first character). In the Character Graphic and Battler Graphic drop-downs, select “006-Fighter06? for both. Now, change the Control variable 0001:’s value to 5 (for female fighter). Do the same with the Thief, Cleric, and Mage, using the following character and battler graphics:
- 019-Thief04, 0001: = 6
- 030-Cleric06, 0001:= 7
- 038-Mage06 , 0001: = 8
It should look like the following image:
Now, before we finish up, let’s let the player change their name. Then, we’ll teleport them to a new map. Add some text at the very bottom after the last “: Branch End”.
Finally, I need to ask you what name you wish to go by.
Now click on the Name Input button on Page 3 of the events. Make sure that 001: Aluxes is the default and that 6 characters is as well. It can be more, but it is a good, round number that we can depend on down the road as we create dialogue events that use the character’s names. Now create a new text event below that.
Thank you \N! Enjoy your adventure!
The \N will display the name of the actor in slot 1 (previously Aluxes and now whatever they have changed the name to). You can use a number of these escapes to change features of the text such as color and the like. Pushing F1 (Help) in the text box will show you the following list:
Enter the characters to be displayed in the window. The following control characters are available within the text.
\V[n]: Replaces the value with the variable #n.
\N[n]: Replaces the value with the actor’s name #n.
\C[n]: Displays the following characters in font color #n.
\G: Opens the money window.
\\: Displays the character “\”.
Finally, let’s create a new map to transfer the player to. Right-click on the godsend_tutorial project in the lower-left project pane and select New Map. Name it “Docks”. Select “011: Port Town” as the tileset. Double-click the Oracle event and scroll to the very bottom. Double-click the “@>” at the bottom and add a “Transfer Player…” event. Under “Direct Appointment”, select the drop-down box and click on the blank map at 009, 014.
Below is a complete script for the Oracle event.
Run it and test it. Each option that the player selects (except for the male fighter since that is the default graphic) should change how they appear. Now, that default graphic annoys me since the player won’t see any change when selecting a fighter. It also seems a bit strange to have a male fighter graphic and be asking questions about how they want to be represented. So let’s change the default party and character in the main game database.
From the menu, select tools and then Database. Make sure you are on the Actor tab. Double-click the character graphic and select “051: Undead01? for a ghost. Select the same thing for the Battler graphic. Click on the System tab and right-click “002: Basil” and select Delete (this will only delete him from the starting party, not as an actor in the game). Do the same for “007: Gloria” and “008: Hilda”. We want to start the game with only one character. Click Apply and Ok.
Finally, there is no reason to let the player wander around the little room, so let’s automatically start the event. Double-click the Oracle event and in the lower left-hand pane titled Trigger, select Autorun. This will automatically start the process when a new game begins.
Run the game to see the changes.
This tutorial will show you how to create your first map. This map will be small and extremely simple, but will show off the basics of using the RPG Maker XP map editor. Some of the features will be familiar from your last tutorial, but we will also be adding to the knowledge gained there.
Tutorial Time: 20 minutes.
Experience Level: Beginner
Scripting Experience: Not applicable
Source files: Included with RPG Maker XP
Alright, since this is a more in-depth tutorial, I will supply a “finished product” to the tutorial. This is the basic map that we will be creating (including the “event” of “the Oracle”).
Okay, now that we know the goal…let’s get to work!
The first thing that you need to do for this tutorial is select the ground tile. Select the darker stone floor just for a darker, moody atmosphere.
Next, find the relative middle of your screen–somewhere around 10×6. If you look at the status bar under the map, you will notice the map coordinates.
The darkened square shows what map you are working on (001: Oracle) and the size of it (20×15). The circle shows the current position of the cursor. In this case, it is at 010, 006.
This is where our map will go. Remember how in the previous tutorial, the hero was in blackness because we had cleared the floor. We are going to use that blackness to provide a sense of isolation. Select the Rectangle icon.
Now, create a square that covers the upper-middle of the map area. It should start at 005, 003 and end at 013, 008.
Now that you have the floor painted, let’s look a bit closer at the map. You may have noticed (before you cleared the floor in the last tutorial) that there is a light S on the floor at 009, 007. This is the start event, or the place where your character begins the game on the first map. For the purpose of this tutorial, this is a fine starting place.
And now the complicated part…
This part is one of the most complicated parts of the tutorial. In each segment, I will tell you which tile to paint with and which Layer (1, 2, 3) to paint on. First of all, let’s look at each layer in the screenshot individually to see how we need to lay it out.
Notice that I have not put in the event layer since we will be adding her at the end of the tutorial. She is the second most difficult part of the tutorial. Next will will begin by creating this, layer by layer.
Using the Tile Area to Select Larger Portions
If you click and drag in the tile selection window, you can select tiles that are larger than the default cursor. This allows you to select very large tiles.
Click and drag to select the larger segment of wall in the tile box.
Notice that your “paint-square” on the map is as large as the selection? This is important to remember when calculating how much space your map will take up. In this map, it won’t be as critical, but on more complex maps, you will have to make sure that the graphics line up correctly. Make sure that you are on Layer 1 and that you have the Pencil tool selected. Paint the tiles at the top of your “floor” tiles.
You now have the top boundary of the room. Next we are going to paint the bottom of the room. This will be a bit more complicated since it is not as easy to quare up the bottom (we will see why when we add the ceiling). Before we start, I will show you the tiles that we will be using.
Now that we know what we will use, we need to get started. First of all, we need to select the left-hand side of the wall tiles.
Now we’re going to start painting the bottom area. Paint the tiles at 004, 008.
Next, we will paint the opposite side’s wall with the tile that has the wall decoration on the right.
Now paint the map at 014, 008.
Next, select the tile with a central pillar of decoration.
Now, paint the map at 009, 008.
Finally, we can fill in the bottom gaps with the blank wall piece.
Paint the rest of the bottom of the wall on the map.
Now it is time to add the decorations to the map. Click on Layer 2. Notice that it will dim the lower layer so that you can still have a reference for your tile placement. Let’s start by placing the counter-top. It is often best to plan out the major portions of your level and then decorate it accordingly. Scroll down the tile list and select top two tiles of the counter.
Now, draw on the wall tiles at 007, 002 and 011, 002.
The counter is a little short, so let’s add another piece to it. Select the middle part of the counter (the lower half of what is currently selected).
Now paint just below the ones you painted to lengthen them a bit. Just on tile should do it.
Now, we need to make use of the two upper-counter portions to paint the bend in the counter.
Use the one on the left to paint the left bend and the one on the right to paint the right bend so that it looks like the following image.
Now let’s fill in the middle. Select the counter tiles with a bottom. This is also the same section that we will use to paint on the bottoms to the corners.
Paint in the middle of the counter to connect the two sides.
Now, we need to use the two bottom corner tiles to paint the corners.
These are the two tiles that you will need to be able to paint these two corners.
Now let’s add the decorations. These are the tiles that we will need to use to decorate the map.
Start with the bookshelf and place them in either corner against the back wall.
Next, let’s place the small shelves on the upper section of the wall by the right side of the counter.
Now, we’re going to place a little desk under it on the left side. We are going to use the bottom and top of the desk that I noted in the picture above. This way we can have a small desk/table with stuff on top of it. The nice things about tiled graphics is that you can mix things up a bit like this!
Lookin’ good! Now we just have to finish off the top of the room and add the basic NPC event so that we can get started on the next tutorial! Select Layer 3. Now, click on the AutoTile just next to the first tile in the selection area (the one that we used to clear the map). AutoTiles will automatically shift and tile depending on how you use them. It is a pretty cool feature of RPG Maker XP.
Now, just ring the “top” of the room with the AutoTile to create the illusion of a “roof”. Start at the bottom left corner (004, 017) and draw all the way around the map.
Now, let’s create a simple event. Click on the event layer (the box). Let’s move the starting S to just in front of the counter. Right-click on it and select Cut. Click just in front of the counter at 009, 006 and right-click and Paste. Now the S is right there! This is the place that your character will start their adventure. Before we finish, we will add the angel from the picture above. This way we have a starting point for the next tutorial!
Right-click on the map at 009, 005 and select “New Event…”. This will bring up the Event Screen. You will be seeing a lot of it as you use RPG Maker XP. For now, however, we will be only using the basics of it. First of all, change the Name: area to “Oracle”. Next, double-click on the box below Graphic: to select a graphic. Scroll down to 079-Angel01. The default graphic in the right-hand box is good for our purposes. Click Ok. Click Apply and then Ok.
Now run your game!
In the next tutorial, we will be working with the Oracle event that we created. We will be supplying dialogue, changing the graphic for the main character, answering questions, and teleporting to a new map!