Ballin' - Jogo programado por mim, em desenvolvimento

eyeliner

Power Member
Boa tarde,

Indico um projeto que estou a desenvolver há uns meses, embora esteja em fase conceptual há mais tempo. Vários acontecimentos vieram atrasar o desenvolvimento do jogo, alguma frustração fez-me desistir, mas há uns meses a esta parte, com regularidade tenho trabalhado nele e estou motivado para o levar ao fim. Pois bem, preparem-se para uma experiência visual horripilante (clicai para aumentar as imagens e aumentar o perigo de problemas oculares):



Tudo isto é a versão atual, que passo a explicar em que consiste:
Jogo onde se controla uma esfera, com recurso a física (Physix)
Jogo para um jogador apenas (pelo menos, por agora)
Gravação de tempos de conclusão dos níveis numa base de dados
Possível jogar com teclado (WASD+Espaço) ou Joystick + Botão A/1 (testado com comando XBOX 360 e um da Game)

Motor utilizado: DXStudio (gratuito, podeis usá-lo sem limitações)

Falta:
Embelezar o jogo e dar mais variedade de níveis, som e música.

O jogo será obviamente em português na sua totalidade, mas tenho que implementar um sistema multilingue que ainda não decidi em como vai ser. Esta é uma versão preliminar, onde apenas interessa o controlo da esfera e gravação dos dados, nomeadamente, e apenas, o tempo de conclusão dos níveis e que níveis estão completados, logo graficamente o jogo está feio.

De momento, há apenas 6 níveis disponíveis, mas isso mudará facilmente. Agora quero tornar o controlo da esfera e acesso à base de dados e funções relacionadas no melhor possível, com futura adição de perfis de jogadores ou até tabelas de pontuação on-line, caso dê para isso.

Build mais recente: aqui.
Descompactem os dois ficheiros para uma pasta, mantendo os dois ficheiros no mesmo diretório.
Ao lançar o jogo, vão ver um pedido de permissão de admin, aceitem-no, pois será copiado para a diretoria de sistema uma pasta de nome WorldWeaver que contém o player. Caso já o tenham instalado, não há problema e o jogo começa (logo que não seja 3.3.4 tudo correrá bem, pois essa beta é meio maluca). Ao terminar o jogo com a tecla ESC ou fechando-o, um novo diálogo aparece para apagar a pasta que foi criada, não serão criados registos no sistema.

Digam coisas se o experimentarem.

Obrigado.
 
Última edição:
Parabéns, é de louvar... :)

Também ando a desenvolver alguns jogos mas para outras plataformas que não PC e também num outro motor.
Se quiseres podemos trocar ideias.


Abraço,


PS. Depois das férias experimento o jogo, aqui a net é muito limitada e péssima... :)
 
Na minha opinião:


-o salto está muito lento, a altura está boa mas o salto em si demora muito. Também não parece que a bola muda de velocidade durante o salto, geralmente o salto começa com mais velocidade e vai perdendo a mesma até chegar a 0 no seu ponto mais alto, mas isso pode ser uma imposição do motor e nesta parte estou só a ser picuinhas lol




-é preciso controlar a bola durante o salto, em quase todos os jogos de plataformas se fores a ver dá para controlar o salto, ainda por cima com este tipo de perspectiva, esse controlo durante o salto não precisa de ter uma velocidade igual ao controlo no chão, podes meter metade disso ou até menos que assim dás a hipótese ao jogador de fazer um "fine tunning" do seu salto e sempre mantém alguma dificuldade. O jogador tem sempre de controlar a bola, se achas que ele controlando a bola durante o salto torna o jogo mais fácil faz níveis mais complicados




-quando saltas e voltas para o chão a bola faz sempre a animação de "bounce", durante essa animação é impossível saltar outra vez, e tens níveis onde tens várias plataformas de um quadrado seguidas, isso diz ao jogador que essa zona é mais rápida e que ele tem de estar sempre a saltar, e não saltar, ficar na plataforma, ganhar balanço e saltar novamente, com esta mecânica essas plataformas se tiverem todas 2 quadrados em vez de 1 já te "compra" mais tempo para o jogador aterrar e saltar para a próxima e ele assim não nota




