This is a pretty large build, with a lot in it!
I noticed that I’d forgotten to sub-sort active entities by Dex (to resolve colliding initiative rolls), so I did that. It’s also stricter about not running ANY actions in-between you giving a command and the game resolving the sub-turn; no more “I hit up, and another entity moved first and messed things up”. This was a pretty serious bug in my turn-based code!
New Player Experience
The game now includes a number of helpful popups to get you started. You can stop seeing them by clicking “Stop Helping!” at any time - and they won’t bother you again. It includes an easy way to pick your keyboard schema, a quick explanation of the GUI, and advice for new players just getting started on what to do. I’ve tried to make it non-intrusive so as to not bother veteran roguelikers, but I’m hoping that One Knight can appeal beyond the strict genre - and a bit of help can go a long way.
Integrating the overworld/story
The main menu shows you a flyby of the overworld, and when levels start you see the levels’ location on the overworld map (not all are done, yet) - along with the story text telling you what is going on. It quietly preloads/builds the level while you are on this menu, and as soon as its built you can hit any key (or click the button) to proceed. Hopefully, this proves to be a good balance between quick play and storytelling.
As the story gets fleshed out, there’s benefits to defeating various NPCs. For example, once Prince Frederick is defeated you will no longer be plagued by skeletal assassins.
Levels 1-6 are now about right in terms of balance, and fit the stated theme better. I removed the “safe zone” around the path, to make it less likely that you won’t meet anyone at all on a trek through the woods, fixed a bunch of spawning and pathing errors, and have a much nicer overall experience.
Progression and Scoring
Score is important to roguelikes - how else can you compare your progress with others, and see that you are improving? I wanted to reward progress more than grinding - a “smart” run that doesn’t stop to smell all the daisies is a great thing, and should achieve a great score. A meticulous run in which someone does everything should also be rewarded. The scoring system is in its infancy, and will evolve, but I think it’s a good start:
- So you start with a score of 0.
- If permadeath is disabled, each ach death costs you 500 points. (Yes, you can go negative)
- Each level you complete is worth 1,000 points (so beating the game while somehow managing not to accomplish anything else would be worth 52,000 points). Since you don’t have to do every branch, that’s the score you get for being an absolute completionist.
- Every boss mob you defeat is worth 500 points.
- Every gold piece you pickup is worth 1 point.
- Every mob you defeat is worth their half level in points.
- You gain 100*your level points.
- After that, a multiplier is applied for the easiest difficulty you had at any point in the run (since you can change it). “God mode” has a multiplier of 0 - you won’t get any score whatsoever. “Easy” has a multiplier of 0.5, “Normal” 1.0, and “Hard” 1.5.
So once that was in, it was time to start on the leaderboard system. It’s very much pre-alpha; it’ll change, and scores won’t be kept between releases. But http://oneknight.bracketproductions.com/leaderboard.php . If you’ve opted in to leaderboard posts, when your game ends you will be included. This was pretty easy; UE4 provides some convenient HTTP and JSON encoding stuff, and the rest is a tiny bit of PHP to place it in a database and display/sort it. If the game really takes off, I’ll worry about making it more scalable.
- The “progress” component has been reworked to be much more generic, and with considerably less hard-coded stuff (this makes it easier to track as the game changes).
- The progress window is a little less fancy, focusing more on achievements and less on narrative (fits more roguelike and less RPG objectives).
- The configuration window has an “online” tab, allowing you to change your leaderboard settings.
- Also fixed the bizarre problem that it kept appending more and more “anonymous” until you had tens of them!
- Removed a dangling checkbox that just didn’t want to die from the first-time consent page. (It turned out to be an artifact of a merge problem)