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 - elviskelley

181
Noticias / Re:Concurso Comunidad Game Maker 2016
Enero 30, 2016, 02:57:24 AM
Listo, voy a iniciar mi juego dentro de 12 horas. El correo que usare sera el mismo con el que me registre elviskelley@gmail.com el usuario por favor es igual. asi que probablemente les envio el juego en 3 dias.
Lo enviare el exe dentro de un archivo Rar por que si no, costara enviarlo por ser exe.
182
Noticias / Re:Concurso Comunidad Game Maker 2016
Enero 29, 2016, 07:19:02 PM
Yo entre por que crei inicaba hoy. casi no tengo Megas, asi que entrare mañana a ver cual es el tema-.
183
Para android tendrias que cambiar los codigos de los carteles ejem: Show_Message(":::") por un codigo tuyo que muestre un cartel de dialogo-. El resto no hay problemas.
184
Noticias / Re:Concurso Comunidad Game Maker 2016
Enero 27, 2016, 12:23:19 AM
Creo que deberian actualizar la lista de participantes. aunque en mi opinión personal, no deberían pedir que los participantes se anuncien, aunque no esta demas. Pero si que sean participantes registrados en la comunidadgm, los que competirán en fin y al cabo, serán quienes terminen enviando sus juegos a tiempo.
185
Preguntas y respuestas / Re:Transiciones en Sprites
Enero 26, 2016, 06:44:03 AM
Sobre la barra de vida con un object siga la view. pues si es posible, solo debes comparar coordenadas de la posicion de la view y del object. ejem: if (x < view_xview[0])) then {x+=8} o simplemente: x=view_xview[0]; y=view_yview[0]; 
186
usa una variable global para que en el nuevo room la verifique y cambie el tamaño si esa variable esta activa, y recuerda desactivar la variable global recien crezca la puerta.
187
Preguntas y respuestas / Re:Pregunta sobre If
Enero 24, 2016, 06:04:33 PM
NO. por que tomara =3 como una variable y te dira que no reconoce a 3 como variable.
Para ahorrar codigo te recomiendo usar listas o arrays seguro logras hacerlo mejor.
Ademas debes aprender a usarlos por que ningun script puede tener mas de 16 argumentos.
Tambien podrias usar > < ejem: if posicion >0 and posicion < 7 then {acciones}
188
No copiare todo tu codigo, cuando puedo simplemente explicarte como cometes los errores.
antes de llamar a una instancia  (crearla) es bueno siempre hacer una comprobacion de que la misma no existe ejem:
if not instance_exists(obj....)
{instance_create(x,y,obj....);}
esto evitara duplicados.

Otro error que vi y mejor explico.
Luego de codigos como: instance_change, instance_destroy, room_goto, room_restart, etc. No deben haber codigos, por el simple hecho de que no se ejecutaran.
ejemplo: si colocas esto:
if (sentencia) then
{
codigos...
instance_destroy()
variable=false;  //Esto no se va a ejecutar, por que ya la instancia fue destruida.
}
189
Noticias / Re:Concurso Comunidad Game Maker 2016
Enero 24, 2016, 05:17:15 PM
Cita de: Grewyks en Enero 24, 2016, 03:49:49 AM
Es que quiero participar pero con otra cuenta xd, lo malo es que no se puede tener dos cuentas a la vez. Entonces no puedo participar, solo que un admin me ayude a eliminar esta cuenta o no se si pueda hacerlo yo mismo.

Hace tiempo vi que los admins le cambiaban el nombre de usuario a un usuario jeje pero no se si aun lo hagan. en todo caso ellos podrian eliminar tu cuenta y luego tu crearte una nueva.
190
Facebook te ayuda con eso, y para eso posee su pagina para desarrolladores.
https://developers.facebook.com/
Hechale un vistaso puede y encuentres lo que buscas.
191
Ok... En una resolución alta que luego es escalada a una mas pequeña, los graficos siguen conservando su nitidez, y aspectos gráficos en mejor calidad.
En una resolución con gráficos pequeños eje 16x16 que luego fuera escalada a una dimensión mas amplia eje 64x64, termina por despixelar los gráficos (sprites y backgrounds) lo que da como resultado un juego con gráfica terrible.
Sin embargo toma en cuenta que resoluciones superiores al 1280x720. debes usar sprites muy grandes mínimo 64x64 y los botones mínimos 96x96.
En respuesta directa; Mejor hacerlo grande y que se encoja.
192
Te dejo mi manual paso a paso para que lo aprendas a hacer.
Citar
TUTORIAL JUEGOS MULTIJUGADOR  ONLINE.

Introduccion.
GameMaker tiene un soporte multijugador. Este tutorial explica como usarlo. Ten cuidado con esta idea. Crear efectivos juegos multijugador no es nada fácil. Necesita que seas un usuario con experiencia en GameMaker. Necesitas entender el uso de algo de código (GML). Entonces no hagas esto en el primer juego que desarrollas.  También, para esta funcion necesitas tener el GameMaker registrado.

Trataremos los siguientes aspectos:

1-Establecer una conexión hacia distintas computadoras.
2-Crear o unirse a sesiones de juegos.
3-Conservar los juegos sincronizados

La última parte es el aspecto más difícil para todos los juegos multijugador. El problema es asegurarse que los dos jugadores vean exactamente los mismo en el juego. Por ejemplo, en el juego de Pong, ambos jugadores deben estar viendo la pelota en el mismo lugar al mismo tiempo. Gamemaker proporcionara herramientas para hacerlo pero tu mismo tendrás que diseñar la comunicación para cada juego que hagas.

ESTABLECIENDO LA CONEXION
La manera normal en la cual funciona un juego multijugador se explica enseguida. Cada jugador corre una copia del juego, aunque cada uno lo puede hacer de forma distinta. Un jugador los corre en el modo de servidor. Los otros lo hacen en el modo de cliente. El jugador en modo servidor debe comenzar el juego primero y crea las sesiones del juego. Los otros luego pueden asociarse para unirse al juego. Los jugadores tienen que decidir sobre el mecanismo usado para la comunicación entre las computadoras. En una red local, lo más fácil es usar una conexión IPX (ver debajo para más detalles). Si todos los jugadores están conectados al Internet, TPC/IP es normalmente usado. En este protocolo los clientes tienen que saber la dirección IP del servidor. Entonces el jugador corriendo el juego en el modo de servidor debe dar su dirección IP a los otros jugadores (por ejemplo, para darles un correo electrónico). Puedes encontrar tu dirección IP usando Simbolo de sistema, o dando click en Ejecutar, escibes "cmd" sin las comillas, y una ves ahí, escribes "ipconfig" eso te mostrara tu ip. También puedes usar la función del GameMaker mplay_ipaddress() para esto.

Entonces para comunicar dos computadoras se necesita algún protocolo de conexión. Como la mayoría de los juegos, Gamemaker ofrece cuatro tipos distintos de conexiones: IPX, TCP/IP, MODEM y Serial, de los cuales en pruebas realizadas la mas funcional es TPC/IP, y sera la que explique en este tutorial.

La conexión TPC/IP es el protocolo de Internet. Este puede ser usado para jugar contra otros jugadores en algún sitio en Internet suponiendo que sabes su dirección IP.  Recuerda uno crea el server y el/los otros son clientes, por lo que quien creo el server debe darte su ip. En una red local tu puedes usarlo sin proporcional direcciones. Finalmente, cuando se usa una línea serial (una conexión directa entre computadoras) tú necesitas proporcionar un número para la configuración del puerto. Hay cuatro funciones de GML que pueden ser utilizadas para establecer estas conexiones.



mplay_init_tcpip(addr) – Inicia una conexión TCP/IP. addr es  un string que contiene la dirección de la Web o su dirección IP. Por ejemplo: 'miserver.no.ip.info´,  ó '123.123.12', Solo cuando se participa en una sesión (ver debajo) necesitas proporcionar una dirección. La persona que crea el server (seccion) necesita dar una dirección (porque la dirección de su computadora es la única que se usa). En una red de conexión local no se necesita una dirección ip pero de todas formas es necesario crear la comunicación.


Tu juego debe llamar una de esta funcion exactamente. Todas las funciones devuelven si se ha logrado con éxito. No se logra si él protocolo particular no esta instalado o no es soportado por tu maquina, (Verifica el firewall no bloquee la conexión).

Entonces el primer room en nuestro juego debe mostrar la  posibilidad y permitir que el jugador cree un server o se una a uno creado, (o solo permitir los protocolos que tú quiera)
Iniciamos creando un object llamesmolo objCreaConex colocale un sprite de  boton que diga Conectar.

En el event create agrega esto.
//declaramos la variable guarip que contendrá la miip que escribiremos
//la cual es nuestra propia ip.
miip = mplay_ipaddress();
alarm[0]=0.2*room_speed;

Event Alarm[0]
//Esto abrira una ventana para que escribas la ip de tu pc.
miip=get_string("Coloca la ip de la secion",miip)

Ahora en el Event left pressed
//verifica si hay conexión y de haber pasa al otro room, de lo contrario dice que: "Conexión fallida"

if (mplay_init_tcpip(miip)) room_goto_next();
        else
show_message('Conexion fallida');

Ya hay una conexcion, ahora hay que ver si hay algun server (secion) creado, para unirte, o crear tu una secion (server).

Cuando el juego termine, ó cuando el juego no necesite más usar la facultad multijugador, necesitas seguir la siguiente rutina para terminarlo:

mplay_end() – termina la conexión actual. Devuelve si lo ha hecho con éxito. Recuerda que antes de cerrar el juego termine con la conexión.

También necesitas usar esta rutina para iniciar una conexión distinta.

SESIONES DE JUEGO
Cuando te conectas a una red, pueden estar múltiples juegos corriendo en la misma red. Nosotros llamamos a estas "sesiones (server)". Estas sesiones distintas pueden pertenecer a distintos juegos o al mismo. Un juego tiene que identificarse únicamente a él mismo en la red. Afortunadamente, GameMaker hace esto por ti. La única cosa que debes saber es que cuando tu cambias el id del juego en las configuraciones globales del juego (Global Game Setting) esta identificación cambia. De esta manera puedes evitar que las personas con versiones antiguas de tu juego compitan contra las personas que tengan las versiones nuevas.
Ahora para continuar creamos un room el cual llamamos rmSecion
Para este room crearemos los siguientes objects.
objCrear A este le asignamos un sprite de boton que diga "Crear secion (server)"
en el event Create.
//estos guardaran datos al momento de crear el server.
textserver=0; //le daras nombre a la secion;
textPjs=0;   //le das nombre a tu personaje.

Event Mouse left pressed
//al hacer click pregunta por el timpo de server a crear.
textserver=get_string("Nombre para el Server","server"); //pregunta nombre a la secion;
textPjs=get_string("Nombre para el Jugador","Jugador");   //pregunta nombre a tu personaje.


// nos dirigimo a la room donde crearemos la partida
//se crea y comprueba la sesion al mismo tiempo con una sentencia if
//la sesion se creara tomando los datos de las variables "texto" de los objetos que hemos visto
//si la conexión no se realiza correctamente, mostraremos un error
if (mplay_session_create(textserver,10,textPjs))
{
    //declaramos esta variable con el valor 0, porque el es el primer jugador, el host.
    global.player = 0;
    room_goto(test_room);
}
else show_message('Fallo al intentar crear sesion');

//donde coloque 10 es el numero maximo de jugadoires permitidos, podrias llevarlo a 50 si posees una poc potente-.


Ahora Creamos un object que llamaremos objDesconect Con un sprite de boton que diga Desconectar.
En el event mouse left pressed colocamos...
mplay_end(); //cierra la seccion (conexcion) es bueno colocar este code, en el event de tecla pressed Esc, asi cuando alguien sale es desconectado por defecto.
room_goto_previous(); //regresa al room anterior donde aun no nos conectabamos.

Creamos un object el cual llamaremos "objUnir" Este lo usaremos para ingresar a un server (secion) existente.
Event Create
//seleccionamos la primera subimagen del sprite
image_single = 0;

//guardamos el numero de sesiones activas
server= mplay_session_find();

//declaramos la variable severnum con una cadena vacia, esta variable guardara el nombre de las sesiones
servernum = '';

/*declaramos la variable posicion con el valor 0
esta variable guardara la posicion, pero no la posocion Y solo la posicion X, la posicion Y la utilizaremos para identificar el numero correcto de la sesion
no es lo mismo que selecciones una sesión, o que selecciones esa misma sesión cuando ya has movido la lista, ya que estarían en distintas posiciones, por eso es necesario el uso de esta variabe.
ejemplo, si una sesion esta en la primera posicion (0), y movieramos la lista hacia arriba, esa sesión estaria una posición mas arriba que antes
*/
posicion = 0;

//creare una alarm que actualizara la lista de seciones existentes.
alarm[0]=3*room_speed;

