COWNADOhttps://cownado.com/2019-01-05T09:30:00+01:00A new start2019-01-05T09:30:00+01:00Franco Bugnanotag:cownado.com,2019-01-05:/posts/2019/01/a-new-start.html/<p>Happy Befana everybody, I have some presents, and some news for you.</p>
<p>Wow, it's almost 2 years since the last post, so what happened in the meantime?</p>
<p>After releasing <a class="reference external" href="https://cownado.com/pages/pong.html">Dawn Of Ultra Pong</a>, the most requested feature was to allow a player using an Android device
to play with a …</p>How to fix stuttering in scrolling animations2017-01-20T08:17:00+01:00Franco Bugnanotag:cownado.com,2017-01-20:/posts/2017/01/how-to-fix-stuttering-in-scrolling-animations.html/<p>As I started working on our next game, I noticed a very strange and unpleasant behaviour:
when scrolling the viewport, the animation was stuttering. Here's how I fixed it.</p>
<p>The first impression that this behaviour gave me was that my computer wasn't powerful enough to run the game,
but having …</p>Implementing WiFi multiplayer on Cordova-based games - Part 32016-12-02T09:31:00+01:00Franco Bugnanotag:cownado.com,2016-12-02:/posts/2016/12/wifi-multiplayer-p3.html/<p>Concluding <a class="reference external" href="https://cownado.com/posts/2016/11/wifi-multiplayer-p1.html">our series</a> about <a class="reference external" href="https://cownado.com/posts/2016/11/wifi-multiplayer-p2.html">local multiplayer</a> via WiFi, we are going to address the <a class="reference external" href="https://code.google.com/p/android/issues/detail?id=8030">Android bug</a>
that prevents local hostname resolution, and we will see the aspects to consider when using directly IP
addresses instead of host names.</p>
<p>At first, using the device IP address instead of its host name …</p>Implementing WiFi multiplayer on Cordova-based games - Part 22016-11-25T09:50:00+01:00Franco Bugnanotag:cownado.com,2016-11-25:/posts/2016/11/wifi-multiplayer-p2.html/<p><a class="reference external" href="https://cownado.com/posts/2016/11/wifi-multiplayer-p1.html">Last time</a> we have seen that a great solution for implementing local multiplayer on
WiFi networks is to use Zeroconf and <a class="reference external" href="https://www.html5rocks.com/en/tutorials/websockets/basics/">WebSockets</a>.
In this article we will see how to use these technologies, and some implications that are not obvious at first.</p>
<div class="section" id="content-security-policy">
<h2>Content Security Policy</h2>
<p>Let's start by enabling <a class="reference external" href="https://www.html5rocks.com/en/tutorials/websockets/basics/">WebSockets …</a></p></div>Implementing WiFi multiplayer on Cordova-based games - Part 12016-11-11T10:47:00+01:00Franco Bugnanotag:cownado.com,2016-11-11:/posts/2016/11/wifi-multiplayer-p1.html/<p><a class="reference external" href="https://cownado.com/posts/2016/03/local-multiplayer-p1.html">Continuing our journey</a> of <a class="reference external" href="https://cownado.com/posts/2016/04/local-multiplayer-p2.html">local multiplayer technologies</a>, in this article
we will see what are the considerations to make in order to implement local
multiplayer on WiFi networks.</p>
<p>While now both <a class="reference external" href="https://cownado.com/posts/2016/02/bluetooth-networking-plugin-for-cordova.html">Bluetooth</a> and <a class="reference external" href="https://cownado.com/posts/2016/07/multipeer-connectivity-plugin-for-cordova.html">Multipeer Connectivity</a> are viable options for implementing local
multiplayer games, they both have a common disadvantage:
You …</p>Using the accelerometer in games - Part 22016-11-04T09:24:00+01:00Franco Bugnanotag:cownado.com,2016-11-04:/posts/2016/11/accelerometer-p2.html/<p>In a <a class="reference external" href="https://cownado.com/posts/2016/05/accelerometer.html">previous article</a>, we have seen that using the accelerometer for input in games is harder than it seems.</p>
<p>In this article we will explore other ways of using the accelerometer, with the experience gained from releasing <a class="reference external" href="https://cownado.com/pages/pong.html">Dawn Of Ultra Pong</a>.</p>
<p>First of all I would like to thank …</p>Multipeer Connectivity Plugin for Cordova2016-07-16T13:30:00+02:00Franco Bugnanotag:cownado.com,2016-07-16:/posts/2016/07/multipeer-connectivity-plugin-for-cordova.html/<p>As <a class="reference external" href="https://cownado.com/posts/2016/04/local-multiplayer-p2.html">you may remember</a>, one of the downsides of the Multipeer Connectivity was that there was no <a class="reference external" href="http://cordova.apache.org/">Cordova</a> implementation available.
Well, not anymore.</p>
<p>Today I just released <a class="reference external" href="https://www.npmjs.com/package/cordova-plugin-networking-multipeer">cordova-plugin-networking-multipeer</a>, which allows you to connect multiple iOS devices regardless of network availabiltiy,
and send and receive data between them, all from a …</p>Using the accelerometer in games2016-05-13T08:25:00+02:00Franco Bugnanotag:cownado.com,2016-05-13:/posts/2016/05/accelerometer.html/<p>The accelerometer can be a good input method for some genres, think for example of racing games.</p>
<p>Using it is easy, it's just a matter of mapping a value to a direction, right?
Well, let's find out.</p>
<p>Before starting, notice that although in this article I'm talking about HTML5, the …</p>Researching local multiplayer technologies for mobile devices - Part 22016-04-15T09:41:00+02:00Franco Bugnanotag:cownado.com,2016-04-15:/posts/2016/04/local-multiplayer-p2.html/<p>In this last part of this series, we will see a couple more technologies that can
be used to implement local multiplayer on mobile devices.</p>
<div class="section" id="wi-fi-direct">
<h2>Wi-Fi Direct</h2>
<p>Wi-Fi Direct, also known as Wi-Fi P2P, aims to bring together the discoverability and direct connection of Bluetooth,
with the speed and long …</p></div>Researching local multiplayer technologies for mobile devices - Part 12016-03-18T08:16:00+01:00Franco Bugnanotag:cownado.com,2016-03-18:/posts/2016/03/local-multiplayer-p1.html/<p>Our next game will feature local multiplayer, and in this blog post series I will talk about the
technologies that can be used to implement such feature, their platform support, and their implementation
in <a class="reference external" href="http://cordova.apache.org/">Cordova</a>.</p>
<p>Let's start by saying that by local multiplayer I don't mean two people playing on …</p>How the mobile HTML5 landscape has changed in 16 months2016-02-26T08:10:00+01:00Franco Bugnanotag:cownado.com,2016-02-26:/posts/2016/02/how-the-mobile-html5-landscape-has-changed-in-16-months.html/<p><a class="reference external" href="https://cownado.com/posts/2014/10/what-to-do-when-your-html5-game-runs-slow-on-mobile-devices.html">Last time I blogged about it</a>, we have seen the advantages of CocoonJS and <a class="reference external" href="http://impactjs.com/ejecta">Ejecta</a>, but that post was back in 2014,
and 16 months in the mobile landscape is an eternity.</p>
<p>In this blog post we will see some new possibilities for making performant HTML5 games for mobile.</p>
<p>While …</p>Bluetooth Networking Plugin for Cordova2016-02-12T13:30:00+01:00Franco Bugnanotag:cownado.com,2016-02-12:/posts/2016/02/bluetooth-networking-plugin-for-cordova.html/<p>With <a class="reference external" href="https://www.npmjs.com/package/cordova-plugin-chrome-apps-bluetoothsocket">cordova-plugin-chrome-apps-bluetoothsocket</a> already there, why bother creating a new Bluetooth networking plugin?</p>
<p>I will blog about it someday, but I'm researching ways to implement a local multiplayer game for mobile devices using HTML5.</p>
<p>Bluetooth communication can be a way to achieve such goal, and pretty much the only available Cordova …</p>Lessons learned from Frank the Dillo2016-01-22T09:30:00+01:00Franco Bugnanotag:cownado.com,2016-01-22:/posts/2016/01/lessons-learned-from-frank-the-dillo.html/<p>Now that <a class="reference external" href="https://cownado.com/pages/frank.html">Frank the Dillo</a> has been released, it's time to take a look back at what went good and what went wrong with its development.</p>
<p>Let's start by saying that the development of <a class="reference external" href="https://cownado.com/pages/frank.html">Frank the Dillo</a> began at the end of 2013, and 2 years of development is an …</p>Trailer for Frank the Dillo2015-09-04T20:18:00+02:00Franco Bugnanotag:cownado.com,2015-09-04:/posts/2015/09/trailer-for-frank-the-dillo.html/About framesets in friGame2015-07-16T08:51:00+02:00Franco Bugnanotag:cownado.com,2015-07-16:/posts/2015/07/about-framesets-in-frigame.html/<p>Framesets are the cool new feature in the latest development version of <a class="reference external" href="http://frigame.org/">friGame</a>, and in
this blog post we will see what they are and the motivation behind their implementation.</p>
<div class="section" id="the-problem">
<h2>The problem</h2>
<p>To start, let's review how animations are implemented in <a class="reference external" href="http://frigame.org/">friGame</a>:</p>
<p>First of all you have one big image …</p></div>How do isometric coordinates work2015-03-04T10:31:00+01:00Franco Bugnanotag:cownado.com,2015-03-04:/posts/2015/03/how-do-isometric-coordinates-work.html/<p>There are a number of good tutorials on the Internet explaining the basic
workings of the isometric projection related to game development in terms of
tiles and offsets, while other tutorials give directly the coordinate
transform formula without giving any explaination on how / why that formula
works.</p>
<p>In this blog …</p>Understanding prototypal inheritance in JavaScript - Part 42014-11-14T10:31:00+01:00Franco Bugnanotag:cownado.com,2014-11-14:/posts/2014/11/understanding-prototypal-inheritance-in-javascript-part-4.html/<p>In the previous installment of the prototypal inheritance series we have seen how to derive an
object to extend the functionality of the prorotype object.
Today we will explore some implications of wat we saw in the previous posts.</p>
<p>Let's pretend that you are creating a plugin based game development …</p>Understanding prototypal inheritance in JavaScript - Part 32014-11-07T11:38:00+01:00Franco Bugnanotag:cownado.com,2014-11-07:/posts/2014/11/understanding-prototypal-inheritance-in-javascript-part-3.html/<p>In the previous installment of the prototypal inheritance series we have seen how to instantiate
new objects based on a prototype object, now let's see how to make a derived object to extend the
functionality of the prorotype object.</p>
<p>As we have seen in the first installment of the series …</p>Understanding prototypal inheritance in JavaScript - Part 22014-10-31T09:41:00+01:00Franco Bugnanotag:cownado.com,2014-10-31:/posts/2014/10/understanding-prototypal-inheritance-in-javascript-part-2.html/<p>In the previous installment of the prototypal inheritance series we have seen how a class-based
object system works, now let's take a look at how to instantiate and initialize objects on
a prototypal object system.</p>
<p>Instead of creating a class, in JavaScript you create directly an object.</p>
<p>Now, the JavaScript …</p>Understanding prototypal inheritance in JavaScript - Part 12014-10-20T10:39:00+02:00Franco Bugnanotag:cownado.com,2014-10-20:/posts/2014/10/prototypal-p1.html/<p>One of the most misunderstood features of JavaScript is its prototypal object system
instead of the more familiar class-based one.</p>
<p>Most of the articles that you find on the Internet regarding JavaScript inheritance
don't mention some important details, that I'm going to show you in this blog post series.</p>
<p>Let's …</p>What to do when your HTML5 game runs slow on mobile devices2014-10-07T14:46:00+02:00Franco Bugnanotag:cownado.com,2014-10-07:/posts/2014/10/what-to-do-when-your-html5-game-runs-slow-on-mobile-devices.html/<p>In the first installment of the technical series, we talked about the main disadvantage
of the HTML5 technology, that is its performance can be poor compared to a native app.</p>
<p>When testing <a class="reference external" href="https://cownado.com/pages/frank.html">Frank the Dillo</a> a Kindle Fire HD it was so slow that it was unplayable.</p>
<p>Should <a class="reference external" href="https://cownado.com/pages/frank.html">Frank the …</a></p>Styling HTML links and buttons in order to appear the same2014-09-24T17:46:00+02:00Franco Bugnanotag:cownado.com,2014-09-24:/posts/2014/09/styling-html-links-and-buttons-in-order-to-appear-the-same.html/<p>When creating the game menus using HTML and CSS, there are 2 elements that
can be used to interact with the user, that are links, using the <tt class="docutils literal"><a></tt> HTML tag,
and buttons, using the <tt class="docutils literal"><button></tt> HTML tag.</p>
<p>Each of these 2 elements has its optimal use case, and they can …</p>Analyzing the building blocks of a friGame based game2014-09-16T11:36:00+02:00Franco Bugnanotag:cownado.com,2014-09-16:/posts/2014/09/analyzing-the-building-blocks-of-a-frigame-based-game.html/<p>In the previous installment of the technical series, we looked at the various
technologies needed to make a game based on <a class="reference external" href="http://frigame.org/">friGame</a>, and the 3 major blocks
that compose <a class="reference external" href="http://frigame.org/">friGame</a> itself; now let's take a look at the details of these
blocks by analyzing the arkanoid demo bundled with <a class="reference external" href="http://frigame.org/">friGame …</a></p>Structure and basic concepts of a friGame based game2014-09-09T11:13:00+02:00Franco Bugnanotag:cownado.com,2014-09-09:/posts/2014/09/structure-and-basic-concepts-of-a-frigame-based-game.html/<p>In the previous installment of the technical series, we discussed about why
<a class="reference external" href="http://frigame.org/">friGame</a> was the chosen technology for developing Frank the Dillo; today we
will be talking about the concepts behind <a class="reference external" href="http://frigame.org/">friGame</a> and the basic structure of
a game based on it.</p>
<p>The first important concept behind any HTML5 game …</p>A technical overview of Frank the Dillo2014-09-02T16:19:00+02:00Franco Bugnanotag:cownado.com,2014-09-02:/posts/2014/09/a-technical-overview-of-frank-the-dillo.html/<p>In the past 3 months there were no new user-visible features implemented for Frank the Dillo,
but this does not mean that we stopped working on the project, far from it, but rather we are
facing some technical challenges, that I will be blogging about in the next weeks.</p>
<p>Let's …</p>New images for Frank the Dillo!2014-05-15T08:00:00+02:00Andrea Ruffinotag:cownado.com,2014-05-15:/posts/2014/05/new-images-for-frank-the-dillo.html/<p class="first last">New images for Frank the Dillo!</p>
Frank is on a quest!2014-04-12T18:00:00+02:00Andrea Ruffinotag:cownado.com,2014-04-12:/posts/2014/04/frank-is-on-a-quest.html/<p class="first last">Frank mission</p>
Frank the Dillo is coming2014-03-10T18:00:00+01:00Andrea Ruffinotag:cownado.com,2014-03-10:/posts/2014/03/frank-the-dillo-is-coming.html/<p class="first last">Our first brand new game!</p>
Cownado at Next Game Frontier2014-03-09T18:00:00+01:00Andrea Ruffinotag:cownado.com,2014-03-09:/posts/2014/03/cownado-at-next-game-frontier.html/<p class="first last">Cownado at Next Game Frontier</p>