Planet Roguelike-Dev

August 24, 2016

Roguelike Radio

Episode 125: Road Not Taken

This is episode 125 of Roguelike Radio, where Andrew Doull is joined by Daniel Cook, Ste Curran and co-host Mark Johnson to talk about the roguelike puzzle game Road Not Taken (available on Windows, Mac, PS4 and just been released on iOS).

Read more »

by Andrew Doull ( at August 24, 2016 07:04 PM


Avoiding work

I've tried to pick up development again, but it feels hard. When looking at a particular piece of source code all there is left is work... especially in game design. Not so much in technical implementation, but some of that is also needed. It may sound funny when I'm referring game design as work, but that's how I feel when I'm comparing it to "pure" programming (without creating game content).

Working is kind of boring when you don't get anything out of it, at least not money as in this case. I'm often wondering why I'm even doing this, because I don't like playing as I used to like when I was younger. Maybe the explanation is that it's became a strange kind of habit. I bet if I tried to quit it would feel like there is something missing.

Today I was checking out item code. It showcases the problem of getter/setters in class based programming, but it's just how it is. Sometimes you could in theory create methods that sit well inside a simpler datatype class, but most often you need to get pieces of atomic data and make determinations outside that class. Either way the stuff gets done and no one is giving you points from better OOP style.

Problems in item code are mostly related to classification of items and using item type to check out some properties. It's not a good idea, because you could add some new item that has the same properties, but would not get recognized by the game as that kind of item. In large systems you need to classify everything to a larger group of items, whatever it may be. Then use the group's data to detect item types in more abstract level.

by Krice ( at August 24, 2016 01:59 AM

August 21, 2016


Defaults Finished, Negative Replies, Simulated Boredom

All the remaining default conversation options, and all the remaining expansions, are now complete. I’ve also altered the expansion code such that certain expansions aren’t tied to certain words or sentences within a language and guaranteed to appear whenever that sentence or word is said, but instead they appear with a % chance for every instance of a particularly word or phrase someone in that dialect says, depending on their sentence complexity (as we discussed before, sentence complexity is now tied to individuals, not to entire cultures). Here’s a couple of examples, courtesy of our good playtesting friend, Orangejaw Moonblizzard, and some NPCs who may or may not have had their origins changed using admin commands for the sake of testing (as you’ll notice these replies could not be for the same nation!)…



Negative Replies

The big thing this week and weekend has been working on negative replies – so, for instance, if you ask “Are we near the desert?”, the default response is “We are near [desert] in [direction]”, or whatever, but obviously a valid option is “We are not near the desert” – and this obviously applies to loads of questions. What if the speaker’s nation has no army, or dislikes art, or have never travelled, or doesn’t know any other civilizations, or lives on a tiny island and knows nothing of the wider world, or doesn’t worship a religion, and so on? We therefore now have a body of negative replies for people to basically say “no”, “that’s irrelevant”, “I don’t know”, or “I don’t care”, in hundreds of thousands of interesting ways!

These negative replies effectively now split up into two categories, which we could usefully call “general” and “specific” negative replies. “General” negative replies include replies like “I don’t know”, “I don’t remember”, “I’d rather not answer”, “I’m not authorized to give you that information”, etc, which can apply to a huge range of NPCs in a huge range of situations. Since the player will run into these fairly often, I’ve made sure that there’s a lot of variation in these general negative responses – although in many cases, of course, there’s only so many ways that you can actually utter some of these things, but here are a few examples.


“Specific” negative replies refer to asking a question where the answer is still answering the question, rather than a general answer, but still a negative. For instance, if you ask someone what they think a particular policy in their nation should be, they might reply “I have no interest in politics”, or if you ask someone whether they know any distant cities you might want to visit, they might say “I know of no distant cities” – and so on and so forth. Each of these is often more specific and more varied than the above, so I’m trying to bias people towards using these wherever possible, although they are naturally dependent upon particular cultural/political/religious situations.


Crowd Disinterest

You’ll all recall the “conversation interest” idea that URR conversations will have implemented – that unless you ask relevant questions, NPCs will quickly lose interest in talking to you. This is to stop the player just going through every single question one after the other, and to encourage you towards asking sensible, logical and appropriate questions. However, I realized the other day that I can’t just limit this to a specific NPC getting bored; if you have a bunch of general questions you’re asking every soldier, for instance, then you could just go from one soldier over to the next soldier in the barracks and start questioning them, ignoring the questions you already asked Soldier 1, but assuming (quite fairly) that they will probably respond the same way, seeing as both Soldier 1 and Soldier 2 are just default soldiers.

Therefore, I need to implement some kind of “crowd disinterest” solution, and I think I’m going to do this on two levels. On the “local level”, NPCs within a building will see who you’re talking to and what you’re asking them about, and also within a map grid (within your line of sight, or nearby), and will take note of the questions. So if you question Soldier 1 about pointless stuff, and they tell you to go away, then you start asking Soldier 2 pointless stuff, the time it’ll take Soldier 2 to lose interest will be shorter than normal; Soldier 3’s will then be even shorter; and so forth. Then, at the global level, I think we need a system whereby information about the player slowly spreads through cultures/cities/religions/etc in the entire world so that people get some idea of whether they should respond to the player or not. Neither of these systems will be in 0.8, but they definitely need to be there.

Next Week

Remember those two new conversation features I mentioned a while back – replies and counter-questions – and also all those questions that have more complex replies, such as lists? Some combination of those will be coming next week – probably the complex replies, I would think. See you then!

by Ultima Ratio Regum at August 21, 2016 07:17 PM

August 20, 2016

The Ground Gives Way

Energy Points #2 (Enchanted Equipment)

In this post I will talk a little bit more about the new identification system. As I wrote in part 1, you can now identify potions, scrolls and wands at will by spending energy points. This makes identification much less of a hassle, but it also slightly removes the feeling of mystery when finding something unknown. Potions and scrolls are one-use items and are not that exciting anyway. Wands are usually identified quickly by using them, so they are not too exciting either. The most interesting items you find are probably equipment.

Enchanted Equipment

Enchanted equipment (such as a “dagger of fire”) is really exciting to find and usually contributes heavily to your character build.

Enchantments are now unknown

Enchantments are now unknown

However, since one-use item identification is now much simpler, I still wanted to keep the excitement of finding unidentified items.

From the next release the enchantment of a piece of equipment will be unknown when you find it. Instead of a dagger of fire, it will say “enchanted dagger”. The prefix “enchanted” is always used to denote an unknown enchantment. You can learn its enchantment by equipping it or identifying it using Ep, but there is a catch…

Introducing Curses

I have made a somewhat risky decision to introduce a concept which is quite controversial in the roguelike community:  sticky curses. That is, equipment that once equipped cannot be unequipped and that usually comes with a bad effect. These kind of curses fit very well in TGGW, especially together with the energy point system.

The New Rules of Enchantment

I will start by listing the rules of enchanted equipment, and then explain the rationale and consequences:

  • The chance for equipment to be enchanted has been greatly increased.
  • All enchantments are unknown when found.
  • An enchantment can be good or bad (and cursed/unequippable).
  • Enchantments are learned by equipping or by using 10 Ep.
  • There are now services and items that can disenchant items (including curses).

That is, you will find more enchanted equipment than earlier, but you have to be much more careful of when to equip it. You have three choices:


1: Identifying by Equipping

Equipping the item immediately identifies it, but there is always a risk that it is cursed. A cursed item cannot be unequipped in anyway. Curses are quite rare (you are more likely to find a good enchantment), many of the curses are bearable; just a slightly worse version of the normal item, some can even be useful in certain circumstances (weapons of berserk increases melee but reduces blocking) while a few curses are truly terrible!

If you happen to equip a cursed item, there are several ways to get rid of it. There is a new common scroll of disenchantment that disenchants all your equipment when read (including curses). There are also several services that offers to lift enchantments from items for a fee. You can also get rid of a curse by destroying the item (for example by getting splashed by acid, or rusting the equipment). If you have a scroll of disenchant or know a service that disenchants, you can safely equip an item with an unknown enchantment.

2: Identifying by Energy points

You can identify a piece of equipment using energy points, just like with other items. However, identifying an enchantment like this is very expensive (10 Ep). It has the following consequences:

  • You have to have 10 Ep available. Remember that Ep doesn’t necessary fully replenish when resting (it depends on your food level).
  • Identifying an enchantment always takes you to 0 Ep, i.e., exhausted status (since you can have maximum 10 Ep). This means that you cannot do anything else that costs Ep (including equipping the item in question!). This effectively means that you have to rest before equipping the item once you have identified it.

3: Not Equipping

Of course, the cost or risk to equip the item may not be worth it, so you may decide to just ignore the item.



As mentioned, some people don’t like sticky curses in major roguelikes (personally, I like them!). However, in TGGW the common problems of sticky curses don’t apply: first of all you know in advance if an item may be cursed. Secondly, you don’t find that much enchanted equipment in a given run, so it won’t be a chore to try to identify items, but rather something you do once or twice per game.

Curses add a lot of interesting decisions: should you use your only disenchant scroll to find out if the enchantment of this dagger is worth it? Would it be worth paying a sage to get rid of a nasty curse? Should you use up all your Ep to identify this enchantment knowing that you’re getting low on food? Is it better to spend Ep identifying all my potions?

Curses also add a delay to when you can equip enchanted items, this makes up for the fact that you will find more enchanted items per run than before. Equipping enchanted equipment recklessly can be a bad idea.

Finally, curses makes Ep-management more interesting. The heavy cost of 10 Ep is huge, and if you want to immediately use a newly found enchanted items you usually have to rest twice (once to restore Ep, once more to restore Ep to be able to equip it). Many times you want to use your Ep for other reasons, delaying the usage of the enchanted item even further.

In my opinion, the new system with unknown enchantments adds depth to TGGW, I hope you will like it as well. In the final post of this series I will talk about a new item category that also uses Ep: Tools.


The post Energy Points #2 (Enchanted Equipment) appeared first on The Ground Gives Way.

by thegroundgivesway at August 20, 2016 06:12 PM