domingo, 30 de agosto de 2015

Hardcore Devel #29 - Minimalist Arena #3

E estamos de volta com mais um episódio do projeto Minimalist Arena. O projeto que tá mais parado que tartaruga manca.


Esse é um screenshot da máquina virtual onde o projeto é desenvolvido.

Dá pra perceber uma porção de coisas aí, mas vamos esclarecer algumas pequenas peculiaridades que antes não foram esclarecidas.

Eu desenvolvo em uma máquina virtual com o sistema FreeBSD instalado. Um professor uma vez me disse que era fã desse sistema, e eu resolvi experimentar porque eu sou muito fã desse professor. O nome dele? Oswaldo Vernet.

Não sei se dá pra notar mas não tem IDE nisso aí. A ferramenta de edição de texto pra poder fazer código é um simples gedit. Quem é mais hardcore usa um "vi" mesmo, mas não é o meu caso, eu sou um cara mais simples. Da pra ver uns pedaços do compilador sendo chamado pra compilar alguma coisa e talz. e dá pra vez ali um pouco de saída falando que o cliente está conectado. Sim, eu to conectado no loopback.

Mas olhando pra imagem já da pra ter uma noção da coisa. O quadrado azul é só um obstáculo e eu estou controlando apenas o vermelho. ele consegue se mexer, e atacar e tudo mais, mas ainda tem mais coisa pra ser feita.

O desafio atual agora é escrever nomes nas telas. E isso é um desafio pois toda a idéia inicial não incluía isso e eu achei necessário pras pessoas poderem se sacanear minimamente. Ah, sim, o jogo não tem sistema de chat, apesar do nosso finado Ragnarok já ter me ensinado que chats são primordiais, e que eu já fiz alguns e eles não são tão trabalhosos, isso pode ser meio catastrófico no meio de um jogo, especialmente nesse cujo objetivo é ter ação constante.

Então, para escrever os nomes eu tenho alguns problemas, por exemplo é o fato da quantidade de caracteres ser muito variada. E para isso existem duas soluções.
  • Limitar a quantidade de caracteres
  • Informar a quantidade antes do envio da string
Pra quem não tá acostumado com termos de computação, string é uma cadeia de caracteres. Não é uma corda de violão, nem nada do tipo.

Isso foi um problema. O segundo é a porta por onde esses dados vão sair. A coisa correta é você utilizar apenas uma porta, que é a mesma porta pela qual entram e saem os dados do jogo. Você não ta entendendo esse lance de porta? Ok. A gente explica.

Os endereços das máquinas são conhecidos como IP. E são bastante conhecidos, mas quando você manda uma mensagem para um servidor você escolhe uma porta, uma porta entre todas as 65536 outras portas que os sistemas geralmente disponibilizam, e é justamente a escolha dessa porta que vai fazer a diferença no atendimento que você recebe.

Isso porque a porta é o que identifica o processo naquela máquina. Em outras palavras, dois processos não podem utilizar a mesma porta ao mesmo tempo. Você não nota isso no seu navegador porque ele fica o tempo todo abrindo e fechando porta. Você só não vê.

Daí vem o fato que os processos podem usar mais de uma porta ao mesmo tempo mas isso é ruim por duas razões. Uma porta pode ficar ociosa e isso significa desperdício de recurso, e isso é uma espécie de contra-engenharia. Você está indo contra o padrão da informática e isso não é necessariamente bom nem ruim. Só não é recomendado.

Mas a nossa opção foi usar a mesma porta e limitando a quantidade de caracteres. Isso porque nós não queremos nomes inteiros tomando a tela de jogo, e de quebra podemos mandar a mensagem em um golpe só ao invés de precisarmos de duas mensagens, sendo a primeira só para informar o tamanho da segunda.

Bom, estamos trabalhando nisso, tanto é que você não vê nenhum nome na tela de jogo por enquanto.

Abraços!

Nenhum comentário:

Postar um comentário