Playtests And Next Steps


Well, we survived another week. Last week I released a rough cut prototype for Blessings of the Forge to see what people think of the idea. If you tried the game, you probably saw what I meant by rough cut. When I first released it on Friday, there were a good number of bugs that I felt really interrupted the gameplay. So, I spent the first couple of days working on debugging the game and making it more playable. After that I started working on some new pieces of the game, and planning out the next phase of the project. In this post I hope to cover how the playtests went, what I got done this week, and what the next phase of the project entails.
Okay, so how did the playtests go? Well... it was pretty mixed from what I could tell. I got a few people to try the game, but not as many to fill out the feedback form, so I feel I still need more data to really know how people felt. On top of that, the number of bugs, lack of some feedback systems, and unclear controls I think took away from the experience for players to really get a feeling for the game. But, from what I saw and got in feedback on the form, when people were able to make a sword, they had a good time with it. I also think clearing some of the bugs helped a lot. It is really disrupting to be half way through forging something, then having to restart the game because of a bug. But, we got that one, and the bugs that are still there are rarer edge cases rather than main parts of the game. (Pro tip, don't try and put a crucible or blade into the chest... still need to figure out what to do with those)
The main bug that took a while to fix was the forge randomly dropping to negative infinity. This one was really tough because I couldn't consistently break it. Because of this, I had to just guess where the error was in the code to try and track it down, which took a solid few hours. So, what was the error? Well, as those more mathematically inclined might've guessed, I had a divide by 0 error. (Generally in math, the closer you get to dividing by 0, the more the number approaches infinity) That's great, but where in the heck am I dividing by 0? I looked through the forge code and couldn't find anywhere that might've caused it. After a lot of debugging I was able to track down that randomly a piece of fuel's data would get messed up. Okay... but why is that happening? Well, after a lot more time I found it. I have two functions that are called when a piece of fuel is catching fire. The main script does the math for the rate of catching for that piece of fuel. The other script is called when the surrounding temperature (temperature of the fire the fuel is in) is greater than the fuel. Basically, I wanted to make sure the piece of fuel would get extra temperature from both scripts, so I put the other script ahead of the main one. When the forge temperature was super high, it would finish catching the fuel in the first script, then the main script would try and divide using one of the data values that the first script would set. This would in turn divide by 0 causing the entire system to mess up. So I simply put in a flag to make sure it hadn't finished getting caught before calculating the temp in that function.
This is honestly the hardest thing about system programming. When you create a system, you also can create strange edge cases that can cause crazy bugs that seem to make not sense. While that can be frustrating, it is also the humbling thing about programming. The machine is rarely the issue, and that can be really jarring if you're used to blaming things on the world around you. Most of the time when you track down a bug it comes down to you not managing your data somehow and when you see it, you see why it would be no other way for the code to run. Well, now that is done, my game is hopefully a little more playable.
Alrighty, time for the fun and more interesting stuff. What did I do this week and what's next for the game? It took me a bit to be able to really sit down and continue development because I felt I didn't really know what was next. I instead took some time to look at where I was and where I want to go with the game. This prototype is one of 3 core mechanics I feel my game needs. The other two are alloy creating, and shop management. With all the bugs that the game has, the art that still needs to be done, and plenty of other things, I'd like to get some of that cleaned up and then do some more play tests before really determining if I want to do a full development cycle with this game. So, the next main step is cleaning up what I have significantly and getting alloy creation added. This includes fixing the art (half the assets are in half the resolution of the other half), add in some much needed feedback systems, add a couple of other minor mechanics that will help game feel, and get alloy creation working. This alone is a lot and that's not even including the shop management side of things.
For now I am setting an ambitious goal for myself of two weeks to do most of this. While the prototype wasn't everything I had hoped it would be, I do feel it grew me as a dev. I had to cut things that weren't important and just get things working. My code didn't have to perfect, I didn't have to make sure everything would have room for ambitious plans to get running months from now, but it just had to work. I want to keep growing that skill. I can often fall deep into analysis paralysis trying to make sure everything is setup for larger, more ambitious plans. I think the time crunch really pushed me outside of that, and even this week I noticed how much easier it was to add content even with spaghetti code. It's also interesting because functionality I spend a long time trying to think of elegant solutions for, I am now getting more comfortable just working with the slightly tedious, but still fine solution. So, hopefully by my next post I will have alloy creation completed. We shall see what I get done because I still have a lot of work ahead of me.
Now, what did I actually get done this week? Well, after planning and getting my head around next steps, I have started two things. First is redoing the station art. I've gotten the crucible table redesigned and started on the anvil and forge. I'm excited to get them done and see how the game looks and feels with that and the character redesigned (Sorry to those who like his current design. Hopefully the higher resolution won't change too much) On top of that I started working on a much needed mechanic. I am adding process and work times to the game. So, hopefully once it is implemented you wont be spamming interact and fold a couple dozen times before making your blade. Instead you will be taking the ingot in and out of the forge, heating it up before taking back to the anvil to hammer on it until it is folded, then back into the forge to repeat the process. Doing this for all the stations and processes (Even adding melt and cool times to the metals and such) will add a slightly more immersive feel to the game and make things clearer with what you are doing. This system will also be helpful in the alloy creation mechanic as well, which is why I'm adding it before I do alloy creation.
How does alloy creation work anyway? The way I've designed it I think will be really cool, but is going to be difficult to express to the player during the game. (It's okay tho, I'll figure that out at some point) Basically, you take two different ingots and pop them into the crucible, then put the crucible into the forge. Now, both metals have a range of temperatures that they will react at. Your job is to find their reaction temperature and hold it there for as long as you can. They also have a reaction time (the time it takes for them to react) and if you hold that temperature for that time, they'll react together to create a new alloy. That alloy will be some mathy average of both metals' stats with some bonus (hopefully positive) multiplying them. This means I also will be adding a quality value to the metals, meaning your skill in creating an alloy will determine the quality of you're metal. What this also means is that I can easily make it to where you can refine metals as well. If you just put two of the same metal into the crucible, and find that metal's reaction temperature, you can refine that metal to become a higher quality and increase its stats. I'm hoping this will add a skill based scaling to the game where the player can pretty much create an infinite number of metals out of a small finite number. (Note, refined metals and alloys can then also be mixed together to create newer alloys) I'm super excited to get this mechanic working and see if the game feels much bigger with it added. As I think I've said in previous logs, the trick to this game is really going to be balancing and endlessly tweaking numbers until it feels right.
IF I can get everything I outlined done by the end of next week, I would like to spend the next 2 weeks after that adding some sort of shop management system to the game. I haven't fully figured out this side of the game yet, which is why I am doing the alloy creation first. But to start I think something simple like having a number of customers to serve each day, and maybe a day/night cycle would be a good place to start. I've got a lot of other ideas for the game, like maybe having custom orders that challenge the player, but the player can sell their mediocre swords in their shop while they're trying to make the custom orders. Another idea would be to have people who deliver goods on certain days, making it to where the player has to think ahead of what metals they have and make sure they can buy enough for the next few days. I don't know, but hopefully by that time I will have a better idea of what people like for the game.
A couple of other things that I may try and add in during those two weeks would be a tutorial and a recipe book. I think I'm creating many unique systems and the hardest part for players will be the learning curve. So, getting something in there pretty early on that helps players learn the different systems is pretty needed in my opinion. The other thing I think is needed is some sort of way to track a player's best swords and metals, and keeping notes for the player. Especially if the alloy creation is as significant as I'm hoping, the number of metals a player needs to keep track of the values is going to be much too great to just remember. I also have not fully figured out how this will work, but some sort of journal/ledger/recipe book for storing temperatures, times, and values would be a great help to the player. But, all that is still another week from now, and only if I get other things done this week.
If I can get all of this done over the next month, I will release a new demo for people to try. Hopefully it will be more polished, with clearer communication with what is going on under the hood, and a lot more for the players to get involved in. Then, we will do another playtest, and we will see what people think. After that we will scope out a much longer timeline for the project and add more channels for people to get involved with the development process.
Well, that's it for the playtest and next steps. I am still taking in feedback for the current prototype, so if you haven't given it a try I'd love it if you did. Feel free to check it out and let me know how it went. Thanks!
Get Blessings Of The Forge
Blessings Of The Forge
A Better Way To Smith
Status | Prototype |
Author | Forgotten Throne |
Genre | Simulation |
Tags | 2D, blacksmith, blacksmithing, Casual, Crafting, Experimental, Godot, Physics, Pixel Art |
Languages | English |
More posts
- Metal Refining At Last21 days ago
- A Devlog On... MONDAY?!40 days ago
- Pre-Alpha 1.0 Public Release57 days ago
- Closing The Loop64 days ago
- Out Of The Sauce But Still In The Pan71 days ago
- Lost in the Sauce: Shaders78 days ago
- Pre-Alpha 1.085 days ago
Leave a comment
Log in with itch.io to leave a comment.