<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dan Dahl</title>
    <description>The latest articles on DEV Community by Dan Dahl (@magipunk).</description>
    <link>https://dev.to/magipunk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2871775%2F4ceb2597-23c8-498b-a128-b96b2ae4a760.png</url>
      <title>DEV Community: Dan Dahl</title>
      <link>https://dev.to/magipunk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/magipunk"/>
    <language>en</language>
    <item>
      <title>Boomerang back to my main project</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Mon, 29 Sep 2025 03:08:17 +0000</pubDate>
      <link>https://dev.to/magipunk/boomerang-back-to-my-main-project-4c20</link>
      <guid>https://dev.to/magipunk/boomerang-back-to-my-main-project-4c20</guid>
      <description>&lt;p&gt;I spent a couple of days this week dabbling with some supabase tutorials, and it was nice to take a break from my Mob Wars/Torn inspired project, but I couldn't come up with any ideas that kept my interest, so I ended up coming back to this project.&lt;/p&gt;

&lt;p&gt;The good news is, I think I have all of my models finished now, so I can start working on my client and admin app again. I just need to go back through every model and verify everything hooks up to what it's supposed to.&lt;/p&gt;

&lt;p&gt;There's around a hundred files or more, so it'll take me a little while, but it should hopefully only need to be done once. That's it from me tongiht.&lt;/p&gt;

&lt;p&gt;Cheers all,&lt;br&gt;
Dan.&lt;/p&gt;

</description>
      <category>serverpod</category>
    </item>
    <item>
      <title>Taking a temporary pivot</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Mon, 22 Sep 2025 03:28:30 +0000</pubDate>
      <link>https://dev.to/magipunk/taking-a-temporary-pivot-328o</link>
      <guid>https://dev.to/magipunk/taking-a-temporary-pivot-328o</guid>
      <description>&lt;p&gt;Hey folks,&lt;/p&gt;

&lt;p&gt;This week I've decided to pivot to a smaller project, just to take a break from my current endeavour. It's been going for a while now with not much to show for it, so I'm going to try my hand at something a bit smaller in scope. I'll drop more details in next week's post once I settle on an idea.&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br&gt;
Dan Dahl.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>rive</category>
    </item>
    <item>
      <title>Just more modelling</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Mon, 15 Sep 2025 01:27:17 +0000</pubDate>
      <link>https://dev.to/magipunk/just-more-modelling-2k8</link>
      <guid>https://dev.to/magipunk/just-more-modelling-2k8</guid>
      <description>&lt;p&gt;Hey folks, another unexciting post this week. I've continued working on my Serverpod models, and I've shifted them into another project - this one a Serverpod Module, so once I'm done, I can use this as a launch pad for other similar projects.&lt;/p&gt;

&lt;p&gt;As of this week I have nearly all of the models setup. The main outstanding ones are:&lt;/p&gt;

&lt;p&gt;Alchemy and Sigils: Used to enchant spells with custom-built effects.&lt;/p&gt;

&lt;p&gt;Hubs: Defines all the activities and townsfolk you can interact with in a city.&lt;/p&gt;

&lt;p&gt;Expeditions and Encounters: The backend for my &lt;a href="https://dev.to/magipunk/project-pact-expedition-deep-dive-35ke"&gt;Expedition system&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once these are done, I'll be back to working on my admin panel and game client. One of the features I've set up the hooks for, but not sure if it'll be implemented from 1.0 is marriages(player-to-player) and relationships (player-to-companion).&lt;/p&gt;

&lt;p&gt;Anyway, that's it for tonight. Have a good one folks!&lt;/p&gt;

&lt;p&gt;Cheer,&lt;br&gt;
Dan Dahl.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Modelling weapons, spells and enchantments</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Mon, 08 Sep 2025 02:32:43 +0000</pubDate>
      <link>https://dev.to/magipunk/still-modelling-out-the-backend-137i</link>
      <guid>https://dev.to/magipunk/still-modelling-out-the-backend-137i</guid>
      <description>&lt;p&gt;Hey folks, not much to report back on this week. I'm still figuring out the backend and creating models. I've set up the backend for how I will handle weapons, spells, and enchantments.&lt;/p&gt;

&lt;p&gt;Weapons and spells are your two methods for attacking an adversary. You have two combat slots, that can either be empty (unarmed) or wielding a weapon or a spell. So you can be wielding one weapon by itself, no weapons, a single-handed weapon and a spell, or two spells. Every time you gain XP, your skill in the equipped armaments also increases.&lt;/p&gt;

&lt;p&gt;For Enchantments, they will add an effect to a weapon or piece of armour, For example: &lt;/p&gt;

&lt;p&gt;Envenomed Blades has a &lt;strong&gt;25%&lt;/strong&gt; chance to add &lt;strong&gt;1&lt;/strong&gt; stack of Poison, dealing &lt;strong&gt;5&lt;/strong&gt; Nature Damage every &lt;strong&gt;2&lt;/strong&gt; secs, for &lt;strong&gt;12&lt;/strong&gt; secs per stack, up to &lt;strong&gt;5&lt;/strong&gt; stacks.&lt;/p&gt;

&lt;p&gt;This enchantment will list the following parameters: proc_chance, stacks_applied, damage, damage_interval, duration and stack_count.&lt;/p&gt;

&lt;p&gt;Enchantments will require runestones to imbue onto the target weapon or armour. Runestones can be collected from various sources within the game. Each runestone can affect a specific parameter, and similar to gems in Diablo 3, these runestones can be combined to be upgraded and provide higher values to the parameters when the Enchantment is cast. This action will also consume the runestones. &lt;/p&gt;

&lt;p&gt;Next up, I'll be setting up the models for my defense systems (armour and wards) and then moving onto Alchemy (enchantments for spells).&lt;/p&gt;

&lt;p&gt;That's it for now, cheers to anyone reading this!&lt;/p&gt;

&lt;p&gt;Dan Dahl&lt;/p&gt;

</description>
      <category>serverpod</category>
    </item>
    <item>
      <title>Minor update this week</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Mon, 01 Sep 2025 03:54:29 +0000</pubDate>
      <link>https://dev.to/magipunk/minor-update-this-week-3a04</link>
      <guid>https://dev.to/magipunk/minor-update-this-week-3a04</guid>
      <description>&lt;p&gt;Hey folks, &lt;/p&gt;

&lt;p&gt;Not much to report this week, but I've been making steady progress on my reworked models. I've been moving away from a class-based system to a skill-based one, and have set up models to define the player's characters (Heroes), enemies, and townsfolk. I just need to sort out armour next, and then I should be able to set up the data I need for a simple combat implementation. I've also been laying the foundations to add support for romancing companions and marrying other players.&lt;/p&gt;

&lt;p&gt;That's all for tonight,&lt;br&gt;
Cheers!&lt;/p&gt;

&lt;p&gt;Dan Dahl&lt;/p&gt;

</description>
      <category>serverpod</category>
    </item>
    <item>
      <title>Sunday nights sneaking up on me again.</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Mon, 25 Aug 2025 02:40:09 +0000</pubDate>
      <link>https://dev.to/magipunk/sunday-nights-sneaking-up-on-me-again-45bm</link>
      <guid>https://dev.to/magipunk/sunday-nights-sneaking-up-on-me-again-45bm</guid>
      <description>&lt;p&gt;Hey folks, not much to comment on this week, just plugging away on Serverpod models again. I've completed the Attributes rework, to make it more inspired by how Dark Souls' system works, and I've just wrapped up the models for defining weapons. Next up will be defining weapon skills and enchantments.&lt;/p&gt;

&lt;p&gt;That's it for this week. I'm hoping this coming week I'll have enough models set up that I can start implementing them into the admin app.&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br&gt;
Dan Dahl&lt;/p&gt;

</description>
      <category>serverpod</category>
    </item>
    <item>
      <title>Public Roadmap and setting up new models</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Mon, 18 Aug 2025 01:16:11 +0000</pubDate>
      <link>https://dev.to/magipunk/setting-up-new-models-2beh</link>
      <guid>https://dev.to/magipunk/setting-up-new-models-2beh</guid>
      <description>&lt;p&gt;Hey folks,&lt;/p&gt;

&lt;p&gt;This week, after careful consideration and a lot of back and forth, I've decided to pivot again, to a hybrid combat system that uses both Attributes and Skill-Based Progression. I'm drawing on a lot of inspiration from Dark Souls for my Attribute and weapon scaling components, but I'm going to move forward with a skill system that requires players to equip weapons to earn progress with their skills associated with them.&lt;/p&gt;