//en este caso esta variable sera la posicion Y del rectangulo que dibujaremos para saber que seleccion hemos realizado
yy = 48;

//declaramos la selección con un valor nulo
//esta variable contendra el numero de la sesion seleccionada
seleccion = noone;

Event Alarm 0
//se actualizara y volvera a reiniciar la alarm manteniendo asi un ciclo de actualizar la lista cda 3 segundos.
server= mplay_session_find();
alarm[0]=3*room_speed;


En el event mouse left pressed
pedimos al usuario su nombre de juego y la guardamos en una variable
name = get_string('Tu nombre','');

En el siguiente linea d ecodigos, se une y comprueba la sesión, y al mismo tiempo con una sentencia if se unirá a la sesión tomando como parametros, el número de la sesión (objConectar.miip) y el nombre pedido anteriormente con "name" si la conexión no se realiza correctamente, mostraremos un error
declaramos una variable global con un valor que indicara el numero de jugador para que podamos identificarlo en otros casos fácilmente si crearamos una sesion, el valor le pondríamos 0, pero en caso de unir el valor sera la cantidad de jugadores en partida restado por 1 (ten en cuenta de que tu ya estas dentro))
Ejemplo; si hay tres jugadores en juego (tu y otros dos) sería global.player = 3-1, que es 2. El host (server) seria 0, el proximo 1, y tu el 2.

if (mplay_session_join(seleccion,name))
{
global.player = mplay_player_find()-1;
room_goto(rmjuego); //donde rmjuego se supone es el nombre del primer room del juego.
}
else
show_message('Fallo al intentar entrar'); //mensaje de que fallo al entrar.

Event Global mouse pressed
//si pulsamos en cualquier lado de la pantalla, y el mouse esta entre las coordenadas indicadas...
//la seleccion dependera de la variable posicion
//no es lo mismo que selecciones una sesión, o que selecciones esa misma sesión cuando ya has movido la lista, ya que estarían en distintas posiciones, por eso es necesario el uso de esta variabe.
//ejemplo, si una sesion esta en la primera posicion (0), y movieramos la lista hacia arriba, esa sesión estaria una posición mas arriba que antes (-1), por eso debemos sumar la variable posicion (teniendo en cuenta de que el valor puede ser negativo o positivo), que es la variable que hemos modificado cada vez que hemos movido la lista arriba o abajo
if (mouse_y >= 48 && mouse_y < 192 && mouse_x > 32)
{
    seleccion = yy/16 - 3 + posicion;
}

Event Draw
//dibujamos el sprite del boton
draw_sprite(sprite_index,image_index,x,y)


//nos basamos en un bucle for para mostrar la lista de sesiones
//i es 0, si i es menor que la cantidad de sesiones activas, i se sumara con 1
//de esta manera i pasara a tener todos los valores hasta la cantidad de sesiones
for(i=0;i<server;i+=1)
{
    //guardamos el nombre de la sesion con el numero que tenga i en este momento
    servernum= mplay_session_name(i);
    //dibujamos el numero de la sesion seguido del nombre
    draw_text(48,i*16+yy,string(i+1) + ' - ' + string(servernum));
}

//dibujamos el entorno, lineas etc.
draw_line_color(16,32,room_width/2,32,c_gray,c_white);
draw_line_color(room_width/2,32,room_width-16,32,c_white,c_gray);
draw_line_color(16,room_height-32,room_width/2,room_height-32,c_gray,c_white);
draw_line_color(room_width/2,room_height-32,room_width-16,room_height-32,c_white,c_gray);

//dibujamos el string "Sesiones" seguido del numero de sesiones entre parentesis
draw_text(16,8,'Sesiones (' + string(server) + ')');

//dibujaremos el nombre de la sesion seleccionada abajo a la izquierda
//la variable seleccion es la que contendrá la sesion seleccionada
draw_text(16,216,string(mplay_session_name(seleccion)));

//si el raton esta dentro de esas coordenadas
if (mouse_y >= 48 && mouse_y < 192 && mouse_x > 32)
{
    if (mouse_y < 64) yy = 48;
    else if (mouse_y < 80) yy = 64;
    else if (mouse_y < 96) yy = 80;
    else if (mouse_y < 112) yy = 96;
    else if (mouse_y < 128) yy = 112;
    else if (mouse_y < 144) yy = 128;
    else if (mouse_y < 160) yy = 144;
    else if (mouse_y < 176) yy = 160;
    else if (mouse_y < 192) yy = 176;
   
    //dibujaremos el rectangulo dependiendo de la posicion del mouse
    draw_rectangle_color(40,yy,room_width,yy+16,c_white,c_white,c_white,c_white,false);
}

