Posts Tagged ‘Haxe’

Garbage-Collector Post-Mortem

Estáááá no aaaar Garbage Collector 2

E agora estou aqui para hablar um pouco do que foi desenvolver em Flambe e em OpenFl
Primeiro estudo foi usar OpenFl (Escrevi sobre aqui)
OpenFl parece funcionar de forma mais natural com Haxe do que Flambe.
Flambe se propõem a ser uma engine completa para jogos 2D, mas tem algumas coisas não tão naturais de se fazer.
Uma vantagem/Um atalho que Flambe disponibiliza é o “_” que atrapalhou mais do que ajudou =/

Não sei se tem como usar AIR com OpenFl, porem, com Flambe-Mobile funciona so com AIR.
Cuido com o ID =/ Onde era pra ser ‘app.espigah.garbagecollector2’ virou ‘air.app.espigah.garbagecollector2’

Eu basicamente quis portar de OpenFl+HaxePunk para Flambe, pensando que seria fácil, mas….só pensei! =/
Flambei não funcionou bem com PARTICLE-EDITOR e fica bem preso a FLUMP

Outra diferença foi o tamanho do app, não sei porque ficou tão diferente, mas… Com OpenFl o app não passou de 2MB enquanto com Flambe ficou em 12MB =/

E ainda não consegui fazer o Analytics funcionar para a versão Mobile
Em suma, eu não voltaria a criar algo com Flambe (muito sofrido)
mesmo tendo um app rodando bem em HTML5, FirefoxOS e outros

Garbage Collector 1 – OpenFl / Haxe
Garbage Collector 2 – Flambe / Haxeopenfl_haxe_flambe

HAXE – FIREBASE – PHP

Haxe/OpenFl e um boa ferramente para quem quer desenvolver algo crossplatform,
mas nem sempre e viável migrar um projeto inteiro para uma outra ferramenta,
então, seguindo essa linha de raciocínio, comecei a pensar se seria possível usar Haxe para deixar a lógica de negócio (ou um parte da aplicação) mais flexível e fiz um protótipo -> https://github.com/Espigah/HaxeRepo/tree/master/Learning (Mesma logica com vários targets)

Hoje resolvi tentar um outra abordagem…
Usar as ferramentas que Haxe oferece compartilhando objetos entre múltiplos projetos.
Neste estudo usei HaxePHP+OpenFl e deixei os Models e as Interfaces compartilhadas e achei o resultado muito agradável.


https://www.firebase.com/

http://www.openfl.org/

http://api.haxe.org/php/

 

HAXE – HIDE – FLAMBE (v1.5)

 

Tem um tempinho que fiz uma funcionalidade para #HIDE (#HaxeIDE)

Hoje farei o ‘commit’ de algumas melhorias, são elas: ‘Wiki’, ‘TargetOption’, Mais ‘Feedbacks’ e ‘Flambe server‘ funcionando direito =)

Ainda não está 100% mas já está bem legal pra usar \o/

 

 

 

 

 

 

 

HIDE – GRADLE

Pra auxiliar no desenvolvimento tenho usado Gradle
E pra ‘codar’ em Haxe tenho testado HIDE

Só resolvi juntar as duas coisas! (Y)

 

Para funcionar um arquivo build.gradle tem que estar na raiz do projeto, ou,
dentro da pasta gradle também na raiz do projeto
(No futuro isso sera configurável)

hide_haxeide_tool_grade_1

Quando tudo estiver configurado aparecera no ‘menu’ a opção Gradle

hide_haxeide_tool_grade_2

Agora…E só usar! \o/

hide_haxeide_tool_grade_3

 

Assim não estou tendo que sair de uma janela pra outra pra ficar rodando minhas tasks =)

Também comecei a escrever um GradlePlugin para controlar as libs do projeto Haxe

Quando tudo estiver pronto eu posto mais..

 

HAXE – HIDE – FLAMBE

Ha algum tempo venho acompanhado HIDE(HaxeIDE), onde, parece que seus idealizadores tem ótimas referencias
Porem, quando fui testar com Flambe, outra ferramenta que estou a muito tempo querendo testar, percebi de cara que HIDE não facilitava as coisas =/
mas pra OpenFL tinha >.<, enfim, fui no Flambe google group para pedir uma ajuda. Pra nao ter que esperar muito pedi ajuda tambem no git do HIDE, assim como no grupo Flambe, tive uma resposta rápida e muito incentivadora.
“Perhaps you could try to download source of HIDE compile and run it, if you haven’t”

