Czech Danish Dutch English French German Hungarian Italian Norwegian Polish Portuguese Brasilian Portuguese Romanian Serbian Spanish Swedish

O documento seguinte descreve como deverá se parecer o jogo completo. Isso não garante NADA na versão atual do jogo.

O jogo

O propósito deste projeto é fazer a remontagem UNIX/Linux do famoso jogo de DOS "stunts".

"O jogo antigo"

O jogo original de DOS (desenvolvido pela Broderbund e Mindscape) pode ser baixado em diversos sites de jogos antigos (abandonware), ex: o site da XTC.

Stunts é um jogo de corridas 3D, com gráficos CGA/EGA/VGA simples e sem texturas ou sombreamento suave, mas devido às suas espetaculares acrobacias (loopings, pontes como rampas, etc.) ele era realmente divertido de jogar. Um dos melhores aspectos do jogo é que o mesmo possuía um editor de pistas. Devido às suas pistas modulares (tile-based), todo jogador podia fazer suas próprias pistas.

Similaridades / diferenças

UltimateStunts vai ser muito similar a Stunts:

Algumas das pequenas diferenças são: Mas também existem algumas grandes diferenças:

Especificações detalhadas

O jogo

O jogo será um jogo de corridas tridimensional, no qual criar suas próprias pistas e fazer acrobacias são partes essenciais da jogabilidade. A física será quase realística, jogabilidade é mais importante que realismo. Os objetivos que um jogador pode ter são: ganhar dos oponentes numa corrida, conseguir um recorde, e criar pistas que são tão longas, rápidas, divertidas ou (quase) impossíveis de dirigir.

Multi-jogador

Jogadores poderão dirigir sozinhos (só para conseguir entrar na lista de recordes), contra oponentes de computador, contra seus amigos numa sessão de tela dividida, ou numa sessão multi-jogadores através de uma rede interna ou da internet. Combinações também serão possíveis, por exemplo, jogar contra oponentes de computador através da internet.

Rede

Sempre que a comunicação de rede estiver envolvida em uma sessão de jogo, um programa servidor separado é iniciado em um dos computadores. Será possível iniciar o servidor com um item de menu no programa cliente, mas também será possível iniciar manualmente em um computador servidor dedicado. Todos programas clientes que estiverem envolvidos na sessão do jogo precisam se conectar ao servidor. O servidor não apenas repassa os dados, mas também age como juiz. A simulação do jogo rodará em um servidor, e todos simuladores locais precisam se sincronizar com o servidor. O servidor também decide em que pista se jogará, e quais carros são permitidos. Todos arquivos deverão estar disponíveis no servidor, e se eles não estão disponíveis em um dos clientes, aquele cliente poderá baixar os arquivos faltantes automaticamente.

Gráficos

Ultimate Stunts será capaz de oferecer gráficos 3D de alta qualidade, porém, será bastante flexível nesse ponto. De forma a oferecer um jogo jogável mesmo em plataformas sem aceleração por hardware disponível, será possível diminuir a complexidade dos gráficos para um mínimo. Por outro lado, em plataformas de alta performance, tecnologias avançadas serão usadas.

As pistas

As pistas consistirão de "tiles" quadrados, assim como em Stunts. As diferenças são: Os tamanhos dos tiles serão definidos em 40x40x12 metros, porque estes tamanhos são aproximadamente iguais aos tamanhos dos tiles em Stunts. Suporte para outros tamanhos de tiles não está planejado. Tiles grandes (como os largos cantos em Stunts) são construídos de tiles menores.

O editor de pistas

O editor de pistas será um programa amigável para edição de pistas. Será possível iniciar o editor de pistas de um item de menu no programa principal. Devido às pistas em Ultimate Stunts serem mais 3D que as pistas de Stunts, o editor será mais complexo. Ele será inspirado pelo editor de montanhas russas de Rollercoaster Tycoon. A idéia básica é ter um "cursor" no final da pista. O usuário pode se as pistas precisam virar para a direita ou esquerda, se precisam ir para cima ou para baixo, se uma acrobacia precisa ser incluída, etc. Então o editor de tile deverá automaticamente aplicar as alterações certas à pista. É claro que o editor de pistas deverá também validar as pistas, e tornar impossível fazer alterações invalidas. O editor de pistas deverá também ter a possibilidade de importar pistas do Stunts original.

Replays

Assim como Stunts, Ultimate Stunts terá a possibilidade de criar e ver replays (mas não será capaz de ler replays do Stunts original). Replays de Ultimate Stunts conterão cada posição e orientação para cada objeto em movimento na cena, para cada frame. Com as ferramentas de conversão corretas, esses dados também poderão ser usados em programas de animação (como 3D Studio), por exemplo, para criação de um vídeo de introdução para Ultimate Stunts. Em Ultimate Stunts também será possível usar o replay como um jogador fantasma.

O editor stunts3dedit

Quando o projeto se iniciou, não haviam planos para um editor 3D, mas tão breve tiles complexos foram necessários, ele foi criado para reduzir a dificuldade de escrever as definições de tile em arquivos de texto. O editor 3D será o que é agora: uma ferramenta simples para manipulação de muito baixo nível de polígonos, com alguns modificadores de alto nível. Um recurso que se torna cada vez mais importante é a possibilidade de importar formatos de arquivos estrangeiros. A utilização será: criar um modelo em um editor externo, importá-lo no stunts3dedit, fazer algumas correções, e salvar-lo para utilização em Ultimate Stunts.

Requerimentos

UltimateStunts é muito flexível em suas necessidades de sistema: ele pode ser jogado em computadores sem aceleração por hardware, mas é possível se utilizar das vantagens da tecnologia 3D em PCs modernos.
As seguintes coisas são necessárias para se ter os arquivos de Windows funcionando:

As seguintes coisas são necessárias em um sistema Unix típico: Para compilação no Windows, Cygwin pode ser usado. Você vai precisar dos pacotes opengl e W32api, SDL, e é claro, das coisas usuais para compilação.

Para ter o jogo funcionando legal com uma taxa de quadros-por-segundo normal, o seguinte é recomendado:

Os seguintes itens opcionais são suportados por UltimateStunts:

A tecnologia

As plataformas principais de desenvolvimento são Linux e Cygwin (= no windows), mas eu estou tentando manter portável para outros ambientes "unix-like", como MacOS/X. Para gráficos e entradas, uma combinação openGL/SDL é utilizada. A rede é feita por funções de rede padrão UNIX (BSD). A comunicação do jogo usará UDP/IP. Som é implementado usando a livraria FMOD, mas assim que eu aprender a usar, uma implementação openAL vai ser adicionada.

O projeto irá prover um número diferente de programas. Estes incluem os seguintes:

Atualmente, o programa kdevelop é usado para desenvolvimento.

Rede e simulação

A funcionalidade de vários programas envolvidos em uma sessão de jogo serão muito flexíveis, já que a melhor configuração vai depender de parâmetros de rede, como largura da banda. O seguinte texto descreve futuras versões. Isto NÃO se aplica à versão atual.

Em um jogo local, onde apenas um computador está envolvido na sessão do jogo, todas as coisas (incluindo gráficos, jogadores de IA e física) são feitas por um único programa. Quando mais de um humano é envolvido, em um jogo de rede, os dados serão distribuídos pelo programa servidor. A simulação da física principal é feita pelo programa servidor, mas (dependendo da largura da banda) alguns programas cliente podem também calcular a física, para corrigir a sincronização lenta com o servidor.

Jogadores de IA podem ser iniciados dentro do servidor e do cliente de UltimateStunts. Eles podem também ser adicionados utilizando um programa cliente de IA separado. Experts que quiserem performance melhor, podem usar o programa servidor para agir também como cliente. Desta forma, o programa servidor pode dar entrada em um jogo pela internet através de uma conexão lenta, e agir como servidor para vários jogadores em uma rede local. Isto permite a possibilidade de compartilhar uma única conexão cliente-servidor por vários jogadores.

Gráficos

Devido aos gráficos serem "tile-based", a renderização pode ser feita mais rapidamente desligando o "z-buffering", padrão do openGL e simplesmente renderizar os "tiles" na ordem certa. Além disto, os recursos gráficos usados serão muito configuráveis. Se o "z-buffering" é desligado, textura desligada, sombreamento suave desligado, fundo desligado, resolução definida em 320x200, etc., o jogo se parecerá muito similar ao jogo original de DOS, mas rodará em qualquer computador.