Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alan BH

Desenvolvendo um jogo em ASP

Recommended Posts

nas horas vagas eu fiz um RPG bem simples q está, digamos, 60% concluido...tem engine de combate, dinheiro e td maiso jogo não é MMOG (embora eu queria que fosse, mas não sei fazer)mas tem ranking para comparar o score obtido pelos jogadores e seus personagens...eu escrevi ate o sistema de combate e ia começar a fazer as options para usar itens de cura, quando eu me desinteressei pelo projeto e abandonei-o (porque RPG que se preza tem q ter historia e meu jogo naum tem pq nao tenho tempo pra escrever historia de rpg como antes - trabalhar e estudar costuma dar nisso... TT)gostaria de compartilhar meus codigos com o pessoal da comunidade e se alguem animar em continuar meu projeto é só falar que eu começo a postar as linhas aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

nas horas vagas eu fiz um RPG bem simples q está, digamos, 60% concluido...

 

tem engine de combate, dinheiro e td mais

 

o jogo não é MMOG (embora eu queria que fosse, mas não sei fazer)

mas tem ranking para comparar o score obtido pelos jogadores e seus personagens...

 

eu escrevi ate o sistema de combate e ia começar a fazer as options para usar itens de cura, quando eu me desinteressei pelo projeto e abandonei-o (porque RPG que se preza tem q ter historia e meu jogo naum tem pq nao tenho tempo pra escrever historia de rpg como antes - trabalhar e estudar costuma dar nisso... TT)

 

gostaria de compartilhar meus codigos com o pessoal da comunidade e se alguem animar em continuar meu projeto é só falar que eu começo a postar as linhas aqui

Me interesso pelo desenvolvimento de jogos, especialmente de RPG, magia...

 

Já tentei com programas tipo Dark Basic, mas achei meio complicado. Se é possível desenvolver um jogo legal em ASP poste aí seu código, que eu fico muito agradecido.

 

Aliás, aqui no fórum poderiam criar uma categoria espcífica, tipo "Desenvolvimento de Games". http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aliás, aqui no fórum poderiam criar uma categoria espcífica, tipo "Desenvolvimento de Games". thumbsup.gif

Estava pensando nisso também porque meu jogo tem varios módulos que tem que ter uma atenção em separado

 

Preparando o Servidor de Teste

* Definindo IIS local, organização dos diretórios para db

 

Sessão Mestre do Jogo

* Cadastro de jogadores (login, senha e personagens dos jogadores, resetar dinheiro, etc)

* Controle dos Monstros (inserir, editar, atualizar ficha dos monstros com dinheiro, ataque, defesa, etc)

* Controle dos Itens (definir preço e status de armas, armaduras e escudos)

 

Sessão Banco de Dados

* Tabelas, Consultas, Relacionamentos e Chaves primárias

 

Sessão Combate e Cenário (único por enquanto)

* Principais pontos do script de combate (todo em ASP), geração de numeros aleatórios de 1 a 100 (%), geração da tabela de encontros, exibição visual dos personagens do jogador e dos monstros encontrados, seleção de alvos (combobox), etc

* Determinando o nivel de encontro baseado na pontuação do jogador

- falta desenvolver um script para usar potes de cura no meio do combate

 

Sessão Cidade

* Trocando dinheiro por aumento de atributos (não uso níveis no meu jogo, embora poderia bolar algo...)

* Recrutando mercenários (aumentando o numero de personagens do jogador)

* Comprando/Vendendo e equipando itens

- Falta criar uma categoria para potes de cura

* Curando pontos de vida na Igreja da cidade pagando pelo tratamento

* Trocando tempo real online por pontos de vida (a cada 1 minuto = +1pv)

 

Tudo isso (exceto o que está em - ) já está pronto, testado e funcionando

 

eu hospedei o jogo durante 3 meses em um servidor pago e chamei vários amigos para testá-lo

quando todos me falaram que ia ser melhor ainda se o jogo tivesse uma história... mas eventos seguintes, como cursinho pré-vestibular e um estágio na área de web, fizeram que eu desse um break no desenvolvimento do jogo.

 

Desenvolver um jogo sozinho é muito dificil e eu gastei 3 meses criando-o por isso estou abrindo meu código para a comunidade e querendo dar uma ressucitada no projeto

 

minha habilidade em ASP aumentou mto com o desenvolvimento desse jogo e queria esticar essa oportunidade para quem tá começando também. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem legal cara, me interresso bastante em desenvolvimento de jogos...já desenvolvi algumas coisinhas bobas pro meu Nintendo DS usando C++ (usando a biblioteca PA_Lib), mas nunca fui afundo...até penso em fazer uma faculdade disso futuramente.Meu chefe pediu para que eu melhore minhas habilidades com o ASP, talvez eu desenvolva algo assim pra me melhorarAbraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preparação

 

* Instale o IIS (suponho que você já saiba como fazer isso) para poder fazer testes locais

* Configure a segurança da pastas para que todos os usuários tenham todos os tipos de permissões (se for o caso, desmarque também o acesso anônimo)

* crie uma pasta no C:/Inetpub/wwwroot/Teste (Teste é o nome do diretório raiz, você pode modificar por outro nome se quiser)

* Crie uma pasta chamada db onde vai ficar o banco de dados

* Crie uma pasta chamda wwwroot

* Crie uma pasta chamda santaparavian dentro da wwwroot

 

eu sei q o esquema fica feio, mas era exigência do ultimo servidor que hospedei que a db e o resto do site ficassem separados

 

Antes de começarmos:

Esse jogo não tem projeto, tudo o que tem aqui foi resultado de muita "fuçação" até que ficasse como eu queria... muitos de vocês vão ver lugares onde o jogo pode melhorar (como criar uma tabela de Magias, por exemplo) mas o jogo ia ficar muito longo e dificil de fazer (e eu já queria jogá-lo o mais rápido possível)

 

quem sabe agente não dá uma geral nele até ele ficar no esquema?

 

Banco de dados

* Crie um arquivo chamado banco.mdb no access

 

Tabelas

Tudo o que for autonumeração é chave primária!

(exceto a tabela mochila que não tem chave primaria)

 

Cadastro

Tabela que registra os dados dos usuários, os pontos adquiridos, dinheiro disponivel e registro de equipamento que é "dropado" do combate

 

ID_cadastro (autonumeração)

Nome_cadastro (texto, tamanho 50)

email_cadastro (texto, tamanho 50)

login_cadastro (texto, tamanho 50)

senha_cadastro (texto, tamanho 50)

pontos_cadastro (numero, valor padrão 0)

dinheiro_cadastro (numero, valor padrão 100)

id_tesouro_pj (numero)

 

Batalha

Tabela temporária onde os dados dos monstros são replicados aqui durante o combate (ex: goblin 1, golin 2, goblin 3...).Se o jogador sair da tela de combate, os monstros relacionados a ele (campo Id_cadastro_BT) são deletados e novos são adicionados caso ele volte

 

Id_BT (autonumeração)

Id_cadastro_BT (numero)

nome_BT (texto)

ataque_BT (numero, valor padrão 0)

ataque_mx_BT (numero, valor padrão 0)

defesa_BT (numero, valor padrão 0)

defesa_mx_BT (numero, valor padrão 0)

esquiva_BT (numero, valor padrão 0)

pontos_vida_BT (numero, valor padrão 0)

pontos_vida_mx_BT (numero, valor padrão 0)

imagem_BT

pontos_BT (numero, valor padrão 0)

dinheiro_BT (numero, valor padrão 0)

chance_item_BT (numero, valor padrão 0)

rola_arma_BT (numero, valor padrão 0)

rola_armadura_BT (numero, valor padrão 0)

rola_escudo_BT (numero, valor padrão 0)

chance_gema_BT (numero, valor padrão 0)

rola_grema_BT (numero, valor padrão 0)

chance_arte_BT (numero, valor padrão 0)

rola_arte_BT (numero, valor padrão 0)

ordem_BT (numero, valor padrão 0)

 

os campos rola_chance e chance_X são relacionados a chance do monstro carregar um tesouro ou item de valor.

Eu meio que copiei da tabela de tesouro do livro do mestre do D&D 3rd.

 

Categoria

Tabela que controla os tipos de equipamento disponiveis:

arma, armadura, escudo, gema, arte, item

 

Id_categoria (autonumeração)

nome_categoria (texto)

 

Loja

Tabela que controla os itens disponiveis para venda na loja (e compra tambem)

 

id_loj (autonumeração)

categoria_loj (numero)

tipo_loj (texto)

nome_loj (texto)

bonus_loj (numero)

preco_loj (numero)

 

o campo bonus_loj é o valor que vai somar ao ataque ou defesa ou esquiva ao equipar o item (e subtrair ao desequipar)

 

Mochila

Tabela que controla todos os itens de todos os jogadores de todo o banco de dados... atraves do id do cadastro fica garantido que jogadores diferentes tenham o mesmo item, mas que eles não possam alterar a mochila de ninguem (e nem vê-las)

 

id_cadastro_mch (numero)

id_mch (autonumeracao)

tipo_mch (numero)

nome_mch (texto)

bonus_mch (numero)

custo_mch (numero)

 

as informações que preenchem os 4 ultimos campos vem da tabela loja

 

Monstros

Essa é a tabela com todos os atributos dos monstros que os jogadores irão encontrar pela frente... Eu fiz 49

monstros ao todo

 

Id_MN (autonumeração)

nome_MN (texto)

ataque_MN (número)

ataque_mx_MN (número)

defesa_MN (número)

defesa_mx_MN (número)

esquiva_MN (número)

pontos_vida_MN (número)

pontos_vida_mx_MN (número)

imagem_MN (texto)

pontos_MN (número)

dinheiro_MN (número)

qtd_MN (número)

chance_item_MN (número)

rola_arma_MN (número)

rola_armadura_MN (número)

rola_escudo_MN (número)

chance_gema_MN (número)

rola_gema_MN (número)

chance_arte_MN (número)

rola_arte_MN (número)

 

ela e praticamente parecida com a tabela batalha, mas aqui haverão somente poucos registros enquanto a tabela batalha é volatil (temporária). Destaco o campo Qtd_MN que, para os já familiarizados com RPG, lembra os dados para determinar a quantidade de monstros do encontro.

 

Personagens

Originalmente, projetei o jogo para que um jogador pudesse ter quantos personagens quisesse... pois RPG que você tem um grupo com 1 personagem é paia... mesmo que a melhor estratégia desse joguinho seja andar sozinho (para investir dinheiro em equipamentos e treinamento)

fica a opção para quem quiser montar um grupo... a diversão é a mesma =)

 

id_cadastro_PJ (número)

id_PJ (autonumeração)

nome_PJ (texto)

ataque_PJ (número, valor padrão 1)

ataque_mx_PJ (número, valor padrão 4)

defesa_PJ (número, valor padrão 1)

defesa_mx_PJ (número, valor padrão 4)

esquiva_PJ (número, valor padrão 1)

pontos_vida_PJ (número, valor padrão 10)

pontos_vida_mx_PJ (número, valor padrão 10)

imagem_PJ (texto)

arma_PJ (texto, valor padrão "Faca")

bonus_arma_PJ (número, valor padrão 3)

custo_arma_PJ (número, valor padrão 0)

armadura_PJ (texto, valor padrão "Camisão de Couro")

bonus_armadura_PJ (número, valor padrão 3)

custo_armadura_PJ (número, valor padrão 0)

escudo_PJ (texto, valor padrão "Broquel")

bonus_escudo_PJ (número, valor padrão 1)

custo_escudo_PJ (número, valor padrão 0)

 

Todo personagem começa com o mesmo equipamento, então, eles já ficam como valores padrão.

Também começam com ataque 1-4 defesa 1-4 pontos de vida 10/10 e esquiva 1% (as vezes eu já esquivei com 1%)

a esquiva funciona como se fosse número porque um script gera números de 1 a 100

 

Tesouro

como objetos de arte e gemas não tem atributos de ataque, defesa e esquiva eles ficam em uma tabela separado...

 

Id_tesouro (autonumeração)

tipo_tesouro (texto)

nome_tesouro (texto)

valor_tesouro (número)

 

No próximo post, vou postar as consultas e os relacionamentos

Compartilhar este post


Link para o post
Compartilhar em outros sites

após curtir o feriado, vamos lá para a parte 2.

Relacionamentos

 

Principal (1 para muitos + Integridade Referncial + propaga exclusão)

id_cadastro - Tabela Cadastro

 

Liga com

Id_cadastro PJ - Tabela Personagens

Id_cadastro_mch - Tabela Mochila

Id_cadastro_BT - Tabela Batalha

----------------------------------------------------------------------------

Principal (1 para muitos + impor integrigade referencial)

Id_loja - Tabela Loja

 

liga com

Id_categoria - Tabela Categoria

 

Nesses relacionamentos fica garantida que as informações dos personagens, da mochila (de quem pertence tal arma), e da batalha em andamento (contra quais monstros os personagens do jogador estão combatendo no momento). O Outro relacionamento é só para associar um número a categoria da arma para as consultas

------------------------------------------------------------------------------------------------------------------------------

Consultas

Com os relacionamentos definidos, vamos montar as consultas.

 

Cns_total_personagens

Consulta Tabela de Referência cruzada

 

*Retorna o número total de personagens do jogador para o script de combate reconhecer quantos personagens do jogador ainda restam vivos na batalha

 

* Tabela Personagens

id_cadastro_pj = agrupado por linha

id_cadastro_pj = agrupado por coluna

pontos_vida_pj = soma valor

total_PJ:id_pj = contar linha

pv_resta_pj:pontos_vida_pj = soma linha

------------------------------------------------------------------------------------------------------------------------------

Cns_total_batalha

Consulta Tabela de Referência cruzada

 

*Retorna o número total de monstros que os personagens do jogador enfrenta para o script de combate conhecer quantos monstros ainda restam vivos na batalha

 

* Tabela Batalha

id_cadastro_BT = agrupado por linha

id_cadastro_BT = agrupado por coluna

total_BT:id_BT = contar linha

pontos_vida_BT = soma valor

pv_resta_BT:pontos_vida_BT = soma linha

------------------------------------------------------------------------------------------------------------------------------

Cns_personagens

Consulta seleção

 

Retorna os personagens dos jogadores. O campo valor é uma medida para tentar dar scores aos personagens que possuem maior valor no jogo.

 

* Tabela Personagens

* Cns_total_personagens

ligue manualmente o id_cadastro das tabelas

 

da tabela personagens

id_cadastro_pj

id_pj

nome_pj

ataque_pj

ataque_mx_pj

defesa_pj

defesa_mx_pj

pontos_vida_pj

pontos_vida_mx_pj

imagem_pj

esquiva_pj

 

da cns_total_personagens

total_pj

pv_resta_pj

 

sem tabela de origem

valor: [ataque_PJ]+[ataque_mx_PJ]+[defesa_PJ]+[defesa_mx_PJ]+[pontos_vida_PJ]+[pontos_v

da_mx_PJ]

------------------------------------------------------------------------------------------------------------------------------

cns_batalha

Consulta Seleção

 

Retorna os monstros que os personagens dos jogadores estão enfrentando

 

* Tabela Batalha

* Cns_total_batalha

Ligue manualmente os id_cadastro_bT

 

da Tabela batalha

todos os campos

 

da cns_total_batalha

total_bt

pv_resta_bt

------------------------------------------------------------------------------------------------------------------------------

cns_loja

Consulta Seleção

 

Organiza a loja com as categorias de itens

 

* Tabela Loja

* Tabela Categoria

 

da tabela loja

categoria loj - crescente

bonus_loj - crescente

id_loj

tipo_loj

nome_loj

preco_loj

 

da tabela categoria

nenhum

 

Uma vez que a base está preparada, vamos começar com os scripts que vão alimentar os dados nas tabelas...

algumas tabelas terão que ser alimentada manualmente pelo desenvolvedor para evitar os erros de EOF e para testar também.

 

Arquivo mdb

Quem quiser o arquivo é só mandar um email para mim solicitando o arquivo mdb q eu mando, bom q economiza tempo digitando dados.

 

para: alanramires@gmail.com

assunto: Desenvolvendo um jogo em ASP

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.