Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - DarkKRuleR

166
General / Vuestra experiencia con grupos de desarrollo
Agosto 06, 2015, 09:31:06 PM
Buenas. Hasta ahora... más de 10 años haciendo juegos con game maker. Acabé uno, el Four Elements: Draco's Mission, un tanto cutre respecto a lo que sé hacer ahora, pero es todo lo que hice. A lo largo del tiempo he hecho decenas de juegos, todos abandonados al 3% de comenzarlos, ya sea por pereza, por tener otras ideas y... sobretodo, porque todos los hice yo solo. Hace bastante tiempo me uní a un grupo. El jefe es un amigo de la infancia que creó un grupo de gente para hacer mangas y juegos. Entre ellos tiene un primo y varios amigos, y me metió. Soy el único programador, y al aportar una idea comenzamos a desarrollar un juego. El 100% de todo lo hemos hablado y avanzado por skype.

Al princio todo guay, surge la idea, creamos un documento en google drive, todos aportan algo.. a los días la gente fue abandonando. Tal cual, pasó medio año, MEDIO, en el que los progresos eran... ¿nulos? Yo siempre estaba 100% activo, tenía (TENGO) unas inmensas ganas de CREAR, y un tanto de tiempo (hasta que no comience la universidad, pero aún con la uni SIEMPRE he tenido algo de tiempo para avanzar... aunque fuera cada día o cada dos días un poquito). Pero la cosa estuvo parada 6 meses... nadie hacía nada. Entre excusas de la universidad y noséquecosas. Hace unos meses hablé con un miembro, dijo que hay que ponerse serios, ir a por algo más sencillo de primeras... el tema es que cogimos a los más activos, ahora somos unos 6. Yo programo, escribo la historia y guión junto con otro, un spriter, y 3 ilustradores.

Obviamente, cuando digo que pasó medio año así, me refiero a que muy de vez en cuando iba escribiendo cosas en el grupo de skype con TODOS, ya fueran palabras, o incluso poner las cosas que yo iba avanzando.. enseñar lo que había programado, cosas guays. Con suerte alguien lo comentaba, y eso pasado 1 o 2 días la mayoría de veces. Ausentismo extremo. Una vez les hablé a todos por privado,todos estuvieron de acuerdo en continuar y me dijeron que estaban listos. Se inició,y de nuevo, todos ausentes.

Y volvió a pasar. Ahora mismo tengo al spriter comenzando los sprites de la prota, y a un ilustrador haciendo un fondo. Hace 1 semana y... no hay prácticamente NADA. En cambio yo tengo desde hace un mes un prototipo en game maker (usando sprites y fondos de internet) con la mecanica de una "linterna" direccional implementada usando surfaces (oscuridad, apuntas en cono para la luz) entre otras cosas. Yo estoy para currar al 100% pero.. no sé qué le pasa a la gente. Y me llevo bien, al principio.. e incluso ahora todo va bien, dejando de lado el estar ausentes

Avanzo que trabajamos por "amor al arte". Mi idea es que somos gente que nos gusta lo que hacemos (programar, dibujar, escribir), que nos gustan los juegos y que QUEREMOS hacer un juegazo, pero luego nadie nunca tiene tiempo. En el primero (y del segundo se dijo algo) teniamos pensado subirlo a steam y ponerlo a un precio bajo, para amortizar un poco.

Estoy en otro grupo, solo somos 3, todo por facebook, fue hace un mes, se escribió y habló bastante, y a la semana... de nuevo NADA. Uno nos dice que tiene varios problemas, varios familiares están mal y uno lejano muerto, el otro estuvo con clases... éste dice que ahora está libre, pero esperamos al tercero para continuar. No digo que sea mentira ni mucho menos pero... en serio TODO EL MUNDO está tan ocupado? Aclaro que en el PRIMER GRUPO han entrado y salido más de 10 personas, constantemente el jefe ha ido metiendo amigos y conocidos hasta echarlos por no hacer nada. Tan difícil es? Nadie hace nada? Soy el único con unas ganas increíbles de crear un juegazo en grupo, pero que ha tenido nefasta suerte encontrando un solo spriter, guionista o ilustrador de fondos?

Cuál es vuestra experiencia con el tema? Por qué me ha ocurrido todo esto? Aquí sigo, con unas inmensas ganas de crear, pero sin nadie. Tengo experiencia en GML en game maker, podría crear prácticamente cualquier cosa (ciñiéndonos al 2D y single player), tengo tiempo y ganas, pero en todos los grupos que he entrado pasa ALGO para torcerlo. En serio la gente, cuando tiene exámenes, ocupa el 100% de su tiempo en ello? Obviamente no. Si realmente QUISIERAN hacer un juego, tuvieran la PASIÓn y GANAS de hacerlo, siempre sacarían un poco de tiempo para ir avanzando casi diariamente, como máximo un retraso de 3-4 días cuando surja.

Siento el tocho, en parte quería desahogarme, pero ver las experiencias de la gente ayudaría, quizás estoy pensando algo mal o soy un soñador estúpido, pero si a mí me viniera un spriter a decirme "tengo pasion y ganas por crear un juegazo, y seré activo porque me apasiona, hacemos algo?" yo diría "WOHOO", ese es mi caso pero en programador. Aunque hasta ahora he tenido que dedicar la mayoría de mi tiempo a ser guionista, diseñar las mecánicas, etc... y en el peor caso spritear, pero intento librarme (pues bastante tengo con ser guionista y el único programador, esto ultimo no me desagrada, incluso me encanta, siempre que tenga gente que haga los gráficos, músicas, fondos y escriba por mí...)
167
Estoy realmente con la cabeza ardiendo y aún no logro sacar esto...

Tengo dos sistemas de referencia. El primero es el real. 0 derecha, 90 arriba, 180 izquierda, 270 abajo. El jugador puede mirar hacia dónde quiera, y lo defino como vrDir. Es, en este sistema, hacia dónde mira el jugador.

El segundo sistema es respecto a la vista del jugador. En la pantalla, el jugador siempre, SIEMPRE mira hacia arriba (90). Si vrDir = 90, o sea, si yo miro hacia arriba, en la pantalla miraré hacia arriba y todo encaja. Pero si por ejemplo vrDir = 0, yo miro a la derecha, en la pantalla siempre miraría arriba. Eso significa que lo que yo tuviera enfrente, o sea, tuviera a la derecha del sistema original, aparecería arriba del todo en el sistema de la pantalla. En la pantalla, el sistema siempre está mirando hacia arriba. Así que cuando el personaje  rota, el mundo rota al revés en la misma medida.

Mi objetivo es, dada una dirección del ratón en la pantalla, en el sistema del jugador, pasarlo al sistema original y, dado en el original, pasarlo a la pantalla. Realmente no lo logro...

Ejemplo: si yo miro a la izquierda (180), en la pantalla miraré SIEMPRE a 90. O sea, arriba veré lo que haya a la izquierda en realidad (180). Desde esa perspectiva, si yo eligiera la dirección 90, es decir, a mi frente (desde la pantalla), eso debería traducirse a 180 (hacia dónde miro). Si elijo 60 se traduciría en 150. Espero que entendáis la idea de los dos sistemas, el real que todos conocemos, y el del personaje, donde siempre el 90 está hacia arriba. Necesito pasar ángulos de uno a otro...

Sé que en ambas fórmulas deben intervenir vrDir, la dirección que quiero transformar, y creo que también el número 90, debe ser un conjunto de sumas y restas entre ellos, pero no lo saco. He llegado a sacar varias fórmulas medio exitosas, pero siempre fallaba algo

EDIT: no me creo cómo he tardado tanto
De pantalla a mundo: vrDir + (vrAng - 90)
De mundo a pantalla: vrAng - (vrDir - 90)

Podéis cerrar, o borrar, o lo que sea xD
168
Uh, lo del tamaño sería complicado. No hay ninguna potencia de 2 que me sirva... y antes que tirar a 256, sería mejor quedarse en 150.

Muchas gracias! Así que no es necesario tener todas las subimágenes en una misma textura. Pues visto todo lo planteado, sin duda no habrá problemas. Sé que mi PC será más potente, desde el primer segundo siempre veo todo lo que programo y procuro añadirle opciones más ligeras para pcs lentos. Pues dicho todo esto puedo ir sin preocuparme, quién lo diría que GMS te lo facilita todo... más o menos.

Aunque lo que dice somnus aún me deja pensando, sobre qué tanto mejora que el tamaño sea potencia de 2. En mi caso, teniendo 150x150, buscar una potencia sería irse a 256x256, y quizás no sería eficiente. No entiendo la parte de usar archivos png, yo los añado al editor de imagen de game maker, ahí no hay extensión, él mismo lo hace, ya que no cargaré externamente

