A game for learning about cancer therapy: help us crowdfund it!

 

I have been recently working in defining a new applied game with the association Noi Per Voi, called Feel Better: the game will support kids and young adults in cancer therapy at the kids hospital Meyer in Florence.

It will be a tool used by the kids to learn more about their context and how to deal with it; it will be co-designed by medical therapy specialists and also by the kids themselves.

There is an open crowdfunding campaign for this tool here:

https://www.eppela.com/en/projects/10856-feel-better

The campaign goal is 20.000 Euro, but it will reach its basic goal at 10.000 Euro funding (we are not far) as then the pledges will be doubled by a local foundation (Fondazione Cassa di Risparmio di Firenze). Going beyond the basic goal will allow us building an application that could be used in a wider spectrum of situations.

Any help in pledging and / or sharing the news about our initiative would be great.

Thank you,

Pietro Polsinelli

Italian version

Recentemente ho lavorato al design di un nuovo gioco applicato con l’associazione Noi Per Voi: il gioco si chiama Feel Better ed è per bambini e giovani adulti malati di cancro in terapia presso l’ospedale Meyer di Firenze.

Sarà uno strumento utilizzato dai bambini per apprendere sul loro contesto e come gestirlo; sarà disegnato collaborativamente da medici, psicologi e dai bambini stessi.E’ ora attiva una campagna di crowdfunding per questo strumento:

https://www.eppela.com/it/projects/10856-feel-better

L’obiettivo della campagna è di 20.000 Euro, ma l’obiettivo sarà raggiunto a 10.000 Euro dato che l’importo sarà raddoppiato dalla Fondazione Cassa di Risparmio di Firenze.

Andare oltre l’obiettivo base ci permetterà di costruire una applicazione che possa essere usata in uno spettro più ampio di situazioni.

Dateci un aiuto economico e / o nel condividere la campagna! Grazie.

Pietro Polsinelli

 

 

Social Share Toolbar

Towards my book “Explaining With games”

I am working on a book on applied games: “Explaining With Games”.
It will be a handbook, focused on the analysis of the applied games I have worked on in the last five years.

For information about the projects I worked on, here is a page dedicated to my projects and my profile.

Some images from the games I will examine:

This is how my draft of a book begins at the moment:

Games can be designed to teach and facilitate learning processes. In this book I present several real world cases where games have been applied as teaching tools, and through those cases I introduce concepts of game design used in applied games.

This book on applied games is a bit unique because it is mostly focused on teaching you on how to contribute creating such games.

The focus of this book is on how to create interactive experiences that facilitate learning. How can people with different skills contribute? How can the field experts and the game developers somehow work together?

It is easy to get lost in the field of game design and development: here I try to keep the focus on the projects I worked on as real world examples that should help in keeping things manageable.

Some of the questions that I try to (partially) answer along the way are:

How to use games to approach complexity and learning?

How can games be used for learning and teaching?

And why should one use games for that?

Any examples? What is the state of the art?

What is required for creating a game? Which expertise, tools?

How is the process managed? How are results measured?

How can I learn more beyond this book?

The book will be progressively released on LeanPub, which is a wonderful platform for collecting early feedback on the writing process.

 

 

 

 

Social Share Toolbar

Is Unity WebGL loading? A simple loader

F = (When you publish your Unity application or prototype in WebGL a problem that your testers or players may have is that while the browser is loading the application, no progress bar appears and so they may be tempted to reload the page again and so… F() ).

A simple fix to reassure them is to paste this script at the bottom of the index.html file that Unity produces at build:

<script>
  /**
   * Created by
   * Matteo Bicocchi @pupunzi
   * Pietro Polsinelli @ppolsinelli
   * Follow us as we are creating a game on #football 
   * with a story: "Football Voodoom" :-)
   * */

  var appName = "<b>" + Module.codeUrl.replace("Release/", "").replace(".js","") + "</b> ";
  var canvas = document.getElementsByTagName("canvas")[0];
  var canvasRect = canvas.getBoundingClientRect();

  var loader = document.createElement("div");
  loader.id = "loader";

  var loaderWidth = canvas.offsetWidth;
  var loaderHeight = canvas.offsetHeight;

  document.body.appendChild(loader);

  loader.style.position = "absolute";

  loader.style.top = 0;
  loader.style.bottom = 0;
  loader.style.left = 0;
  loader.style.right = 0;
  loader.style.margin = "auto";
  loader.style.width = loaderWidth + "px";
  loader.style.height = loaderHeight + "px";
  loader.style.background = "transparent";
  loader.style.color = "#fff";
  loader.style.opacity = 0.8;
  loader.style.fontSize = "16px";
  loader.style.letterSpacing = "3px";
  loader.style.fontWeight = "100";
  loader.style.textAlign = "left";
  loader.style.padding =  "30px";
  loader.style.boxSizing = "border-box";

  var dotCount = 0;
  var checkDisplay = setInterval(function(){

    if(Module.progress.progress > 0) {
      loader.style.display="none";
      clearInterval(checkDisplay);
    } else {

      loader.innerHTML = "Loading " + appName;

      for (var x = 0; x<dotCount; x++){
        loader.innerHTML+= ".";
      }
      
      dotCount = dotCount >= 40 ? 0 : ++dotCount;
    }
  },100)
