Dev log update! Save, Load, Restart
Added 2019-04-17 22:27:16 +0000 UTCHello all! This is the weekly dev log. This one is a little weird. On one hand I did a lot of work, on the other, I undid a lot of my work. I think the coolest thing about this week is I added save/load functionality. Now, you can play for a while, quit, and return to where you were. I planned on doing this MUCH later, but it was a frequently requested feature so I decided to work on it sooner. That's a good sign! The game is already liked well enough that people want to return to it :)
The major thing I'm working on right now is the concept of an equipment catalog. At the end of each day, you'll have a random list of equipment you can buy. Each one is associated with a need, and if you own the equipment, then whenever that need pops up while playing, instead of having to do the work, you get the rewards for free!
I thought it might be neat to show some weekly stats? It'll motivate me to keep looking at them, and it might be interesting to others.

This is for the last two weeks. The left vertical axis shows how many users there were that day, and the right shows how long they were playing that day (on average). I thought the metric I should be trying to improve is Avg. Session Duration (00:12:21). I mean, the longer people are playing, the more likely they are to be enjoying it, right? But you can see from the green that the majority of people playing are returning to the game. I think it's plausible a lot of people are returning, realizing they lost all their progress, and then quitting shortly after. That's probably something I can figure out with this data, but I don't know how. I'd love to make this top graph have one line for average session duration of new users and another of average session duration of returning users.
I did notice that there are 8 out of 54 people (15%) who played the game for exactly 0 seconds, so I'm sure that's bringing down the average by a lot, too. I'm not sure how you can play for 0 seconds... that might be a bug in my code.
Here's this week's dev log in all its glorious detail:
- Remove the concept of mortgage payments - I figured, there are tons of games out there where you can't lose, so why can't my game be one of those? It'll be no fun to play for an hour or more and then you can't make your mortgage payment, and then you have to restart. So I decided to remove the concept of mortgage payments. (You'll see below that I undid this and I'll explain why)
- The build should use a git sha and a build number - I got some feedback that the game doesn't move fast enough and there were times where all there is to do is wait for the next need to pop up. After receiving this feedback, I went through this internal monologue: "I thought I already addressed that? Wait, maybe they're playing on an old version that's before that fix? No. Hm, they're using the latest version. But maybe I made this change after the latest build so it's not in his build yet? How do I figure that out? Shoot... I made it really hard to answer these questions."
My solution to this problem is to include the most recent change in the build file I send to people. I also have a list of the order in which I complete features. With this information, I can look at the latest change of the build I sent to someone and figure out what changes happened before and after it, thereby answering all the questions above. - Bug: The pause screen is behind the "completed your task" smiles.
- Create a save/load feature - These 5 little words were a really big undertaking. Each time you start a level or go to the upgrade page, the game auto saves and you can load from there if you quit.
I tried to put this off as long as possible, because every feature from now on will require me to think about if the data will save correctly, and that takes a lot of time to address. But, for obvious reasons, people want this feature, so it'll be worth it. - You can't load saves from previous versions - I decided to make it so that if you play a different version of the game, you can't use your old save. Eventually, you'll be able to load saves from different versions, but right now, I don't want to put in the effort to make all saves backward compatible.
- Add a label saying the game autosaves - Figured people would want to know this. I should definitely put a fading label somewhere that says "Autosaving" so people know when this occurs, but I haven't done that yet.
- Now there will only ever be one hold per need - This is an interesting situation. There were bugs where if you held a button but did not release it and then press another button, you could work on two hold buttons at the same time. There were lots of other issues around this, too. Rather than address them head on, I decided the simplest solution is to have a new rule: Each need can only have one hold. (You'll see below that I undid this and I'll explain why)
- Bug: The clock progress bar is full at 3pm, not 4pm - This was actually a visual bug. The progress bar extended past its container.
- Label Change: Instead of "gained 1 level", consider "gained a level".
- Copy scene content from the google doc into the script files - The story scenes had some changes weeks ago due to people giving me feedback. I decided to copy these changes from google doc, to my personal repository.
- There can be multiple holds per need, but they can't be touching - OK, this is where I undid the rule about "Only one hold per need." Instead of that, now you can't have two hold buttons back to back. I believe this solves all the issues.
- Put back the concept of mortgage payments - At about this time, I realized the next major thing I want to work on is the catalog. The whole reason I'm adding the catalog is to add some "player agency": Choices that affect gameplay. I think having the mortgage concept makes the catalog concept much more interesting, because you have to ask yourself, "If I buy this, will I be able to afford rent this week?" I think that's much more interesting than, "Owning this is good, so it's a no-brainer."
- Have a shortcut to end the day/level to skip to the next scene - Someone was kind enough to give me feedback while I watched them play over video (the best way to get feedback would be looking over their shoulder, but this is second best.) Something that annoyed them was if they wanted to point out something to me in the Upgrades panel, they had to wait 2 minutes for the level to end first. These shortcuts will make their life easier next time they want to give me feedback.
- As soon as you buy a need, it's equipped and you can't unequip it. That means if you buy 5 needs, you'll randomly get one of those 5 picked. - My hope is this will create an interesting interaction between needs and equipment. It might become overwhelming to have to remember X needs per character, but buying equipment can offset that so you don't have to deal with all the variations at once. Just as important, this change simplified the UI by a large degree.
- You can't see some upgrades and they're pre-owned (e.g., the Hose for maintenance) - Since I removed the concept of "active needs" above, I had to somewhere associate which needs you own. I decided to associate that with upgrades. Below, I refactored this to make much more sense. I wouldn't really say this was a step in the wrong direction: It was a step that allowed me to focus on the important thing at the time (all owned needs are active) and delay thinking about less important things (how do I represent needs that aren't associated with an upgrade?)
- Create a catalog page on the upgrades scene. It only has a back button
- Needs can be owned. You don't have to own a need through an upgrade (e.g., Maintenance's Hose need) - Ah, this was a nice refactoring. OK, so now you OWN Upgrades and you OWN needs. Makes sense, right? Before this change, you only owned Upgrades, and if that upgrade had a need, that meant you owned the need, too.
- Remove the concept of "invisible" upgrades - Due to the above refactoring, there no longer needed to be a concept of "invisible" upgrades. Upgrades that you can't see, but you own, because they're associated with needs that you should own.
- The catalog page shows a random random list of needs when you visit it. - I'm starting with just showing needs, but eventually each need will have some equipment associated with it, and that equipment will be rendered. Until then, I'm just rendering the need data, though.
- Old catalog items are cleared when you visit the catalog a second time
- Do not include "Test" needs in the list of catalog items - I have a bunch of needs that only exist to test functionality. These needs should not be randomly available in the catalog, though.
- The random list in the catalog only changes every day - It used to be every time you view the catalog, you see a new random list. With this change, it's random every day, but if you return to it over and over again on the same day, you always see the same items in the catalog.
- When you load a save on the upgrade page, the list of catalog items is the same as it was - This was really, really tricky. I had a bug where if you would save the game then reload it, you'd have a new list of catalogs. I decided to fix this now, so that people can't use it to cheat and get whatever catalog items they want.
- Figure out why tests that load saves are giving warnings - When I ran all my automated tests, I would get warning messages. I've figured out why and prevented the warnings from occurring.
Phew, that was long! Maybe too long? I'm going to ask the $1 pledges after this if I should cut these shorter.
Regardless, I hope you're having a great day!
Comments
Yep!
Bawdy Ink Slinger
2019-04-18 00:00:30 +0000 UTCNevermind. The mortgage and all is part of Monster Girl Farmer, right?
Rycharde's Realm
2019-04-17 23:59:52 +0000 UTCHeh, this is all for my new game, Monster Girl Farmer :)
Bawdy Ink Slinger
2019-04-17 23:58:48 +0000 UTCRycharde's Realm
2019-04-17 23:37:21 +0000 UTC