Crie Jogos 2D com PHP e Raylib

Para os amantes de GameDev que também amam PHP!


Crie Jogos 2D com PHP e Raylib


Para aqueles que curtem Desenvolvimento de Jogos e já sabem PHP e também desejam unir essas duas paixões em uma só.

RayLib é muito útil para garantir sua empreitada.

Vamos ver o passo à passo para atingir essa meta!


01. Dependências

Exemplo no Ubuntu 23.10

sudo apt update
sudo apt install libasound2-dev mesa-common-dev libx11-dev build-essential \
                 libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev pkg-config \
                 libglu1-mesa-dev php-cli php-dev git make gcc g++ cmake

Para outros sistemas: Windows, macOS e outras distros veja nesse link o procedimento.


02. Instale a Raylib

Clone o repositório e entre no mesmo:

git clone https://github.com/raysan5/raylib
cd raylib
cmake -DBUILD_SHARED_LIBS=ON . -B build
cd build
make
sudo make install
Veja os caminhos onde são instalados os arquivos
Install the project...
-- Install configuration: "Debug"
-- Installing: /usr/local/lib/libraylib.so.4.5.0
-- Installing: /usr/local/lib/libraylib.so.450
-- Installing: /usr/local/lib/libraylib.so
-- Installing: /usr/local/include/raylib.h
-- Installing: /usr/local/include/rlgl.h
-- Installing: /usr/local/include/raymath.h
-- Installing: /usr/local/lib/pkgconfig/raylib.pc
-- Installing: /usr/local/lib/cmake/raylib/raylib-config-version.cmake
-- Installing: /usr/local/lib/cmake/raylib/raylib-config.cmake

Limpe os arquivos:

cd ../..
rm -rf raylib

OPCIONAL: CASO TENHA ERRO AO COMPILAR CRIE ESSE ARQUIVO.

sudo vim /usr/lib64/pkgconfig/raylib.pc

E cole isso dentro e depois salve:

prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib64
includedir=${prefix}/include

Name: raylib
Description: A simple and easy-to-use library to enjoy videogames programming
URL: https://github.com/raysan5/raylib
Version: 4.5.0
Libs: -L"${libdir}" -lraylib -lGL -lm -lpthread -ldl -lrt -lX11
Libs.private: -lGL -lm -lpthread -ldl -lrt -lX11
Cflags: -I"${includedir}" -I/usr/local/include

Arquivo baseado em: raylib.pc.in.


03. Instale a Raylib-PHP

git clone https://github.com/joseph-montanez/raylib-php
cd raylib-php/

Eu detectei um BUG na versão atual e para resolver isso eu alterei o commit. Se você quiser pular essa etapa e quiser tentar com a versão atual certifique-se que se não der certo você terá de remover esse repositório clonado e depois clonar novamente e então fazer esse passo de alterar o commit.

Altere o commit:

git checkout 2968648

Esse commit refere-se a linha: Initial Support for RayLib 4.0 Fonts need testing, caso queira vê-lo rode: git log --oneline.

Prepare a extensão, rode o Make, entre no build, construa e instale:

phpize # Prepara a extensão
./configure 
make
sudo make install

Limpe os arquivos utilizados:

cd ..
rm -rf raylib-php

04. Testando o RayLib com PHP

Crie um arquivo de teste, exemplo: vim main.php.

Adicione o código abaixo que só imprime uma frase na janela que se abrirá:

<?php
use raylib\Color;
use raylib\Draw;
use raylib\Text;
use raylib\Timming;
use raylib\Window;

$screenWidth  = 800;
$screenHeight = 450;
$lightGray    = new Color(245, 245, 245, 255);
$gray         = new Color(200, 200, 200, 255);
$black        = new Color(0, 0, 0, 255);

Window::init($screenWidth, $screenHeight, "raylib PHP basic window");

Timming::setTargetFps(60);

while (!Window::shouldClose()){
    Draw::begin();
    Draw::clearBackground($lightGray);
    Text::draw("RayLib com PHP uhuulll", 190, 200, 20, $black);
    Draw::end();
}

Window::close();

Para rodar use o comando:

php -dextension=raylib main.php

Raylib rodando com PHP

Resultado do teste!

Para aprender Raylib e PHP veja os links:


php raylib gamedev


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!