GameLibZeroWEB WEBGL

EDIT: Example pack: Dropbox - glz_web_p5_examples.zip - Simplify your life
Hello community, I am pleased to announce that I finally have a “decent” and “clean” version of the GameLibZero code that I have been using commercially for so many years in java, now for HTML5 with the fantastic P5.JS!

I share the first version of the port of the library, I leave you a link to a benchmark so that if you have a few minutes, simply indicate in a comment the number of parallel processes that the benchmark generates, you don’t have to do anything, just see the link and let the magic happen :slight_smile:

During the following weeks I will be adding to the library a lot of features that I still need to add, but it is already functional to make simple web games.

I am going to prepare a collection of examples so that you can practice with it and make it easy to use.

It is a pleasure to be able to contribute something to this great community. a cordial greeting.
https://erkosone.itch.io/gamelibzeroweb-with-p5js-webgl

DESCARGA: Dropbox - glz_web_p5_benchmarkt.zip - Simplify your life

The code of benchmark:

let img = [];
let snd = [];
let fnt;
//-----------------------------------------------------------
function preload() {
    img = loadImages("data/images/", 0);
    fnt = loadFont("data/ARCADEPI.TTF");
}
//-----------------------------------------------------------
function Setup() {
    backgroundColor = "black";
    fadingColor = "white";
    setMode(1024, 600, true);
    setFps(30);
}
//-----------------------------------------------------------
function Draw() {
    if (fps > 25){
        for(let i=0; i<25; i++){
            new Test(); // create new 25 game objects..
        }
    }
    screenDrawText(fnt, 16, processList.length + "-" + fps, CENTER, 50, 8, 0, WHITE, 255);
    screenDrawText(fnt, 16, "GameLibZeroWEB - By Luis lopez martinez. 2023. P5.JS", CENTER, WIDTH/2, 8, 0, WHITE, 255);
}
//-----------------------------------------------------------
class Test extends Sprite {
    constructor() {
        super();
        this.st = 0;
    }
    frame() {
        switch (this.st) {
            case 0:
                this.graph = img[0];
                this.x = random(50, WIDTH - 50);
                this.y = random(50, HEIGHT - 50);
                this.st = 10;
                break;
            case 10:
                this.angle++;
                if(collisionMouse(this)){
                    this.tint(color(255,0,0));
                }else{
                    this.noTint();
                }
                break;
        }
    }
}
//-----------------------------------------------------------

This is the first pack of examples: Dropbox - glz_web_p5_examples.zip - Simplify your life

Includes how to create game objects, collision with mouse & rotated/scaled graphics, signals for kill & kill_protection to gameObjects etc…

GameLibZeroWEB works with frameBuffer for unique resolution APP to all displays.

Hola gente, estoy trabajando activamente en esta libreria para facilitar las cosas a la hora de hacer juegos…

Acabo de añadir muchos ejemplos sencillos, incluido un ejemplo con clip() noClip() implementado.

La descarga del proyecto esta al inicio del hilo.

Lo he probado y funciona pero es lento hasta decir basta,si vas a hacer ejemplo haz uno de pausa,otro de reinicio de nivel y otro de pasa r de un nivel a otro.

Hola hokuto. Al final lo he portado todo a pixi. Js. El p5 era demasiado lento jeje… En nada colgare algo nuevo.

Como te comente ya no tengo problemas con el rendimiento con el nuevo ordenador ,pero mi viejo ordenador es una buena fuente de pruebas para ver que rinde mejor.

Por si te interesa sdl me funciona muy bien,allegro5 muy bien,love2d bien,raylib medio bien,sfml bien,libsigil bien etc… Todo en mi viejo ordenador,sin embargo todo lo probado con javascrits independientemete del framework que estes usando es lento,hasta es mas rapido el render de processing.

Hola Erkosona.

Hace unos meses hice un ejemplo en processing para probar una cosa,no se si lo que hice esta bien o es una chapuza pero me gustaria que lo miraras para que me digas si voy por buen camino o es mejor hacerlo de otra manera.Ya me diras

Hola Hokuto, pasame el ejemplo y lo miro tio.

Al final he optado por usar pixi.js y chipmunk physics que funcionan bastante mas rapido que processing.js, la verdad es que para graficos simplisimos processing esta muy bien pero para hacer un juego real necesitas pixi.js.
El framework esta genial, estoy pensando en hacer una coleccion de videos explicando como se usa el motor.

En processing “java” he hecho un servidor con mi libreria de juegos “netLibZero” que hice para bennuGD y gemix studio hace muchos años, la he actualizado a processing y html5 bajo webSockets y funciona muy bien :slight_smile:

Hola Erkosone.

Ya pregunte en el foro y me estuvieron mostrando algunas cosas interesantes y ya de paso estube retocando el codigo aunque todavia tengo que probar mas cosas.

De todas formas me interesa mucho tu opinion y consejo,la pregunta la hice tanto en el foro en ingles como en español,te paso un enlace al de español que no me respondio nadie y el codigo es el del principio sin retocar.Un saludo