Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

[Devlog]+[Postmortem] old school "incremental" RPG

A topic by New Retro Games created Jan 05, 2018 Views: 3,491 Replies: 23
Viewing posts 1 to 19
Submitted (17 edits)

This is my first game and jam and I am working on an old text-based RPG which is inspired by incremental type games! It will be a simple browser-based game using Javascript and HTML.

I grew up on old school RPGs, a lot of old text-based ones on ye olde DOS screen. I've been blogging about modern retro-style games at https://newretrogames.wordpress.com/.

Lately, though, I've had a strange addiction to idle, clicker and incremental games - whatever way you want to categorise them. I always felt these two concepts could tie together and always wanted to make a game, so here I am.

Update 1: Avoiding Ridiculous Numbers

Update 2: First Steps

Update 3: Automation

Update 4: Combat!

Update 5: Equipment

Update 6: Adventurers

Update 7: Parties & Dungeons

Update 8: Crafting, Farming, Skills & Currency Exchange

Update 9: Live Preview Online!

Update 10: End: The Endening

Postmortem

Objectives

I'm not aiming for the style of "big players" like AdVenture Capitalist and Cookie Clicker, rather, more earlier simple proginetors like Candy Box and A Dark Room. Later on, Kittens Game came along, which despite the title, is an unforgiving and detailed village building sim, from the stone age to the space age, with everything from mining for ore and smelting it into bars, to building oil refineries and travelling to other planets. Mine... won't be quite that advanced.

I set out some goals:

  • More than just numbers increasing - as you progress open up new, different game modes such as RPG style exploring and combat
  • Avoid ridiculous numbers - a challenge to keep that enjoyable sense of progression while keeping numbers "normal"
  • A clear ending - there is a narrative with an end goal. You can "win" the game.

The Incremental Aspect

Pretty much every incrememnetal game sees you begin the same: clicking to gather resources, start buying helpers to automate the process, then buildings to produce new resources, which in turn unlock more resources and buildings. What these later examples do, however (particularly Candy Box and A Dark Room), is open up completely new gameplay avenues. In candy box, you begin clicking for candies then automating the process, but eventually, there's a world map and towns to explore, and a D&D style questing levels to beat. A Dark Room, similarly, started with clicking for resources, progressing to building a village, to opening up a world map to explore and conquer, complete with RPG style battles.

As the "genre" got popular, however, many of these games seemed to get more narrow-minded - click, automate, get bigger and bigger numbers, and need bigger and bigger numbers to build more.. and that's about it. Sure, there are cool thematic differences, and features like abilities/spells, which do things like boost production for a limited time. Or "prestiging", where you restart from scratch but the reward is some kind of global production % boost. These features, many which can be very well done and engaingly presented, these are stil all a means to the same end. Of which there typically is none.

The pursuit for bigger numbers starts to get ridiculous and lose meaning. A lot of games go into numbers I never knew existed as a matter of standard. Something gets lost between the feeling of gathering  up 100 wheat bushels, and when you are flicking through 160 nonillion of the things per second. The tipping point for me came when an official D&D incremental game came out (I tried the beta). I never played pen and paper D&D but I did play the Goldbox games, where reaching level 20-30 is usually "godlike". Early into the game however my characters' levels were already well past the 100s. That's just wrong for a official D&D game.

SO... not seeing the kind of new incremental emerging that I want, eventually I decided to put my money where my mouth is and try my hand at making my own that would fulfil my desires.

The RPG aspect

The game I decided on is a RPG style guild game, where you begin as a poor farmer with dreams of escaping poverty, to managing a guild of adventurers and sending them on missions. Meanwhile in the background, some dark forces are closing in, meaning your guild will eventually play an important part in the fate of the world.

Using this archetype of tropes gives a lot of room for fulfilling all the objectives, hopefully.

It will begin similar to many incremental games, where you gather resources on the farm, slowly improving your lot. Stumbling across an abandoned mine, you get the chance to improve your fortunes, expanding the resource gathering. Deeper inside the mine, you find the reason it was abandoned: it leads into a dungeon where monsters lurk. This opens up the RPG style adventure and combat section. You find hints of valuable treasure inside, but as the dungeon gets too dangerous you realise you need to hire professionals, and start with a new (cheap) adventurer. This is the first step of the "management" aspect, where you eventually have a full team of adventurers. As the game expands, the needs of your adventurers and quests, and this demands for your resources increases, and some light city building elements can also come into play.

Conclusion

This plan should hopefully give the game more to do than just increasing numbers, as progress will be measured in dungeon and story as well as resources. The resource gathering, town building, adventure managing and dungeon delving should give it a good mix, hopefully. The narrative can easily build up to an end game, with a final dungeon.

All this will be kept within simple text-based minimalistic gameplay, so hopefully, at least a working prototype is achievable!

 

Oooh I used to be really into a text mud, text games are gr8.  I think it's super interesting how you're pulling from both incremental games and RPGS, that'll make for a really fun mix! Ridiculous numbers always got a little boring for me (played a mobile game like that) so it's cool you have ideas to avoid it.

Submitted

Thanks, MUDs are definitely an influence. I used to play one called Legend of the Red Dragon (LORD) back in the day! Good times

Submitted

This is a nifty concept; it really feels like you're bringing a lot of things together. I also appreciate that there's an endgame -- infinite clickers can get boring when you know all that's going to happen is numbers keep going up.

Submitted

Thanks! I know, right? I lose interest in incrementals when I realise there's no real ending. There's a "late game" or "end game" but I really want a clear story with a definitive end. Games like Spaceplan and Paperclips did this pretty well, I think. I'd love to do a "New Game+" mode but that's probably too ambitious!

Submitted

Update 1:  Avoiding Ridiculous Numbers

A main goal is avoiding big numbers, in both the RPG side and the Incremental side. For the RPG side, I'm using classic D&D and Shining Force as models: lv. 1 characters will have around 5HP and do 1 dmg, for example.

The incremental part is trickier. For now, I came up with a multi-currency system to effectively replace a few tiers of number notation. There's copper pieces, bronze pieces, iron pieces, silver pieces, gold pieces, and platinum pieces. 100 copper pieces would be worth 1 bronze piece, 100 bronze pieces worth 1 iron piece, and so on. The idea would be that these six tiers replace the normal hundreds, thousands, 10 thousands, 100 thousands, millions, 10 millions.

If my math is right, which it probably isnt because I'm terrible at math, the values in terms of flat numbers should be:

  • 100 copper pieces = 100 copper
  • 1 bronze piece = 100 copper
  • 100 bronze pieces = 10,000 copper
  • 1 iron piece = 100 bronze pieces = 10,000 copper
  • 100 iron pieces = 10,000 bronze = 1,000,000 copper
  • 1 silver piece = 100 iron pieces = 1,000,000 copper
  • 100 silver pieces = 10,000 iron pieces = 100,000,000 copper
  • 1 gold piece = 100 silver pieces = 100,000,000 copper
  • 100 gold pieces = 10,000 silver pieces = 10,000,000,000 copper
  • 1 platinum piece = 100 gold pieces = 10,000,000,000 copper
  • 100 platinum pieces = 10,000 gold pieces = 1,000,000,000,000 copper

Or in summary:

  • 1 bronze = 100 copper
  • 1 iron = 10,000 copper
  • 1 silver = 1 million copper
  • 1 gold = 100 million copper
  • 1 platinum = 10 billion copper
  • 100 platinum = 1 trillion copper

This isn't an all encompassing solution, many incrementals go into much higher numbers: sextillion (Sx), septillion (Sp), Octillion (Oc), and Nonillion (No) aren't uncommon... but at least it covers a pretty good early chunk of numbers, up to a trillion.

There will also be some gameplay design questions: 

should 100 copper automatically become 1 bronze piece in your inventory, or should it be manually exchanged?

I'm currently leaning toward the later for two reasons: it can enable a gameplay element like a market where you try to get the best exchange rate, and it means you can also have things like 300 copper, 250 bronze, 3 silver, which enables currencies to extend further before going into higher brackets, mitigating the climb toward ridiculous numbering.

 what happens beyond platinum?

Things probably won't get that far, but if they do, I  will look to alternative resources, mystical stuff like "star diamonds" or so on. Alternatively, I could change the rates so that it takes 1,000 instead of 100 to move up a currency tier, which would pad things out quite a lot.

  

Submitted (1 edit)

Update 2: First Steps

Since the last post, some pretty decent progress was made (considering my lack of coding background). The game already has some fundamental steps: gathering some resources, exchanging them for money, and a few upgrades. A basic interface is in place, which will be hopefully much-improved later but is already perfectly serviceable.

Story so far

The current state of the game sets you out as an orphan, taken in by a poor farmer. You do some work for him/her gathering up wheat (and later, wood) in exchange for meagre money. You can also upgrade your scythe (increase wheat harvested per click), basket (increase maximum wheat capacity) and axe (increase wood chopped per click). These different things are introduced in steps, but once you reach the furthest stage you can gather and upgrade indefinitely, for now. I added a future step, which is not yet accessible in the current build, where you decide to "explore" the field further, and eventually discover an old cave. Explore that, and it becomes identified as an abandoned mine. That will open up new resources, and eventually the dungeon.

UI

The UI is barebones simple, but works well enough, and displays more elements as the game progresses. My favourite little addition was tooltips, which pop up above the element and are fully formattable in HTML:

I want the game to give the player a lot of information, especially for income and outgoings, so that mousing over a resource will show a breakdown of your income and consumption, where it comes from and any bonuses applied. The player should be able to see what is causing any deficiencies and can more easily choose how to address them.

Game Design reflection

Aside from the practical progress, putting the first steps into practice were helpful at already making me reflect on my design goals.

Initially, I wanted the adventuring aspect to happen quickly. The game introduced resource collection and depositing by having you collect 20 wheat before telling you to deposit it with the farmer. From there, it immediately jumped to exploring the fields for the cave, then exploring the cave itself. I realised this would mean introducing the player to the gathering aspect and then immediately disregarding it. Making the first part of the game a meaningless exercise in clicking to get through some screens.

Instead, if we're going to introduce gathering, it needs to then serve a purpose and the player needs to have a period where they take what they just learned and achieve some goal with it, and also get the chance to upgrade stuff. The challenge is fitting this into the narrative - you are helping an old farmer out, there needs to be enough freedom to explore gathering but you shouldn't be building 20 flour mills and 15 lumberjack huts at this stage. After some experimention, my idea is to have a few gathering iterations, introducing a new resource, and a few upgrades. Once you've gathered a certain amount, someone will wander to the farm, inured and alone, looking for refuge. The farmer will ask you to designate tasks for this new worker - in other words, automating wood or wheat collection. Soon, another wanderer will stagger in, looking for refuge.

This approach is handy as it will go through the usual mechanics, while fitting with the early stage narrative and hint at some sort of background events, before introducing a new mechanic.

Once you've got a flow with some workers, since you will have more time on your hands, it will come time to explore the field as initially designed. Instead of going straight to exploring the cave to find the dungeon, though, I will have a similar loop of acquiring new resources, in this case, stone and maybe iron ore, that the farmer will want you to extract to sell and upgrade the farm, making life better for everyone. Hints will suggest some sort of war, prompting why we need the farm to be upgraded to become a source of refuge.

At some point, freed up by the workers, you will explore the cave further, revealing the dungeon. From here, the iron ore and wood can be used to create makeshift weapons, spears, clubs, etc., enabling basic progress and opening up the first combat. After completing the first section of the dungeon, you'll realise deeper is too dangerous without getting proper adventurers, and the first phase of the game is complete.

As you can see, the first phase then is basically a tutorial. You will learn to gather resources, allocate workers, upgrade tools and the farm, craft equipment and fight monsters. All the fundamental basics with which to play the rest of the game. The second phase will lead into the adventurer hiring/training/management aspect. Once you've learnt that part, the game will become more open-world.

Future Design Challenges

An interesting challenge is the inclusion of yourself as a character, as well as overseeing other characters (workers). Usually incrementals tend to be one or the other, not both. I can see why, as my current system will create questions. 

Currently, upgrading things like axe and scythe mean upgrading the one you are using. Once you get workers, they technically should have different tools to you. Different approaches like automatically applying your own upgrades to new workers doesn't really make sense, but upgrading each worker's equipment independently would become cumbersome. Specifying each upgrade as a broad "improving the scythes used on the farm" upgrade can work, but also has some plausibility problems - if you have 2 workers and then pay the set amount to upgrade all the tools you use in general, it shouldn't apply to new then new workers arriving after the upgrade, as they would then also require new tools. Classic RTS games like Warcraft 1, 2 & 3 simply ignored this and existing units magically got upgrades. 

Technically, though, each new worker attracts additional cost when they arrive, to equip them with the latest tools to match the current upgrade, but that runs back into cumbersome territory. So I'm not sure how to get around that one.

I also have the narrative question of when to get rid of the farmer. At the moment, you get paid by the farmer, and collect wheat and wood for him. At some point you need to be independent. I will probably make monsters escape the cave and eat him/her, which is grisly but raises the stakes, I suppose. Otherwise, they may pass away peacefully from old age. In any case, early on you will end up with the farm, and the farmer will leave you with various cryptic clues hinting at background events.

--

There's a lot of work to go, but I'm happy with the start!

Submitted (2 edits)

Update 3: Automation

Things are shaping up, there's an interface and you can click things and gather stuff! But more importantly:  automation.

As mentioned in my last post, an extra story stage was added. Once you have completed the first round of upgrades (a bigger wheat basket, better scythe and better axe) a stranger stumbles into the farm and becomes a worker. You can assign and unassign the worker to wheat or wood collection, automating it at a default rate of 1 unit per second. Nothing else exciting, but hey, a key feature in any incremental. 

Eventually you'll have a team of workers, and managing their assignment will become important. Things like skill levels for workers (so the more a worker chops wood, for example, the better they get at it) would be awesome but I have to keep it simple for now.

The very first iteration

The next iteration, looking slightly less terrible


I also added a "talk to farmer" button, which for now serves no real purpose but adds extra flavour in the form of random gossip-like messages. Later, I'd probably expand this to include other NPCs that you can talk to. I want NPCs to play a bigger role in this game than typical incrementals, but for now they'll mostly be story/quest givers. Trading and challenging people to duels would be great, but that'd be post-jam stuff. 

Narrative versus Gameplay

The biggest obstacle is surprisingly not the programming. The internet is so awesome that I can pretty much always ask "how to make a div disappear" or something and I have the answer and code examples at the tip of my fingers. No, the challenge is actually... the narrative.

Story-telling sits in odds with everything else, because as far as the computer is concerned it entails having to arbitrarily activate and deactivate elements for no good reason. Someone tested the first stage and within seconds already clicked a button instead of continuing a story dialogue box, breaking the game!

Anticipating these moves in order to prohibit them is one approach but finding a cleaner method is probably better. I created a scrolling dialogue box with updates appearing more like a log, so the player can keep playing without accidentally skipping or circumventing narrative. Possibly, key text can appear "pinned" at the top, or something, to easily remind you what stage of the game you are at and your current main objective. This will fit into the incremental style gameplay better.

I'd still like to have classic RPG style dialogue boxes, game interrupting dialogue boxes could work for events like major conversations between characters, as well as direct narration, but for now I have just implemented the simpler "message log" system.

Next Steps

I really need to start optimising the code now that things are coming together - using objects instead of variables and putting more stuff in functions instead of manually coding each step in slightly different variations for each resource, etc. This will be a big test since I am not a coder. 

I'll also add the exploration feature back in - to find the cave, and unlock stone and iron ore, and exploration until the dungeon is found. I won't step into the adventurer stage yet.

I think just one or two more updates, then I can post a working prototype as well.  

Submitted(+1)

Update 4: Combat!

Some major major important progress was made since the last post, but with almost nothing to "show" for it: coding cleanup. Everything is now in objects and much, much better organised. Better functions have been written, so now instead of having gatherwheat(amount)gatherwood(amount), gatherstone(amount), etc. I just have gatherresouce(Resource, amount). Likewise, things like increasing or decreasing your "workforce" is simply handled within a single changeworkers(Resource, amount) function, which can accept positive numbers to increase or negative numbers to decrease assigned workers.

There's other major structural improvement from using objects was giving them a "flagShow" property. The game now entirely automatically determines whether stuff like resources and upgrades appear or hidden depending on that property. There's also a special "Game.Flags.Visible.(...)" object - If I add a property with the same name as an HTML element, it will automatically show/hide that element, overriding the relevant object (if one exists). This means I can also tweak specific stuff for story purposes when needed, but leave everything else to the automatic handling.

Still, I wanted to have something visible to show, so I added something a little more fun: combat!

The absolute most basic text-based RPG combat. But combat nevertheless.

You can engage a monster, and take turns gentlemanly-like punching each other until one drops. You can get XP and level up, though this doesn't mean much yet. If you die, you wake up in the fields with HP restored and can go in again for another round.

Next: inventory

The first stage of the game, the "incremental" resource gathering, is now pretty fleshed out. You can gather resources, upgrade your gathering equipment, meet two strangers who become allocatable workers, upgrade the farm itself, and finally, explore and find a cave, which unlocks stone, and on further explanation, iron ore, and eventually, opens up into the dungeon where you can fight the endless parade of skeletons.

Next may be the hardest part of all - a working inventory system. Lots of elements needed for that - windows to display lists of gear, adding and adjusting the list as items are equipped, dropped, sold, etc. The game needs to know who has what equipped, and what stats it should boost. Usable consumable items. Tooltips showing stats of items so players can compare equipment choices.  Probably the most work needed in the entire game!

Ah man I'm a huge fan of incremental games I'm super looking forward to your end product here! I've never seen the exchange rate mechanic which seems really really interesting to me.

Submitted

Thanks! Great to hear the feedback, now I know at least one person will play it!

Good to hear about the exchange rate - I was worried if it would seem tedious rather than interesting. (Of course, in true incremental/clicker fashion, the exchanging process itself will eventually be automatable - though thats a "stretch goal" at the moment) 

Submitted

Hey! I just wanted to stop by to say that Iove the idea of this game and I think the progress you've been making is pretty incredible! :) I look forward to trying it out. In particular I love that you've invoked A Dark Room!! For me that game in particular was also very interesting in the ways in which approached the player and how they "unfold" so to speak! I really think this Extra Credits Video does a great job of explaining.

Good Luck! :D

Submitted (1 edit)

Awesome! I am also surprised that I made it this far! Programming (JavaScript) seems way more accessible than it did last time I tried, many years ago. Now it's like "oh you want to do x? there's a command for that!" 

Thanks for sharing the video!  I plan to do a deeper post later on incremental design, and I think in that post I'll link to that video and some good reading materials which I found. One talks about "known knowns, known unknowns, unknown knowns, and unknown unknowns" which nails the draw of "incrementals" really well, I thought.

Submitted (4 edits)

Update 5: Equipment

Another fun (albeit bare-bones) feature has been added: equipment!

You can now equip weapons from a list. The game dynamically displays a list of weapons carried and allows equipping/unequipping, shifting them to and from the inventory pool and player as needed, and displays their stats in a tooltip. Sounds unimpressive, but for me a big achievement. It also goes a long way to making the game start feeling like an RPG (just ask the CRPG addict) - meaningful character development and equipment that affects stats seem core to the old school compute RPG experience.

(I will also add an additional tooltip to compare selected inventory to the currently equipped item.)

For now, weapons and just have a couple of properties: the name, a description, a dmg/defense rating and a value. I am working on a system to enable them to boost stats (e.g. a sword that boosts strength, wands that boost magic power, wizard hats that give additional MP, etc). That's probably as complex as it will be in the game jam version, but a few future ideas such as useable weapons (e.g. ice sword casts ice bolt) or weapons that teach skills are possible things to consider. 

There have also been a number of small but notable updates:

  • Splash screen: there is now a title screen. Feels almost like an actual game now!
  • Visual tweaks: the UI fills out the page better (and is more responsive), with a few formatting tweaks... starting to look less eye-gouging!
  • Dialogue code: has been cleaned up into a dialogue function which can create game-stopping modal popups or standard log msgs.
  • NPCs: You can now talk to the two strangers as well as the farmer, who drop cryptic hints about the state of the outside world.
  • Settings button: clicking a cog on the top right opens a settings panel which lets you manually save (autosaves every 30sec), or hard reset.
  • UI: Main text log can be cleared or minimized, Resources menu sections are now collapsible/expandable.
  • Levelling up: now grants a whopping +1 maximum HP.
  • Worker side menu: nothing in this yet but will later enable you to quickly recall and mass-assign workers.

Normal game screen (1366x768):


In a very small window, everything stays pretty much in shape:


Game Jam version: scope

Getting this far helps me to clarify some game design scope goals. Seeing how long it takes, I know I need to keep things very basic for the game jam version. I want to have something relatively self-contained and "finishable" with some sort of victory scenario for the game jam, even if it is just like a "End of Chapter 1".

Characters will only have "weapons" and "armour" for now. I will also create potions that heal characters by set HP amounts. This will be my main goal for the game jam, nothing more complicated than that.

Characters have basic classes, probably just fighter, rogue, mage, cleric for now. Rather than abilities, characters will simply have "attack", but its power will be based on their key stat. So rogues' dmg is based on dexterity, while a mage's is intelligence. Imagine "attack" representing the classes' innate styles: the rogue attack is actually sneakily stabbing while the wizard's is slinging fireballs. [thought: maybe automatically name "attack" to "stab", "fireball", etc based on class in the game jam version]

Stretch goals

The minimal scope is not a limitation - just a first milestone goal. I have lots of complex ideas, the foundations of which are already being built into the game framework for future.

For example, Weapons can be of various types, and these types can have various common properties. For example, swords do slashing damage and daggers do piercing. Armour likewise can have types: "light", "medium" and "heavy", in future versions magic or rogue characters should only be able to equip the appropriate armour.

I also want to have a complex magic and abilities system, with skill trees and research, where the right selection of skills can harmonise or play off each other in (hopefully) interesting ways such as, say, dousing enemies in a pool of water then throwing an electric shield on your tank that shocks attacks, resulting in all nearby enemies get hit by electric attacks each time the tank is attacked.

(I wasn't kidding: some of my "high concept" sketchpad ideas)

Realistically speaking, ambitious complex ideas is why I never finished a game before, so for now, these are just "high concept" things. I'm committed first to my simple game jam version goals, which means I might actually finish something

Next step: hiring adventurers

Now that I have a player character with stats, who can level up, and equip items, the next step will be enabling the hire of adventurers, and to be able to likewise gear and level them up. The next step is to then create a series of simple dungeons with generic skeletons to smash.  At that point, the Game Jam version milestone will almost be met, and I just need to fill out a bit of content and pacing.

There's still around 10 days to go, so... I think it's pretty achievable. And if there's time leftover, I can start adding more interesting and deep stuff like more complex equipment and a skill system. Fingers crossed!

Host

hey! this is really starting to shape up. i love how thorough and thoughtful your design is. the auto-scrolling log is also a great idea and it's cool to see options for clearing/minimizing it! blue UI + icons for the weapons is also a very RPG touch. i am also a little curious to see what you'll do with the narrative--i think one of the more fun parts about RPGs for me is making decisions and playing as a certain type of character--so maybe the player could decide how to interact with the farmer in some way that could affect resources or something? either way great work so far!!

Submitted

Thanks for the toughtful coments. That's a really good point about narrative and decisions.

At the moment I'm pretty tied down with just building the game systems (this turned out to be a lot more ambititous project than I realised), so the narrative will stay pretty linear for now. But in future I would like to have NPC interation as an important part of the game, and a few key decisions, including how to deal with the farmer (and spoiler alert: a bit of time-travel thrown in the  mix !)

Was actually thinking to implement a Ultima-style "keyword" system eventually. Although unlike in Ultima, you do not type in words directly, instead, you would gather keywords as you progress, and then select them from a list when talking to NPCs. I loved Fallout, especially Fallout 2, in the level of choice it gave you when dealing with NPCs and quests... I remember one time, I needed an item from an NPC for a quest, but he wanted me to do his own annoying fetch quest. So I just said scre it, and pickpocketed the item from him instead, and went on my merry way. :D

Submitted (2 edits)

Update 6: Adventurers

A quick update because its 4am, but after  a couple day break, I crammed some work in and the game now has the beginnings of an adventurer system! You can hire randomly generated adventurers and add them to your party.


UI:

  • Game areas (Farm, Cave, etc) have submenu bars
  • Dialogue box controls moved inside of the dialogue window, and made smaller
  • Settings cog moved inside of main menu, and settings menu cleaned up a bit
  • Various other formatting refinements, including stuff to make the page more "responsive" (e.g. adapts to different sized browser windows)

Game changes:

  • You can now hire randomly generate-able adventurers!
  • The game now saves the player's equipment
  • You can now unequip a weapon
  • A tooltip now appears for your equipped weapon as well as those in the equipment list, and -
    • equipped weapon tooltip shows current equipped weapon, for slightly easier stat comparison
  • Health regenerates over time, at a default rate of 1/s. Thus, if you die in combat you don't automatically get full health anymore.
  • Health doesn't regenerate for characters who are in combat
  • Other tabs are disabled while in combat

 Hiring Adventurers

The system so far is pretty basic, but the goal was to get the framework in place. You can hire adventurers, and the game saves them, and dynamically fills out your party screen as needed. Currently, you just click "Hire" and a fresh adventurer is generated. You can then hire, re-roll their stats, get a fresh new adventurer, or reject them entirely. 

In the "final" game, it probably won't be this easy - there may be a pool of shifting adventurers (e.g. in a tavern), rather than generating on demand (but I needed to build the code for generating adventurers in the meantime). Initially, the stat distributions will be lower, as you get lower quality adventurers. But as your reputation goes up, not only better classes, but those with better base stats, will start to show up. 

Generating Random Stats

Most old school RPGs (read: D&D) had the main character stats range from 1-18, mostly, with 18 being incredibly tough. I wanted to use this range but make the randomisation weighted toward a certain bracket - e.g. most should be, say, 14-16. I tried out a bunch of ideas found on forums, from just a straight up random range, to tips such as "get 3 random numbers then avg. them to get weighted toward the middle" to writing custom distribution functions. I tested it out by making the game keep track of these different approaches' averages:

...which all had exactly the same result.

After playing with a few, in the end it really was as simple as just "adding" a few different random numbers together, and playing with the numbers to get the bias I want. I set a bias of around 17, because let's face it, RPG players reroll until they get decent stats, so this speeds up that process. You can still get unlucky and get single digit stats, so it's not a cakewalk, but generally, it shouldn't take too many rolls to get something decent. 

Of course, the weighting will probably change in the full final game, but it was fun to play around with.

 Making Equipment Comparison toolips

I lost many hours trying to make a way for the game to show you your current weapon stats and one from the equipment list at the same time, for comparison, a la many RPGs e.g:

As simple as it should seem to just make two tooltips appear at once, it was very problematic. long story short, the way the code is set up, it's just not possible - I coded myself into a wall, and would have to rewrite a lot of things from the ground up.

 So I settled on a compromise of sorts: When you mouse over some equipment, the tooltip simply displays the description of both the selected item and your current equipment, one after the other, within the single tooltip. Blunt, but it does the job:

Next Steps

I need to continue integrating the adventurers, primarily so they can also be equipped, and then add them to combat. I'm planning a basic turn-based battle system, where characters take turns in order of their SPD stat (which will probably be derived from DEX+AGL for now). Then, dungeons need to be fleshed out, to have multiple encounters, and the ability to "clear" them, opening up the next dungeon in the list.

For now, the narrative and deeper roleplaying elements are a distant dream, but I'm hoping, with 8 days left, that I will get a few solid days in the end to purely focus on story and world building! 

Submitted (5 edits)

Update 7: Parties & Dungeons

This update sees the introduction of party-based combat and a series of 4 dungeons to progress through. Battles are turn-based, the game uses a basic "speed" calculation system to determine turn-order, and (for now), everyone patiently takes turns hitting things until something dies. Or the whole party is dead. Fun times.

(ignore the funky colouring - my display was on night settings)

Summary of progress:

  • Party-based combat framework integrated, with basic "attack" and "defend" actions
  • 10 monsters added to the game
  • 4 dungeons added, which need to be "explored" in order
  • Adventurers are only added to combat if they are in the "active" party
  • Adventurers heal over time, but not when in combat
  • All adventurers can now equip weapons!
  • Dismiss adventurers button
  • Clicking on the adventurer #number opens a popup adventurer menu for more options:
    • shows their stats
    • toggle "active" or "inactive" for being in the main (combat) party
    • and the "discharge" button

Building the game systems to this point was a lot more work than I expected. An RPG is definitely way more complex than the incremental side. There are so many menus, people and stats to keep track off, and things like equipping things and dying, that all need their own functions to be coded.  Getting the systems in place took a lot of work... And a lot more debugging. I repeatedly used the word "systems" rather than just game, but at this point that is what it is: it's not a game, but a game system. I realised there is a key point when a series of game systems becomes a "game", where everything starts interconnecting and the player is driven by some sort of progression (most often some sort of story, or at least "winning the game"). 

Dungeons

I won't be able to finish a "game" within the next few days, but at least I can try and tie it together with some sort of purpose. There are now 4 dungeons and a prelimary area, let's call it the "zero dungeon" for now, which gets discovered after fully exploring the cave. The first (zero) dungeon is not dangerous at all and easily tacklable by the player. From there, new proper dungeons open up, but get more dangerous. The player pretty much needs to recruit Adventurers from the first real dungeon onwards.


Currently each time you click "explore" there is a 3/4 chance of facing combat. The monster that appears depends on the "dangerlevel" of the area. Once you've managed to get 100%, the next dungeon opens. It's not implemented yet, but completing the final dungeon (good luck with that!) will give some sort of "Victory!" message.

Attack/Defend

Currently there are two options: attack and defend. Attack is self-explanatory, doing direct damage based on str (for now). Defense is slightly more complex, it halves damage received until your next turn. It also "costs" less (more on that below), meaning a character who "defend"s will act again a bit sooner.

Sadly, that is as complex at combat will get during the game jam, I think, due to time limits. In future, I definitely would like a skill system, but... c'est la vie for now.

Turn-based Order

To determine turn order, I used a method loosely based on Final Fantasy Tactics' system. Characters have a "Turnpoints" property. Each round, their AGL is added to it. The character with the highest Turnpoints then acts that turn. After acting, their TP is set to 0. And everyone's TP is calculated again for the next round. Repeat.


Right now every action sets TP back to 0, making the turn order roughly fixed. (Eventually a faster character will skip ahead every now and then) But the system is flexible enough to enable a number of potential neat features:

  • I could make skills or attacks that affect turnpoints, thus changing turn order. E.g. "interrupt" which halves target's TP, or "stun" which sets a them outright to 0.
  • Skills lowering AGL would have an important effect on combat! E.g. "slow" spell.
  • There's even more room to expand the TP system further:
    • Different actions could have different TP costs. This could be based on the type of action, like attacking takes all TP but defending only cost 80%, meaning defenders will move again sooner. 
    • But I could also assign each ability/skill its own "TP cost". So we could have all sorts of things like quick, weak but fast slashes. Fast fireballs, or slow powerful explosions.

 Lots of options here, which is exciting. Sadly, I won't have time to implement anything that makes use of it during the game jam. But it's nice to know the framework is there.

Monsters

    

(art from Opengameart.org)

There are currently 10 monsters. Growing from a simple slime up to dragons and the evil warlock, your final goal.

I thought I could leave things like AI to the side for now but no, just even picking a "random" target required a lot of work. It can't be a pure random number range, e.g. 1-4, as the adventures and party size are all variable, so I needed to code a (basic) system to "choose" a target. Of course, this still requires various checks. Is the target alive? And so on. 

Once again, this is as simple as it will get in this "game jam version", but being forced to implement the framework of a system does mean future behaviours can be added more easily. Some potential stuff:

  • Add a "aggro" property that builds up (and can be affected by skills, equipment, etc) that creates a bias on the "random target"
  • Add skills that add statuses such as "target" which cause all enemies to attack that round
  • Add skills which, conversely, set "aggro" to 0. Such as "hide" or "invisible" which will be good for rogues and casters.

Next Steps

With the addition of enemies and dungeons, there's scope to make some kind of "winnable" scenario for the game jam.

There's a bunch of technical things that are still needed, like making armour equippable, and actually implementing weapons and armour to affect dmg or def.

In the bigger picture, the systems need to be tied together. Primarily, the incremental side needs to feed the RPG side. Adventurers need to require reputation (gained from clearing dungeons) to appear and cost money to hire. Weapons and armour need to cost money and resources to "craft". Each dungeon needs to scale in difficulty enough so that you need new adventuers, weapons, and armour to progress. That will drive expanding and upgrading your farm to afford this stuff.

I haven't had much chance to get to focusing on narrative, though I do have plans. For now, I need to at least create a mystery and clues, so that people want to not only finish this intial "game jam version" but with a cliffhanger ending that raises more questions, that can only be answered when you play the "post jam version."

 

Submitted (2 edits)

Update 8: Crafting, Farming, Skills and Currency Exchange

Aaaaand we're back to the incremental side! Finally! I did a number of tweaks and formatting changes, and fleshed out a bit more UI, and added some features to begin tying the incremental into the RPG: dungeon farming, and crafting, character skills, and a functioning currency exchange market.

Finally, I've added the beginnings of an "end game" script, and shifted all the special in-development buttons into a "dev mode", all of which signals the final stretch of this "prototype" game is starting to creep nearer.

What's new

  • Farm page submenu implemented, now there is a Barn, Upgrades and Crafting buttons when visiting the farm, that switches to the relevant details inside the Farm page (NPCs always appear regardless of submenu)
  • Curreny exchange: get rich on the market! Once you have enough copper, bronze coins open up. You can exchange them at an initial rate of 1.25 copper for 1 bronze. Rates change every minute, so in theory it is possible to game the system.
  • Skills: characters can now have passive skills like "Gathering" and "Swords", although they don't do anything useful yet
  • In-game notifications for a range of stuff, like when new elements/features are unlocked, eg. "Wood can not be chopped", "farm upgrade available" etc, and when you explore a dungeon, begin combat, and so on. All are formatted to be more noticable too, with colour or bolding as needed
  • Crafting new tab added, and game now lists craftable weapons and their relevant material costs.
  • Currency menu added, which will later enable currency exchange (copper -> bronze, etc)
  • Clearing the final dungeon triggers end game script.
  • "Devmode" added
  • UI tweaks. E.g. modal-dialogue formatting cleaned up a little bit

Crafting

A pretty big gameplay addition, but surprisngly simple to implement. It basically operates the same as a shop - the only harder part is that instead of just a single currency cost (e.g. copper) it needs to "cost" various variable materials as well. Luckily, it uses the same logic as a lot of other things - like showing the equipment menu, except instead of listing equipment based on how many you own, it checks a flag property for whether the "blueprint" is "available", and then if so, loops through its "materials" to display the cost to make it.

Currency Exchange

Currency exchange is reasonably self-explanatory. Once you have over 400 copper, the exchange feature unlocks and allows you to change your hard earned copper pieces for bronze pieces. Of course, the spirits of the exchange market need to take their cut, so you don't get 1:1 rates.


All rates are based on the base formula of 100:1, as mentioned way back in my second post. A "market rate" is then applied on top of this. The default rate of copper is 1.25: which means 100 * 1.25 = 125 copper for 1 bronze. Steep!

However, the market rates change over time. The lowest you can ever get is 1:1 (i.e. 100:1) which is nice! Except for silver, which can never go lower than 1.5:1 (exchanging it into gold) and gold, which can never go lower than 2:1 (exchanging it into platinum). Currently you can only "forward" trade, that is, go from copper to bronze, bronze to iron, and so on. Though I will implement "backwards" trading, so a clever trader may be able to take advantage of arbitrage.

In this version of the game, you'd have to remember the rates at which you bought everything, and patiently watch the market rates. However, in the distant future I will add upgrades to help facilitate this, such as notifications when rates change, and tracking your purchases to help you secure the best value deals. It's a potentially neat little "game within a game", but it won't be essential.

Basically, if you prefer trading than dungeon farming, this feature will be for you!

Farming

Speaking of farming: after clearing a dungeon, a button now appears that lets you trigger combat in that dungeon on demand. In other words, you can "farm" monsters in the dungeon. This is a good counterbalance if the player got "lucky" and progressed a bit too fast, ending up in a dungeon that's too difficult.

Currently it's only good for farming XP to grind levels. But it opens up the way for monsters to drop useful loot and materials used for crafting.

I also plan to add a random enounter that is a treasure chest or some other interactive scenario. E.g. "you find a crack in the wall, what do you do?" and if a character has high enough strength, they can knock it down, revealing some loot. This will add a nice RPG touch to the base game. Loot (whether from chests or elsewhere) can contain "blueprints" which enable the development of better weapons

Skills

Although I wont be able to make a cool active combat skill system before the gam jam ends, I do plan to implement a basic passive skills systems. Everytime you gather wheat, chop wood, etc, you shold get skill XP. When you level up, you can gather more resources and carry more resources. Characters in combat shouldalso gain XP in the weapon type they are using, such as Swords. When they level up, their damage with the weapon type increases.

Currently I've implemented the first steps, adding it to Player/Adventurer objects and code to display and skills possed by that character. Next, I need to implement learning of skills, and the skills effect on combat/gathering/etc.

Notifications

Now, when you progress to a point where the game would make something new visible in the UI, the game explicitly tells you this. For example "[Upgrades] tab unlocked.", "[Stone] resource discovered.", and so on. Normally they say "show not tell" but in this case, the addded message seems to add a lot more game feeling, I think it makes the feeling of unlocking something more official, reenforcing a feeling of progression.

It's also useful as sometimes a new element appearing might not be so obvious, and players may not have realised there was something new to do.

Dungeons also start to give some descriptive messages when exploring: how much you managed to explore and whether you explored unscathed or if something heard you. Later I can add ambient effects as well, like "You hear noises." or "This section of the dungeon is lined with orante pots.", etc, for a bit of RPG flavour.

End Game

When the last dungeon is cleared, you get a message telling you that you've cleared the final dungeon (congrats, you!), and a button for the final battle will replace the normal dungeon button. Nothing further happens, yet, but it means the hook for triggering the end game (or end of "chapter 1"), is in place.

Devmode

This flag will determine whether extra controls and debug info shows up. It has stuff like gathering full resouces instantly, and the like, for faster testing. Now, the game will only show this stuff if "devmode" is switched on. Why doing this is signifiant, is that it signals the game getting closer to the real thing! Adding a devmode toggle means I can now have a "public" version of the game, but still turn on devmode and test it when needed.

Next Steps

Right now the main steps are just going over all these functions and making sure they work, finding bugs/mistakes I made, and finishing off these features:

next (required)

  • "backwards" exchange (e.g. bronze back to copper)
  • skills to gain XP and level up, and be applied to relevant actions
  • implement armour
  • add more weapons
  • add loot to monsters, esp. weapon blueprints
  • add final boss and victory sequence

later (highly desirable, if time permits)

  • add other dungeon encounters like treasure chests
  • more farm-related upgrades
  • change adventurers, add classes and make it so better adventurers appear as you clear dungeons

 

Submitted (2 edits)

Update 8.5: More Currency & Skills + UI tweaks... and live preview online!

Well, we are almost there.. this will likely be the second-to-last main update! 

Unfortunately, today I barely had much free time, so didn't really get much done. The game "works" but there are a lot of gaps that need to be filled in for narrative and progression. Hopefully tomorrow! Nonetheless, an older version of the game is online, in preparation for the final game jam update:

https://newretrogames.itch.io/incrementalrpg

That's the version from about 2 posts ago, but feel free to try it out and play around with the systems, and find the inevitable bugs that lurk there!

What's New

  • Finished implementing the currency exchange and got it fully working. You can now exchange back and forth from copper to bronze, which is enough for this stage of the game.  
  • The passive skill system is now also fully implemented - characters can gain a handful skills after performing actions enough times, which level up overtime and boost the skill.
  • Help system integrated into the game. Clicking a [?] in some places will toggle an info window
  • Numerous UI improvements, NPCs appear with icons instead of just buttons! Rounded borders! Shadows under the menu! 

Visual Tweaks

Help info is contained in a default invisible div tag, and when you click the ?, it toggles whether that div is visible or hidden. Simple, but so effective. It's a nice way to give more info than a tooltip, but short of creating some sort of help manual. I will add a lot of these through the UI, which will be very helpful - especially since the narrative and game flow that would guide the player is not properly established, it makes the game actually sort of playable in the meantime. 

Normal menu popup, with help text hidden.


After the help is toggled on. 

Note also how the exchange rate for selling 10 Bronze is slightly different than the rate of 1:92 would suggest, due to rounding. For now, I like this, as it adds some variability to searching for good deals - sometimes the rounding will work in your favour and sometimes against you, depending on what trade you are looking to make at the time. 

The nicest update for me though is the new menus. I created a "shadow" div, which you can see in the above pics, to make the menus look like they are floating above the main area, which helps to distinguish the menu from the main game stuff, and I found out you can do rounded borders in HTML, which makes really look like old school RPG menus a la Final Fantasy now!

Currency 

The exchange system is fully implemented, with backward and forward exchange rates. You can trade 1 or 10 copper into bronze, and a market rate (as explained in my last post) is applied on top of the standard 100:1 base rate. Market rate randomly shifts, and is updated live in the currency exchange window (if its open). Backwards exchange rates work, but similar to real life, are always less value (in this case a flat rate of 25% less). 

So if you want 100 bronze, for example, and were lucky enough to get it at the lowest possible market rate of 100:1 the cost is:

  • x bronze = x * (marketrate * baserate) copper
  • 100 bronze = 100 * (1 * 100) copper
  • 100 bronze = 100 * 100 copper
  • 100 bronze = 10,000 copper

Exchanging back at this time, in theory would give you 10,000 copper back. But, for downwards conversions, with the 25% commission cost it ends up being 7,500 copper. Doh! A 2,500 loss. Just like real life, you don't always get back what you put in.

So instead, you hold on to your 100 bronze and wait for the maximum rate, which is 1.75 - or 175 copper for 1 bronze.

  • x bronze = x * (market rate * base rate) copper
  • 100 bronze = 100 * (1.75 * 100) copper
  • 100 bronze = 100 * 175 copper
  • 100 bronze = 17,500 copper - 25% commission
  • 100 bronze = 13,125 copper

Exchanging 100 bronze back for this rate would get you 13,125 copper. Certainly, a lot less than the full 17,500 copper it's supposed to be worth - but look! - you only spent 10,000 copper for it originally. That means, a profit of 3,125 copper... all for doing nothing but waiting.

The rate is pure randomly generated every minute. A wishlist item would be to make the rate instead move in "points" much like real stocks and commodities, moving upwards or downwards over time, which, while still randomly calculated, would feel a lot more real. I might also need to tweak the 25% margin so that arbitrage is not too powerful, but for now it's good enough, and it's kind of cool to have an alternative source of money management.

Skills

Skills have been slightly fleshed out. Basically, when you perform an action associated with a skill, the game checks if you have that skill. 

If you have the skill, it gets a small bit of XP (1-10pts). Your skill level (generally) boosts whatever action you are performing; the higher your skill level, the higher the benefit.

If you don't have the skill, things get more interesting. You receive a penalty to whatever you are doing, but the skill gets added... but it's "untrained" and doesn't yet appear in your skill list. It is saved as lv. 0 and starts with -100 to -50 XP. You have to gain enough XP to not only pass 0 XP but get to +100XP and reach lv. 1. At that point, you have the skill officially, the game tells you that you've learned the skill and it starts appearing in your skill list. Current skills:

  • Gathering: increases wheat gathered per click by 1 per skill lv
  • Chopping: increases wood gathered per click by 1 per skill lv
  • Mining: increases stone/ores gathered per click by 1 per skill lv
  • Combat: increases damage of [Attack] by 1 per skill lv
  • Defense: increases def when [Defend] is used by 0.1 (10%) per level

Both the player and adventurers can gain skills, later I will make it so workers also gain skills. Later I will have skill levels for Swords, Daggers, and armours and so on. Lots of potential here, such as a skill tree. E.g. once you get lv. 10 in Swords, it unlocks the duel wielding skill, enabling you to equip two weapons. I can also make a skill that adjusts the base market rate, e.g. down to 90:1, so that you always get better rates.

Submitted

I uploaded a preview build! Check it out:

https://newretrogames.itch.io/incrementalrpg

Warning: have not tested it at all!


Update 9: Live Preview Online!

As I chip away at the final things I can implement before the deadline, a few small but important additions today. Armour was finally implemented, and more work was needed on the passive skills system, its more complex now, but arguably more interesting. But I really spent most of the time getting things working and fixing the inevitable bugs that resulted. I'm aiming for update 10 tomorrow to be the final game jam devlog :O

Latest progress:

  • Finally you can equip armour AND weapons. No more naked adventurers running around!
  • Weapons and armour actually have an effect! (e.g. swords increase damage, armour reduces damage).
  • A couple of new armours and new weapons added (mainly for testing purposes - try them out!)
  • More UI tweaks, the resource menu expand/collapse is much cleaner now, NPCs can also be expanded/hidden
  • Skills have been refined, and made more complex;
    • different skills have different "difficulty" to learn, making them take longer to learn, and once learned, they also have different "learning rates", taking longer to level up.
    • being "untrained" in a skill now imparts a penalty, while being "trained" gives you a bonus. (the bonus worked before but was hard-coded in, now its properly coded via functions).
    • untrained skills can have multiple "negative levels" meaning higher penalties, but as you level closer to 0 the penalty reduces with each level closer. Once you get to lv. 1, the skill is "learnt" you get the bonus instead of the penalty, which also increases with each level.
    • when you learn a skill, the game notifies you, if you are still in negative levels the game gives you a (pretty obvious) hint that you are improving in that skill.
  • Gathering, Chopping, Mining, Combat and Defense skills fully working now, affecting the relevant skills outcome.
  • Enemy's defense actually does something now!
  • Trading skill added which improves market rates.
  • NPCs now appear on a list on the left side, regardless of location, making better use of empty space

 Visual Tweaks

As mentioned, NPCs now appear on a list on the left side, regardless of location, making better use of empty space. 

The tab will show the NPCs in the current "room". I plan to make this menu become also more context-sensitive, later, though. E.g. it could show other general actions you can perform, that dont fit into normal area of the tab that you are on.

Game interface with left menus all collapsed

With all left menus expanded

Skills

I fixed up the code so gaining skills is no longer hard-coded per skill (I generally hard-code it in one or two areas to "test" my idea, then I create a function and use that instead). This means that adding new skills is now easy and scalable. More importantly, I expanded the skills system a bit and pretty happy with how it works now. It's way more complex now, though in relatively subtle ways.

Like before, when you perform an action, the game checks if you have the related skill. If you have it, a bonus is applied and the skill gets XP. If you don't have it, you get the skill, but "untrained". However NOW, untrained skills incur a penalty, as opposed to trained skills giving you a bonus, to whatever you are doing. Furthermore, skills have a ton of other properties. Untrained skills can be more "difficult" to learn, begining at lower levels (-1, -2, etc), and start with lower -XP levels, meaning it takes longer to reach the holy Lv. 1 when you start getting bonuses instead of penalties.

Skills can also have differnt learning rates, basically the rate it gains XP while untrained, and training rates - the rate it gains XP after its trained. Generally speaking, the untrained XP gain is double that of the trained XP gain rate.

Skills also have different XP curves (affecting how much the XP requirement increases for each level).

This adds a ton of customisation to skills, and (to me, at least) makes them a lot more interesting and variable.

You can see it in action here, in the currency exchange menu. The [dev] info (only appears when "devmode=1") shows the underlying variables. The base rate is 100 copper to 1 bronze, with a market rate of 1.03 meaning its 103 copper to get 1 bronze at the moment (a pretty good deal!). But you are also deeply untrained in the "Trading" skill. The initial level of -2, with a penalty of 2 per untrained level, meaning the maximum penalty of -4 value to all trades.

In other words, for buying copper, it costs 4 more than the actual market rate. For selling bronze, you get 4 less than the actual market rate. Eventually, from lv.1 onward you'll get a bonus of +1 per trade instead, getting more bang for your buck when buying and selling.

Next steps

There's a ton of stuff to do really. But I'll do what I can by tomorrow. Critical things are:

  • add loot to monsters, esp. weapon blueprints
  • flesh out incremental side a bit, more story and upgrades so there's a logical flow
  • finish crafting system (currently it displays craftable items, but you cant actually craft anything yet)
  • add final boss and victory sequence

If I can get those done tomorrow.. the game might actually be a "complete" experience. Basically a prototype, but hopefully an interesting one!

Submitted

Update 10: Ender: The Endening

Finally here. The biggest news: I did a test run of the game, from beginning to end (without devmode!) and it's winnable. It's WINNABLE. You can beat the game from beginning to end. Crafting also seems to work, so far. Haven't had time to test it, but looks promising:


Ok, there are massive narrative gaps and balance issues, but the foundation is set. I've never gotten this far before in making a game, ever, so it's a big achievement for me and couldn't be more pleased with myself. I will probably take a break for a few weeks after this, but definitely come back and flesh out the content. There's tons more I can add. 

Final updates:

  • Crafting implemented!
  • New basket upgrade added, to increase wheat and wood capacity
  • Stone and Iron resource discovery progession padded out a bit
  • Dungeon progression is smoothed out a bit, with some extra steps
  • Defending gets less effective if you repeat it every turn
  • Fixed a few bugs, e.g. skill progression always saying "gathering skill"

Known Unfinished Things

  • Money balance isn't well-tested - progression on the game depends on getting the first round of upgrades. It shouldn't normally be possible to get into a dead end, but it may be. For example, playing around on the currency exchange and losing money, might get you into a dead end where you cant afford the necessary upgrades to progress the story.
  • You can have too many people in a party - you are only supposed to be able to have 4 people in the active party. Trying to make more than 3 adventurers (plus you) in the active party might break the game.
  • Could not get a final boss fight - you just get a msg when completing the final dungeon. Anticlimatic, I know. But to make a special event like a boss fight, doesn't work with the standard explore and combat functions, so entirely new code would be needed.

Crafting

It was a bit of a rush, but crafting works! There's a bug for complex items - when displaying materials, it shows "object", but rest assured the creation process does work (and if you dont have enough materials, it'll then tell you more clearly what you need and how much. Probably won't get time to implement more than that by tomorrow.

Oh, and you start the game with a range of gear - enough to beat the game directly, anyhow. Have fun!

Defend tweak

It was too easy before to endlessly defend in the first dungeon, losing 1HP a turn until you die, then heal and repeat, grinding your "Defense" skill quickly. I found myself doing it even though I made the game! Patient players can still grind, but it shouldn't be that powerful.

So, defend now gives decreasing returns, each time you use it consecutively, its reduced by 0.1 (10%), down to a lowest of 0.1 per turn. Just taking a 1 turn break will "reset" it.

Progression Smoothing

Stone and iron-ore discovery has been shifted to one step later. Instead of having stone automatically upon discovering the cave, now you have to explore the cave first to find stone. Likewise, once it becomes a mine, you then have to explore the mine to find iron ore.

After exploring the mine, instead of going straight to a classic dungeon, a tab called "Deeper" opens up, exploring deeper into the mine. You can encounter slimes here. Next, it changes to "Tunnels". Finally, once you finish exploring tunnels, the tab changes to "Dungeons" and proper dungeons open up.

Finally, the Party menu doesnt open up until you've reached these proper dungeons now.

This all pads it out a bit more nicely.

Exploring is still a bit overpowered. When exploring, there's a 3/4 chance for combat. But you still get some % of exploration added. It's lower than if there was no combat. However, its easily breakable. E.g., just enter combat at 1HP, die instantly, repeat. You lose all combats but each time gain a little %, up to 99%. Combat can't push exploration past 99% so you have to win at least one combat to beat a dungeon. It doesn't "break" the game, since you can repeat dungeons and farm for XP regardless.

Still, it's not the best. I'll probably have to rethink that system one day.

Most probably, I'll do something like I did with the defense tweak. Encounter rates are still high, and encounters still give some exploration %. But... each lost combat gives less exploration % - so entering combat, fleeing/dying and repeating will give less and less exploration %, down to 0%, so that you can't game the system. Winning a combat will reset the exploration % rate back to normal, and will also lower the encounter rate, so the chance of multiple combats in a row gets less and less. Dying or running from combat will increase the encounter rate, as well as lowering exploration gains. So basically, you will be far better off winning combats.

 Next steps:

Possibly get a chance to fix and tweak small things before deadline

Write a postmortem in a day or two.

 Take a break!


 

Submitted

Update 10.5: Stealth Updatez 

Manged to slip in a quick stealth update before the deadline:

  • removed all the free items from starting inventory
  • Added a few more weapons and armour
  • Fixed exploration bug that allowed free exploration when in combat
  • fixed crafting page bug that prevented proper displaying of item crafting materials

Managed to quick-fix a couple bugs. Since crafting works, I removed the free starting items - now you have to craft them yourself first.  To compensate, added a few weapons and armours to craft, so there's a slightly better range now. Technically, there's not much incentive to not just save up resources for the best equipment first, but at least the options are there.

The Future

The game is definitely more of a prototype than anything else, but I'm happy I got to create something that pretty much works. I can definitely work from the foundation I've built here, and although I will take a break to refresh, I hope to flesh it out quite a bit in future. Plans include, fleshing out the incremental side a lot more, and making combat much more interesting, and tying them together better.

  • Farming: more than just wheat - planting seeds, milling flour, baking bread, getting livestock, and so on
  • Village building: build taverns to attract adventurers, blacksmiths to craft items, alchemists to brew potions, and so on
  • Loot: get loot from dungeons and other events, needed to craft better upgrades and gear for both the farming and adventuring
  • Skills: a range of learnable skills building on the current passive system, with lots of battle abilities
  • NPC interation: a keyword system to interact more deeply with NPCs and find clues
  • Deeper adventurer system: reputation system and class system for adventurers
  • Deeper worker system: workers get skills and play a bigger role in your choices
  • Much more upgrades
  • Proper narrative: actual story and plot and events to push you through the game
Submitted (2 edits)

Postmortem

This was my first time to really try to make a game. It was an old text-based RPG which is inspired by incremental type games! To keep things simple, it was entirely done using just JavaScript and HTML.


Success or Failure?

The game is more of a prototype. The incremental side needs fleshing out. It overall needs more content. But... it's a working, breathing, framework. You can: gather resources, explore caves, upgrade stuff, unlock new resources, fight monsters, craft weapons and armour, hire adventurers, and reach a final dungeon. I'd call that a success!

Breaking it down: 

  • More than just numbers increasing - success! The game has item gathering, upgrading, currency exchange, item crafting, party management, exploration/dungeons, and RPG battles. These features can all be fleshed out, but its already a good variety of stuff. 
  • A clear endinga narrative with an end goal. Sort of. The game has a clear structure, with dungeons, but there is no real narrative and I wasn't able to create an end bossThe game does tell you when you reached the final dungeon, though.
  • Avoiding ridiculous numbers - success! The multi-currency system works better than I expected. Having multiple currencies definitely pads things out. Moreover, the currency exchange market, with its shifting rates, means that you dont even get 100:1 rates, so it takes quite a while to upgrade money.

What Worked

I tried to make a game multiple times over the last 10 years. 10 years! I never succeeded. This time, for the first time, was different. Why?

There's probably no easy answer, but I'll try. 

Keeping the interface simple - It's purely text-based, there are minimal graphics (basically just icons) and there is no animation or sound. The characters (adventurers, NPCs, etc) always just appear in a list, without sprites aside from a portrait. Fighting is just the characters' portraits, and nothing is animated, exploring dungeons is just an "explore" button with a percentage that goes up. Inventory is a fixed order list - so no inventory-tetris to worry about coding. With just a basic CSS, it still looks a bit like a game. I think it worked surprisingly well.

Not so much simple mechanics, rather implementing them simply not sure how to explain this, but something I felt I really did (surprisingly) well is finding simple ways to implement my ideas. There's a lot of complexity under the hood, for example, combat-turn calculation system, a passive skill training system, a functioning currency exchange market, craft-able weapons/armour. However, combat turns are "instantly" displayed in a text log, skills/weapons/armour don't do anything more than flat atk/def bonus. Currency exchange is randomly generated. I think this turned out quite well, though. My only real regret, mechanics-wise, is not being able to make combat more than just "attack / defend". 

Starting messy - A lot of people look back and say they didn't plan things out enough, and their code was too messy, and urge you not to do that. I say, if you are a beginner, you should! Rather than plan everything ahead, design notes on paper, and so on, I just started. Yes, the code was messy, and yes, sometimes I realised my approach sucked and had to rewrite stuff. But, I think this was valuable experience. When you are an absolute beginner, carefully planning ahead can make your scope too ambitious (because you don't understand what's technically feasible yet). By coding it straight out "by hand" first, it helped me to just try my ideas out and see how well something works (or doesn't). If something didn't work, it was much easier to figure out why. Only once ideas were concreted, my game code became modular.

