{"id":574,"date":"2010-09-27T00:42:41","date_gmt":"2010-09-26T23:42:41","guid":{"rendered":"http:\/\/www.puppygames.net\/blog\/?p=574"},"modified":"2010-09-27T02:32:24","modified_gmt":"2010-09-27T01:32:24","slug":"revenge-of-the-titans-1-52-and-very-cool-drm","status":"publish","type":"post","link":"https:\/\/www.puppygames.net\/blog\/?p=574","title":{"rendered":"Revenge of the Titans 1.52, and Very Cool DRM"},"content":{"rendered":"<p>I&#8217;ve just uploaded the latest and greatest <a href=\"https:\/\/www.puppygames.net\/revenge-of-the-titans\">Revenge of the Titans<\/a>, version 1.52, which is a mostly hidden-behind-the-scenes sort of update, and lots of little bugfixes. As per usual point your browsers at the following links, and if it doesn&#8217;t say 1.52 on the title screen or the installer, that means you&#8217;re still getting the cached version from our content delivery network provider (<a href=\"https:\/\/simplecdn.net\">simplecdn.net<\/a>), which is annoying, because I especially purge the caches every time I do a new upload!<\/p>\n<p><a href=\"https:\/\/download.puppygames.net\/SetupRevengeOfTheTitansDemo.exe\">Windows<\/a><br \/>\n<a href=\"https:\/\/download.puppygames.net\/RevengeOfTheTitans_MacOSX.zip\">Mac OS X<\/a><br \/>\n<a href=\"https:\/\/www.puppygames.net\/applets\/RevengeOfTheTitans.jnlp\">Linux<\/a><\/p>\n<p>Linux users &#8211; we are aware that <em>Java Webstart is completely rubbish<\/em> and we&#8217;d like to give you a completely standalone application with an embedded JVM in it and so on &#8211; we just have no idea how to actually do it yet \ud83d\ude42<\/p>\n<p>Also, we have finally finished implementing the <strong>coolest DRM ever invented.<\/strong><br \/>\n<!--more--><\/p>\n<h4>Bugs Fixed<\/h4>\n<ul>\n<li>Fixed: At certain resolutions the map&#8217;s allowed to scroll past the edges<\/li>\n<li>Fixed: Map too narrow for my fullscreen display and the scrolling breaks<\/li>\n<li>Fixed: if a turret or capacitor fires a shot it can&#8217;t be sold in the Undo period<\/li>\n<li>Fixed: if a factory or collector collects it can&#8217;t be sold in the Undo period<\/li>\n<li>Fixed: if a droid factory creates a droid it can&#8217;t be sold in the Undo period<\/li>\n<li>Fixed: awesome medal awarded whilst still in build mode<\/li>\n<li>Fixed: more save\/load restore game problems<\/li>\n<li>Fixed: factory mining effects were missing after restoring a game<\/li>\n<li>Fixed: gidrahs squashing trees cancelled your Pristine medal<\/li>\n<li>Fixed: laser not firing at anything<\/li>\n<li>Fixed: weren&#8217;t being awarded Efficiency award when all crystals mined<\/li>\n<\/ul>\n<h4>New Features and Enhancements<\/h4>\n<ul>\n<li>Ranks now have graphics insignia<\/li>\n<li>Security enhancement: maximum 1 registration by default; send link by email to unlock next one<\/li>\n<li>Security enhancement: store &#8220;all-time&#8221; registration count and enforce absolute maximum<\/li>\n<li>The Coolest DRM Ever<\/li>\n<li>Unlock-next-registration page<\/li>\n<\/ul>\n<h4>Balance<\/h4>\n<ul>\n<li>Scanners now cost $7500 to research<\/li>\n<li>Cooling towers now cost $2500 to research<\/li>\n<li>Nerfed hitpoints of Moon and Mars bosses<\/li>\n<li>Slightly more crystals as time progresses<\/li>\n<li>Difficulty tuning more closely related to research progress<\/li>\n<li>Adjusted points required to attain various ranks<\/li>\n<li>Adjusted points gained from certain achievements<\/li>\n<\/ul>\n<h4>Internal<\/h4>\n<ul>\n<li>Increased streaming sound buffer size and thread priority to fix stuttering on the odd machine<\/li>\n<li>Don&#8217;t render frames that haven&#8217;t changed<\/li>\n<li>When a restore game fails we now keep the broken save file for later examination<\/li>\n<li>Optimised rocks and scree sprites<\/li>\n<li>Endless mode fully underway<\/li>\n<li>Logging now begins much earlier in application initialisation process<\/li>\n<\/ul>\n<h4>What&#8217;s all this about DRM?<\/h4>\n<p>Since the year 350BC, Puppygames have all had DRM. Oh noes!!11!! Shock! Horror! Puppygames have DRM! Boycott all their shitty games! Find inferior open source \/ Flash alternatives and say you&#8217;d rather play them all day than give evil Puppygames a single cent of your filthy lucre! Use DRM as an excuse to install Trojan riddled spyware installs of Puppygames!<\/p>\n<p>Well, except Puppygames DRM is a bit different to other flavours of DRM.<\/p>\n<p>Nasty Big Corporation Ltd&#8217;s idea of DRM is that you are all <em>thieving piratey scum<\/em> who shouldn&#8217;t be trusted alone in a shop without being closely monitored by a big hairy security guard. Nasty Big Corporation Ltd likes to install rootkits on your PC. They like to insist on always-online validation to a server that sometimes goes titsup and stops you from playing. They&#8217;re pretty insistent that if you install the game on a couple of PCs that you&#8217;re probably just a filthy pirate, and that if you want to install it on your kid&#8217;s computer upstairs as well that you owe them another $59. Certain ones also reckon if you&#8217;re dissatisfied with a game in any way and want your money back you damned well can&#8217;t have it, and if you then go to the trouble of extracting the money back out of your credit card company, they erase <strong>all<\/strong> your games without any comeback, because unfortunately the small print dialog box you clicked through to get to your game said you agreed to this.<\/p>\n<p>Puppygames does it completely the opposite way around!<\/p>\n<p>Firstly and foremostly: <strong>if you don&#8217;t like our games, or they don&#8217;t work, we always refund you.<\/strong> Although we say no questions asked, we do like to ask anyway \ud83d\ude42 But we&#8217;ll never say no. Though we&#8217;d like to point out a couple of things: if the demo works, so does the full game, so you&#8217;d be kinda daft to buy the game without trying the demo first; and if you honestly didn&#8217;t think the full game was worth the cash, don&#8217;t be expecting to play it after asking for a refund, because it will mysteriously turn back into a demo again. What! You have a back door! I hear you cry. No, it&#8217;s a front door, and here&#8217;s me telling you about it. If your game is refunded because it doesn&#8217;t work or you don&#8217;t like it, it&#8217;ll connect to Puppygames, and find out, and turn back into a demo. Which of course should be just fine with you. Can you ever imagine a position where we&#8217;ll abuse this ability? No, because we&#8217;d look like total dicks.<\/p>\n<p>To date, only <strong>18<\/strong> customers have ever asked for a refund in 7 years. Because we use <a href=\"https:\/\/www.bmtmicro.com\">BMTMicro<\/a> as our payment provider we&#8217;ve never had a single chargeback issued to us either, because <strong>we always refund.<\/strong><\/p>\n<p>Secondly, <strong>we want you to share the full game with your friends and family.<\/strong> Yes, that&#8217;s right. We <em>encourage<\/em> you to spread the love to the people you care about. A Puppygames registration has your full name and email address encoded into it from your order (we&#8217;ve got your full postal address too, but that doesn&#8217;t get sent to the client any more). We think that anyone you care to share this information with, you probably trust enough to share your CDs and books with too, and so we also think you&#8217;d share your games with them. Your name flickers up on the title screen for a few seconds when the game starts just to remind everyone whose game it is, and then it fades away.<\/p>\n<p>Thirdly, we think <strong>codes and keys are crap<\/strong>. They&#8217;re easily forgotten, lost, whatever. This is why <strong>we only need your email address to register your game and nothing else.<\/strong> You never forget your email address! (Although, ahem, it still seems a few people manage to&#8230;) But wait! Some scrote who knows your email address could potentially just grab a Puppygames game they think you might have bought, and whack in your email address, and bingo, they&#8217;ve registered it! Without you knowing! Without us caring! And <em>what&#8217;s worse<\/em>, they&#8217;ve even found out where you live and what you had for tea last night! <strong>Fear not.<\/strong> Our erstwhile friend <a href=\"https:\/\/www.wolfire.com\">Jeffrey Rosen from Wolfire<\/a> pointed out this rather glaring security flaw to us. Fortunately, it is now nice and fixed. The email address only works <em>once<\/em> (which would be the use case of 90% of our customers or thereabouts). The next time it sends you an email with a link in it that unlocks the registration process again, which means you know that someone&#8217;s trying it on. It also means that your name is safe and sound, unless the extremely unlikely event occurs where someone manages to snipe your email address in between you buying the game and registering it. We believe that the tradeoff between simplicity and the likelihood of this security breach are perfectly favourable. And if you disagree, well, we&#8217;ll fix it for you, just ask. Your name doesn&#8217;t have to be encoded if you don&#8217;t want it to be. If you&#8217;re a super famous dude who announces to the world that you&#8217;re buying Revenge of the Titans, get in touch, and we&#8217;ll make sure that in the unlikely event someone snipes your email address and we don&#8217;t disable it after a few fails that your name is safe with us.<\/p>\n<p>Fourthly, <strong>we do have a limit on the number of times the unlock link works.<\/strong> It&#8217;s 10 registrations. After that, it stops working, and instead it emails both you and us, and that email says, contact Puppygames and we&#8217;ll give you more registrations. All you have to do is reply to that email and ask, and <strong>we always reset your registration count<\/strong>, no questions asked. We trust you guys not to put that link in your email up on a warez site somewhere (and we know you don&#8217;t want your name and email address shared with the whole of teh internets do you?) You trust us to always reset your registration count when you want it.<\/p>\n<p>Fifthly, <strong>our DRM is totally failsafe.<\/strong> What the hell does that mean? I hear you mutter. It means if our DRM system breaks, like for example our server melts down with the floods of sales we unfortunately aren&#8217;t getting, or Puppygames goes completely bust because you buggers aren&#8217;t buying nearly enough games for us to survive*, or there&#8217;s some sort of crazy internet glitch, if you&#8217;ve paid for the full version of any of our games <strong>they will still work and work forever more!<\/strong> Whoa! How have you clever geniuses done that you cry. Well, rather than wait for some bright spark to reverse engineer our painfully transparent and badly written Java code, I&#8217;ll just tell you. Firstly, if you&#8217;ve ever registered a game, it stays registered forever and doesn&#8217;t ever need to contact Puppygames again. <em>It will do, if it can, because that&#8217;s how we deactivate refunded games.<\/em> But it doesn&#8217;t have to in order to continue working. Hell, you could even <em>firewall it<\/em> after registering, get a refund, and keep your full game, smug in the knowledge you&#8217;ve fleeced me &#038; Chaz out of $13.37, which amounts to about 5% of our monthly income. Yes, really. Well done you. Secondly, if the game can&#8217;t contact the Puppygames installation server when it&#8217;s first run, <strong>it actually becomes a full version automatically<\/strong> until such time as it does contact Puppygames. WTF! Yes, our demos are actually full versions. Install them on the kids&#8217; PC upstairs that doesn&#8217;t have a network connection. Firewall Revenge of the Titans so it can&#8217;t ever contact Puppygames and get your totally free full game, and again feel smug that my little 2yr old girl won&#8217;t get any Christmas presents this year.<\/p>\n<p>But we know you won&#8217;t do that, because we trust you. We depend on you. So go out there and spread the Werd. Puppygames DRM is about <em>your<\/em> rights as much as ours.<\/p>\n<p>In the meantime, I&#8217;ve just got to make builds of the other three games tomorrow that feature the final bit of DRM failsafe cleverness in them, and hopefully fix that pesky crash on some Macs in Titan Attacks when the first mothership appears.<\/p>\n<p>* Hint: you&#8217;re not \ud83d\ude41<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve just uploaded the latest and greatest Revenge of the Titans, version 1.52, which is a mostly hidden-behind-the-scenes sort of update, and lots of little bugfixes<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-574","post","type-post","status-publish","format-standard","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/www.puppygames.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/574"}],"collection":[{"href":"https:\/\/www.puppygames.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.puppygames.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.puppygames.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.puppygames.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=574"}],"version-history":[{"count":9,"href":"https:\/\/www.puppygames.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/574\/revisions"}],"predecessor-version":[{"id":581,"href":"https:\/\/www.puppygames.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/574\/revisions\/581"}],"wp:attachment":[{"href":"https:\/\/www.puppygames.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.puppygames.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.puppygames.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}