Breaking
February 7, 2025

Hack On Self: Quest System Basics Arya Voronova | usagoldmines.com

Whenever I play an RPG, whether it’s Fallout or Cyberpunk 2077, I complete every single quest available to me. The quests grab my attention in an unprecedented way – doesn’t hurt that there’s rewards and progression markers attached. Of course, these systems are meticulously designed to grab attention, making sure you can enjoy the entirety of the game’s content.

Does quest progression in an RPG tangibly impact my life? No. Do they have control over my attention? Yes, for sure. My day-to-day existence is the opposite – my real-life decisions impact me significantly, and yet, keeping attention on them is a struggle. Puzzling, disturbing – and curious. I feel like I’ll never forgive myself if I ignore this problem any longer.

So, I wrote a simple quest system prototype. As usual, it worked, it failed, and it taught me things. Here’s how I did it.

Adjusted To Self First

Quick prototyping is a bane of mine, and I’m forced to study it – I can only spend so much time on any given topic before I can barely pay attention to it. So, no fancy UIs, no roadmaps, I’m writing software that has the lowest interaction resistance possible for me specifically.

My laptop remains my platform of choice – I’m no phone app developer, really, I hate developing for smartphones. Modern smartphones are content consumption machines first, everything else second, and it feels like the user’s actual wellbeing is barely in the top 10. Besides, typing on a physical keyboard is the fastest prototyping and hardware interaction method I know. Smartphones no longer have physical keyboards, you know, the focus on content consumption means that screen real estate is king.

Oh, and I do have Notepad++ constantly open on my laptop! What about storing my quests in a text file, say, quests.txt, in a somewhat computer-friendly format? Then, a constantly running program could reads changes from this file, rewriting it when appropriate. Sounds simple enough, and so the parser.py was born.

I had a few wishes for this program. The main one was: never deleting any file contents by mistake or to enforce structure; everything I type into the file is important and can’t be lost. Aside from that, leaving comments on tasks and quests felt paramount, too – the text file isn’t just a data storage, it’s a user interface, and it needs human-friendly features.


At the same time, I needed to make it software-friendly – always parseable and modifiable, letting me do things like automatically marking quest tasks as complete or incomplete, or tying task completion into each other, or auto-marking them, or tying them to real-world events. This resulted in two main features: a rigid-ish structure for quest formatting, and auto-adding machine-parseable quest IDs. Still, I made sure it was easy for me to edit quests and tasks, and put the IDs somewhere they wouldn’t get in the way!

Built, Tweaked, Working

A day-two was spent intensely building parser.py into a self-sufficient prototype, and it grew from 20 lines of parsing code experiment into a full program, left to constantly run in the background monitoring for quests.txt file changes. Then, I split my Notepad++ window into two panes, and put the quests.txt document into one of them, open semi-permanently – thankfully, my laptop screen is wide enough for that.

Easy enough to use day to day, always at my fingertips, collecting data – this script satisfied a few of my human-friendly device design guidelines. I went on making new quests and adding tasks as I remembered them, as well as updating the script itself, adding features and fixing bugs as needed. For brevity, I’ll call this whole process “questing”.


The most useful feature, without a doubt, was auto-sorting quest tasks, so that completed tasks would immediately go to the bottom of the quest’s task list – way easier on the eyes. Another feature was task completion/clear logging, as usual, JSON separated by newlines – which unexpectedly gave me timestamps that helped me remember and track time-sensitive medication.

Some features were less expected but still necessary. I am intimately familiar with data loss, so I wrote a quick quests.txt backup script, and added a daily task for myself – do backups. As luck would have it, I accidentally deleted half of the quests.txt file contents, just as I was about to back it up. So, I had to spend about an hour restoring the file state from the day-old backup file and task log items – those really came in handy!

I’ve used the script for about a month – quite a jump from the “two weeks constant”. A lot of smaller hack-on-self projects stay in my life for two weeks at most – any longer than that, and I struggle to pay attention to them. This one worked for longer – a very good sign. Most importantly, even though I’m currently not using this questing system, I keep mentally coming back to it throughout my days, and my main thought is “wish it worked better for me right now”.

A Focus Point

The best thing about this questing system, I started building habits at a surprisingly fast rate. This was genuinely shocking, in all of the good ways, and seriously reassuring. The questing system helped me find some extra focus – as long as I stayed within the “dailies” quest, that is.

One thing about .txt file as frontend – to have the file be processed, I need to Ctrl+S, alt-tab to other program, alt-tab back, and click “Yes” in this box.

The “Dailies” quest was the only one that actually worked all throughout. As I’ve added quests and tasks, the file grew a ton, currently sitting at 530 lines. Well, my screen fits 40 lines at a time, so most quests stayed always out of reach, easy to forget – just the Dailies quest has 80 lines. There was no ability to highlight tasks I wanted to suggest to myself, or to make a task stand out as more important.

The main limiter this questing system was definitely the UI – the more it grew, the harder it was for me to scroll through the text file and notice the tasks I needed to do. In a way, the system was a good augment, helping me overcome my struggles with Doing All The Things I Want Done, until it grew to the point where it no longer gave me a consistent single point of focus, an always-accessible line in the .txt file that I could look at to spot my daily-tasks-to-do. It’s a predictable limitation of the text file UI, and I could only push it so much.

There was another fun failure mode: the more I used the script, the more I did things in the real world, the less I’d be spending next to my laptop. On days where I wasn’t next to my laptop, the script’s powers would break completely, of course. Basically, the more off-my-laptop tasks I was doing, the less my script would work – so much for helping me exercise, move, and get out more!

“Dailies” were the most fun part of the system, still – as I’m writing this, I’m becoming more and more certain that this UI could work well for me again if I did a few more upgrades to it and limited it to the “Dailies” quest. So, same interface but less overwhelming, a tighter focus, and a few more most-needed ease of use features – feels like I should try that out sometime soon!

Lessons

A lot of fruit lays unpicked on the parser.py field, even with the current text-file UI. Automatically marking all of the “Dailies” tasks completed on a “start of day” trigger, for one! Reminders for medication. Tracking ‘underappreciated’ daily tasks, giving me summaries or notifications that point out ‘daily’ tasks I’ve been neglecting but might still want to do. Quick action keybinds for common actions, just like I do with my anti-crash and anti-distraction scripts, so that I can quickly mark common tasks as completed – without having to unlock my laptop, find the task in the file, and mark it as complete. Graphing of my activity, too, of course it always feels like graphing my data will give some good insights, but it’s not easy for me to do just yet – hopefully it will be easy soon!

No regrets on picking text file as the UI&backend for the initial prototype, though! I’d do it the same all over again – the flexibility has really helped. I even think that a text file format is a great UI for desktop using the quest system – as long as it’s not the backend, so, the quests are actually stored somewhere else. Basically, an editing option, or a human-readable backup format, we could always use more of those.

What about features I could implement given a different UI and backend? More context sensitivity, for one. For example, suggestions on tasks to do depending on how long I’ve been awake, where I am physically right now (home/work/travel/etc), and other context that’s relatively easy to get but still missing. Cross-device task control and sync. Perhaps, the most fun aspect – a “points”/”levels” score keeping system, maybe even with “streak” features!

The concept works, even if it struggles to scale. It needs a better UI, a way more well-suited backend, tighter integration into my day-to-day life, influencing me in a more context-aware and kind way. Quests are good, the current system is good, and it will work better after an upgrade. In particular, you are soon to see a way more suitable and flashy user interface – as always, stay tuned!

 

This articles is written by : Nermeen Nabil Khear Abdelmalak

All rights reserved to : USAGOLDMIES . www.usagoldmines.com

You can Enjoy surfing our website categories and read more content in many fields you may like .

Why USAGoldMines ?

USAGoldMines is a comprehensive website offering the latest in financial, crypto, and technical news. With specialized sections for each category, it provides readers with up-to-date market insights, investment trends, and technological advancements, making it a valuable resource for investors and enthusiasts in the fast-paced financial world.

Recent:

Growing a Gallium-Arsenide Laser Directly on Silicon Maya Posch | usagoldmines.com

Hackaday Podcast Episode 307: CNC Tattoos, The Big Chill in Space, and PCB Things Al Williams | usag...

This Week in Security: Medical Backdoors, Strings, and Changes at Let’s Encrypt Jonathan Bennett | u...

Split-Flap Clock Makes a Nice Side Quest in Larger Project Dan Maloney | usagoldmines.com

Quix Furniture for Modular Furniture Fun Navarre Bartz | usagoldmines.com

RC Cars With First Person Video, All With An ESP32 Jenny List | usagoldmines.com

Solid Tips for Designing Assistive Technology (Or Anything Else, Really) Donald Papp | usagoldmines....

Social Engineering Scams Costing Coinbase Users $300,000,000+ per Year: On-Chain Analyst Mark Emem |...

Young Hacker Used ‘Glitch’ To Steal $48,800,000 in Crypto From Trading Platform KyberSwap, Allege Fe...