</script>

This will show immediately “Loading…” and will animate it until the app loader appears. See it here:

Unity WebGL custom loader

Cool no? The JavaScript is really basic and should work wherever WebGL does.

 

 

 

Social Share Toolbar

Tips For The Pragmatic Unity Developer

In the video below I’ve presented several productivity tips / hacks for the great Unity3d developer, that cultivates his / her essential qualities (impatience laziness hubris):

 

Sources & References

The three most essential plugins are DOTween, Text Mesh Pro and Console Pro.

Jet Brains IDE for C# preview here.

The “auto-save on play” script is here, The “no more hot reload script” is here, both by the same cool guy.

The scene object enable and disable script is this:

public class TheScene : MonoBehaviour
    {
        public GameObject[] activateOnStartup, deactivateOnStartup;
        
        void Start()
        {
            foreach (GameObject go in activateOnStartup)
            {
                go.SetActive(true);
                if (go.GetComponent<CanvasGroup>() != null)
                    go.GetComponent<CanvasGroup>().alpha = 1;
            }
            foreach (GameObject go in deactivateOnStartup)
            {
                go.SetActive(false);
                if (go.GetComponent<CanvasGroup>() != null)
                    go.GetComponent<CanvasGroup>().alpha = 0;
            }
        }
    }

Follow me on Twitter where I post about game design, game development, Unity3d 2D, HTML5, applied / serious games.

Social Share Toolbar

Games Need Depth: My Research on Football

I’ve just published a post on Gamasutra with some reflections and sources on creating depth in games via narrative research, and how I am trying to do that on Football Voodoom.

Social Share Toolbar

First Trailer for Football VooDoom: Will To Comeback

A first trailer for an idea for a game on football that is taking shape both in design and in development – see the dedicated page for info and the trailer.

2016-08-08 22_44_59-Informazioni data e ora

Social Share Toolbar

(Mis)Understanding Applied Game Design: Vaccine!

Working with a no longer minuscule set of customers on applied games of a really wide spectrum of themes I’ve noticed in the early phases some misunderstanding that recur. In order to help both parties (game designers and field experts) to reach a common ground, I’ve set the misunderstandings in extreme and simplified form so you may use them as vaccine :-)

Also get the PDF here.

Follow me on Twitter where I post about game design, game development, Unity3d 2D, HTML5, applied / serious games.

 

Social Share Toolbar

A Circular Range Control for Unity UI

I needed a circular range control to be for a project using Unity UI, and there seemed not to be one built-in, I created one. I wanted it to work on both desktop and mobile (touch). In building it I found out that to make it usable it requires quite a bit of tuning. [Read more…]

Social Share Toolbar

Untangling GameObject State in Unity

In this short post and video I try to discuss and clarify a few points about GameObject state in Unity with respect to game, scene and “runtime” scope. It is a bit more complex than one may understand initially, so bear with me a little.

When you start developing scenes in Unity, it won’t take long before you start asking questions like:

How can I get the same GameObject in different scenes?

Why do static properties sometimes get reset across scenes?

Why when I reload a scene I get duplicated objects which are meant to be singletons?

How can I comply with the (highly practical) principle “Make the game runnable from every scene” when I have global instances from other scenes?

Here are some answers.

Here is the full schema I refer to:

GameObject State in Unity

While MonoBehaviour’s  life-cycle is quite well documented e.g. both directly in Unity docs here and also by third parties e.g. here, how to handle GameObject’s persistence in and across scenes may be more obscure.

So here are written (partial) answers to the questions above:

How can I get the same GameObject in different scenes?
Would be probably better to reword this as “how can I persist and share data across scenes” – and there are many ways to do that :-)

Why do static properties sometimes get reset across scenes?
Only static properties which are GameObjects present in the scene will get reset (typically singletons). Other static properties will be preserved across the virtual machine.

Why when I reload a scene I get duplicated objects which are meant to be singletons?
That is because you marked those objects with DontDestroyOnLoad and created them (also) in other scenes. Create them via code (not in hierarchy) checking before their existence.

How can I comply with the (highly practical) principle “Make the game runnable from every scene” when I have global instances from other scenes?
This is best done just as explained above: create the global objects in every scene via code if they don’t already exist.

 

Unity Execution Order

Unity Execution Order – from Unity documentation.

If you are in need of learning some good patterns in software game development, a really nice book is Game Programming Patterns. Here are also 50 Tips for Working with Unity (Best Practices) which I reread from time to time, understanding progressively more and more of them (but still not all :D).

Thanks to Daniele Giardini for some feedback on the state scheme above.

Follow me on Twitter where I post about game design, game development, Unity3d 2D, HTML5, applied / serious games.

Social Share Toolbar

Varieties of Game Applications

Can you use the pervasive media “videogame”  and this field’s design techniques for communicating effectively with people? Can games be used for what you have in mind? How can a field specialist work effectively with a game development team to communicate know how more effectively? [Read more…]

Social Share Toolbar