Finally made it to devlog number ten and it was cleverly named to commemorate this occasion. I mean it hasn’t even been a full week since the last devlog where I briefly went over my quick venture into learning Lua and using the LÖVE game engine. It didn’t take long to get a good enough handle on the language and to get up and running in Atom. Once I took some time to get accustomed to the language I began to work out the stats for Tiny Mystic in LÖVE.
Before I decided to go to Lua I knew how I wanted to do my stats and how they would improve with each level up. I spent a lot of time studying Golden Sun’s mechanics and researching what stats really are. I wrote countless notes detailing what stats I wanted, what they’d be for, and how they would grow. After some time I was satisfied with what I had and was ready to see it in action, but I wasn’t ready to put it into Tiny Mystic. This is when I decided to use Lua and LÖVE to create a simulation of my battle system. Enter the Tiny Gear Simulator or TGSim for short.
With the TGSim in motion, I was able to lay out a sort of stats sheet for my players. I was able to create a character, modify their stats, and perform a mock level up which would improve their stats based on a given growth grade. I was able to see the stats for a character and how they would improve after reaching certain levels. After running a couple of level up simulations I knew my formulas needed to be tweaked a bit. After much modification, I ended up with five stats for each character and five growth grades that would determine how they would improve when leveled up.
The stats are as followed:
Strength: Measures a character’s physical abilities.
Power: Determines a character’s special abilities.
Agility: Measure a character’s speed.
Endurance: Determines how much a character can handle.
Intelligence: …At the time of writing this, I can’t remember what this was for….Might get scrapped.
Growth grades can be anything from ‘E’ to ‘A’
That’s pretty much all I have for this devlog! This battle system is getting closer and closer to being something tangible and I am very excited. I still have plenty of formulas to work out so I believe I am far from done, but as long as progress is being made who am I to complain? Next, I’ll be working on the damage calculations for the basic attacks so we can actually simulate a battle. It’ll be a fairly basic battle, but a battle nonetheless. Now before I close this devlog out I want to bring attention to Asentrix Studios’ new logo! It’s still a work in progress, but just like Tiny Mystic, it’ll get better with time! Catch on the next devlog and enjoy the rest of your day.
That last devlog was pretty intense! We went over the last two months and where I currently was with Tiny Mystic which was fooling around with the stats and battle mechanics. Unfortunately, we aren’t here to talk about that but rather my adventures learning Lua programming language and using LÖVE. I know what you’re thinking and I am still using Unity3D for Tiny Mystic. This might be a little confusing and I can’t go into all the details yet, but this has much to do with Tiny Mystic. Don’t dwell too much on it and enjoy my small journey into Lua and LÖVE!
When I came up with my grand mysterious scheme, I decided that this would be a good time to learn Lua. I’ve always thought it was a cool scripting language, but I think the greatest thing about it is how easy it was to learn. Since I decided to use Lua I thought it would be nice to use the LÖVE game engine. I found a nice awesome list for LÖVE which led me to this even more awesome tutorial from the people of Sheepolution. In a matter of hours, I was already writing Lua code and working in LÖVE.
My text editor of choice is Atom since it is an application I am familiar with. Luckily there were plugins available that made writing Lua code in Atom a breeze such as a linter and LÖVE/Lua autocomplete. The most helpful plugin was LÖVE-IDE which provided a good bit of functionality. I wanted to try other editors for Lua, but I knew I didn’t have time to try a bunch of programs. Ultimately I felt Atom was good enough for the job and it didn’t disappoint.
I know this devlog is a bit different then what we’re used to, but as I said in the recap I want to start shaking things up. I know there wasn’t much about Tiny Mystic this time and I apologize for that. All this Lua and LÖVE stuff is definitely relevant to what’s going on with Tiny Mystic. The next devlog will open some insight as to what that relevance might be and I can assure you it will be something that we all can enjoy. See you really soon for the next devlog!
[This devlog is still in rough draft mode. I apologize for any spelling errors and grammar mistake. I will take care of them at my earliest convience]
We’ve done eight devlogs and with a devlog every week that means we’ve been working on Tiny Mystic for about two months. While I would have hoped for more progress, I am proud of the progress I made. For this devlog, we are going to go back and look at the what’s been done. We’ll start with the second devlog since the first is mostly my declaration to the world that this project was happening. I had to make a decision to put everything aside to work on this project which meant I couldn’t do game jams or work on other projects. I made a decision to go all in on this project which would be a stepping stone into the great beyond.
When I started Tiny Mystic I decided to look into using Tiled and Tiled2Unity. I’d heard about the software before and thought it might make my job a little easier when setting up scenes. Not only did it make working on scenes a little easier than my previous process, but I found it to be kind of relaxing. Well, it was relaxing up until I had to work on the collisions, but thankfully that’s something that has to be done once. By the end of the week, I had a good idea of how to set up my scenes…Camera and all.
The following week was a difficult one because I had to deal with procrastination and bad coding practices brought on by my day job. This was also the first week I started on the battle system which is what the remainder of this recap will be about. Rereading the 3rd devlog I could tell I was upset with myself for not getting more done, but I did plenty. I used Tiled to set up a battle scene and put together a random battle generator. By the end of the week, you could go into battle and escape by to your previous location. It was a great start to a long journey.
After dealing with constant procrastination I was met with exhaustion the next week. While I don’t remember what exactly went on that week I could tell I was dealing with something exhausting at work. I often have weeks where I come straight home and all I can do is sleep and week four was that week. While I did get work done implementing the combo bar that would allow players to input their attack moves, I was not satisfied that I hadn’t done more. This is when I realized my true battle is with reality because I had to come to terms that sometimes my personal life may have to take precedence over Tiny Mystic, but I would prove that this was not the week. By the time it was all said and done I pushed through and completed the UI and code for the combo system.
Once I overcame some tough obstacle I wanted to jump straight into the mechanics of my battle system, however, I got ahead of myself and realize there was no way to select a target. After reigning myself in from some overly complex selection system, I decided to use a system from a past Ludum Dare game, World Masters. I laid the groundwork for setting up such a system, but quickly switch over to working on my game design document after finding a wonderful template. This was an excellent victory for the week since I never understood how to actually put one together.
After my great victory with the game design template, I was hit with the reality of my sacrifice. I had been waiting all year to enter AGBIC 2017, but I knew taking on Tiny Mystic would prevent that. It was a hard week knowing I wouldn’t be able to participate, but I pressed onward and finished the World Master selection system. Unfortunately, this did not work out as well as I would have hoped, but with some quick thinking I came up with a much better design for the selection system. While the weight of my sacrifice was heavy in my heart, I ended the week one step closer to finishing my battle system.
Coming from a heavy sacrifice I came into this week strong. I was finally about to afford a proper desk for me to work at. Working with the laptop in my lap while sitting on the couch would only get me so far. Of course with a proper place to work, I began knocking out some the task at hand. I had finished laying the groundwork for all the phases of battle in my system which had been named the Tiny Gear System (or TGS). You could go into battle, put in a combo, select a target, and watch them instantly get destroyed. I realized at this point I would need to work on the formulas and math behind my game. I would spend the rest of the week working on that and giving Tiny Mystic it’s story.
Now last week was pretty rough since I had a lot going on at work with deadlines and a business trip. I almost thought I wouldn’t even get a devlog out especially considering the fact that my Rider subscription was expired because I forgot to pay it. Despite it all, I used my time to study Golden Sun’s battle mechanics. This not only gave me inside peek into one of my top RPGs, but it also gave me a little inspiration on how to put the TGS together. I got through the week with a renewed Rider subscription and a bit more insight and wisdom on battle mechanics.
Now we’ve recapped ourselves all the way to the present week. I am still studying battle mechanics from other games while I piece the TGS together. I was also able to pick up a book that helped me get a better idea of the stats my game needs and how my leveling should work. With this knowledge, I now know how characters base stats and growth will work. I will probably start implementing some of what I have into the code and seeing how it all works.
This has been quite the informative devlog, huh? I thought it would be nice to review my progress which is especially good for anybody new joining the fun. We are supposed to do these things on a weekly basis and I still want to do that, but I would need to find something to talk about. With that being said I’m not sure when the next devlog, but hopefully before next Monday. Just stay tuned for more to come!
Something that has a lot of detail in it is usually called ‘meaty’, and if that’s the case then this devlog is gonna be straight veggies. Most of this week has been me completing a laundry list of tasks before coming on this business trip which is where I am at the moment. With that being said I barely worked on Tiny Mystic at all, but that doesn’t matter because I forgot to pay my bill for Jetbrain’s Rider and I refuse to go back to Visual Studios. As you’ve probably realized at this point, I am determined to work on Tiny Mystic in some capacity even if it means working on documentation or tilemaps. This week I decided to spend my time really digging into the battle system.
Not sure if I’ve mentioned it already, but the battle system I plan to make for Ti\ny Mystic will just be a simplified version of what I had planned for Mystic G and I am calling it the TGS or Tiny Gear System. The big focus of the TGS is the combo system where instead of mindlessly hitting an attack button or whatever, the player inputs multiple attack commands which can be low, medium, or high. Depending on the situation these combos can become skills and if a skill is used enough it becomes a mastered skill. Mastered skills can be used with regular combos to come up with more complex attacks. There are also other commands that can go in a combo, but we’ll save those for later. At its core, this is what the TGS is about!
If you’ve been keeping up with my devlog, you’ve seen how you can input a combo and attack a target. At the moment the target you select is instantly defeated, but we want the battles to actually be a challenge. For that, I needed to come up with some formulas and calculations and this is not a field I have much knowledge in. After seeking some advice on r/gamedesign I took a look at this battle mechanic guide for Golden Sun. It was very eye-opening to see the inner workings of one of my favorite RPGs and I was able to get a better idea of how to arrange some things.
I still haven’t gotten to the formulas and calculations, but it’s finally coming along. A week ago I had no idea what I was even doing so progress is always being made. By the time this devlog is out I will have my Rider subscription renewed and I’ll actually get to implement some of the things I’ve talked about. I apologize that this devlog isn’t as colorful as my other and to be honest next week might be more the same, but by the time this part is over, we’re gonna be seeing rainbows!! That’s all for now people! See you guys next week!
Let me start this devlog by saying that having a proper place to work is key to success. I usually have my computer on my lap while I sit on the couch. My mouse doesn’t work well on the couch and there’s no room for an external monitor. I’ve never really said it, but I believe one of my biggest issues with getting work done was not having a proper place to work. Well, I am proud to say that this is no longer an issue! I got this nice mini desk and the height can be adjusted so it can be sitting or standing desk. This was a purchase that was long overdue and I am so glad to get rid of my old desk that I’ve had since I was nineteen.
(My new setup and my pups!)
Now you are probably thinking that I got a lot done since I got this desk? Well, then you’d be thinking right! With the targeting/selection loosely implemented, I quickly pieced together the remaining flow of battle. Once you’ve selected your target it’ll go to the resolution step of the turn and destroy the target. The reason for this is due to the fact that I haven’t done formulas for damage calculations or implemented enemy AI. Until those get implemented you can run into a battle and mercilessly destroy your opponent.
(Seems a bit overpowered)
Once I finished with that I decided to take a break from development and work on some design. I started jotting down rules and ideas for the battle system, which I am calling the TG (Tiny Gear) System. I started by imagining what stats a combatant would need and how said stat would affect the battle. For example, there is an agility stat that affects evasion & turn order. I’m at the point where I think I am ready to implement this into the game. I think the TG System has potential and once I play around with it I can work out the kinks.
(Breakdown of stats as of now)
Before I end this devlog I want to mention that I’ve also started working on Tiny Mystic’s plot. I may write a separate post about some of the planned story elements, but I like how it shaping up. I want the game to have a fairly light, but mature tone and not be linear and I believe I found a good way to do it. Unlike Mystic G, I am not telling some highly involved complex plot and I am at liberty to have more fun here. I seriously can’t wait to share what I have, but that is all I have for this week. We are almost at the 10th devlog!!
Not much happened last week and unfortunately, it’s more or less the same this week, but before I get into what was done this week I need to get something off my chest. This endeavor I have taken upon myself is difficult and it is very hard for me to stay focused, but this is why I decided to take a pass on all other projects until I am finished with Tiny Mystic which includes the game jams I LOVE doing! “A Game By Its Cover” started this week and I have been looking forward to it all year, but I knew I’d be unable to participate if I decided to take on Tiny Mystic. You don’t understand how much willpower it’s taking not to say fuck it and go do the jam anyway. I knew this would happen once I decided to forgo all my other projects, but this is the sacrifice I’ve made to achieve my ultimate goal which is to finish and ship a damn game!
(Item Sweep – My 2016 AGBIC Entry)
Now enough of all that stuff and let’s get to the nitty gritty! Last week I mostly talked about the targeting system and how I was going about designing that. I said I would use the same sort of system that I used in my Ludum Dare entry, World Masters. Getting it up and running actually didn’t take long. I had it working in about a day or two, but quickly realized it didn’t play nicely with my controls. The dropdown in Unity’s UI was clearly meant for mouses and touch controls (or I may not know what I am doing…Haven’t figure that out yet). I tried to play around with it and get it to work properly, but in the end, it got scrapped without a gif to show how bad it was.
Once the World Master targeting system was scrapped I wasn’t sure what I wanted to do. I eventually took a breather and simplified my problem. This resulted in my making a script that could be given a list to cycle over and it would display the currently selected target on a text panel. It actually worked a lot better than my World Master idea and I kinda wish I came up with this for that entry. I think in the future I want to place a reticle over the selected target, which would come in handy for targets with the same name.
(So which yellow doll is which?)
Well, that’s pretty much all I had time for this week, but with the targeting system behind us we can finally select a target and have at it. Since I’ve started this battle system all I’ve done is boring UI work, but now I can finally get to the fun stuff. I’ll also need to sit down and actually design the battle system as far as how damage calculation will work and so on. With that being said, let me get to work and I’ll see you guys for devlog number seven!
Alright, so as of last week the player can input a combo and see it displayed on the screen. I thought this week I’d be working on the math for the attacks but quickly realized the player doesn’t have a way to select a target. I didn’t want this to take forever so I tried to decide the best way to handle this. It was at this point I gain a great appreciation for anyone who has taken the time to build a battle system. Even the small things can prove to be a challenge.
I didn’t know how I wanted to do the selection process and I had some trouble with the implementation. I had to knock myself down a couple of pegs because I had some crazy dynamic selection system worked out but had to realize it was overly complicated. I eventually decided to use the dropdown selection menu I made for World Masters, one of my more recent Ludum Dare entries. It’s not the most amazing way to select a target, but it works.
Honestly, I didn’t get much done with the selection menu this week because while Twitter surfing the other day I came across a crazy awesome game design document template. Having a good game design document is important, but I really could never grasp how to get one done. I’ve found templates that usually just leave me more confused, but this template by Nikkona was a god send! Once I found it I quickly got to work filling in all the blanks. Not only was it nice to finally understand what goes into a game design document, but it was also a nice break from development.
Not much going on with Tiny Mystic, but it’s moving. I’ve made more continuous progress with this project than most and these development logs help greatly with that. If you take the time out to read these I really appreciate it and I hope in the coming weeks I’ll have some really neat things to show you. With that said I’ll catch you all for devlog number six!
Fourth devlog in and we can already jump into battle, stare at our opponents, and then run away. Unfortunately, we can’t defeat our foes with good looks so I figured the next step was to setup the combo system. A player will be able to input a combination of three commands to create a combo and use that to attack opponents. I rigged the attack button to bring up the combo bar to allow players to do just that.
It’s not visible above, but it didn’t take long to setup the buttons to allow players to input their combos once they were on the combo bar screen. You could even cancel out commands you’ve already inputted and entered in new ones. Also, notice how you can only input but so many commands. As the game progresses I would hope to allow the player to improve their max combo allowing for larger moves.
I honestly thought this was the end of my work for the week. I’ve been pretty exhausted this week between work and personal dealings so most of my days have been work, come home, fall asleep, rinse, and repeat. You should see the paragraph I wrote when I thought this was the end. I was upset with myself for not having done as much as I have the other weeks. This is when I realized I wasn’t working on this full time and for now, all I had was free time to commit. Some weeks work or my personal life will have to take precedent. For now, that is the sad truth, but regardless I mustered up the strength to finish the UI for the combo bar. Even better than that my code for it work on the first go! I call that giving birth to an angel! It was just the victory I need to keep me from crashing this week!
I hope next week will be more productive, but if it’s one thing I’ve made clear to myself this week is that this project is important to me. It’s not even really the project, but what it will do for me when I finished. I need to finish a damn game and in order to do that there will be weeks, I have to push through. Well, that’s it for this week’s devlog. See you all next week.
Ok, this is a really important phase of development for me because this is usually where everything starts to crumble. I’m working on the battle system next since that’s the meat and potatoes of the whole thing. Honestly, I was working on the tilemap stuff as a way to put this off, but now there’s really nothing left to do here. I spent maybe an hour or two just jotting down ideas and reading some tutorials for ways to go about developing this system. This battle system is actually a bare bones version of the system I had for Mystic G, so I was more so gutting an idea that I already had. After awhile I had some pretty neatly organized notes.
After a certain time, I realized I was procrastinating again so I said enough and just got to work. At my job, I have to write a lot of quick and ugly code to meet the demands of my boss and the clients. It has put me in a situation where a complex task is daunting because I don’t want to end up with horrific code…I seriously do that enough at work. With that being said, I had to realize this was my project and I have complete control of it. I jumped right in and started making classes as I imagine how the whole system would work out.
Needless to say, I was still lost, but I just kept visualizing how the flow over everything is supposed to work. I started working on the battle scene, giving me another excuse to use Tiled. I didn’t stay in there too long and came up with something really simple. Once that was in place I kind of slipped back into my procrastination. Developing this battle system has been very intimidating, but most of these days I’ve had to just force myself into it. Once I got into the groove I came up with an enemy spawner that would decide whether to throw the player into a battle. If it decides you are going to battle, it would pit you up against a group of up to four enemies that were randomly selected out of a pool of available enemies.
Unfortunately, I lost more time due to procrastination and exhaustion, but I made up for lost time and started to hook up the battle manager and the game manager. I started with the escape button because I figured it would be the easiest to do. I wanted to make sure that if the player made a successful escape they would end up back on the same map at the same position. This also gave me a chance to play around with Unity’s new scene management, which I haven’t had much chance to use other than simply going to another scene. In about an hour in a half, I was able to go into battle and escape right to where I was in true RPG fashion.
Honestly, I spent most of this week fighting with myself, my fears, and my failures. This time I lost the fight, but my progress shows I will not lose the war. By that I mean I could have worked on Tiny Mystic more, but it’s better than not working on it at all. The next step from here is giving all the combatants some options to fight. As it stands now they kind of just stand there looking at each other and that’s no fun. I hope by the time you see the next devlog the battle system will have a bit more flair! Well back to the grind! See you for the next devlog!
Time for another Tiny Mystic devlog! So I decided to look into using Tiled and Tiled2Unity for making my scenes in Tiny Mystic. I found a nice little tileset on OpenGameArt and just got to work. After about an hour or so I had a nice little map.
It wasn’t too fancy, but I could see it had potential. It wasn’t long before I realized how relaxing working on these tilemaps would be. After another hour or two, I had a pretty decent map. I wanted to see how it looked with my little character running around that I setup up the other day, so I used Tiled2Unity to import the tilemap. The process was pretty seamless and in a couple of minutes, the tilemap was in my scene. After setting up my camera, my guy was off exploring the land…
Unfortunately, my little dude thinks he’s Jesus or something. He was walking on water and on top of the void. It’s madness! This brings me to my least favorite part of making tilemaps…Working on the collisions. I had to go through all the relevant tiles and give them collision properties which Tiled2Unity would use when importing them. It actually wasn’t so bad and it didn’t take nearly as long as I thought. It definitely adds some ‘dimension’ to everything.
After about a day or two I had a pretty sweet map and I used it to play around with the camera. I didn’t spend too much time with it, but I think I have a pretty good idea how I want to do my tilemaps and handle the camera. Below is the map I ended up with and I am fine enough with it to move on. I’m moving on to the next phase of the operation and I can’t wait to share it with you all in the next devlog. Until then have a nice day and never give in.