0
Apr 17 2016

LibGDX e formati personalizzati di modelli

LibGDX

Di tanto in tanto mi diletto con motori di rendering 3D e game engine. Questa volta è satato il turno di LibGDX.

LibGDX è un framework per lo sviluppo di videogiochi 2D e 3D scritto in Java.

Il suo scopo è quello di rendere disponibili delle API Crossplatform (Windows, Linux, Android, OS X, iOS etc…) per il rendering 2D e 3D (OpenGL ES), la matematica associata, l’audio (OpenAL, Ogg ed MP3) e la fisica (Box2D e Bullet). Inoltre, dove possibile, usa metodi nativi scritti in C per aumentare le prestazioni, ma essendo scritto principalmente in Java, permette l’uso qualsiasi classe dell’enorme libreria standard o qualunque libreria scritta nello stesso linguaggio.

Un altro punto di forza di questo progetto è la grande community che vi è attorno, constatabile anche nel numero di stelle su GitHub.

Forse è merito anche della licenza, molto permissiva: la Apache License 2.0.

Formati di modelli personalizzati

Uno dei miei obiettivi, che prima o poi potrebbe diventare realtà, è fare un gioco, magari anche piccolo, ma compatibile con le mappe dei vecchi Call of Duty 1 e 2, con cui ho giocato molto in LAN con i miei amici.

Questo però richiede o la conversione a priori del… [Leggi il resto...]

0
Ago 31 2015

A note about Call Of Duty 1/UO BSP maps

Call Of Duty 1 and its expansion, United Offensive, are based on the Quake III engine, therefore they share some of its features, like a Binary Space Partitioning to describe maps, even though the format isn’t compatible.

An article copyrighted 2000 describes very well the BSP format of Quake 3. It’s interesting, because it’s the very base to understand CoD, too, at least its devision in lumps and some of them.

An article on “Mappers United Wiki” depicts the lumps of CoD 1 maps and the size of single lump, but they aren’t explained. Luckily in the same site there’s an article on CoD 2, and most of the structs are equal.

So I’ve tried to render them, but I’ve only managed to build the geometry of maps.

First of all - they use a Z-Up coordinate system, like Blender, but contrary to many rendering systems.

Second thing is that units are very big, they are something like decimeters.

Thirs - everything is in little endian.

That said, let’t analyze some important structs.

Header and lumps directory

The header of CoD is equal to Quake: first 4 bytes are the “IBSP” word, uppercase.

Then there’s an unsigned 32 bit integer, which is the format version. CoD 1/UO is 59, whereas CoD 2 is 4 and… [Leggi il resto...]

0
Apr 29 2012

Bullet e pendii

Se avete avuto a che fare con la libreria per la simulazione della fisica Bullet e dei pendii (colline, rampe), sarete sicuramente impazziti cercando di risolvere il problema per cui il corpo non sta fermo nel pendio.

È capitato anche a me, così dopo ore perse dietro, cambiando appena una parola chiave su google ho trovato la soluzione: come riportato qui, dovete fare così:

World->getDispatchInfo().m_allowedCcdPenetration = 0.0001f;

dove world è il vostro Bullet World.

Se usate Panda3D per ottenerlo dovete fare world->get_world().

Spero sia di aiuto a qualcuno!

0
Apr 11 2012

Flying Boxes

Volevo presentarvi Flying Boxes, un gioco fatto da un mio amico lunedì notte in sole 9 ore e poi perfezionato in martedì e oggi.

È un gioco in terza persona: voi mandate a destra e sinistra un aereo, il quale deve schivare le casse di legno.

Vi spostate con i tasti direzionali: sinistra e destra spostate l’aereo, con la freccia in su date il “turbo”, ovvero aumentate la velocità di molto.

Il gioco è multipiattaforma (è fatto in python con Panda3d), però vi linko il setup per Windows.

In ogni caso se volete potete giocare anche con le altre piattaforme, basta installare Panda3D ed estrarre dal setup game/main.py, e le cartelle $_OUTPUT_DIR/models e $_OUTPUT_DIR/images (magari con 7zip).

Download del setup (mirror)