Wednesday, April 9, 2014

2nd floor

Hi everyone, :)

Here is what happened last month in Valyria Tear :

- The main effort is currently being made on adding the final part of this Episode I. The dungeon 1st floor is completely scripted, polished, ..., and 2nd floor is done by a quarter.
You shouldn't open this ...
This puts the dungeon part to be done at, roughly speaking, 60%

Monsters have been balanced also, even if still missing certain special attacks ;), and a lot of tweaking has been done to make it more lively.
New items have also been added to bring more variety, especially now that status effects are more fully supported.

Among other items, the 'Escape Smoke' will please the ones who wanted to flee from battles, for instance. ;)

- Translations
dimproject made a Russian translation update. :) And I've almost covered the french part about the latest additions.

- Development

Among a lot of misc bugfixes, and at very first, game options support has been added in the pause menu. I thank bmorel and SuiteCake for giving me the little nudge of motivation to make this happen. :)

This now means you will be able to change the language, the sound levels, and the video resolution, for instance, without quitting your current game. :)

This has still one limitation though, as the language change in dialogues will happen only after moving from the current map to another. The other texts should be translated right away, though.

bmorel also added support to change the text scrolling speed. (only manageable in the settings file, atm).

He also fixed warnings seen when compiling using clang and a bug in the procedural minimap creation code.

SuiteCake also helped by fixing some input mismanagement when using a joypad. This fixes certain lacks of updates when navigating in the menu mode.

The map stamina bar value will now be carried from one map to another. This means you no longer will start fresh about this when moving from one map to another, so beware about it. ;)

I also fixed for good the glitch sometimes seen on Bronann animation when winning (making him idle while he should run.)

Now that the very first trade offers have been added in game, this permitted me to check more thoroughly the trade conditions code and fix it.

Support to trigger an event when encountering an enemy has also been added. ;)

Stay tuned!

Sunday, March 2, 2014

In the middle ... of the second dungeon!

Hi everyone, :)

We're now in March, so what about a little summary of what has been done? ;)

- Story
  - Scripted several new events and redid a map. The overall dungeon is 40% done.
  - You'll now be able to do your very first trades! ;)

- Save point in the Layna village

First of all, after month of pressure (lol), I reached the point to my TODO-list where I had to deal with the problem people often had when starting the game.

One can't save the game as soon as they should be able to, and while it was a fun thing to put on in the early dev times for ancient reasons, I've now "fixed" that, by adding a save point right at the start of the game, changing a bit (and for the better) other dialogues in the way.
What's left about the save point problem, is the addition of a quick-save option that I'll add when at Episode II.
Note that I'll never permit to save anywhere, due to the possible ever-changing form of the map data, and to prevent you all to be stuck because of an ill-formed save game. I know the frustration I can cause and I won't allow that. ;)

- Active status effects full support!
Now, I must say half of this month has putting me busy with polishing again, and again the handling of active status effects (eg: such as poison from wounds) in the map mode, and their interactions between the menu and the battles.
I considered this overwhelming task now done! with the following new features ready in-game:

- Support to display active status effect in the menu mode

- Support to fully display status effects changes, heal and damage, in the map mode. This means status wounds you had in battles will follow you in the map mode and vice versa.

- Active status effect states are now saved in save games. This change is backward compatible, don't worry. :)

- Made character's agility slightly decreased for a few seconds in battles, when their map stamina is low.
This means your characters will be slower at battles beginning when the map stamina bar is in the red part. This may be give a bit more spice to it all. ;)

Thanks to new status effect support, status items can now be used on the menu as well, such as Elixirs, ...

I also started adding new items such a heal potions, and cure poison, but other ones are pending, eh eh.

Certain status skills now work in the menu as well, such as 'Shield'.

- Battles:
As for battles, I rewrote the battle item list handling to make it simpler and prevent the case where you can't select an item sometimes.

While on it, I added support to hint you about the skills/items description while in battle when pushing the menu key (S).

- i18n:
Galician, Italian Translation updates and some english text review happened thanks to Gallaecio and BioHazardX. :)

- Joystick support:
- Fixed selecting the language with a joystick when running the game for the first time, as pointed out by qubodup.
- Prevented quitting the game when pushing start using a X360 joypad on the boot menu, as pointed out by SuiteCake.

- Quests:
- Added support to show when a quest isn't completable anymore.

- Misc:
- Lot of bugfixes, such as preventing crash when using an ill-formed skill and fixes of many other glitches.
- Moved the art sources, useless to run the game, in another repository.

Stay tuned!

Wednesday, January 29, 2014

Three children and a dungeon...

Hi there, :)

As Jeff righteously noticed, this is time for some news about what has been done last month. ;)

The Mountain Shrine...

I'm still in the process of mapping and scripting the dungeon, added 4 new maps, and scripted the first one to something like 80%-90%.

Fortunately, the core of the effort has been done, as all the dungeon enemies left to add are now in the box. Many props were added, and lifing has been done to the battle background, the location image, and the maps themselves to make the dungeon start something looking suitable before moving on.

I can't spoil it that much but it's coming along :)

Map Editor

As maps are the main point of focus at the moment, I felt more and more convinced to improve the Map Editor and added the map resizing support to it, a very missing feature. ;)
I also made sure to decrease even more the editor dependencies and rebuilt a new Windows binary.
(For those willing to try it, see the downloads section)

Status effects

I also kept working on the last key feature of the Episode I: Active status effects are now stored in the global characters data (but not saved yet), and can now be displayed in the menu mode.
This feature is still disabled for now, as I still need to add support for status effects updates and display on the map mode before unleashing the beast.
To celebrate this, new items will then appear to fill your inventory. ;)

Battle Actions

I also fixed a long-standing glitch in character battle actions display. Sometimes, the battle skills chosen and their targets where overlapping in the battle command bar. It is now fixed, and while on it, I added support to display the currently selected skill icon to help hinting what is going on.
I also simplified a bit how the battle action texts are created and displayed.

English texts review

Some English sentences were checked for correctness some time ago, and I thank mmstick, astralchaos, and ibara for the effort done on it.
Hopefully, this kind of effort will keep on, and the original text will be reviewed for correctness from time to time. :)

Stay tuned!

Tuesday, January 28, 2014

Tuesday, December 31, 2013

Happy New Year to everyone!


Just in time to wish you all a Happy New Year to you and your family! :)

While on it, here is a little update, just before 2013 ends. ;)

- Mountain Shrine dungeon in progress!
The Mountain Shrine is now considered made on paper (at least a first suitable version to work on.) and I started to map and script the first rooms. So, we're slowly but surely reaching the end of this first Episode. ;)
I also made and added a first version of the battle background there, prepared the encountered monsters, ...

Time to face the Shrine critters...

- Proper ending credits:
This one was a personal priority for me before the Episode I release, I must say.
I now added support to properly list everyone involved in the project (consciously or not) when you reach the end of the current episode.

- Visuals:
The game's look'n'feel has been improved in several area recently:
- The map stamina bar (telling you how long you can run for) has been redone and IMHO improved. :)
- Bronann standard attacks's visuals have been slightly improved/fixed.
- The boot menu will now hint you about what resolution the game is running.
- Broken/unavailable translations will now be disabled in the corresponding menu, and the game will also tell you what is the currently selected language.

- Support for non 4:3 resolusions
A long-desired feature which is permitting you to now play in 1366x768 for instance (a usual resolution for the current laptops ;])
For now, only a limited set of resolution were statically added, once the migration to SDL 2.x will be complete, I'll add support for the resolutions declared by the system the game is running on.

- i18n / Translations :
Spanish translation support was added thanks to jahalic :)
And Galician and Russian translations were updated/fixed by Gallecio et dimproject respectively.

I also fixed the bug preventing the map titles to properly display when playing in Russian by adding support for custom fonts loading (and reloading) depending on the current language selected.

This also means Asian languages should now be properly supported using specific fonts for them. :)
Any translator tempted?

- Bugfixes / Other small improvements:
There has been the usual set of bugfixes and small improvements during the last month, but more proeminently:

The joysticks D-Pad / Hats handling is now fully working. :)

The scripting API is now handling Images as objects and no more as integer indexes. This permitted me to now handle image script code quite the same way I do for the C++ side, and permits a lot more of flexibility there.

The map mode, menu mode, particle engine, ... have seen simplifications and cleanups.

I also started working toward support for status effects in the map and menu mode. This led to some simplification of the way to display status effects which is now supported in every game mode.
What is left is to add the core logic support to load and properly updates the active effects in the menu and map modes.

Stay tuned and again, a Happy New Year!

Friday, November 22, 2013

Elbrus Shrine...

Hi all,

Here is what has been done this month in Valyria Tear!

First of all, the Episode I last dungeon is slowly but surely advancing on our side. I wouldn't like to spoil it all, but here is something I can already show you:

The Shrine entrance...

Some will recognize the excellent work done in the Liberated Pixel Cup adapted for Valyria here. An adaptation that took some time already... ;)

During that time, on the development side :

 Support for a key to toggle the minimap view has been added. A feature dedicated to BioHazardX. ;)

 Work has been also done to properly support the XBox 360 pad and D-Pads or Hats in general.
There is still a small issue preventing you to use the D-Pad to move your character in the map mode, I'll advise you to use the L button for that until this is properly solved. :)

 I'm also in the process of prettifying the characters battle attacks, by adding new animations, dust and weapon slash effects,  ...

 Last but not least at all, I spent something like two weeks working on a big overhaul of Text Rendering management.
 That part of the code was a bit rusty, and bearing historical workarounds (including mine), making it something heavy. I previously fixed the most ostensible heaviness there (one year ago in fact, wow) by turning the glyph cache from a std::map to a std::vector leading to better performance when parsing it.

 Previously, the texts rendered on screen were computed on each draw call for Option Boxes (used as selectable lists) and Text Boxes (Main text Gui objects with word wrapping support and other nice features).
Only one class (TextImage) was made with the concern of rendering the text only once and reuse the text texture at draw calls as a normal image.

I thus made the Option Boxes and Text Boxes use Text images wherever possible while checking for recomputing only what's necessary and when necessary and made many other tweaks that came along the way. (Cached the Font objects within text styles, made the shadow colors only recomputed when necessary, ...)

The script supervisor is now also using Text Images, meaning that showing some text through scripting isn't killing FPS anymore.

It turned out well, as I earned an average of ~20 FPS on my low-end laptop when dealing with the menu mode, for instance, where there's a lot of text to draw, and the FPS are much more stable and higher in general now.

VoilĂ  ! I hope I didn't lose you in the middle of my geeky explanations. ;)

Stay tuned!

Monday, October 28, 2013

Going into the dungeon...

Hi all, :)

Among other exciting things (just like new Valyria Tear's ports), here is what has been done last month:

I worked mainly on the next two story maps, which will lead our heroes into the last Episode I dungeon entrance:

The high mountain part, just before the shrine entrance.

Lilou and I have been working on paper on the dungeon design (again and again) and agreed on something. (Believe me, that's the main point! ;])

I also added Lilou's horse into the game, and worked on adding shoulders for the new portraits that were missing those.
I also tweaked certain dialogues and added a proper battle AI to Banesore in the village now the game has support for it, making the battle a bit better tuned.
Finally, I added a new optional quest in the starting village. The well-known and venerable 'Find the chicken' quest!

Development-wise, I've been working first on something one person of my primary audience (aka my sister) was requesting since a long, long time. Something I will call edge detection or soft-edges since I was unable to find an official name for that. (might be my own fault) ;)

Briefly, our Hero was previously stopped by walls even when touching them even on edges. Now, it will slide away from them and keep on walking. On another hand, the character won't slide against people he can talk to, treasures, and other interact-able items, to preserve the gameplay.
Here is an example when walking south:

I also added a star icon in front of the currently selected language in the option menu as requested by Aapo, and finally added a missing API scripting function used to properly start an event after a dialogue without tangling the map game states! Quite obscure isn't it? But believe me, it was necessary. ;)

Last but not least, I finally got around removing the GL renderer used to display tiles in the Map Editor, and use an actual Qt Renderer instead!
This permitted to untangle the engine and editor code, remove a lot of unnecessary dependencies for the editor, and leave it out of the way on the port to SDL2. (It previously was broken in the SDL2 port).

Translation wise, I also thank dimproject who made the full game translation into Russian!

I've also been working a lot on compiling OpenDungeons dependencies for Windows (FOSS Dungeon Keeper in the making), and if you're interested to help, feel free to drop by!

Stay tuned!