Ir ao conteúdo
  • Cadastre-se

Outro como criar livros Proceduralmente?


Posts recomendados

Estou desenvolvendo um jogo de RPG Full-procedural, desde o inicio do ano, quando consigo. Estou trabalhando em criar o sistema lógico do jogo, o jogo se passa em mundo repleto de vidas, com dezenas de milhares de plantas e animais, florestas cidades impérios, tem possibilidade de criar relacionamentos além de outras coisas, como um sistema procedural de criação de armas.

 

Estou preso a algumas semanas em como vou criar o sistema cultural do jogo, que abrange historias de impérios e reinados, nomes, civilizações, Leis e normas, livros entre outros. Possivelmente essa é a parte mais complexa e vou ficar até o segundo semestre do ano que vem programando ela...

 

Comecei criando os livros, cada livro tem algumas características únicas ou compartilhadas:

 

titulo

escritor

volume

quantidade de paginas

formato e tamanho

cor

fonte

capa

edição

data de publicação

estado de conservação

informações falsas ou não

tema

gêneros.

 

todas essa variáveis são utilizadas diversas vezes por minuto, considerando que só de espadas até o presente momento são contabilizadas em +/- 6x10¹² e pretendo ter pelo menos 600 000 variações de plantas, esses números parecem absurdos, mas são bem fácil de alcançar na real, os livros tem que constar informações de pelo menos 3/5 das plantas existentes. tais como gênero, família, espécie efeitos entre outros....

 

para fazer isso pensei em criar um banco de dados proceduralmente (pensando que as espécies se modificam toda a vez que você cria um novo mapa), esse banco de dados é baseado em outro banco de dados que já vem "pré-escrito" dentro do jogo, ele consta com informações básicas como formato e tipos de folha, cores, entre outras informações que não podem simplesmente serem alterados aleatoriamente para não causar problemas. esse banco de dados vai ser criado dentro de "User:\\AppData\Roaming\Godot\app_userdata\Issabelle\save\game\0\world\culture\books" ou algo parecido, esse banco de dados são os próprios livros,. o nome deles são um ID aleatório de até 8 digitos (possibilitando até 100 milhões de livros), dentro desse arquivo, possue o formato de digitação (localizado naquele banco de dados pré-existente, que diz como o livro é escrito), em qual lingua ele é escrito (por padrão inglês, mas com fontes ilegiveis tipo runas). nome do escrito/a, data de publicação e as outras informações que informei na lista acima. Ao entrar em uma biblioteca um código carrega algumas centenas desses dados e empilha eles em uma array dentro de um arquivo temporário, assim economizando espaço na ram, mas necessitando de ao menos um SSD para rodar bem, ao sair da biblioteca, o jogo cria um novo arquivo agora fixo e não temporário, que salva quais livros estão na biblioteca. e deleta o arquivo temporário

 

então para criar os livros o computador faz o seguinte

 

 

 

abre um banco de dados interno  /  cria um arquivo temporário   ->   salva as informações encontradas juntamente com informações do mapa gerado (plantas armas civilizações etc)   ->   fecha o arquivo temporário e salva as informações prontas em uma pasta permanente   ->   cria os livros e salva cada um deles em arquivos .txt diferentes   ->   cria um novo arquivo temporario e envia para o sistema de criação de mapa (a partir daqui acontece uma organização de informações e le quantos arquivos existem no jogo)

 

 

 

será que tem alguma forma melhor de otimizar o código ao invés de criar arquivos temporários?

 

tem outra forma mais inteligente de criar os livros?

 

qualquer diga fale comigo por favor

<>

  • Curtir 4
Link para o comentário
Compartilhar em outros sites

18 minutos atrás, J. Flavio Melo disse:

Qual o nome do projeto, amigo?

Parece muito muito promissor, espero que dê certo.

parei de fazer publicações dele a um bom tempo, atualmente estou chamando de Issabelle: duque das trevas, mas possivelmente o nome ira mudar

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Swalls sim, bem parecido com isso, resolvi o problema do jogo fechando, mas agora tenho outro. Ele demora muito pra criar todos os arquivos, coisa de 5-15min, dependendo do mapa.

Queria saber se tem alguma forma de criar mais de um arquivo de cada vez, atualmente, para não demorar tanto para o jogo "carregar", eu fiz com que a partir do momento em que tenha criado 80% dos arquivos necessários (plantas, nomes e o próprio mapa) e 30% dos arquivos procedurais não tão necessários (livros, sistema cultural, vozes, falas entre outros), já seja possível começar a jogar... mas se desse para criar dois ou três arquivos ao mesmo tempo, já não seria necessário carregar metade dos arquivos pra poder jogar, já que tempo não seria mais uma preocupação

3 horas atrás, Swalls disse:

acho que seu problema seria gerenciamento de ram e "swap"?

pode ser que seja isso, até achei estranho que o jogo utilize tão pouco o poder do hardware pouco mais de 500mb de ram, 2,4mb/s do disco e menos de 5% do cpu...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

6 horas atrás, Swalls disse:

@Pedro Vinicius G. C. está jogando os arquivos todos no disco e chamando só quando eles são usados?

sim, como não é muito frequente o uso destes arquivos, a velocidade de leitura/escrita do hdd não estão interferindo muito no desempenho... No jogo, esses arquivos são acessados algumas vezes só pra criar novos arquivos ou reorganizar informações

Link para o comentário
Compartilhar em outros sites

@Pedro Vinicius G. C. não entendo muito de criação de jogos, mas ao criar programas pesados o correto é manter os "comuns" carregados na ram durante a inicialização do software e em disco apenas ponteiros(digo ponteiros, mas pode ser lista, json, set, dicionario, um objeto ou arquivo) que indicam como os comuns variam e interagem entre si e usam isso para renderizar/criar o objeto/mapa/estrutura.

você já pode ter feito isso e eu estou "falando águas".

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!