1 de jun de 2017

LookAt2D(Vector 3)

A method to rotate a Gameobject towards a Vector3 position.

void LookAt2D(Vector3 target)
        // Get point B based on point A as 0,0,0
        Vector3 targetDir = target - canon.transform.position;

        // Use Tangent to get the Angle. 
        // Tan(x) = catetoOposto/catetoAdjacente
        float angleRad = Mathf.Atan2(targetDir.y, targetDir.x);
        // convert angle to Degrees
        float angleDeg = angleRad * Mathf.Rad2Deg;

        // I´ll rotate "angleDeg" in "Vector3.forward" Axis
        canon.transform.rotation = Quaternion.AngleAxis(angleDeg, Vector3.forward);

31 de mai de 2017

Fade Out and Fade IN using Mathf.Lerp()

Lerp is a very interesting function because it changes a value between X and Y incrementing (or decrementing) by a W value. If W varies from de beginning to the end, you can simulate an Ease In and Out too.

In the example below, I want to go from 1 to 0 (fade effect) in 3 seconds.

The for loop will take 3 seconds to complete and X will be an incremental value from 0 to 1 for the Ease effect.

void Start()

    IEnumerator fade1()
        SpriteRenderer sprite = GetComponent<SpriteRenderer>();
        Color newColor;

        for (float x = 0f; x < 1f; x += Time.deltaTime / 3)
            newColor = new Color(1, 1, 1, Mathf.Lerp(1, 0, x));
            sprite.color = newColor;

            yield return null;


26 de mai de 2017


An example of how to use Raycast to show the path where the Gameobject will pass.
A tip is, you must disable Edit > ProjectSettings > Physics2D > Queries Start in Collider
This mean that the Raycast will not collide with the Collider where it starts in.

public int numPositions = 3;
public Vector3 diretion = new Vector2(1, 1);
public LineRenderer lineRenderer;
void UpdateLineRenderer()
    Vector3 actualDirection = diretion;
    Vector3 actualPosition = transform.position;
    Vector3 lastPosition = actualPosition;

    lineRenderer.SetPosition(0, actualPosition);

    for (int x = 1; x < numPositions; x++)
        RaycastHit2D hit = Physics2D.Raycast(lastPosition, actualDirection);
        lineRenderer.SetPosition(x, hit.point);
        lastPosition = hit.point;

        actualDirection = Vector3.Reflect(actualDirection, hit.normal);

We can use the Debug.DrawRay to see the Raytrace:

Debug.DrawRay(transform.position, diretion*100);

Drawing line in Runtime

void DrawLine(Vector3 start, Vector3 end, Color color, float duration = 0.2f)
        GameObject myLine = new GameObject();
        myLine.transform.position = start;
        LineRenderer lr = myLine.GetComponent<LineRenderer>();
        lr.material = new Material(Shader.Find("Particles/Alpha Blended Premultiply"));
        lr.startColor = color;
        lr.endColor = color;
        lr.startWidth = 0.02f;
        lr.SetPosition(0, start);
        lr.SetPosition(1, end);
        //GameObject.Destroy(myLine, duration);

Converting Angle to Vector direction

If the reflected angle (green) is greater than 50º, I want to change its direction for an angle of 45º (orange).

public Vector2 direction = new Vector2(1,1);

void FixedUpdate () {
 rb.velocity = direction * velocity;

private void OnCollisionEnter2D(Collision2D collision)
 Vector2 normal = collision.contacts[0].normal;
 float angle = Vector2.Angle(direction, normal));
 float angleComp = 180 - angle;
 Vector2 newDirection =  Vector2.Reflect(direction, normal);
 if (angleComp > 50)
  newDirection = Quaternion.AngleAxis(direction.x * 45, Vector3.forward) * normal;
 direction = newDirection;

Changing the Sprites of a Character in Runtime

Do you have two or more characters in your game with the same structure, animation but you need to change its Sprites to make them look different?

Do you want to change the Sprite of a character in order to change its look, for example, just to change its clothes or objects that it's carrying?

Put this Component into your Character´s GameObject.
In the Inspector, change the spriteSheetName property to the name of your SpriteSheet Asset.
The Spritesheets must have the same "sliced" sprites name, for example: head, body, etc.

using UnityEngine;
using System;

 * This script changes the sprite of a gameobject in runtime
 * the sprites must be in the Resources folder
 * */
public class ChangeSprite : MonoBehaviour {

 public String spriteSheetName; // name of sprite to be loaded

 void LateUpdate () {
  var subSprites = Resources.LoadAll<Sprite>(spriteSheetName);
  foreach(var renderer in GetComponentsInChildren<SpriteRenderer>()) // get all SPriteRenderer from my GameObject
   string spriteName = renderer.sprite.name;
   var newSprite = Array.Find(subSprites, item => item.name == spriteName);

   if (newSprite)
    renderer.sprite = newSprite;


23 de mai de 2017

How to limit the moviment of a GameObject into the Screen

This function limits the moviment of a GameObject to it´s Cam Screen.

private void CheckLimits(Vector3 posAtual)
    SpriteRenderer renderer = GetComponent<SpriteRenderer>();

    float newX = Mathf.Clamp(transform.position.x, 
        cam.ScreenToWorldPoint(new Vector3(0, 0, 0)).x + renderer.bounds.size.x/2, 
        cam.ScreenToWorldPoint(new Vector3(cam.pixelWidth, 0, 0)).x - renderer.bounds.size.x / 2);

    transform.position = new Vector3(newX, posAtual.y, posAtual.z);

19 de mai de 2017

Anima2D Spring Bones BUG

If you animate a character with Anima2D and uses Spring Bones to apply physics on some bones, you will realize that if you flip your character, an odd bug happens.

The bones with "spring bones" applied to them, become strange and start to behave in a manner that we don´t want to.

To solve that, you must check "Is Animated" in the Spring Bone Component :)

2 de mai de 2017

How to set the "New Line" convention in Visual Studio

Each OS has theis own way to deal with New Line character.
Win = CT LF
Mac = CR
Unix = LF

In VS 2015 you go to:

  1. File
  2. Advance save options
  3. Choose the correct option for your OS
In VS 2017 you go to:
  1. File
  2. Save As
  3. Click the down arrow on the Save button and clicking "Save With Encoding...".
  4. Choose the correct option for your OS
You can also add it back to the File menu through Tools->Customize->Commands if you want to.

1 de mai de 2017

How to know if I collided with a especific side of a GameObject

Sometimes we need to detect if a Gameobject collided with a especific side of another GameObject, or even a side of the Screen.

We can do that cheking the "Normal" of the collision´s angle.

if (collision.collider.name == "Wall") { // collided with screen top
    Vector2 normal = collision.contacts[0].normal;
    if (normal == Vector2.down)
this.enabled = false;

How to "Reflect" the angle of a collision

How to get the Screen (Camera) Size


GameObject following Mouse

Vector3 temp = Input.mousePosition;
temp.z = 10;
transform.position = new Vector3(Camera.main.ScreenToWorldPoint(temp).x, transform.position.y, transform.position.z);

How to get the size (Wrold size) of a GameObject in 2D

SpriteRenderer renderer = GetComponent ();

Ways to move an object in 2D

I found some ways to move an GameObject in the 2D enviroment.

  1. First, I get the Input from the Keyboard or the Mouse:

    float direction = Input.GetAxis("Horizontal");
    float direction = Input.GetAxis("Mouse X");

    Both returns values between -1 and 1, depending on the direction.
  2. I get the actual position of the object

    Vector3 posAtual = transform.position;
  3. Move it!

    # Changing the X of the vetor
    transform.position = new Vector3(posAtual.x + (velocity * mouseDir * Time.deltaTime), posAtual.y, posAtual.z);

    # Adding a new vetor to the actual position vector
    transform.position += new Vector3(velocity * direction * Time.deltaTime, 0, 0);

    # Adding a vector by direction
    transform.position += transform.right * velocity * direction * Time.deltaTime;

    # Following the mouse
    Vector3 temp = Input.mousePosition;
    temp.z = 10;
    transform.position = new Vector3(Camera.main.ScreenToWorldPoint(temp).x, posAtual.y, posAtual.z);

    # Adding Force
    rb.AddForce(transform.right * force * direction);

    # Using the Tranform method "Transalte"

    transform.Translate(velocity * direction * Time.deltaTime, 0, 0);

15 de mar de 2017

ADB não reconhece dispositivo

De vez em quando, ao rodar o ionic run android, não aparece device para ele rodar mesmo o celular estando conectado via USB.

\adb devices
retorna vazio

Eu instalei 2 pacotes de drivers que achei na web
INSTALL G:\Download\Driver\Android-adb-driver.exe (NÃO SEI SE É NECESSÁRIO)
INSTALL G:\Download\Driver\MotorolaDeviceManager_2.5.4.exe (NÃO SEI SE É NECESSÁRIO)

** um deles apaga o PATH de variáveis do sistema, tem que reinstalar:

                          Procurar driver no Computador - permitir que escolha de uma lista - adb
                                      Android Sooner ADB Testing Interface

17 de fev de 2017

PHP connecting with MySQL

There are 3 ways to connect PHP with MySQL:

  1. PHP's MySQL Extension (old one)
  2. PHP's mysqli Extension (current using)
  3. PHP Data Objects (PDO)
I´ll talk about the second one: mysqli.

mysqli means "MySQL improved extension".

The mysqli extension has a number of benefits, the key enhancements over the mysql extension being:
  • Object-oriented interface
  • Support for Prepared Statements
  • Support for Multiple Statements
  • Support for Transactions
  • Enhanced debugging capabilities
  • Embedded server support
As well as the object-oriented interface the extension also provides a procedural interface.

Procedural interface
 $mysqli = mysqli_connect("example.com", "user", "password", "database");  
 if (mysqli_connect_errno($mysqli)) {  
   echo "Failed to connect to MySQL: " . mysqli_connect_error();  
 $res = mysqli_query($mysqli, "SELECT 'A world full of ' AS _msg FROM DUAL");  
 $row = mysqli_fetch_assoc($res);  
 echo $row['_msg'];

Object-oriented interface
 $mysqli = new mysqli("example.com", "user", "password", "database");  
 if ($mysqli->connect_errno) {  
   echo "Failed to connect to MySQL: " . $mysqli->connect_error;  
 $res = $mysqli->query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");  
 $row = $res->fetch_assoc();  
 echo $row['_msg'];  


7 de jan de 2017

Apagar arquivo com nome muito extenso

Assuming you are on windows:
What I always do is use subst to create a driveletter asccociation with part of the path.
Then go to the new driveletter and navigate to the files that have long names. You should now be able to rename/delete/etc them. The reason this works is because the path itself is no longer containing >255 chars.

To create a subst folder

  1. Start a commandprompt (no admin privileges needed)
  2. Use cd to navigate to the folder you want to go (you can use tab to autocomplete names
  3. type subst j: . to create the driveletter association. (instead of the . you can also type the entire path)
  4. Now in explorer you have a new letter. Go to it and do whatever you need to do to the .cache files.
  5. Go back to your cmd window and type subst /d j: to remove the drive or alternatively, restart your pc.
EDIT: A trick I learned which can shorten this quite a bit. From the explorer window where you have trouble, click the addressbar so you can type in it, then type cmd and press Enter to start a command prompt at that location, then proceed at step 3. :)
EDIT2: Okay, this trick can be expanded even further. If you are in explorer at the right path, just type in subst j: . in the addressbar and press enter. A command window will pop up, execute the command and close again, and there you go, a new drive pops up in explorer.

26 de dez de 2016

Using Cordova Plugin without ngCordova

I needed to verify the Wifi that the app is connected and I didn´t find the Cordova plugin in ngCordova list, so I found the WifiWizard plugin that had all that I needed and used it inside the app.
Below, I put the steps that I did to get it working:

  1. ionic start WifiWizard blank
  2. cd WifiWizard
  3. ionic platform add android
  4. cordova plugin add WifiWizard
  5. ionic run android -l
One tip is to put the method call of the plugin iside a $ionicPlatform.ready(function() { }

.service('WifiService', function($ionicPlatform) { 
  var service = this; 
  $ionicPlatform.ready(function() { 
    WifiWizard.listNetworks(successNetwork, failNetwork); 

   var successNetwork = function(response) { console.log("successNetwork"); } 
   var failNetwork = functionresponse { console.log("failNetwork"); } 

We can also call the plugin using:

3 de out de 2016

Sorocaba - vereadores 2017

Em vermelho quem foi reeleito:

3 de ago de 2016

Matéria na TV Tem Sorocaba com Kiduca


2 de ago de 2016

Ionic - Device communication time out

If I let the file "platforms\android\cordova\node_modules\q\q.js" without changes, when I try to build the apk or test direct in the phone, it gives me an error:

Error: Device communication timed out. Try unplugging & replugging the device.

To solve the problem I must change the code from

var timeoutId = setTimeout(function () {
deferred.reject(new Error(message || "Timed out after " + ms + " ms"));
}, ms);


var timeoutId = setTimeout(function () {
deferred.reject(new Error(message || "Timed out after " + ms + " ms"));
}, 10000000);

I found the solution in this post.

Ionic - stopped building for Android

I finished the day building the app for Android normally. The next day, when I tried to build, it gave me an error message:

ionic Execution failed for task ':merge Debug Assets'

The solution was to remove the Android platform from the project and add it again.

> ionic platform remove android
> ionic platform add android

6 de dez de 2015


Com a atual situação econômica do pais, mais as frequentes descobertas de corrupção, eu comecei a refletir sobre a influência da população nisso tudo e principalmente a minha participação, e cheguei a conclusão que os "políticos" do executivo, legislativo e judiciário são exatamente a representação da nossa cultura política, ou seja, é o reflexo de nossa total ignorância no assunto.

Sei que não posso generalizar, mas acredito que a grande maioria da população se enquadra como "analfabetos políticos". Não sabemos nada sobre o assunto e queremos reclamar.

Por conta disto, decidi estudar e tentar influenciar o meio que participo (família, amigos, trabalho, etc) para nos politizarmos com o intuito de nos tornarmos melhores eleitores e fiscalizadores.

Temos que conhecer o processo, como funciona o básico para podermos colocar pessoas competentes na posição de representantes do povo e depois numa segunda etapa, poder cobrar dessas pessoas a sua função.

Algumas perguntas que fiz para mim mesmo e fiquei assustado com o resultado:

  1. Quantos vereadores trabalham na Câmara de vereadores da sua cidade?
  2. Fale o nome de 5 vereadores ativos.
  3. Quem foi o último vereador que você votou?
  4. Quantos deputados estaduais trabalham na Assembléia Legislativa?
  5. Fale o nome de 5 deputados ativos.
  6. Quem foi o último deputado estadual que você votou?
  7. Quantos deputados federais trabalham da Câmara dos deputados?
  8. Fale o nome de 5 deputados federais.
  9. Quem foi o último deputado federal que você votou?
  10. Quantos senadores trabalham no Senado Federal?
  11. Quantos senadores representam o estado de SP?
  12. Quem são eles?
  13. Você sabe quanto cada um deles ganham por mês e quais seus benefícios? Vereadores, deputados e senadores?
  14. Você pesquisou se havia ocorrências na Justiça e no Tribunal de contas dos seus candidatos antes de votar? Se ele já tem um passado criminoso na política, por que colocá-lo novamente?

Isso seria o básico de conhecimento, o nível intermediário seria o acompanhamento de quem você votou (ou algum legislador adotado).

Pois é meu amigo, se você foi bem no questionário acima, parabéns!
Na minha opinião, você tem o direito de reclamar da situação atual do Brasil. Agora, se você (assim como eu) não sabe muitas respostas, acho melhor estudar primeiro.

"O Analfabeto Político

O pior analfabeto é o analfabeto político. Ele não ouve, não fala, nem participa dos acontecimentos políticos. Ele não sabe que o custo de vida, o preço do feijão, do peixe, da farinha, do aluguel, do sapato e do remédio dependem das decisões políticas.

O analfabeto político é tão burro que se orgulha e estufa o peito dizendo que odeia a política. Não sabe o imbecil que, da sua ignorância política, nasce a prostituta, o menor abandonado, e o pior de todos os bandidos, que é o político vigarista, pilantra, corrupto e lacaio das empresas nacionais e multinacionais."

Bertolt Brecht: O Analfabeto Político O pior analfabeto...

Eu era analfabeto político, e me alfabetizei!
Quero que o Brasil mude, por isso mudei!
E você?

Respostas das perguntas:

  1. 20 vereadores em Sorocaba
  2. Depende da cidade
  3. Resposta pessoal.
  4. Em SP 94 deputados
  5. Lista de deputados estaduais (SP)
  6. Resposta pessoal.
  7. 513 deputados federais
  8. Lista dos deputados federais
  9. Resposta pessoal.
  10. 81 senadores
  11. 3 senadores
  12. Lista dos senadores que representam SP
  13. Quanto ganha?
  14. Exemplo de senador com ocorrências

1 de nov de 2015

Sonar X3 - Transformando trilha MIDI em trilha de audio

Para transformar uma trilha que você gravou em MIDI (ex: Synth Direct-X Cakewalk TTS2) numa trilha em áudio, basta:

  •  selecionar a trilha do Direct-X e a trilha que você gravou MIDI
  • ir em Tracks - Bounce to Track
  • mantenha essa janela com as configurações default
  • Ok
Ele criará uma trilha de áudio com o conteúdo da trilha em MIDI

17 de set de 2015


O que seu filho estudou hoje na escola?
Já parou para pensar/refletir o que ele estuda?
O meu está estudando Geografia:
- Formas e relevos, Mapeando o relevo do país.
- Planaltos de núcleo cristalino arqueados.
- Recursos hídricos, curso inferior, curso médio e superior.
- Bacias do Brasil
- Bacias Secundárias
- Continentalidade e Maritimidade
- Tipos de Clima
- etc, etc, etc
50 páginas com esses conteúdos!
A criança estuda, faz a prova e esquece.
Não acredita? Deixe passar uma semana das provas e faça a prova novamente para eles: história, geografia e ciências (pelo menos a maioria deles).
Nós também estudamos tudo isso um dia.
Qual a porcentagem de conteúdo enfiado em você nos 12 anos de ensino fundamental I, II e médio você ainda lembra hoje?
"Cinturões orogênicos". Não sabe o que é? Como não?? Você estudou um dia, e um dia, se você não soubesse, você tiraria -1 na prova!
Se num momento da vida dele "Cinturões orogênicos" forem importantes, aposto que ele vai entrar no Google e vai pesquisar tudo sobre o assunto. Mas assim, enfiado goela abaixo, a única coisa que acontece é ele odiar os Cinturões que nem tem culpa.
Estudar precisa ser assim?
Conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo sem sentido para a criança.
Já pensou nisso?
Tem que estudar? sim, lógico. Cultura, educação e conhecimento são pilares fundamentais para o ser humano. Mas, acredito que 60% do conteúdo abordado em sala de aula não precisaria ser ensinado da forma que é. Perda de tempo de todos: escola, professor, pais e aluno.
Doze anos investidos no que a criança quer/goste realmente de fazer, mostre motivação e dedicação, teríamos homens e profissionais melhores para o mundo.
Fábio Colombini

Batman - 1986 (TK-85)

Joguei muito com o TK-85, 8 bits que usava processador Z-80A e linguagem BASIC.

17 de mai de 2015

Novembro 4 faz parceria com a Kiduca, empresa de games e educação

A Novembro 4 e a Kiduca criaram uma parceria para oferecer ao mercado corporativo soluções de comunicação e interação na plataforma de jogos, a chamada gamificação.

Leia mais...

12 de nov de 2014

Castle Wolfenstein (Apple IIe)

Where in the World is Carmen Sandiego (Apple IIe)

Jogue aqui

Lucifer´s Realm (Apple IIe)

Eu lembro cada nota dessa introdução. Era demais!
Os gráficos então, nem se fala.

Jogue aqui

Masquerade (Apple IIe)

Masquerade é um jogo estilo Adventure, desenvolvido pela Phoenix e publicado pela American Eagle Software. Foi lançado em 1983.

Aprendi muito vocabulário em inglês com esses Adventures do Apple IIe.

Jogue aqui

8 de set de 2014

Kiduca na Revista de Sábado

Destaque da plataforma Kiduca na reportagem da TVTEM / Rede Globo. 
Na reportagem a escola que utiliza a plataforma é a Escola Estadual Reverendo Augusto da Silva Dourado.

Assita ao vídeo 

4 de ago de 2014

Blog Educação no Conexão Futura: Ensino e novas tecnologias

Utilizada há mais de dois anos em escolas públicas e privadas, a Kiduca é uma plataforma educacional baseada em jogos e fundamentada nas Diretrizes Curriculares Nacionais.

Leia a matéria completa

23 de mai de 2014


No último 19 de março, os alunos do 4º e 5º ano do Colégio Veritas brincaram e estudaram simultaneamente em uma gincana multidisciplinar com o objetivo de revisar de forma virtual, interativa e divertida o conteúdo para as provas. A atividade foi realizada por meio de uma plataforma educacional que simula um jogo online. 
Os estudantes foram divididos em grupos de meninos e de meninas para iniciar a gincana. As professoras elaboraram um quiz, do qual todos os estudantes participaram. Ganhava aquele que apertasse o botão com a resposta correta. A euforia dos alunos tomou conta do ambiente: “Adorei a brincadeira. Além de aprender, me diverti muito. Estou pronta para as provas agora”, comemorou Maria Eduarda Teles de Carvalho, do 4º ano.

Leia mais

9 de mai de 2014

Kiduca no Jornal do Brasil e Porvir

O Jornal do Brasil publicou uma matéria do Porvir sobre o Kiduca.

Clique aqui para ver

27 de set de 2013

Novo site do Kiduca

Colocamos no ar está semana o novo site do Kiduca em HTML5 com parallax.
Site com cara nova!!


8 de ago de 2013

Kiduca - Jornal Cruzeiro do Sul

Matéria que saiu no Jornal de Sorocaba Cruzeiro do Sul.


Projeto de Sorocaba é selecionado pelo MCT

Através do Kiduca, os professores têm criado games de forma muito simples, mesmo sem nenhum conhecimento de programação - Erick Pinheiro

Daniela Jacinto

Desde que a educação firmou parceria com a informática, projetos inovadores têm servido como facilitadores para o aprendizado dos alunos. Uma das ideias que têm sido espalhadas é a dos games, que nas mãos do empreendedor de Sorocaba Jorge Alberto França Proença, 45 anos, fundador do projeto Pérola - que incentiva jovens a investirem em seus talentos - multiplicou-se de tal forma que hoje mais de cinco mil alunos estão aprendendo com a ferramenta, criada por ele em parceria com Fábio Colombini, seu sócio na empresa Singol Games Educacionais, responsável pelo desenvolvimento do Kiduca - A Cidade Educação, um site com jogos educativos.

Os games com conteúdo pedagógico somam cerca de 300 e são vendidos para 12 escolas públicas e seis particulares. Como um empreendedor sempre tem metas, Jorge Proença quer alcançar, num prazo de quatro anos, a marca de cem mil alunos aprendendo com os seus jogos. E para que ninguém duvide que querer é poder, ele acaba de ter seu projeto selecionado já na primeira turma de aceleração do programa Start-up Brasil, do Ministério da Ciência e Tecnologia (MCT).

Jorge Proença receberá R$ 200 mil na forma de bolsa para pesquisa, desenvolvimento e inovação concedida pelo Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq), parceiro no programa, juntamente com a Apex Brasil. Além disso, a ideia de Jorge deverá ser contemplada com mais recursos provenientes de uma empresa aceleradora, ainda a ser definida. Uma empresa aceleradora funciona à semelhança das incubadoras e tem a função de ajudar no desenvolvimento de pequenas empresas ou microempresas, apoiando-as nas primeiras etapas de suas vidas.

Para Jorge Proença, fazer parte do Start-up Brasil significa um atestado para a seriedade de seu trabalho. "Pela primeira vez aqui no Brasil está sendo feito investimento em capital humano de empreendedorismo", comenta. O Kiduca concorreu com 908 projetos inscritos, sendo 672 nacionais e 236 estrangeiros, vindos de 37 países. Foi selecionado entre os 45 projetos brasileiros. Dos estrangeiros foram eleitos 11. A área de educação, onde se encaixa o projeto Kiduca de Jorge, obteve o maior número de inscrições (19%), seguida de varejo, com 14%, e saúde, finanças e eventos de turismo, todos com 9%.

Jogos que educam de forma divertida

Kiduca - A Cidade Educação é uma cidade virtual onde os nomes dos bairros são os mesmos das disciplinas do currículo escolar, como Matemática, Português e Ciências, entre outros. Em cada um desses bairros, são disponibilizados games de acordo com a área do conhecimento. No bairro Matemática, por exemplo, o aluno irá aprender a fazer operações matemáticas e tabuadas. No bairro Português irá aprender sobre a Língua Portuguesa, e assim por diante, em um trabalho que complementa e auxilia os professores em seus projetos de alfabetização, ensino de matemática e demais disciplinas.

Jorge Proença explica que o game tem conteúdo pedagógico de acordo com a faixa etária e série do aluno. Os atendidos pelo projeto são crianças de 6 a 11 anos, estudantes do 1º ao 5º ano do ensino fundamental. A plataforma Kiduca é baseada em games estilo MMO (Massively Multiplayer Online), em que várias pessoas conectadas interagem entre si. Assim, dentro da Cidade Educação, os alunos podem se encontrar para trocar informações e conhecimentos online. Esse ambiente interativo tem como objetivo criar um contexto de "mundo próprio" para avatares (personagens fictícios) onde serão criadas situações para estimular a curiosidade do aluno, levando-o ao aprendizado das disciplinas.

Jorge acredita que esta seja uma forma de motivar os alunos a estudarem/aprenderem de modo mais dinâmico, lúdico e agradável, seguindo a ideia de que se aprende brincando. Formado na área tecnológica e pós-graduado em educação, ele conta com uma equipe multidisciplinar para ajudar na confecção dos games, composta, entre outros profissionais, por dois professores que o auxiliam na parte pedagógica. "As escolas que participam também colaboram. Elas podem preencher um formulário com os objetivos e habilidades que querem que sejam desenvolvidos com o game", conta.

A equipe de Jorge já criou 80 jogos. "São os que a gente chama de games próprios. Mas temos um conceito inovador na plataforma, que é de autoria criativa. São ferramentas que existem na plataforma para alunos e professores criarem games, então os usuários também fazem isso, portanto temos mais de 200 games criados por eles", conta. Ainda de acordo com Jorge, através do Kiduca, os professores têm criado games de forma muito simples, sem nenhum conhecimento de programação.

Esse trabalho, que teve início em 2011, surgiu quando Jorge passou a ter contato com as escolas em um período que estava desenvolvendo nesses locais um processo de inclusão digital. "Daí percebi que existia um abismo entre projeto pedagógico e tecnologia. Então fui buscar qual seria a melhor forma de impactar o aprendizado com tecnologia e vi que o game era a linguagem preferida das crianças e adolescentes", afirma. O projeto deu tão certo que Jorge irá implantar um piloto no mês que vem em uma escola no México. Essa expansão foi longe porque um dos ilustradores do Kiduca mora no México e apresentou o projeto em uma escola daquele país, que ficou interessada. "Não tem fronteiras, a fronteira é nossa competência", diz Jorge.

Como participar

Interessados em participar do programa Start-Up Brasil têm chance de concorrer ainda este ano. Em setembro serão abertas novas inscrições. A data não foi divulgada, mas basta ficar atento às informações do site. Para se inscrever é preciso ter uma empresa brasileira ou estrangeira, com até três anos de constituição.

O Start-Up Brasil é direcionado a quem desenvolve produtos ou serviços inovadores e que utiliza software e serviços de Tecnologia da Informação como parte de sua solução. A iniciativa visa criar no Brasil um espaço para o surgimento de empresas com produtos e serviços inovadores.

O programa Start-Up Brasil foi lançado pelo governo federal no ano passado e terá recursos de R$ 60 milhões para as três edições, ajudando um total de 300 empresas, ou 100 a cada ano, até 2015. Site: http://startupbrasil.mcti.gov.br.

Quem é Jorge Proença

Nascido em Itapetininga, Jorge Proença veio morar em Sorocaba com 14 anos. "Estudei no Estadão, na Fatec, e abri minha primeira empresa aos 19 anos", conta. Ele lembra que o tino para os negócios começou cedo. "Quando tinha 11 anos minha mãe me deixou vender sonhos no mercado", orgulha-se. Foi uma iniciativa própria e que não veio de costume familiar, já que seus pais nunca tinham lidado com o ramo comercial ou empresarial.

Jorge afirma que conseguiu tudo na vida com oportunidade e trabalho. "Entendi que isto fez com que eu crescesse como pessoa. Esse processo de querer fazer mais pela sociedade nasceu dessa minha observação das injustiças do mundo em que eu vivia". Há 15 anos Jorge resolveu fazer um planejamento de sua vida e desde então tem cumprido suas metas. "Eu fiz um plano para minha vida, de 60 anos. Primeiro eu iria para organizações sociais, que foi o que fiz com a criação do projeto Pérola, depois eu pensei em mais 25 anos para a área da educação e por fim o restante ficaria para a parte de distribuição de renda", conta.

Em 2002, Jorge lançou um livro sobre planejamento pessoal, para que mais pessoas pudessem ter uma programação para seu futuro. "Toda essa minha trajetória e planejamento começaram quando fui fazer uma prática que era para a pessoa escrever um artigo sobre a própria vida. Foi aí que vi que minha vida tinha de ter coisas mais legais para merecer uma página de jornal. Fiz então um plano, quando tinha 30 anos, e agora estou percorrendo-o", ensina.
Notícia publicada na edição de 08/08/13 do Jornal Cruzeiro do Sul, na página 12 do caderno A - o conteúdo da edição impressa na internet é atualizado diariamente após as 12h.

24 de jul de 2013


Estava estudando a Biblioteca LiquidCrystal quando tive a ideia de fazer o famoso
Pong para Arduino na tela de LCD 20x4.

- Arduino Mega 2560
- LCD 20x4
- Protoboard 830
- Mini Protoboard 170 Pontos
- Potenciometro 10k
- 4 Botões 6x6mm
- Alto falante (PC)


 Download do código: PongDuino.rar

25 de jun de 2013

Macaculando e Kiduca na Info Exame

A revista Info Exame entrou em contato querendo conhecer o Leapmotion. Marcamos uma demonstração com um jogo que desenvolvemos chamado Macaculando e coloquei o Leap como interface de controle.

Leia o artigo no site da Info exame

Na mão: Leap Motion desafia a interface tradicional

Leap Motion com acabamento digno de um produto da Apple – Foto: INFOlab
Por que um dispositivo tão pequeno pode desafiar a forma como interagimos com um sistema computacional? Com poucos minutos de uso no INFOlab, chegamos a um consenso. O Leap Motion é muito preciso e tão natural como apontar para um objeto que você deseja. Neste ponto de vista é muito promissor, mas é preciso entender um detalhe fundamental: seu estágio de desenvolvimento ainda é embrionário.

O Leap Motion é um dispositivo com dimensões de 3,0 x 8,0 x 1,1 cm, capaz rastrear a posição da ponta dos seus dedos ou a mão inteira por infravermelho (são três emissores e dois receptores). Reconhece também outros objetos pontiagudos, como uma caneta. Toda área em volta acaba virando uma grande tela sensível. A consideração é estranha, mas é isto mesmo. É como se a tela sensível ao toque fosse deslocada em um eixo ganhando volume. Então, seus dedos agem como uma ferramenta no espaço. Cada posição vira uma coordenada para interagir com o sistema.
Gestos circulares com Leap Motion
Gestos circulares com Leap Motion – Imagem: Divulgação
Esta iniciativa de deixar o mundo bidimensional de interface homem-máquina para o tridimensional tem alguns pontos negativos. Como os sensores ficam embaixo do movimento das mãos, a sobreposição de dedos não é captada. Outro detalhe é que nem todo mundo está disposto a passar horas fazendo gestos na frente de um computador.
Ele funciona através de um driver – disponível para Windows, OS X e Linux. Há um aplicativo de calibração e um visualizador de gestos, mas todo o software necessário faz parte de um programa de desenvolvimento fechado para pouquíssimas pessoas. É o caso dos brasileiros Jorge Proença e Fábio Colombini da plataforma de educação Kiduca. Eles conseguiram acesso ao dispositivo submetendo um projeto de um jogo educacional.
Fábio demonstrando como jogar o Macaculando usando o Leap Motion – Foto: INFOlab
Na primeira experimentação, o jogo de matemática chamado Kiduca Macaculando passou a ser comandado por um gesto com dois dedos, imitando uma arma. Basta apontar para o resultado correto de uma operação matemática que aparece na tela a mira. Depois fechar o dedo para disparar a arma virtual. Os profissionais estudam desenvolver novos jogos com física e profundidade de campo para chamar ainda mais a atenção das crianças.
Como a fase é inicial, são poucos os exemplos disponíveis. Mas isto deve mudar em breve. Em Julho começa a funcionar a loja de aplicativos Airspace. Os aplicativos custarão no mínimo 1 dólar e 70% desta receita ficará com o desenvolvedor. Além da pré-venda de mais de 600 mil dispositivos (cerca de 78 dólares), a empresa espera lucrar com o ecossistema que está se formando. Tomara que a ganância não acabe esgotando as possibilidades do Leap Motion.

28 de mai de 2013

Palestra de Desenvolvimento de Games - Fatec Itú

 Amanhã (28/05/2013), estarei dando uma palestra na FATEC de Itú sobre Desenvolvimento de Games.

Download do folder

21 de mai de 2013

Kiduca na mídia

A educadora Rosalígia Montezze fala da importância dos jogos atualmente no desenvolvimento intelectual dos nossos filhos e o KIDUCA é um deles

2 de abr de 2013

Windows 7 não inicia (sem boot)

Tudo estava normal. Deixei meu i7 dormindo e fui até a Singol. Quando voltei ele estava desligado.

"Aff, quem desligou o computador?? Tinha deixado vários programas abertos". Apertei o botão para ligar e para minha surpresa ele não ligou mais, ficou apenas o cursor piscando na imensidão da tela negra.

Minha primeira suspeita: meu filho. Chamei de canto para o interrogatório e não adiantou nenhuma forma de tortura, ele não confessou o crime. De repente, entra no quarto um ser que não estava na lista dos suspeitos, minha filha de 5 anos, dizendo: "Papi, posso contar uma coisa, acho que eu bati na tomada e ele desligou sozinho" (com certeza não bateu apenas uma vez, deve ter sido uma sequência de ligue e desliga). Com essa atitude nobre de assumir o crime, não tinha o que falar, acabei tendo que elogiá-la pela honestidade e aguentar meu filho falando: "viu, não acredita em mim, pergunte para todos antes de me culpar". Ainda tive que pedir desculpas para ele. Mas não havia chegado ao veredito ainda, estava apenas em fase de investigação.

Bom, estava eu, na cena do crime, olhando para e tela preta e batendo os pés sem parar pensando: O que eu vou fazer agora? será que perdi tudo? Vou ter que reinstalar os 8234824234284 programas novamente, meu Deus, o que será de mim?

Dei o Boot pelo CD do Ubuntu 10.10 e para minha primeira felicidade, todos as partições estavam intactas. A falha deve ter ocorrido em alguma trilha de boot do windows.

Eu particiono meu HD de 500GB da seguinte forma, o que me ajudou nesse momento:
  • Win7 (200GB) - apenas sistema e coisas que o windows instala sem minha permissão
  • Softwares (100GB)
  • Dados (100GB)
  • Outros (100GB)
Copiei todo o conteúdo da partição do Win7 para um HD externo (demorou um pouquinho, deixei de madrugada fazendo a cópia). Quando acordei no outro dia, antes mesmo de lavar o rosto fui ver se já havia copiado tudo. Pra minha surpresa tinha uma mensagem: "O arquivo XPTO não pode ser copiado", isso estava a 15%. Cliquei em ignorar para todos e fui lavar o rosto decepcionado.

Horas depois...

Terminado a cópia, abri o Gparted do ubuntu e apaguei a partição C: (win7). Criei uma nova partição tipo ntfs e "marquei" como partição de Boot. Copiei tudo de volta do HD externo para essa nova partição.

Horas depois...

Não estava acreditando que iria dar certo, mas deu!!!

Quando conectei todos os cabos no PC, ele reinicializou. Fui descobrir que o driver da placa de rede estava corrompido. Precisei baixar a última versão do site da Intel, desinstalar o driver, apaguei erros do registro com o programa CCleaner, instalei o novo driver e pronto. Tudo funcionando redondinho.

Fica a dica.

16 de mar de 2013

Kiduca no Porvir

Alunos de Iperó aprendem em cidade virtual

Nesta cidade, é possível andar a pé pelo centro ou pegar um metrô para se deslocar para locais mais distantes.  Quem visitar o bairro Ciências vai encontrar, por exemplo, um jogo para organizar, corretamente, os elementos presentes em cada estação do ano. Enquanto no bairro...


I Fórum Game Brasil – SimGAMES

No dia 19/06/2012, participei de um Fórum de Games em Sorocaba na UNISO, aprensentando uma oficina de  Desenvolvimento de Jogos MMO com Flash CS5.5 e SmartFox Server.

Segue video com a reportagem da TV Tem.


15 de mar de 2013

Reciclagem em inglês (FTD)

Jogo desenvolvido para a editora FTD.

O jogo consiste em pegar objetos de uma esteira e arrarstar para o lixo correto.
Cada vez que um objeto cai na esteira, uma voz feminina fala em inglês qual o tempo de decomposição daquele objeto, e com isso, podemos saber onde descartar.

Ilustração não foi minha.

Pirâmide alimentar (FTD)

Jogo desenvolvido para a editora FTD.

O objetivo do jogo é ensinar a pirâmide alimentar (como o nome já diz).
No início do jogo, você recebe uma lista de compras e dentro de um tempo, você precisa pegar todos os alimentos da lsita e colocar no carrinho. Conforme você movimenta o carrinho, a prateleira se move para mostrar os alimentos dando a impressão que você está girando.

Créditos da ilustração não são meus.

Jogo da Trilha (FTD)

Jogo desenvolvido para a editora FTD.

O jogo tem como objetivo legar para a casa dois amigos, Diego e Miguel, que foram passear e se perderam na floresta.
No caminho existem obstáculos, e para passar cada obstáculo,  você precisa responder uma pergunta em espanhol.

A ilustração também não é minha neste jogo.

Jogo do Vocabulário (FTD)

Jogo desenvolvido para a editora FTD.
A ilustração foi feita por outra pessoa, que infelizmente não sei o nome, mas fica aqui meus créditos para esse anônimo.
O objetivo do jogo é ensinar vocabulário espanhol para estudantes. A mãe do menino pede para ele pegar tal peça de roupa e nós temos que clicar no ítem correspondente num quarto extremamente bagunçado.

Kinect + Unity no PC

Neste vídeo, mostro um dos estudos que realizei com Kinect e Unity.
Cada cubo cinza representa as mãos e os pés.
A câmera está em 1º pessoa, se eu giro a cabeça, reparem que a câmera gira junto.
No canto direito inferior eu coloquei um vídeo em tempo real mostrando o que estou fazendo em cada momento.

Leapmotion com Unity3D

Iniciei meus estudos com o Leapmotion criando um exemplo com Unity.
Cada "parafuso" :) representa um dedo.
Uma coisa interessante é que o Leapmotion não aceita dedos sobrepostos na vertical, ou seja, se colocarmos um dedo embaixo do outro, ele anula os dois.

Este exemplo vai passar no jornal da SBT TV aqui de Sorocaba. Um repórter foi até a Singol para fazer uma matéria sobre o Leapmotion, Realidade aumentada e o Kiduca. Quando colocarem no AR, eu posto aqui o link.

Exemplo Leapmotion - FlockingDemo

Outro exemplo da SDK do Leapmotion.
Neste exemplo, nós estamos embaixo da água e cada dedo é representado por uma bola de fogo que atrai o peixes.
Reparem na profundidade. Quando movimento os dedos para frente e para trás, os peixes seguem o fogo. Se faço movimento em círculo, os peixes fogem, ou seja, o programa detecta o "gesto círculo" e faz uma ação.

Leapmotion - leapview

Semana retrasada, recebi uma encomenda muito esperada, o Leapmotion!
Acredito que devam ter poucos aparelhos deste no Brasil, pois por enquanto só existe o pré-order dele e irão começar a enviar apenas em maio.

Este vídeo mostra um dos exemplos que vem junto com a SDK.
É uma visão 3D com uma grid na vertical e horizontal onde cada "seta" representa um dedo.

17 de abr de 2012

Análise de notícia (FTD)

Jogo desenvolvido para a editora FTD.
Descrição do Jogo: "Duas  notícias  distintas  serão  apresentadas  para  o  aluno.  Na  lateral  esquerda das  notícias  devem  ser  apresentadas  para  o  aluno  as  figuras  misturadas  que  representa  as notícias, igual um quebra cabeça.
O  aluno  tem  como  objetivo  montar  o  quebra  cabeça  de  cada  história  na  seqüência  correta
conforme texto da notícia.
O aluno disponibilizará de 60 segundos para completar os quebra cabeças."