Things have been a bit hectic over here, for good, since the beginning of 2019 ๐ We’ve managed to get new publishing deals and a few of our games have been recently released. Specifically:
Currently, we’re focused on updated builds for DragonScales 1 to 3. Of course, we’re also making progress on DragonScales 6. And other (secret) projects ๐
Oh, remember DragonScales 5 is on sale (Steam Lunar Sale) until next Monday.
The first project we’ll be working on, undoubtedly, is DragonScales 6. That installment of DragonScales should wrap up the Zarya arc. We’re still in a very preliminar design stage (for instance, we’ve not yet reached a consensus regarding the title of the game,) but design of the new levels is coming out smoothly. DragonScales 5 had 200 levels, so the new level count must also be, at least, 200. At the outset, DragonScales 6 is expected to be a desktop-only game (Windows and Mac,) with no plans for a mobile version.
We also have plans for additional games. For instance, we’d like to deliver a mobile version of DragonScales. A totally new, custom DragonScales, different to the desktop versions of the game. In the past, we generated Android ports of DragonScales 1 to 3, aimed at tablet devices. However, we’d like to produce a novel DragonScales game, specifically tailored to cellphones. This version might pose a significant challenge, as we’ll have to fully redesign the UI and create new levels with proper dimensions for tiny screens.
There are other projects we’d like to tackle. For instance, we’ve been designing a new casual game with a non-fantasy setting. However, we’ve not been pushing this new franchise as much as we’d like because the casual market in 2018 has not been overly attractive. We’ll keep monitoring this trend. Nevertheless, we hope DragonScales 5 is released though several casual partners in Q1 or Q2 of this year.
There are also older projects we’d like to revisit, but we’ll handle them as (if) time permits.
The latest installment on the DragonScales series is now available on Steam: DragonScales 5: The Frozen Tomb.ย A few lovely players have been asking about taking previous DragonScales games to Steam. That won’t be happening for a while, but thank you for your interest.
Good news! Our newest game DragonScales 5: The Frozen Tomb has reached #1 entry on casual game portal iWin.com. Yet more, DragonScales 5 clinched the top spot for all its 3 categories:
Match 3
Puzzle
Brain/Logic
We know new and fantastic games are released every day, and these “top spots” are temporal things, but today we’ll enjoy our little victory. Thank you very much to all of you who made this possible!
Level 9-6 of DragonScales 4: Master Chambers demands a high level of dexterity with the game’s strategies. In the following, we present a possible solution.
1- First activate the top arrow (the one going upwards.) It’s essential not to activate the arrow going down (yet.)
2- Then play your scales in order to occupy the cells around the bomb strategically. We aim to activate the arrow going down and, in doing so, yield a combination to explode the bomb. In our example, notice that the two green scales (one of them having the bomb) will combine with the lone green scale we’ve placed at the bottom left. When the arrow is activated, a combination will be formed immediately, exploding the bomb.
3- That’s it for the hardest moves. Now it only remains to activate the other arrow to descend the bomb.
4- Explode the bomb.
5- Finally, activate the arrow and conquer the top red cross-scale.
In DragonScales 3 you’ll have to destroy some special monsters by using the Sacred Axe. Specifically, all the levels of World 15 are full of such pesky creatures. Destroying them is easy, though. Pay attention to the scales you receive to play. Some of such scales will contain a little axe. Try to place the scale with the little axe in a cell of a column containing a monster. Then continue playing to form a combination which includes the scale with the axe. When such combination is formed, the Sacred Axe will appear to smash the monster (see Figure 1.)
Figure 1
Further on, in Level 16, you’ll find the traditional DragonScales symbols on the board. To remove them simply form combinations on the cells with the symbols (see Figure 2.)
95% complete. Minor tweaks and optimizations remaining.
Design of DragonScales 4.
50% complete. We have to design special levels, new battle mode, the new powers bar, and parts of the story.
Design of a special version of DragonScales for advanced players.
80% complete. Most of the 150 levels of this game are already completed. We have still to work on the UI (skins, fonts, etc.), but for the most part the design and programming work is done.
Localization of the original DragonScales into Japanese.
DragonScales reached the TOP-10 of games in BFG JP!
DragonScales 3 for Android (complete, but yet to be released.)
100% complete and released a few weeks ago via Immanitas.
Production of a new build for The Rainbow Machine (German version.)
100% complete and released a few weeks ago in Big Fish Games Germany.
A new build for NagiQ 2 which fixed a few issues (already live here on our site.)
100% complete and released a few weeks ago via Immanitas.
Yet another build for NagiQ 2 suitable for localization (this localization of NagiQ 2 is currently a work in progress.)
50% complete. We created a full localization kit, but it still has to be localized by our partner.
Of course, this year we also released DragonScales 3 for Windows and Mac, via the major casual game publishers. We expect to have a strong 2018 start, with the release of the special version of DragonScales on Steam (we were approved this year on the now defunct Greenlight system), DragonScales 3 in German, French, and other languages, and of course, our main game for 2018: DragonScales 4.
Now, let’s go back to the grind. There’s still a lot of work to do before 2017 ends.
When localizing DragonScales 3 we experienced a baffling issue with an internal tool whose purpose is simply to replace text in a group of files. Those UTF-8 encoded files contain messages loaded by the game from the very beginning. However, after running the tool, the game started crashing when reading such files. By using an old buddy, fc /B, we found out that our tool was “injecting” a few extra bytes at the start of the file: EF BB BF. In short, the tool was altering the encoding of files from UTF-8 to UTF-8 with BOM. That was the cause for the crashing, as our game expects the files to be UTF-8 encoded without BOM.
What’s this BOM, anyway? Simply put, it’s just a sequence of bytes (EF BB BF) used to signal readers about the file being UTF-8 encoded. It seems such mark might be useful in some specific contexts, with some specific programs. Not our case, so we had to remove the BOM with a little batch script like this:
for /r ".\DE\scenes" %%i in (*.*) do (
copy %%i .\tmp.txt /Y
sed -i '1s/^\xEF\xBB\xBF//' .\tmp.txt
attrib -R .\tmp.txt
move /Y .\tmp.txt %%i
)
In this snippet we remove the BOM via sed. Files are those under a fictitious directory, .\DE\scenes. Those copies and attribs help to circumvent some problems with permissions of files created by our sed version on Windows.
The key for level 13-7 of DragonScales 3 is to form a way to access the pink scale on the left side at the bottom. Our approach starts by removing the rocks surrounding the central arrow, identified in Figure 1. Remember: to remove rocks just form combinations in adjacent cells.
Figure 1
After removing the rocks, activate the arrow (Figure 2.)
Figure 2
Now focus on the 2 adjacent arrows, on the top row (Figure 3). Activate one of them.
Figure 3
The next step is to activate the bomb to break the block (Figures 4 and 5).
Figure 4
Figure 5
Finally, activate the arrow to lower the column and get access to the pink scale (Figure 6.)
Figure 6
All that remains is capturing the cross pink scales and getting 80 scales of any color.
Typically, we need to translate hundreds of strings when localizing our games. Most strings are text messages which the game loads from some database or simple text file. However, we often have to handle localization of several PNG images, such as the one below.
AWESOME! message in DragonScales
Such PNG images are exported from PSD files which must obviously contain at least one Text Layer. To speed up the localization process we have a little Photoshop script which opens the PSD files and extracts all the text we have to translate. PSD files are grouped in directories corresponding to the tileset they belong to. For instance, this would be a typical directory structure for the DragonScales games:
A simplified but functional version of the script we use is this:
#target photoshop
var target = "/C/projects/ds/images";
var toLocalize = new Array();
var totalProcessed = 0;
var warningsFiles = new Array();
function log(msg) {
$.writeln(msg);
}
function processPSDFolder(dir) {
var files = dir.getFiles("*.psd");
log("===============================================");
log(dir + " -> "+ files.length);
log("===============================================");
for (var i = 0; i < files.length; i++) {
var doc = app.open(files[i]);
log(" file: " + files[i]);
totalProcessed++;
if ( doc.artLayers.length == 0 ) {
log(" -> WARNING: ZERO TEXT LAYERS? THEY SHOULD NOT BE IN GROUPS.");
warningsFiles.push(files[i]);
}
for (var j = 0; j < doc.artLayers.length; j++) {
var lyr = doc.artLayers[j];
if (lyr.kind == LayerKind.TEXT) {
var lyr = doc.artLayers[j];
log(" ->" + lyr.textItem.contents);
toLocalize.push(lyr.textItem.contents);
}
}
doc.close(SaveOptions.DONOTSAVECHANGES);
}
}
function saveStrings() {
var out = new File(target + "/strings.txt");
out.open("w");
for (var i = 0; i < toLocalize.length; i++) {
var str = toLocalize[i];
out.writeln(str);
}
out.close();
}
var root = Folder(target).getFiles();
for ( var i = 0; i < root.length; i++ ) {
var fileFoldObj = root[i];
if ( fileFoldObj instanceof File ) {
// Discard files at this level
} else {
processPSDFolder( Folder(fileFoldObj) );
}
}
saveStrings();
log("Total PSDs processed: " + totalProcessed);
log("Warnings: " + warningsFiles.length);
for ( var i = 0; i < warningsFiles.length; i++ ) {
log(" " + warningsFiles[i]);
}
Observations:
target is the path to your directory structure holding the PSD files.
The strings to be translated will we written to file strings.txt under your target directory.
This script looks for text layers on the top level of the PSD. It can be easily extended to inspect layers in groups, though.
We use warnings to be notified about files not containing Text Layers. These might be files requiring special exporting and extra formatting, and therefore we’ll have to handle such files exceptionally.