&lt;p&gt;For example, a long sword defines its base damage, attack speed, range, attribute requirements and how the damage scales with each attribute. The "Swords Proficiency" skill applies to any sword the character equips, and determines their Accuracy, Crit Chance, Crit Damage and Armour Penetration scale with skill ranks. &lt;/p&gt;

&lt;p&gt;The more Expeditions and Combats that the character completes, the more experience they get towards ranking up the skills supporting their equipped weapons and spells.&lt;/p&gt;

&lt;p&gt;For anyone that is interested, I've set up a roadmap on Github &lt;a href="https://github.com/users/magipunk/projects/1" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'd welcome any comments or feedback people have on this or any of my previous blogs, and please feel free to follow my socials and dev blogs, or join my Discord community. Details on all that can be found at &lt;a href="https://www.magipunk.com/" rel="noopener noreferrer"&gt;magipunk.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cheers!&lt;br&gt;
Dan Dahl&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>serverpod</category>
    </item>
    <item>
      <title>Nuking my Serverpod Models</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Mon, 11 Aug 2025 01:46:08 +0000</pubDate>
      <link>https://dev.to/magipunk/nuking-my-serverpod-models-1ok0</link>
      <guid>https://dev.to/magipunk/nuking-my-serverpod-models-1ok0</guid>
      <description>&lt;p&gt;This week, I've been working on my Flutter Admin. I'm currently on the part where I start to populate the data for the denizens in my world, and looking at the navigation page I made myself, it made me question... do I need all of this for a 1.0 version of my game? Being honest with myself, the answer was "No", that I could cut like half of that and still be able to achieve what I need for launch. &lt;/p&gt;

&lt;p&gt;Then I started looking deeper, at my Attribute system, the way I set up encounters, and there's a lot of stuff there that doesn't reflect the core mechanics I described in my deep-dive post last week. My vision for the game has moved on since I originally set up these models, so now I'm taking an axe to them, and rethinking how I want my characters defined, what attributes I need, etc... The combat systems in Mob Wars and Torn are pretty simplistic, and I don't think I need to develop a full-blown RPG system, with blocking, evasion, crits, status procs, etc... &lt;/p&gt;

&lt;p&gt;So I'm taking a couple of nights off coding, while I recollect my thoughts on where I want combat to go, given my new Expedition system as a core mechanic. I'm currently researching Dota's Strength-Agility-Intelligence setup, and thinking on whether there's something worth adapting to my game there. That's it for now, thanks for reading!&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br&gt;
Dan Dahl.&lt;/p&gt;

</description>
      <category>serverpod</category>
      <category>gamedev</category>
      <category>flutter</category>
    </item>
    <item>
      <title>Project Pact: Expedition Deep-Dive</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Tue, 05 Aug 2025 02:59:34 +0000</pubDate>
      <link>https://dev.to/magipunk/project-pact-expedition-deep-dive-35ke</link>
      <guid>https://dev.to/magipunk/project-pact-expedition-deep-dive-35ke</guid>
      <description>&lt;p&gt;&lt;strong&gt;About me:&lt;/strong&gt;&lt;br&gt;
Hey folks, I’m Dan Dahl - Senior Producer at Digital Extremes by trade, and hobbyist game developer after hours. Outside of work, usually a couple of hours each night and a few more over the weekends, I have been working on a passion project. Project: Pact is my take on classic browser RPGs like Mob Wars, with a modern visual twist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My problem:&lt;/strong&gt;&lt;br&gt;
For a little background, I didn't get into persistent browser games during their early heyday when Zynga dominated Facebook gaming. I discovered them later in life, so nostalgia isn't what draws me to these games. There was something appealing about them, but I'd quickly become bored and churn away. This pattern repeated over the next couple of years with the same outcome - there's a hook that keeps drawing me back, but no lasting excitement to keep me engaged.&lt;/p&gt;

&lt;p&gt;Here’s a picture showcasing the Job System from Mob Wars: LCN:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9boyu67ppbv9x4y0anc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9boyu67ppbv9x4y0anc.png" alt=" " width="800" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, here I can see that I’m 78% through completing the “Fix a race at a track job”. The job is going to consume 20 energy, and requires a horse and jockey, which I must have purchased at some point. In return, I’ll get over one million dollars in cash and 40 XP. Clicking the button increased the progress bar by a couple of percent, gave me over $12 million dollars, 40 XP and some other random currency - 835 GP. It presents this to me in a pop-up dialog that just blinks into existence.&lt;/p&gt;

