Ver la versión completa : Diario de desarrollo de pakoito - prueba mi juego
Buenas, he puesto ya en otro lado que ando haciendo un proyectillo propio por echar tiempo, y tengo ya toda la tecnología a punto (libgdx + Lua, para los curiosos) pero me falta una idea concreta que implementar. Probando probando con papel, boli e imaginación, el otro día llegué a un juego (minijuego) que me gustaría poder probar con alguien para saber si es divertido, porque jugando yo sólo no se si funcionaría.
El caso es que al ser prototipo lo intentaríamos jugar en una pizarra online, con herramientas de dibujo, y un poco de paciencia. Ya lo tengo todo buscado y listo, solo necesito a alguien que pueda hacer un hueco para mi.
El juego en si es de estrategia por turnos sobre hexágonos. Aún no tiene complejidad ninguna, ni sistema de hechizos, ni stats ni nada. Imaginad algo como Frozen Synapse (http://www.frozensynapse.com/) pero sin terminar, pre-alpha 0.000001 nombre clave "soloexisteenmilibreta"
MWarrior
08/05/2013, 21:55
bujfff yo me ofrecería voluntario, aunque soy difícil de convencer de que algo es divertido, a todo le pongo pegas XD
bujfff yo me ofrecería voluntario, aunque soy difícil de convencer de que algo es divertido, a todo le pongo pegas XD
Eso no me importa demasiado. Tienes algun software de voz instalado, Mumble, Teamspeak, Steam? Si no lo hacemos por chat.
Molondro
08/05/2013, 22:00
Podemos mirarlo, mañana a partir de las 9 dime algo por steam, cuánto calculas que puede durar una partida?
Podemos mirarlo, mañana a partir de las 9 dime algo por steam, cuánto calculas que puede durar una partida?
Diría que no más de 15 minutos, pero no he podido terminar ninguna y es lo que querría probar entre muchas otras cosas. Es como jugar a las damas contra mi mismo, no tengo la destreza mental para hacerlo lol
Molondro
08/05/2013, 22:25
Pues así lo hacemos
Necesito instalarme alguna aplicación?
Pues así lo hacemos
Necesito instalarme alguna aplicación?
Nope, por twiddla (http://www.twiddla.com/). Si quieres que hagamos también por voz para explicar mejor, skype/mumble/ts, conozco servidores públicos para todos.
¿Tanto se tardaría en realizar un prototipo en papel y probarlo con tus colegas en una tarde? La de veces que lo habré hecho yo :lol:
Eso sí, si funciona jugando solo, o sobre el prototipo sin ninguna floritura (gráficos, sonidos, efectos...), seguro que funciona en el ordenador ;)
¿Tanto se tardaría en realizar un prototipo en papel y probarlo con tus colegas en una tarde? La de veces que lo habré hecho yo :lol:
No tengo colegas con los que jugar, están repartidos por toda europa y los de aquí no le pegan a las frikadas...llevo meses para convencerles de una tarde de gaming, sin éxito.
Eso sí, si funciona jugando solo, o sobre el prototipo sin ninguna floritura (gráficos, sonidos, efectos...), seguro que funciona en el ordenador ;) La idea es ver qué falla, mejorarlo, avanzar, y llegar a un punto en que si que se pueda llevar a PC porque sin juego no tengo arquitectura que diseñar. Poner cosas en pantalla moviéndose es una tarde, hacer clases genéricas que tengan sentido para un ruleset que admita ampliaciones es otra cosa. Puede jugarse con una pizarra online, asi es como he practicado yo. Te pongo una captura para que te asustes: click (http://i.imgur.com/i5RL03X.png).
Reglas rápidas: cada jugador sale con 3 "magos" donde él quiera en la columna de su lado. Los jugadores tienen que anunciar sus 5 siguientes turnos todos a la vez, y se resuelven un turno de cada vez de manera simultánea. Las acciones disponibles son moverse y disparar una bola de fuego. Las bolas de fuego avanzan automáticamente en la dirección diagonal o en línea que han sido lanzadas, al principio de cada turno antes de las acciones de los jugadores. Si tocan a un "mago" se le elimina y si se salen del tablero se retiran del juego.
En la imagen la ficha amarilla (verde?) más a la izquierda está atascada en una lluvia de bolas de fuego de los turnos anteriores, los siguientes 3 movimientos son críticos porque puede morir, acabar con una ficha azul, o escapar dejando una amenaza a una ficha azul. Pero tiene que perder el primer movimiento para que la ficha verde (amarilla?) del medio sobreviva cuando las bolas de fuego rosas avancen. Sin otro jugador humano que tome la decisión de lo que hagan las fichas azules no puedo seguir con esta partida, por ejemplo.
También tengo que decidir qué ocurre cuando dos fichas se crucen en la misma casilla, tengo varias soluciones pero necesito verlas en juego y comentarlas con alguien para decidir. Y una vez una o dos fichas hayan sido eliminadas, si el juego sigue siendo viable o es como el final de una partida de ajedrez con un rey "ahogado". Si 3 o 4 fichas por lado funcionan mejor, si el tablero de 11x7 es mejor o peor que uno de 10x6...hay muchas cosas que quiero iterar antes de añadir más hechizos y acciones, y para ello necesito a alguien.
Y sobre todo, si jugar es divertido.
IronArthur
09/05/2013, 08:45
A mi me interesa más la parte técnica que nunca le termino de meter mano a libgdx, has puesto en algun sitio como vas a montarlo? siempre he tenido curiosidad de como se bindean los scripts de lua en tiempo de ejecución.
Salu2
Molondro
09/05/2013, 09:39
pakorl!
A mi me interesa más la parte técnica que nunca le termino de meter mano a libgdx, has puesto en algun sitio como vas a montarlo? siempre he tenido curiosidad de como se bindean los scripts de lua en tiempo de ejecución.
Salu2
De libgdx hay un programilla recomendado en la misma web que hace el setup por ti. Necesita el zip original, asi que según tus necesidades ya usa la última estable o la nightly build. Los HexMaps por ejemplo sólo llevan disponibles unas semanas. Respecto al código fuente y los ejemplos es un poco coñazo porque el proyecto no está 100% perfectamente montado, asi que tienes que arreglar un par de referencias a mano, y luego copiar-pegar las librerías compiladas para que funcione en Android, porque no vienen incluídas.
Para Lua no lo he acabado de hacer aun pero estoy con este tutorial: https://code.google.com/p/libgdx-users/wiki/LuaTutorial
IronArthur
09/05/2013, 15:22
Lo que más me interesaba es lo de LUA gracias.
Sobre hexmaps siempre tienes la semi biblia http://www.redblobgames.com/grids/hexagons/
Salu2
Estoy enpifostiado en lo de lua. El binding de Android parece que chusca, pero por algún motivo no carga el script correctamente. El bindind de PC lo estoy intentando recompilar porque es un pifostio de la ostia y el repositorio tiene 8 años de antigüedad, y la web dice "bajate ahi los de windows precompilados" cuando esos ya ni existen lol
-----Actualizado-----
Update: ya he conseguido los precompilados, pero tengo problemas serios linkándolos, no hago más que tener unsatisfiedlinkederror apuntando directamente a esa librería.
Update 2: Ya he arreglado el problema con Android, NP++ me estaba creando ficheros "sucios" y al parsearlos había problemas. En principio podría empezar a desarrollar ya, sólo para Android, y luego seguir en PC cuando arregle el problema con la otra librería.
En esta web (http://skillsmatter.com/podcast/home/london-lua-user-group-androlua) hay un taller de una hora que aun no he visto, pero mañana lo hago.
Bueno, si lo tienes que hacer solo, y no sabes qué opción elegir en un determinado momento, tira un dado y que él elija :D
No, pero tienes razón, hay que probar eso con otra persona. Son bastantes reglas y te va a costar definirlas, sobre todo, tiempo. En estos casos vete a por lo sencillo, monta una beta y pruébalo con quien puedas. Yo tengo juegos de tablero que sólo he podido probar una vez, y de ahí saqué unas tres o cuatro reglas nuevas para corregir los fallos, aunque claro, no era un juego demasiado complejo.
El tuyo tiene buena pinta, parece que serán partidas de corta o media duración, pero bastante intensas con tantos elementos dando vueltas por ahí. No sé si tu idea es hacerlo lo más simple posible, pero quizás podrías meter algo más de variedad, por ejemplo, con hechizos de disparo múltiple pero que te dejan un par de turnos sin disparar (o penalizando el movimiento), o teniendo distintos tipos de magos (ya sea para elegir o no). Aumentaría el valor estratégico del juego sin modificar demasiado la estructura actual (que eso se puede cambiar hasta el infinito, pero no queremos llegar a hacer un Fire Emblem o similar :D).
Yo diseño juegos de mesa y te digo que uses papel y boli y juegues con tus amigos, es lo que hago yo :)
Luego te darás cuenta, si tus amigos te piden jugar y jugar preguntándote ¿Has traído tal juego? es que el juego merece la pena, ánimo.
He estado con Molondro esta mañana y hemos encontrado ya un par de agujeros que se pueden solucionar añadiendo normas. Luego, el mayor problema es llevar control de las bolas de fuego, porque cuando se juntan 6 o 7 cuesta saber cuál iba dónde o cómo, asi que habría que automatizarlo. Con un par de cambios en las fichas debería mejorar en el prototipo.
Este juego de intercambio de bolazos de fuego me salió cuando estaba probando para hacer el sistema completo con más hechizos y demás, pero vi que sólo con bolas de fuego se podía crear un juego basado en áreas de control y cálculo de turnos. Si funciona tendré ya las pautas para hacer la estructura del juego, y meter las bolas de fuego en sus respectivos scripts :)
Con el tiempo la idea es hacer lo que dije, algo tipo Frozen Synapse pero con """la variedad de hechizos de un juego de cartas""", y tener varios personajes/clases predefinidos con su spellset, o alomejor permitir al jugador hacerse sus personajes con un sistema de puntos. Demasiado pronto, de momento sólo quiero ver bolas de fuego volando por la pantalla :)
Lo que más me interesaba es lo de LUA gracias.
IronArthur Ya conseguí hacerlo funcionar. El problema era que Android carga la librería en función del nombre del módulo y Windows la carga en función del nombre del archivo. La librería android es libluajava.so y la de windows es simplemente luajava.dll, pero nadie le había puesto el nombre bien a la de windows hasta ahora. Por lo demás, project->properties->libraries->JRE environment->native location y ahí pones la carpeta donde tengas las librerías. Las de android van en una subcarpeta lib/armeabi/ y lib/armeabi-v7a/ con el resto de las librerías nativas de libgdx.
Si quieres sentarte un dia de estos y te explico el setup entero, ya sabes dónde estoy.
juegues con tus amigosConozco a pocos con ese perfil aquí. Si quedo con la gente es para salir. Alomejor pregunto, pero es más fiable la gente del foro.
IronArthur
10/05/2013, 08:53
Bien bien, ya contarás que tal va y sobre todo que ventajas tiene hacerlo en LUA respecto a codigo fuente normal , en este caso java. Ya se que la ventaja principal es no necesitar recompilar para cambiar comportamientos y tal, pero vamos yo seguro que tardo menos en cambiar codigo java y recompilar que hacer algo en LUA.
Salu2
PD: se me lleva olvidando desde que abrirte el hilo pegarte este enlace de hex+libgdx con artemis (entities) http://es.reddit.com/r/gamedev/comments/1du6v2/libgdx_artemis_entity_system_tutorial_series_for/
Os-tias que pedazo de enlace, gracias mil :D El repositorio con el proyecto configurado, de momento no hay una sola línea de código mía asi que es perfectamente reutilizable: https://github.com/pakoito/WartricksProject
sobre todo que ventajas tiene hacerlo en LUA respecto a codigo fuente normal Los scripts vienen bien en caso de expandir el código. El programa compilado es sólo un "ejecutor" genérico (loop, acciones y toolset) y los scripts son los que le dan la funcionalidad. Menús, personajes, niveles, todo lo que sea específico al juego viene descrito en los scripts. Si quieres ampliar el juego con más niveles, más personajes, más reglas, más normas...sólo tienes que añadir los scripts en la carpeta correspondiente y ellos ya funcionan solos. Y esto sirve también si quieres hacerlos descargables, por ejemplo, en vez de parchear la instalación.
Eso y que necesitaba aprender a embeberlos, escribirlos y ejecutarlos xD
-----Actualizado-----
Viendo tu tutorial creo que la mayoría de los components iran en scripts, y los systems en código. Aun estoy explorando xD
IronArthur
10/05/2013, 14:31
Pakito mira que usar un so de 32bits todavía...... me peta el eclipse pq el lua esta compilado para 32bits :lol2:
Salu2
Pakito mira que usar un so de 32bits todavía...... me peta el eclipse pq el lua esta compilado para 32bits :lol2:
Salu2
Peor, era el Java el que estaba a 64b. Tenía la 1.7 instalada cuando lo normal es trabajar con la 1.6 32b.
IronArthur
10/05/2013, 14:48
Peor, era el Java el que estaba a 64b. Tenía la 1.7 instalada cuando lo normal es trabajar con la 1.6 32b.
Yo tb tengo la 1.7, pero tengo excusa que es el ordenador del curro y no uso el java para nada :D
Salu2
Yo tb tengo la 1.7, pero tengo excusa que es el ordenador del curro y no uso el java para nada :D
Salu2
Puedes tener un sdk distinto en Eclipse, por ejemplo, ese es el que tenía configurado, pero cuando intentaba ejecutarlo desde consola era cuando petaba. Cambié el ejecutable por el de JAVA_HOME y al momento chuscó.
Oye, estoy viendo el tutorial ese y es una **** maravilla. Todo lo que esperaba de otros, sólo que en vez de explicar cómo hacer un juego de naves o de plataformas me dan lo que busco. Lo de Entity y los Systems es justo lo que tenía yo pensado implementar (después de informarme cómo hacerlo) y Artemis me va a ahorrar semanas de trabajo.
MWarrior
10/05/2013, 17:27
pakoito Al final tengo sobrecarga de trabajo en el curro tio, y no te pude jugar sorry, no te avise antes porque tienes la bandeja de entradas de mensajes privados llena, borra unos cuantos
He estado con Molondro esta mañana y hemos encontrado ya un par de agujeros que se pueden solucionar añadiendo normas. Luego, el mayor problema es llevar control de las bolas de fuego, porque cuando se juntan 6 o 7 cuesta saber cuál iba dónde o cómo, asi que habría que automatizarlo. Con un par de cambios en las fichas debería mejorar en el prototipo.
Yo me enfrenté a ese problema cuando empecé a diseñar "Mario Kart Battle" como juego de mesa, concretamente con las conchas verdes. Mi solución es que cada personaje tiene un color asociado, y los objetos arrojables, en este caso, las conchas, son piezas con base intercambiable, de forma que se puede asociar cada concha a cada jugador. Obviamente, cada base tiene una flecha que marca su dirección. Todas las conchas de un color se deben mover en el turno del jugador con ese color (aun no sé si antes o después). Una solución fácil.
No, aun no he hecho el prototipo de papel, estoy en ello ^^U.
Puedes tener un sdk distinto en Eclipse, por ejemplo, ese es el que tenía configurado, pero cuando intentaba ejecutarlo desde consola era cuando petaba. Cambié el ejecutable por el de JAVA_HOME y al momento chuscó.
De hecho, cada proyecto en Eclipse se puede configurar para que use un JDK distinto. Sólo necesitas tener los JDK en la carpeta JRE, ni siquiera tienen que estar instalados (y dados los problemas de seguridad del Java6, es casi mejor, instalas el 7 y tienes el 6 sin instalar para hacer programas compatibles con más equipos).
No sabía que aquí hubiera mas gente que le gustara crear juegos de mesa jajaja.
Artemis ya chusca en Android. Siguiente problema a solucionar: el **** path a los assets.
IronArthur
11/05/2013, 09:44
Puedes tener un sdk distinto en Eclipse, por ejemplo, ese es el que tenía configurado, pero cuando intentaba ejecutarlo desde consola era cuando petaba. Cambié el ejecutable por el de JAVA_HOME y al momento chuscó.
Oye, estoy viendo el tutorial ese y es una **** maravilla. Todo lo que esperaba de otros, sólo que en vez de explicar cómo hacer un juego de naves o de plataformas me dan lo que busco. Lo de Entity y los Systems es justo lo que tenía yo pensado implementar (después de informarme cómo hacerlo) y Artemis me va a ahorrar semanas de trabajo.
Los entities son lo mejor que se ha creado para el desarrollo de juegos (opinion personal), pq pasas de crear clases para todo a crear comportamientos y asignarselos a objetos.
Es por eso que me está gustando CraftyJS que usa para todo entities (es un engine javascript/html5)
Salu2
No sabía que aquí hubiera mas gente que le gustara crear juegos de mesa jajaja.
No sé los demás, pero yo llevo creando juegos en papel desde el 92: de mesa, de plataformas, de carreras, en relieve... Aun me estoy peleando para conseguir un juego en 3D :lol:
-----Actualizado-----
No sabía que aquí hubiera mas gente que le gustara crear juegos de mesa jajaja.
No sé los demás, pero yo llevo creando juegos en papel desde el 92: de mesa, de plataformas, de carreras, en relieve... Aun me estoy peleando para conseguir un juego en 3D :lol:
Levanto el tema. En la parte de código ya tengo el juego básico de naves, con vida, colisiones y HUD corriendo. Los personajes cargan desde scripts y todo. Voy a empezar ahora con el tablero, movimiento por hexagonos y tal.
En la parte de diseño he estado un par de días intercambiando opiniones con gente en RPGCodex y TIGSource acerca de mi primera versión. Tras volver al papel varias veces para resolver varios problemas de concurrencia y probabilidad he parido una nueva versión de todo el sistema, determinista y que puedo implementar con Artemis. Busco a alguien que se siente conmigo a probar varios tweaks y ver si está entretenido o qué se podría cambiar. Es más simple y fácil de llevar que el de las bolas de fuego, promise.
Dejo aquí el ruleset con ejemplos. Perdón por el idioma pero lo escribí anoche para tener una referencia y es largo de traducir:
We have a new per-player stat: gauge meter (or coins, or pills, or mana, it's just a number). Every character adds an amount of gauge to the meter at the beginning of the turn. Maybe the gauge already has a base value when the game starts.
Now, the actions available (with arbitrary costs)
- Move: costs 2 gauges.
- Spell/skill: costs X gauges.
- Counter: special skill.
Turn sequence:
- Each character adds its gauge regen value to the pool.
- Each character gets 2 personal temporary gauges.
- The player chooses an action for every character. The cost can be taken from the temporary and the meter.
- If the player wants, he can spend gauges from the global meter to make its toons do extra actions.
- Actions are resolved simultaneously, but respecting initiatives. Missiles like arrows or spells are considered of initiative 0 so they are moved at the beginning of the action.
- In case of collision or counter, the highest bidder gets to do the action. In case of draw in the bids, initiative wins. Both players spend their gauges and their skills are put on cooldown, but the loser cannot take more actions this turn and loses any other gauges he has spent for further actions. Any other actions he could have done are not put on cooldown.
- At the end of the turn, all unspent temporary gauges are taken away.
Extras:
- Extra gauge can be paid for unsafe skills to avoid being countered.
- Extra gauge can be paid for any skill for extra effects, if the description says so (i.e. extra range, extra duration, extra damage, in-action delay)
Action examples (arbitrary numbers):
Move
Cost 2
Range 1
Initiative Depends on char.
Cooldown 0
Unsafe True
Movespeed Instant
Type Physical
Effect: Moves character one hex
Enhances: 1 gauge for +200 initiative delay, 1 gauge -100 initiative delay
Fireball
Cost 3
Range 1-4
Initiative 345
Cooldown 2
Unsafe True
Movespeed 2
Type Magic
Effect: 3 damages in radius 1 from target. Explodes if enters an occupied hex.
Enhances: 1 gauge for +500 initiative delay, 1 gauge for max range +1, 2 gauges for damage +1
Grappling hook
Cost 4
Range 2-3
Initiative 435
Cooldown 8
Unsafe True
Movespeed Instant
Type Physical
Effect: Moves enemy to your adjacent hex. Cancel the rest of his actions this turn.
Enhances: 1 gauge for +500 initiative delay, 3 gauge for max range +1
Swing
Cost 2
Range 1
Initiative 820
Cooldown 0
Unsafe False
Movespeed Instant
Type Physical
Effect: Deals 2 damage to all enemies in arc
Enhances: 2 gauge for -300 initiative speedup, 3 gauge for +1 damage, 3 gauge to change cone to whirlwind
Arrow
Cost 2
Range 10
Initiative 830
Cooldown 1
Unsafe False
Movespeed 1
Type Physical
Effect: Deals 2 damage the first enemy it crosses with
Enhances: 2 gauge for -500 initiative speedup, 3 gauge for +1 damage
Break Concentration
Cost N
Range 1 (Swordman), 1-2 (Spearman), 2-3 (Archer)
Initiative 10
Cooldown 1/turn
Unsafe False
Movespeed Instant
Type Counter
Effect: Stops any unsafe actions done within range with cost N*1.5 rounded down until the end of turn. Enhancements do not count towards cost.
Counterspell
Cost N
Range 1-5
Initiative 11
Cooldown 2
Unsafe False
Movespeed Instant
Type Counter
Effect: Stops the next unsafe magic actions done within range with cost N until the end of turn. Enhancements do not count towards cost.
Enhace: Pay M to stop M additional unsafe magic actions.
http://i.imgur.com/iuMGKMZ.gif
Levantando que es gerundio.
IronArthur
25/05/2013, 12:20
Vamos que creas la entity en la nueva posición en vez de moverla de sitio???
(Como me gustan los gif para enseñar cosas de juegos)
Salu2
Vamos que creas la entity en la nueva posición en vez de moverla de sitio???
(Como me gustan los gif para enseñar cosas de juegos)
Salu2
Nope, la entity es el click del ratón, que hace un pequeño efecto. La base del efecto es un sprite de kirby asi que queda feísimo.
http://i.imgur.com/Nd48Amo.gif
Para mover simplemente actualizo el component MapPosition, y el SpriteRendererSystem hace el resto. El movimiento es un component Path, que es una lista de components Move. Un Move tiene un origen y un destino. Básicamente me permitiría hacer "Undo action" si me apeteciera hacer un botón. Más adelante Path se convertirá en Turn, que será una lista de Action. Move se convertirá en una entidad action que ponga un personaje en otra casilla, cosa que en un script se puede implementar bien. Pero paso a paso.
IronArthur
27/05/2013, 08:52
Veo que va avanzando, good ;)
Has probado a exportar a html5 con libgdx a ver que tal va??
El movimiento será hex a hex? o meteras pathfinding? a* o whatever.
Salu2
Veo que va avanzando, good ;)
Has probado a exportar a html5 con libgdx a ver que tal va??
El movimiento será hex a hex? o meteras pathfinding? a* o whatever.
Salu2
A* está en el tuto aunque hay un algoritmo más nuevo que da mucho mejor rendimiento, Jump Point Search (http://harablog.wordpress.com/2011/09/07/jump-point-search/). De momento y según la versión actual de las normas, voy a ir casilla a casilla.
HTML5 lo intenté usar para los ejemplos de libgdx, seguí el tutorial y no cargó despues de media hora intentando asi que lo dejé para más adelante porque no era prioritario.
IronArthur
27/05/2013, 14:28
Es que ultimamente estoy mirando bastante el tema de html5, y quería saber de primera mano que tal era la exportación a web. Supongo que seguiré cotilleando motores js.
Salu2
http://i.imgur.com/FfTw8ME.gif
Más progresos, esta vez un poco por mi cuenta. Implementado distance-limited flood fill basado en la biblia de los hexágonos (http://www.redblobgames.com/grids/hexagons/#range), con un pequeño mod para admitir también rangos mínimos. Como el sistema de render tiene un array con las casillas resaltadas, y me ha tocado implementar comparación de casillas, buscar uno o todos los enemigos en rango va a ser trivial.
Ahora tengo que pensar cómo implementar rangos para otras figuras como conos, supongo que será usando la misma base de rango completo y luego un patrón para hacer quitar las que no estén.
IronArthur
30/05/2013, 08:37
Solo puede darte minipuntos varios por los avances que haces en tan poco tiempo :brindis: y molan bastante. Aparte que lo que estas haciendo vale como base para infinitos juegos basados en wargames o juegos de mesa. Se me ocurren unos cuantos.
Que envidia cochina tengo de que no me pongo nunca a ello :/
Salu2
Solo puede darte minipuntos varios por los avances que haces en tan poco tiempo :brindis: y molan bastante. Aparte que lo que estas haciendo vale como base para infinitos juegos basados en wargames o juegos de mesa. Se me ocurren unos cuantos.
Que envidia cochina tengo de que no me pongo nunca a ello :/
Salu2
Trabajo tardes o noches en plan 5-6h y voy consiguiendo estos avances. No me tengas tanta envidia porque si tengo tiempo es precisamente por estar buscando trabajo, entre entrevista, respuesta y prepararme la siguiente entrevista pasan varios días, y si tengo uno libre me pongo con el juego. Trabajar con Artemis es una maravilla además, hacer el sistema de render y meter el rango de los personajes me llevó no más de 30 minutos, el resto fue en descifrar el algoritmo y ver cómo quitar los rangos mínimos eficientemente.
Y si, de momento estoy haciendo todo agnóstico al juego porque la idea era hacer un ruleset que luego fuera adaptable a grandes batallas o un ARPG clásico.
IronArthur
30/05/2013, 14:58
Me tiré una buena temporada meditando si hacer algo para representar juegos por hex y sacar clones de wargames ligeritos famosos para moviles, pero la falta de tiempo y pereza me pudo.
Yo es que suelo tener unas 3-5h a la semana libres, y es o ponerme a echar una partida y despejar la mente o seguir programando cosas como en el trabajo (aunque más entretenidas), adivina cual gana.
Salu2
Después de una semana haciendo un apli para una entrevista hoy le he echado otro rato y he escrito mi propio algoritmo de Line of Sight. Aun tiene fallos pero va mejor que los que he ido encontrado en papers y por internet.
http://i.imgur.com/8k6YFPd.gif
Sigo buscando alguien con quien probar el prototipo usando Vassal. Ya no hace falta pizarra, encontré una alternativa que automatiza un poco. Una copia actualizada de las normas en inglés aquí: http://pastebin.com/UvApFEcT
Estas hecho un crack, ¿para cuando la demo jugable?
Estas hecho un crack, ¿para cuando la demo jugable?
Mucha tela que cortar aún. Hoy he podido jugar con un amigo con vassal y hemos descubierto que el juego es jugable y divertido, lo cual es un salto de gigante a como estaba ayer mismo. El sistema de simultaneidad funciona sólo si los números son correctos, empezamos con muy poco gauge regen y era muy aburrido, en cuanto lo subimos conseguimos tener un combate en condiciones. De momento sólo 1v1 pero parecía funcionar, otro día nos ponemos 3v3. Las partidas se hacen rápido en este nuevo sistema y no es nada pesado, por si alguien quiere probar.
De momento sigo con las cosas del motor, me falta al menos implementar rangos de cono antes de ponerme a programar la secuencia de turno y los ejecutores genéricos de habilidades. Ya arreglé lo del LOS con ayuda del tío de la biblia de los hex, que me escribió en el repositorio y todo :D Si miráis los últimos commit ahí está todo.
El trabajo de esta noche después de cenar:
Arco/cono
http://i.imgur.com/gyQi9vd.gif
Flower
http://i.imgur.com/YcpG8lM.gif
Reverse flower
http://i.imgur.com/xtKrNxL.gif
Creo que con esto tengo para hacer unas cuantas habilidades ya y puedo ponerme con el gameplay de una p vez. Tengo que estructurar el turno para que las habilidades puedan tener efectos al principio, durante y después, a ser posible cargándolos desde Lua.
IronArthur
10/06/2013, 09:38
Solo puedo decir que es mu bonito software'mente hablando.
Estas cerca del momento que me encanta de desarrollar software, en el que empiezan a encajar sistemas separados o genéricos... prff me encanta ese momento.
salu2
PD: entro a diario a /gamedev y me entero del hilo de tu juego de reddit por el comentario del github tiene couyons...
PD2: veo que lo pusiste ayer, entonces tengo excusa :P
Está en twitter, stackoverflow y tigsource también. Cuando pregunto, pregunto con cojones xD
Lo que tienes que hacer es parar y dejar que yo saque la beta del mio, que no quiero tener competidores xDDD tu ponte a hacer un clon de temple run que estan muy de moda estos dias xD
IronArthur
11/06/2013, 12:08
Lo que tienes que hacer es parar y dejar que yo saque la beta del mio, que no quiero tener competidores xDDD tu ponte a hacer un clon de temple run que estan muy de moda estos dias xD
O algun conecta 3 iguales tipo el Candy crush o lo q sea....
Lo que tiene que hacer el pakito es sacar un framework/juego "genérico" de mapa hexagonal con unidades y turnos y se pueden fusilar miles de wargames, y luego lua para comportamientos y tal.
<-- mi idea de hace tiempo q no tengo tiempo de hacer
Salu2
O algun conecta 3 iguales tipo el Candy crush o lo q sea....
Lo que tiene que hacer el pakito es sacar un framework/juego "genérico" de mapa hexagonal con unidades y turnos y se pueden fusilar miles de wargames, y luego lua para comportamientos y tal.
<-- mi idea de hace tiempo q no tengo tiempo de hacer
Salu2
Primero juego, luego motor, que si no me lio mucho y me aburro y no saco nada. En prinicipio la idea que tengo de arquitectura es bastante genérica y decoupled, asi que se podrían mover las clases de apoyo (el mapa, las maptools y el ejecutor de scripts) a librería. Veremos a ver más adelante si no me empiezo a liar.
IronArthur
11/06/2013, 13:45
Esta claro que lo primero es terminar juegos. Yo hablaba en general.
A mi andar "jugando" con motores javascript me está viniendo de lujazo para el trabajo/jquery, que cosas y a mi que no me gustaba el javascript. Si es hasta divertido!!
Salu2
Estaba inspirado y me hecho un algoritmo para conos de cualquier tamaño en una horita corta. Ahora ya si que si puedo empezar con la estructura de juego :D
http://i.imgur.com/dCLjZPv.gif
IronArthur
13/06/2013, 08:39
Por curiosidad como se controla la orientación??
Salu2
Por curiosidad como se controla la orientación??
Salu2
Está basado en desde dónde lo casteas, en el gif es la casilla donde estabas antes y el origen del cono es la casilla a la que te mueves. En el juego el caster podría iniciar un cono a varias casillas de distancia, el cono estaría orientado en el vector con origen en el jugador. Puedes usar otra casilla o un vector de dirección x[inf,-inf]y[inf,-inf]. En caso de ser perfectamente horizontal Dir{x=0, y=loquesea} ahora mismo defaultea hacia arriba.
Hoy no tengo gif para vosotros porque el juego se ve exactamente igual, pero os puedo asegurar que le he hecho un remakeado brutal a toda la arquitectura interna y continuar con la lógica va a ser ahora un paseo por el parque (no, pero bueno :p).
También me ha contactado un másquina de la vida al que había enviado un problema hace tiempo y ha modificado ZeroBraneStudio (https://github.com/pkulchenko/ZeroBraneStudio), su IDE de desarrollo Lua, para que acepte LuaJava y AndroLua. Con estos cambios ya se pueden debugear y poner breakpoints en los scripts. Casi nada. Le he donado 10€ por la currada que se ha pegado de gratis por un mierdas como yo.
-----Actualizado-----
No os podía dejar sin GIF asi que en 5 minutillos he implementado rango mínimo para conos y flores, que era facilito
http://i.imgur.com/YLlgSAP.gif
IronArthur
14/06/2013, 10:11
Te está quedando de **** madre...
Salu2
Voy a tener que "licenciar" el codigo de mi war&warriors para hacer wargames xDD, de hecho lo tengo por ahi separado, y en mi caso si quito los pasillos que tengo ahora, pongo un mapa "plano" como el tuyo, ya tengo los hexagonos y las batallas montadas....
Haremos el wargame of the week xDD
IronArthur
14/06/2013, 10:30
Es q, wargames y juegos de mesa variados hay a patadas para "clonar/copiar" y como un sistema de juego no se puede licenciar....
Otra cosa es que todos los juegos funcionen como videojuegos, pero es cuestión de probar.
Y visto los comentarios que se ven por boardgamegeek & cia, mercado hay
Salu2
Mercado hay de muchas cosas si sabes dar en el clavo y ofrecer un producto atractivo, jugable, etc. Si sacas un clon "de mierda" pues probablemente te comeras los mocos, esto es "asin"
Voy a tener que "licenciar" el codigo de mi war&warriors para hacer wargames xDD, de hecho lo tengo por ahi separado, y en mi caso si quito los pasillos que tengo ahora, pongo un mapa "plano" como el tuyo, ya tengo los hexagonos y las batallas montadas....
Haremos el wargame of the week xDD
Ojo que la lógica de las casillas no se aplica a los hexágonos, es mucho más simple.
Mercado hay de muchas cosas si sabes dar en el clavo y ofrecer un producto atractivo, jugable, etc. Si sacas un clon "de mierda" pues probablemente te comeras los mocos, esto es "asin"
Yo me estoy haciendo el juego para mi osea que sin problema. La idea es dejar el código abierto, sacar una release con web propia gratis con botón de donaciones. Si me quiero poner serio hay por donde expandirle al juego con modo online, IAP de personajes oficiales y un storefront para personajes caseros.
IronArthur
14/06/2013, 14:16
Mercado hay de muchas cosas si sabes dar en el clavo y ofrecer un producto atractivo, jugable, etc. Si sacas un clon "de mierda" pues probablemente te comeras los mocos, esto es "asin"
Hombre el mercado de clones funciona en tanto no esté muy masificado o explotado. Cuando no hay muchas opciones o un solo exponente enorme de pago o caro, el resto puede parasitar y hay "mercado".
Como ejemplo apps de conecta 3 "cosas" que poniendo un candy* están teniendo miles de descargas.
De todos modos hay muy pocos juegos bien hechos de tablero en apps/tablets, el ticket to ride y alguno más. En wargames hay poquísimo y pienso que hay un nicho de clientela fiel.
Salu2
Ojo que la lógica de las casillas no se aplica a los hexágonos, es mucho más simple.
¿Y quien ha dicho que la logica este ligada a los hexagonos?, yo en mi caso no tengo la logica ligada a cuadros o hexagonos, yo tengo un mapa cuadrado (simple for mapaAncho x mapaAlto) y externamente la casilla puede ser un hexagono o un cuadro, lo mismo me da
¿Y quien ha dicho que la logica este ligada a los hexagonos?, yo en mi caso no tengo la logica ligada a cuadros o hexagonos, yo tengo un mapa cuadrado (simple for mapaAncho x mapaAlto) y externamente la casilla puede ser un hexagono o un cuadro, lo mismo me da
Te digo que la matemática no es la misma, mira mi código y la biblia de los hexágonos (http://www.redblobgames.com/grids/hexagons/). Si tu te mueves +X,+X vas por la diagonal, yo acabo en Parla porque mi diagonal está por +2, +3 y la siguiente en +2, +4 seguida de +3, +5. Tu tienes 9 adyacentes, yo tengo 6 que encima se comportan diferente si son columnas pares o impares. Por eso pongo estos gifs de las cosas que hago, porque es un algoritmo currado.
http://i.imgur.com/3P1tGC4.gif
Ya tengo la arquitectura para que cada criatura tenga un skillset compuesto por un array de strings. Cada skill es una entity compuesta por los valores en pantalla y algunos más, y se identifica por su nombre. La idea es que el nombre sea también el nombre del script que se va a ejecutar cada vez que esa habilidad sea usada. Para habilidades complejas que tengan efecto al principio del turno y cosas así ya idearé algo.
No he visto tu codigo, pero en mi caso las mates que yo uso no cambian y me da lo mismo la representacion, un muñeco se mueve X casillas, sean las que sean y donde sean, al A* me devuelve las casillas y yo le aplico el movimiento al personaje casilla a casilla, de la 1 a la 2, asi que no tengo que preocuparme de si x+2 o x+3, igual eso hace que lo mio sea mas simple.... no lo se. Para variar con esto de la programacion cada uno se lo monta como dios le dio a entender, y oye, mientras funcione...
Todas maneras yo no uso ningun algoritmo pues todos los muñecos se mueven igual, es decir, si uno se mueve 5 casillas pues eso.. son 5 casillas expandidas desde el punto del personaje, no formando una linea como lo tuyo ni otras lindeces, de ahi que mi implementacion sea mas simplona :)
Básicamente no tienes diagonales y eso simplifica todo, si. Si las tuvieras las mates no serían equivalentes, asi que en este caso tienes razón. A* sirve para pathing, pero no para áreas de este tipo. No lo tengo implementado pero se dónde está para hacer el copypasta :P
En este ratillo he creado un sistema para procesar efectos de principio y final de turno :) ¡Vamos ahora a por la máquina de estados!
Más cambios, ya tengo un prototipo de la estructura del turno que no cumple con las normas, pero es un comienzo.
http://i.imgur.com/95JIxUN.gif
http://i.imgur.com/jZjC3sQ.gif
Mejorada la secuencia del turno. Ahora también se admiten acciones a principio y a final del turno gracias un ejecutor genérico (p.ej. lava en el suelo, veneno o flecha avanzando). Además los turnos son por-jugador en vez de por-criatura y avanzan automáticamente cuando has asignado todas las acciones.
Pues ya he conseguido cargar las habilidades desde scripts, e incluso scripts llamando a scripts. Me he pasado de Lua a BeanShell. Es un **** pitoste asi que me tendré que crear mi propia clase de tools con cosas habituales como activables al principio del turno, mover criaturas o conseguir todas las criaturas en un rango. Si esto chusca ya me tengo que meter con la interfaz.
Ejemplo, este script llamado "jump" hace que a final del turno siguiente se ejecute el script de skill llamado "bolafuego":
import com.wartricks.components.ActionSequence;
import com.wartricks.components.ActionSequenceOnEndTurn;
import com.wartricks.components.Action;
import com.wartricks.custom.Pair;
import com.wartricks.utils.EntityFactory;
creature = game.world.getEntity(caster);
bolafuego = EntityFactory.createSkill(game.world, "bolafuego", 2, 2, 5, 300, 5, "", "");
bolafuego.addToWorld();
creature.addComponent(new ActionSequenceOnEndTurn(new Action(caster, bolafuego.getId(), origin, new Pair(origin.x, origin.y - 1))));
creature.changedInWorld();
Tienes que hacer los imports a mano, asi que o te sabes los namespaces o tienes un problema. Tengo que crear una especie de init que me cargue todas las clases antes de iniciar el intérprete. Mismo para los métodos, tener una fachada comprensible.
-----Actualizado-----
He conseguido cargar un script de inicialización antes de los de las skills con lo que al menos el problema de los imports estará solucionado. Además me da control a lo que pueden o no acceder.
IronArthur
17/06/2013, 09:15
***** vaya velocidad llevas...
salu2
Primera versión del API para modding disponible:
http://i.imgur.com/as8DwNJ.gif
Nuevo formato para scripts más simple y legible, no requiere conocimiento del funcionamiento interno del juego:
Creature
int creatureId = -1;
// CREATES THE CREATURE WITH CUSTOM VALUES
create()
{
name = "apple";
health = 100;
energyPerTurn = 3;
skillSet = new Array();
skillSet.add("move");
creatureId = game.createCreature(name, health, energyPerTurn, skillSet);
return creatureId;
}
Skill
int skillId = -1;
Array affected;
// CREATES THE SKILL WITH OWN VALUES
create() {
name = "move";
cost = 1;
minRange = 1;
maxRange = 2;
initiative = 600;
cooldown = 0;
skillId = game.createSkill(name, cost, minRange, maxRange, initiative, cooldown);
return skillId;
}
// SHOWS THE AFFECTED HEXES
affected()
{
affected = game.skillGetHexesForArea(Shapes.CIRCLE, 0, 0, origin.x, origin.y, target.x, target.y);
return affected;
}
// INSERT SKILL EFFECT HERE
execute() {
return game.creatureMoveTo(caster, target.x, target.y);
}
// BEGIN AND END OF TURN EFFECTS HERE
// ACTIVABLE WITH game.skillActivateBeginTurn()
OnBeginTurn() {
}
OnEndTurn() {
}
http://i.imgur.com/GivM1Z9.gif
Menús terminados y condición de victoria añadida. El juego es casi jugable, sólo falta que las criaturas sean retiradas del tablero cuando mueran.
YAYAYAYAYAYYAYAYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY YYYYYYYYYYY
Mañana (o en un rato) lo arreglo. Scripto un par de skills de combate, empaqueto un APK y lo probáis!
-----Actualizado-----
He hecho el turno un poco más fácil de interpretar con sólo un par de cambios.
http://i.imgur.com/Q0zpslH.gif
IronArthur
19/06/2013, 08:31
Los pjs van a ser ponis?? :lol:
Salu2
PD: acabo de ver una oferta de trabajo para berlin de tio experto en movimientos A*, disktra y tal... planificadores de viajes y tal. Por si te interesa.
Maldito pakoito, deja ya el juego y haz algo util, que yo aun estoy en fase de planificacion de mi wargame y no se vale ganarme y relesear primero xDDD
Yo o son ponis o no juego, poni mago, poni guerrero, poni troll!!!
El plan para hoy es cambiar los ponys, añadir múltiples acciones por personaje (esta va a ser jodida y da para un par de días) y hacer que los bichos se mueran.
Por demanda popular he quitado los ponies y he puesto tokens de D&D
http://i.imgur.com/P2ImIQe.gif
IronArthur
20/06/2013, 09:31
ya queda más pofesional :D
Salu2
Pues acabas de perder una venta, o pones los ponies o te pueden ir dando xDDD
Voy a pausar el desarrollo unos días, tengo un viaje de domingo a miércoles. Según como salga la cosa veremos a ver qué hago con ésto. En principio si añado lo de matar a los jugadores ya debería ser jugable, aunque con un API limitada.
IronArthur
21/06/2013, 08:48
Voy a pausar el desarrollo unos días, tengo un viaje de domingo a miércoles. Según como salga la cosa veremos a ver qué hago con ésto. En principio si añado lo de matar a los jugadores ya debería ser jugable, aunque con un API limitada.
Ya claro, lo que pasa es que te salen demasiados juegos esta semana ....
Salu2
Ya claro, lo que pasa es que te salen demasiados juegos esta semana ....
Esto es un, zas en toda la boca!!! :lol:
Ya claro, lo que pasa es que te salen demasiados juegos esta semana ....
Salu2
Ay calla. Anoche me obligué a jugar algo en vez de programar y si, estuvo entretenido pero no es lo mismo. Me acabé el Rogue Legacy, el Gunpoint, vi una peli de South Park y aun me sobró tiempo :P Me estaba planteando cogerme el Skulls of the Shogun o Unepic pero al final me resistí.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.