Ir para conteúdo
View in the app

A better way to browse. Learn more.

priston.pro

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Podem avaliar ?

Postado

Fala, pessoal!

Estava dando uma estudada na source pra da uma desestressada e resolvi mexer na parte de conexão do jogo. Como estou tentando entender essa parte e não sou nenhum especialista em redes, além de basicamente não jogar o game a alguns anos, apenas mexer em codigo, estou tentando alguns testes na camada de socket e sincronização.

O que fiz até o momento:

  • Migrei a comunicação principal de TCP para UDP.

  • Refatorei a parte de socket.

  • Reestruturei a sincronização (sync) entre cliente e servidor.

Até agora os resultados foram bem positivos nos testes que fiz, porém tenho certeza de que existem vários cenários que ainda não testei e talvez pontos que possam ser melhorados.

Por isso queria muito a opinião de quem entende mais do assunto.

O que vocês recomendam testar, ou o que ficou bom / ruim com base no video?

Se puderem assistir ao vídeo e deixar um feedback sincero sobre o que perceberam, críticas, sugestões ou possíveis problemas que eu deva procurar, vou agradecer bastante. A ideia é aprender e deixar essa implementação o mais estável possível.

Valeu!

https://www.youtube.com/watch?v=pOgm73lx30I

OBS: Não estou focado nisso, foi apenas pra sair do foco do que estou fazendo pra mente da uma relaxada kkkkk

Featured Replies

Postado

Porque trocou de TCP pra UDP? Vc mesmo disse que não é especialista, qual o motivo dessa troca?

Postado
  • Autor
10 minutos atrás, sheen disse:

Porque trocou de TCP pra UDP? Vc mesmo disse que não é especialista, qual o motivo dessa troca?

Cara, foi mais por curiosidade e pra aprender mesmo kkkk.

Não fiz essa troca porque acho que UDP é melhor que TCP ou porque achei algum tutorial falando isso. Na verdade eu queria entender melhor como funciona essa parte da rede na source.

Como o TCP já faz muita coisa automaticamente (ordenação, retransmissão, garantia de entrega), eu queria ver como o servidor ia se comportar usando UDP e entender melhor como funciona a sincronização quando você tem mais controle sobre os pacotes.

A ideia era ver se na movimentação e na sync dava alguma diferença, principalmente na questão de latência e resposta do jogo. Não significa que eu ache que tudo deve ser UDP, até porque tem muita coisa que precisa de confiabilidade e aí o TCP faz muito sentido.

Como falei no post, não sou especialista nessa parte. Foi literalmente um teste pra sair um pouco da rotina do que eu estava fazendo e aprender mais sobre essa camada da source.

Foi justamente por isso que postei aqui. Queria ouvir de quem entende mais quais cenários eu deveria testar, se fiz alguma besteira, quais problemas podem aparecer e o que eu posso melhorar. Minha intenção é mais aprender do que sair dizendo que descobri a melhor solução.

Postado
  • Autor

@sheen Inclusive se quiser dar algum feedback / sugestão / critica fique a vontade por favor

Postado

Acredito que UDP seja desnecessário e acaba dando mais problema do que solução. Como os pacotes não tem garantia de recebimento vc tem que lidar com isso no game e fazer um predict ali por causa do pacote que perdeu e tudo mais. PT é suave em questão de pacote, acho que não precisa se preocupar com isso. Mas pra aprender a diff dos protocolos é uma boa mesmo

Tipo uma vez eu vi um doido falando que ele adicionou compressão nos pacotes antes de enviar e dps q recebe, achando que isso ia melhorar lag ou qlqr coisa do tipo kkkk (não preciso nem explicar que isso nao faz o menor sentido ne..) A brisa é nunca otimizar antes, não se otimiza sem ter certeza que precisa se não é desperdício de tempo.

A unica coisa que eu faria talvez seria trocar a "implementação manual" do TCP e usava alguma lib - tipo o ASIO que os gordinho tanto ama, mas não sabem usar 10%. Deve ter umas trocentas lib de networking pra C++ no github. Tem q ver como adaptar no PT, quando fazia o emu e mexia com isso bastante lembro que tinha que lidar com partial packtes - deve dar pra fazer isso com as lib tb.

Editado por sheen

Postado
  • Autor

Pooh bacana e valeu o feedback, vou ir atrás disso que tu disse pra entender.

Eu quase nao to focado no PT, vou mexer pra estudar / aprender quando to sem nada pra fazer ou quando to de saco cheiio do que to fazendo kkkkk, a soucer é tipo um lugar onde eu me divirto mexendo kkkk.

Mas em relação ao video chegou a ver @sheen ? eu deveria ter feito um antes / depois a diferença foi absurda, antes um personagem andava / atacava so aparecia na outra tela 2 segundos + dps, agora é insta, monstros ficavam piscando, agora crio 500 + monstro e fica de boa, sem contar que mesmo com essa quantidade de monstro dou um ataque e ele ja morre na hora antes lagava monstro nao morria, itens quando cai no chão tinha um delay de uma tela pra outra, agora ta insta cai pra ambas ao mesmo tempo. Ficou bacana.

Postado
  • Autor

Aaaah, mexi em outras coisas tmb claro, não afirmei que foi so o UDP nao kk, acho que so o UDP não traria tudo isso

Postado

Top demais meu mano tacola! vi diferença sim, parabens!

Postado
  • Autor
2 minutos atrás, datway disse:

Top demais meu mano tacola! vi diferença sim, parabens!

Obrigado meu caro !

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.

Visitante
Responder

Account

Navigation

Pesquisar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.