-a bola tem de ser mais "pesada", isto é, dando o exemplo a um eixo, quando andas para a esquerda e carregas para a direita, ela pára muito depressa, tens de decrementar menos a velocidade e a animação da bola também está muito rápida, a bola ainda está a andar para a esquerda e a bola já está a rodar para a direita, do modo que está parece que a bola está a andar sempre sobre gelo.
Se calhar se tentares mudar a animação para que ela acompanhe a desaceleração da bola nem seja preciso mudares esses valores da desaceleração, esta é uma situação de ir lá por tentativa e erro e ver como fica melhor
 
Última edição:
Continua e vai postando updates.
Claro!
Controlar a esfera não é fácil nem muito intuitivo. É um aspecto importante como já referiste.
Hm... Por acaso, acho o controlo do mais simples que existe, nem sei muito bem o que lhe possa fazer mais, mas explicarei então o que se passa "por detrás das cenas".

Ora bem, o jogo usa física (mais exatamente, binário) para o controlo da esfera, o movimento da esfera é considerado através dos valores de fricção da esfera e da superfície onde se encontra. Não "empurram" a esfera, mas sim, rodam-na e assim ela se move, por isso é que por certo não gostam muito do movimento da gaja. :)

Não é um formato de movimento muito usual, é certo, e por isso o usei. Por isso mesmo é que no salto, não a controlam, pois no ar não há fricção e ao rodar, não alteram a trajetória. O salto, é criado através de impulso, por isso a esfera responde ao mesmo de uma forma realista, acho. Claro que se for aspeto de crítica, revejo as equações e redesenho o mesmo, mas fisicamente, os parâmetros estão corretos.

Em relação ao resto...
Como já disseste, embelezar o ambiente...
Aqui tenho um belo berbicacho, pois o meu talento para desenho estagnou nos meus dois anos. Não passou daí.
Uma ideia...que tal a possibilidade de ganhar mais esferas consoante os scores (por exemplo)? E essas esferas serem diferentes a nível estético a nível das capacidades (saltar mais alto, melhor aderência, mais rápida etc).
Este aspeto está considerado e será implementado. De momento, pode-se considerar o que até agora há como uma prova de conceito, que ainda está muito longe do pretendido. Os níveis têm uma gritante falta de interatividade.
Um bom soundtrack é sempre um ponto positivo.
Vamos a ver, mas música não é fácil de arranjar, ainda para mais, sou só eu a fazer isto.
Pode ser que daqui a uns tempos tenhamos a possibilidade de comprar o Ballin' num Indie Bundle nas Summer Sales da Steam ;)
Era bom, era...
 
Vou-te fazer as minhas críticas ao jogo, que espero serem construtivas.


Positivo:


-> Adorei a física da bola. Não acho que devas alterar para um movimento da bola em "empurrão". Assim, com o atrito no chão, é o mais natural e realista.
-> A fluidez está boa. Não vi a quantos fps corria o jogo, mas deu-me a sensação de correr a uns estáveis 30fps, o que me leva a pensar que a optimização do teu código ingame é razoável.


Negativo:


-> Demorou imenso tempo a iniciar na 1ª vez que executei o jogo. Talvez devas considerar melhor o que carregar na primeira execução.
-> Quando fechei a janela de jogo, recebi um pedido do UAC do windows de um programa penso que com o nome unins001. É alguma coisa a ver com o fecho do jogo?
-> Como o jogo ainda está numa fase incial, não há muito mais a apontar. Tenho sim é bastantes sugestões, por isso vamos a elas...


Sugestões:


-> Melhorar a aparência global. Sei que é uma tarefa dificil, principalmente para um programador (também tenho o mesmo problema que tu). Porque não pedir ajuda a alguém mais dentro do assunto?
-> Talvez fosse mais fácil controlar a bola com as setas direcionais do teclado, principalmente para os destros.
-> Na sequência da sugestão anterior, criar um pequeno menu no inicio do jogo onde não só pudesses escolher os níveis, mas também as opções de jogabilidade que possas vir a colocar no futuro.
-> Tornar o jogo não tão dependente da skill usando por exemplo portais/passagens para resolver puzzles e conseguir chegar aos destinos.
-> Relevo no terreno. Penso que de todas as sugestões, esta deve ser a mais complicada de executar. Provavelmente tens o tabuleiro disposto numa matriz o que numa primeira abordagem dificulta esta tarefa. Mas se arranjares maneira de o fazer, tornava a jogabilidade mais interessante.


De uma maneira geral gostei muito do jogo e vejo aqui enorme potencial, principalmente pela sensação de controlo da bola que me parece ser uma mais valia. É um pouco complicado adaptar-se, mas depois é bem divertido. Principalmente ter de calcular muito bem a direção dos saltos.


Vai aqui colocando mais novidades e novas actualizações do jogo. Vou acompanhar o teu projecto bem de perto.
 
Para a música um site que uso muitas vezes é o http://incompetech.com/m/c/royalty-free/, tem centenas de músicas livres de direitos de autor que podes usar no que quiseres
Vou ter que ver isso, mas já lá estive e vi-me um pouco à nora.

Vou-te fazer as minhas críticas ao jogo, que espero serem construtivas.
Manda!


Positivo:


-> Adorei a física da bola. Não acho que devas alterar para um movimento da bola em "empurrão". Assim, com o atrito no chão, é o mais natural e realista.
-> A fluidez está boa. Não vi a quantos fps corria o jogo, mas deu-me a sensação de correr a uns estáveis 30fps, o que me leva a pensar que a optimização do teu código ingame é razoável.
-Ótimo.
- Aponto para os 60, por acaso, mas terei que colocar um mostrador de FPS para ter a certeza.

Negativo:


-> Demorou imenso tempo a iniciar na 1ª vez que executei o jogo. Talvez devas considerar melhor o que carregar na primeira execução.
-> Quando fechei a janela de jogo, recebi um pedido do UAC do windows de um programa penso que com o nome unins001. É alguma coisa a ver com o fecho do jogo?
-> Como o jogo ainda está numa fase incial, não há muito mais a apontar. Tenho sim é bastantes sugestões, por isso vamos a elas...
Isso é problema do motor utilizado, que requer que um player (DXPlayer) esteja no sistema, que ao terminar é desinstalado (daí o uninst001). Fiz menção a isso na primeira entrada do tópico. É uma imposição do sistema utilizado que creio ter sido resolvida na última beta, que ainda não adoptei pois faz uma diferença no código, obrigando-me a refactorar algumas coisas. Terei que passar umas horas à volta disso, mas tenho alguma aversão a betas...

Para resolver isso, bastaria instalar o player, e o início seria quase instantâneo, pois a única coisa que acontece no início é o carregamento do ecrã inicial, composto por uma imagem e umas quantas linhas de texto. Não quero obrigar ninguém a instalar um player que mal se usa e apenas para o meu jogo, logo, esta limitação tem que ser evitada instalando e desinstalado o player sempre que necessário. De novo, isto aparenta ser um ponto em que a empresa que desenvolve o motor quer resolver. Aparentemente, tem a ver com a versão do physiX...


Sugestões:


-> Melhorar a aparência global. Sei que é uma tarefa dificil, principalmente para um programador (também tenho o mesmo problema que tu). Porque não pedir ajuda a alguém mais dentro do assunto?
-> Talvez fosse mais fácil controlar a bola com as setas direcionais do teclado, principalmente para os destros.
-> Na sequência da sugestão anterior, criar um pequeno menu no inicio do jogo onde não só pudesses escolher os níveis, mas também as opções de jogabilidade que possas vir a colocar no futuro.
-> Tornar o jogo não tão dependente da skill usando por exemplo portais/passagens para resolver puzzles e conseguir chegar aos destinos.
-> Relevo no terreno. Penso que de todas as sugestões, esta deve ser a mais complicada de executar. Provavelmente tens o tabuleiro disposto numa matriz o que numa primeira abordagem dificulta esta tarefa. Mas se arranjares maneira de o fazer, tornava a jogabilidade mais interessante.
- Os artistas saem caros, e acima de tudo, ainda está demasiado embrionário. É muito complicado arranjar alguém que dê ou faça arte para estas coisasa troco de "agradecimentos".

