4 Hugues Ross - Blog: Halberd, and the Roadmap
Hugues Ross

3/31/18

Halberd, and the Roadmap

I've spent the first three months of this year making a new game and doing bits of research. Now, I think it's time to start working on something a little more long-term again. The Halberd project was put on hold back in college, and the DFGame rewrite prevented me from picking it back up last year. With a fairly clean to-do list in front of me, now's the perfect time to get back to it!

Halberd What?

It has been a couple years since I did or wrote anything substantial about Halberd, and the original attempt began nearly 5 years ago. With that in mind, here's a quick refresher on what the project is.

Halberd originally started as an attempt to make an old-school JRPG in LÖVE, then rapidly ballooned into an attempt to make a more general JRPG engine and tools, still in LÖVE. The project was put on indefinite hold, and I eventually picked it back up as a sort of open-source RPG Maker alternative developed in C and Vala.

That final design has held. My goal with Halberd is to produce a complete and polished open-source RPG engine, with an editor and all other associated tools. I want to produce something simple enough to enable someone with no previous programming or gamedev experience to make RPGs, but flexible and feature-rich enough to be a serious consideration for a more experienced developer.

Of course, I also want to make some games of my own with it!

Scoping Up

One thing that I want to do with this new attempt at Halberd is an increase to the project's scope. This may seem rather foolish, but there is a reason. I've played a lot of games made with various engines and tools, and I've noticed that many games made with engines that are too restrictive often end up either feeling generic, or fighting with the engine to produce a unique but half-baked result. This is not to say that all engines should support all types of games, but I think there's some value to be had in supporting a collection of related genres, rather than a single narrow game type.

Ultimately, I want Halberd to provide good support for 4 types of games:
  1. Old-school turn based JRPGs. The obvious example here is any Final Fantasy game prior to 7 (and much of Square's old catalog in general), but this genre covers a wide swathe of games. This is what Halberd was always meant to support, as a theoretical alternative to RPGMaker.
  2. Old-school action RPGs, like the Mana and Ys franchises. I would also place the Legend of Zelda franchise here due to its mechanical similarities, although many people have differing opinions on that one.
  3. Turn-based strategy games, specifically in the vein of the Fire Emblem and Advance Wars franchises.
  4. Graphical Roguelikes such as Dungeons of Dredmor, Nethack (in some variants), ToME, and the Pokemon Mystery Dungeon games.
I selected these four genres because I believe they have many overlapping features. In my mind, it seems reasonable for a less experienced developer making RPGs to want to add more action-oriented gameplay, strategy aspects, or even procedural dungeons. By supporting several genres, I can help this theoretical dev implement their desired mechanics in a less janky fashion.

To back up my choice of genres, I've also produced a Venn Diagram to try and show where I see overlap between the listed genres. I know that there are plenty of exceptions, but I think it still does a good job highlighting some common shared aspects and mechanics:
Click the image to view a larger version

A Change of Strategy

In theory, I've convinced you to accept my rationale for this major scope increase. Now, here's my plan to pull it off. I have enough experience to know that an overly large scope can easily bog down or kill a project, so I'm going to break up this task into smaller parts to improve the overall chance of success.

In the past, I've typically had a "release when it's done" attitude, which results in long periods of development followed by either complete releases or major updates. Case in point, the period between when I announced that I was working on DFGame and when I finally made the first release was 22 months. This time around, I'm going to start with a Minimum Viable Product, and follow that up with numerous smaller updates to give myself regular milestones to hit and stay on track.

In the short term, the MVP release will be enough to make a map the player can walk around and fight monsters in. No skills, levels, items, or dialogue, and only the bare essentials of UI will be present. Once that's done, I'll produce a small demo with all the features, and expand from there until I have a fairly flexible and robust featureset for turn-based RPGs only (in other words, the original scope of the project). In order to ensure that the engine and tools work in practice, I'll be working on a full-length JRPG at the same time. Once both of these things are done, I'll slap a 1.0 on the project and begin work on supporting additional genres and mechanics in largely the same way.

With this method the scope increase isn't going to impact development in the short term, instead existing as a reminder to keep features flexible and open for further expansion.

The Roadmap

With this post, I've also made a new addition to the site! I'm trying to only post when I have something interesting to write about, but I still want there to be an indication that I'm working on something when I'm busy (such as the period of relative silence when I was busy with Cloudy Climb). To that end, I've rolled out the new Roadmap page to show progress on larger projects.

Every project tracked on the Roadmap page will have:
  1. A graph showing the status and relationships between tasks
  2. A changelog of task updates, blog posts, and releases
  3. Various associated links
  4. No official release dates or promises. These pages will track my progress and general plans, but nothing on them will be truly set in stone.
For the time being, Halberd is the only tracked project. As I pick other larger projects back up, they will also be added.

I already use graphs to map out some of my projects in private, so I thought it'd be nice to use them to show progress in public as well. It also lets me keep a public log of my work. I'll be updating the Roadmap page once a week, provided anything on it needs to be updated.

No comments: