Aqui no Fábrica temos diversos tutoriais sobre como desenvolver jogos usando a engine Cocos2d-x. Porém sei que, para alguns, fazer tudo no código pode ser uma barreira para o aprendizado. Ainda mais quando temos ferramentas com editores tão poderosos quanto o do Unity e Unreal. O Cocos2d-x não podia ficar de fora dessa festa. Assim, ele criou e vem melhorando o seu editor: o Cocos Creator.
Cocos o que?
O Cocos Creator é um pacote grátis e completo de ferramentas para interação visual, ou seja, o famoso arrasta e solta, para montagem das cenas do jogo. Ele já vem com uma versão da Cocos2d-x incluída com versões para Windows e Mac.
Nela você pode facilmente pode configurar o posicionamento dos elementos do jogo, desenhar os colliders, executar o seu game, debugar e exportar para a plataforma desejada.
Também é possível criar a UI e as animações tudo isso sem tocar em código.
E quando for codificar…
No Cocos Creator podemos adicionar componentes que já acompanham a engine aos nossos objetos do jogo, aqui chamados de “Node”, como também criar nossos próprios. Atualmente as linguagens implementadas são Java Script e Coffee Script (é Java Script também tá), mas já estão sendo pensadas versões para adicionar suporte à Lua e C++.
Falando de Unity…
Ao abrir o Cocos Creator (eu sei que você vai abrir), se já tiver algum conhecimento prévio de Unity, vai perceber uma enorme semelhança. Isso é muito bom já que é uma interface bem simplificada.
Indo mais além, a própria documentação do do Cocos Creator tem uma seção exclusiva para quem já trabalha com Unity. Esta tabela abaixo faz a relação entre alguns termos dos dois game engines:
Cocos Creator |
Unity3D |
Instruction |
---|---|---|
cc.Node | GameObject | Object in the scene. Each object can contain many components |
node.active | gameObject.activeSelf | Set up the activated state of the node itself |
node.activeInHierarchy | gameObject.activeInHierarchy | Check the activated state of the node in hierarchy |
node.parent | transform.parent | |
node.position | transform.position | Position in Cocos Creator is in the local coordinate system, but in Unity3D it’s in the world coordinate system |
node.rotation | transform.rotation | Rotation in Cocos Creator is in the local coordinate system, but in Unity3D it’s in the world coordinate system |
node.scale | transform.localScale | |
cc.find(path, refNode) | transform.Find(path), GameObject.Find(path) | If refNode is blank, find it from the scene root node, otherwise, find it from the refNode node. |
cc.game.addPersistRootNode(node) | Object.DontDestroyOnLoad(gameObject) | |
cc.Component | Component | Component |
comp.node | comp.gameObject | |
comp.onLoad() | comp.Awake() | |
comp.start() | comp.Start() | |
comp.update(dt) | comp.Update() | |
comp.lateUpdate(dt) | comp.LateUpdate() | |
obj.destroy() | Object.Destroy(obj) | obj is the concrete example of cc.Object (normally it is: node, component or asset) |
cc.isValid(obj) | obj != null | Judge if cc.Object is effective (normally it is: node, component or asset) |
Enfim
Um bom desenvolvedor de games não deve ficar preso a uma ferramenta de desenvolvimento, como engines por exemplo, principalmente se está começando a carreira. Dar oportunidades a outras engines é muito bom para o portfólio. Afinal, nunca sabemos quando as oportunidades podem chegar.
Fico por aqui, obrigado e até a próxima.