-Tens razão. Mas já implementei o uso de joystick, mas faz falta um menu de configuração. Preocupei-me imenso com o controlo/jogabilidade ao longo destes meses. O controlo vem a seguir, e já devia de ter sido implementado.

- Certo. Uma vez mais, é um conceito, mas isso já era para ser incluído, pois falta interação. Os níveis estão demasiado vazios.

- Criar níveis é brutalmente fácil, pois a segunda preocupação, além da jogabilidade+controlo, foi desenhar um sistema de carregamento de níveis dinâmico. A dificuldade vem através do raycasting quando a esfera está numa rampa, pois de momento, só há raycasting para baixo. Ainda não consegui arranjar uma solução aceitável para este dilema, pois a bola só salta diretamente para cima, e numa rampa, teria que ter em consideração a inclinação do terreno.

De uma maneira geral gostei muito do jogo e vejo aqui enorme potencial, principalmente pela sensação de controlo da bola que me parece ser uma mais valia. É um pouco complicado adaptar-se, mas depois é bem divertido. Principalmente ter de calcular muito bem a direção dos saltos.


Vai aqui colocando mais novidades e novas actualizações do jogo. Vou acompanhar o teu projecto bem de perto.
A pedido de alguns jogadores, se calhar a bola desliza demais, mas talvez torne esse parâmetro mais restrito, fazendo com que a bola deslize menos, facilitando o controlo, ou até personalizável.

E segue à vontade... :)

MAIS!
 
Bem, entrada seguida, mas pode ser que se justifique:

Andei embrenhado na criação da interface e componentes da base de dados, onde se guardam os tempos, perfis, níveis concluídos, etc.
Aqui fica uma amostra do que será o menu inicial:


Falta a moldura que indicará a opção escolhida, mas como é ainda um modelo, por agora serve. O fundo obviamente será diferente, até animado. É relativamente fácil de fazer, por isso ainda não dediquei tempo a isso, pois coisas mais importantes estavam a ser desenvolvidas.


Menu de opções, tenho que reorganizar os menus, onde está escrito "0123456789" é uma lista que apresenta os jogadores na base de dados.


Menu de seleção de nível com um perfil.


Menu de seleção de nível com outro perfil. Notam a diferença? :)

Bem, de volta à carga. Xau aí.
 
gostei muito do gameplay, a bola desliza sim, mas eu acho que é um ponto positivo do teu jogo pois aumenta a dificuldade do mesmo: Assim podes brincar com este parámetro para diferentes modes de dificuldade.
A coisa que eu gostaria de fazer é bunny jumping, ou seja mal toco o chão com o bola posso mandar outro salto logo de seguida, por enquanto parece que o salto tem um cooldown de 1 segundo e meio.

já agora aproveito para te dizer qual foi o nivel que mais gostei foi o nivel 6, um só caminho, deu me essa impressão de estar a jogar um jogo de plataforma sem armadilhas a não ser cair das plataformas. Quem sabe, podes num futuro incrementar este tipo de coisas ;)

força com isso que pareçe me ser uma boa base inicial para um jogo bem viciante .
 
Boas,

Não existe cooldown no salto, a bola apenas salta quando está em contacto com o chão. É calculado através de um raycasting muito restrito, pois quando em testes implementei o sistema, os saltos da bola eram erráticos na altura, sendo bem maiores no segundo. Se jogam Mario, lembram-se da mesma situação: salto 1, normal, salto 2 em sucessão, mais alto. Os resultados não estavam a ser os pretendidos, por isso ficou assim. Com comando, retirei a facilidade de "turbo" por causa disso mas posso implementá-la se assim for desejado, mas terei que ver as implicações de tal coisa.