&lt;p&gt;This flow works great from a nostalgic point of view, it’s very reminiscent of Mob Wars and Mafia Wars, back in the day - but this is also what I dislike the most about it. It copies the formula verbatim. Mafia Wars was released in 2008, and this feels very much like a game that was made 17 years ago. I tried Torn as well, and had the same issue, it has a good excuse to feel that way though - it is over twenty years old at this point, and that’s a great achievement to keep the game running and maintaining an active player base over this time. &lt;/p&gt;

&lt;p&gt;Still, as a new player, I quickly found myself bored by the lack of interactivity, and overwhelmed by the noise in the UI. Both games feature extensive menus showing the potential depth of the game, and I felt lost in the clutter. To Torn’s credit, it did have a much better onboarding experience, but after completing a few tutorials, it became evident that I would need to invest a significant amount of time to catch up to a point where I wouldn’t be easily attacked by random players. I found the experience of getting mugged, and having my money stolen or hospitalized and unable to play when I wanted to - not really to my liking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Solution:&lt;/strong&gt;&lt;br&gt;
So here’s what I’m looking to do differently. Firstly, my game will have a focus on PvE with an opt-in PvP game mode, and it will take on a Dark Fantasy setting. The reason for this is two-fold. One, I prefer fantasy settings myself, and two, I want to add a few degrees of separation between my game and Mob Wars or Torn. Next, instead of Jobs or Crimes, it will have an Expedition system.&lt;/p&gt;

&lt;p&gt;Much like classic MMORPGs, the world will be divided into distinct realms, each realm will be comprised of several zones, and within each zone are several specific locations. These locations might be community hubs, where players can go to interact, sell their wares, crafts goods, etc… or they might be Adventure locations where players can undertake Expeditions or Gather resources.&lt;/p&gt;

&lt;p&gt;Both Expeditions and Gathering will use the Expedition system, but when Gathering, you have a higher chance of finding resources, over combat and other encounters. Locations can become temporarily “safe” after you complete a given number of Expeditions, allowing for a greater chance of harvesting resources and further reducing combat and hazard encounters.&lt;/p&gt;

&lt;p&gt;With that detail out of the way, here’s how my UI is currently looking:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgp9qqprr668frgieyv8s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgp9qqprr668frgieyv8s.png" alt=" " width="800" height="916"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While I’m not a UI/UX Designer by trade, I have been spoiled by great UX experiences while working with modern apps, so I have a sense for what I like. I feel like this genre is ripe for modern visual design and a streamlined user experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feature Breakdown&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Difficulty Rating&lt;/em&gt;&lt;br&gt;
To the top-left of my app is a set of three stars. When you begin your first expedition at a location, this will show up as three grey stars. Upon completing the Expedition, you unlock the next difficulty, and a blue star will replace the next available grey star - up to three blue stars in total. This will raise the difficulty of events (increasing enemy levels, increasing the required stat check to succeed, etc…) and increasing the amount of rewards granted. I haven’t decided if I will let the player select which difficulty they want to play, or just make it purely incremental. I am going to &lt;del&gt;steal&lt;/del&gt; borrow a concept from Mob Wars: LCN here though. Once you 100% complete a zone, you’ll be able to ‘Prestige’ it, unlocking three additional difficulty tiers (gold stars) with even greater challenges and rewards.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Terrains&lt;/em&gt;&lt;br&gt;
In the top-right corner, there will be an icon showing one of several terrains. From left-to-right, I have: Mountain, Forest, Desert, Plains, Coast and Swamp. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxvvkiul54m6koyrejfnv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxvvkiul54m6koyrejfnv.png" alt=" " width="800" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These act as filters for what components can be populated within events, defined within a Zone. Components will be variables that can either be randomly or deliberately set for an encounter. &lt;/p&gt;

