Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crear un cliente headless para testear escalabilidad del servidor y performance del cliente (self-assigned!) #28

Closed
ominousg opened this issue Jul 28, 2022 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@ominousg
Copy link
Owner

ominousg commented Jul 28, 2022

Crear un cliente headless para testear escalabilidad del servidor y performance del cliente (self-assigned!)

Este issue es self-assigned (como varios en este repo), es decir no hace falta que alguien haga un pull request con este sistema ya que lo voy a crear yo. El propósito es más que nada documentar la idea/informar de su existencia y avances. Va a funcionar con el dakara-server y el server convencional (13.3) en VB6.

Headless client es un cliente cuyas únicas funcionalidades implementadas es conectarse al servidor y enviar paquetes simulando la actividad un usuario real: moverse, chatear, cambiar de mapa, atacar, etc. Como tiene renderización in-game limitada (o algunas veces completamente eliminada) es muy liviano y puede tener varias instancias correndo en un VPS muy básico (o tu PC).

Con esta combinación del cliente headless + tests automatizados vas a poder:

  1. Comprobar el efecto que tienen en el servidor -tanto ancho de banda como consumo de RAM- las nuevas features que implementás. Ver cuantos usuarios se podría bancar tu servidor.

  2. Crear tus propios tests automatizados para chequear que no se haya roto una feature ya existente cuando agregás una nueva. E2E testing.

  3. Testear la performance del cliente simulando un escenario muy cercano a la realidad. Si bien las instancias del tal headless client no renderizan nada desde su punto de vista, vos sí vas a poder ver esos bots desde tu cliente completo convencional, como si fuesen usuarios reales. Eso te va a permitir determinar que specs necesita una PC para poder bancarse -por ejemplo- renderizar los cambios constantes en la iluminación de las superficies con normal maps (deferred shading) que ocurren cuando 100 usuarios pasan correteando + tirando hechizos (capaz con partículas) y etc. Como esto pero 50/100 luces iluminando desde diferentes direcciones e intensidades+distancias en vez de solamente la luz de mi mouse y la fogata. O testear cualquier otra feature que hayas implementado en el cliente, y a partir de ese resultado decidir si optimizar o no.

Todo esto para poder tener una imagen aproximada de como funcionaría tu proyecto en el mundo real, sería una experiencia fea darte cuenta que realmente no tenías el cliente/servidor preparado cuando empezás a tener +200 usuarios online.
Bueno... el Domingo 7 de Agosto comento por acá los avances que hubo.

@ominousg
Copy link
Owner Author

ominousg commented Aug 7, 2022

Bueno... el Domingo 7 de Agosto comento por acá los avances que hubo.

Videomuestra: https://youtu.be/a_NDHi3BxlU 10 bots paseando por Nix. El próximo paso sería agregar poteo + chat y el resto del ecosistema para que sea lo más similar a un escenario de mundo real... específicamente agregar taladores+pescadores+bots dueleando, etc. Se usó el dakara-server alojado en una instancia t2.micro de AWS EC2, Ubuntu.

@ominousg
Copy link
Owner Author

ominousg commented Dec 9, 2022

@ominousg ominousg closed this as completed Dec 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant