Dev Log

Hey guys! Quick update, it’s been a while.

I’m working on a new build which will hit the test server in a bit. This will be the GOG-variant of the game, which just has some different default settings for the auto-updater and metrics tracking since they seem to be really particular about that over there.

New stuff in this build includes an in-game achievement interface, as well as some slight tweaks.

-Healers now have 100% chance of light on ether flash.
-Explosive start/end have been given a slight buff - explosive end is a bigger boom now, and explosive start scales with boost level, so successive boosts do more boom.
-Fixed a mistake in the “shock lightning” book that erroneously says it’s only a 50% chance.
-Fixed the regular sheep achievement
-Changed Hero-Mode++ requirement to 180 stars

The next major project I’m going to be working on is localization support and steam workshop integration. I’ll also be paying some more attention to the bug database and see what I can do there. Eventually we need to move on to our next project, but I think there’s still some maintenance to be done.

Thanks for the healers! Now it’s time for me to go and pwn the game in linear mode again :slight_smile:

New builds are up.

Finally got time to play. Level 8 against darkies was just about the right amount of challenge. Doable with 2 healers if you respec them for Ether Flash, and that’s how it should be, now the skill points matter.

Discovered a small bug (and too lazy to file it in bugzilla). The next map allows placing defender on what looks like rock. (See the attachment, lit-up square on left side)

Edit: A bit more feedback: First Zelemir is a little too weak IMO. Even with the linear party I managed to kill him before the enemies reached azra (pushback used once, and the only hassle was the second wave killing one archer). And not really optimized for the kill (no armor on rangers, one had bow 12 and one 8).

I suggest his HP to be bumped to some 40-50k unless you want his minions to serve only as a distraction.

Cool, thanks for the tips. Been kind of slow in getting patches out lately as I’ve been taking a small break to refresh my super-burnt-out brain, but with the Holidays coming up I’ll want the game to be in great shape, so I’ll try to get a new global patch out… soonish.

Created bugs 600 (map issue) and 601 (Zelemir balance, NG+ has the same problem).

Cool, I’m getting back into DQ dev stuff now. I am officially no longer dead!

Pushed a new steam (windows) build live today to fix the sheep achievement bug, and I’ll be active on these forums again, trying to post at least a few times a week from now on.

Okay, so I’m back into the grind. Here’s what’s going on.

  1. I’m working out the last bits of paperwork with a German-language translator. I’ll be working closely with him as I fix the rest of the game’s localization infrastructure and slowly pipe the German version into the game. The final build will have all language packs built-in, none of this separate SKUs for each region if I can avoid it.

  2. I’m fixing some errors in mod support. Since I don’t really have time to make mods myself, I don’t think I’ll discover all the errors unless some brave souls dive into modding and help me find them. Fortunately this is already happening :slight_smile: I just fixed three such bugs today, and I’ve just posted the latest build, 1.0.55, to the test server.

  3. I’m working on the mod documentation. I copy/pasted the public google doc to a Steam Guide. Their interface isn’t great, but it’s serviceable and since the Steam release that’s where the majority of our players are, so it makes sense to put it there. I’m working on Steam Workshop integration, too.

  4. Linux/Mac builds are a bit behind. Unfortunately, my portable hard drive just got bricked which slows down work on those fronts as I need to do some backups before I run my next set of experiments. Rather than hold off on public releases because I’ve been delayed on Linux/Mac, I’ll try to get a new Windows build out whenever I can and then catch up on Mac/Linux at the end of every month or so.

  5. I’m experimenting with porting the Defender’s Quest engine to HaXe, a language which is very similar to Actionscript, and will (theoretically) give us better cross-platform support across devices, as well as a truly native C++ desktop build, and still keep our browser-based demo build. This if purely for R&D purposes, and is the first step in the technical foundation for our sequel. Basically, I put in a few hours on this every week until I reach my first milestone of getting a decent chunk of the game’s interface (title screen, save slot screen, saving/loading save files, etc) working, without big stuff like the overworld and battle system. Once I have achieved that, I’ll extrapolate from the time spent to get a rough estimate on how long porting the rest will take before we decide to go whole-hog on this approach or not. So far it seems promising and is going much faster than expected.

  6. Whenever I get burned out I put some work into http://www.gamasutra.com/blogs/LarsDoucet/20121217/183671/Tourette_Quest__Media_Magic_and_Nostrils.php, my side project. It’s generated so much interest that I think it’s safe to say I will bring this to full release eventually, but I have no timetable for that and I don’t want to distract too much from whatever follow-up we eventually do for DefQ.

  7. I’d like to do cloud support for Defender’s Quest on Steam eventually, but that’s low priority for now as I have so much on my plate.

PARTIAL CHANGELOG (version 1.0.55, test release only):
-Fixed mod support bug: battles were not properly looking for mod data when loading
-Fixed mod support bug: overworld pearl array was not clearing correctly when loading a mod, leading to a crash
-Fixed mod support bug: targeting icons were not showing up in battle when a mod was active

Other news:
The game is selling really, really well. I will post a follow-up to http://www.gamasutra.com/view/feature/168303/defenders_quest_by_the_numbers.php eventually, but for now I will say that we have made more revenue in these last few months than in the entire previous lifetime of the game. So, I think we have a viable business here.

We worked on this game for almost two years now (only about half of that was full-time), and nobody (except our contractors) got paid until after we went on sale in January 2012. So all of this revenue is now filling in the giant hole of not-earning-money I carved out while working on this. (I didn’t go into massive debt or anything, but it was definitely a big risk!)

We are incredibly fortunate to have done this well, and we thank you all for your support. If sales keep up, I’ll be able to continue doing this full-time, our other team members can continue doing part-time work, and we’ll have enough to hire temporary contractors to do stuff like high-quality art, sound effects, and helping with technical stuff.

— Begin quote from "larsiusprime"

Other news:
The game is selling really, really well. I will post a follow-up to http://www.gamasutra.com/view/feature/168303/defenders_quest_by_the_numbers.php eventually, but for now I will say that we have made more revenue in these last few months than in the entire previous lifetime of the game. So, I think we have a viable business here.

We worked on this game for almost two years now (only about half of that was full-time), and nobody (except our contractors) got paid until after we went on sale in January 2012. So all of this revenue is now filling in the giant hole of not-earning-money I carved out while working on this. (I didn’t go into massive debt or anything, but it was definitely a big risk!)

We are incredibly fortunate to have done this well, and we thank you all for your support. If sales keep up, I’ll be able to continue doing this full-time, our other team members can continue doing part-time work, and we’ll have enough to hire temporary contractors to do stuff like high-quality art, sound effects, and helping with technical stuff.

— End quote

And just think, you still haven’t experienced the surge of revenue that is the Christmas sale or the Humble Bundle. :slight_smile: I’ve tried to do my part here and there the past year to try to pimp the game out as best I could and spread it around the communities I frequent, ever since it debuted on Kongregate.

You guys really did prove that there’s a market out there for SRPG+TD mashups that very, very few developers have tried to explore. I look forward to preordering your next game. :smiley:

Hey all, the Holidays are almost upon us :slight_smile:

Has there been any more work on increasing the level cap or having it adjustable by the modding?

I saw you had made a post several months ago about it being hard coded, but wasn’t sure if there’s been more progress or attention to it.

If this has been address recently sorry for the repost!

Overall really enjoying the game, but as I am hitting the level I’m losing interest in just spamming every dungeon for perfects.

Thanks!

Haven’t made the switch yet to make it moddable. It will be pretty easy to do, I just have a pretty long list of things to do for the next patch.

Just put up version 1.0.56 on the test server. This is a NON-PUBLIC testing-only release.

Changes:
-Minor bugfixes to mod support
-Fixed various broken achievements
-Added localization menu
-Added first bits of German localization data

The biggest change is localization into German. Now, you can change the game’s locale (language) from the save slot screen. Click on the button with a flag, and it will bring up a menu of all the supported localizations. Currently we only have two locales, en-US (American English) and de-DE (German German). German is not finished at the moment, so most of the text there is just a copy of the English data. I have the translator’s first draft of enemy data, though, so that will cover enemy names & descriptions. This is just a first pass so we will still need to correct typos, etc, and the translator will still have questions for me re: context, etc, so there might be some blanks.

Localization changes how the game reads text. Previously, game text would be either hard-coded or read directly from a data file. Now, I put “flags” like $EN_NORMAL_FLAV_TEXT for a Vanilla Revenant’s flavor text. At the moment that text is read, the game looks up the entry for that flag in the current language’s database.

In theory, this means that all you have to do is switch the locale, and as long as all the text is provided, you’ll seamlessly get new text in the supported language.

I’m imagining we’ll see a lot of bugs where the game will “forget” the current locale, or display raw flags instead of the actual text, or just crash. So be on the lookout for that.

As a reminder, if you switch to German and see a lot of english text, that’s expected - the only german text that is actually german right now is enemy names and descriptions. I’ll add more as soon as the translator finishes them.

At this point it is also possible to add fan or community translations of your own. I don’t have time to write the documentation for that just yet, but the more adventurous of you can take a peak in the game’s bin/locales/ folder and might be able to reverse-engineer it in the meantime. I’ll write up a full guide soon, and I’m talking to my lawyer tomorrow about what sort of licensing deal we’ll have to work out with fans who want to contribute fan translations so that we can distribute them with the full commercial game. I’m guessing some sort of Creative Commons license will do.

New test build, version 1.0.57

No real changes except for more text has been stripped out and placed in the localization files, particularly data_system.csv.

Things to look out for:
-anywhere text is displayed, see if there’s any display glitches.
-try opening menus with text in them, particularly all the option menus, etc.
-does switching to the german locale cause any problems?

Known issues:
-German locale is not finished, 90% of the text will still be in english, this is expected. Only enemy names/descriptions are in for German at the moment.

The game might crash in certain instances because of errors in text loading. If you see this, take a screenshot of the error and submit a bug report.

Also - instructions for localizers!

viewtopic.php?f=14&t=1234&p=3794#p3794

Version 1.0.58 is up on the test servers!

Changelog:
-Localization, Localization, Localization!
-Data now Localizable:
–Bonus challenge titles
–Defender skill names
–Enemy names, descriptions
–Item names, descriptions
–Journal data
–Cutscene data
–Flavor/Status names
–“System” text
----Title screen text
----Options menu & sub-menus
----“Like us” menu
----Status/flavor descriptions
----Stat names & descriptions
----Strong (resist/evade) descriptions
----Skill tree UI descriptions
----Targeting descriptions
----Battle difficulty tooltips
----Miscellaneous words (scrap, cost, defender, etc)
-Now available in German:
----Enemy names/descriptions
----Item names/descriptions
----Flavor/Status names
----Flavor/Status descriptions

So what this means is that most of the game’s localizable text is now being loaded separately from the rest of the data, so theoretically if you were to have all the required text on hand, there’s no reason a portuguese, finnish, or any other extended-latin-character-set translation couldn’t be up and running tomorrow.

A few things are still hard-coded or baked into data files, but I think we’ve got most of the stuff now, including almost all relevant gameplay information, as well as journal and cutscene content. We’ve got a bit more of that translated, too, so the German language version now has enemies, items, and flavors translated. Again, if you run the game in German and most stuff is still in English, that’s expected.

Bugs to be on the lookout for: anywhere there’s text, the game could crash. Particularly anything related to anything in the above list. Also, you might see random or the word “null” randomly pop up in the middle of some dynamic text, this would mean I hadn’t done the localization support correctly in that spot. If any of you see stuff like that, let me know so I can fix it!

With this done, the bulk of localization is finished. All I have to do now is fix the inevitable bugs, hunt down the few remaining hard-coded and baked-into-data strings, and wait for our translator to finish. Then we find some people who speak German to pore over the text and proof-read/help us edit it, etc, and that job is done. My goal is to have that finished by the start of February.

Meanwhile, I’ll be cranking away on bugs I’ve been ignoring for a while. I finally stopped being lazy and got myself some better project management tools.

So:

Milestone 1: Stabilize Defender’s Quest
—Fix bugs
—Localize to German
—Synchronized Build deploy across platforms (defendersquest.com, GOG, Steam, Kong, etc)
—AIRless build + clean, simple installer for Windows (detects and removes old AIR version of DefQ if you want)

Milestone 2: Finish up w/ Steam
----Finish Mod Support
----Mac/Linux steam integrations
----Steam Workshop integrations
----Steam Cloud integrations
----Mod documentation
----Localization documentation
----Modify EULA to be more fan-friendly RE: Mods and Localizations

After that’s done, it’s full steam ahead on the next DefQ game. We’ve already started on it in various ways, but these two milestones would put a bow on DefQ1 and say “that’s done.”

Okey dokey, a minor update, but an important one:

I’ve just uploaded version a new 1.0.58 package to the test servers. This has no new features, but it tests a new windows installer. This is the Adobe AIR-less version I’ll be deploying publicly soon, and I want to check that it correctly identifies the old version of the game and asks you if you’d like to uninstall that first before installing this.

Also comes with an uninstaller, and I’ve tested it locally on my machine and it seems to work.

Please let me know if there’s any problems!

Once this is deployed, I’ll also be removing the old outdated “compatibility mode” builds, as this should solve everyone’s problems.

In other news, I believe we should be able to integrate the Steam SDK with mac now, and we should have a Steam Linux version up and running soon. I’m shooting for end of this week, but we’ll see how it goes.

— Begin quote from "larsiusprime"

This is the Adobe AIR-less version I’ll be deploying publicly soon, and I want to check that it correctly identifies the old version of the game and asks you if you’d like to uninstall that first before installing this.

— End quote

Didn’t work for me - but there are a few possible reasons:

  • I had 1.0.53 GOG installed
  • I had the game in non-standard location
  • and I even moved it to a different place.

Good news is that the new installer will install it where I want - the previous one, when told to install to d:\dq, installed to d:\dq\Defenders Quest. (Which explains why I moved it to a different place - I wanted it in d:\dq) - and it seems to work just fine.

Defender’s Quest version 1.0.59 is now available on the testing page. Remember, PM me if you want tester access.

Changelog for 1.0.59:
-Fixed Shock lightning eternal stun bug
-Fixed incorrect battle preview stats
-Fixed crash bug when trying to open a battle preview - related to untranslated strings
-Both sheep achievements confirmed working
-Fixed “casual mode screws battle preview tooltips forever” bug
-Fixed bug where battle preview scroll wouldn’t center properly on “the way out” and “following zelemir” battles
-Fixed “create legal terrain by exploding crystals” bug
-Spell info no longer shows up for non-learned spells
-More game text is now localizable
-Started adding per-locale UI tweaks/offsets, using to keep german text from overflowing buttons & UI
-Loading a locale that is missing files will no longer crash, and will display a warning indicating which files are missing (also substitutes missing files with english version)
-Game now checks locales against the default locale (en-US) to see if any strings haven’t been translated. If so, it will give you a warning indicating which ones are missing, to aid the translator.

Defender’s Quest version 1.0.60 is now available on the testing page. Remember, PM me if you want tester access.

Changelog for 1.0.60:
-Fixed keymapping freeze glitch related to Numeric “+” button
-Fixed “Charalatan’s Staff” save import glitch
-Fixed bug with Slak’s name in NG+ reverting to default
-Fixed bug with localization safety check giving wrong numbers
-Exposed Part Screen strings to localization
-Exposed Overworld strings to localization
-Exposed Achievement data and Achievement UI strings to localization
-Exposed Video UI strings to localization
-Exposed Defender Menu (battle) strings to localization
-Exposed Save Menu strings to localization
-Exposed Town Menu strings to localization
-Exposed Recruit Menu strings to localization
-Exposed “You Got” UI strings to localization
-Exposed Mod UI strings to localization
-Exposed Mod, Config, and Language button strings to localization
-Locale automatic “safety check” now tells you not only how many strings are missing, but which files they are missing from
-Started to add korean character text support, got overwhelmed/terrified, will do that later :slight_smile:

Getting steadily closer to pulling all the hard-coded text out of the game. It just seems to be everywhere!

Oh, and another - I’m adding safety checks pretty much everywhere to keep untranslated and undefined locale strings from crashing the game. If the current locale does not have a translation for a particular piece of text, the game should just display the raw text flag, like, “$MISC_OKAY” or “$ITM_W_SWORD”, etc. The idea is to make it as easy as possible to the translator to get an idea for what is missing, and where.

Since I pulled text out of all the above things, any of those parts of the game are now vulnerable to bugs. I’m going to take a short break from localization support and try to stabilize the build. I’m now working on some Steam/Mac+Linux integrations that I want to release soon, hopefully early next week. Once that’s done, I’ll finish up the localization stuffs.

To all our fan translators, thanks for working with us on this, we really appreciate it.

Defender’s Quest version 1.0.61 is now available on the testing page. Remember, PM me if you want tester access.

Changelog for 1.0.61:
-Steam achievements work on Mac!
-Added some comments to localization files
-Fixed “healer won’t attack in heal mode” bug
-Fixed “disappearing APC’s” bug
-Added Coyot’s work-in-progress Czech translation