Skip to content

0.97.30 — Fase 3: plataforma y Linux / Phase 3: platform and Linux / Fase 3: plataforma e Linux

Choose a tag to compare

@EmanuelCatania EmanuelCatania released this 19 Oct 10:49
· 89 commits to main since this release
d44ad6e

Español

Cierre de la Fase 3: el cliente deja de depender de Windows y corre de forma nativa en Linux.

Plataformas

  • Nueva capa de plataforma (src/Platform/): ventana, contexto GL, entrada, audio, sockets, archivos y reloj quedan detrás de interfaces, con un backend Win32 y otro SDL3.
  • Linux x86 con SDL3: Wayland nativo con respaldo a X11 (también cuando Wayland sólo ofrece GL por software), ícono de ventana y cierre ordenado.
  • Windows puede compilarse con el backend Win32 de siempre o con SDL3.
  • CMake con presets para las tres combinaciones; el CI compila todas y empaqueta el cliente Linux validando su ABI.

Texto, audio e imágenes

  • Fuentes con FreeType e incluida Liberation Sans 2.1.5 en Data/Font. El selector del menú de opciones lista sólo las familias que pueden dibujar el texto del juego.
  • Efectos de sonido y música con miniaudio en el backend SDL3.
  • Texturas y capturas con stb; se retira libjpeg.

Correcciones

  • Arcos: no se pierde la flecha cuando la velocidad de ataque hace saltear el frame en el que se dispara.
  • Items custom: el skill del arma lo define el catálogo del server, también para los items nuevos.
  • Soccer: la pelota ya no muestra barra de vida al moverse.
  • Partículas ambientales: compartían memoria con los boids y pisaban el administrador de física al entrar al mundo.
  • Red: la cola de envío se conserva tras escrituras parciales, y el login no muestra error mientras espera respuesta.

Código

  • Structs OBJECT, CHARACTER, JOINT, BMD, ITEM e ITEM_t verificados contra el binario; miles de accesos por offset pasan a usar sus campos.
  • Se retira código muerto y el material de análisis sale del repo.

Incluye las correcciones del hotfix 0.97.21. Usar junto con el server 0.97.30. Instrucciones de compilación para cada plataforma en el README.

English

Phase 3 is complete: the client no longer depends on Windows and runs natively on Linux.

Platforms

  • New platform layer (src/Platform/): window, GL context, input, audio, sockets, files and timing sit behind interfaces, with a Win32 backend and an SDL3 backend.
  • Linux x86 with SDL3: native Wayland with X11 fallback (also when Wayland only offers software GL), window icon and clean shutdown.
  • Windows can be built with the usual Win32 backend or with SDL3.
  • CMake presets for the three combinations; CI builds all of them and packages the Linux client, checking its ABI.

Text, audio and images

  • FreeType fonts, with Liberation Sans 2.1.5 bundled in Data/Font. The options menu font picker lists only families that can render the game's text.
  • Sound effects and music through miniaudio in the SDL3 backend.
  • Textures and screenshots through stb; libjpeg is gone.

Fixes

  • Bows: the arrow is no longer lost when attack speed skips the frame where it fires.
  • Custom items: the weapon skill comes from the server catalog, including new items.
  • Soccer: the ball no longer shows a health bar while moving.
  • Ambient particles: they shared memory with the boids and overwrote the physics manager when entering the world.
  • Network: the send queue survives partial writes, and login no longer shows an error while waiting for a reply.

Code

  • OBJECT, CHARACTER, JOINT, BMD, ITEM and ITEM_t structs verified against the binary; thousands of raw offset accesses now use their fields.
  • Dead code removed, and the analysis material moved out of the repo.

Includes the fixes from hotfix 0.97.21. Use with server 0.97.30. Build instructions for each platform are in the README.

Português

Conclusão da Fase 3: o cliente deixa de depender do Windows e roda nativamente no Linux.

Plataformas

  • Nova camada de plataforma (src/Platform/): janela, contexto GL, entrada, áudio, sockets, arquivos e relógio ficam atrás de interfaces, com um backend Win32 e outro SDL3.
  • Linux x86 com SDL3: Wayland nativo com fallback para X11 (também quando o Wayland só oferece GL por software), ícone da janela e encerramento ordenado.
  • Windows pode ser compilado com o backend Win32 de sempre ou com SDL3.
  • CMake com presets para as três combinações; o CI compila todas e empacota o cliente Linux validando sua ABI.

Texto, áudio e imagens

  • Fontes com FreeType e Liberation Sans 2.1.5 incluída em Data/Font. O seletor do menu de opções lista só as famílias que conseguem desenhar o texto do jogo.
  • Efeitos sonoros e música com miniaudio no backend SDL3.
  • Texturas e capturas com stb; a libjpeg foi removida.

Correções

  • Arcos: a flecha não se perde quando a velocidade de ataque pula o frame do disparo.
  • Itens custom: o skill da arma vem do catálogo do servidor, inclusive para itens novos.
  • Soccer: a bola não mostra mais barra de vida ao se mover.
  • Partículas ambientes: compartilhavam memória com os boids e sobrescreviam o gerenciador de física ao entrar no mundo.
  • Rede: a fila de envio é preservada após escritas parciais, e o login não mostra erro enquanto espera resposta.

Código

  • Structs OBJECT, CHARACTER, JOINT, BMD, ITEM e ITEM_t verificados contra o binário; milhares de acessos por offset passam a usar seus campos.
  • Código morto removido e o material de análise saiu do repositório.

Inclui as correções do hotfix 0.97.21. Usar junto com o server 0.97.30. Instruções de compilação para cada plataforma no README.