1. Shardpunk
  2. News

Shardpunk News

Devlog #105: poison

Howdy!

I love these bi-weekly entries as they allow me to take a look at progress periodically. And there is progress indeed!

The localisation support is nearly finished. Well, at least in its current state. I've extracted above 800 distinct translation keys to separate language files. I have to admit that being able to speak Polish is a good thing, as it's a pretty difficult language, especially compared to English. Knowing about the "feature" of words being different depending on the case and gender allowed me to simplify some of the texts and split the ones that I knew might be problematic also in other languages.

I also did lots of cleaning up. I removed some unnecessary/redundant texts.

It turned out that the extraction of the translation keys was not the most difficult part. Adding the Polish translation text was the real challenge, as it was the first time in which the UI had to support texts with different sizes.

The good thing is that the font that I am using has support for the Russian alphabet, so I'll be having no extra problems when dealing with a Russian translation.



Anyway, I will be spending some more time on the localisation stuff to make sure it's polished.

There is one other feature that I believe I haven't mentioned here yet: the poison.

Rats in Shardpunk's world are filthy. And they like spreading that filth, especially when they're busy plundering the capital city of the Human Empire which they've just sneakily attacked (as that's the plot of Shardpunk, if you're not aware of it yet).



So there's a rat type carrying that poisonous "mortar" that will make sure that your life gets more difficult. They rarely hit your squad members, but are good with limiting your movement options.



You might have guessed that when a character enters the poisonous cloud, they receive the "poisoned" trait which drains their hit points for a number of turns.



Now, when a character loses all their HPs and enters the "bleeding" state, the poison stops working. I've decided that it would be too frustrating. Poison effects can disappear after few turns, or you can heal it using stimpaks.

And, last but not least, these poisonous rats are capable of doing melee attacks if you get too close to them. That should make the players respect them more!



That's it for this update. I hope you enjoyed it! Do remember to jump into the Discord server to post your feedback. And play the demo if you haven't already!

Take care, and have a great weekend!

Devlog #104: localisation support

Hello again! With one big technical task behind me (and I'm talking about the controller support), the time has come to deal with the other one, being the ability to handle multiple languages in the game.

There are two major areas that need to be handled here. The first is moving all of the localisable text from the game to an external source.

I've decided to put these texts in a plain .txt file, one for each language. Using json/xml format did not seem like a good idea, as there would be problems with escaping some of the characters to make sure they don't mess up the syntax.

Here's a screenshot from the English translations file:



The lines hold information about the name of the translation key and then its translation. If there are multi-line texts, the line breaks are represented as "\n".

I've created few tool windows in Unity to allow me to add/edit translation keys easily (I took inspiration from this YT video) and made sure that the order of the translation keys is always the same as the one in the English translations file (this is being enforced via the Unity tools I've created).

Based on the selected game language, the text in the game change dynamically. Right now I have some debug in-game shortcuts set up that allow me to switch the language on the fly.



Now, the second thing is about making the localisation process as easy as possible. I am creating the English and Polish versions myself, but the other ones will have be handled by someone else. Now, to make sure that a person doing the localisation is able to do a good job, they need a) a more convenient way to edit stuff than an ugly .txt file b) some more insight/hints for specific translation keys.

The first thing I've added was metadata for every translation key. You know, information about the context of the text, whether it should be kept short or not, stuff like that. I'm basically storing this information as an extra "language", in its own .txt file.

Then, I've created a stand-alone tool that generates an Excel file with all the translations (well, you can pick which ones should be handled) and creates a separate tab in the spreadsheet for every key - along with the English translation and metadata. This form is more readable, one can easily sort/filter/do other Excel-ish stuff on it, and this is the form that the translations will be sent to the localisation people.



Last but not least, there's a tool to import the data from the Excel sheet back to the .txt translation files. Note that this needs to be able to merge the stuff together, as there might be some new translation keys present in the game as I'm adding more stuff. What is more, the localisation team can use that tool to instantly upload the new translations to a game build, to see how they look in action.

Here are some auto-generated Excel files along with shortcuts to the import/export tools:



So, there you have it. The first version of the import/export Excel handling is already implemented, and I'm spending most of my development time on moving all the texts to the translation .txt files. So far I've created more than 200 translation keys, but I still have lots of stuff to move! There will surely be some issues/challenges that I'll need to face here - I'll make sure to write about them in two weeks.

Take care, and have a great weekend!

Devlog #103: gamepad-related stuff progress

Phew, implementing the controller support was surely time-consuming! The good news is that it's done. Surely, there will be some changes in the game's UI, but I have all the code/design base to handle both types of input in place, so altering this stuff will be simpler from now on.

Some parts of the UI had to be redesigned to make sure that gamepad navigation makes sense. Man, it's a good thing that I bought that PS4 last year - I had time to play some games and familiarize myself with best practices on implementing gamepad support.

The thing that I wanted to avoid (and I did avoid it) was to display a mouse cursor when using a gamepad and force the player to move the cursor with the gamepad's stick. The navigation should be always focus-based, not pointer-based. The map/mission loadout screen was the biggest challenge, as it had two different focus groups that the player needs to navigate between.

Here's a comparison of how selecting the next mission and distributing supplies works when using a mouse and a gamepad (gifs too big, had to embed a YT video):

[previewyoutube][/previewyoutube]

[previewyoutube][/previewyoutube]

Oh, I'm not sure I mentioned that I've also added player profiles recently. Each of them is basically a save slot and stores profile-level achievements (like the number of enemies that have been killed by this profile in total). These will be handy when dealing with character/weapon upgrade unlocks.





There's one more technical task ahead of me that I will be addressing in the nearest weeks, and that is localization support. I can already feel it's gonna be interesting. And challenging as hell, but hey - I'm creating a game here!

Take care everyone, and do join our Discord server - there's lot of interesting discussions happening there recently!

Demo updated!

Howdy! The new version of the demo is now live, with some color/contrast adjustments:



This gives you yet another reason to replay the demo and post your feedback. And you can use our Discord server for doing the latter!





Devlog #102: controller support

Ugh, these last two weeks did pass pretty quickly!

It's time for another devlog entry, so I'll make it quick. I'm currently working on making sure that the UI is supporting gamepads. It's a tedious process, but it does require some smart thinking occasionally.

I played a lot of Pathway, Mutant Year Zero and XCOM 2 on gamepad in the last days, to see how these games approach the controller support. I believe I've extracted and mixed their solution in an approachable way. That being said, I'm still in a middle of it so I might still encounter blockers.



Also, I've posted an article on Reddit recently containing all the lessons I learned since starting my gamedev journey four (!) years ago - go read it if you're interested in how I ended up here.

I'd love to write more, but I've literally run out of time to do things. There will be more content next time, I promise!

Anyways, here's a list of some unrelated gameplay gifs, as I know that everyone loves gifs. Enjoy!