Por que não Java?

10 views
Skip to first unread message

William

unread,
Nov 13, 2008, 5:21:29 AM11/13/08
to Criação de Jogos - FATEC SJC
PessoALL,
Ontem achei em um CD jogado lá em casa de apostilas uma pasta com
softwares para games e encontrei uma biblioteca Java execelente para
nossa aplicação. O nome dessa biblioteca é GTGE.

Como é em Java podemos aplicar padrões de projeto e fazer o jogo
perfeito. É claro q em outras linguagens isso também seria possível
mas com java é sempre melhor.

Estou subindo dois exemplos que fiz ontem mais o JAR e a
documentação.

Para quem quer saber mais:

http://www.goldenstudios.or.id/products/GTGE/

Existe um livro chamado Java Game Programming que irei subir aqui
também assim que encontrar, detalhe, o livro é free e está disponível
na WEB.

Game Maker Man

unread,
Nov 14, 2008, 5:06:57 AM11/14/08
to Criação de Jogos - FATEC SJC
Sa porrra de google viu, devia ser mais prático a inscrição nesse
grupo, ai cambada de cabaço, eu fiz ontem um carinha em estado de
espera(respirando e parado) depois ele começava a andar caso eu
apertasse a tecla VK_Right, depois voltava em estado de espera. ficou
dahora, mas tenho q melhorar alguns detalhes keke vlw
e assim vamos nós
depois quero mostrar a voces uma tecnica diferente de movimentação do
personagem no estádio do jogo.
eu num sei o nome da tecnica mas entendi assim que vi as partes que
formam ela
ok

David

unread,
Nov 14, 2008, 7:15:07 AM11/14/08
to Criação de Jogos - FATEC SJC
Clique em Join This Group e pronto já entrou no grupo.
O que seria mais prático?

William

unread,
Nov 14, 2008, 8:43:44 AM11/14/08
to Criação de Jogos - FATEC SJC
Legal Eduan!

Uma sugestão para a movimentação do USER aproveitando-se orientação a
objeto.

Primeiro: Lembrem que a regra estabelecida por bons programadores com
LP's orientada a objeto(principalmente JAVA) é:
"Programe orientado a abstração, não a implementação"


Logo se você fizer um personagem verá que eles tem coisa em comum,
todos se movem, tem vida e podem morrer.

Um gay viado que não sabe programar (não é nosso caso aqui) iria fazer
esses métodos para cada personagem, qual a solução senão essa?
Primeiro: Usar interface: Perfeito!!! Mas cada vez que você tiver que
implementar um novo método comum a todas as classes que implementam
você terá que REFAZER ESSE MÉTODO PARA TODOS OS PERSONAGENS, mesmo que
seja somente repetir o código e. Outro problema de usar só interface é
definir os atributos....
Segundo: Usar classe abstrata é bom mas não força o cara a usar..

Eu usei um mesclado, que é um padrão de projeto que não me lembro o
nome agora, mas a base está no livro do GOF ou no Head First.

Ipersonagem Personagem(abstratra)
impIpersonagem personagemConcreto extends personagem
+moverCima
+vidas
+metodos que são só dele
+moverbaixo +metodos da interface
...

Quem tem algo a dizer? Vamos discutir!
> > ok- Hide quoted text -
>
> - Show quoted text -

William

unread,
Nov 14, 2008, 8:44:44 AM11/14/08
to Criação de Jogos - FATEC SJC
droga, o google zoou meu diagrama...
> > - Show quoted text -- Hide quoted text -

David

unread,
Nov 17, 2008, 5:55:59 AM11/17/08
to Criação de Jogos - FATEC SJC
A biblioteca golden tem se mostrado mais que útil e bem legal de
programar!
Deveríamos fazer um diagrama de classes pra que nosso programa ficasse
mais bem organizado.
Sua idéia foi boa cara! Vamos ver se conseguimos fazer um diagrama bem
chique.
Personagem, NPC, Mapas, Classes específicas para cada tipo de colisão
(Personagem - Parede / Personagem - NPC / NPC - Parede) creio que
também são úteis.
Outra idéia que tive é fazer uma classe NPC e classes que extendam
dela e mudem o modo que se comporta (Seguir o player, andar
aleatoriamente, etc.)
Sei que nossos projetos são diferentes mas ambos são tiled!
Uma idéia que tive também foi que nosso jogo (David, Eduan etc) fosse
algo do tipo:

Coletar itens em cada fase (lanches da véia, cabos de rede, etc),
quando todos são coletados uma porta se abre para outra fase! E no
ínterim desviar dos oponentes como fatecão, tia do lanche etc,
Fica parecido com bomberman mas podem ser dois jogos diferentes com
uma arquitetura similar.
Nesse caso o desafio seria desviar dos inimigos.

NPCs que se movem aleatóriamente já fiz, vou trabalhar agora em NPCs
que sigam o player.
Detecção de colisão com AdvancedSprite é bem fácil, há um método
(revertPosition1()) que ajuda na hora de impedir que um sprite invada
outro.
Outra cosia que estive pensando em fazer é um construtor simples de
fases.
Acho que o William já mencionou algo parecido.

Um método em que você passe uma matriz do tipo:

111111
103001
100201
120031
111111

Os 1 representam blocos de parede.
2 representam um tipo de NPC.
3 representam itens ou algo mais.

Não será tão difícil de implementar pois usei algo semelhante pra
posicionar Objetos e chão no jogo.

Dêem idéias folks!

Regards,

William

unread,
Nov 17, 2008, 9:00:16 AM11/17/08
to Criação de Jogos - FATEC SJC
Olá David! Bom Dia.
Essa mesma idéia está descrita no tutorial do Tonypa...

SObre a detecção de colisão, a teoria dos experientes é a seguinte:
Você tem que ter um atributo em cada tile para dizer se podemos andar
nele ou não. O tonypa usa walkable como nome para esse atributo.

Nos meus Tiles eu utilizo walkable, hostil e estou pensando num
atributo que permite diminuir a velocidade tbm...

O uso para fazer andar ou não é fácil. Simpleste prevemos a próximo
posição e permitimos o personagem andar ou não...

vou fazer um pseudo code aki para exemplificar:

//Pegamos onde será a próxima posição do personagem
if(key.isDown(KEY.Up){
proxPosX = personagem.x+ velocidade;
proxPosY = personagem.y+ velocidade;
}
//Com as posições futuras pegamos qual é o tile na nossa fase
Tile proxTile = getTile(proxPosX, proxPosY); // A função getTile
retorna o tile para as posições passadas como parâmetro

if(proxTile.walkable){ //Se o tile permitir andar
//setamos a velocidade de acordo com esse tile
velocidade = proxTile.getVelocidade;
//movimentamos o personagem de acordo com o tile
personagem.moveCima(velocidade);
}

É interessante setar a velocidade pois assim podemos fazer ele andar
do jeito que queremos, se for gelo, mato...
E se for um tile que mata o personagem? Podemos colocar dentro do if,
logo após se movimentar, o seguinte:
//Verificamos se ele pode matar:
try{
if(proxTile.getMatavel && ! personagem.isInvencivel){ //
Matavel é foda hehehe
personagem.descVida(); //se for um tile que perde vida
e o personagem não estiver invencivel, decrementamos a vida
//agora é foda, startamos um thread de invencibilidade,
que simplesmente segura a invencibilidade do personagem pelo tempo
determinado
personagem.startInvencivel(); //este método poderia esta
dentro do descVida...
}
}catch(MorteException morte){
gameOver();
}

É importante dentro do personagem no método descVida tratar se ele for
morrer, a invencibilidade e tudo mais. Não é má prática lançar
excessão qaundo o cara morre, é um uso diferente do que ficar lendo a
vida do cara...

IMPORTANTE: Leiam sobre jogos gente, pô, jogo é uma forma de programar
diferente, vc num precisa ficar reinventando a roda, isso é coisa de
cara do que não se adequa a programação no atual momento.


Para finalizar, alguém quer discordar ou propor uma forma melhor de
tratar a morte do personagem?

David

unread,
Nov 17, 2008, 9:13:21 AM11/17/08
to Criação de Jogos - FATEC SJC
Algo interessante é ter um atributo private chamado velocidade na
classe personagem, não?
Você elaborou esses códigos?
Não sabia que manjava de Threads pow.

William

unread,
Nov 18, 2008, 5:28:27 AM11/18/08
to Criação de Jogos - FATEC SJC
Verdade, a velocidade é do personagem! Mas ela será alterada por fora,
pode ser algo simultâneo, tipo só naquele tile, então teremos que
mandar para ele uma velocidade alterada, então setar a velocidade dele
toda hora pode ser meio ruim.Naquele ponto seria interessante
fazer assim:

personagem.moveCima(personagem.getVelocidade() + velocidade); //
Lembrando que essa é a velocidade do tile

Assim teremos o movimento alterado. Digamos que o tile fosse uma
areia, logo a velocidade do tile seria negativa, pois seria um
decréscimo.

Mas mesmo assim desculpe por não ter mencionado que ele teria uma
velocidade como atributo. Esse David realmente é Master of Java, temos
que nos unir para você me ensinar se o que eu penso na parte de Thread
está certo...

**********************Changing

Estou subindo uma modelagem de personagem que fiz orientado a objeto,
espero que todos vejam e que podemos discutir!

**********************Changing

Sobre padrões de projeto: Vou subir mais tarde uma versão não oficial
do Head First Design Patterns. Todos sabemos que isso é muito
importante!!!!

William

unread,
Nov 18, 2008, 5:52:16 AM11/18/08
to Criação de Jogos - FATEC SJC
David, li seu código, e vou criticar, se me permite. Eu lhe permito
criticar o meu ;).

Primeiro: Não tente conhecer coisas de fora do seu jogo, pois isso
pode levar você a programar para uma implementação, como todos já
sabemos, isso não é bom.
(Receber o game no construtor)

Segundo: Atributo Estático...

Terceiro: Hard Codes - Puramente orientado a implementação (
this.setAnimationFrame(0, 3);
...
super.update(2);

****

MAs sei que você já deve ter modificado um monte de coisas ai, te
conheço e você é o melhor javeiro que já vi, pelo tempo de uso. E tem
outra, vc fez tudo aquilo em só dois dias? Vixxiiiiiii!!!!!!!

Cara, a parte de orientação do mapa ficou massa!!! Vou usar
algo :P !!!

***


O meu código, nessa versão que subi tem algumas falhinhas que forma
mudadas na atual versão 0.5. Pode criticar e meter o pau, assim que
iremos evoluir!

Game Maker Man

unread,
Nov 18, 2008, 6:52:57 AM11/18/08
to Criação de Jogos - FATEC SJC
Ai pessoal baseado nas idéias loucas do william, nesse troço de tirédi
uôrd.
eu vuo fazer um editor de mapas em tiled acho que vai ser mto útil pra
todos, ja que o método que eu estava usando naum deu certo:

eu usava uma imagem de fundo e por cima dela eu colocava um gif
identico vazado, onde o personagem podia andar, colisão funcionava
perfeitamente, só que por fora do mapa e na horizontal, na vertical o
personagem naum detectava colisão, por colidir somente nas bordas dos
objetos e por estar dentro essa operação era falha.

Fazendo esse editor de mapas tiled acho que facilitaria um pouco.

soh me tire uma dúvida
o editor cria um arquivo do tipo mapa, mas o que vai der dentro deste
arquivo, imagino uma matriz em forma de string, ou oq!?

William

unread,
Nov 18, 2008, 7:19:44 AM11/18/08
to Criação de Jogos - FATEC SJC
Nó. Eduan é fodão!!!!

Há duas possibilidades de salvar o mapa. A primeira é perfeita, é com
XML, a segunda é salvar num TXT o vetor em si, mas podemos ter
problemas, eu já usei e me ferrei muito. É a matriz que vc citou.

Pode gerar em qual você quiser. No nosso jogo a gente faz uma
interface de mapas, pega o seu mapa e transforma no nosso!

Adoro este grupo e os caras que mexem aqui são espetaculares!!!!

David

unread,
Nov 18, 2008, 9:47:10 AM11/18/08
to Criação de Jogos - FATEC SJC
Cara, eu não encapsulei NADA ainda.
tenha paciência.

David

unread,
Nov 18, 2008, 10:35:34 AM11/18/08
to Criação de Jogos - FATEC SJC
William,

Sío não entendi algo.
Atributos estáticos..
Preciso usar constantes no meu jogo.
Em Java uma constante é definida como um membro public static final
int.
Como posso não usar elementos estáticos nesse caso?

As outras coisas concordo com você, quando passei Game pro método
personagem me doeu o coração.

David

unread,
Nov 18, 2008, 10:50:00 AM11/18/08
to Criação de Jogos - FATEC SJC
Nota: *sem o int na constante hahaha

David

unread,
Nov 19, 2008, 3:22:30 AM11/19/08
to Criação de Jogos - FATEC SJC
Ontem me explicaram..
Se a constante for de objeto tudo bem usar só final.
Se eu quiser acessá-la sem instanciar nada (o que é usual para uma
constante) deve ser static.
As constantes que usei são: CIMA, BAIXO, ESQUERDA e DIREITA e pra mim
é usual usá-las sem instanciar um objeto por isso o modificador
static.

Eduan Lenine

unread,
Nov 19, 2008, 6:26:04 AM11/19/08
to fatec-s...@googlegroups.com
pessoal para ao amantes de XML(porra melhor coisa que ja inventaram), estarei usando como API, para mexer com xml, JDOM, mto boa por sinal e bem simplesinha, mas mais simples que php para mexer com xml ninguem consegue, entaum essa noite ou og na aula, se eu naum aguentar essa aula de og, eu termino de fazer os teste para começar a fazer o tiledWorldMapsEditor.jar!!!
 

Atenciosamente;

 

Eduan Lenine

12 9759-4440


E-mail Profissional de Eduan Lenine dos Santos Neves, Universitário, Cursando Tecnologia da Informação pela Faculdade Tecnológica de São José dos Campos. Conhecimentos em Desenvolvimento de Software e Sites. Liguagens Preferidas: Php, Java, MySql, Vb, C#.




De: David <davidrib...@gmail.com>
Para: Criação de Jogos - FATEC SJC <fatec-s...@googlegroups.com>
Enviadas: Quarta-feira, 19 de Novembro de 2008 6:22:30
Assunto: [FATEC Games] Re: Por que não Java?


Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes

David

unread,
Nov 19, 2008, 8:45:02 AM11/19/08
to Criação de Jogos - FATEC SJC
Cara!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Sim, tem 274 pontos de exclamação ali.

On Nov 19, 9:26 am, Eduan Lenine <eduanlen...@yahoo.com.br> wrote:
> pessoal para ao amantes de XML(porra melhor coisa que ja inventaram), estarei usando como API, para mexer com xml, JDOM, mto boa por sinal e bem simplesinha, mas mais simples que php para mexer com xml ninguem consegue, entaum essa noite ou og na aula, se eu naum aguentar essa aula de og, eu termino de fazer os teste para começar a fazer o tiledWorldMapsEditor.jar!!!
>  
> Atenciosamente;
>  
> Eduan Lenine
> 12 9759-4440
> ________________________________
>
> E-mail Profissional de Eduan Lenine dos Santos Neves, Universitário, Cursando Tecnologia da Informação pela Faculdade Tecnológica de São José dos Campos. Conhecimentos em Desenvolvimento de Software e Sites. Liguagens Preferidas: Php, Java, MySql, Vb, C#.
>
> ________________________________
> De: David <davidribeirolo...@gmail.com>
>       Veja quais são os assuntos do momento no Yahoo! +Buscadoshttp://br.maisbuscados.yahoo.com

Fernando Masanori Ashikaga

unread,
Nov 19, 2008, 2:51:57 PM11/19/08
to fatec-s...@googlegroups.com
Estou com um livro de IA para Games que usa tudo em XML, é só pegar comigo

2008/11/19 David <davidrib...@gmail.com>
Reply all
Reply to author
Forward
0 new messages