What would you need/want in a Chore/Habit Management Tool?

Hello again! As I said in my first post here, I am working on building a habit-tracker/productivity program in Twine and slapping a game (of some sort) over the top of it to make it more engaging. I’ve been fiddling with the code for the past week or so, and I think I have what I need as far as making it functional… but for right now, what I have will make it functional for me. As in, if I were to build it to completion at the moment it will do nothing but track the chores and activities I’ve put in because I want to track my own accomplishment of them and make sure I’m doing them.

My next goal is to make this thing a more generically and universally functional system, which means I need to create a set-up method where the user can pick and choose what their own necessary chores and activities are for tracking. Which means I need your input, so I can add onto my current list:

Please think in terms of “what would I use this to help me do,” because I’m trying to make this something that will help establish good daily habits and make for a beneficial self-accountability tool in addition to the inevitable fetish element that I eventually plan to throw over the top of it. I plan on releasing the base-line program as a free thing separate from the game, just because I feel like it can be of use in and of itself, and then working to layer iterations of gameplay over the base habit/productivity “engine” afterwards. That way I can also debug the core and refine it for better usability from the start while I’m working on the more complicated game elements/CSS UI stuff.

Thanks for reading, and I hope you have something to add which can help me make this useful to you!

9 Likes

Here are some, check email, daily reading, call a friend, bully an enemy, cook, exercise, jog, lift weights, zoomba, write a poem, visit the park, check linkedin, read the news, write a chapter, update diary, get kid to/from day care, wash car, meditate, shave, take nap, play with dog.

3 Likes

Ignoring like actual actions. The thing that matters is an easy way to weigh up pros and cons, and knowing what goals I need to move towards. Making sure that it’s easy to figure out and how to balance these actions is key to avoid just getting frustrated.

1 Like

Hm… okay, from your response here it occurs to me that I might not have been 100% clear what sort of thing I’m making here. So let me explain!

I mentioned in my first post about ChoreWars and Habitica, but I didn’t directly link them yet in this thread - and that’s something akin to what I’m building. Doing tasks isn’t something you actually do in-game (though I have played with the idea of something Stardew Valley-esque, where the player’s cleaning in the real world is abstracted into something like cleaning weeds out of the fields), it’s the way you as a player interface with the game which is going to be layered over the top of the task/habit system. Basically, my goal is to make a game where you are rewarded for doing real-life, real-world things which aren’t necessarily pleasant to do via in-game reward systems.

Optimally, I intend to iterate towards a system which uses the psychological hacks associated with dark patterns in games - time gates, daily quests/logging rewards, and so on - to motivate self-improvement behavior instead of buying whatever in-game currency allows for the next gacha pull. That… probably won’t be the first game I make. The first one’s probably going to be quite linear, and mostly built around “do items on your to-do list to advance a storyline.” But that’s my goal, and I plan to get there by building ever-more-complicated games over the top of the core chore/habit tracker base.

This is to say… there isn’t necessarily a way to list the pros and cons of the actions, because you accomplish them by actually doing them. If the action is “mop the floor,” the pro is… you mopped the floor. In your own home. Clean floor! And by reporting that you did so, you get something from the game. The con is… you had to mop the floor. In real life.

Obviously, this is a style of game which depends strongly on player buy-in. You could just… lie. But that’s no different than people using save editors to modify their files on other Twine games, or the console in Ren’Py. People cheat through the grind in games all the time. My goal is to make the “grind” be things that the players consciously decide that they should be doing, like chores or personal projects or self-improvement/self-care actions, so that the game can nudge them towards that desired action with a structured reward system. Think of it like… doing chores to earn your allowance, but your allowance is paid in sexy.

That’s why I’m looking for more things that people would actually put on their own personal lists of chores, so I can make things more universal. If you don’t take daily medications, or don’t struggle with remembering to take them, having that on a list of things for you to do is pointless and doesn’t help you reinforce a desired behavior. As soon as I get a good list (and @BadIdea4, your ideas are great contributions!) I intend to make a starting set-up system where the player chooses what they need to work on and set how often (daily, weekly, monthly, or just “eventual goal”) they want to be doing it.

4 Likes

The one big thing that I think is missing here is work assignments / studying

3 Likes

Okay! So I’ve compiled the suggestions I’ve got so far, and added a few more I’ve managed to get from other sources. Here’s the current list, in a somewhat-reorganized state:

Just checking to see if anybody else has any more suggestions to put in before I start assembling the “design your own to-do list” system, since unless I stumble upon a graceful way to assemble all of this in a manner which can be universalized as a Javascript function or Twine widget I can call on-demand it’s probably going to be a pain and a half to shoehorn new tasks into the system after the fact.

2 Likes

“Fill a trash bag” might be a good one to have, though I suppose it might fall under the “Empty Trash” option.

Also, I am curious about how you are planning on going about the task assignment system. Will it assign a set of tasks every day? If so, how is the system measuring the time? I don’t imagine that a player would keep it open at all times, so using some sort of internal clock wouldn’t necessarily be unreliable, and I’m not certain how one would make an external time-tracking system in Twine (though I don’t have nearly the amount of programming knowledge as you do).

As for making it so you can add new tasks, a system of arrays and passages could probably a fairly decent method for making the task list in the game. That way, every time you add a new task to the game, you just need to add it to the Array and make a Passage for it. As stated before, most of my knowledge is gathered through tutorials and self-teaching in Twine, so it may be a rather primitive method, and may simply not be compatible with what you’re wanting to do.

Can’t wait to see what you come up with. I could certainly use more methods of motivation.

1 Like

That’s… actually a really good point. I tried to generalize tasks as much as I could (for instance, turning all social interactions into a basic “Socialize” task), but I missed that one. I’m going to rephrase “Empty Trash” as just “Trash,” which should be generic enough to be clear as both “cleaning up garbage” and “taking bags of garbage out of the house.”

My plan is to treat this more as a habit checklist or productivity tracker, so my current implementation is to have the player select the tasks they wish to perform (“I want to track cleaning the cat’s litter-box”) and how often they want to be doing it (“I want to clean the litter-box daily,” versus weekly or monthly or what have you). At that point, the system I’m building will have “clean the litter box” on your list alongside how long it’s been since you last did it (my current system is just based around check-boxes, so “☐ Clean Pet’s Litter (last done X days ago)” - changing if you manage to keep a streak going to “☐ Clean Pet’s Litter (on Y-day streak!)”). My goal is to encourage the player to do more via using gamification methods, so artificially culling the task-list via randomization is counter-productive. There is a case to be made for picking a random not-on-streak task and implementing a daily “goal” system, however. I’ll need to mull that over for future iterations. Goal one is just to get the tracker itself built to functional first.

Well, I’m 100% standing on the shoulders of giants in this case. Somebody made this amazing tutorial for importing date elements into Twine - though really, the whole thing has been remarkably useful. For the first thing I’m making, I’m keeping it simple and having the player tell the system when a day is over - this iterates the date element and all the other various trackers. In following versions, where I intend to get more complex with the mechanics of the game… one of the things I’ve been tossing about in my head is to preempt most passage loads with a call to compare the date as set in “Current game date” with a newly-pulled date object. If the pulled date (excluding time) is greater than the “game date” variable, automatically jump the whole game to a “new day has dawned” break-passage. Basically, while I can’t track time - nor do I necessarily want to - I can absolutely make the game system watch what day it is and react as it changes.

(This is obviously subject to player manipulation via system clock, but… as I said above, I’m relying on a level of player buy-in because you could easily just lie about your own actions to speed-run the content if you wanted. If you’re already manipulating the clock on your computer just to not have the day turn over, you can instead just click that you did things you didn’t actually do. My intent is to make there be no meaningful penalties for “failure,” because that is discouraging for what is intended to be a system meant to build positive habits, and instead focus on rewarding accomplishment.)

To be honest, I’m learning Twine from scratch here. My schooling was in building web front-end, and so most of my knowledge is in CSS and HTML - with enough JavaScript to make things look professional and send the appropriate things to/from a back-end database. Plus I haven’t touched anything related to my lessons in… like, four years. Long enough for a lot of this to atrophy. I can certainly still make a webpage look pretty, but there’s a lot of trial-and-error going into making it functional first. So even simple things like “maybe you should use arrays” are helpful. I’m going to have to look into what I can do with constructing arrays in Twine so I can call elements to build the checklist system, instead of having to build it using just a horde of stand-alone variable sets. That will certainly make it more modular. Thanks!

[EDITS- Typos & grammar]

1 Like