Posts Tagged ‘Flash’

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)

SpaceCrown

SpaceCrown(beta) foi um jogo feito para participar do http://playerio.com/competitions/
Usamos: Starling + flare3D + playerIO!

Com mais tempo…eu falarei mais deste processo!

Créditos: Fabricio Gonçalves (@espigah), João Paulo(@juaumlol) e Rilton Lucena Vieira (@RiltonRamone)

http://apps.facebook.com/spacecrown/

spacecrown_facebook_battle

spacecrown_facebook_tutorial

spacecrown_facebook_garage

spacecrown_facebook_start

[AS3(MetaTag=”custom”) && JAVA@Annotation

[AS3(MetaTag=”custom”) && JAVA@Annotation
Segue a brincadeira de hoje \o/

Como agora estou programando só em JAVA
acabei esbarrando em algo muito bacana/poderoso =)
as Annotations. -> http://docs.oracle.com/javase/tutorial/java/annotations/

E….fiquei encucado com isso. -Pô, isso tem que ter em flash/actionscript 3
Es que surge…a Metatag!!!Bem de baixo no meu nariz…
Coisas corriqueiras, como: [SWF], [Bindable] e etc… Sempre estiveram lá =’/
Mas faltou uma pergunta:- COMO ISSO FUNCIONA?
Ainda não sei muito sobre, mas segue um link -> http://pierrechamberlain.ca/blog/2011/04/custom_metadata/ (2011 =/ velin, né?!)

E como isso serviu bem pra mim ->

[Find(idGrade,idSubject)]
public function findByGradeAndSubject(idGrade:int,idSubject:int):Vector.<SubjectVO> 
{			
	return Vector.<SubjectVO> (findBy(idGrade,idSubject));
}
[Find(idGrade,title)]
public function findByGradeAndTitle(idGrade:int,title:String):Vector.<SubjectVO> 
{			
	return Vector.<SubjectVO> (findBy(idGrade,title));
}
[Find(idGrade,title,idSubject)]
public function find(...args):Vector.<SubjectVO> 
{			
	return Vector.<SubjectVO> (findBy(args));
}

Na proxima eu coloco o source.rar e tudo+

[Protótipos] Isometria

Isometria.
Alguamas pessoas podem estar batendo cabeça com esse tipo de sistema.

Segue algumas links que lunks que podem servir de apoio nessa empreitada ->
http://flarerpg.org/tutorials/isometric_intro/
http://www.lingoworkshop.com/Articles/Isometric_Game_1.php

E coloco aqui alguns protóipos que fiz (há muito tempo)

[Unity] Logger para swf (Debug.log?)

Logo logo postarei algumas idiossincrasias do build da unity para swf (Flash),
mas no momento disponibilizo so um doce do que estou fazendo (so tentando =/)

Debug_lof_for_swf

Movie_Clip to combobox (Error #1034)

* cannot convert movieclip to combobox – solution * Não é possível converter  movieclip em combobox – solução

Depois de algum tempo em um longo projeto, com muitos SWF…passei a ter esse problema.

  • Contextualizando o problema:
    • Cada SWF era considerado um modulo composto por vários SWC, então …um belo dia ao juntar tudo apareceu esse erro chato (Error #1034). Mas era tanto “bagulo” que eu não sabia como isso poderia ser resolvido, mas sabia que estranhamente (alguns chamam de ADOBE style) ao recompilar tudo (isso mesmo) volta a funcionar.
  • Como resolvi:
    •  Fui removendo os elementos da equação ate descobrir que o problema era com o componente (ComboBox). A mensagem (cannot convert movieclip to combobox) aparecia por ter 2 SWC tentando usar o componente. Eis que veio a idéia de compartilhar a ComboBox (essa solução veio de um camarada chamado Rodrigot =) valeu cara!).
  • Tutorial:
    • Problema inicial -> 2 SWC compartilhado ao mesmo tempo o componente ComboBox ->

      workflow inicial

      • Criei um arquivo só pra compartilhar o componente ->
        Symbol Properties -> EXPORT for runtime sharing -> url -> ComboBoxShared.swf
        ComboBoxShared
      • Os arquivos que eu exportava como SWC, passaram a importa esse arquivo compartilhado ->
        Symbol Properties -> IMPORT for runtime sharing -> url -> ComboBoxShared.swf
      • import_for_runtime_sharing

 

    • O Main da aplicação passou a importar em runtime esses objetos

workflow_final

    • .
      Bom, espero que isso ajude (Y)

ps. No proximo post espero escrever sobre JPA

Construct_Gamemaker_Gamesalad_Stencyl_Flash

{Construct, Gamemaker, Gamesalad e Stencyl + Flash}
Então…
Escreveria sobre essas ferramentas, mas não pesquisei muito e já vi que isso não seria algo novo.

Segue uns links interessantes:

http://www.scirra.com/blog/59/construct-2-vs-gamemaker-vs-gamesalad-vs-stencyl
http://johnbura.blogspot.com.br/2011/11/construct-2-vs-gamemaker-vs-gamesalad.html 

Agora só resta opinar sobre o que li =P

“Stencyl currently exports to Flash, which was shaken by Adobe’s recent announcement to abandon Mobile Flash in favour of HTML5 tools” by scirra.com
– Como programador com alguma expertise em AS/Flash, não da pra deixar essa passar. Sim, Adobe parou com Flash PLUGIN para “navegadores moveis” , por motivos ainda obscuros, o fato é que ainda está disponível a exportação no formato AIR, onde, com o “mesmo” projeto, você vai ter o seu jogo rodando no IOS, ANDROID, Blackberry, TV e etc…

“Since flash is not being supported any more it will be hard to use stencyl as a commercial platform” by johnbura
– Pago minhas contas com o Flash =P

“Remember that’s not including the much-faster WebGL renderer – and Construct 2 is still 3.5x faster than the Flash-powered Stencyl” by scirra.com
– Não sei se esse teste foi justo, afinal, WebGL usa facilmente a GPU =) Com o flash, a um tempo atrás,  não era bem assim =/ creio que a/o Stencyl não tinha Stage3D bem implementado.

Segue agora um bom exemplo do Stage3D (FLASH / ActionScript) -> “joguinho” by Ubisoft  http://www.youtube.com/watch?v=KE_OqFIrhGA

Agora, o que motivou o Espigah (eu, eu mesmo) a escrever =P
Sou muito fã do Scratch para quem está aprendendo lógica+programação, justamente pelo workflow bacana que essa ferramenta simples tem, já o construct, mesmo sendo o #BamBamBam (com todo o mérito), achei bem bagunçado para criar um jogo muito grande. Workflow faz um bocado de diferença para os nossos cabelos, foi onde a/o Stencyl se destacou pra mim, mantendo o que eu mais gostava do Scratch e como um plus… Ele exportar em swf !!!

Enfim, contudo, não aconselho a usar facilitadores para aprender a coisa de verdade, acho que pegar o básico até vai =P depois tem que correr pras coisas que gerem conhecimentos uteis para fazer dinheiro e… Jogos 😉

É pra encerrar (Y)
Por que minha aversão a essas ferramentas?
Não e legal trabalhar para pessoas que vivem nesse mundinho de “facilitadores”…

%d blogueiros gostam disto: