sábado, 28 de março de 2009

Actualização Noticiosa - News Update

Jump to English Version

Boas, pessoal! Aqui vão notícias sobre aquilo que tenho andado a fazer.

Tenho estado a trabalhar num "motor" de jogos, que me permitirá produzir vários jogos partindo de um programa comum, reduzindo o esforço de reimplementar tarefas comuns para cada jogo. O motor aproximar-se-á mais de um ambiente de desenvolvimento de jogos completo, e menos de uma "framework" em código sobre a qual se implementa mais código, procurando oferecer o maior número de funcionalidades possível para desenvolver qualquer jogo (para já, apenas baseado em "sprites", ou imagens 2D, não suportando ainda 3D real, mas permitirá uma série de truques para simulação 3D).
Resolvi seguir uma abordagem de uma ideia que me surgiu depois de ler este post ("Three Hundred Mechanics - #004 - Environment Tree"), quando tiver avançado mais o desenvolvimento explico o funcionamento interno do programa em maior pormenor. O código está a ser desenvolvido em C++, utilizando a biblioteca de jogos "Allegro", e outras para carregamento de formatos de imagem.

As principais funcionalidades que oferecerá serão:
  • separação entre lógica de jogo e código, para configuração desta durante o curso do jogo ("run-time")
  • definição de toda a estrutura de jogo a partir de uma estrutura hierárquica (armazenando o "jogo" num ficheiro com estrutura baseada em XML).
  • características frequentes em jogos:
    • gráficas
      • definição de modelos visuais de jogo ("side-scroller", isométrica)
      • efeitos gráficos ("scrolling", zoom)
      • aceleração gráfica por hardware
      • gráficos "raster" ou vectoriais
      • definição de GUIs.
    • Acções úteis na implementação de inteligência artificial (linha de visão, navegação baseada em percepção do ambiente)
    • Modelos para detecção de colisão/física simples ou newtoniana.

Algumas destas funcionalidades estão já implementadas, outras estão em curso disso, e algumas estão ainda a ser pensadas. Mas quando estiver tudo, vai ser bastante porreiro, e vão sair daqui uns jogos interessantes :) alguns dos quais já tenho pensados há bastante tempo e têm de ser feitos!

Ocasionalmente trabalho em pixel-art, ou faço uns modelos 3D (tudo nos tempos livres, o emprego não permite mais). Aqui estão algumas das coisas que posso mostrar (cliquem para ver ao pormenor):
Hand (Wings 3D)
Face - Wings


(english version)
Hey guys! Some news on stuff i've been busy with.

I've been working on a "game engine", which will allow me to produce different games using a single program, reducing the effort of reimplementing tasks which are common between games. The engine will be more of a development enviroment than a code framework on which to further code upon, and will provide a large feature list, allowing to develop (almost) any sprite-based game (only 2D sprite-based for now, some 3D effects can be simulated, but "real" 3D isn't really in the plans right now).

The engine will follow a paradigm based on an idea that came to me after reading this post ("Three Hundred Mechanics - #004 - Environment Tree"), when development is further advanced i'll post more information on how it works. Right now, i've been coding in C++, using the Allegro game library, and several libs for image format handling.

The main engine features will be:
  • separation between engine code and game logic, allowing logic configuration during game run-time
  • definition of a full game using an hierarchy structure (storing the "game" on a XML language based file).
  • frequently used game features:
    • graphics:
      • selection of the game's visual mode ("side-scroller", isometric)
      • graphical effects ("scrolling", zoom)
      • hardware acceleration
      • "raster" or vectorial graphics
      • GUI construction support
    • Useful agent actions for Artificial Intelligence implementation (line of sight, environment based navigation)
    • Collision Detection/Physics: simple or advanced (newtonian) models.

Some of these features are already implemented, others will be later, some requiring further thinking, but when it's done, it'll be pretty neat, and some interesting games will come out of it :) (some of which have been planned for quite some time, and must be done!)

Occasionally i'll do some pixel-art or 3D models for fun, all in spare time (my job allowing). Here are some incomplete 3D stuff i've been working on, click for bigger size:
Hand (Wings 3D)
Face - Wings

Sem comentários: