logo80lv
Articlesclick_arrow
Professional Services
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
Order outsourcing
Advertiseplayer
profile_loginLogIn

Creating Voxel-Style Games with RPG in a Box

Justin Arnold described the features of RPG in a Box, a tool that lets you create games, explained why the system uses voxels, and shared his plan for the program.

Introduction

Hello! Thank you so much for this opportunity! My name is Justin Arnold and I'm a solo developer working on RPG in a Box. I've loved programming since my dad got me interested in learning BASIC on our C64 as a child. As I got older, I developed a strong desire to build an RPG-focused tool that would allow others to easily create their own worlds and adventures. This idea has gone through several iterations over the past two decades, and I'm excited to finally bring it to fruition through RPG in a Box!

Regarding skills, most of what I've learned has been self-taught or through college courses. I worked as a software developer at an insurance company for around 13 years after graduating from college and then left to pursue the development of RPG in a Box full-time at the end of 2017. The only other projects that I had worked on before RPG in a Box were its various spiritual predecessors, most notably RPG Toolset.

Shown below are the various projects leading up to and including RPG in a Box:

The RPG in a Box Platform

RPG in a Box is a tool that lets you easily turn your stories and ideas into games and other interactive experiences! As its name suggests, it contains everything necessary for doing so, all packaged together "in a box". The software is designed with a fun, beginner-friendly approach in mind so as to not require any programming or modeling knowledge while still providing a wide range of customization and openness. The games you create can be exported to Windows, Linux, and MacOS as standalone executables, so they can be easily shared with others to play!

For anyone who’d like to try it out and get a feel for what’s currently possible, a free demo version is available on both Steam and itch.io. It includes all features found in the full version but with a limitation of two 10x10 maps per project and a splash screen on exported games.

I started developing RPG in a Box a bit over 7 years ago, at the beginning of 2015. It’s kind of a spiritual successor to RPG Toolset, which was a previous project of mine from the mid-2000s. I worked on a few different iterations of it using various technologies off and on over the years and then finally rebooted it as RPG in a Box at the beginning of 2015 – shortly after the Godot Engine 1.0 release.

RPG in a Box is a continuation of my original vision and has the same basic concept as RPG Toolset but with voxels! The map system and movement system are currently grid-based, however, I hope to support a free movement option in the future. And despite the name, I think RPG in a Box can serve many purposes beyond just making role-playing games because of how simple it is to jump in and start building things without needing to worry about a lot of technical aspects or complicated setup. Within one evening, you can easily test out an idea and even create something playable. It also includes a couple of small example games to help you get started and learn by example.

I have also been gradually working on a small project using RPG in a Box called Dungeon in my Pocket, which I hope to eventually turn into a full game! It’s made with assets from Oryx Design Lab’s Tiny Dungeon tileset that I voxelized into 3D form, and it will make use of the roguelike mode. The roguelike mode is currently a bit experimental, but I have plans to focus on it more after the 1.0 release.

Around the same time that I rebooted the project as RPG in a Box, the idea of using voxels just kind of clicked as if it were a missing puzzle piece that fit perfectly. RPG Toolset had a very similar design to RPG in a Box overall, but it required the user to import their own 3D models. If I recall correctly, I was into Crossy Road around this time and it was one of the inspirations for going with a voxel-based approach. I also remember liking the visual style of 3D Dot Game Heroes, which was an influence as well.

I believe that voxels are a key component of my vision as they provide a way for users to easily build and animate their own 3D models directly within the software. It lets people jump right in without any modeling knowledge and create the tiles, objects, and characters for their game as if simply building them out of LEGO bricks!

One of the results of using voxels is that games tend to end up having that "blocky" look, which may initially turn some people away. However, RPG in a Box is meant to be accessible and easy to use so that anyone can create a game and is not necessarily meant to look cutting-edge or compete with any other engines or tools. I also think that restrictions to an extent are good as it requires more creativity and imagination in the design process.

To help provide more choices in regards to the visual style of your games, I also introduced a Marching Cubes option (which results in a smoother, more organic look) and the billboard sprite option for flat 2D sprites. Marching Cubes can even be combined with the classic voxel look within one model, which opens up a lot of possibilities, for example, the bench and bed models shown below.

The Features

RPG in a Box is comprised of a set of editors for creating and customizing the components of your game (models, maps, scripts, etc.). Below, I've listed some of the main editors/systems and the purpose they serve.

Voxel Editor: this is where you build tiles, objects, and characters from voxels and animate them using the editor's frame-based, stop-motion animation system. Importing from MagicaVoxel (.vox) and Qubicle (.qb) is also supported, so it’s easy to bring in any existing voxel art you may already have.

Map Editor: this is where you create grid-based worlds with the tiles you've built and then bring them to life by adding interactive NPCs and objects using scripts and the editor's intuitive navigation and interaction system.

Script Editor: this is where you set up scripts to trigger in-game events using a visual, node-based script editor. You can simply drag and drop the desired actions (no programming knowledge required) or manually code "quick scripts" using Bauxite, the custom, Lua-like scripting language that's built into RPG in a Box. For advanced users or those who have become comfortable with visual scripting and want to learn more about programming, there's the option to manually write the Bauxite code yourself.

Dialogue Editor: this is where you write conversations for your NPCs. Branching dialogue can be created via player choices and condition checking, and scripts can be integrated into the dialogue, for example, to set up a cutscene using camera scripting.

Item Editor: this is where you create items for your game, for example, consumables, equipment, weapons, tools, or other items for the player to discover and use.

UI Editor: this is where you can create custom UI themes and widgets for your game or edit the main menu and credits roll. The widget system allows you to build custom UI components from a wide range of elements, like item slots, equipment slots, shop slots, crafting slots, text fields, buttons, images, progress bars, etc.

Combat Editor: this is where you can set up battles for your game (e.g. tactical turn-based or menu-driven turn-based). It also allows you to configure random encounters and enemy spawns, which can be assigned to areas on your maps. Real-time combat is also possible by setting characters as attackable in the Map Editor. You can even mix and match combat types, so you’re not limited to just one type in your game.

Menu-Driven Turn-Based

Mix and Match (Real-Time and Tactical Turn-Based)

There’s also a Stats Editor where you can set up a basic experience levelling table. A Quest Editor is in progress and is expected to be available by the 1.0 release.

Sound FX Generator: the sound generator is based on DrPetter's SFXR tool and provides an easy way to generate fun, retro-style sound effects for your game.

Camera System: for your game’s camera, you can choose from three available camera presets (standard, isometric, and first-person) or tweak the settings to create a custom camera. You can stage dynamic cutscenes for your game using the engine’s flexible camera scripting system.

RPG in a Box is built using Godot Engine. Although it's often mistaken for an add-on or a plug-in due to its use of Godot's UI elements, it's built as its own project the same way a game would be. Godot has been a perfect fit because of its comprehensive set of built-in UI components.

Being both a game engine and having these components tightly integrated has really helped a lot in the creation of RPG in a Box's interface and various editors. In the past, I had to come up with solutions where I was combining a game engine or library with a UI framework (for example, jMonkeyEngine and AWT).

The Business Model

RPG in a Box is available as a one-time purchase from Steamitch.io, and the Humble Store. As it's a one-time purchase, all future updates to the software are included for free. The price will be increasing slightly on May 10th as part of the 1.0 release and as a result of the many new features that have been added throughout Early Access. You can read the full announcement here. I receive more from an itch.io purchase, for anyone who's interested in buying it and isn't sure which option would help support development the most. I also have a Patreon account for those who are interested in supporting RPG in a Box beyond a purchase. At this time, I'm planning to continue with my current model.

I'm planning to keep the current approach, which gives users the freedom to sell or distribute their games however they'd like. I want everyone to be empowered through RPG in a Box and for the games, they create with it to be completely their own. I think keeping this sort of freedom is an important part of my vision for the tool.

Speaking of user-created games, I have an ongoing showcase of screenshots submitted by community members, which I compile together every other month and share with everyone. It’s really awesome getting to see people make things with RPG in a Box and turn their stories and ideas into games! You can view the image below in full resolution here.

There’s a collection of games and assets made with RPG in a Box that you can check out on itch.io, as well.

Key Keeper by JUSTCOOP:

UPGRADE by LazerGaming:

Project Wasteland by LazerGaming:

The Future Plans

Even though RPG in a Box will be reaching v1.0 soon, I still have a lot more in store for it! This will really just be the beginning. In the short term, I plan to expand and improve upon the existing core features to provide more options and flexibility. One of the aspects I’ve tried to always focus on is keeping things simple and beginner-friendly on the surface, but still providing as many ways to customize your game as possible. I’ve used Early Access as an opportunity to take a lot of community feedback into consideration, and I plan to continue doing so as I move forward from the 1.0 release. A couple of major features that I hope to implement by the 1.0 release include a basic quest system and a day/night system.

My vision also includes a lot of major, longer-term features as well, which can be seen in the "RPG in a Box 2.0 (Long-Term)" list on my Trello board. This includes things like a weather system, image editor, music tracker, free/non-grid movement, procedural map generation, VR support, updating to Godot 4.0, and hopefully even expanding the engine beyond voxel-based models and supporting things like CSG modeling and skeletal animations. I'm very excited for the future of RPG in a Box!

Here are some links if you want to reach out:

Justin Arnold, Developer

Interview conducted by Theodore McKenzie

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more