Se tiverem uns excelentes reflexos e coordenação olho/mão, poderão talvez conseguir saltar em sucessão, mas eu nunca consegui. Mais tarde irei refinar o controlo e com a nova implementação do PhysiX 3.2 as coisas talvez fiquem melhores.

Os níveis até agora apresentados de forma nenhuma representam o produto final. Apenas são testes.

Obrigado a todos os que deram feedback e testaram o jogo.

Alguma pergunta em específico, estejam à vontade.
 
clip1.gif


Um elemento de jogabilidade que estou a explorar, para possíveis áreas secretas ou até puzzles.

Além de planear uma edição de níveis mais simples para tornar o jogo infinitamente expansível através de contributos dos jogadores. Este último, no entanto ainda não entrou em fase desenvolvimento.
 
Parabéns, também tenho andado a fazer as minhas experiencias, só que em 2D.

Se quiseres um bom exemplo de movimento de uma bola experimenta o hamsterball, é muito semelhante e está bem feito nesse aspecto. Já agora, o executável que deste é assinalado como um trojan pelo avira, tenta ver isso.

Devo também dizer que desconhecia o motor. Isto é tudo sobre programação ou tem interface gráfica? Eu tenho tado a usar o XNA do C#.
 
Obrigado.
Se o Avira acusa, deve ser ou por causa do acesso à base de dados ou do executável que é copiado para o program files e depois é eliminado. Espero que seja resolvido numa posterior versão do motor. Mas podes descansar que é falso positivo. Infelizmente a versão do Physix que uso requer privilégios administrativos para ser instalado e ser usado. A nova versão, que está a ser implementada, evitará esse grande inconveniente.

Em relação a inspiração, tenho duas: Marble Blast e Ballance, embora nestes a física não seja muito a meu gosto. Falta a inércia, que optei por incluir e torná-la num elemento importante de jogo.

O motor tem interface gráfica. É quase um Unity 3D, mas é quase tudo feito à unha. No meu caso, tudo o que se vê é aplicado e criado por mim, sem recurso a seleções do motor, ou seja, as opções e propriedades são feitas através de código.

Experimentei o XNA e irei para lá depois deste projeto. Se tiveres algo, manda, que a gente quer é ver isso!
 
Última edição:
Infelizmente não tenho nada de palpável além de umas 4 ou 5 centenas de linha de código para fazer integração do Farseer (motor de física) e do Gleed2D (desenho de mapas em XML). Tenho tado com uma enorme perguiça pa avançar, portanto deve demorar meses até ter alguma coisa, se é que realmente irei ter. Mas obviamente que mostro se essa altura chegar.

Eu escolhi o XNA porque prefiro estar a programar coisas mais abaixo para aprender, já que ponho como hipótese este ser o meu futuro, e parece-me mais didáctico. Além que já vou tendo algumas bases de programação do meu curso.
 
Boas escolhas, eu tenho ideia de ir para o XNA/C# pois neste momento, a equipa do DX Studio não parece muito virada para ele. São uma empresa de software à medida e parecem estar bem com isso, e o motor aparenta ser uma tarefa secundária infelizmente.

Olha, o meu primeiro projeto foi um conjunto de imagens com som e pouco mais. Há que começar com alguma coisa. :D
 
Eu gostei do que vi, parabéns ;)
Já tinha ouvido falar do DXStudio, mas nunca muito, o que achaste dele?
Acho-o uma ferramenta excelente. Custa um pouco ao início se alguém não tem bases em JavaScript, como eu não tinha e aprendi graças ao motor. É intuitivo, mas precisa de alguma paciência para explorar e tirar o melhor partido, pois a documentação poderia ser melhor, mas funciona.
Eu gostei do que joguei requer um bocado de consentraçao porque se aceleras muito a bola cai ;)
Bom jogo
A ideia é essa. O realismo no movimento da bola é o que o distancia de muitos outros, pois poucos jogos deste tipo existem que levem em consideração a fricção das superfícies.

Obrigado a todos.
 
Back
Topo