Dev Log

Do you think you could add one more achievement to the game for seeing all five endings? They’re too well done for people to not know they’re there. :slight_smile:

Hey guys!

@Hollow: not a bad idea!

Version 1.0.62 hit the test servers recently. Right now I’m trying to stabilize the build so I can get fresh updates out. Since the language packs aren’t finished and tested yet I will just release the next public update (probably 1.0.63) without them, but they’ll make it in as soon as they’re done, proof-read, and tested.

I noticed with the mac version that if I include a steamapp_id.txt file in the right directory, it will actually connect to Steam (if running in the background) without having to be launched from the client. This is very helpful as it lets me test things without having to deploy it through the Steam interface or doing ugly “sneak” installs. I’ll test the Windows Steam version this week, hopefully, and also our long-neglected Linux Steam version, which has been ready forever but I’ve been postponing.

Anyways, 1.0.62, regular non-steam test version.

Changelog for version 1.0.62:
-Fixed localization bug with redirects (use invocation now before each redirect string)
-Switched localization newline syntax from $N to
-Fixed bug with healer logic where “HEAL” targeting won’t save
-Fixed several crash bugs with in-battle dialogue (recently introduced)
-Added latest stuff from coyot’s Czech translation
-Added latest stuff from official German translation (going a bit slow due to exams, etc)
-Fixed various minor typos here and there

Okay, so some new stuffs!

Today marks two fun bits of news. First of all, we have a Steam Linux version working and uploaded. You can find information for how you can test that on the tester page. Once we have confirmation that it’s working we will make it public and live. It doesn’t have achievements for now but those are coming soon.

Next, I started development on the UI for Defender’s Quest 2 as an open-source project, haxe-flx-ui, which you can find here:

https://github.com/larsiusprime/haxe-flx-ui

And which we first talked about here:

http://haxeflixel.com/forum/general-dis ... evelopment

So, rather than toil away in the darkness reinventing the wheel on a project that took up an enormous amount of development time, I’m going to port over a lot of my basic UI widgets and share them with the community, and hopefully I can not only speed up development for myself and get a better product in the end, but also let everyone in the community share in the benefits freely.

Okay, so some new stuffs!

Today marks two fun bits of news. First of all, we have a Steam Linux version working and uploaded. You can find information for how you can test that on the tester page. Once we have confirmation that it’s working we will make it public and live. It doesn’t have achievements for now but those are coming soon.

Next, I started development on the UI for Defender’s Quest 2 as an open-source project, haxe-flx-ui, which you can find here:

https://github.com/larsiusprime/haxe-flx-ui

And which we first talked about here:

http://haxeflixel.com/forum/general-dis ... evelopment

So, rather than toil away in the darkness reinventing the wheel on a project that took up an enormous amount of development time, I’m going to port over a lot of my basic UI widgets and share them with the community, and hopefully I can not only speed up development for myself and get a better product in the end, but also let everyone in the community share in the benefits freely.

Also - barring any major bugs discovered in build 1.0.63, I’m going to push it live to Steam/GOG/FastSpring tomorrow. This will include mac achievements on steam for the first time!

The orthogonal ice spear can be annoying in maps where you’d like to set them up diagonally. If the angle is far enough from 45 degrees, it will go straight to 0 or 90, taking you right out of the diagonal and making you lose some precious hits. This is a problem in maps such as Following Zelemir, where enemies follow a long 45-degree path. It would be nice to either have the code apply also to angles near 45 degrees to make them go to 45 (making it worthwhile to place your ice mage this way), or replace that code with an initial direction that’s more likely to result in orthogonal directions to begin with (either by adjusting the projectile’s starting point or by adjusting its first target point).

— Begin quote from "larsiusprime"

Also - barring any major bugs discovered in build 1.0.63, I’m going to push it live to Steam/GOG/FastSpring tomorrow. This will include mac achievements on steam for the first time!

— End quote

Think you could find a bit of time to address bug 601 (making zelemir slightly tougher) and also consider my proposal for nerfing Zelemir’s Army as discussed http://www.defendersquest.com/theforum/viewtopic.php?f=3&t=1216. At least in NG+, the difficulty jump is really way too high (and surprisingly the next level features weaker enemies)

Oh, and last but not least - linux build for Gog? Will it be considered? I most certainly don’t want to sign up to Steam :slight_smile:

Hey there!

@Zombie: Not a bad thing to consider, I can start testing that modification in a future build, but…
@Coyot: Good points and I do want to address them eventually, but…

If there’s one thing I’ve learned, it’s “don’t monkey with a stabilized build right before you deploy it.” So, I have to cut this release of somewhere so I’m doing that now :slight_smile: There’s no hyper-critical bugs being reported last I’ve checked and I’ll thumb through the bug server today just to check. If all’s well I’ll push out this release, which is long overdue. After that’s done I’ll get to work on the next batch of things and I’ll see if I can address the issues above.