Em outras palavra, pega essa porra e resolva!!! =D
Então foi isso!

 

 

Inicialize HIDE – haxelib run hide –

hide_flambe_1

hide_flambe_1

 

 

 

 

 

 

 

 

Veja que temos a opção Flambe

hide_flambe_2

hide_flambe_2

 

 

 

 

 

 

 

 

Eu gostaria de integrar a ~pagina 2~ com o flambe.yaml, mas ainda não foi possível

hide_flambe_3

hide_flambe_3

 

 

 

 

 

 

 

 

Voilà! Com – flambe new – eu gero um novo projeto

hide_flambe_4

hide_flambe_4

 

 

 

 

 

 

 

 

Coloquei um menu para as opções que Flambe oferece

hide_flambe_5

hide_flambe_5

 

 

 

 

 

 

 

 

Executei o – build –

hide_flambe_6

hide_flambe_6

 

 

 

 

 

 

 

 

Executei o – run – Deu erro porque, em Flambe, temos que inicializar o – server – primeiro

hide_flambe_7

hide_flambe_7

 

 

 

 

 

 

 

 

Depois de inicializar o – server – (opção que também esta no menu)

hide_flambe_8

hide_flambe_8

 

 

 

 

 

 

 

 

E…pronto! Rodando!

hide_flambe_9

hide_flambe_9

 

 

 

 

 

 

 

 

 

– HAXE – http://haxe.org/

– HIDE – https://github.com/HaxeIDE/HIDE

– MY FORK – https://github.com/espigah/HIDE

– FLAMBE – https://github.com/aduros/flambe

 

Haxe || OpenFL || Flash

Motivação do post: Nos últimos anos, por motivos errôneos ou não, o SWF perdeu força no mercado. Como ainda existem muitos leigos com o poder de decisão o AIR normalmente não se torna uma opção crossplatform (isso quando quem toma as decisões sabe o que é o AIR ). E no outro lado do campo, ganhando espaço na área de games, temos a Unity3D (Eu não vou com a cara dessa ferramenta =P mas acho C# do caralho). Há alguns anos eu naveguei por esses mares(Unity3D) e  também estudei UDK para saber aonde eu iria…bom….resolvi ficar no AS3/Flash/Air/SWF =D até queeee…um cara chamado Joshua Granick apareceu com esse OpenFL \o/ Depois HAXE com OpenFL passaram a ser algo constante nas timelines da vida.Resolvi experimentar!

Objetivo: Um Jogo em 48h usando OpenFL/Haxe/HaxePunk. Claro, demorou beeeem mais do que 2 dias =/ isso porque tenho dedicado não mais que 4h semanais com esse projeto, e com alguns problemas bobos que levam o dia todo pra resolver não deu pra cumprir as 48h certinho.

Conclusão (Minha primeira visão sobre Haxe/OpenFL):
Eu ainda nao sei muito bem onde um termina e o outro começa (e se é que um precisa terminar para o outro começar) =D

HAXE: Muito bom!  Meio que uma mistura de Actionscript3 + Java + C#. (Já tive a oportunidade de ganhar dinheiro com ele \o/ Tem futuro hehe)

OpenFL: Mesmo com o suporte de boas ferramentas eu senti bastante dificuldade com o workflow no início, mas OpenFL está melhorado rapidamente. Entretanto….nunca é tão magico quanto parece =/ os builds para as N plataformas disponíveis parecem ter um caminho longo pela frente. Espero que um dia  OpenFl possa oferecer o mesmo produto rodando limpo em todas as plataformas.

  Colocarei aqui tudo que usei como apoio nesse projeto:

Instalações:

FlashDevlop ou  Sublime AndoidSDK Ant OpenFl (Haxe e NME)

  Links:

http://www.gamefromscratch.com/post/2013/04/24/Input-in-Haxe-and-NME.aspx
Aborda: HAXE TouchEvent

http://www.willhawthorne.com/tutorials/haxe/haxeMouseButton.php
Aborda: Uma forma mais ousada de criar botoes

http://haxepunk.com/documentation/tutorials/getting-started/
Aborda: Pontape inicial com HaxePunk

http://www.openfl.org/documentation/setup/install-openfl/
Aborda: Pontape inicial com OpenFL

http://stackoverflow.com/questions/19760847/how-to-get-touchevent-on-windows-desktop-for-openfl-app
Aborda: Mais sobre TouchEvent

http://stackoverflow.com/questions/21128883/how-do-you-clear-this-error-with-using-haxepunk-in-flashdevelop
Aborda: Problemas com o mouse (usando HaxePunk)

http://www.youtube.com/watch?v=HVysAukOpCA
Aborda: Como usar o emulador (Que é uma bosta >.<)

https://groups.google.com/forum/#!topic/haxeflixel/CZIjTAYW3L8
Aborda: Mo dule UInt does not define type UInt

http://stackoverflow.com/questions/3666527/haxe-create-an-instance-of-a-class-from-a-string-name
Aborda: Type.createInstance(Para criar instancias de forma flexivel) / new Array<Class<Dynamic>>() (Um array de Class(Type))

http://stackoverflow.com/questions/18754521/android-sdk-emulator-not-supporting-opengl-es-2-0-error – debugando no device
Aborda: Problemas com o emulador

http://stackoverflow.com/questions/21408674/adb-error-device-not-found
Aborda: “erro no meu usb-drive” Tive que instalar o drive da motorola =/

Artigo(recente) que li depois de ter feito o jogo, mas pode ajudar. http://gamasutra.com/blogs/TalhaKaya/20140407/214965/OpenFL__Haxe_A_Bumpy_Start.php
Aborda: Erro com instalacao do HAXE e tambem problema com a versão

Dicas HAXE:

https://github.com/jcward/HaxeSWCExample
Aborda: Como criar um SWF de uma lib usada no haxe (É bem útil para levar um funcionalidade para As3Puro)

http://haxe.org/com/ide/sublime_text http://haxe.org/com/ide

Dicas para Android:

adb e uma mao na roda. Basicamente eu uso adb coneect IP para usar os meus devices
depois fico rodando, para desinstalar o app,adb devices | tail -n +2 | cut -sf 1 | xargs -iX adb -s X uninstall espigah.app e para instalar adb devices | tail -n +2 | cut -sf 1 | xargs -iX adb -s X install ./Desktop/MyHaxePunkProject-release.apk.
No inicio eu usava adb install e adb uninstall, porem, com vários devices ele não funciona e tive que correr atras do comando certo…
Uso adb logcat para rastrear problemas no apk. Antes de usar um logcat -v eu uso sempre o logcat -c para limpar o arquivo

adb devices | tail -n +2 | cut -sf 1 | xargs -iX adb -s X uninstall espigah.app
adb devices | tail -n +2 | cut -sf 1 | xargs -iX adb -s X install ./Desktop/MyHaxePunkProject-release.apk

Para Criar uma chave para gerar o APK eu usei isso (mas acho que nem precisava)->

 keytool -genkey -v -keystore MyHaxePunkProject.keystore -alias MyHaxePunkProject -keyalg RSA -keysize 2048 -validity 10000 

Dicas OpenFL:

http://www.openfl.org/forums/
https://www.indiegogo.com/projects/cactus-ide ou
https://github.com/as3boyan/HIDE
Cactus IDE parece ser uma coisa boa que está no forno http://www.haxestudio.com/
Openfl + swf -> https://medium.com/@premith/haxe-lime-openfl-ec9c2784aaa8

Ferramentas:

http://www.gamefromscratch.com/post/2013/05/12/Choosing-a-Haxe-NME-game-engine.
Aborda: Ash Entity Framework, Awe6, Flambe, Hydras, Spur, Cocos2D, Citrux Engine, Stencyl, Firmament Game Engine , HaxePunk e HaxeFlixel

 Meu bat para iniciar os trabalhos: OpenFl_setup.bat

<pre>@echo off
set hlib=C:\haxe\Motion-Twin\Haxe\haxelib.exe
:: (ou %HAXEPATH%)
%hlib% install lime
%hlib% run lime setup
%hlib% install format
%hlib% install svg
%hlib% install format
%hlib% install haxe-ga
%hlib% install actuate
%hlib% install HaxePunk
%hlib% run HaxePunk setup lime setup windows git clone https://github.com/openfl/lime-tools
%hlib% dev lime-tools lime-tools
%hlib% install openfl lime rebuild windows lime rebuild tools lime setup android
%hlib% upgrade
pause
*Ainda falta colocar um “tracking” pra funcionar. Feito isso, eu disponibilizarei o .apk (talvez um .ipa)
%d blogueiros gostam disto: