Guía de desarrollo de juegos Indie

aitorman

#960 Joder y tanto, era muy ruin tener que tirar the control+rueda del raton para empequeñecer o agrandar la pagina entera xD

2
aitorman

#960 Joder y tanto, era muy ruin tener que tirar the control+rueda del raton para empequeñecer o agrandar la pagina entera xD
EDIT: He subido a youtube un video de un nivel que hice en mi juego hace unos dias: http://www.youtube.com/watch?v=bZ1iF-xN2x8

Estoy pensando como implementar los niveles infinitos, y quiero pediros vuestra opinión. Van a estar divididos en chunks, pero no se si hacer que el juego se descarge todos los chunks de un nivel desde el server al cargar ese nivel y tenerlos en la memoria (no creo que sea muy buena idea, porque para niveles muy grandes tardaría mucho, y chuparia mucha memoria), o ir pidiendo los chunks al server segun te acercas a ellos (lo malo de esto es que tendría que estar mandando las modificaciones de los chunks al server cada vez que salen de la pantalla, porque sino al volver a ellos se volverian a descargar los viejos desde el server y nada habria cambiado). Vosotros que solucion pensais que es la mejor? Si se os ocurre alguna solución mejor decidla por favor

EDIT2: Fuck, en ved de editar el mensaje lo he duplicado xD

1 respuesta
EnZo

#895 Muy guapo el juego :) te picas que no veas...

Solo un apunte, no puedes poner el saltar tambien en el cursor de arriba? Es que estoy acostumbrao a saltar ahí y voy a rebentar esa tecla xD

#953 Es interesante el tema de hackear juegos. Dices: "sólo hay una forma de evitar hacks: no hacer el juego multiplayer"
Si la logica del juego está en el lado del servidor y cada accion es comprobada por este es posible evitar el hack no?
El problema viene cuando el juego es single player como el de GreyShock y el cliente tiene que enviar la puntuacion. Dificil solucion xD

4 respuestas
Jastro

#963 para la prox version, lo coloco :) me alegro que te gustara :D

elkaoD

#963 en su día programé hacks para el CS (que tiene servidor autoritativo.)

Los hacks en juegos MP tiran más a dar ventaja que a engañar al servidor. Por ejemplo: paredes transparentes. El wallhack no es más que ponerte una función entre el juego y el driver de la gráfica y activar el alpha blending para las paredes (y desactivarlo para el resto de gráficos.)

O el aimbot: buscas en el cliente la lista de "huesos" en el modelo de los enemigos y apuntas automáticamente al de la cabeza.

O hackear el sistema de sonido del juego y mostrar etiquetas en cada fuente de emisión sonido... O hackear el sistema de entidades del juego y mostrar un cuadrado con la posición exacta. Mil posibilidades.

Vale, era una exageración de que sólo un juego singleplayer es inhackeable... pero sin embargo, a bote pronto sólo se me ocurre un tipo de juego multiplayer inmune a los hacks: juegos por turnos (es decir, en los que no influya la rapidez de respuesta) y en los que toda la información que sabe el cliente EN CUALQUIER MOMENTO DE LA PARTIDA también sea conocida por el jugador (véase poker, mus, Frozen Synapse, etc.)

Incluso se podría argumentar que los bots o programas estadísticos en este tipo de juegos son hacks (véase los motores de ajedrez, que ganan fácilmente a humanos.)

5 1 respuesta
EnZo

#965 Es justamente eso lo que queria que me dijeras, que los juegos por turnos si son inhackeables :D

En cuanto a juegos shooters, no tenia ni idea de como planteaban la seguridad. Pero por lógica es imposible que calculen toda la fisica en el servidor por cada cliente, sería una carga insostenible de cpu para el server. De ahí que hayan infinitos chetos en el CS jeje.

Por suerte mi juego es por turnos y no deberia tener problemas si se hacen bien las cosas.


Ahora un poco de offtopic para ver si alguien sabe del tema. Estoy jugando mucho a un juego que se llama League of Legends, y tuve una discusion con un amigo que tambien es programador y jugamos juntos a este juego.

El tema es que este juego tiene 1.3 millones de jugadores jugando de forma simultanea (http://static.betazeta.com/www.niubie.com/up/2011/11/riotlolinfographicfull.jpg) una barbaridad. Y la discusion venia por que no sabiamos si todos esos usuarios los soporta la flota de servidores de Riot o los propios jugadores hacen de hosting de sus partidas. Las partidas son de 10 players cada una.

Yo votaba que es todo en servidores de ellos. Y mi amigo que nosotros de vez en cuando haciamos de host para los 10 players. Pero esto es muy arriesgado no? Si el host se cae o tiene el jdownloader a tope los otros tendrian mucha latencia... y se joderia la partida para todos.

Que opinais? Como pueden soportar tal cantidad de players al mismo tiempo?

4 respuestas
GreyShock

#966 Uf.. esas cosas técnicas me sobrepasan. Pero por puro instinto diría que usar jugadores de host es una locura. A no ser que tú hayas notado que en según qué partidas va bien o mal, y te lleve a pensar eso, tiene más sentido alojar el tráfico en los servers de la empresa, digo yo...

#962 Lo que dices de ir generando y guardando mapa... a no ser que estés haciendo un Terraria y sea ENORME yo lo haría todo de golpe al terminar la partida o cuando el jugador le de a "guardar". Realmente no hay tanto que manejar en el estilo de niveles que te he visto crear. ImpactJS es bastante eficiente, yo he hehco algunas pruebas de rendimiento y es difícil ralentizarlo (también depende del navegador y el PC, claro), en Brutal Collage lo puse a prueba porque tiene mucha resolución y muchísimos elementos por pantalla, y raras veces da parones en momentos extremos. Así que para enviar tochacos al server no tendría que haber problema, y al server no creo que le cueste demasiado procesar un nivel entero si lo optimizas medio bien.

#895 Y yo pido WASD! xD

Chicos, he abierto twitter de Deconstructeam para unirme al consumo de información masivo y porque a mucha gente le es mucho más cómodo seguir novedades por ese canal. No soy muy amigo de twitter, pero hay que adaptarse. Además, he dejado un regalito dentro :P

https://twitter.com/#!/Deconstructeam

2 respuestas
Soltrac

#966 El LOL no tengo ni idea, pero me juego el cuello a q 1 jugador hace de host.

Warcraft (en consecuencia DOTA) funcionaba así. Starcraft lo mismo, incluso me juego el cuello a q Diablo 3 funciona todavía de esta manera. Guild Wars 2, que no es lo mismo, va a tener los servidores alojados por ellos, pero son servidores finitos e incluso permitirán que algunos clanes paguen por ellos para tener uno a su medida.

Sobre el tema de juegos por turnos, no estoy de acuerdo en ser "inhackeables". Entiendo que no tiene sentido algunas inyecciones como las q comentaba elkaoD en el ejemplo del CS, pero todo cliente es susceptible de ser modificable. Otra cosa es que el servidor sea capaz de detectar los hackeos, que ya es otro tema.

Os pongo un ejemplo, el poker online. Es imposible saber las cartas del contrario porque tu cliente no las recibe hasta el final de la mano. Pero eso no significa que no se puedan hacer cosas ilegales (bots que jueguen solos). Tú puedes inyectar en el cliente para hacer determinadas cosas, pero ya es cosa del cliente de póker poder detectarlas.

Por poneros un ejemplo, en Pokerstars son capaces hasta de tomar vuestro ratón y tomar el control de vuestro PC cuando detectan algo ilegal para q veais lo "troyano" que puede llegar a ser un cliente XDD

2 respuestas
Isotoperd

#963 En tema de servidores/clientes todavía soy un 0 a la izquierda, de hecho en la anterior de Coders on Fire salí con el rabo entre las piernas, pero creo que las partidas del LoL las hostea un usuario, seria una puta locura para Riot, piensa que empezó con LoL como compañía independiente con 4 duros.

#967 Me corono como tu primer seguidor, ese concept es rollo steampunk, ¡dime que si!

A propósito, quería practicar un poco de arte generativo y hoy he empezado un proyecto de videojuego musical para Android, cuando pueda y este mas completo subiré un vídeo, de momento en media hora he hecho esto http://i.imgur.com/vL0wN.png , parto desde 0, siempre me ha flipado el arte generativo pero nunca me he atrevido a meterme.

EDIT: Visto asi parece algo hecho por paint, pero todo lo que sale ahi es de generacion aleatoria y esta en cosntante movimiento, el circulo sin relleno y con borde de color rosa simboliza el dedo.

2 respuestas
GreyShock

#969 Generar cosas al vuelo FTW, y si es músical, más molón todavía. Queremos cosas en movimiento YA! xD

Y sí, es Steampunk y el prota es un hacker con un super PC a vapor que funciona con vinilos xD

EDIT: Os dejo un enlace a un artículo que analiza en profundidad todas las físicas de los primeros Sonic. Es un tochaco, pero está muy bien desarrollado.

http://info.sonicretro.org/Sonic_Physics_Guide

Meleagant

#967 Following!

1
EnZo

#968 No entiendo como pueden arriesgar a poner la partida en el pc de un cliente. En el starcraft o warcraft tiene mas sentido, es versus, y si el host se cae ha perdido la partida. Pero en una partida de 10 players si se cae el user host los otros siguen funcionando siempre. Como coño hacen eso entonces?

En cuanto al ejemplo de pstars yo eso no lo considero un hackeo, el hecho de construir un bot que juegue por tí. Para mi un hackeo es informarle al servidor de que tienes dos ases en vez de un 3 7.

2 respuestas
Soltrac

#972 En el Warcraft/Starcraft si cae un jugador el host pasa automáticamente a otro, y aquí será lo mismo. Piensa que también son juegos iguales de competitivos y q en estos juegos también hay partidas de 8 jugadores, etc. Es más, las partidas de XBOX Live de Modern Warfare 1 eran hosteadas por los clientes y si se caía el servidor cambiaba el host al siguiente mejor.

Informarle a un servidor que tienes 2 ases es imposible porque el servidor al repartirte conoce tus cartas.

1 respuesta
Byr0n

#966 #972 Tienes tu razón ( o eso creo ahora :P ), LoL utilizan sus propios servers para hospedar las partidas, el truco para que esto sea mantenible es que realmente existe una cuota mensual por parte de los usuarios ( el dinero que pagan mes a mes por comprar capulladas ).

1 respuesta
EnZo

#973 Y en el momento de caerse uno los usuarios no experimentan un super lagazo mientras se hace todo el cambio?

Por eso estaba deacuerdo con elkaoD en que es imposible hackear un juego por turnos :)
Otra cosa es hacer bots que decidan por tí.