&lt;p&gt;For example, in the zone of Ashmoor, Combat events may yield encounters with various types of Goblins in Forest expeditions, while different kinds of Lizardfolk may lurk in Swamp expeditions. Hazard encounters may be populated by Quicksand in Desert expeditions, while Falling Rocks may occur in Mountain expeditions. Certain items might only be found from Discovery or Treasure events in Expeditions with a specific terrain type, in a given Zone. As another example, the [Emerald Rose] quest item is a component that can only be found from Discovery events in Forest expeditions in Ashmoor.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Event Grid&lt;/em&gt;&lt;br&gt;
Each time the player clicks Explore (or the Autoplay feature ticks) a set amount of Stamina (my game’s Energy resource) is consumed, and a random event is triggered. This is displayed as a tile in the Event Grid. Note that this next image is from an earlier iteration. I’m using Rive to develop every aspect of this UI, and I recently pivoted to use one of their new Artboard List features to dynamically grow the length of the grid at runtime. Unfortunately, that means I can’t show it in action until I get the client code working for it. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2hmgqps467hzpmf6191.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2hmgqps467hzpmf6191.png" alt=" " width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Low resolution, and terrible to look at, but it demonstrates what happens. The first three times I click, I get one of the more mundane events, “Exploration” which will award me a small amount of experience, and include a simple story, like “Turning the corner, you come to an empty hallway. Torches mounted along one of the walls light your way forward.” A variable will store the current room you are in, in this case “Hallway” so subsequent events can carry on the story. The third time I click the Explore button, I get a Combat event. The description reads “As you approach the end of the hallway, a pile of bones rattle to life, and rise giving form to a [Skeletal Vagrant]. You parry its lunge and shatter its skull with a swift blow from your mace. You notice a small pouch hanging from its belt as it crumbles back into a lifeless pile of bone. You pick it up and carry on.”&lt;/p&gt;

&lt;p&gt;This event would look up what monsters are available to my current expedition, and choose one at random. It would compare my combat prowess against the Skeletal Vagrant’s power to determine if I would successfully defeat and continue (gaining gold and XP) or retreat to safety (gaining just XP). It would also look at my inventory and possibly my skills to generate the story that goes with the event.&lt;/p&gt;

&lt;p&gt;This would continue until you complete all of the events in the Expedition, or until you run out of Stamina. Should you run out of Stamina, your progress will be saved, ready for you to pick up where you left off when you come back. I’ll likely frame in with some kind of Town Portal mechanic, so you can go back to town and craft or spend other resources, and when you gain more Stamina, you'll be able to return to this Expedition and pick up where you left off, or pick a new Expedition entirely.&lt;/p&gt;