/*Te explico un poco mas... Lo que pasa es que al clickear en el lado izquierdo de la pantalla estarias
sobre alguna de las posiciones YY eso da como resultado la apariencia de que clickeaste sobre alguna seccion.*/


Ahora ya sabemos como unirse al server (secion) ya existente, Para que otros se unan a tu secion (recuerda si tu eres el server los otros... Al conectarse deben colocar tu IP).




GAME PLAY / DATOS COMPARTIDOS
Ya tenemos un server online, y un cliente por asi decirlo que esta conectado al server, pero al conectarse ¿Qué pasara? Aca es donde quiero llegar, debe existir un game play, para que asi alguien pueda jugar, la verdad el game play es muy similar a cualquier cosa antes vista, solo que debemos establecer mediante un object el que muestre nuestros personajes. Y ademas en ambas Computadoras, muestre la misma informacion.
Inicialmente creamos un room para el Game_play donde colocamos todos los aspectos del juego, y claro los personajes a usar en tu juego el objPlayerServer y el objPlayerCliente, tambien un object que crearemos que se llamara obj_client, Empecemos por crear el objClient, ya que sera el que envie y reciba los datos de los jugadores en secion.

Para iniciar crearemos un object que llamaremos obj_client.
//este objeto sera el que reciva y controle todos los mensajes (evio y recibo de datos) y sus valores
//mediante un bucle for crearemos la cantidad de arrays que queramos para guardar las ids de las instancias que representaran a los otros jugadores (obj_player_other)
//y les asignamos un valor normalmente inválido para una id, por ejemplo -1 (un valor negativo)

for(i=0; i < 10; i+=1)
{
players = -1;
}

//la siguiente función la llamo solamente porque es necesario usarlo antes de
que esta mas abajo, para que funcione.

mplay_player_name()
player_tot = mplay_player_find();

//cuando se ejecuta el evento create de este objeto quiere decir que un jugador nuevo entra en partida
//entonces enviamos un mensaje a todos con la id 5 (vease mas abajo) y con el valor del numero del jugador
mplay_message_send(0,5,global.player);

//asignamos a la variable de nuestra instancia nuestro nombre para que se muestre
objPlayerServer.name = mplay_player_name(0);

/*
para enviar mensajes utilizaremos distintas ids de mensajes, y lo haremos asi,
las id:

0 -  la utilizaremos para enviar informacion sobre la coordenada X de los jugadores
1 - la utilizaremos para enviar informacion sobre la coordenada Y de los jugadores
2 - para el sprite actual del jugador
3 - para la velocidad del sprite
4 - para la excala X del sprite, image_xscale para poder girar el sprite
5 - para notificar de una entrada de un jugador
6 - para la salida de un jugador
7 - para enviar identificar a quien hay que asignar los valores anteriores, por eso hay que enviar este mensaje antes que otro
Asi con esto se mantiene actualizada la informacion entre las seciones.
*/

Event Step.
//mientras reciva mensajes de cualquier jugador...

while (mplay_message_receive(0))
{
    //asignamos la id del mensaje actual
    messid = mplay_message_id();
    //asignamos el valor que contiene el mensaje actual
    value = mplay_message_value();
   
    //ahora dependeremos de la id del mensaje
    switch(messid) {
        //se recomienda comenzar a leer por el case 5, ya que hasta mas adelante no se explica sobre la variable "player"
        case 0:
            //actualizamos la posición X del objeto ("player")
            player.x = value;
            break;
        case 1:
            //actualizamos la posición Y del objeto  ("player")
            player.y = value;
            break;
        case 2:
            //actualizamos el sprite del objeto ("player")
            player.sprite_index = value;
            break;
        case 3:
            //actualizamos la velocidad del sprite del objeto  ("player")
            player.image_speed = value;
            break;
        case 4:
            //actualizamos la escala X del objeto dado ("player")
            player.image_xscale = value;
            break; 
        case 5: //cuando un nuevo jugador entra en la sesión...
            //esta variable contendra el valor que nos envian de global.player, lo utilizaremos como id del usuario, ojo!!no la id de la instancia
            userid = value;
            //guardamos la id de la instancia creada del objeto que representa a los otros jugadores
            user = instance_create(objPlayerServer.xstart,objPlayerServer.ystart-32,objPlayerClientes);
            //asignamos al array dependiente de la id del usuario la id de la instancia creada
            players[userid] = user;
            break;
        case 6: //cuando un jugador abandona
            //haremos lo mismo que cuando un jugador entra, pero el valor del array vuelve a ser -1, y la instancia se elimina
            playerid = value;
            with(players[playerid]) instance_destroy();
            players[playerid] = -1;
            break;
        case 7: //recivimos la id del usuario que nos lo envia...
            //lo guardamos en esta variable
            other_id = value;
            //guardamos en esta variable la id de la instancia dependiendo de la id del usuario obtenido
            //de esta manera arriba lo utilizaremos como si fuera un objeto, ejemplo: player.x
            player = players[other_id];
            break;
    }
}

Event Game_End
mplay_message_send(0,6,global.player);
//envia la info de que se desconecto asi lo borra de pantalla.

Ahora vamos con el objPlayerServer, Este sera tu personaje principal es decir con quien jugaras, asi que colocale todo los codigos necesarios para usarlo, pero agregale estos a continuacion que son necesarios para la conexcion.
Event create.
//activamos la alarma en un step
alarm[0]=1*room_speed;

Event Alarm0
//envia los mensajes con cada uno su id y valor correspondiente
//se envia primero el mensaje de la id 7 porque es el que hemos elegido para identificar el jugador al que aplicaremos los valores de los próximos mensajes
mplay_message_send(0,7,global.player);
mplay_message_send(0,0,x);
mplay_message_send(0,1,y);
mplay_message_send(0,2,sprite_index);
mplay_message_send(0,3,image_speed);
mplay_message_send(0,4,image_xscale);

//volvemos a activar la alarma a un step
alarm[0]=1*room_speed;

Event Draw
//Dibujar el jugador
draw_sprite_ext(sprite_index,image_index,round(x),round(y),image_xscale,image_yscale,image_angle,image_blend,image_alpha);

//Dibuja el nombre
draw_text(round(x)-string_width(name)/2,round(y)-30-(sin(current_time/200)*1),string(name));

Por ultimo creamos el objPlayerClientes
Este no lleva ningun tipo de codigo necesarios para el juego, ya que solo sera un object figurado, es decir como referencia.
Puedo decir que esta instancia representara a todo y cada uno de los jugadores de la sala, menos tu mismo
//Esto es para que se vea arriba el nombre que le as dado.
draw_sprite_ext(sprite_index,image_index,round(x),round(y),image_xscale,image_yscale,image_angle,image_blend,image_alpha);

Para el resto de los objects como suelos enemigos, y todos los necesarios para tu juego no hace falta que especifiques ningun codigo de transferencia de datos.
Bueno... Espero te sea de utilidad y crees muchos juegos MMORPG.
Listo ya tienes un juego multijugador online.
Para probarlo, no lo hagas desde el editable, crea dos Executables y prueba uno en tu computadora, y el otro en otra computadora, crea un server y pidele se una a tu secion.

Nota: Al iniciar el juego el Firewall te pregunta si deseas desbloquearlo, y claro debes decir que si.
Algunos antivirus bloquean estas conexciones, por lo que colocalo en exclusiones.

Sin mas nada que decir suerte, en tus proyectos...
193
Noticias / Re:Concurso Comunidad Game Maker 2016
Enero 23, 2016, 09:17:29 AM
Me pàrece que Kakashigna solo bromeaba??? La fusión Kostra+Darkruler es interesante. Lo que me llevara a trabajar Algo bastante elaborado, por suerte es para PC.
Yo no compito por los premios, solo compito por el arte de participar.
De ganar el premio, en mi categoria el miso sera donado y debe ser entregado al ultimo lugar de la categoria Novato, claro si es que gano en mi categoria.
194
probablemente le falten codecs a tu PC, instala otros reproductores solo para que se amplien los formatos que pùedes leer.
195
Noticias / Re:Concurso Comunidad Game Maker 2016
Enero 20, 2016, 11:34:15 PM
Estamos hablando o escribiendo mucho, yo solo espero el tema del concurso para ponerme manos a la obra. Lo que a mi aun no me queda claro es a quien vamnos a enviarlo y a que correo, o donde lo publicaremos y bajo que Etiqueta.