O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[LÖVE2D] Conhecendo e configurando a engine

Iniciado por Kawthar, 09/02/2017 às 00:42

09/02/2017 às 00:42 Última edição: 27/06/2019 às 18:37 por Kawthar

LÖVE é um framework incrível que você pode usar pra fazer jogos 2D em Lua.
É grátis, open-source e funciona com, e para, Windows, Mac OS X, Linux, Android e iOS.
Oficialmente é para essas plataformas, mas no fórum da engine você pode encontrar libs para portar seu game para outras plataformas, como 3DS, por exemplo.


Diferente do RPG Maker, LOVE2D não tem uma interface gráfica, você precisa fazer(quase) tudo manualmente.
Vou agora fazer um tutorial de como configurar tudo pra poder rodar a engine.



Os links pra baixar a engine:
Versão para 32 Bits | Versão para 64 Bits


Além do framework, vocês irão precisar de um editor de texto. Pode ser qualquer um, porém os que eu já usei e recomendo é o Atom pra linux, o ZeroBrane Studios para Windows ou Fraise para o MacOS.
Escolha um e clique no nome para baixar.
O Atom funciona no Windows e o ZeroBrane funciona no linux. Porém por preferência minha eu uso o Atom no linux e o ZeroBrane no Windows. Já o Fraise não posso opinar, nunca usei mas é o que recomendam no fórum do LOVE2D.
Além desses 3 existem outros muito bons também como o Sublime pra Linux/Win/Mac(porém é pago), Geany também para os 3 sistemas, SciTE para Linux e Windows e etc... Basicamente qualquer editor de texto, isso inclui bloco de notas ou até mesmo o terminal do linux(inclusive é muito bom pois tem um "debugger" próprio).

Certo, agora que temos a engine e temos o editor de texto, vamos configurar tudo xD

O básico
Crie uma pasta para o Love2D em algum lugar, no meu caso criei na área de trabalho.
Crie um atalho para o love dentro dessa pasta e crie uma pasta com o nome do seu jogo.
Exemplo
[close]
Dentro dessa pasta crie 2 arquivos.
Um chamado main.lua e um chamado conf.lua e abra o main.lua usando seu editor de texto favorito.

Dentro do main.lua, você só precisa de 6 linhas pra começar o código.
Exemplo



function love.load(args)
end

function love.update(dt)
end

function love.draw()
end
[close]


Explicando o código

O love.load() carrega uma vez(e apenas uma) no começo do jogo. Aqui você vai, provavelmente(?) carregar seus assets, como os sprites ou arquivos de música, por exemplo.

A love.update(dt) é a função que é chamada a cada frame e "atualiza" o jogo com a informação que fica dentro.
Aqui você vai fazer, por exemplo, o movimento do jogador. Detectando o pressionar do botão a cada frame e realizando uma ação posterior.

O dt dentro dos parênteses significa "delta time". É o tempo que levou entre um frame e outro. Você pode usar esse tempo pra fazer com que a velocidade do player seja algo fixo, não importando a quantos frames o jogo está rodando, por exemplo.

A love.draw() é a função que, também chamada a cada frame, desenha na tela do usuário. Aqui você vai projetar os assets carregados no .load() com a informação adquirida no .update().


Considerações finais
Duvido que alguém que use RPGM se interesse pelo LOVE2D, pois acredito que a escolha do RPGM devesse pela sua a simplicidade/praticidade enquanto o LOVE2D é exatamente o oposto, mas gostaria de compartilhar essa engine por aqui então decidi fazer o tópico.

Como já disse, não sou nenhuma programadora formada, o que sei de lua foi o que aprendi desde que baixei a engine, porém aprendo rápido :P

Qualquer dúvida que eu possa responder, eu irei, é só fazer xD
Lord, if the day comes when I fly through the heavens. I shall approach thee!

Eu não duvidaria tanto do interesse assim. Ao menos não tenho preconceito algum em conhecer novos programas
e, consigo, novas possibilidades. Inclusive, eu imaginava um ambiente bem diferente para esse programa pelo que
tu falava, mas legal encarar que tudo é programado do zero. Ultimamente, uma vez que aprendi a lidar com
programação, acho isso até um ponto positivo.
Gostei de ver como o funcionamento dela é simples e objetivo. Pode ser que dê uma olhada após findar meus
projetos atuais. Valeu por trazer esse conteúdo, Kawt!

09/02/2017 às 12:56 #2 Última edição: 09/02/2017 às 12:58 por Alisson
Ter controle sobre teu código é uma delícia, cara e.e Você não precisa passar horas pra entender como o código alheio funciona.
Eu baixei a engine assim que tu mencionou lá no tópico das screenshots e dei uma olhada aqui. Pô, ela é super show, enfim poderei desenferrujar minhas habilidades com Lua.

E sobre interface, acredito que não seja lá um problema (pelo menos pra mim). Eu geralmente crio um banco de dados externo e faço um programinha em C++ pra editar os negócios. Dá pra fazer em Python também, also.
Outra maneira é usar JSON e usar algum editor de JSON pra modificar as coisas, daí dá um jeito de importar em Lua.

King Gerar

Citação de: King Gerar online 09/02/2017 às 09:00
Eu não duvidaria tanto do interesse assim. Ao menos não tenho preconceito algum em conhecer novos programas
e, consigo, novas possibilidades.

Também não tenho preconceito em conhecer novos programas. É que, na minha mente, as chances de alguém querer usar um engine que você só trabalha com texto, sendo que tem um RPG Maker ou Construct por ai, são bem baixas, infelizmente.

Citação de: King Gerar online 09/02/2017 às 09:00
Inclusive, eu imaginava um ambiente bem diferente para esse programa pelo que
tu falava, mas legal encarar que tudo é programado do zero.

Ué, e como você imaginava?  :O_O:

Citação de: King Gerar online 09/02/2017 às 09:00
Ultimamente, uma vez que aprendi a lidar com
programação, acho isso até um ponto positivo.
Gostei de ver como o funcionamento dela é simples e objetivo. Pode ser que dê uma olhada após findar meus
projetos atuais. Valeu por trazer esse conteúdo, Kawt!

Vou trazer mais sobre love2D, só preciso arranjar disposição  :ded:
[close]

Alisson

Citação de: Alisson online 09/02/2017 às 12:56
Ter controle sobre teu código é uma delícia, cara e.e Você não precisa passar horas pra entender como o código alheio funciona.
Eu baixei a engine assim que tu mencionou lá no tópico das screenshots e dei uma olhada aqui. Pô, ela é super show, enfim poderei desenferrujar minhas habilidades com Lua.

Também acho incrível essas sensações que podemos ter ao programar o jogo xD
Fico feliz em saber que alguém já baixou a engine  :clap:

Citação de: Alisson online 09/02/2017 às 12:56
E sobre interface, acredito que não seja lá um problema (pelo menos pra mim). Eu geralmente crio um banco de dados externo e faço um programinha em C++ pra editar os negócios. Dá pra fazer em Python também, also.
Outra maneira é usar JSON e usar algum editor de JSON pra modificar as coisas, daí dá um jeito de importar em Lua.

É só que eu postei num fórum onde a maioria dos usuários é utilizador de RPG Maker. Uma engine que te dá a faca e o queijo(é assim essa frase?).
Então ao conhecer uma engine que você precisa realmente fazer tudo(Abrir a gaveta e pegar a faca. Abrir a geladeira e pegar o queijo.) pode ser um pouco assustador.
[close]
Lord, if the day comes when I fly through the heavens. I shall approach thee!

As chances de trabalhar com algo do zero mesmo, acho que vai mais na iniciativa de aprender.
Isso parece mais um compilador do que uma engine mesmo, pelo menos prefiro bem mais Lua que JS  :derp:
Achei ele legalzinho, para jogos bem simples, acho que é uma alternativa interessante, algo que as outras engines não deem base alguma pra você, ter uma engine toda aberta é uma vantagem.

Eu já tentei usar esta engine muitas vezes e acaba sempre da mesma maneira, fico farto.
Mas uma coisa é verdade, é muito fácil de fazer qualquer coisa com Lua, e a engine tem optimas bibliotecas, ainda fica mais simples.

Citação de: Raizen online 09/02/2017 às 18:44
As chances de trabalhar com algo do zero mesmo, acho que vai mais na iniciativa de aprender.
Isso parece mais um compilador do que uma engine mesmo, pelo menos prefiro bem mais Lua que JS  :derp:
Achei ele legalzinho, para jogos bem simples, acho que é uma alternativa interessante, algo que as outras engines não deem base alguma pra você, ter uma engine toda aberta é uma vantagem.

Não vou negar que a engine não seja tão avançada quanto um GameMaker Studio por exemplo, mas ela tem as mesmas capacidades de um RPGMaker. Só que com o pequeno(grande) detalhe de que você tem que fazer tudo kkk'.

Excluindo 3D, você consegue reproduzir qualquer jogo 2D de outras engines no LOVE2D, só que com umas dificuldades a mais, obviamente.
Lord, if the day comes when I fly through the heavens. I shall approach thee!

24/02/2017 às 13:17 #7 Última edição: 24/02/2017 às 13:28 por Crixus
Eu queria poder entender as funções e comandos LUA e as nativas desse framework, parece lembrar um pouco o Javascript.

Aqui achei ferramentas pra auxiliarem, como o TILED, programa com interface para criar os cenários:
https://www.youtube.com/watch?v=Yw4pTtJjZWI

Agora só tem que ver a questão da compilação se realmente protege os arquivos.
Aparentemente sim, já que fica tudo num arquivo EXE, as DLLs são somente as LIBs (FrameWork?)

Na página oficial tem os jogos de exemplo:
https://love2d.org/

Acesse diretamente:
Mr. Rescue



MOVE or DIE



oh my giraffe



Mari0 (O trocado por ZERO)



Hexapod Defense Force



Metanet Hunter CD



24/02/2017 às 22:31 #8 Última edição: 24/02/2017 às 22:34 por GabrielMoon
Engine ótima, super recomendado.

Eu usava, só que deixei de lado depois de um tempo por falta de tempo pra apreciar melhor essa lindeza.


Citação de: Crixus online 24/02/2017 às 13:17
Agora só tem que ver a questão da compilação se realmente protege os arquivos.
Aparentemente sim, já que fica tudo num arquivo EXE, as DLLs são somente as LIBs (FrameWork?)

O modo que o jogo é exportado não é tão seguro assim. Ele pode ser "debulhado" facilmente trocando a extensão
dele, mas tem meio de compilar de uma forma bem fechada e segura.
engenheiro de software e designer aposentado

12/05/2019 às 01:18 #9 Última edição: 12/05/2019 às 23:43 por Vash
TaГ­ um homem de coragem...
ParabГ©ns pelo tutorial Agora falta a foto do tal indicador de marchas, o que ele faz, e pra q vc vai usar o infeliz

Abraço E que as contribuições continuem, pois os donos das monstrinhas agradecem

Quanto morreu na brincadeira?





Vash: By the powers granted to myself to banish any foolish child, I INVOKE THE HAMMER!