Good day everyone!
Bit of background:
My name is Joeb Rogers and as you may or may not know, I’m currently studying a BSc in Game Development. I began the course on September 12th this year (2015).
The course takes in people of all skill levels but assumes no prior programming experience. That said, it’s very fast paced (3 year honours degree in 2 years), so you’re expected to buckle up and knuckle down. Luckily for me I’ve already got programming experience so I’ve been trying my best to surpass the standards for each module.
Module 1: Text-Based RPG
So the first module of our course spanned 8 (and a half) weeks, although you weren’t expected to necessarily begin programming the game from the get go, as a lot of people didn’t have any idea where to start. Over the course of the first fortnight everyone got a primer on HTML5 and JavaScript in order to get used to basic game logic and working with the canvas.
Our brief was to create a text-based RPG using HTML and JavaScript taking inspiration from choose-your-own-adventure books, such as Fighting Fantasy. I already have a lot of experience with HTML5 and JS, so I set myself the challenge of working with JSON to basically create an engine in which everything is automated. This would allow me to fill my JSON file with whatever story, characters, encounters, etc. that I want. I thought this would be a good experience and I’d also have a decent product at the end. It wouldn’t be as good as Twine or anything like that, but it’d certainly be a workable template allowing anyone to input what they want without having to constantly update the actual source code.
I’ve given you a brief overview of what we were tasked to do and what I planned to do, but I’m not going to talk you through my development process (much) here, this is a news article after all.. not a devlog! (Which I don’t plan on doing, but if enough people show interest then I’d be happy to).
What the release is not:
Okay, so whilst it should be obvious, a text-based RPG.. is a text-based rpg. The visual side of this project had absolutely no impact on our marks, so the majority of my focus was spent on creating a working game rather than adding any graphics. That said, I still tried to at least have a half-decent structured interface, with or without images.
So the project was handed in on the 11th (ish?) of November (posting this a bit late, I know). It’s most certainly not complete in any way, for the moment the release is a small sample of story and a demo of the systems in place. You can explore the different interfaces, start and complete a quest, and experience the combat system. Think of it as a taster of what is in place and how the game can be evolved using the systems.
The release!
So here’s a quick(ish) overview of what’s included in this release:
Character Creation (Name, randomised stats)
Alert System
So I used the SweetAlerts JS library to create some awesome looking pop-up boxes, complete with smooth animations. These are used for basically every in-game notification, from inputs (name), to telling you’ve gained / lost reputation, to letting you know you’ve received a quest.
Choose Your Own Adventure
Whilst there isn’t a lot to the story at the moment, I’ve written a prologue where you can interact with some characters and the areas, as well as the start of the first chapter. There is some basic exploration at the moment, with a few different areas that each their own events. Some require triggers in order to activate though!
Emotion Engine / Reputation System
As you speak to characters and complete various in-game events, you’ll gain / lose reputation with particular characters. This is key to unlocking particular quests, bonuses, dialogue options and secrets. So it really does come down to the type of character you like to play. For now, there is implementation of the reputation gains/losses and the code is there for reputation triggered events to happen, however I’ve not written enough story for it to actually impact gameplay yet.
Character Sheet
Fairly standard, view your character’s level, stats and basic information. Check your inventory, your equipment and the bonuses they give to your stats.
Quest System / Quest Log
Whilst there aren’t many in this release, the quest system is finished. I imagine you all know how quests work, so I shouldn’t have to explain this bit. You can track them in the quest log, with colour indicators showing when a quest is complete.
Combat System
The combat is similar to that of Fighting Fantasy. It’s a mix of randomised dice rolling and stats. So far there are 2 regular fights and a small boss battle. Bare in mind that at the moment my damage algorithm is a little unbalanced.
Wrapping Up
Whilst I’ve gone over all of the things are in the release and those that will be implemented later in the development cycle, I’m actually not sure when that will happen. For now, I think the project will be on a bit of a hiatus (obviously with other modules ongoing) unless there’s a spike of people that would like it to be continued. As I previously mentioned, the base systems are in place, so I just need to sit down and write out the story.
Hopefully you found this article at least slightly interesting and if you want to test out the demo, just visit the game page. It’s playable in the browser (not tested on a lot of screens yet, I made the canvas screen size responsive, so the way GameJolt handles things is a bit of a bummer! Just let me know if there are size issues for you).
Thank you for reading this rather large chunk of text. If you would be interested in a development log of how I actually went about building the game and the various things I had to build with the canvas (text-wrapping, parsing, etc) then let me know and I’ll most likely post it on here or my blog. Same goes for me continuing the game, if you’d be interested in the game being continued then just leave me a comment or something!
Thanks!
Extras: Project Toolset
Languages: HTML5 / CSS3 / JavaScript
Libraries: jQuery, SweetAlerts
Text Editor: Sublime Text 2
Task Tracking: Hack ‘n’ Plan
Version Control: GitHub
Art: Photoshop CC 2015
0 comments