Of course, this doesn't mean I think it'a a good approach. I just think it's useful for people doing first time projects to get started, and get their hands dirty. (It also depends on the type of project.) Once you're better at game design and coding, you probably should not take this approach. 

What Didn't Work

The main things that I didn't complete properly was fleshing out the incremental side, and adding a narrative. 

Two-games in one! - my idea to make something with RPG and incremental elements was good, but it was a mistake. It was actually making two games in one. And then a third game that ties them together. That was way too much work. I should have just chosen one, and stuck with that.  As a result, the incremental side is poorly fleshed out, and doesn't tie that much into the RPG 

My first post jam update began to address this, though. Lots of new craftable stuff that requires the incremental's resources and upgrades like "adding a party slot" which requires lots of wheat. Exploring also costs "food" (wheat), meaning now the incremental side is starting to fuel the RPG.

"code first, think later" - it was good to learn about code, but it's a short term solution. I should add that it only works in certain situations: RPG game design seemed to work pretty well, just thinking up ideas and dropping them in and see what happens, but incremental game design seems to require a more thought-out process, as everything needs to carefully interconnect. Narrative, likewise, and at least in this game, isn't something I could just add as I go. If I went back in time, thus I would strip my goal down to focusing on an RPG without much plot

But I'm happy with it. It just meant that my first game is more about learning to put something together and code, and ambitious story telling and a design-orientated approach will come in future games. 

The Future

I definitely plan to continue on the game. I still have lots of ideas of things I want to add, including:

  • more incremental stuff, such as fleshed out village building
  • more fleshed out adventurer management (start a guild, gain reputation, find talent)
  • better combat (more than just attack/defend)
  • class and skill system (train up adventurers, customise their class and abilities)
  • and more of everything else!

Feel free to try it out and check out the devlog at:

https://newretrogames.itch.io/incrementalrpg

Bonus: Next Game Jam

I also have plans for a future MyFirstGameJam game in Summer. I drafted an idea ages ago for a Monopoly style game called Minipoly, with the goal of addressing the hideous balance issues in the original (which were apparently intentional to demonstrate the horrors of capitalism), to make something more dynamic and much, much faster to play.