Pues creo que tengo bastante info y me lanzaré sin problemas, aunque lo dejaré "sin resolver" por lo que pueda surgir. Gracias a los dos!
169
Muchas gracias. Ahora tengo varias dudas, pero lo estoy viendo todo más claro...

1- Añadir los sprites, backgrounds y sonidos al propio proyecto es lo más eficiente y no debo hacer nada más, cierto? Aunque le echaré un ojo a eso de usar grupos de audio, suena interesantemente eficiente

2- Has nombrado el organizar los sprites en las páginas de texturas. Ahora mismo tenía pensado tener, por ejemplo, un sprite para la animación de caminar, y dentro tener 10 subimágenes, una por frame. Sería mucho más conveniente tener un sprite con UNA única subimagen, en ella tener los 10 sprites, y hacer un draw_sprite_part para dibujar una sola parte? Tenía eso en mente pero lo quité porque era más complicado, pero si gano mucho en eficiencia lo añadiré de nuevo. En ese caso, *el que un sprite pueda tener más de una subimagen* sería una opción que nunca usaría, si hago un sprite por cada animación, y que sólo tenga UNA subimagen con todos los frames. NO HARÉ un sprite para todo, sino uno por animación, o saldría enorme. Sólo ahora saldría con una altura de 750, y un ancho de 150x(numeroDeFrames)...

3- Aún si la diferencia afecta... tengo claro que en una misma pantalla (view) no habrá más de... 5 personajes a la vez. Clarísimo, realmente, según cómo serán mis escenarios, cuyas rooms serán pequeñas incluso. Si me dices que el tamaño total de los sprites no afecta tanto a la eficiencia, sinó el cómo los uses, yo lo doy por bueno.
170
Dios! Eso no lo hacía GM8, cierto? Cargar sprites externamente siempre fue la máxima eficiencia!...

Entonces, carga externa descartada. ¿Eso también pasa con los sonidos y músicas? ¿Es mejor cargarlas en el propio juego y NO externamente? La música siempre la hice externa en GM8...

No tengo pro, así que el yoyo compiler queda descartado. Tampoco creo que use el cpu extensivamente, no será 3D tampoco.

No he entendido del todo lo del depurador, pero viendo que no tengo ninguna forma de aumentar la eficiencia, realmente daría igual... sería ir a 150x150 y esperar que todo vaya bien, objetivamente no es taaaanto tamaño. Programando eficientemente en todos los sentidos (desactivo lo que está fuera de la view, etc), el tamaño de los recursos afecta a la eficiencia, o sólo hace más pesado el archivo?
171
Buenas! Estoy en GM Studio, y no tengo claro el tema eficiencia. Tenía pensado usar sprites 120x120, pero ahora surge la necesidad de subir a 150x150. Habrá MUCHOS personajes y enemigos, y cada uno tendrá muchas animaciones con, seguramente, muchos frames, sobretodo el prota, y dudo que pueda ir muy lento con la subida a 150x150. Recuerdo que en GM8 podías... guardar los sprites en una carpeta a parte, cargarlos por código y borrarlos cuando no fueran necesarios, pero ahora, con el tema de que GM studio crea un exe para instalar.. no sé si es automático, se puede hacer o no... así que

1- El tema este de peso-ralentización por tener demasiados sprites, sigue en GM studio? Cómo? Debo preocuparme por el peso de mis recursos, o ahora que hay un instalador es automático y te lo guarda fuera en carpetas?

2- Debo preocuparme por subir de 120x120 a 150x150 (pensando que habra MUUUUUUCHOS sprites) o es sufrir innecesariamente, pues sigue siendo un tamaño pequeño?
172
Sep, gracias a los dos, la clave era ese display_resize, el tema está resuelto :D
173
Pero sólo tengo una room, no he hecho aún una segunda, y tengo el código que os puse (tamaño view = viewport), no debería ir bien? Aunque viene bien saber esto, para cuando haga más rooms y de distinto tamaño recordaré el cambiar con surface_resize.

Lo probaré ahora y si eso edito, pero teniendo sólo una room debería ir bien, no?

EDIT: ÉXITO!

/// Tamaño correcto para la vista
surface_resize(application_surface, display_get_width(), display_get_height());


