<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[GoldFire Studios]]></title><description><![CDATA[A story in every pixel.]]></description><link>https://goldfirestudios.com/</link><image><url>https://goldfirestudios.com/favicon.png</url><title>GoldFire Studios</title><link>https://goldfirestudios.com/</link></image><generator>Ghost 3.13</generator><lastBuildDate>Sun, 19 Apr 2020 22:11:34 GMT</lastBuildDate><atom:link href="https://goldfirestudios.com/447a9ba2f2eda7db473d2559c153b5/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Nordic.js: Building Distributed Systems]]></title><description><![CDATA[<p>Working with cutting edge technology at GoldFire Studios has afforded me the opportunity to share what I've learned with the community by speaking at development conferences all over the country. I was thrilled to have the opportunity to take those lesson overseas when I spoke at the incredible <a href="https://nordicjs.com/2019">Nordic.js</a></p>]]></description><link>https://goldfirestudios.com/nordic-js-building-distributed-systems/</link><guid isPermaLink="false">5e9729117ba79f68befe90bc</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Wed, 06 Nov 2019 14:36:18 GMT</pubDate><media:content url="https://goldfirestudios.com/content/images/2020/04/nordicjs-2.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://goldfirestudios.com/content/images/2020/04/nordicjs-2.jpg" alt="Nordic.js: Building Distributed Systems"><p>Working with cutting edge technology at GoldFire Studios has afforded me the opportunity to share what I've learned with the community by speaking at development conferences all over the country. I was thrilled to have the opportunity to take those lesson overseas when I spoke at the incredible <a href="https://nordicjs.com/2019">Nordic.js</a> conference in Stockholm, Sweden in October.</p><p>While I've spoken at events like <a href="https://goldfirestudios.com/blog/91/My-First-SXSW-Experience-%28and-video-of-my-session%29">SxSW</a>, <a href="https://www.youtube.com/watch?v=DO7uaoMX60o">TEDx</a>, <a href="https://thunderplainsconf.com/">ThunderPlains</a>, <a href="https://libertyjs.com/">LibertyJS</a> and more, none could quite match the unique flair that was Nordic.js. Whether it was the saunas, giant ball pit, barber shop or tattoo parlor, the quirkiness of this conference made it truly one to remember.</p><figure class="kg-card kg-embed-card"><iframe width="800" height="450" src="https://www.youtube.com/embed/GUtd-zEDgjQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><p>But, it wouldn't be a great conference if it didn't have great speakers, and it absolutely delivered on that front as well. I was honored to be included in such a lineup where I, along with the 1200 in attendance, learned from a diverse set of speakers from all over the world.</p><p>My talk was actually inspired by our work on <a href="https://casinorpg.com">CasinoRPG</a>. We ran into growing pains as the user-base expanded as well as server failures and other issues that would cause frequent outages. We needed to build a fully distributed system to achieve a more reliable and stable experience for our players.</p><p>In my talk, I demonstrate the basics of the approach we took and how it can be applied to a wide variety of applications. This begins at a high level and then deives into a practical live coding demo that puts the concepts to work. Besides the above video, you can also find the <a href="https://github.com/goldfire/Building-Distributed-Systems-Node.js">slides and code here</a>.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/nordic01.jpg" class="kg-image" alt="Nordic.js: Building Distributed Systems"></figure><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/nordic02.jpg" class="kg-image" alt="Nordic.js: Building Distributed Systems"></figure><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/nordic03.jpg" class="kg-image" alt="Nordic.js: Building Distributed Systems"></figure><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/nordic04.jpg" class="kg-image" alt="Nordic.js: Building Distributed Systems"></figure>]]></content:encoded></item><item><title><![CDATA[Exocraft Launches on Steam]]></title><description><![CDATA[<p>Exocraft launched on the web just over a year ago, but this was only the beginning of its journey. We've been hard at work making new features, overhauling the gameplay and fixing countless bugs as we approached the full rollout of the game across all platforms.</p><p>Today is the next</p>]]></description><link>https://goldfirestudios.com/exocraft-launches-on-steam/</link><guid isPermaLink="false">5e9729117ba79f68befe90bb</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Tue, 12 Mar 2019 18:42:06 GMT</pubDate><media:content url="https://goldfirestudios.com/content/images/2020/04/exocraft-2.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://goldfirestudios.com/content/images/2020/04/exocraft-2.jpg" alt="Exocraft Launches on Steam"><p>Exocraft launched on the web just over a year ago, but this was only the beginning of its journey. We've been hard at work making new features, overhauling the gameplay and fixing countless bugs as we approached the full rollout of the game across all platforms.</p><p>Today is the next step of that journey as we launched on Steam, the world's largest PC/Mac games store! You get the same great experience with full cross-play support, meaning you can login to your account and play from Steam or the web with everything staying in sync. This also means that everyone playing on PC, Mac and web can play with each other. This will extend to mobile when that experience launches later this spring.</p><p><a href="https://store.steampowered.com/app/793490/Exocraft/"><b>Download Exocraft on Steam</b></a></p><figure class="kg-card kg-embed-card"><iframe width="800" height="450" src="https://www.youtube.com/embed/EZ-Jw5z61QE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><p>As always, we give high praise to all of the open source maintainers out there that have made it possible for us to have a Steam launch like this. As was the case with <a href="https://goldfire.me/casinorpg">CasinoRPG</a>, we again employed <a href="https://electronjs.org/">Electron</a> as the rendering engine for the desktop versions of the game. <a href="https://github.com/greenheartgames/greenworks">Greenworks</a> was another vital project that allows the Steam overlays to work with Electron. We of course continue to do our part with extensive open source onctributions back to the community, including <a href="https://howlerjs.com/">howler.js</a> and <a href="https://github.com/goldfire/democracy.js">democracy.js</a>.</p>]]></content:encoded></item><item><title><![CDATA[Benchmarking AWS, DigitalOcean, Linode, Packet and Vultr]]></title><description><![CDATA[<p>The launch of <a href="https://exocraft.io">Exocraft.io</a> and the subsequent flood of traffic revealed the flaw of our reliance on <a href="https://aws.amazon.com">Amazon Web Services</a> -- bandwidth cost. Within a month of launching, our costs surged nearly 10x entirely due to bandwidth costs on our EC2 servers (it would have been worse if we</p>]]></description><link>https://goldfirestudios.com/benchmarking-aws-digitalocean-linode-packet-and-vultr/</link><guid isPermaLink="false">5e9729117ba79f68befe90ba</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Wed, 18 Jul 2018 14:05:02 GMT</pubDate><media:content url="https://goldfirestudios.com/content/images/2020/04/benchmark-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://goldfirestudios.com/content/images/2020/04/benchmark-1.jpg" alt="Benchmarking AWS, DigitalOcean, Linode, Packet and Vultr"><p>The launch of <a href="https://exocraft.io">Exocraft.io</a> and the subsequent flood of traffic revealed the flaw of our reliance on <a href="https://aws.amazon.com">Amazon Web Services</a> -- bandwidth cost. Within a month of launching, our costs surged nearly 10x entirely due to bandwidth costs on our EC2 servers (it would have been worse if we weren't using <a href="https://cloudflare.com">CloudFlare</a> for our static assets). So, we set out to find an alternate provider that could offer similar performance at a more predictable cost.</p><h3 id="methodology">Methodology</h3><p>No benchmark can be a perfect representation of real-world performance, but tracking multiple metrics over time gets us close enough to make some reasonable decisions. We were specifically interested in network speeds, CPU performance and disk I/O.</p><p>The virtualized nature of cloud hosting makes benchmarking over a period of time vital to getting the full picture. In order to consistently capture these values across various providers, we wrote and open-sourced a Node.js CLI tool called <a href="https://github.com/goldfire/node-cloud-bench">cloud-bench</a> and made it available through <a href="https://www.npmjs.com/package/cloud-bench">npm</a>. With this tool, you can easily specify a time-frame to benchmark and return a CSV with a variety of metrics:</p><ul><li>Network CDN Download (Mbps)</li><li>Network Ping (seconds)</li><li>Network Download (Mbps)</li><li>Network Upload (Mbps)</li><li>CPU Time (seconds)</li><li>Read IOPS</li><li>Write IOPS</li><li>I/O Ping</li></ul><p>We made the tool general-purpose not only so that it would work on a variety of cloud solutions, but also so that others could use it to test for their own purposes. Simple usage examples are included in the repo's README, making it trivial to run extended benchmarks of any cloud platforms you are considering using.</p><h3 id="clouds-tested">Clouds Tested</h3><p>With our goal being to achieve lower and more predictable costs, we had to eliminate major players like Google and Azure, as they suffer from the same high bandwidth pricing as AWS. So, our focus turned to lower-cost providers that offer bundled bandwidth with low overage costs. The prices were all fairly similar, so all we needed to narrow down was which offered the best mix of performance across our three main metrics.</p><ul><li><a href="https://aws.amazon.com">Amazon EC2</a> (C5 - 2 vCPU &amp; 4GB RAM - $62/mo)</li><li><a href="https://m.do.co/c/6c74b301edd9">DigitalOcean</a> (CPU Optimized - 2 vCPU &amp; 4GB RAM - $40/mo)</li><li><a href="https://www.linode.com/">Linode</a> (Linode 4GB - 2 vCPU &amp; 4GB RAM - $20/mo)</li><li><a href="https://www.packet.net/">Packet</a> (Tiny - 4 CPU &amp; 8GB RAM - $50/mo)</li><li><a href="https://www.vultr.com/">Vultr</a> (60GB - 2 vCPU &amp; 4GB RAM - $20/mo)</li></ul><p>This isn't a perfect comparison of servers for a few reasons. First, Packet offers dedicated hardware, but the included Intel Atom C2550 doesn't stand a chance against the Xeon processors the others offer. We also tested CPU optimized servers on Amazon EC2 and DigitalOcean simply because we are looking for the best CPU performance. Even though neither Linode nor Vultr offer a CPU optimized tier, we wanted to test the options we would actually be using if we went with each provider.</p><h3 id="results">Results</h3><p>We ran benchmarks for 24 hours in parallel on all providers to get a sense of average performance and consistency over a full day. The following charts display the results for the main metrics collected.</p><!--kg-card-begin: html--><p><div id="download_cdn" style="height: 375px; width: 100%;"></div></p><!--kg-card-end: html--><p>The CDN download test used 5 different CDNs to benchmark download speeds from various locations around the world. DigitalOcean was the clear winner with an average speed of 47 Mbps, though all but Vultr were in a reasonable range.</p><!--kg-card-begin: html--><p><div id="ping" style="height: 375px; width: 100%;"></div></p><!--kg-card-end: html--><p>Ping was calculated using the <a href="https://github.com/sindresorhus/speed-test">speed-test</a> module, which requests the nearest edge node (meaning it could have been in the same datacenter). Lower is better, and all hosts were reasonably consistent.</p><!--kg-card-begin: html--><p><div id="download" style="height: 375px; width: 100%;"></div></p><!--kg-card-end: html--><p>Download speed also used the speed-test module, but in this case you can see that DigitalOcean and Amazon EC2 doubled the speeds of the other hosts. However, we must keep in mind that it is possible speedtest nodes were hosted in these datacenters.</p><!--kg-card-begin: html--><p><div id="upload" style="height: 375px; width: 100%;"></div></p><!--kg-card-end: html--><p>Upload speeds paint a similar picture as downloads, though all of the hosts were even closer in range.</p><!--kg-card-begin: html--><p><div id="cpu" style="height: 375px; width: 100%;"></div></p><!--kg-card-end: html--><p>This test performed 2.5M random hashing and array operations and calculated the time it took to complete. Amazon EC2 slightly edged out the rest, though DigitalOcean was a close second. Linode and Vultr were nearly twice as slow, with Packet coming in nearly 5x slower (again, expected with Packet's dedicated, but slower CPU). This test really shows that the CPU optimized tiers in EC2 and DigitalOcean aren't just marketing.</p><!--kg-card-begin: html--><p><div id="read" style="height: 375px; width: 100%;"></div></p><!--kg-card-end: html--><p>All of the disk speed tests used <a href="https://github.com/axboe/fio">fio</a> to calculate IOPS. You want a higher number here, and all of the hosts outside of DigitalOcean seemed to have a cap. The Amazon EC2 cap was so low that it actually was not able to complete the test and returned no results.</p><!--kg-card-begin: html--><p><div id="write" style="height: 375px; width: 100%;"></div></p><!--kg-card-end: html--><p>Write speed had a much smaller range than read and actually favored Packet and Vultr, though by a smaller margin than DigitalOcean had on read. It is important to note that DigitalOcean's read and write IOPS were much less stable, likely due to the lack of limits like the other providers.</p><!--kg-card-begin: html--><p><div id="ioping" style="height: 375px; width: 100%;"></div></p><!--kg-card-end: html--><p>This was calculated using the <a href="https://github.com/koct9i/ioping">ioping</a> tool and is similar to network ping, but measures disk latency instead. Again, Amazon EC2 failed this test, with DigitalOcean showing by far the best consistency and speeds across the 24 hours.</p><p>The averages for each metric and each provider are outlined in the following table.</p><!--kg-card-begin: html--><table width="100%" cellpadding="15" style="font-size: 20px; background-image: none !important;">
  <tr style="font-weight: bold; text-align: right; background: #d0cdc3">
    <td width="23%"></td>
    <td width="17%">Amazon EC2</td>
    <td width="15%">DigitalOcean</td>
    <td width="15%">Linode</td>
    <td width="15%">Packet</td>
    <td width="15%">Vultr</td>
  </tr>
  <tr>
    <td style="font-weight: bold; background: #e8e7e1;">CDN Download (Mbps)</td>
    <td style="text-align: right;">37</td>
    <td style="text-align: right; background: #cffed4;">47</td>
    <td style="text-align: right;">31</td>
    <td style="text-align: right;">32</td>
    <td style="text-align: right;">25</td>
  </tr>
  <tr>
    <td style="font-weight: bold; background: #e8e7e1;">Ping</td>
    <td style="text-align: right;">4.94</td>
    <td style="text-align: right; background: #cffed4;">4.42</td>
    <td style="text-align: right;">7.88</td>
    <td style="text-align: right;">5.52</td>
    <td style="text-align: right;">6.88</td>
  </tr>
  <tr>
    <td style="font-weight: bold; background: #e8e7e1;">Download (Mbps)</td>
    <td style="text-align: right;">1,059</td>
    <td style="text-align: right; background: #cffed4;">1,234</td>
    <td style="text-align: right;">575</td>
    <td style="text-align: right;">652</td>
    <td style="text-align: right;">602</td>
  </tr>
  <tr>
    <td style="font-weight: bold; background: #e8e7e1;">Upload (Mbps)</td>
    <td style="text-align: right;">788</td>
    <td style="text-align: right;">747</td>
    <td style="text-align: right;">565</td>
    <td style="text-align: right; background: #cffed4;">807</td>
    <td style="text-align: right;">708</td>
  </tr>
  <tr>
    <td style="font-weight: bold; background: #e8e7e1;">CPU Time (secs)</td>
    <td style="text-align: right; background: #cffed4;">10.31</td>
    <td style="text-align: right;">12.01</td>
    <td style="text-align: right;">19.05</td>
    <td style="text-align: right;">52.28</td>
    <td style="text-align: right;">22.41</td>
  </tr>
  <tr>
    <td style="font-weight: bold; background: #e8e7e1;">Read IOPS</td>
    <td style="text-align: right;">N/A</td>
    <td style="text-align: right; background: #cffed4;">119,230</td>
    <td style="text-align: right;">37,316</td>
    <td style="text-align: right;">39,921</td>
    <td style="text-align: right;">53,733</td>
  </tr>
  <tr>
    <td style="font-weight: bold; background: #e8e7e1;">Write IOPS</td>
    <td style="text-align: right;">N/A</td>
    <td style="text-align: right;">29,401</td>
    <td style="text-align: right;">12,690</td>
    <td style="text-align: right;">37,674</td>
    <td style="text-align: right; background: #cffed4;">39,208</td>
  </tr>
  <tr>
    <td style="font-weight: bold; background: #e8e7e1;">IO Ping (Î¼s)</td>
    <td style="text-align: right;">N/A</td>
    <td style="text-align: right; background: #cffed4;">229</td>
    <td style="text-align: right;">901</td>
    <td style="text-align: right;">437</td>
    <td style="text-align: right;">571</td>
  </tr>
    </table><!--kg-card-end: html--><h3 id="conclusion">Conclusion</h3><p>The goal of these tests was to find a way to lower our costs without sacrificing too much in performance. <a href="https://m.do.co/c/6c74b301edd9">DigitalOcean</a> accomplished both of those and more by besting EC2 in every category but CPU (which was quite close as well). We've since moved <a href="https://exocraft.io">Exocraft.io</a> to DigitalOcean and have realized an over 80% reduction in cost, which will only grow as our bandwidth usage increases. In addition to these performance/cost gains, we found DigitalOcean's interface and support to be much more approachable than the alternatives.</p><p>Some will argue that the best price-to-performance possible is with dedicated servers. This certainly can't be denied, but that ignores the many benefits hosting in the cloud offers. We've written our backend and structured our infrastructure to take full advantage of the ease at which cloud servers can be scaled up and down (both vertically and horizontally). In fact, we wrote and open-sourced another library called <a href="https://github.com/goldfire/healthcare.js/">healthcare.js</a> that allows you to specify your DigitalOcean infrastructure as configuration and automatically grow/shrink/heal your servers with no single points of failure.</p><p>So, while cloud hosting might not be a perfect fit for everyone, if your use-case calls for it, know that you have more viable options than just the "big three." I'd encourage you to use <a href="https://github.com/goldfire/node-cloud-bench">cloud-bench</a> to do your own testing and find the solution that best suits your project's needs.</p><!--kg-card-begin: html--><script src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://goldfirestudios.com/proj/benchmark_cloud_blog.js"></script><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[CasinoRPG Launches on Steam]]></title><description><![CDATA[<p>As we discussed in our previous post about <a href="https://goldfirestudios.com/blog/148/CasinoRPG-Launches-on-iOS-and-Android">CasinoRPG launching on mobile</a>, our goal has always been to make CasinoRPG truly cross-platform. The idea from day one was to allow our players to access the full CasinoRPG experience no matter their device or platform of choice.</p><p>The mobile launch on</p>]]></description><link>https://goldfirestudios.com/casinorpg-launches-on-steam/</link><guid isPermaLink="false">5e9729117ba79f68befe90b9</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Tue, 16 Jan 2018 16:16:42 GMT</pubDate><media:content url="https://goldfirestudios.com/content/images/2020/04/casinorpg-5.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://goldfirestudios.com/content/images/2020/04/casinorpg-5.jpg" alt="CasinoRPG Launches on Steam"><p>As we discussed in our previous post about <a href="https://goldfirestudios.com/blog/148/CasinoRPG-Launches-on-iOS-and-Android">CasinoRPG launching on mobile</a>, our goal has always been to make CasinoRPG truly cross-platform. The idea from day one was to allow our players to access the full CasinoRPG experience no matter their device or platform of choice.</p><p>The mobile launch on iOS and Android was a big milestone, and we are excited to announce that just over a month later we've reached another big milestone. Steam is the world's largest PC/Mac game store, and CasinoRPG is now available on Steam as a free download!</p><p><a href="http://store.steampowered.com/app/658970/CasinoRPG/"><b>Download CasinoRPG on Steam</b></a></p><p>This is the same great desktop experience that you are used to from the browser or Windows Store, but now available as a desktop application on both PC and Mac. Being the largest games store for desktop, Steam opens us up to an entirely new community that have yet to discover CasinoRPG, and we hope to bring them into our own growing community.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/steam_launch.png" class="kg-image" alt="CasinoRPG Launches on Steam"></figure><p>From a technical perspective, we made use of several open-source projects to bring CasinoRPG to Steam. First of which is <a href="https://electronjs.org/">Electron</a>, which uses the rendering core of Chrome to allow desktop applications to be built with web technologies. <a href="https://github.com/greenheartgames/greenworks">Greenworks</a> is another project we relied on, which allows an Electron games to connect to all of the Steam services and features. A Steam launch simply would not have been possible without the open source community, which is why we put a lot of effort into releasing our own open source projects such as <a href="https://howlerjs.com">howler.js</a>, <a href="https://github.com/goldfire/pokersolver">pokersolver</a> and <a href="https://github.com/goldfire/democracy.js">democracy.js</a>.</p>]]></content:encoded></item><item><title><![CDATA[CasinoRPG Launches on iOS and Android]]></title><description><![CDATA[<p>Development began on CasinoRPG way back in the fall of 2012 with the goal of creating a truly cross-platform gaming experience. We focused on browsers because we were (and still are) believers in the power of the open web. <a href="https://casinorpg.com/ks">Our Kickstarter</a> re-emphasized this cross-platform future with stated goals of releases</p>]]></description><link>https://goldfirestudios.com/casinorpg-launches-on-ios-and-android/</link><guid isPermaLink="false">5e9729117ba79f68befe90b8</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Fri, 08 Dec 2017 19:36:55 GMT</pubDate><media:content url="https://goldfirestudios.com/content/images/2020/04/casinorpg_mobile-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://goldfirestudios.com/content/images/2020/04/casinorpg_mobile-1.jpg" alt="CasinoRPG Launches on iOS and Android"><p>Development began on CasinoRPG way back in the fall of 2012 with the goal of creating a truly cross-platform gaming experience. We focused on browsers because we were (and still are) believers in the power of the open web. <a href="https://casinorpg.com/ks">Our Kickstarter</a> re-emphasized this cross-platform future with stated goals of releases on both iOS and Android.</p><p>We are nearing the end of 2017, and CasinoRPG is still a largely desktop-centric experience. However, that is all about to change in a big way! We are excited to announce the release of CasinoRPG on both the iOS App Store and Android Google Play.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/app_store_button.png" class="kg-image" alt="CasinoRPG Launches on iOS and Android"></figure><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/google_play_button.png" class="kg-image" alt="CasinoRPG Launches on iOS and Android"></figure><p>It hasn't been easy taking a large screen experience and making every aspect of it work on phones/tablets. We've been slowly updating every bit of the game over the last year-plus to seamlessly scale to all screen sizes. This isn't just a companion app, it is the full CasinoRPG experience.</p><p>You can play all of your favorite casino games, manage and design your casinos, access global/private chat and so much more! The most exciting part is that you don't need to start fresh on any platform. Simply login on any device with your same user account and pick up right where you left off. Unlike with many games, there is no segregation between platforms. Whether you are on your phone or computer, you are able to play with everyone in real-time.</p><figure class="kg-card kg-embed-card"><iframe width="800" height="450" src="https://www.youtube.com/embed/gTXjRMvOrbY?rel=0" frameborder="0"></iframe></figure><p>As for how we pulled this all together, the magic lies with the open-source <a href="https://cordova.apache.org/">Cordova</a> project. The vast majority of the work in making this possible was within the CasinoRPG code-base itself. This means that the mobile enhancements translate to the browser (as we announced earlier this year). However, we've found that mobile browser limitations have led to substandard gameplay experiences.</p><p>Moving to the app stores was the logical next step to provide the best experience for our players, and Cordova has made that possible without rewriting the entire game from scratch. We are still able to provide the same updates at the same time to all players since the vast majority of updates go directly to the web view. However, we now get access to the reach and simplicity of the App Store and Google Play.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/casinorpg_mobile.jpg" class="kg-image" alt="CasinoRPG Launches on iOS and Android"></figure><p>This is a big step towards our original goal of allowing our players to play anywhere they want. But, we aren't done yet! We have a Steam version of the game in the works and we are also looking into bringing CasinoRPG to consoles in 2018. Best of all, we are able to continue using web technologies to enable these truly cross-platform gaming experiences.</p>]]></content:encoded></item><item><title><![CDATA[Announcing Exocraft Beta]]></title><description><![CDATA[<p>When I started GoldFire Studios nearly a decade ago, the goal was always to build a community of games and the diverse people that play them. It is this goal that led us to build the GoldFire platform that we <a href="https://goldfirestudios.com/blog/144/GoldFire-2.0">relaunched earlier this year</a>. It is also this goal that</p>]]></description><link>https://goldfirestudios.com/announcing-exocraft-beta/</link><guid isPermaLink="false">5e9729117ba79f68befe90b7</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Wed, 29 Nov 2017 16:01:03 GMT</pubDate><media:content url="https://goldfirestudios.com/content/images/2020/04/exocraft_beta-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://goldfirestudios.com/content/images/2020/04/exocraft_beta-1.jpg" alt="Announcing Exocraft Beta"><p>When I started GoldFire Studios nearly a decade ago, the goal was always to build a community of games and the diverse people that play them. It is this goal that led us to build the GoldFire platform that we <a href="https://goldfirestudios.com/blog/144/GoldFire-2.0">relaunched earlier this year</a>. It is also this goal that drives us to continue creating unique social gaming experiences like the one we are announcing today.</p><h3 id="exocraft">Exocraft</h3><p>With each new game, we like to explore concepts that push creative and technical boundaries. Exocraft is no exception and adds a genre to our portfolio that we love, but have yet to explore. That being said, Exocraft is still browser-first and heavily community-driven, just like everything else we've done. It is a massively multiplayer game where everyone shares the same world, albeit wrapped up in simpler mechanics than the sprawling city and casinos of CasinoRPG.</p><!--kg-card-begin: html--><p><div style="width: 100%; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center;"><a href="https://goldfirestudios.com/images/blog/exocraft001.jpg" target="_blank" class="img-link"><img src="https://goldfirestudios.com/images/blog/exocraft001_thumb.jpg" width="380" height="214" style="margin-right: 10px;" alt="Announcing Exocraft Beta"></a><a href="https://goldfirestudios.com/images/blog/exocraft002.jpg" target="_blank" class="img-link"><img src="https://goldfirestudios.com/images/blog/exocraft002_thumb.jpg" width="380" height="214" alt="Announcing Exocraft Beta"></a><a href="https://goldfirestudios.com/images/blog/exocraft003.jpg" target="_blank" class="img-link"><img src="https://goldfirestudios.com/images/blog/exocraft003_thumb.jpg" width="380" height="214" style="margin-right: 10px;" alt="Announcing Exocraft Beta"></a><a href="https://goldfirestudios.com/images/blog/exocraft004.jpg" target="_blank" class="img-link"><img src="https://goldfirestudios.com/images/blog/exocraft004_thumb.jpg" width="380" height="214" alt="Announcing Exocraft Beta"></a></div></p><!--kg-card-end: html--><p>Exocraft is a sci-fi game set in a distant desert world where you can team up with friends and explore the entire planet in search of the valuable crystals it holds. Through strategy and a bit of luck, you'll gather, battle and mine with your fleet of drones in an exciting action strategy setting. Your loot from these activities can then be used to design and customize your unique spacecraft to work your way to the top.</p><p>A closed beta period is starting today, exclusively for our CasinoRPG community. Watch for open beta in the coming weeks and a full launch in early 2018.</p><h3 id="casinorpg">CasinoRPG</h3><p>We've been methodically growing our team and infrastructure over the last few years before even thinking about a new game. CasinoRPG and the incredible community it has spawned remains our top focus, and we've worked hard to allow ourselves to continue exploring creative expression while keeping the pedal firmly down on CasinoRPG's continued development.</p><p>When work started on CasinoRPG, GoldFire Studios was just two people. We have since tripled in size and have many incredible volunteers that make it possible for us to support independent game development. We've also worked hard to make GoldFire 2.0 a great home for our games so that minimal work is required to release and support new ones, such as Exocraft.</p><p>By growing our team and streamlining our processes and infrastructure, we are able to better serve a growing community and continue to release great new features, updates and fixes in a timely manner. There is still so much more to come for CasinoRPG, and we are excited for all of you to experience it!</p><p>Today's CasinoRPG update includes several new Arcade Machine items, which give you exclusive access to the Exocraft beta. By reaching level 10 in Exocraft, you'll also receive a limited edition Exocraft Arcade Machine item! All you have to do to enter the beta is find an Arcade Machine (or place one in your casino) and walk up to it like you would a slot or video poker machine.</p>]]></content:encoded></item><item><title><![CDATA[CasinoRPG on Steam Greenlight]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/casinorpg_greenlight.jpg" class="kg-image"></figure><p>One of our goals at GoldFire Studios has always been to make our games available everywhere that our players might want them to be, whether on our primary platform of the web or one of the many app stores. Weâ€™ve been making a conscious effort to ramp up those</p>]]></description><link>https://goldfirestudios.com/casinorpg-on-steam-greenlight/</link><guid isPermaLink="false">5e9729117ba79f68befe90b6</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Wed, 31 May 2017 20:24:22 GMT</pubDate><media:content url="https://goldfirestudios.com/content/images/2020/04/casinorpg-4.jpg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/casinorpg_greenlight.jpg" class="kg-image" alt="CasinoRPG on Steam Greenlight"></figure><img src="https://goldfirestudios.com/content/images/2020/04/casinorpg-4.jpg" alt="CasinoRPG on Steam Greenlight"><p>One of our goals at GoldFire Studios has always been to make our games available everywhere that our players might want them to be, whether on our primary platform of the web or one of the many app stores. Weâ€™ve been making a conscious effort to ramp up those efforts in 2017, starting with the launch of <a href="https://goldfirestudios.com/blog/144/GoldFire-2.0">GoldFire 2.0</a> in February, which includes full mobile and cross-platform support.</p><p>Today, we are taking the next step and launching CasinoRPG on Steam Greenlight. If you arenâ€™t familiar with Steam, it is the worldâ€™s largest game distribution platform for PC, Mac and Linux. Getting onto Steam will help us to reach a much wider audience and make the game more accessible. Many players want all of their games to be in their Steam library, so we want to be there too.</p><p>However, launching on Greenlight doesnâ€™t yet get us onto Steam. This is where we need your help. Greenlight is an opportunity for the community to vote on games they want to see included in the Steam Store. The more â€œyesâ€ votes we get, the better our odds are of being accepted onto the platform. So, any help we can get from all of you in voting and sharing this news will go a long way towards those goals being met.</p><p><a href="http://steamcommunity.com/sharedfiles/filedetails/?id=936315942"><b>Vote on Steam Greenlight</b></a></p><p><a href="https://twitter.com/GoldFireStudios/status/870004796819775488"><b>Share on Twitter</b></a></p><p><a href="https://www.facebook.com/casinorpg/posts/1569935149703483"><b>Share on Facebook</b></a></p>]]></content:encoded></item><item><title><![CDATA[GoldFire 2.0]]></title><description><![CDATA[<p>The current incarnation of the GoldFire Network was released just about 5 years ago. Since then, our studio has undergone significant change, expanding our portfolio of products and growing our team from one to five. The web itself has also seen an incredible transformation as it comes ever closer to</p>]]></description><link>https://goldfirestudios.com/goldfire-2-0/</link><guid isPermaLink="false">5e9729117ba79f68befe90b5</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Mon, 20 Feb 2017 13:55:06 GMT</pubDate><content:encoded><![CDATA[<p>The current incarnation of the GoldFire Network was released just about 5 years ago. Since then, our studio has undergone significant change, expanding our portfolio of products and growing our team from one to five. The web itself has also seen an incredible transformation as it comes ever closer to blurring the lines between websites and native applications, which is something we've always pushed for at GoldFire Studios.</p><p>We believe that today's launch of <a href="https://goldfire.me">GoldFire 2.0</a> is yet another step in that direction. We've taken everything we've learned over the last half-decade and have rolled it into what we see as a social gaming revolution. The vision has always been to enable truly meaningful interactions between people all around the world, and we are now better poised than ever to make that goal a reality.</p><p><b>Cross Platform &amp; Mobile</b></p><p>The first step was to go truly cross platform so that the features of the platform and the games themselves could be used/played on any device. It was this motivation that drove many of the design decisions for GoldFire 2.0. The experience is still fantastic on large screens, but we put a lot of effort into crafting an equally engaging experience on mobile as well.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/goldfire2_mobile.jpg" class="kg-image" alt="GoldFire 2.0 Mobile"></figure><p>This isn't limited to GoldFire 2.0. We've also spent months updating <a href="https://casinorpg.com">CasinoRPG</a> to be fully mobile compatible. This isn't a stripped-down version of the game either. We've managed to fit every casino game, mission and casino editing tool into your average smartphone resolution. We surprised even ourselves with how well the experience on mobile works as more than just a companion to the desktop-sized game.</p><p><b>GoldFire Features</b></p><p>This release isn't just a big update to the platform, it is a complete rewrite from the ground up. Many of the same features are included, but they've all been rethought in every way to elevate your gameplay experience.</p><h3 id="toolbar">Toolbar</h3><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/goldfire2_chat.jpg" class="kg-image" alt="GoldFire 2.0 Chat"></figure><p>The most noticeable change is the new toolbar. Previously, this ran along the bottom of the screen and had limited capabilities. The new toolbar runs along the right side of the screen and gives you access to 100% of the GoldFire 2.0 features. Not only does the vertical orientation allow for significantly more freedom to display all of the information you might want, it also means you can interact with everything like chat and forums without ever leaving the game you are playing.</p><h3 id="live-updating">Live Updating</h3><p>In addition to having every feature at your fingertips, it is now 100% live updating. In 1.0 we had a few live updating features like chat, but it was finicky and limited in many ways. Our new architecture has allowed us to design a system that keeps everything updated in real-time, including online status, social feed posts, forums and even the views counter on forum threads.</p><h3 id="chat">Chat</h3><p>Private chat has always been a popular feature of the platform, but it was also the piece that was in most need of an overhaul. We know how important this feature is to everyone, so we went all out to make this into something everyone could get excited about.</p><p>The new chat feature closely resembles a messaging app on your phone. Instead of having limited tabs along the toolbar, you now get a full chat history view. Clicking on a conversation gives you a full screen height view of that conversation, making it much easier to visually parse. You can also add more people to a chat to turn it into a group chat -- one of our most requested features since day one!</p><p>If this wasn't enough, we've also added in a variety of rich media improvements. There is a full emoji keyboard with over 1000 emojis available to choose from. In addition, you can directly upload images and embed videos from YouTube or Vimeo.</p><h3 id="forums">Forums</h3><p>The old forums weren't necessarily bad, they were just hard to get to. They are now a first-class citizen with their own tab on the toolbar. The forums are also fully live-updating, which makes them more like a public chat thread than a traditional forum. Each forum is grouped by game and then tags are used rather than sub-categories. All of the same features are included from before, but everything has been streamlined and modernized to provide the kind of experience you'll actually look forward to being a part of.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/goldfire2_forums.jpg" class="kg-image" alt="GoldFire 2.0 Forums"></figure><h3 id="social-feed">Social Feed</h3><p>The previous social feed was also something that was both difficult to get to and half-baked in its design. The new system is built into the toolbar as part of the forums panel and more closely resembles a GoldFire-specific Twitter. Posting is made easier with the same rich text editor from chat and visually parsing the data has received the same treatment. In addition, there are now automated posts for major gameplay events like opening a casino or winning a jackpot in CasinoRPG.</p><h3 id="leaderboards">Leaderboards</h3><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/goldfire2_leaderboards.jpg" class="kg-image" alt="GoldFire 2.0 Leaderboards"></figure><p>The new leaderboard tab now gives you a fantastic overview of your current standing in every category. No longer will you have to click through each list and toggle to yourself for each and every ranking you are interested in. If you want to dig down further, just click on a category and get an infinitely scrolling view of the full list. You can still jump to your position as well as filter by friends or by all-time/monthly ranking (this means that almost every leaderboard now comes with a monthly ranking, not just the overall ranking).</p><h3 id="game-launcher">Game Launcher</h3><p>Switching between your games is now easier than ever! Just click your avatar on the toolbar and all of your connected games and relevant data is displayed. Clicking on a game will take you there instantly without even reloading the page. You also have access to your platform settings and profile view from the launcher.</p><h3 id="notifications">Notifications</h3><p>You can view your full notification history from the launcher, grouped by game. In addition, new popup notifications will appear in the bottom right of the screen (this feature can be turned off in settings). Notifications are now smarter, so clicking on one will perform the relevant action, such as taking you to the forum post or the related game.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/goldfire2_notification.jpg" class="kg-image" alt="GoldFire 2.0 Notification"></figure><h3 id="profiles">Profiles</h3><p>Player profiles show largely the same information as before, but they've been streamlined and expanded to better get an overview of that person. As with everything else, it is also fully live updating, from their social feed down to their list of medals. You can also see each player's leaderboard rankings by going to their profile and looking at their list of games.</p><h3 id="store">Store</h3><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/goldfire2_store.jpg" class="kg-image" alt="GoldFire 2.0 Store"></figure><p>GoldFire 1.0 introduced a concept known as GoldFire Gold. This was a premium virtual currency that could be purchased on the platform and then used to buy upgrades, items, etc on any of the games. While this sounded great in theory, the reality we found was that it needlessly complicated the process and made game balance increasingly difficult with intertwined virtual economies.</p><p>So, we've made the decision to do away with GoldFire Gold and instead build an easy-to-use storefront that each of the games can use independently, sort of like you would experience with one of the app stores (if you had a balance on your account, you should have gotten an e-mail about how this is being handled, but if you have a question you can always <a href="https://goldfire.me/contact">contact us</a>).</p><p>The store is now context-aware to the game you are currently playing, and will list the different things you can buy. We've also got all of the same purchasing options as before (Credit Card, PayPal, Bitcoin and Xsolla). However, the Credit Card experience has received a significant overhaul with full support for storing and using multiple cards (through Stripe, we don't store or touch any payment data). You can now easily manage your cards directly from the toolbar in addition to seeing a full purchase history. We've also added in subscription support to make buying things like CasinoRPG Citizenship easier.</p><p><b>Getting Technical</b></p><p>If you aren't the technical type, then you can safely skip this section before I put you to sleep. However, we are very much into open-source and always like to at least share some details about how we achieve different aspects of our projects.</p><p>For GoldFire 2.0, we did something we've never done before -- we used a front-end framework. React and Angular are all the rage these days, but for our use-case they seemed too big and bulky. With GoldFire 2.0 being a thin wrapper around our games, we had to make sure we weren't stealing any computing resources from the games themselves, so we landed on the fantastic <a href="https://vuejs.org/">Vue.js framework</a>.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/goldfire2_stack.jpg" class="kg-image" alt="GoldFire 2.0 Tech Stack"></figure><p>Vue is not something anyone on our team had any experience with, but in less than six months we were able to quickly get up to speed and build a large-scale web application while still developing updates for our other games in parallel. Vue has been so great because it enabled us to develop at a rapid pace while also keeping our code lightweight and performant thanks to its virtual DOM implementation.</p><p>Beyond the frontend, we used a similar stack as before, comprising of Node.js on the server, a combination of MongoDB and Redis for datastore and HAProxy for load balancing. We also made significant use of some of our own open-source libraries, <a href="https://howlerjs.com">howler.js</a> and <a href="https://github.com/goldfire/democracy.js">democracy.js</a> as well as a plethora of other projects that would require a whole other blog post to outline.</p>]]></content:encoded></item><item><title><![CDATA[Howler.js v2.0 Released]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/howler2-logo.png" class="kg-image" alt="howlerjs.com"></figure><p>In early 2013, I set out on a journey to simplify browser audio for our then in-development HTML5 multiplayer game, <a href="http://casinorpg.com"><strong>CasinoRPG</strong></a>. It quickly became clear that this was a problem many in the development community faced, and <a href="https://howlerjs.com"><strong>howler.js</strong></a> evolved into much more than the simple helper it set out</p>]]></description><link>https://goldfirestudios.com/howler-js-v2-0-released/</link><guid isPermaLink="false">5e9729117ba79f68befe90b4</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Tue, 19 Jul 2016 14:05:17 GMT</pubDate><media:content url="https://goldfirestudios.com/content/images/2020/04/howler-8.jpg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/howler2-logo.png" class="kg-image" alt="Howler.js v2.0 Released"></figure><img src="https://goldfirestudios.com/content/images/2020/04/howler-8.jpg" alt="Howler.js v2.0 Released"><p>In early 2013, I set out on a journey to simplify browser audio for our then in-development HTML5 multiplayer game, <a href="http://casinorpg.com"><strong>CasinoRPG</strong></a>. It quickly became clear that this was a problem many in the development community faced, and <a href="https://howlerjs.com"><strong>howler.js</strong></a> evolved into much more than the simple helper it set out to be. Today it is used by the likes of Google, Disney, LEGO, NASA, DC, EA, Ubisoft, Paramount, Warner Bros, Universal and thousands of other developers all over the world.</p><p>Browser audio has come a long way since that weekend project got started, and so has our understanding of how to best utilize it. Using all of the knowledge gained by the incredible community howler.js has spawned and through our own development experiences, howler.js v2.0 has been completely rewritten from the ground up to be a truly all-in-one solution for browser audio (the API changes were kept as minimal as possible, and you can find the <a href="https://github.com/goldfire/howler.js/blob/master/CHANGELOG.md"><strong>migration guide and changelog here</strong></a>.</p><p><strong>New Structure</strong></p><p>The same goals remain: audio in the browser should be simple and effective by defaulting to Web Audio API and falling back to HTML5 Audio (now only necessary in Internet Explorer for the most part). In addition, howler.js is now a modular library, allowing for a lean core that can be extended to add more advanced functionality such as the wealth of tools available as part of the broader Web Audio API (spatial audio, filters, etc). We are launching with a spatial audio plugin, but hope to add more with the help of the community in the future.</p><p>One of the pain points of 1.x was the confusion surrounding playback of multiple sounds, sprites, etc. This mainly came about because the original release was much simpler than what things evolved into. So, with all of this in mind, a 3-layer structure became an obvious solution.</p><p>You still have the global context with <em>Howler</em>, but now there's the idea of groups and single instances of audio. Each time you play a sound, it keeps track of its own state, inheriting from the <em>Howl</em> group. This allows you to more explicitly control both the group of sounds and the individual sounds, providing more intuitive and predictable results. This also allowed for the introduction of a whole host of new helper methods that can control one or many sounds, such as <em>once</em>, <em>playing</em>, <em>duration</em>, <em>state</em>, <em>rate</em> and more.</p><p><a href="https://github.com/goldfire/howler.js/blob/master/CHANGELOG.md"><strong>VIEW FULL CHANGELOG</strong></a></p><p><strong>New Website</strong></p><p>In addition to re-writing the library, it became apparent that howler.js deserved to have a home of its own rather than living on this blog. The idea was to showcase the library and its uses in an easily digestible format on any device/platform (just like the library itself). Plus, it was a fantastic excuse to break out my design chops, which had been growing dusty by the day!</p><p>It isn't just a new website, but also a new logo as well. Lane Brown, our fantastic art director here at GoldFire Studios, put my 1.x attempt at a logo to shame with this new mark, bringing the <em>howler</em> monkey and his thumping headphones to life.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/howlerjs-website.png" class="kg-image" alt="Howler.js v2.0 Released"></figure><p>The site is very minimal: highlights of major features, various live demos and a showcase of sites/apps using howler.js. The website is also hosted <a href="https://github.com/goldfire/howlerjs.com"><strong>open-source on GitHub</strong></a>, so I encourage contributions, especially if you've got a cool app that I missed!</p><p>Thank you to the <a href="https://github.com/goldfire/howler.js/graphs/contributors"><strong>dozens of contributors</strong></a> who helped make this release a reality! The open-source community is something quite remarkable, and we continue to be excited to be a small piece of it.</p>]]></content:encoded></item><item><title><![CDATA[Benchmarking Top CDN Providers]]></title><description><![CDATA[<p><b>UPDATE: After speaking with CloudFlare's CTO, I've been informed that they don't cache audio files (even static ones) by default. I'm in the process of re-doing the large file test and will update the results accordingly.</b></p><p><b>UPDATE 2: The charts for the large file tests have been updated and CloudFlare</b></p>]]></description><link>https://goldfirestudios.com/benchmarking-top-cdn-providers/</link><guid isPermaLink="false">5e9729117ba79f68befe90b3</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Wed, 03 Feb 2016 16:21:01 GMT</pubDate><media:content url="https://goldfirestudios.com/content/images/2020/04/cdn-3.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://goldfirestudios.com/content/images/2020/04/cdn-3.jpg" alt="Benchmarking Top CDN Providers"><p><b>UPDATE: After speaking with CloudFlare's CTO, I've been informed that they don't cache audio files (even static ones) by default. I'm in the process of re-doing the large file test and will update the results accordingly.</b></p><p><b>UPDATE 2: The charts for the large file tests have been updated and CloudFlare has gone from dead last to fairly even with MaxCDN. The lesson is that if you are going to use CloudFlare, be aware that you need to enable caching of audio files using the Page Rules feature.</b></p><p>Nearly two years ago we ran a 24-hour <a href="https://goldfirestudios.com/blog/135/CDN-Benchmarks%3A-CloudFlare-vs-CloudFront"><b>benchmark comparing CloudFlare vs CloudFront</b></a> when improving load times for our <a href="http://casinorpg.com"><b>HTML5 MMORPG</b></a>. Since then we've seen the emergence of HTTP/2 and a bevy of CDN's stepping up their games, prompting a new set of benchmarks on a broader scale.</p><p>We are again using the <a href="https://github.com/goldfire/node-cdn-bench"><b>Node.js CDN benchmark CLI</b></a> that we open-sourced previously, but this time we are benchmarking: <a href="http://cloudflare.com"><b>CloudFlare</b></a>, <a href="https://aws.amazon.com/cloudfront/"><b>CloudFront</b></a>, <a href="http://maxcdn.com"><b>MaxCDN</b></a>, <a href="http://cdn77.com"><b>CDN77</b></a>, <a href="http://keycdn.com"><b>KeyCDN</b></a> and <a href="http://cdnsun.com"><b>CDNsun</b></a>. These are some of the most well known and widely used providers that serve more than just the "enterprise."</p><p>They also offer HTTP/2 support now or in the near future and free SNI SSL support, which is a must-have for our use-case. Some even have baked-in <a href="http://letsencrypt.org"><b>Let's Encrypt</b></a> support, which isn't vital but is a nifty nice-to-have.</p><h3 id="the-test">The Test</h3><p>In order to benchmark a CDN provider, you must record performance over time and not just after a handful of downloads. The main purpose of a CDN is global speed, so it is also important to put multiple POPs to the test when gathering your data.</p><p><a href="https://github.com/goldfire/node-cdn-bench"><b>cdn-bench</b></a> combined with a few <a href="http://digitalocean.com"><b>Digital Ocean</b></a> droplets in different zones makes this trivial. Using the below command, we ran a 24-hour benchmark of all 6 CDNs from 3 locations around the world: Oklahoma City (in our office), London and Frankfurt.</p><pre><code class="language-javascript">node cdn-bench
    --files https://cloudflare.example.com/large,https://cloudfront.example.com/large,...
    --interval 600
    --limit 144
    --out results.csv
</code></pre><p>This downloads the listed files, one after the other, every 10 minutes over a 24 hour period. It then appends the download times to a CSV file for analysis. We loaded the same 3 files into each CDN: a small image (12 KB), a medium image (199 KB) and a large audio file (4.1 MB).</p><h3 id="the-results">The Results</h3><p>After the tests completed, we combined the CSV output from each server and averaged them into the below charts (click the legends to enable/disable each CDN). These charts help to visualize the relative performance of each CDN over a 24-hour period, which we found particularly useful when comparing the consistency and speed throughout the day.</p><!--kg-card-begin: html--><p>
<canvas id="time-large-line" width="800" height="500"></canvas>
<canvas id="time-med-line" width="800" height="500"></canvas>
<canvas id="time-small-line" width="800" height="500"></canvas>
</p><!--kg-card-end: html--><p>We also calculated average download times and standard deviations for each. We found the standard deviations especially important, as it is indicative of how consistent our customer experience might be.</p><!--kg-card-begin: html--><p>
<canvas id="summary-large-bar" width="800" height="400"></canvas>
<canvas id="summary-med-bar" width="800" height="400"></canvas>
<canvas id="summary-small-bar" width="800" height="400"></canvas>
</p><!--kg-card-end: html--><h3 id="conclusions">Conclusions</h3><p>The results aren't quite as clear-cut as they were on our first test. <s>CloudFlare seems to have fixed their consistency issues, especially on smaller files. However, they were consistently awful when it came to downloading the large file.</s> CloudFlare appears to be the winner since last time, fixing their consistency issues and improving overall speed and standard deviation across the board. CloudFront (our previous winner) didn't show much difference, if only a little less consistent than before.</p><p>The overall winner appears to be one of the standout names in the industry: MaxCDN. They seem to be a solid choice for any type of workload, though we found their pricing to be somewhat deceptive and not nearly as competitive as some of the other providers (unless you have "enterprise" scale). They also don't yet support HTTP/2, though promise it'll be coming later in 2016.</p><p><s>In the end, we decided to move some of our small files back to CloudFlare (where bandwidth costs nothing) and everything else to KeyCDN. Besides free, KeyCDN's pricing was as good as it comes. They were also quite respectable on speed and consistency, include HTTP/2 support and include the aforementioned Let's Encrypt integration.</s></p><p>In the end, we decided to move everything back to CloudFlare from CloudFront. You can't beat free bandwidth, they already have full SSL and HTTP/2 support and the speeds across the board are on-par with the best.</p><p>Ultimately, you couldn't go wrong with most of these options depending on your workload and budget needs. This wasn't an all-encompassing test, so if there are other CDN's you think should be tested, we'd love to see your results in the comments!</p><!--kg-card-begin: html--><script src="https://goldfirestudios.com/js/Chart.min.js"></script>
<script src="https://goldfirestudios.com/js/cdn-benchmark-data.js?v=2"></script>
<script src="https://goldfirestudios.com/proj/benchmark_cdn_blog.js"></script><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Team++ - Benji Kay]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/team_goldfire_3.jpg" class="kg-image" alt="GoldFire Studios Team"></figure><p>We are excited to announce that Benji Kay has joined the GoldFire Studios team as a full-time software engineer! Benji started in mid-July, and heâ€™s been doing great work getting up to speed with the CasinoRPG code-base as well as taking lead on several big updates around slots and</p>]]></description><link>https://goldfirestudios.com/team-2b-2b-benji-kay/</link><guid isPermaLink="false">5e9729117ba79f68befe90b2</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Mon, 30 Nov 2015 15:49:58 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/team_goldfire_3.jpg" class="kg-image" alt="GoldFire Studios Team"></figure><p>We are excited to announce that Benji Kay has joined the GoldFire Studios team as a full-time software engineer! Benji started in mid-July, and heâ€™s been doing great work getting up to speed with the CasinoRPG code-base as well as taking lead on several big updates around slots and elsewhere. In the short-term, he will continue helping to accelerate development on <a href="http://casinorpg.com">CasinoRPG</a>. As we progress, Benji will also be working on updates to the <a href="https://goldfire.me">GoldFire Network</a> and future game titles we have planned.</p><p>Benji has a unique background that makes him a perfect fit for our team. Not only has he been a gamer since he was young, but heâ€™s also had a passion for music. Heâ€™s had stints in Japan and Los Angeles, where he has performed live and created multiple albums of his own. While his official role is software engineer, heâ€™ll certainly be pulling from his past experiences in his new role as a game developer, and we are thrilled to have him as part of our team!</p><p>We are always on the lookout for talented people to join us, so if you are interested in being part of a growing game startup, check out our <a href="https://goldfirestudios.com/jobs">jobs page</a>.</p>]]></content:encoded></item><item><title><![CDATA[Massive Memory Gains in Node.js 4.2]]></title><description><![CDATA[<p>Still debating whether or not it's worth upgrading to the latest and greatest Node.js LTS, otherwise known as 4.2? If you are still running 0.12 or stuck even further in the dark ages on 0.10 and below, these numbers might make you think twice about being</p>]]></description><link>https://goldfirestudios.com/massive-memory-gains-in-node-js-4-2/</link><guid isPermaLink="false">5e9729117ba79f68befe90b1</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Mon, 23 Nov 2015 15:23:15 GMT</pubDate><content:encoded><![CDATA[<p>Still debating whether or not it's worth upgrading to the latest and greatest Node.js LTS, otherwise known as 4.2? If you are still running 0.12 or stuck even further in the dark ages on 0.10 and below, these numbers might make you think twice about being set in your ways.</p><p>We've been running Node.js 0.12 since shortly after its release and have had no issues with it. Loving to live on the cutting edge, after several weeks of testing 4.2 locally, we decided to push it live to both <a href="http://casinorpg.com">CasinoRPG</a> and <a href="https://goldfire.me">GoldFire Network</a>. We didn't need to update any of our code (other than re-installing our modules), so we assumed it would be a routine upgrade with the possibility of some minor speed boosts. What we saw was far from ordinary:</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/casinorpg_memory.jpg" class="kg-image" alt="CasinoRPG Memory Usage"></figure><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/goldfire_memory.jpg" class="kg-image" alt="GoldFire Network Memory Usage"></figure><p>On both CasinoRPG and GoldFire Network, not only did we see our memory graphs smooth out significantly, but the total memory usage dropped by over 50%! This is the kind of improvement you might expect in a very early version, but it certainly caught us off guard at this stage of the game.</p><p>So, why the massive memory gains when upgrading to 4.2? That remains somewhat of a mystery to us (if you've got an idea we'd love for you to comment). Certainly a vastly newer version of V8 has helped, and we've heard that updates to <i>Buffer</i> have led to fairly significant gains, but there's surely more at play here. Regardless, the results can't be ignored. Happy upgrading!</p>]]></content:encoded></item><item><title><![CDATA[Designing a $12k Office On a $2k Budget]]></title><description><![CDATA[<p>I've always had a fascination with startup offices. Creating the right environment that props up your unique culture is vital to long-term success. Not only is it important for the creative process, but also for the competitive market of tech hiring.</p><p>Being a bootstrapped startup, our <a href="https://goldfirestudios.com/blog/94/New-GoldFire-HQ">first</a> two <a href="https://goldfirestudios.com/blog/111/New-GoldFire-Offices">offices</a> were</p>]]></description><link>https://goldfirestudios.com/designing-a--2412k-office-on-a--242k-budget/</link><guid isPermaLink="false">5e9729117ba79f68befe90b0</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Tue, 13 Oct 2015 14:20:47 GMT</pubDate><media:content url="https://goldfirestudios.com/content/images/2020/04/office-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://goldfirestudios.com/content/images/2020/04/office-1.jpg" alt="Designing a $12k Office On a $2k Budget"><p>I've always had a fascination with startup offices. Creating the right environment that props up your unique culture is vital to long-term success. Not only is it important for the creative process, but also for the competitive market of tech hiring.</p><p>Being a bootstrapped startup, our <a href="https://goldfirestudios.com/blog/94/New-GoldFire-HQ">first</a> two <a href="https://goldfirestudios.com/blog/111/New-GoldFire-Offices">offices</a> were pretty limited. We are still mostly bootstrapped today, but we've found success over the last year that has allowed us a little more freedom--yet still tightly within a startup budget of around $2,000. This is how we went about assembling a $12,000 office for under $2,000.</p><h3 id="finding-the-right-space">Finding the Right Space</h3><p>The design costs for a new office may seem daunting, but they pale in comparison to the long-term cost of leasing a space. It is vital that you not only find a space to grow into, but also one that doesn't lock you in past your reasonably foreseeable runway.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office001_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>View from the new GoldFire HQ over downtown OKC.</i></p><p>We knew we wanted to be in the downtown area where there's a palpable energy present. However, the market in downtown OKC has been on a rocket-ship of late. Luckily, with a little patience and 3 months searching, the perfect opportunity revealed itself.</p><h3 id="blank-canvas">Blank Canvas</h3><p>We ended up with a beautiful space (or rather, a space that we believed could become beautiful) with an incredible view. We also managed to get favorable terms on a short-term lease, the negotiation of which is outside the scope of this post and will vary by market.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office004_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>Gotta love that pink carpet!</i></p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office005_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>Original work space.</i></p><p>The office may not have looked like much when we landed it, but we negotiated all-new carpet and paint throughout. This is where we started our design process with <a href="http://www.interior-design-ipad.com/">Interior Design for iPad</a>.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office018.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>Basic design mockup for the new GoldFire offices.</i></p><h3 id="desks-chairs">Desks/Chairs</h3><p>There are areas of an office where you can get away with cheaper items, but desks and chairs (which have a direct impact on productivity) aren't those items. Good, sturdy desks with plenty of surface area are a must, as are comfortable chairs rated for long hours.</p><p>However, pre-built desks from quality sources can easily cost $1,000 or more. So, I put on my DIY-er hat and started looking through the IKEA catalog. Sure, they have relatively cheap desks available, but they are cheap for a reason.</p><p>The great thing about IKEA is that they also sell their furniture in pieces. You can get six-foot, solid wood <a href="http://www.ikea.com/us/en/catalog/products/50106773/">butcher-blocks for around $90</a>. Combine that with stainless steel hairpin legs from Etsy and you've got yourself some functional and beautiful desks for only $190/ea.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office006_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>The end result of our IKEA/Etsy mix-and-match desks.</i></p><p>Unfortunately, there's not much mixing-and-matching to be done with desk chairs, so a good chunk of the budget will go into these. There's some great chairs available in the $100-range, and there are some immaculate chairs available in the $1,000-range.</p><p>Obviously, the high-end was out of the question, but we wanted to find that sweet spot in the middle. With a little patience (key word in this whole process), we found some generous coupons at Staples and picked up some $300 chairs for $200/ea (<a href="http://www.staples.com/Tempur-Pedic-TP9000-Ergonomic-Mesh-Mid-Back-Task-Chair-Black/product_324021">TempurPedic TP9000</a>).</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office007_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>Plenty of space to grow.</i></p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office008_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>Accent walls in bright GoldFire red.</i></p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office017_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>Before/after of donated filing cabinet now in GoldFire colors after a few coats of spray paint.</i></p><h3 id="other-rooms">Other Rooms</h3><p>With our work area filled out and still $1,220 left in the budget, we turned to the more exciting areas. To fill out the break room, kitchen and conference area, we turned to Craigslist, friends and family.</p><p>We were able to score a Killer Instinct arcade cabinet ($1,000 value), modern TV stand ($1,500 value), 42" TV ($1,000 value), refrigerator ($300 value) and two sturdy tables ($1,000 value each) for just $300! We then filled in the gaps from sites like Overstock and Amazon for another $500 for 6 chairs and a side table.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office014_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>New entrance view.</i></p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office009_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>Arcade cabinet from Craigslist.</i></p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office012_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>"Hall of Games" - what will we add next?</i></p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office010_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>Break room with comfy chairs, Xbox and N64.</i></p><h3 id="decorations">Decorations</h3><p>Furniture is of course important, but a startup office is largely about the culture. This means the decorations are just as important and are also an area where you can really stretch the dollar.</p><p>We still had a budget of $420 left, so we got to work scouring Craigslist, eBay and local vintage video game stores. We were able to find 16 frames on eBay for around $150 and a pack of vintage posters for practically nothing. We also picked up 5 authentic arcade marquees for $50 to really set the kitchen apart.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office016_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>Kitchen and conference room in one.</i></p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office015_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>Plenty of snacks, stickers and marquees.</i></p><p>The centerpiece is our logo on the front wall. Laser-cut acrylic or metal would have cost anywhere from $1,000-$3,000. Instead, we found an online wood-cutter that cut it from MDF-board for just $70. We then bought 2 cans of glossy white spray paint for another $6 and had 3D logo letters on our wall for a fraction of the cost.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/office013_thumb.jpg" class="kg-image" alt="Designing a $12k Office On a $2k Budget"></figure><p><i>3D logo letters for $76 instead of thousands.</i></p><h3 id="overview">Overview</h3><p>Setting up a new office space that both feels at home and is a productive space to work can be a daunting task--especially if your budget is severely limited. However, with a little bit of creativity and even more patience, you can create a space to be inspired in, and one that can make all the difference as you progress through your startup journey.</p><p>If you noticed the big empty space in our work room and feel like you could be just the thing to fill that space, we are hiring! Check out our <a href="https://goldfirestudios.com/jobs">jobs page</a> for details.</p>]]></content:encoded></item><item><title><![CDATA[New CasinoRPG Score by Megan Randa]]></title><description><![CDATA[<p>Audio is something we highly value at GoldFire Studios (we open-sourced <a href="http://howlerjs.com">howler.js</a> after all). It is vital to set the right gameplay tone through the score, and the only way to do that is with original music. This is why we tackled that obstacle early in development of the</p>]]></description><link>https://goldfirestudios.com/new-casinorpg-score-by-megan-randa/</link><guid isPermaLink="false">5e9729117ba79f68befe90af</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Thu, 09 Apr 2015 19:41:13 GMT</pubDate><content:encoded><![CDATA[<p>Audio is something we highly value at GoldFire Studios (we open-sourced <a href="http://howlerjs.com">howler.js</a> after all). It is vital to set the right gameplay tone through the score, and the only way to do that is with original music. This is why we tackled that obstacle early in development of the first prototype.</p><p>The problem is that <a href="http://casinorpg.com">CasinoRPG</a> has vastly evolved since that prototype stage, and we've consistently felt the need to take the in-game music to the next level. That's why we recently reached out to <a href="http://www.meganranda.com/">Megan Randa</a> who we'd worked with before to create original music for our Kickstarter and launch trailers.</p><p>We've worked with Megan over the last several weeks to craft six original tracks that integrate the classic casino vibes with more modern touches to achieve an exciting new soundscape to play with. We're excited to introduce all of these new tracks in the below embed, and we follow that up with several Q&amp;A's with the composer!</p><figure class="kg-card kg-embed-card"><iframe width="100%" height="300" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/playlists/96212217&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true"></iframe></figure><h3 id="what-is-your-process-when-approaching-a-new-project">What is your process when approaching a new project?</h3><p>It can really vary, but for most media-based projects I really like to get a sense of what the music should be achieving in the setting--whether that be an emotional state, plot development, ambience, etc. If a client has reference material to go from, I like to listen through once and then give myself a day away from it before sitting down to write. The essence of the music is then still in my mind, but it won't be so fresh it's overpowering my own musical direction.</p><p>On the flip side, I've also worked without any reference material at all! In these cases, I have to rely on my experience with music as a whole and apply that in my own way to fit. In the end though, for most projects, once I know the direction of the project and can get myself in that mindset, the music will often start to flow naturally.</p><h3 id="where-do-you-get-your-ideas-from">Where do you get your ideas from?</h3><p>Lots of places! Really anything can be a source of inspiration, and often times it comes down to the question, "What can I do to elevate this experience?". A lot of times it's pinpointing a style of writing to use, and in turn I then draw inspiration from other composers and artists. That inspiration is a wide range, from Renaissance composers to contemporary film composers, pop artists to EDM producers. I'm a true believer of everything we experience being something we learn from and apply to our own selves (creatively or not).</p><h3 id="what-tools-do-you-use-when-composing">What tools do you use when composing?</h3><p>Believe it or not, I often start with pen and paper. This way I can in real time draft out ideas (usually through shapes and lines). As far as software goes, I'm pretty partial to using Logic Pro for production. Specific instruments are all pulled from a range of various sample libraries (EastWest being the most common brand). I'm currently building up my studio's recording equipment, so have been having fun playing around with my Rode NT1 mic. I also recently picked up a pair of Sennheiser HD 650 headphones, and I think my mind was officially blown!</p><h3 id="why-do-you-enjoy-creating-music-for-video-games">Why do you enjoy creating music for video games?</h3><p>The simple answer is that I love music and I love video games. :) But deeper than that, I really enjoy being a part of something interactive. I've always known I wanted to write music for film, but after I started getting into gaming, I realized how similar video game music and film music are to one another. Game music brings on it's own set of challenges though - Perhaps the biggest: Time is dynamic in games compared to in film where it's linear. All of this affects how the music is written and how it integrates across trigger points.  It can make the job a little tougher, but I actually find it an exciting task to take on!</p><h3 id="who-is-your-favorite-composer-and-what-makes-them-great">Who is your favorite composer and what makes them great?</h3><p>Now that's a tough one...and I always have to answer this with 2 answers because I have a favorite composer and I have a favorite composer's work.</p><p>Favorite Composer (and it's always changing!) right now is Alexandre Desplat. If you happened to see The Imitation Game and Grand Budapest Hotel this year, you'll know exactly why he's a brilliant musical mind. Everything he writes is a perfect reflection of the film being accompanied. If you don't remember the music from Grand Budapest, go give it a listen. It's an absolutely delightful score with so much creativity and nuance (which is true for most of Desplat's work!).</p><p>Favorite work by a composer: Howard Shore's 3 film scores to the Lord of the Rings trilogy. I've been listening to these scores since the films first came out, and I'm still discovering things. Part of being a composer is being an analytical listener, and all three of Shore's scores are as fitting and intricate as you can get! Most people can recognize the prominent themes from the film, but when you really dive in, Shore has over 90 musical themes that are woven throughout all 3 films signifying people, places, events... Across 3 films, he's able to tie storylines together through music. It's, in my view, the definition of a masterpiece.</p><h3 id="what-s-your-favorite-video-game">What's your favorite video game?</h3><p>Dragon Age: Inquisition - So many glorious hours put into that game.</p><h3 id="what-s-your-favorite-video-game-score">What's your favorite video game score?</h3><p>Probably Skyrim... Never gets old to me.</p><h3 id="favorite-film-and-tv-show">Favorite Film and TV show?</h3><p>Currently: Interstellar - I can't get over that movie. Also, Firefly (Over 10 years later and still too soon to talk about).</p><h3 id="if-you-could-spend-a-day-with-a-video-game-character-who-would-it-be">If you could spend a day with a video game character, who would it be?</h3><p>Rayman and Globox - I can't imagine NOT having an awesome time with those two.</p><h3 id="if-you-could-have-one-power-from-any-video-game-character-what-would-you-choose">If you could have one power from any video game character, what would you choose?</h3><p>Probably Lilith's siren capabilities in Borderlands... Because phase-locking someone in an orb is way more fun than it should be.</p>]]></content:encoded></item><item><title><![CDATA[2015 New Year's Resolutions]]></title><description><![CDATA[<p>I'm a big believer in aiming too high. If you are consistently reaching your goals, then your goals aren't nearly as lofty as they should be. At GoldFire Studios, we want to push ourselves to the limits to truly see what we are capable of.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/goldfire_new_year_2015.jpg" class="kg-image" alt="“GoldFire"></figure><p>We didn't write new year's</p>]]></description><link>https://goldfirestudios.com/2015-new-year-27s-resolutions/</link><guid isPermaLink="false">5e9729117ba79f68befe90ae</guid><dc:creator><![CDATA[James Simpson]]></dc:creator><pubDate>Fri, 02 Jan 2015 19:07:44 GMT</pubDate><content:encoded><![CDATA[<p>I'm a big believer in aiming too high. If you are consistently reaching your goals, then your goals aren't nearly as lofty as they should be. At GoldFire Studios, we want to push ourselves to the limits to truly see what we are capable of.</p><figure class="kg-card kg-image-card"><img src="https://goldfirestudios.com/images/blog/goldfire_new_year_2015.jpg" class="kg-image" alt="“GoldFire"></figure><p>We didn't write new year's resolutions last year because we had our heads down coding at a million miles an hour towards the full launch of <a href="http://casinorpg.com">CasinoRPG</a>. However, we believe 2015 is going to be the biggest and most transformative year in the company's history. So, here are a few of the crazy goals we've set for ourselves (in no particular order):</p><p><b>5 Person Team</b>: Revolutionizing online gaming has always been GoldFire Studios' goal, but we're not delusional enough to think we won't need help getting there. Shooting for a 5 person team sounds conservative in that regard, but an equally tall order is staying disciplined enough to build a rock solid team (not to be confused with the oft-cited "rock star" team) that can execute and have fun doing it. We must stay focused in order to make big things happen.</p><p><b>Return of Friday Freeday</b>: Way back in 2011 I started something called <a href="https://goldfirestudios.com/blog/82/Friday-Freeday%3A-HTML5-Snake-Game">Friday Freeday</a>, inspired by Google's 20% philosophy. Having the freedom to work on side projects is something that keeps creativity alive, which is obviously a vital ingredient for any game studio. It has been hard to get back into the habit with all of the work on CasinoRPG, so it is time to change that.</p><p><b>More Open Source</b>: We've released a few open source projects to the community, most notably <a href="http://howlerjs.com">howler.js</a>, and they've been a fantastic experience for us. We want to continue doing this in an even bigger way this year.</p><p><b>CasinoRPG Mobile</b>: CasinoRPG has finally started to mature on the desktop platform, so this year we will begin focussing our attention on optimizing gameplay for all those billions of smaller screens out there. This will be a challenge from multiple fronts, but those challenges are what keep us excited and getting up for work every morning (or more often, staying up exceedingly late).</p><p><b>GoldFire Network 2.0</b>: The GoldFire Network was the <a href="https://goldfirestudios.com/blog/89/Project-Agora-and-the-Future-of-Social-Gaming">first piece of our plan</a> to revolutionize online gaming over 2 years ago. The platform that runs today was always intended to be a proof of concept, and now that it is serving hundreds of thousands of users around the world, we are ready to take it to the next level with a fully revamped experience that also includes the introduction of tools for 3rd party developers.</p><p><b>1,000,000 GoldFire Network Users</b>: The last year has been focussed exclusively on turning CasinoRPG into a fantastic gaming experience. We feel we've achieved the first steps of that (though we have much more planned on that front), and now it is time for us to bring that experience to the masses. We are currently approaching 300,000 users, and are setting our sights on tripling that total by the end of this half-decade.</p>]]></content:encoded></item></channel></rss>