&lt;p&gt;And these tiles represent my current set of Events:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmu9kezrdfk4ijn1ob2x4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmu9kezrdfk4ijn1ob2x4.png" alt=" " width="800" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From left-to-right, top-to-bottom I have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exploration (Variant 1) - Mundane story, awards a small amount of XP.&lt;/li&gt;
&lt;li&gt;Exploration (Variant 2) - Exactly the same as Variant 1, just visual flavour that alternated with Variant 1 to give the impression of walking to the next event.&lt;/li&gt;
&lt;li&gt;Hazard - Some kind of danger that requires a skill check to avoid taking damage. Awards a moderate amount of XP.&lt;/li&gt;
&lt;li&gt;Discovery - The player discovers something important, maybe a quest item or a shrine that grants a boon for the rest of the expedition. Awards a large amount of XP and possibly an item or buff.&lt;/li&gt;
&lt;li&gt;Treasure - The player finds some loot. Awards a moderate amount of XP and Gold and/or Items.&lt;/li&gt;
&lt;li&gt;Social - The player encounters an NPC, possibly makes a skill check and gets awarded XP and potentially something else.&lt;/li&gt;
&lt;li&gt;Puzzle - The player encounters some kind of puzzle and needs to make a skill check. Success grants XP and Loot, failure just grants XP.&lt;/li&gt;
&lt;li&gt;Combat - The player encounters a hostile opponent. A quick check in power level difference determines the outcome and whether or not damage is sustained. Success awards a large amount of XP, Gold and/or items. Failure awards a moderate amount of XP.&lt;/li&gt;
&lt;li&gt;Rival - An encounter with a persistent, narrative-driven adversary. Ties into a planned turn-based combat system. The Rival system will have a quest to opt into it, and players will be able to opt into a battle with the Rival at this point or forfeit some advantage to them. Rewards will be dependent on the outcome of the combat or narrative beat.&lt;/li&gt;
&lt;li&gt;Boss - An encounter with a strong enemy. Only found in Dungeon and Raid Expeditions. Ties into a planned turn-based combat system. Rewards will be determined upon completion of the battle.&lt;/li&gt;
&lt;li&gt;Forage - Only encountered during Gathering expeditions specifically for Foraging. Awards some plant-based resource and a small amount of XP.&lt;/li&gt;
&lt;li&gt;Mining - Only encountered during Gathering expeditions specifically for Mining. Awards a small amount of XP and a mineral-based resource. Once you get one of these events, it triggers a sequence of another 2-3 Mining events, but these have a chance to flip over to reveal a Treasure or Discovery event, awarding additional rewards.&lt;/li&gt;
&lt;li&gt;Fishing - Only encountered during Gathering expeditions specifically for Fishing. Awards a small amount of XP.&lt;/li&gt;
&lt;li&gt;Catch! - Occasionally, a Fishing event will flip into a Catch! event, awarding a Fish resource, and a moderate amount of XP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Description Box&lt;/em&gt;&lt;br&gt;
Beneath the grid, this area will contain a small storylet, inspired by Fallen London. The label at the top will change to match the type of the event, and its colours will match the tile for the event, to help players make the association that the description in the box is tied to the event in the grid. The rewards gained from the event will appear as coloured pills at the bottom (Gold for gold coins, Teal for XP, and other colours based on rarity for items - Common items = Grey, Uncommon items = Green, Rare items = Blue, Epic items = Purple, etc…). Some components will be referenced in coloured text between square brackets. Players can tap these to pause the Expedition and get a pop-up dialog that gives more information on the component.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Expedition Progress&lt;/em&gt;&lt;br&gt;
In the bottom-left of the UI, I have a progress bar. Instead of showing an abstract representation of progress as a percentage, you’ll see exactly how many events remain in the current expedition.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Explore Button&lt;/em&gt;&lt;br&gt;
Finally, to the bottom right, is a Split Button. The larger side can be clicked to progress the Expedition to the next event, and it shows how much Stamina it will cost to do so. The smaller menu button beside it will open options to toggle between Manual Progression and Auto-Progression at x1, x2, and x3 speeds. &lt;/p&gt;

&lt;p&gt;Auto progression will automatically consume Stamina on each tick until the Expedition is completed or the player runs out of Stamina. The idea is that Auto x1 will give the players enough time to read the story that appears, wait a beat, and then move to the next one, saving players the need to tap the button every couple of seconds. The Auto x3 speed is for players who don’t want to read and just want to get on with spending their energy. Lastly, Auto x2 is something in between these other two extremes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br&gt;
So, this is the design for one of the core features of my game. I believe it addresses the main issues I have with other text-based RPGs. I’d love to hear if anyone has any feedback or advice. I’m developing this through vibes (vibe-designing, not vibe-coding, I enjoy that part of the development too much to outsource it to AI), and I’m not an artist, but I think it looks okay, though I would welcome opinions on that as well.&lt;/p&gt;

&lt;p&gt;Currently, I have a first pass on my backend model, built and deployed on Serverpod, which gave me a nice starting point for my game. I'm simultaneously developing an Admin app and a Game client - the Admin app will let me set up the game data that the client uses. I'll be focusing on one feature at a time, with Expeditions being my priority, and my next few weekly blogs will walk through my development process for this feature.&lt;/p&gt;

&lt;p&gt;Thank you to anyone who has read this far, I appreciate you taking the time to read about my project. For anyone who's interested, you can follow along my progress with weekly updates over at &lt;a href="https://www.magipunk.com/" rel="noopener noreferrer"&gt;magipunk.com&lt;/a&gt; or on &lt;a href="https://discord.gg/pPfX9J8Db5" rel="noopener noreferrer"&gt;this Discord server&lt;/a&gt; that I just threw together - disclaimer: It's pretty bare bones at the moment, and will likely stay that way until I develop a community around my game.&lt;/p&gt;

&lt;p&gt;It's very early days, and I don't have a timeframe for Alphas or Betas yet, but I have been making steady progress and plan to maintain a steady rhythm for working on content. While I'll be heading off to bed shortly, I'll be more than happy to reply to comments tomorrow morning.&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br&gt;
Dan Dahl&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>rive</category>
      <category>flutter</category>
      <category>design</category>
    </item>
    <item>
      <title>Rive crashes were my own fault, and I'm still working on my UI</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Mon, 28 Jul 2025 02:21:11 +0000</pubDate>
      <link>https://dev.to/magipunk/rive-crashes-were-my-own-fault-and-im-still-working-on-my-ui-4l3g</link>
      <guid>https://dev.to/magipunk/rive-crashes-were-my-own-fault-and-im-still-working-on-my-ui-4l3g</guid>
      <description>&lt;p&gt;Hey folks,&lt;/p&gt;

&lt;p&gt;The summary sums up my week thus far. Rive's community support team are nothing but outstanding. They're a small team, yet they wasted no time at all in helping me figure out my problem, which was I wasn't using their new Artboard list feature correctly, and had setup an infinite loop in my UI. They had me back on track within hours, hats off to them, they have my utmost respect.&lt;/p&gt;

&lt;p&gt;I was hoping to be finished this week, but that's not the case yet. It's close, but I keep thinking up additional polish and edge cases that need to be resolved before I'm ready to move onto implementation. I'm looking forward to getting back into Flutter development though. It's easy seeing what I need to connect where, and that's going to be an enjoyable code crunching session.&lt;/p&gt;

&lt;p&gt;Once I'm done, I'm planning on going into a game system deep-dive, and I'll likely cross-post that to reddit and try and get some additional engagement and feedback. I'm hoping that'll be enxt week's article, but for now I'll show what the current state of my Rive file looks like.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbxdtvotxuhh1271kc65e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbxdtvotxuhh1271kc65e.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Until next time!&lt;br&gt;
Cheers,&lt;br&gt;
Dan Dahl&lt;/p&gt;

</description>
      <category>rive</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Crashes in Rive</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Mon, 21 Jul 2025 03:50:56 +0000</pubDate>
      <link>https://dev.to/magipunk/crashes-in-rive-1knk</link>
      <guid>https://dev.to/magipunk/crashes-in-rive-1knk</guid>
      <description>&lt;p&gt;The summary sums up my week pretty well. I've been experimenting with the Feathering feature in Rive to apply inner shadows to all of my components, but now my Rive project crashes every time I switch to a different artboard. I don't know if the crashes are related, but it is the most recent activity I've had, and it wasn't crashing last week, so I suspect it's related to this.&lt;/p&gt;

&lt;p&gt;I haven't had as much time to work on my project this week, due to Tennocon-related activities, but I did manage to get some extra features working, like opening a menu from the option button, which will toggle between Automatic modes and Manual.&lt;/p&gt;

&lt;p&gt;That's it for this week, and hopefully next week I get these bugs fixed and I can show what the next visual pass looks like. Until next time!&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br&gt;
Dan&lt;/p&gt;

</description>
      <category>rive</category>
    </item>
    <item>
      <title>Progress update with pics!</title>
      <dc:creator>Dan Dahl</dc:creator>
      <pubDate>Sun, 13 Jul 2025 20:26:14 +0000</pubDate>
      <link>https://dev.to/magipunk/progress-update-with-pics-1fio</link>
      <guid>https://dev.to/magipunk/progress-update-with-pics-1fio</guid>
      <description>&lt;p&gt;Hey folks,&lt;/p&gt;

&lt;p&gt;So I feel like I've made some decent progress over the last week. My UI is looking polished, and I've got Rive's view models working in all sorts of interesting ways. I've got hooks to expand the grid one row at a time, set each cell to a specific event, and flip the current cell between events, useful for skill procs and such. There's hooks for changing the terrain and stars, and animations for most of these things. &lt;/p&gt;

&lt;p&gt;I'm currently working on a typewriter effect for the text, and I'm going to try and work on a way so that it auto-completes if you tap the white space in the text area as it's typing. So without further adeu, here's my most recent UI for my quest system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowtexbhlcfvpknaifbim.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowtexbhlcfvpknaifbim.png" alt=" " width="269" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'll delve more into the system intricacies in future updates, as I get around to implementing them. That's it for now though, thanks for following along!&lt;/p&gt;

&lt;p&gt;Cheers, Dan.&lt;/p&gt;

</description>
      <category>rive</category>
      <category>gamedev</category>
    </item>
  </channel>
</rss>
