Sorry for not posting for long but I have been working hard on the game and posts have slipped down in priority order. I will be changing the format of these posts to make them easier to write and less “wordy”. I will try to focus on more visuals and just show a short log of my progress and the road map for where I’m going next. Let’s begin!
Finished the first phase of the tutorial
Hired a pixel artist to create portraits for enemies and heroes
Updated the UI with new fonts
Added a “kill cam” that can zoom and add slow motion occasionally for spectacular finishes. Gif below shows all of this in detail:
Finish v0.1 of the demo
Send out demo to newsletter subscribers
Very doubtful if I actually manage to do this before March is over but I will try. It is crucial that I get this into the hands of YOU, the players, before I get too wrapped up in my own head :D.
Hello friends, fans and family! Hope you’re all well and that you’ve enjoyed christmas and new years with your loved ones 🙂
2020 is over and 2021 has just begun which means a symbolic fresh start. I usually set a couple of goals for the year on this day and I like to look back at them a year down the road to see how much (or little) progress I’ve made but also whether those goals still seem relevant. I though I would make this post to share some progress with you but also some random thoughts about goal setting etc.
Goals VS behaviours/habits
Before I start sharing progress I just want to briefly touch on the subject of goals. I learned somewhere years ago to set S.M.A.R.T goals which means goals that are:
Different “gurus” have different words for each letter but the principles are the same. An example of a smart goal could be:
I want to lose 20 pounds by the 1 of July 2021.
Is it specific? Yes. Is it measurable? Very much so. Achievable? Well, that depends I guess. Relevant? If it’s important to you and it’s highest on the list of priorities then yes. Time bound? Yes.
While there’s not necessarily anything wrong with this approach I’ve read a lot of books on Habits and they have a slightly different approach. Here are two really good books on the subject that I highly recommend:
What these books have in common is that they focus on the behaviours and habits needed to attain goals and not so much the goals themselves. There’s less focus on the end result and much more focus on what you need to do right now:
Eat half a plate of vegetables with every meal
Take a 15 minute walk each day
This is the way I think about everything I want to get done nowadays since it’s what works best for me. I only count/measure amount of days I go to the gym for example. I don’t have a goal. Why? Cause if you go to the gym and work hard you will get fit. All the other pieces will fall into place by themselves gradually. You don’t need to worry about perfection. You just need to do the work. It’s also much easier for the mind to just make sure to do one simple thing and keep track of it. With time all the goals will be attained.
This is my approach to ANY goal basically:
Goal? Make a game.
How? By putting in the work
But it’s so much work? Work on it as often as you can no matter how little you do. Commit to the mantra NO MORE ZERO DAYS
This is how I’ve worked on the game. I don’t have much time but I try to work on it each and every day no matter how little. One day I just fix a bug. Another day maybe I’m so lazy that I only google something I need to learn or implement and I just make a bookmark of the link. Still progress. Every day.
MORNINGS ARE THE SHIET
Learn to love mornings. The majority of people are sleeping in the morning which usually means: families are sleeping, gyms are empty, work hasn’t started. My life changed when I started to wake up early. No exaggeration. The first thing I do is work on my game. I do my absolute best to never leave it to the end of the day.
I started with the habit of time keeping for shits and giggles so I can look back at my efforts and see how much time I spent on the game. I started with this in week 32 (August 3, 2020) and noted down every single minute spent consciously working on the game. I stopped this on December 18, 2020 when I decided to take a total break during the holidays and “break the chain”. The result of that period was:
131 days in a row (with time measuring, I worked every day before that)
Fewest hours worked in a week: 10.00
Longest hours worked in a week: 16.00
Average hours worked per week: 12.35
Note: I also take care not to overdo it. I try to work no more that 14 hours average per week since more than that is not feasible with a day job and a family if I want to keep my health.
Finally, what you probably came here for :D. When 2020 started all I had was this:
At this point there was basically nothing besides what you see. No UI. No AI. No gameplay. Just a skeleton of something…
Start of 2021
Game at this point looks like this:
Here’s a long list of some of the stuff done during this year:
Changed size of the tiles from 32×32 to 24×24.
Added animations and polished the graphics.
Added a UI.
Added a dialogue system.
Added enemy intentions.
Added a “swing meter” mini-game.
Named the game “Guardians of Gridvale”
Bought gridvale.com and guardiansofgridvale.com
Made a bare bones website.
Made sure that the game builds and runs on well WebGL.
Became a steamworks partner so I can release the game on steam
Made sure that characters can level up and select skills.
Added mouse input
Added shortcut keys
Created an instagram account
Created a fb page
Created a page on itch.io
Bought tools for music making
Hired an illustrator to create this:
And “hired” a friend to create this:
This year I will be focusing on these things:
Tech-Demo for my newsletter subscribers
Public demo on itch.io
Create a kick ass trailer
Create the steam page
Keep growing the audience with posts on twitter, instagram, facebook, reddit etc
The game will not be finished this year either but I am aiming for having it fully playable at least. 2022 is meant for polishing. Keep a look out for the public demo or join the newsletter if you want to play it earlier!
Thanks a million for taking an interest “Guardians of Gridvale”. Til next time!
Hope everyone is doing well. It’s time to show you guys what I’ve been doing lately so let’s show off those gifs:
I’ve added videos to the UI to clarify how skills work. Previously those where only shown on the level up screen but now I have them in place when you’re about to use skills as well. I will also be adding general videos for explaining game mechanics etc. It was a bit tricky to set up since you can choose between selecting local videos or URLs (both local and web) but the local ones broke when building for the Mac. Using a file url path instead solved it. Here are a bunch of skills for the heroes in the UI:
I previously had no graphics in place for the Rogue’s “Cloak” skill nor the wizards “Ice Blast” so I’ve added some effects to make them look better. Here’s the “Cloak” skill together with the “Serial Killer” showing the mayhem that the Rogue can cause in certain conditions:
Here’s the “Ice Blast”:
Defense and flanking mechanics
I tweaked the defense/flanking mechanics in order to make positioning more important. Depending on how enemies and heroes are placed on the map this affects how much damage they receive and how much pain they dish out.
The mechanics work in the following way:
If a unit has more allies in adjacent tiles than enemies, they receive a +1 to their defense, lowering all damage from incoming attacks with 1. If a unit has more enemies than allies surrounding them, they instead get a -1 to their defense, increasing all possible damage to them. If the amount of units is equal, there is no modifier to a unit’s defense. Here’s a video showing how incoming damage changes when units move around:
EARLY DEMO will be postponed
I have decided to move the public early demo to Q1 2021 instead of rushing like a madman to finish stuff before I go on a long christmas vacation. The reason being that there are a lot of things that can go wrong and I might not be able to have time to fix things. The demo will be an early version and as such will have bugs, will be unbalanced etc etc but I don’t want to burn my bridges by making a bad first impression. The players must enjoy the game at some level or my demo will hurt me more than help me. For those of you who want to ensure that you are the first to try it out: make sure to subscribe to the newsletter since they are the first to hear about news (and secrets ;)):
I will be revealing the name of the game next week (although the logo is not ready) and create a simple first webpage for it to start building traffic. If you’re eager to find out what the name is and don’t want to wait until next week… subscribe to the newsletter :D.
As usual I’ve doing a lot of other stuff: fixing bugs, refactoring etc but that really isn’t that interesting compare to the gifs right? Not much to say there.
See you guys in a couple of weeks and thanks a million for reading!
Loads of new stuff these past weeks. I told you I would back off a bit but instead I upped the tempo and worked more than usual. Life is crazy sometimes 😀 Let’s jump right in!
The game loop for the demo is now in place and working! You get a mission and once you complete it you are shown the victory screen (something needs to happen when you lose too which is NOT in place :P) and after that a skill tree where you can select upgrades for your heroes is presented. After that a new level begins. Simple and reliable. As I’ve mentioned before this structure will not remain in the final game but is a pretty fast way for me to get something out of the door “quickly” for feedback. Still have to design levels though so the DEMO itself is not done just the structure.
I’ve made the upgrades work and everything is saved the way its supposed to. Been wasting a lot of time lately thinking about how to actually set up the skill tree etc which is not that important at this stage so in the end I just decided that the player will have two levels up: one automatic skill and one selectable choice of two upgrades to that skill. An important feature I’ve implemented here is to show short clips of how the skills actually work:
It’s been bothering me for quite some time that the units just vanish once they die and the other day I was feeling a bit bored and decided that I really needed to do something about it so I opened up Aseprite and drew a floaty skeleton cloud type thing when the enemies die. As usual I limited the amount of frames to 5 which is my limit for effects. For skill animations 2 frames will have to be enough unless something extraordinary happens… Anyway, here’s the animation:
I am adding animations to all unit skills and fixing bugs so they work well and the next one I wanted to tackle was the taunt skill. Had to fix a lot of AI stuff that had been messed up too as well as drawing one single frame:
I’ve fixed loads of more issues and really, really hope to get the demo out of the door before this year is over but there is undoubtedly still a lot of work to do. I still have to finish all the skills and test them and add some animations to the enemies, add music/sounds and and and…. GAAAAAAAH!
Loads of fun :). See you in two weeks, have to get back to work!
Tough times right now with lots going on at home, on the day job and the shift to colder and darker periods of the year. I can very clearly feel a dip in my current energy levels and might have to slow down a bit for a while to regroup. But before I do that I’m gonna quickly let you know what I’ve been up to! Here goes:
Changed tile size
I’ve been working on art that’s 32×32 pixels “big” and noticed that I don’t make proper use of the space so I’ve decided to shrink my graphics to 24×24. This lets me work faster since I’m drawing fewer pixels and has the added benefit of making everything “tighter” and there’s less empty terrain everywhere. Another thing I’ve done is to offset the characters a bit to give the illusion of depth!
With the tile change comes a change in resolution. My reference resolution (the resolution you scale up from when working with pixel art) was 640×360 but is now smaller and I’ve coded stuff to make it dynamic. Height is between 220-270px and width adjusts accordingly since pixelart needs to upscaled evenly. So if I have 1920×1080 resolution on a monitor and the script calculated 270×4 for the height, it’s gonna divide 1920 / 4 which results in 480. The key point here is that it fits the entire screen and looks good on all resolutions 🥳.
I still haven’t finished the level up screen but working on it revealed some other areas that needed work and it forced me make sure that I can save/load the heroes to move between levels and scenes. After tweaking some code and fixing bugs I now finally have a game loop!
My upcoming weeks will mostly be about fixing the UI since now the size of everything has changed.
I realised recently that I was putting way to much time in on details that don’t really matter yet and I was feeling like the project wasn’t moving forward fast enough. I am doing progress no doubt but recently it was the “wrong” kind of progress. My strategy for finishing the game has been to first put all the pieces together and then start polishing like crazy and adding content but lately I’ve been doing far too much polishing and I decided to back off and focus on getting something playable out there. So first of all, let’s loudly declare that I’m aiming to get a VERY EARLY demo out before the year is over. I will most likely upload it to itch.io but perhaps this plan changes. The deadline will not however. I’ll have something out before the year ends dammit!
My newfound focus led me to start work on an actual structure for the game so here’s the stuff I’ve been doing in the last weeks:
LEVEL UP SCREEN
My current intention is to let all characters in a mission gain experience points after each level so the first thing I had to do was to get something in place to show that and set up a simple architecture for it. When characters get more than 100 XP they level up and their XP amount is reset. Characters will most likely gain the same amount of XP per level each but different levels and objectives will grant you differing amounts depending on difficulty etc. The code for this part was fairly straight forward so most of the work was layout & graphics related. Here’s the result of the first iteration:
The way the code was setup I could only present one level and that’s it and I had been waiting for the “perfect” moment to structure things so you can present levels one after the other (only for the demo, there will probably be some strategic choices in-between missions etc later). I was clearly putting it off for a reason. Game started to fall apart on my first attempt and I had to create a lot of code for resetting stuff between levels, saving and creating things. My advice would be to think about this from the onset but I built this based on a tutorial and well… It was just messy. It did end up well at least and I can now create levels at will at any given point.
My first pass with the dialogue was just to mess around and see if I could get something in place but now I wanted to improve this and make something similar to Fire Emblem: characters talking in the beginning and end of the missions and in certain order. I added a dialogue array in the JSON for the level and now it’s all tied to the level. When the level is loaded the dialogue is presented in the correct order. On top of that I added some code so you can speed up the talking and also click to get to the next talking character. Here’s an example:
The whole project has been a mess since the beginning because of what I mentioned earlier about it starting off from following a tutorial so I had files from the tutorials all over and folders that didn’t really belong where they should etc. Worse than that there were a lot of architectural things that I did not really approve of anymore now that I’ve gotten to understand Unity a bit better. A BIG part of the work recently has been to throw away code and restructure stuff to make it fit my plan better and it is MUCH easier for me to do stuff like creating new enemy units for example. It is always important to find a balance when it comes to how much refactoring (code improvement without new features) one wants to do since it takes a lot of time but if done for the correct parts of your code you will be well rewarded in the long run. The trick is to recognise which parts of the code you will be messing around with frequently. Those parts need to be robust and easy to change!
I started putting together skill trees for the characters and getting some kind of foundation in place. This part will most likely change a lot between here and release but I needed something for the players to screw around with for this first demo. There won’t be many choices or anything now at first but at least it gives a taste of the much better things to come… 😉
FINISHED PROMO IMAGE
Saving the best for last. The illustration for the game is finally finished! It will be used on the website and on the different store pages etc so it was a very important part of the marketing.
I am super pleased with the result! What do you think?
I have a friend working on the logo and once that is done I will finally be revealing the name of the game! In the meantime I will be updating the website a bit to accommodate both released games and to look a bit better.
These last two weeks have been a bit different since my wife has been away most of the time so I’ve had that my daughter for myself. I’ve still managed to maintain a pretty high tempo but my working hours have differed greatly I have not worked as much in the morning and I have worked a bit more during the night. So what have I been up to this time?
I finally have a newsletter up and running where you can keep updated on everything that I’m doing with the game: http://tinyletter.com/sinistersiamese and it’s the best place to get a summary of these blogposts and find out stuff that I don’t necessarily talk about anywhere else 😉
JSON map import
I finally managed to get JSON working to be able to import maps. It took me a little while to get it working since there were some minor weirdness when using the JSON utility in unity. You need to think a bit about where you place your arrays and how you structure them for unity to actually get it, so it works better if you have a simple structure and if you avoid doing to much nested stuff. Now I have a base to iterate from where I can position the enemies or state that they get a random position and I can also lay out my entire map in JSON. Still have to do some things to control dialogue and other stuff but things will be easy now that I have this in place. My next step with this will be to build some sort of level editor that can actually create the JSON. I might actually write this in swift so I can make an app on my phone or iPad and create maps on the go.
So I mentioned that I was going to have dialogue from the game right? In order to get that looking right there are a few things that need to be put in place: a few funny character expressions, nice dialogue and also a typewriter effect that makes each letter or word appear one by one so it looks like the character is talking :D. I made a basic implementation that does this and I’ve also added parameters so I can configure talking speed and put in pauses at the end of a sentences etc.
Man this part was so much fun. I could probably fool around with the particle system for the entirety of the project just to get things looking nice and have cool effects all over the place. It’s really easy to use. You basically just place the particle system somewhere the same way you place a game object and then your fiddle around with parameters. Naturally, the challenge does not lie in messing around with stuff, it’s actually making it look really good and tweaking things takes quite some time and it’s definitely easier if you have some sort of understanding about what it is you’re doing. I managed to put in an effect for when the characters are walking and kicking up dust and I also added an effect for hits. I will definitely put in more 😊.
My project started as an old unity tutorial and now that I’ve learned some stuff I’ve started to realize that the default way of doing some things in unity is not necessarily the best way when it comes to architecture so I’ve been trying to move more and more from the clicky draggy parts in the editor to code that I can easily control and manipulate. One of the things I’m doing is that I’m greatly reducing the amount of prefabs I have because I started with loads of them. Now I am instead using one prefab for units for example and configuring them in code instead which suits me much better. With that said it was not a problem free approach since a lot of things were built upon that foundation and I broke a lot of stuff before I got it to work.
As usual I’ve also killed a lot of bugs and I’ve also been going back-and-forth with my hired illustrator to make sure that the splash screen that we are creating lives up to my vision. Really looking forward to showing you guys that and to revealing the title of the game :D.
Going forward I will be trying to push hard now to actually get a demo working because so far most of the work I’ve been doing has been to lay the foundation on which I can build upon. The base is getting closer and closer to completion so now it’s time for me to actually create content.
The results of the last two weeks have been very productive to say the least in spite of a slump in the middle of the period where I was just not feeling it. Making games is not always fun, there are some tasks that are way more boring than others and tutorials are something I never look forward to. You pretty much always have to write very strange code and architecture to hammer it into place and it’s just not close to being my favourite thing to do :P. Anyway, here’s how this period went!
The AI in this game is a bit different from other turn based games. I want to show the player what the AI will do before it actually does it and this AI makes decisions as soon as the player has moved one of his units or performed other actions. Other games make the decisions when the player’s completely done. There are also games in which the units go 1 by 1 instead of getting to move your entire group. In any case, there are some special considerations to make when you’re going to show what the AI does this way. The major thing is that you have to account for where the units WILL stand as well as where they are standing in this particular moment. If a unit decides that it has to move to a forest tile, you have to make sure that the other AI units know about it so they don’t move to the same space. This has been my biggest challenge but one that I’ve ultimately solved. Yeay!
AI is pretty complicated to debug because there’s always a trillion things happening and it’s usually very hard to pinpoint what exactly is going on so I did a couple of things to make my life easier:
I made sure to show where enemies are going
I made sure to show all the tiles that enemies can walk to
I made improvements in the code that generates levels to make sure that I could place enemies exactly where I wanted them instead of randomising their positions
So after letting the issues in my AI persist for quite some time I decided to finally grab the bull by the horns and eliminate all of them! It was hard, gruelling work but the satisfaction of seeing my last known AI bug (and all others that showed up when I was making fixes :D) was incredibly satisfying 🙂
An undo button for this game is a must so I had to implement it. It’s easy to misclick if you’re not paying attention but more importantly, I want to give players a chance to explore different scenarios. What happens if I move my mage here? Will the archer survive? A very important part of the gameplay is to make sure that the AI is consistent and does not do random stuff just for the sake of it. The AI has to make the same move given a certain board state and the reason for this has to do with player understanding and AI “fairness”. I don’t want the player to go: move, undo, move to the same place, undo again and then get a different outcome. That would just be weird!
4K Graphics XD
I mentioned earlier that I got into a slump in the middle of the week and that was when I started doing the tutorial. I got quite far (not done yet though…) but I was just feeling bored and needed to take my mind off it to get some momentum so I started looking over my graphics in search for things to improve. I’ve already mentioned before that I’m not 100% satisfied with how the game looks and the tiles in particular could need a makeover so I started experimenting a bit. I ended up changing: forests, mountains, roads, the color of the grass and even the color of the goblins. It feels much better now. What do you think?
I’ve always loved the overwatch ability in XCOM. You basically postpone your chance to fire and stand on lookout and when the enemy moves into firing range the game goes into this really cool slowmotion sequence and your unit takes the shot. This lets you fire on the enemy turn which is a good way of adding some wrinkles to the players considerations. Is my position good enough for the attack or should I take the shot next turn when the enemy is out in the open?
I really wanted to make my own implementation of this and had made an earlier attempt that failed spectacularly and left my code in a mess. This time would be a bit different since it now works but the code is still a mess XD. Besides being cool it’s also a very good skill from the perspective of truly differentiating the units as they now have much different abilities that don’t play out the same at all. So how does it work in game? Basically the archer picks an area to guard, and the first unit that tries to pass this area will be fired on and STOP it’s movement. I’ve mentioned before that I don’t just want to make damaging abilities so I had to add something more to it to set it apart. Here’s the end result:
There are still some things I could do to make it clearer to the players and improve it a bit but overall I’m very pleased with the results :D. Also, notice the hit effect I’ve added when units are attacked. That wasn’t there before 😛
In the end, these two weeks have been great and I’ve started my search for an illustrator to make the game’s header image. This image will be used on the web, steam pages etc and is a crucial piece of my marketing plans. As soon as that is in place I will release the name of the game and a short playable demo of the game. That’s all for this time!
It’s been a couple of weeks since my last update so I thought I would share with you what I’ve been doing since. Vacation is officially over which means I’m back to my usual routine of working on the game on early mornings. I’ve made a small adjustment though since I no longer have to commute. I now wake up a 06:00 instead of 05:00 which is better for keeping my sanity :P.
What other changes have I made? Read on…
I’ve removed most of the text I had on the UI and made separate panels for the unit, skill and tile sections as well as changing the side that the tile details were displayed on. This way, everything that gets updated frequently is moved to the left side so you don’t have to keep attention on both parts of the screen. I’ve also started messing around with very minimal borders to give the panels a bit more “pop”. The UI is definitely not ready but it’s been much improved. Here’s a screenshot:
Graphical updates & attack frames for the characters
The graphics will be replaced and improved quite frequently since I’m still not 100% satisfied with the looks of the game. The tiles need a lot of sprucing up and I will most likely update the colors a bit since something is a bit off… Haven’t yet figured out what it is though XD. There have been some big improvements made on the characters at least! I’ve started changing the shading to be on the left side instead of right and be more consistent with where the light is coming from. Made the mistake of changing the shading of the enemies too which was not necessary since they are flipped in the opposite direction XD. The biggest change however is that I’ve added some expressions and attack frames to the characters that makes everything a lot better! Previously all the animations were just bump to attack but now you can clearly see the units preparing for an attack and then 1 frame for performing the action. Why just 1 frame? Well, let’s just say that animation is BY FAR what takes the most time out of everything that I’m doing so I’m doing the bare minimum necessary for it not to look like crap :D. If I have time I might add more frames but the are more pressing issues, like making a game for example ;). Anyway, here’s a zoomed in screenshot of what the attacks look like in action:
Updated Unity to an LTS version
Unity is widely known for being a bit… finicky when you update between versions. I’ve read a lot of horror stories about people having to rework stuff because something broke etc so I’ve been holding on to the exact same version for quite some time know. I’ve been waiting for Unity to release what they call an LTS version (Long term support) that are versions that you can safely work with without things constantly breaking or being updated. The LTS versions that were available where old though and since I know my project will go on for at least another year I wanted to have a 2019 or 2020 version before I tooked the plunge and updated. This week I gathered my courage and updated and it went… perfect actually! I had to make a small fix in preferences so that Visual Studio (where I write code) and Unity would cooperate but it wasn’t hard to fix so now I’m cruising on an LTS version and life is good :P.
Here’s a small list of other fixes and improvements:
Removed cursor that was only intended for play with a gamepad
Started working on a tutorial
Registered a domain name for the game’s website. Stay tuned…
Restructured my millions of to-do lists to something that makes more sense
Thanks for following the project! See you again in about 2-3 weeks 🙂
Haven’t posted in a while and I thought I would correct that 😊. The game is still being worked on and I’ve made quite a bit of progress since my last post in February(!)
Instead of trying to remember everything that’s been added since I’ll try to pick out some of the “best” stuff and also talk what the next goal is.
I’ve added some code that allows me to setup different missions like for example: reach this point on the map, kill x number of enemies or a specific enemy, survive x turns etc and many more types will be added. I strongly believe that I need a lot of different mission objectives to keep the game “fresh”. There will also be secondary objectives that are not mandatory but will reward you with bonuses of different kinds upon completion.
The way I’ve implemented this is I have “Mission” protocol/interface that has various different methods that act like triggers
Here are some examples: UnitReachedTile(unit, tile) and UnitWasKilled(unit) and NextTurn(turn).
The mission also holds a specific map with enemies etc
The Mission class is passed to a BoardManager class that knows when these events happen. The BoardManager then invokes the methods on the mission. So when BoardManager tells the mission that a unit has been killed, the mission code can check if this was the last enemy or if the enemy is a boss or if it was a player unit etc and set the state of the mission accordingly.
Fire & Ice
I’m going for skills that create a lot of emergent gameplay so I try to avoid attacks that only do damage and one of my “rules” when designing is that no skill is allowed to do only 1 thing. Ice for example freezes units so they can’t do anything for 1 turn which sounds pretty standard but…
A frozen unit will prevent fire from spreading and the ice will melt when attacked by fire. So you can freeze one of your own units to protect from a fire attack! The other thing you can do is freeze water to create bridges. If somebody stands on the frozen ice and they get hit with fire… Well the ice will melt and the unit will drown. Fire also spread randomly between tiles which gives the game some dynamism. I’m very pleased with how ice and fire is interacting though more graphical work is required to show it off more clearly.
Here’s some fire:
Lots of if cases 😂. Tiles can hold ice and fire (child gameobjects of the tile) and there is code to detect if something is frozen when hit by fire etc.
I think having different types of tiles is important in a tactical turnbased game since it makes positioning more “complicated”. The most common way of doing this is to give different tiles different bonuses/penalties: forests have +1 defense while hills increase the range of attacks or something like that (this is in the game already). Another way is by setting a movement cost for different units and tiles. In Fire Emblem for example, units on horseback have a harder time crossing forest tiles. I wanted movement to be impacted somehow but I’ve never been a fan of the “movement cost” approach since I feel it’s too fiddly so I needed to try something a bit different. Enter roads. A unit beginning their turn on a road can move their distance OR move freely on roads until blocked by an enemy. This allows you to move great distances. To mitigate this a bit I added a defensive penalty on roads which makes units on roads very vulnerable to damage. Here’s an example:
My first challenge was to place the appropriate road sprite on the corresponding position. I began by having a specific type for each road tile like “NorthEastRoad” and “NorthSouth” road etc but this quickly became unwieldysince mapdesign was hard and if cases for detecting types of tiles were huge and unreadable andI knew I was going tohave to refactor it at some point.I then changed the architecture to work like this: all road tiles have the type “road” but when they are placed I examine all their neighboringtiles, if a road tile has a road above and below it then I know I have to place a “NorthSouthRoad” graphic there. This code was then reused to handle water as well. It’s now super simple to “paint” roads and water since the corresponding graphic is drawn without me having to think about it when designing 🎉.
The other problem was related to pathfinding and allowed tiles in a turn. When a units turn begins I check if it’s on a road tile. If it is I draw paths out from where the unit is standing and only add road tiles to the path until I can’t add anymore. So my “allowed tile movement” contains the normal range + the road tiles from the pathfinding. When a unit wants to move to another road tile I check if its within the unit’s normal range and if it is not I know that the unit wants to do a special road move and I restrict the red path arrows to only follow the road. My normal pathfinding cares about showing the shortest path so I need to restrict it so the unit doesn’t move outside of the road crossing hills, forests etc. The feature needs to be tested some more but it spices up the movement and feels different in a good way.
I’ve added some more shading to the units and also changed up the tiles to add some more variety on the maps and make them look a bit better. The graphics are still on the simplistic side and I’m favoring production speed and clarity over “beautiful” graphics, mostly because it’s the only realistic way to actually make and finish the game on my own.
There are still a million things to do but my main focus right now is to send something out to my closest friends to let them have first stab on it and iron out some things before I make a “meatier” demo. This demo will most likely be used as an incentive for signing up on an email list that I will be creating shortly.
The other BIG thing is that I need a name for the game before I can start creating store pages on steam and itch. Once I have that I’ll be setting up a website to increase visibility and all of the other stuff you need to do so people know your game exists…
I’ll try to post a bit more often hereafter (aiming for once every two weeks) but you know how it is 😂
Finally, here some actual gameplay to finish up! Thanks for reading 🙏 / Luis