Build Your Own RPG

I completed work today on Visual Basic Game Programming for Teens, 3rd Edition, which should be available in stores by late December. It was a monumental task this time around! A 100% rewrite with new focus on gameplay rather than graphics, abandoning DirectX in favor of Forms-based GDI graphics. The result is very good and I’m pleased with how well it turned out. Sure, this is an old-school RPG engine, and the graphics are simple, but it has a rich game engine with four complete editors: Level Editor, Character Editor, Item Editor, Quest Editor. Lua scripting makes it possible to build custom scenarios without opening up the Visual Studio project, specifying the level, monsters, quests, items, treasure drops, all in script code. The artwork is all credited to Reiner Prokein at www.reinerstileset.de–thanks Reiner!

My favorite part of the engine is inventory and item drops, which are specified in the Character Editor files. Create a new skeleton NPC, and specify it’s item and gold drops, and that is what you get in the game when you kill that monster. It’s really fun to watch. A simple GUI was designed to interact with the player in a novel way with configurable buttons and a response property that any module can use, so it’s possible to display helpful tutorial messages, or combat results, query the player for input, or even display a vendor’s wares for sale using up to 10 configurable buttons on the dialogue. An inventory screen allows drag-drop of inventory items from the bag to equip the character.

I’m recommending this book to Jr. high and high school teachers who want to give students experience working with a game pipeline that includes a simple but working RPG game engine (Visual Basic code), all of the editors including an excellent custom-made Level Editor in C#, an NPC editor, an Item editor, and Quest editor, all done in VB or C#, all of the artwork (courtesy of Reiner), and script code. The level editor tile artwork can be replaced to make a game of any theme you desire: sci-fi, horror, fantasy, cartoon, etc. Just save your level graphics as 32×32 tiles over the existing tile palette image. Since everything is scripted and based on editors, replacing artwork is up to you, the game designer. I chose a fantasy RPG theme but everything can be replaced for any theme.

Contact me if you are considering adopting this book for a school or college course! I will provide you with the resources on request. In the meantime, download the game and tools here. (.NET Framework and Visual Studio 2008 runtimes required).

9 Responses

  1. Hey,
    i always get an error:.
    ************** Exception Text **************
    System.BadImageFormatException: Could not load file or assembly ‘LuaInterface, Version=2.0.0.23662, Culture=neutral, PublicKeyToken=1e1fb15b02227b8a’ or one of its dependencies. An attempt was made to load a program with an incorrect format.
    File name: ‘LuaInterface, Version=2.0.0.23662, Culture=neutral, PublicKeyToken=1e1fb15b02227b8a’
    at Project.Game.ScriptInit(String filename)
    at Project.Form1.Form1_Load(Object sender, EventArgs e) in
    (…)

  2. Is there a way to get the full code for the level editor as well as the character editor? It does come in the book but it leaves some things out that are a little confusing such as picPalette and picSelected along with a few other things. It brings up an error saying that it does not exist in the current context. If there is any way to get the code that would be fantastic. I would love to learn more about how they work.
    Thanks,
    Jordan

    1. Yes, you can download the sources for the book which includes all of the editors. Post your technical questions in the forum, not in a blog comment. The editors were written in C# to be more versatile/useful. Whereas VB code is limiting C# is widely accepted for tools like these. I had no intention of explaining in the book how to make editors, just how to use them (as a bonus–the book is more about the RPG code).
      http://jharbour.com/forum/index.php?board=4.0

      You can replace the palette using the Image property in Visual C# Express (free). Just download/install it if you don’t have it. It runs okay with VB Express already installed.

Leave a Reply