Archmage Rises cover
Archmage Rises screenshot
Genre: Role-playing (RPG), Simulator, Indie

Archmage Rises

Random Events Build 0.3.2 now on Beta Branch!

[p]Travel the world and encounter dynamic narrative Events. These are unexpected situations that offer choices, skill tests, opportunities to roleplay, rewards, and consequences.[/p][p]We’ll run the beta for 2 weeks, seeing what issues come up. If everything looks good we will release to everyone July 11.[/p][p][/p][p]Mods[/p][p]Please note, the purpose of the beta is to see if what we made works well and what needs improvement. First we'll make sure it works, then after public release we'll tell you how to modify it to make your own events. [/p][p][img src="https://clan.akamai.steamstatic.com/images/25807417/b31fcc610bd4f7d25b5f6ca04dfba378d91910df.jpg"][/p][p][/p]

New

  • [p]We’re starting with 30 events, more will be added as we develop other features[/p]
  • [p]Added a new icon system for map events - patrols, resources, etc. They appear directly on the map.[/p]
  • [p]Replaces the old Tracks system - you now spot tracks from afar and choose to engage with them or not[/p]
  • [p]Replaces the old Resources system - you now collect resources by walking over it and the terrain type determines the resource. If it’s a mundane event you get the resources. If there is a special one, you play it out.[/p]
  • [p]Removed "hex view" - where clicking a hex showed a background and menu of options. This has been streamlined to just walk into the thing and the right thing happens - collect a resource, enter a town, enter mage tower, enter a lair. A pop-up will ask you to confirm entering a lair.[/p]
  • [p]Added a new Item type - a “giftable”. These can be sold, but they are special unique items that can be gifted to NPCs to provide big relationship bonuses.[/p]
  • [p]Some events are repeatable, some are once per lifetime. Some of the rewards can be quite significant.[/p]
  • [p]Campsite items are now useable at any time on the map[/p]
  • [p]Ambushing/following monsters back to a lair is only available through tracks-events. Hiding from a patrol is just a different skill check for running away[/p]
[p][/p]

Improved

  • [p]Removed the old forced 'events'. Events are now 'opt in' by walking into them.[/p]
  • [p]Resource events can be spawned by inquiring with the locals, just like before[/p]
[p][/p]

Fixed

  • [p]Night time no longer drops the temperature so much it causes the world to be coated in snow every 15 seconds - that drove me nuts![/p]
  • [p]Frozen lakes and oases no longer spawn out in the middle of the ocean[/p]

Known Issues

  • [p]We significantly changed how resources are spawned and collected. Let us know if you think the balance is off for amount of resources you get and how many you need for quests. [/p]
[p][/p]

Accessing the Beta Branch

[p]You can access the beta branch by right-clicking Archmage Rises in your library, selecting Properties, then Betas, then select Events Beta from the dropdown list of branches.[/p]

Events Beta Release Set for Fri June 27

[p]I’m pleased to announce the Events feature is ready enough to set a ship date![/p][p]We’re performing an internal QA next week, and as long as we didn’t break anything serious, we’re going to put out the new Events system for you to play on the Beta branch Jun 27.[/p][p]We’ll run it in beta for about 2 weeks before launching it to everyone.[/p][p][img src="https://images.squarespace-cdn.com/content/v1/55c3ba70e4b0ae48388c1588/bb0b9068-95e4-4676-81a2-8e813ec3fe2d/sample+screen.jpg"][TAG-10]Example of the events on the map[/p][p][/p]

Key Features

[p]While traveling the world, you’ll now encounter dynamic narrative Events. These are unexpected situations that offer choices, skill tests, opportunities to roleplay, rewards, and consequences.[/p]
  • [p]You’ll see events appear directly on the world map as you explore[/p]
  • [p]We’re starting with 30 events, more will be added as we develop other features[/p]
  • [p]Replaces the old Tracks system - you now spot tracks from afar and choose to engage with them or not[/p]
  • [p]Replaces the old Resources system - you now collect resources by walking over it and the terrain type determines the resource. If it’s a mundane event you get the resources. If there is a special one, you play it out.[/p]
  • [p]Added a new Item type - a “giftable”. These can be sold, but they are special unique items that can be gifted to NPCs to provide big relationship bonuses.[/p]
  • [p]Some events are repeatable, some are once per lifetime. Some of the rewards can be quite significant.[/p]
  • [p]For the first time, you can add custom content to the game. Write events in JSON and the game will use them. Instructions will come after we do the public release, for now you can see what it is like in this video [dynamiclink href="https://youtu.be/foSNharBHxc"][/p]
[p]The events system is quite robust and dynamic. It’s one reason it took so long to make. It will be used by the next two features we will work on: Regions and Dynamic Quests.[/p]

Dev Update May 30: More Events

Internal Playtest



Today I playtested the events we have for feel.

Overall, they feel good. It’s the right thing to add to the game, it adds a certain “je ne sais quoi“ to the game to make it feel slightly more magical, mysterious, and interesting.

It doesn’t transform the game, but it’s a solid step forward. It will be really nice when we tie more systems into the Event generation.

The first thing to tune is the timing of event appearance. Right now they appear way too frequently and it sucks. It’s like too much salt in your soup. And Michel loves soup!

Second is how/where the events appear. The placement logic we have ends up creating sucky scenarios where this happened:

  • I exited a town and saw an event to the west. I went towards it.
  • Just as I reached it, another event spawned to the east, right beside the town
  • Just as I reached it, another event spawned to the west, close to where the first one was


This ping ponging between events feels crappy. Like running on a treadmill with no forward progress.

We have some ideas we’re going to explore on the placement algorithm next week.

JSONing Events



We wrote 22 events but they weren’t all in the JSON yet. As Michel translated them into JSON, there were features we needed to add to the game.

“There is a difficult balance of when to conform content to the game, or the game to content.”



We initially wrote the system with no real content - just some test content we imagined up. Once we started pouring in the content, that is when we discovered the real system needs. Michel went back to programming those features to get the game to conform to the content.

It’s almost like we added a mini scripting language to the game:

  • GOTO support (either jump to a stage or use the options at that stage)
  • Blackboard Values / Flags (keeping track of how many goblins died)
  • conditionals support (not true conditionals, but a similar effect can be achieved with random-stages + prerequisites)
  • dynamic text and text variation
  • AnyLairsNearby()
  • CheckBlackboardValue()
  • CustomPrereq()
  • FledBattle()
  • HasFood()
  • HasItem()
  • HasNotSeen()
  • HasSeen()
  • HasSeenAny()
  • HasSpell()
  • HasTool()
  • HasVariable()
  • LacksItem()
  • NeedsTool()
  • WonBattle()
  • AddOutcome()
  • GainStamina()
  • GenerateBattlePlan()
  • GenerateRandomWeapon()
  • Harvest()
  • IncreaseReputation()
  • IncreaseWellbeing()
  • IncrementBlackboardValue()
  • LeaveHexEvent()
  • LoseGold()
  • LoseItem()
  • LoseMagicXP()
  • LoseStamina()
  • MarkSeen()
  • PickFoodItem()
  • PickItems()
  • PlaySFX()
  • QueueHexEvent()
  • ReceiveDrink()
  • ReceiveGem()
  • ReceiveGiftable()
  • ReceiveGold()
  • ReceiveItem()
  • ReceiveMagicXP()
  • ReceiveMonsterLore()
  • ReceiveMount()
  • ReceiveRandomWeapon()
  • ReceiveSkillXP()
  • ReduceToOneHP()
  • ReduceToOneStamina()
  • RestoreHP()
  • RevealLair()
  • SetBlackboardValue()
  • SpawnBattle()
  • SpawnFloatyText()
  • SpawnHexEvent()
  • SpawnPatrolHere()
  • StunPatrol()
  • SwitchToHexEvent()
  • TakeDamage()

Writing 10 Events took about 40 hours.
Converting those events to JSON took about 47 hours.
Total: 4000 lines of JSON

Event Icons



We currently don’t have availability of our UI or Illustrator artists, yet we need something for the Event Icons on the map. I’ve been hearing good things about Midjourney from other people on other projects and so tried experimenting with it today.



While I got cool looking concept art consistent with our art style, I couldn’t make anything I can use in an icon. I have a huge library of fantasy icons, I’ll plumb those depths to see what I can get.

Finally, for no real reason, I'll end today's post with a picture of a goblin from the game cuz i like it. "I named the big one, bitey."

Getting Events Ready for Release

I usually write updates end of the work day, but today I’m excited so I’m doing it first!

Events News



We are working towards a minimum of 30 events. We have 20 so far. I expect to write two more today, leaving 8 left to go.

If you have an idea for a random event, something short, interesting, to be stumbled upon out in the wilderness of the map, (not part of a quest and doesn’t launch a quest - that will come later), post your idea in a few lines. I’ll read em and it may help us finish up the content!

Since we are close, Michel has been focused on the tech side of releasing. Removing the old resources system, shoring things up, working on the event population algorithm.

I don’t want to set a release date yet. But here is what’s required to release:


  • We have the 30 events written and encoded into the JSON.
  • We’ve playtested them together, as a whole, and A) It doesn’t suck and B) It feels pretty good.
  • Our community manager Monster Tamer Bloba has playtested it
  • We’ve made both PC and Mac builds - it’s been a while and we have to make sure our automated build system still works


Studio News



The story of how Psyonix made Rocket League is an interesting one. NoClip made excellent documentaries about it. Psyonix funded the development of Rocket League by taking multiplayer contract work from other studios and having a few people working away on RL in the background.

Since our investor fell through last year, and efforts on publishers lead to dead ends, contracting is one avenue open to us.

I’ve been working a contract for the last 6 months and it is the reason Michel is able to work full time.

Well, this week has been a great week on the Studio side.

Last night I closed a deal that will spin up three people on a small project - pending receiving the deposit.

The big news is we have a sizeable project bid that has strong indications of moving forward! If so, that will spin up 8 or 9 people and really get things moving. Once that is in place and humming along, I’ll be able to get some more people working on Archmage Rises again.

It’s been a long hard road recently, and we aren’t out of the woods yet, but things seem to finally be going in the right direction again! At least right now. At 9:17am.

Oh ya, and that snafu with the website is finally resolved and we’re back up and running again!

Quick Dev Update May 13 2025

Quick update that our website is temporarily down. It doesn't mean anything. I'm working with multiple tech supports to resolve it in the next few days. Just have to wait for fixes to take effect.

On the game side, we are working towards 30 events and have 20 good ones - well, we think they are good, or at least good enough to release! ːhappystar2022ː

Dev Update May 2: Definition of Done for Events

We’re close to wrapping up and shipping the new Events feature. I’ll announce a release date in the next few weeks.

Events



Michel asked, “How do we know when we’re done with Events?”

That innocent question of “how do we know we are done” is surprisingly difficult to answer. It can often go unanswered on teams.

Projects (major features) go through these game dev phases:


  1. Concept - Team decides to do X. Everyone is excited. X is gonna be great!
  2. Formation - Team defines X. What it is, what it isn’t. Where it comes from (inspiration)
  3. Core - Team starts building X. Some parts of X are really hard, so the team backs away from those. During implementation team learns more about X than they expected.
  4. Expansion - X is coming along now. X adjacent ideas bubble up, low hanging fruit really, X would be so much better if we included those. That’s X+. Then after some use of X and some content has been filled in, there is a big meeting and realizations come to light. We’re going to have to add stuff we never considered at the start. Some of the initial X ideas have to be scrapped to make way for what’s truly important. Now the team is building X++.
  5. Release - Release is a process not a date. Team is getting X++ ready to release but with all the changes - what even is X anymore?


This is where the Definition of Done comes in. The Leader has to draw a line in the sand and define for everyone what a finished X looks like. It’s not that people are dumb, forgetful, or can’t read the initial concept document. It’s just that so much has happened and been said around X that its hard to keep track of what was added, cut, and changed. The morphing through development puts everyone into a mental fog.

The original definition is no longer sufficient light to guide the ship into port.



So this past week I had to define done for Events for myself as much as for Michel. I went to Confluence and updated our initial Start page:

Events are:



  1. Something more on the map than cities, patrols, and quest locations.
  2. A satisfactory interruption. A quick in and out taste of something different
  3. A way to test and reward skills the player has been building
  4. Small way to make world feel alive and fantastical
  5. An opportunity for roleplay or morality checks
  6. A way to share lore
  7. System we can utilize later for when anything goes on the map

    1. The quest system
    2. Dynamic quests

  8. System we can layer on top of - once there is a region, we can layer in region related events

Success Completion


  • Minimum of 30 events
  • It works


With this in place we know exactly what we need to do. We currently have about 10 of the 30 events and more are being created every day.

As soon as we get to 30 I’ll set a release date.

New Community Manager


I’m happy to introduce our new Community Manager Monster Tamer Bloba. MTB has been around for a while on discord and forums and shared some great thoughts. He loves the game and wants to help make it a success.

He’s here to help me stay informed and keep you informed.
Thanks Monster Tamer Bloba for helping us all out!

Dev Update Apr 18: Making Nothing Fun

Today is Good Friday and it was a good Friday. I enjoyed writing some events in Archmage Rises. I had to be away from the project for the past 2 weeks to wrap up a teaching semester.

We are near the end of completing the Event tech. We are working on content and feel.

Today I will share a bit of the process and a game design insight I had on “Making Nothing Fun”. I’ll inevitably be sharing some insider info in order to explain it, but that’s part of the payoff reading a dev blog, right?

Starfall




I started writing a fairly basic resource event. You see a meteor in the sky. It is like a regular resource pickup event, but with a twist: the meteor splits into 3 parts creating 3 sub events. At normal foot speed, I expect players to have time to visit 1-2 of the crash sites and get some loot (unless you have flight, or teleportation, fast mount, or other cool things).

I work on the Minor meteor hunks, then get to finding the Major hunk.

You see the crater ahead. Heat shimmers in the air, and the earth hums faintly beneath your boots. The rock in the center glitters with fractured shards of strange luminous metal.



I put that "luminous metal" phrase in there to make it clear you are at the really good crash site. Well done! What options does the player have?

[Investigate]



That’s it. That’s all I came up with for what is basically a lootbox.

I’ll grant it’s not too interesting. So, I thought really hard and managed to come up with a perfectly suited, contextually sound, in-world second choice:

[Investigate]
[Back away]



There. Now there is a choice. I know, I know, very impressive right? And I did it all by myself!

Given this scene and those two choices, how many people would choose #2? I’m guessing close to 0% with +/- 10%.

In class, I specifically teach my students not to do this. This is called a false choice. It looks like choice, but isn’t because it isn’t yet an interesting choice. Whoops! Better no choice than a false choice – why? Because all choice involves some tiny amount of thinking effort on the player and don’t waste their effort thinking through a false choice just to not choose it. See Steve Krug’s excellent UX book Don’t Make Me Think for more info.

How to turn this into an interesting choice? Make both paths equally valid. Not equal in reward, but equal in Satisfying Outcome.

This is when I had my realization – I actually do this a lot: Present the option to do something and another option to do nothing.

“Nothing is never interesting!”



Even super risk-adverse people aren’t happy having nothing. What makes them happy and feel good is not getting nothing, but avoiding something bad. The fear of “bad” or the satisfaction of avoiding a bad outcome is the dopamine reward which reinforces the behavior.

OK, so let’s modify the event a bit and make it clear by showing there is a risk-reward / avoid danger choice here:

The crater comes into view. Heat shimmers in the air. The ground hums beneath your boots, steady at first, then sharp and uneven. At its center, a rock glitters with fractured veins of luminous metal. But the glow within pulses erratically, eerily.

[Quickly investigate]
[Back away and observe]



We’re getting somewhere! If I feel like taking a chance, investigate the space rock that invaded my planet. If not – well do nothing.
There’s that nothing choice again…

“How can we make ‘nothing’ feel good?”



I had to think pretty hard to suss out when, in gaming, does “nothing” feel great?
Then I remembered a very common scenario in D&D.

You are low on health and the enemy is making an attack roll. If they hit, it’s time to roll up a new character.