Bank of America Sued for Allegedly Short-Changing Customers With ‘Bait and Switch’ Credit Card Tacti...

T1 is a RISC-V Cray Al Williams | usagoldmines.com

Running Doom on an Apple Lightning to HDMI Adapter Maya Posch | usagoldmines.com

A Great Use for AI: Wasting Scammers Time! Al Williams | usagoldmines.com

Lorentz Cannon Fires Lightning Al Williams | usagoldmines.com

How Do We Deal With Microplastics In The Ocean? Lewin Day | usagoldmines.com

Lorem Ipsum 36? Dolor Sit Amet Keyboard! Kristina Panos | usagoldmines.com

Lorem Ipsum 36? Dolor Sit Amet Keyboard! Kristina Panos | usagoldmines.com

A Tube, The Wooden Kind Al Williams | usagoldmines.com

This Thermometer Rules! Jenny List | usagoldmines.com

Making Products for Fun and (Probably No) Profit Navarre Bartz | usagoldmines.com

Investigating Electromagnetic Magic in Obsolete Machines Bryan Cockfield | usagoldmines.com

Good-Looking HAT Does Retro Displays Right Kristina Panos | usagoldmines.com

FLOSS Weekly Episode 819: Session, It’s all Abot the Metadata Jonathan Bennett | usagoldmines.com

Investigating Why Animals Sleep: From Memory Sorting to Waste Disposal Maya Posch | usagoldmines.com

Hacking the 22€ BLE SR08 Smart Ring With Built-In Display Maya Posch | usagoldmines.com

What Happens If You Die In Space? Lewin Day | usagoldmines.com

Breaking: USPS Halts Inbound Packages From China and Hong Kong Tom Nardi | usagoldmines.com

Breaking: USPS Halts Inbound Packages From China and Hong Kong Tom Nardi | usagoldmines.com

How 3D Printing Helps Bring USS Cod Memorial to Life Tom Nardi | usagoldmines.com

Custom PCB is a Poor Man’s Pick and Place Dan Maloney | usagoldmines.com

Bank Employee Allegedly Drains $2,300,000 From Bank Accounts in Massive Fraud Scheme: Report Alex Ri...

The Lowest-Effort Way Yet To Make 3D Printed Lenses Clear Donald Papp | usagoldmines.com

Inside Project Delilah Al Williams | usagoldmines.com

What Is the Hour? It’s XVII o’ Clock Kristina Panos | usagoldmines.com

Cyberbass Brings Bass Guitar To Modern Era Bryan Cockfield | usagoldmines.com

What Is the Hour? It’s XVII o’ Clock Kristina Panos | usagoldmines.com

Telling Time Used to be a Ball Al Williams | usagoldmines.com

Telling Time Used to be a Ball Al Williams | usagoldmines.com

Freedesktop and Alpine Linux Looking for New Hosting Maya Posch | usagoldmines.com

A Closer Look At The Tanmatsu Jenny List | usagoldmines.com

Homebrew Foil and Oil Caps Change Your Guitar’s Tone Dan Maloney | usagoldmines.com

Understanding the T12 Style Soldering Iron Tip Maya Posch | usagoldmines.com

The Clever Design Behind Everyday Traffic Poles Heidi Ulrich | usagoldmines.com

Bicycle Adds Reliability With Second Chain Bryan Cockfield | usagoldmines.com

More Details On Why DeepSeek is a Big Deal Donald Papp | usagoldmines.com

Communicating With Satellites Like It’s 1957 Bryan Cockfield | usagoldmines.com

Examining the Vulnerability of Large Language Models to Data-Poisoning Maya Posch | usagoldmines.com

Underwater Robotics Hack Chat Dan Maloney | usagoldmines.com

Keebin’ with Kristina: the One with the Keyboard Configurator Kristina Panos | usagoldmines.com

A Cordless Soldering Iron With A Difference Jenny List | usagoldmines.com

USB Hub-A-Dub-Dub: Weird Edge Cases Are My Ruin Lewin Day | usagoldmines.com

BLE Rain Gauge Sips Water and Batteries Al Williams | usagoldmines.com

Stepper Motor Operating Principle and Microstepping Explained Maya Posch | usagoldmines.com

Do, Dare or Don’t? Getting Inked by a 3D Printer Heidi Ulrich | usagoldmines.com

How the Main Frame Became the Mainframe: an Etymological Dissertation Maya Posch | usagoldmines.com

Hackaday Links: February 2, 2025 Dan Maloney | usagoldmines.com

Is Fire Conductive Enough To Power a Lamp? Maya Posch | usagoldmines.com

Giving a Proprietary Power Supply the Boot Al Williams | usagoldmines.com

Wearable Tech Tips Directly From the Queen Kristina Panos | usagoldmines.com

Custom Smartwatch Makes Diabetes Monitoring Easier for Kids Dan Maloney | usagoldmines.com

Tiny RC Four-Wheeler Gets Chassis Upgrade For More Traction Lewin Day | usagoldmines.com

Inside a Vintage Oven Controlled Crystal Oscillator Maya Posch | usagoldmines.com

Using Microwave Heating to Locally Anneal CNT-Coated FDM Prints Maya Posch | usagoldmines.com

Could Non-Planar Infill Improve The Strength Of Your 3D Prints? Lewin Day | usagoldmines.com

Taking A $15 Casio F91W 5,000 Meters Underwater Maya Posch | usagoldmines.com

Billion-Dollar Bank Allegedly Loses $15,500,000 To Criminals in ‘Shocking’ Display of Incompetence a...

RedBox In The 80s: Meet The VHS Vending Behemoth Lewin Day | usagoldmines.com

Billion-Dollar Bank Says Account Numbers, Names and Other Sensitive Info Exposed As Insider Triggers...

Time vs Money, 3D Printer Style Elliot Williams | usagoldmines.com

Casio Calculator Gets New Keyboard Al Williams | usagoldmines.com

Antique-Style GPS Looks Like Steampunky Fun Lewin Day | usagoldmines.com

A New Case and Keyboard For The Timex Sinclair 1000 Lewin Day | usagoldmines.com

Electroplating DIY PCB Vias At Home Without Chemical Baths Maya Posch | usagoldmines.com

US Senators Accuse JPMorgan Chase, Bank of America, Wells Fargo, Citibank, US Bank, PNC and Truist o...

Automating The Process Of Drawing With Chalk Lewin Day | usagoldmines.com

Why Not Build Your Quadcopter Around An Evaluation Board? Lewin Day | usagoldmines.com

Winter-Proof (And Improve) Your Resin 3D Printing Donald Papp | usagoldmines.com

Hackaday Podcast Episode 306: Bambu Hacks, AI Strikes Back, John Deere Gets Sued, and All About Capa...

Ancient Pocket Computer Gets a USB-C Upgrade Lewin Day | usagoldmines.com

This Week in Security: DeepSeek’s Oopsie, AI Tarpits, And Apple’s Leaks Jonathan Bennett | usagoldmi...

A History of Copper Pours Al Williams | usagoldmines.com

Handy Online Metric Screw, Nut, and Washer Generator Donald Papp | usagoldmines.com

The Jell-O Glow Tensegrity Toy You Didn’t Know You Needed Heidi Ulrich | usagoldmines.com

Patching Up Failing Hearts With Engineered Muscle Tissue Maya Posch | usagoldmines.com

Copper Candle Burns Forever… Just add Fuel Al Williams | usagoldmines.com

Comparing Adhesives for Gluing PETG Prints Maya Posch | usagoldmines.com

Retrotechtacular: The Tyranny of Large Numbers Dan Maloney | usagoldmines.com

Digital Paint Mixing Has Been Greatly Improved With 1930s Math Lewin Day | usagoldmines.com

A 1962 Test Gear Teardown Al Williams | usagoldmines.com

Forgotten Internet: Giving (or Getting) the Finger Al Williams | usagoldmines.com

RGB LED Display Simply Solves The Ping-Pong Ball Problem Donald Papp | usagoldmines.com

Lessons Learned, When Restoring An Amiga 1000 Jenny List | usagoldmines.com

Inside Vacuum Fluorescent Displays Al Williams | usagoldmines.com

Using Guanella Baluns As Impedance Transformers Maya Posch | usagoldmines.com

Going Brushless: Salvaging A Dead Drill Heidi Ulrich | usagoldmines.com

FLOSS Weekly Episode 818: I Don’t Care About the Roman Empire Jonathan Bennett | usagoldmines.com

Taylorator Makes Mischief on the Airwaves Tom Nardi | usagoldmines.com

FLOSS Weekly Episode 818: I Don’t Care About the Roman Empire Jonathan Bennett | usagoldmines.com

Supercon 2024: Joshua Wise Hacks the Bambu X1 Carbon Elliot Williams | usagoldmines.com

Paper Tape – With LASERs! Jenny List | usagoldmines.com

Leave a Reply