#974 Pues soltrac dice lo contrario. Yo ya no se que pensar... Sigo en mis trece de que es muy arriesgado dejar que hosteen los users.

1 respuesta
Byr0n

Como ya ha dicho Soltrac eso se viene haciendo en todos los juegos que no tienen ingresos constantes, como Age2, Aom, Starcraft etc... y en dichos juegos tuvieron/tienen un gran componente competitivo y no se nota el cambio de host ( en Aoc si se notaba ya que paraba la game para esperar a ver si respondía el host antes de cambiar a otro usuario ).

Fijate si es arriesgado que hosteé un usuario que todos los grandes juegos que no tienen subscripciones lo usan, y algunos de ellos han sido o son perlas en el gaming.
Vamos, que existen procedimientos para que la experiencia de juego nunca se vea perjudicada con el cambio de Host, sino los mas grandes no habrían usado este modelo.

1 respuesta
Scottie

Por si queréis mas música para programar:

http://musicforprogramming.net/

aunque a mi solo me llegó a gustar el primer episodio... :s

m3l0

el lol lo hospedan ellos en sus servers, que cuando se les peta, nos va mal a todos, y en todas las partidas.

litoss

El finde pasado empece un proyecto para platafomas moviles. De momento asente un poco las bases, si bien queda decir que el objetivo no es el que se muestra en esta prueba.
http://litosrocco.byethost7.com/Juegos2/BS.html

5 respuestas
r2d2rigo

Un tipo ha estado hablando con los encargados de Steam en Valve y da estos consejos para los que quieren probar suerte a publicar ahi:

http://forums.create.msdn.com/forums/p/104799/619098.aspx#619098

1
Isotoperd

#979 Queda claro que es una prueba, pero es jodido hasta decir basta xDD
¿El modelo de la nave te lo has currado tu o es un prefab?

1 respuesta
litoss

#981 random del señor google

Meleagant

#979

Me he bajado el primer MP3 y está bastante bien, tranquilito, como a mi me gusta para cuando estoy haciendo cosillas.

Normalmente me pongo algún playlist de Post-Rock, pero esto está muy bien también.

1 respuesta
GreyShock

#979 presiona espacio para...

¿¡SPRINTAR!?

Estamos locos o qué!?!?! Pon un botón de frenar xDDD

#983 A mí me mola algo calmado pero intenso, rollo The Glitch Mob.

3 3 respuestas
Jastro

#963 ya tienes la flecha hacia arriba :P
#984 la wsad me da pereza :O jajajajaja

PD: Opino igual el juego de la nave perdi 50 intentos muriendo como un loco, como para encima tener un boton esprintar xDDDD

2 respuestas
litoss

#984 Como ya he dicho esto era una prueba con lo que puede que en este caso no lo necesites pero en otro momento si xD Yo no lo veo tan difícil de pasar xD

1 respuesta
Meleagant

#984 Jajajaja ya te digo. Sprint = Instant Kill.

Me ha costado 139 intentos, joder.

GreyShock

#986 Estás seguro de que funciona igual en todos los navegadores? Porque yo tengo que utilizar todo lo que tengo como ser humano al 150% para cruzar los dos primeros obstáculos xD

#985 Qué pereza ni que ocho cuartos xD Pero si ya tienes la lógica hecha, sólo tienes que bindear WAD!

ig.input.bind( ig.KEY.A , 'left');
ig.input.bind( ig.KEY.D , 'right');
 ig.input.bind( ig.KEY.W , 'salto');
ig.input.bind( ig.KEY.CTRL , 'disparo');

Piensa en tu público man!

#989 ... 222 intentos, and i win FUCKING NOTHING xD Menudo estrés en el cuerpo.

1 2 respuestas
litoss

#988 A mi con chrome y firefox me van igual xD

Si os digo que le baje la velocidad antes de subirlo os motivareis más xD

2 respuestas
Jastro

#988 ya lo tienes, creo que eres la unica persona del mundo que juega juegos de plataformas con la wasd :P

#989 el juego esta guapo, pero soy demasiado paco, le noto que gira rapidisimo, me la pasaba mas tiempo muerto contra el muro derecho, que los demas jajajaja, aun asi mola mucho

Estoy atascado, queria hacer un bicho volador, con el gravityFactor, pero no detecta colisiones, si le doy velocidad a la pos, al llegar al muro lo atraviesa aunque haya colision, por casualidad nadie sabe como va verdad? xD

1
Tema cerrado