And they miss! They miss the THAC0 (or whatever it’s called these days) by some number.

Nothing happens and it’s jubilant and wonderful!



What makes this moment sing? It’s:

1. Seeing the danger
2. Knowing it is real
3. Managing to avoid it (even if you didn’t have control over the outcome)

It’s the near miss that is so exciting.

Another example, from Warhammer/40k:

Your opponent makes 3 hits against your character. He’s about to die.

You roll a 6+ armor save – and get three 6’s!

Nothing happens and it’s jubilant and wonderful!



This realization of how to make Nothing feel fun was so exciting I wrote it down as a design rule in my notes!

Empowered with this new knowledge, I revisited the event. I had to make the ‘miss’ clear. I also had to change the first choice into a pass/fail check.



The crater comes into view. Heat shimmers in the air. The ground hums beneath your boots, steady at first, then sharp and uneven. At its center, a rock glitters with fractured veins of luminous metal. But the glow within pulses erratically, eerily.



Now there are three outcomes:

Quickly investigate - Success
You circle the sky rock and find it cracked, its shimmering veins bleeding pure gold into the dust. You gather what gold you can and make your escape. As you stride away, a sharp implosion echoes behind you.
Gain gold size 4



Quickly investigate - Fail
You linger too long. The pulsing light stops. After a few breaths of silence, an explosion rips through the air, scattering knives of glowing stone in every direction. You hit the ground hard. When the smoke clears, there is nothing left but silence, pain, and blood.
Down to 1 hp



Back away and observe – Always succeeds
Wisely, you withdraw and observe. The pulsing quickens, then stops. In the next instant, the rock explodes, hurling glass-like shards in every direction. When the dust settles, you find a small pool of gold gleaming where the stone once sat.
Gain gold size 2



Now the safe “nothing” choice is a near miss with a gain. Not as large of a gain as the risk taker’s win, but that’s just fine – they got a steady return on their stock portfolio and didn’t risk losing it. That is a win! I also put the word “wise” in there as a compliment to this kind of player that they chose the prudent path and it paid off.

(As an aside, there is a difference between reading it here and playing it in game: they won’t know how much more they could have gotten on the risky path.)

So, that is what we are working on. It takes a while to write these events, hopefully we’ll get faster!

A big shout out to Jonathan who reads these updates every time and asks me about them each week. Especially if I don’t write one!

Thanks everyone for your continued interest and support!

Dev Update Mar 28 – Filling Events

Short update that we are proceeding on the Events system.

We’re mostly done the tech. Now Michel and I are filling in the content and what I mentioned last time: trying to make it fun.

I had a realization today as I was working on an Event: “Worg Pups”. The event in essence is happening upon a Worg mother which has just given birth. The mom could still be alive or dead. If still alive you could help it or slay it. Then there is the question of what to do with the pups.



I know it sounds very opening of Game of Thrones. I didn’t start from there, but can’t avoid the similarity.

This question of what to do with the pups brought up design questions.

Can you gift them to others?
Does the game support that?

We have a relationship system with NPCs and the ability to gift anything (items, money).

“Nothing says ‘I love you’ like the gift of a spatula.” (Only a few of you will get that reference!)

This is where I realized, at a high level, there are only 2 outcomes to an event:


  1. Get a resource (money, xp, item, etc)
  2. Enter combat
  3. Get another event which gives you 1,2


Writing events where those are the only two outcomes is quite constraining. Of course good design works within the constraints. Often it is the constraints that spur on the creative solutions.

What if


You can get an item that creates new interactions with NPCs, like if I got a worg pup?


  • I could give it to a child I know.
  • I could sell it to an animal trainer.
  • I could stick it in my tower and forget about it.
    • (I’m not interested in simulating pets at this time. I am tempted to add an ‘aging’ mechanic to inventory items so the pup could become a full worg I could then have as a mount).



What I really like about this is the event ends in a new 3rd way which isn’t closed or constrained by me the designer. The conclusion is wide open to whatever the player can think of. It is open to as many people they know. It allows Events to tie into existing systems. It allows another way to roleplay.

I’m sure with some more time and thought better uses will arise.

I’m sure you will have some good ideas on how to utilize this!

Which brings me to my final point...

I Need some Help



I need help on the community management side of the game. I would like a volunteer community manager who can help read feedback and bring my attention to things. Message me on the Discord if you are interested.

Here are a couple more wolf pup pictures I found. Sharing them for no other reason than they are cute:




Dev Update Mar 14: The Feel of Events

Low tech update this week to let you know Michel and I are alive and well and working on Archmage. I was away last week travelling.

Usually dev blogs are an opportunity to say what is good about a game. Perhaps a small way to celebrate features or progress.

This week I’m going to talk about what’s wrong!

We’re in the final phase of shipping the Events feature. Except there is one problem.

It doesn’t feel good.

This is the harder part of game dev. Making features is relatively easy: you code up something and get it to work. But how it feels is more art than science. This dev blog about the 3 year history of Balatro talks about what I mean.

Admittedly, this is something I want to improve on. Why? Historically, I’ve put out features too soon, before they had time to ‘bake’.

I want to do better with Events. I want to refine it and make it as fun as I can.

Today I was playing around with it. What feels right:

1. Collecting resources feels nice. You walk over a hex, see some floaty text of what you got, move on. Much better than what we had.

2. Road events follow the road. Simple I know, but it feels right they don’t veer off.



Feels off:

1. Tracks are spawning way far away, like 7 hexes away. If a hex represents a mile, that just doesn’t make sense and it doesn’t feel good even if it did make sense.

2. Travelers along the road spawn far away too. I think I should only see those when I’m close to the road, when I want to interact with road traffic, not when I’m off in the woods.

3. There is no reason not to go for a resource event. But even if 1 in 4 times it results in combat, or HP loss, or something like that – it still wouldn’t feel right. All that would do is make me never want to do them. So this needs some serious refinement.

4. Our inspiration for the events was FTL events. Those are great! But today I realized that in FTL the events are mandatory, in Archmage they are optional. And that difference is a BIG difference. In FTL if I get a crappy event, well, I deal with it. It is a challenge to overcome. I have to keep moving sectors to get to the goal, so I take the cards I’m dealt. Slay the Spire is similar: deal with it.

But we have a big open map, plenty of room to walk around and avoid events. If the player is CHOOSING to OPT IN to an event, it is a much different context than FTL, and can’t follow their “make the best of a bad situation” vibe.

So, the technical work is done, but the design work continues. I think this is one of those situations where the only way out is through.

I think if we write more events, we’ll get a feel for what works and what doesn’t. That can then be codified into rules for writing events, so they always have the same right feel.

I have a list of “rules” for writing an event, based on what I think is working from the previous ones. I refine the rules after I finish each event.

So far the rules are:

1. Have multiple outcomes to each choice, so even if the event is a repeat it can still be fresh.
2. Have some sense of uncertainty to each choice
3. Is there a way to have Now vs Later rewards?
4. Interesting choices involve “which do I want more? A or B or C?”
5. Give the player a chance to roleplay in their choices
6. Events are a small chance to learn more about the world (lore)



Today I wrote a Tracks event that provides some cool world building about the origins of Skeletons. It gives a chance to roleplay and a small amount of lore. I wouldn’t originally have included those aspects without the reminding by the rules.

That’s it for this week, I’ll see y’all next week!

Finally! You can add custom content to Archmage Rises - Events!

Many a time I’ve been asked “Mod support?” or some variant of that - “Do you support UGC User Generated Content?”

And I would hum and haw and say it isn’t a goal, but I’ll try not to do anything that prevents in the future.

Well Michel and I are working on the Events system and I didn’t want to have to reload the game every time I changed an event for testing. He put in live loading.

I then asked, “How hard would it be to allow players to live load events? And if the GUID is the same, we take their version over the one that ships with the game?” And it wasn’t that hard.

So here is a demo of the live loading and how I add a new event to the game.

Oh, if it isn’t clear, once the event is “in the pool” it’ll show up in the game. But no one wants to wait for that, so we have a console command to make it show.

Instructions will come when we actually ship this update. Still don’t know when that will be.