Also @Coyot:

GOG only recently started supporting Mac games, so as far as I know they don’t support Linux. That doesn’t mean I can’t pester them about it - it seems like a natural progression for them, especially since 95% of their catalog runs on DosBox, which runs great on Linux as far as I know.

If that doesn’t work I’ll ask them if there’s other ways I can make the Linux build available to GOG customers. Wouldn’t take much to just put it on their servers, I think the problem is that they don’t want to be on the hook for official customer support unless/until they’re ready for it.

Rolling out version 1.0.64, comprehensive changelog.

Status:
-Uploaded to GOG FTP
—>Mac [done]
—>Win [done]
-Uploaded to Steam
—>Win [done]
—>Mac [done] (I might have broken this, desperately trying to fix!!!)
—>Lin [beta]
-Uploaded to Public Update Server
—>Win …]
—>Mac …]
—>Lin …]
-Uploaded to FastSpring Store
—>Win …]
—>Mac …]
—>Lin …]
-Uploaded to Desura
—>Win …]
—>Mac …]
—>Lin …]
-Uploaded to Impulse
—>Win …]
—>Mac …]

(Will continue this over the weekend probably)


1.0.64 changelog since ~1.0.52
-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
-More Minor bugfixes to mod support
-Fixed various broken achievements
-Added localization menu
-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)
-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.
-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 Party 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
-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
-Fixed localization bug with redirects (use invocation now before each redirect string)
-Switched localization newline syntax from $N to
-Fixed bug with healer logic where “HEAL” targeting won’t save
-Fixed several crash bugs with in-battle dialogue (recently introduced)
-Fixed various minor typos here and there
-Fixed journal localization bug with localization redirects
-Fixed bug where Healer HEAL logic not sticking on target saving
-Fixed bug where show-dialogue setting wouldn’t stick

Moved this post to a better home, under tech support. My apologies.

Okay, stupidly broke the Steam mac build over the weekend which put a huge kink in my deploy. Don’t I know better than to do a deploy on a Friday? Stupid. Anyways, hopefully Steam techs will get back to me soon so I can fix this. ALSO: Never doing a deploy again without an instant-rollback option waiting in the wings. Never again.

Meanwhile, all I can do is carry on. Tinkering with the linux Steam achievements API wrapper and doing other various low-grade chores I’ve been putting off for a while. Getting some other sundry bug reports in from various sources and I’ll deal with those after I sort out and finish the deploy.

Fixed the mac build, and in case you’ve been wondering where I’ve been, you might have noticed a Steam Linux Sale just went live :slight_smile:

http://store.steampowered.com/sale/linux_release/

So Ventero and I have been working hard to get that ready, made it just in time.
As soon as I recover from that I’ll continue with the deploy, now that both of these detours are over.

Then back to bugfixes!

Okay, uploaded a new mac build to our public test branches. Once I get confirmation that that’s working, I’ll finish my super-delayed deploy and get on with my life!

http://steamcommunity.com/app/218410/di ... 392162487/

[size=28]WHERE THE HECK I’VE BEEN[/size]

So, as is becoming a habit around here, I sometimes disappear for weeks at a time without much posting. Let me explain where I’ve been and what’s going on.
For one, there’s been a lot of stuff going on in my family and community that’s been taking me away from work, I estimate I’ve been putting in maybe half-time days for the past 2 weeks at best.

Next, the aftermath of our Steam launch has been a really interesting place development-wise. It used to be after you shipped a game you moved immediately on to the next, b/c sales would immediately drop off to nothing after a month or so. So far, that hasn’t been the case - we’ve got a pretty healthy long tail on Defender’s Quest 1 sales - even at full price during non sales periods. And of course, every sale is like a second, third, fourth, christmas. So this justifies continued development, support, and pursuing further opportunities.

However, I do also need to move forward on the sequel because without a second project we don’t really have a future. So, here’s a comprehensive report about everything I’ve been up to.

[list=1]
:2lr63xek]Managing the Steam Linux launch a few weeks back/:m:2lr63xek]
:2lr63xek]Writing articles, trying to keep up our media presence/:m:2lr63xek]
:2lr63xek]Exploring paid advertising (report forth-coming)/:m:2lr63xek]
:2lr63xek]Preparing for our GDC talk/:m:2lr63xek]
:2lr63xek]Launching a video podcast series/:m:2lr63xek]
:2lr63xek]Exploring porting the original game engine to Haxe/:m:2lr63xek]
:2lr63xek]Managing localization stuff/:m:2lr63xek]
:2lr63xek]Dealing with accounting/taxes (April is right around the corner)/:m:2lr63xek]
:2lr63xek]Paying out revenue shares to the team/:m:2lr63xek]
:2lr63xek]Recruiting talent for Defender’s Quest 2/:m:2lr63xek]
:2lr63xek]Getting onto the Humble Store/:m:2lr63xek][/list:o:2lr63xek]

And a lot more stuff I can’t even talk about. Suffice it to say I’m a bit overwhelmed :slight_smile: Anyways, my goal is to knock things off this list so I can focus and get work done. One of the challenges of running a small business with only one full-timer is that you just have to multi-task and a bunch of stuff loves to hit all at one time. So let’s talk about a few of the above things.

Sales, sales, sales
Sales are the life-blood of a modern digitally distributed game. Every time there’s a sale we see a big uptick in activity and purchases, and our long tail gains a little more strength. I’m constantly pursuing new sales opportunities, and though I can’t announce any details due to NDA, I’m always checking in with Steam, GOG, Kongregate, et al. about new ways to promote the game. The last sale we launched on was the Steam Linux launch sale and we did pretty well, http://www.gamasutra.com/blogs/LarsDoucet/20130228/187569/Defenders_Quest__Our_Steam_Linux_Sale_Results.php

Quick announcement: Impulse has decided to drop us from their service. People who bought the game via Impulse (all 30 of them) can feel free to contact me if they have customer support issues and we’ll service them directly from now on.

Advertising
Most indies say advertising isn’t worth it, but Cliffski of Positech games keeps telling me they really pay off for him. So I ran some experiments - Google AdWords, SomethingAwful, and Reddit ads. I’ll write a full report soon, but basically - Google Adwords is super complicated and I have no idea what I’m doing, SomethingAwful paid for itself in 2 days and proceeded to generate profit for a full month, and I still need to analyze the Reddit results. We had the most success when we could laser-target our ads to a community we already had a presence in and could bank off of that credibility. Google stuff is poweful but I don’t think I know how to use it well enough to make it profitable.

GDC Talk
James and I are giving a talk at GDC, entitled “Storytelling as Problem Solving: Defender’s Quest.”
Storytelling as Problem Solving: Defender’s Quest
Location: Room 2018, West Hall, Date: March 26, Time: 1:45PM - 2:10PM
If any of you will be there, please come see us! :slight_smile: We’ll try to make sure the talk is recorded.

Launching a Video Podcast
As I explain in http://www.fortressofdoors.com/2013/03/youtube-and-new-audiovisual-literacy.html, youtuber’s now have as much or even more influence than traditional games journalists. So, James and I took a free day to recover from work burnout by recording a developer’s commentary “let’s play” of our own game. If you want to see what it’s like design-wise behind the scene, check it out! This is a new way for us to reach a wider audience and has lower friction than other community-building tasks (such as this forum). Our first day of recording got us 2.5 hours of usable footage, enough for 5 episodes. We will push one out every Thursday, and if our efficiency increases, maybe one day we can start posting twice a week, and a single day’s recording can get us somewhere around 5-6 hours of footage.

Haxe
We have been constantly limited by the Flash engine our game is built on, and I’ve been very interested in exploring the open-source Haxe language, which uses a syntax very similar to AS3, but cross-compiles to a multitude of targets, including Flash and C++. I think this will be the future for our studio (I’m already using it for my side project, TouretteQuest), but the question is whether to port over the Defender’s Quest 1 engine and use that as the foundation for DefQ2, or just stick with AS3 despite it’s limitations. The http://www.haxeflixel.com/ project has made this much easier for me.

Since we want to give the game some major graphical overhauls, I’m leaning towards porting it over. We have enough residual revenue to stay alive, and initial results have been promising. I’ll keep you all posted.

Localization
Making slow progress here. I’ve got a nearly complete Czech translation (thanks Coyot!) and our official German translation is basically done except for cutscenes, which our translator is making progress on. My goal is to get this finished by the end of the month. We have Korean, Polish, and various other translations in various stages of progress.

Accounting, Taxes, Money
Dear Lord this is a lot of work. Tax season is almost upon us here in America and I had to get revenue shares out to everybody, deal with all the paperwork, keep the accounts balanced, and make sure my personal and corporate tax returns are all in order. I have a great local accountant to help with this, but it’s a lot of work and not nearly as glamorous and fun as making games.

Recruiting Talent
We are currently recruiting new talent for Defender’s Quest 2. We’re retaining most of our original team, but we are moving in a new direction with our art style - our goal is to make sure that everything is coherent, polished, and high-quality. I loved Karen and Tyvon’s work from the last game, but with our own legacy stuff mixed in from alpha and no coherent art direction solidified in the beginning things were kind of a hodge-podge. I’ll have more announcements about what the art will look like coming shortly. I will say we’re moving away from pixel art and towards a more consistent HD-style throughout so that we’re not locked in to a single native resolution. This means Tyvon won’t be joining us for the next game, but if you need an awesome pixel artist dude I can give you a recommendation :slight_smile:

As for the new people we’re recruiting, I can’t announce anything yet, but I will simply say two high-profile individuals have expressed interest in our game and we’re doing everything we can to land them.

Humble Store
We’ve been accepted onto the Humble Store and will be integrating that on to our site soon. We will be removing FastSpring as soon as we do that, but will still provide support to all of our old FastSpring customers.

Since Humble Store and the Humble Indie Bundle are run by the same people, I know the first question on your minds is, “will Defender’s Quest be in the next bundle?” All I can say for certain about that is that now that I have an in with the Humble Store, they know about our game and I have made my pitch to them. From here on out it’s up to them to decide – if they do say yes, I’m guessing I won’t be able to announce it.

So. That’s a short list of what I’ve been doing. I am looking forward to sweeping as many of these things off my list as possible so I can just get back to development and support.

1 Like

Re: Impulse. Did they seriously drop you because you published an article that showed you only got 30 sales off of them? That seems awfully petty, especially since it seems like you got permission first.

Re: Humble Store. Pretty awesome news. :slight_smile: Couldn’t be happier for you, I just hope you get to enjoy the benefits of the summer sale before you get in any Humble Bundles. Or, would being in a Humble Bundle benefit future sales, I wonder?

Also, there’s a missing text bug report on the board if you haven’t seen it.

Impulse’s letter telling us we were dropped from their service was dated two weeks before the article ran :slight_smile: So probably it was just because we weren’t worth their time at the sales we were getting, outing them had nothing to do with it.

I am diving into bug reports now, there’s some pretty big ones in there. It’s like coming back from vacation and flipping the lights on… SO MANY COCKROACHES. MUST SMASH THEM ALL.

Will dig into this monday!

Edit: Misread something, nevermind!

Pushed two bug fix patches live to the test server in version 1.0.68

-Fixes Charlatan’s staff un-upgradeable bug (originally caused by getting an extra copy of the un-upgraded version of the staff that you shouldn’t have)
-Fixes random freezes associated with Healer level 5 boost

Just added an official fan translation sign up form: http://www.defendersquest.com/fanlation.html

Also, this is what the buy page will look like shortly:

Okay, so it’s been ages since my last dev log post. Going to try to get into this more regularly again.

I will upload a new build to the test server tomorrow.

1) Audio support for mods. Finished this yesterday. You can now provide your own music and sound effects for mods, and YES, this includes a new feature for cutscenes specifically designed with voice-over in mind.

Simply include the attribute sfx=“sound_id” in a tag in a cutscene, and it will play the sound. This is superior to simply placing a tag right before the tag, because sfx’s called from within a tag are tied to that line. This means that if you advance before the sound finished, it cuts it off. This way you can go back and forth through voice-over dialogue that’s tied to lines in the manner you would expect.

2) Cloud save support. I was planning on charging full steam ahead with Steam Workshop support and ignore cloud saves for now, but apparently integrating with Steam Workshop is BUILT on the Steam cloud API. That makes sense. So I decided to go ahead and implement cloud saves as the first step of figuring out that process. Got that working today, and I’m working on a nicely-designed interface for dealing with steam cloud synch conflicts. In general, the game will never over-write your local save slots with cloud saves unless your local save slots are empty.

Logic goes like this. For each save slot:
–Case 1: local exists, cloud !exists* : copy local to cloud.
–Case 2: local !exists, cloud exists : copy cloud to local.
–Case 3: local !exists, cloud !exists : do nothing
–Case 4: local exists, cloud exists : reconcile (see next part)

*"!" means “not” in programmer-speak.

Reconcile logic:
Check various progress indicators in each save slot (# of character classes unlocked, new-game+ exists or not, number of stars, bonus progress, etc) and make a guess as to which one seems like it has more progress. Then, present the user with a choice screen asking which save slot is better, with each save slot marked as “cloud” or “computer” and the “best guess” marked as such.

So far it seems to work with my various test cases and is properly reading/writing from the steam cloud. I’ve created some test files that can generate all sorts of fun conflicts (many of which are unlikely in real life) and it handles things pretty well.

Generally conflicts shouldn’t happen very often. Theoretically, they should only happen if you use multiple computers to play DefQ, or you have really weird connectivity issues. Also, you can turn cloud saving on and off.

I have a lot of other stuff to do:
–Fix neglected bugs
–Fix broken kongregate download service for full game owners
–“Langify” the last bits of hard-coded text
–Fiddle with UI elements in German/Czech translations
–Integrate Steam Workshop
–Update mod documentation