As another side project I’ve been working on: a small strategy game. You can select the characters by dragging the mouse and then order them to walk somewhere. There are two types of buildings you can place, but they don’t do anything yet. The idea is to chop wood and mine gold and stone and then use that to create an army to crush the opposing team, but that is all a long way coming. The art comes from Kenney.
As a short break from working on Letter for Mimi 3, I’ve restarted the voronoi game (but this time with version control). The engine has been ported for as far as was possible to HaxeFlixel, this should allow the game to run native on Linux, Windows and Mac. At the moment I’ve only tested native on Linux, and some performance tests have shown that it runs about 4 times faster than the Neko target.
The game generates a set of points (settlements) and then calculates the Voronoi cells (provinces) with as centroids the settlements. This works well for large amounts of points (e.g. 512). However, when it attempted to create a FlxSprite and a polygon representing the province it crashed when there are more than about 100 settlements.
As far as I know Flixel should not render sprites which are off-screen, and I assume this also applies for HaxeFlixel. So the number of sprites should not be an issue. The polygons are drawn on top of an empty graphic the size of the game world. This is what caused the lag, as it might thus generate more than 100 sprites sized 3840 by 2160. As these sprites need to be unique so they can be manipulated later, they are all stored in memory separately, this is way too much even for a computer with 8 GB of RAM. I ended up solving this problem by drawing the polygons on a graphic with the size of the maximum polygon size and moving the graphic from the origin to the place where the origin of the polygon is.
The video above shows smooth resizing of the arcana and health bars. The text now also has an optional typewriter effect. A health potion is used on one of the monsters and you can see the health bar increasing afterwards. The smoothing thus works both ways. The number of experience points earned are now also shown after an enemy monster has been defeated. The level up sequence now also has an option to select which stat to upgrade of the monster: agility, arcana or stamina.
First of all, I would like to wish everyone a happy 2017! Second, I’ve recently managed to get some more work done on Letter for Mimi 3, and was able to capture this in a short 1080p video.
The video above shows the monster tubes in the battle layout and the changes made to the width of the menu’s, as well as the addition of the monster’s level to the info bar. When a monster is fainted its name will be greyed-out in both the menu and its monster tube. The video also shows a new star-like monster I’ve created, named ‘Star’. At the end you can see part of the level up dialogue that I haven’t finished yet.
This video might seem a bit different than the previous one because I have restarted the project in HaxeFlixel instead of Phaser. The choice was made because it should be easy to target both the web and native platforms using HaxeFlixel instead of Phaser, which is only focused on the web. Haxe(Flixel) uses a syntax much like Actionscript 3, so I got used to it quite fast.
For now I will focus on getting a battle engine running once again. As can be seen in the video, there is still a long way to go but the basics are there.
As a Linux enthusiast I have been using Ubuntu since version 12, and recently I had upgraded my computer from 14.04 to 16.04. Unfortunately, I made a mistake and I accidentally wiped my home partition. Fortunately, the code for Letter for Mimi 3 is under version control, so I could just re-clone the repository. However, the progress I had made on the Voronoi cell game has been lost almost entirely. This is a good lesson to always use version control when creating anything on the computer!
At the end of the battle experience points are awarded to the party members and if a character levels, a choice will be shown to increase its statistics. For now I want to leave it at statistics for the level-up bonus and allow the player to buy attacks for its characters in stores. This should lead to characters being a blank slate where the player can project his idea of a class on.
Fixed the backwards ‘moonwalking’ and added a pointer so you can select the target of the attack. The video also shows a healing power, which is basically an attack with a negative damage amount. The creatures will now also attack a random enemy instead of the first one by default. They also select a random power from their power list.
Creatures now fall over when they have zero or fewer hit points, and they walk forward when it’s their turn in the battle. The video also demonstrates a battle with a party containing more than 1 character.