Puse eso en ROOM_START, y FUNCIONA! Da igual si la room es pequeña o grande, y debería dar igual el tamaño de la pantalla, siempre coge con resolución 1:1, con bordes negros si hace falta. Creo que esto lo da por resuelto, que raro que hiciera falta aún con una sola room. Esto es justamente lo que ambos dijísteis al final (debo ajustar el tamaño de la app surface), así que perfecto

Y lo mejor es que no estoy obligado a hacer el fondo que sobra negro. Puedo poner tiles fuera de la room y funciona igual
174
Cuando te refieres al tamaño del fondo, dices la room? En ese caso... cada room tendría un tamaño distinto.

Hm, pues ahora no lo entiendo, y creo que lo que tengo en mente no ha llegado. Voy a exponerlo con detalle, gracias por la atención

Imaginemos una room de 1000x1000. Dependiendo del tamaño de la pantalla del jugador (pantalla completa), mi idea es que NO IMPORTE EL TAMAÑO DE LA PANTALLA DEL JUGADOR (display_get_width etc), SIEMPRE funcione

Si es 1280x720, para mantener resolución 1:1, habría bordes negros a los lados (fuera de la room) de 140px y se cortaría arriba y abajo (720 de alto, pero la room tiene 1000), sobraría un total de 280, o sea, 140 arriba y 140 abajo estaría CORTADO.

Si la pantalla es 800x600, habría 100 píxeles a cada lado de negro y 200 arriba y 200 abajo en negro. Mantenemos la resolución 1:1 añadiendo bordes.

Si la pantalla es 1920x1080, la room 1000x1000 cabría entera. Habría un borde negro de 40 arriba y 40 abajo, y sobraría horizontalmente 920, o sea, 460 de borde negro a cada lado.

Si la pantalla es 455x123 funcionaría. Si es 1245x412 también. Da igual el tamaño, siempe puedo hacer un rectángulo de ese tamaño y coger un trozo de la room del mismo, aunque tenga que coger fondo negro.

La idea es que no importa el tamaño de la pantalla, siempre vea la room con resolución real, sin zoom in NI zoom out NI deformaciones, añadiendo bordes negros o cortando la room donde toque. Yo cojo el rectánculo que es LA PANTALLA, lo plasmo en la room, recorto ese trozo tal cual, y lo muestro, da igual si corto trozo de room o estoy cogiendo trozo negro fuera de la room, SIEMPRE puedo ver la pantalla 1:1 con cualquier monitor. Monitores grandes cogerían borde negro, y monitores pequeños recortarían room.

Es posible hacer eso? :D gracias
175
Cada fondo sería distinto, claro. Mi idea es, si el fondo fuera 1000x1000, y la pantalla 1280x720, pues a los laterales se vería negro, y la parte superior e inferior del fondo se cortaría. SI la pantalla fuera 800x600, pues cogería el centro del fondo y cortaría por TODOS los lados.

Olvida mi código, porque ya no lo entiendo. La idea es: yo quiero que el tamaño de la view (cuánto coge) sea igual al viewport e igual a la pantalla. Que si tengo una PANTALLA de 800x600, da igual cómo sea el room de grande, SIEMPRE coja 800x600 del room, y lo ponga en la pantalla. Quiero que coja el mismo tamaño de la pantalla en el room, y lo coloque en la pantalla, para que se coja con resolución 1:1, da igual si eso implica que haya que cortar unos lados o añadir fondo negro en otros. Ignora el tema del hud por ahora. Diferentes pantallas cogerían diferente trozo de la room (más o menos, cortando por un lado o por otro) pero SIEMPRE con resolución 1:1, sin deformaciones ni zooms. Qué fallaría en mi código, si realmente intenta hacer eso? Gracias :D
176
El juego será sólo para PC ^_^

No he etendido qué dices. Mi idea es, si yo le digo "el tamaño y el port de la view hazlos igual a la pantalla", debería darme igual la resolución de la room, del fondo y de todo. Yo quiero coger una parte para la view igual a la pantalla, para que se vea resolución 1:1 exacta, me da igual si tengo que recortar o si tengo que coger más o menos parte de la room, y ahí es dónde no veo por qué falla. O mi razonamiento está mal? D:

PD: incluso si fuera para android, si yo le dijera que la view y port tengan el tamaño de la pantalla del móvil, debería valer igual. Cogería un cacho de la room igual a la pantalla, siendo resolución 1:1. Dejando al lado el tema de HUD que podría ser un desastre y obviamente lo tendré en cuenta, debería poder funcionar para cualquier resolución, no? A lo mejor mi código está mal pero mi idea es esa, que la view coja exactamente toda la pantalla, para tener siempre 1:1
177
Buenash! Imagen. Izquierda el resultado, derecha el sprite real


(Fondo de Resident Evil 3, personaje de Ragnarok Online)

Podéis ver cómo, al hacer PANTALLA COMPLETA y hacer algo de zoom a la imagen, se destroza totalmente. He pensado este código para simular el "mantener escala en fullscreen" que tenía el GM8 y NO tiene el GMS:

/// Ajustes clave
view_wview[0] = display_get_width();
view_hview[0] = display_get_height();

view_wport[0] = display_get_width();
view_hport[0] = display_get_height();

view_xview[0] = obEli.x - display_get_width()/2;
view_yview[0] = obEli.y - display_get_height()/2;


Pero no sé por qué no funciona. La idea es coger un tamaño de view igual al monitor del jugador, ajustar el viewport igual, y poner al personaje en el centro. Con eso el jugador SIEMPRE, independientemente de la resolución de su monitor, al poner pantalla completa, debería verlo con calidad 100%, SIN ningún zoom, pero obviamente cogiendo y viendo a la vez mucho más room respecto a un jugador con una pantalla pequeña. Y si no me equivoco, si la room es menor al monitor o el jugador está en el borde, vería todo negro (fuera de room), cosa que no pasaba en GM8. Por qué no funciona? En su lugar lo veo como reducido, alejado... y cuadrado, cuando el background es 1024x768!
178
Wow, eso último me ha molado. Hacer el escenario 3D con formas básicas, convertirlo a cubemap y luego el experto que lo dibuje a mano tomando eso como base. Ya que el objetivo es ese, hacerlo 100% manualmente, sin fotos. El cubemap debe ser más fácil por lo que parece. Muchas gracias! Usaré el unity, que ya tengo instalado, con algo de búsqueda será fácil hacer un cubemap a partir de la escena
179
Buenash, pues estoy últimamente trastocando con cube maps





Eso lo pones en un cubo 3D y, mirando desde el interior, parece como si fuera un entorno 3D real. El problema es que vienen pre-hechos. Si uno quisiera hacer su propio cube map, de la misma forma que haces tus propios gráficos... ¿Alguien tiene experiencia/herramientas/idea de cómo sería? Si os fijáis no es fácil, a parte de tener que representar todo el entorno visto desde un punto sobre 6 paredes, las paredes no son planas, las imágenes tienen efectos extraños de zoom en los bordes para dar el efecto correcto, a parte el conectarlo todo... alguien ha logrado hacer manualmente alguno? No me refiero a foto, me refiero a coger lápiz y papel por ejemplo y hacerlo, ya sea directamente o indirecta mediante una herramienta. Digamos que si quisiera hacer un juego cuyos escenarios fueran cube maps y, obviamente, tuviera que hacerlos un experto gráfico desde cero... es viable en la práctica, es posible?

PD: También estoy leyendo sobre spheremaps, y quizás podría servir igual pero no me aclaro
180
AAhh, gracias! Creo que lo entiendo! Aunque al aumentar el zoom dibujo los muros el doble de lejos, a su vez los dibujo el doble de grandes, y por eso no veo cambio! Lo que debería hacer es hacer que el zoom sea el doble respecto a los muros, si el personaje hago x2, los muros x4 por ejemplo, así los veré lejos. Si multiplico por el mismo valor el personaje y los muros, al hacerlos X veces más lejos, pero X más grandes... es lógica uqe no cambie. Estoy en lo correcto?

El caso de aumentar el fov es cierto pero... no es exactamente lo que quiero. Eso significaría "alejar la cámara", lo que quiero es mantenerlo todo acorde. Trabajar en la room 500x500, y que eso se dibuje correctamente. No sé hasta qué punto ambas soluciones serían correctas. Ahora que lo estoy pensando lo más lógico es aumentar el fov, y así mantengo las proporciones... vale, en mi cabeza estaba todo revuelto pero ahora lo entiendo, confirmadme si me equivoco, porque es un lío.

EDIT: el fov aumentado funciona perfectamente :D