Menú

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.

Menú Mostrar Mensajes

Temas - dixon

#1
General / Contacto CGM
Abril 22, 2023, 03:21:44 PM
Hola, saludos a todos.


He logrado establecer esta comunicacion cada uno de los medios de comunicación de la CGM, para permitir el contacto con las personas que aún se encuentren en los alrededores de esta comunidad game maker.



#2
Juegos completos / Color Car
Abril 01, 2023, 01:02:37 PM

Color Car




Conducción
Game Maker 4.3c(March 4,2003)


Conducir, esquivar obstáculos, recoger colores y llamar la atención de un camaleón.





Sólo para windows.
Descarga directa sin anuncios

Gameplay
#3
Juegos completos / Ultra
Marzo 25, 2023, 11:39:32 AM

Ultra

Aventura
Game Maker 4.3c


Un conjunto de sucesos caóticos en otra parte del universo.





Sólo para windows.
Descarga directa sin anuncios

Gameplay
#4
Juegos completos / Box
Febrero 25, 2023, 03:03:23 PM

Box


Puzzle Plataforma

Game Maker 4.3c(March 4,2003)


Salta, gira en el aire y has saltos ninja para ganar puntos mientras mueves un imán para unir dos cubos 3D.





Sólo para windows.
Descargar sin anuncios

Gameplay
#5
General / La ventaja de la desmotivación
Febrero 21, 2023, 06:30:18 PM
Hola, saludos a todos.

La ventaja de la desmotivación


Cuando estamos desmotivados y deprimidos, en ese momento que queremos abandonar el arduo proyecto que teníamos en mente, es cuando debemos prestarnos atención y sacar partido de la situación, a continuación, presentaré algunas ventajas de estar desmotivado, pero antes que nada quiero aclarar que solo son opiniones personales sin base científica.

Ventajas de la desmotivación

1. Nada nos atrapa: Las obras artísticas pueden convertirse en un vicio, tal es el caso de los video juegos, las películas, la música, etc... Pero cuando estamos desmotivados ni siquiera una buena obra puede atraernos, por lo tanto, la desmotivación puede ser algo normal que nos sucede a todos es como por decirlo así "el cerebro necesita drenarse de tanta información".
2. Evaluación de calidad: En el caso de la programación de video juegos, al estar desmotivado me he dado cuenta que aquél juego que al principio me parecía una genialidad ahora lo percibo como una obra tonta, seca y vacía; lo que me obliga a pensar en cosas que sean mucho más atractivas, juegos que atraigan inclusive al más desmotivado del planeta, por tanto utilizo mi propia desmotivación para ponerme en el lugar de los no-gamers y de todas aquellas personas que aborrecen los video juegos, y estando hay trato de imaginar algún video juego que sea lo suficientemente bueno como para cautivar a todo aquél que odia los video juegos.

Ya son muchas palabras para este post, no voy a alargarlo más sin sentido. Cuando tenga otra idea al respecto se las haré saber.

#6
General / Sobre monetización
Febrero 17, 2023, 09:08:52 PM
Hola, saludos a todos espero que estén bien. :-[

Sobre monetización



Esta es mi estrategia actual de monetización, básicamente consiste en lo siguiente:

1. Buscar un grupo de Facebook u otra red social con una temática que nos guste para venderle juegos relacionados a dicha temática.
2. Crear una web para alojar juegos html5.
3. Cobrar la suscripción a la web a un costo muy bajo: con tan solo un dólar el usuario podrá usar la web y acceder a todos los juegos disponibles. El objetivo principal será aumentar poco a poco la cantidad de usuarios inscritos.

Ventajas de la estrategia:
1. No es indispensable pc de altos recursos.
2. No es indispensable que el autor pague por publicidad.
3. No es indispensable un motor de video juego actualizado.
4. No es indispensable que el autor se inscriba en playstore o steam.

Desventajas:
1.   Requiere saber crear una web.
2.   Requiere saber de bases de datos para el login.
3.   Requiere saber implementar sistema de pago web.

Hay otra estrategia que también es buena y no requiere conocimientos sobre programación web, pero debo analizarla bien para poder explicarla.

#7
General / Alianza Rogue like.
Enero 10, 2023, 10:46:40 AM
Hola, saldos a todos.



Alianza Rogue like.




¿Cuántas alianzas hemos intentado?, ¿Cuántos grupos hemos creado para realizar un proyecto?,¿Cuánta esperanza hemos tenido en crear una gran asociación destinada a desarrollar un poderosísimo juego?, pero... ¿por qué fracasamos?, ¿por qué todo se disuelve?, ¿por qué no nos ponemos de acuerdo?, en este post no intentaremos descifrar ese misterio lo que vamos a hacer es trabajar en conjunto con mucho ánimo y fuerza inicial para luego fracasar rotundamente y abandonar porque quizás en algún futuro una ia pueda hacer todo por nosotros.




Para iniciar esta alianza tendremos que comprender lo que es un juego tipo rogue like.
https://www.idesigner.es/noticia/por-que-se-llama-roguelike-a-los-roguelike253F/37

Bien, ya me he desmotivado bastante, mi tiempo es corto y mi vida caotica. Esto es el fin de la alianza.









Bueno, sin nada que aportar me despido. :-[
#8
Juegos completos / No-Guns
Diciembre 15, 2022, 03:14:17 AM


Esta es la lista de mis juegos:

Tengo que reeditarlos para que todos se vuelvan multiplataforma.

No-Guns
https://www.comunidadgm.org/juegos-completos/no-guns/

Euforia
https://www.comunidadgm.org/juegos-completos/euforia/

La busqueda del juego predilecto
https://www.comunidadgm.org/juegos-completos/la-busqueda-del-juego-predilecto/

Pong
https://www.comunidadgm.org/juegos-completos/pong/

La chica del campamento
https://www.comunidadgm.org/juegos-completos/la-chica-del-campamento/

30 pepas
https://www.comunidadgm.org/juegos-completos/30pepas-128517/

La carreta precisa + score online
https://www.comunidadgm.org/juegos-completos/la-carreta-precisa-score-online/

La carreta precisa
https://www.comunidadgm.org/juegos-completos/la-carreta-precisa/

Agua pal pueblo
https://www.comunidadgm.org/juegos-completos/agua-pal-pueblo/

El piloto sin licencia
https://www.comunidadgm.org/juegos-completos/el-piloto-sin-licencia/

Adiós capitán
https://www.comunidadgm.org/juegos-completos/adios-capitan/

Aferrate a mí
https://www.comunidadgm.org/juegos-completos/aferrate-a-mi/

El pan de nuestra familia
https://www.comunidadgm.org/juegos-completos/el-pan-de-nuestra-familia/

ABC
https://www.comunidadgm.org/juegos-completos/abc/

Wikipedia JavaScript 2020
https://www.comunidadgm.org/juegos-completos/wikipedia-javascript-2020/

Ya no quiero ser perfeto
https://www.comunidadgm.org/juegos-completos/ya-no-quiero-ser-perfeto/

Plataforma traspasable
https://www.comunidadgm.org/juegos-completos/plataforma-traspasable/

Vitel toné
https://www.comunidadgm.org/juegos-completos/como-preparar-vitel-tone-concurso-de-navidad-2019/

Fundamentos básicos de Godot
https://www.comunidadgm.org/juegos-completos/fundamentos-basicos-de-godot/

El rescate de la tabla de multiplicar
https://www.comunidadgm.org/juegos-completos/el-rescate-de-la-tabla-de-multiplicar/

Queremos ser abogados
https://www.comunidadgm.org/juegos-completos/queremos-ser-abogados-we-want-to-be-lawyers/

La hora de inspiración
https://www.comunidadgm.org/juegos-completos/queremos-ser-abogados-we-want-to-be-lawyers/

The man
https://www.comunidadgm.org/juegos-completos/the-man/

El oro para mi madre
https://www.comunidadgm.org/juegos-completos/el-oro-para-mi-madre/
#9
Juegos completos / Euforia
Noviembre 21, 2022, 09:50:43 PM


Esta es la lista de mis juegos:

Tengo que reeditarlos para que todos se vuelvan multiplataforma.

No-Guns
https://www.comunidadgm.org/juegos-completos/no-guns/

Euforia
https://www.comunidadgm.org/juegos-completos/euforia/

La busqueda del juego predilecto
https://www.comunidadgm.org/juegos-completos/la-busqueda-del-juego-predilecto/

Pong
https://www.comunidadgm.org/juegos-completos/pong/

La chica del campamento
https://www.comunidadgm.org/juegos-completos/la-chica-del-campamento/

30 pepas
https://www.comunidadgm.org/juegos-completos/30pepas-128517/

La carreta precisa + score online
https://www.comunidadgm.org/juegos-completos/la-carreta-precisa-score-online/

La carreta precisa
https://www.comunidadgm.org/juegos-completos/la-carreta-precisa/

Agua pal pueblo
https://www.comunidadgm.org/juegos-completos/agua-pal-pueblo/

El piloto sin licencia
https://www.comunidadgm.org/juegos-completos/el-piloto-sin-licencia/

Adiós capitán
https://www.comunidadgm.org/juegos-completos/adios-capitan/

Aferrate a mí
https://www.comunidadgm.org/juegos-completos/aferrate-a-mi/

El pan de nuestra familia
https://www.comunidadgm.org/juegos-completos/el-pan-de-nuestra-familia/

ABC
https://www.comunidadgm.org/juegos-completos/abc/

Wikipedia JavaScript 2020
https://www.comunidadgm.org/juegos-completos/wikipedia-javascript-2020/

Ya no quiero ser perfeto
https://www.comunidadgm.org/juegos-completos/ya-no-quiero-ser-perfeto/

Plataforma traspasable
https://www.comunidadgm.org/juegos-completos/plataforma-traspasable/

Vitel toné
https://www.comunidadgm.org/juegos-completos/como-preparar-vitel-tone-concurso-de-navidad-2019/

Fundamentos básicos de Godot
https://www.comunidadgm.org/juegos-completos/fundamentos-basicos-de-godot/

El rescate de la tabla de multiplicar
https://www.comunidadgm.org/juegos-completos/el-rescate-de-la-tabla-de-multiplicar/

Queremos ser abogados
https://www.comunidadgm.org/juegos-completos/queremos-ser-abogados-we-want-to-be-lawyers/

La hora de inspiración
https://www.comunidadgm.org/juegos-completos/queremos-ser-abogados-we-want-to-be-lawyers/

The man
https://www.comunidadgm.org/juegos-completos/the-man/

El oro para mi madre
https://www.comunidadgm.org/juegos-completos/el-oro-para-mi-madre/
#10
General / Crear un motor.
Noviembre 08, 2022, 08:13:12 PM
Resumen del presente post creado por you.com

Esta web trata sobre el desarrollo de un motor de juego para juegos HTML5. Se discuten los conceptos básicos necesarios para comprender cómo funciona un motor de juego, desde la estructura y el formato de los datos hasta los elementos de diseño y la creación del código. Se describen las principales etapas del desarrollo de un motor de juego, incluyendo la recopilación de datos, la implementación de una interfaz de usuario y la creación de un motor de juego y una aplicación. Además, se discuten los beneficios y limitaciones del uso de un motor de juego y los mejores enfoques para optimizar su rendimiento. Finalmente, se discuten las herramientas y bibliotecas disponibles para ayudar en el desarrollo de un motor de juego.





Voy a indicarles las características que deberá tener el motor cuando esté terminado:

1.    Creación rápida de juegos: No requiere saber programar, solo escoges los diversos objetos de una galería y los pegas en una room.
2.    Publicación inmediata: El sistema podría publicar y alojar al juego inmediatamente en una web especial, ahorrando los minutos que se invierten normalmente para publicar.
3.    Sistema multiplataforma: El sistema tiene pensado crearse con javascript mediante html5 lo que brinda la posibilidad de crear una herramienta capaz de ejecutarse en cualquier sistema, es decir que inmediatamente creado el motor podría ejecutarse tanto en móviles como en pcs, ipads y más.
4.    Juegos multiplataforma: Los juegos igualmente podrían se multiplataforma.
5.    Gratuidad: El sistema deberá ser gratuito.
6.    Libre: El motor se entregará completamente y su sistema interno también sería público para que todos vean cómo funciona y puedan comprenderlo, copiarlo y modificarlo.
7.    Score online y multiplayer online: Implementación sencilla sin programación.
8.    Fusión: deberá contar con un sistema que permita que dos juegos al ser fusionados generen un tercero el cual presenta las características de ambos
9.    Traducción: Con la ayuda del traductor de google u otro, automáticamente pudiese traducirse todos los textos del juego al lenguaje del jugador.
#11
General / imagen juego
Noviembre 02, 2022, 09:08:19 PM
Hola, saludos aquí voy a colocar algunas ideas sobre imágenes jugables.



#12
General / Audio HTML5
Agosto 04, 2022, 03:37:56 PM
hola, saludos a todos.

Los juegos html5 de game maker studio 1.4 presentan problemas con audio y aquí les iré dejando algunas soluciones:



//Obligatorio Para el evento create:
if audio_system() == audio_old_system
    {
    global.SS = false;
    }
 else
    {
    global.SS = true;
    }



//Para iniciar y parar un sonido;
audio=4;//Ejemplo del numero del sonido, en este caso es: sound4.
if(audio_is_playing(audio))
{
    if(global.SS)
    {
    audio_stop_sound(audio);
    }
    else
    {
    sound_stop(audio);
    }
   
}
else
{
    if(global.SS)
    {
    audio_play_sound(audio, 10, false);
    }
    else
    {
    sound_play(audio);
    }
}


//Reglas de sonido:
Para evitar problemas con los sonidos en html5 se deben seguir las siguientes recomendaciones:

A) El primer audio que se debe escuchar debe ejecutarse a hacer click y debe ser formato midi, pequeño y prefriblemente sin volumen.

B) Para verificar si el juego html5 tiene audio correctamente es necesario subir el html5 a un servidor web o usar xampp.


Luego mejoro el post.

#13


La busqueda del juego predilecto


Plataformas


GM5

¿Que tipo de juego se necesita en la actualizad?, Descubramos el misterio.






http://estudiosistemas.infinityfreeapp.com/Dixon/games/laBusquedaDelJuegoPredilecto/


Más información:
Lamentablemente no funciona en dispositivos móviles porque se me olvido agregar un simple código y no tengo tiempo por ahora para arreglarlo.  :'(
#14
Desarrollo de Scripts / draw_highscore_plus
Junio 28, 2022, 04:03:13 PM
Autor: Reyes Dávila
breve descripción de su función: Dibuja una tabla de highscore adaptado a cualquier pantalla y bien organizado.
Versiones usadas: Game maker studio 1 y 2.




/*
Instrucciones:
1. Este script debe ser llamado: draw_highscore_plus;
2. En game maker studio 2 utilizar: function draw_highscore_plus(argument0,argument1,argument2){
3. Colocar en evento Draw/dibujo: draw_highscore_plus(color fondo,color titulo, color fuente);
4. Ejemplo: draw_highscore_plus(c_teal,c_navy,c_black);
*/


titulo_DXNS0006="Top Ten Players";

color_fondo_DXNS0006=argument0;
color_titulo_DXNS0006=argument1;
color_fuente_DXNS0006=argument2;
porcentaje_DXNS0006=95;
proporcion_DXNS0006=2/3;
scoreW_DXNS0006=porcentaje_DXNS0006*room_width/100;
scoreH_DXNS0006=scoreW_DXNS0006/proporcion_DXNS0006;
while(scoreH_DXNS0006>(95*room_height/100))
{
    porcentaje_DXNS0006-=1;
    scoreW_DXNS0006=porcentaje_DXNS0006*room_width/100;
    scoreH_DXNS0006=scoreW_DXNS0006/proporcion_DXNS0006;
}

scorex1_DXNS0006=(room_width-scoreW_DXNS0006)/2;
scorex2_DXNS0006=scorex1_DXNS0006+scoreW_DXNS0006;
scorey1_DXNS0006=(room_height-scoreH_DXNS0006)/2;;
scorey2_DXNS0006=scorey1_DXNS0006+scoreH_DXNS0006;

draw_set_color(color_fondo_DXNS0006);
draw_roundrect(scorex1_DXNS0006,scorey1_DXNS0006,scorex2_DXNS0006,scorey2_DXNS0006,0);

draw_set_color(color_titulo_DXNS0006);
width_DXNS0006=string_width(titulo_DXNS0006);
titulox_DXNS0006=scorex1_DXNS0006+(scoreW_DXNS0006-width_DXNS0006)/2;
tituloY_DXNS0006=scorey1_DXNS0006+7*scoreH_DXNS0006/100;
draw_text(titulox_DXNS0006,tituloY_DXNS0006,titulo_DXNS0006);

draw_set_color(color_fuente_DXNS0006);

for(i_DXNS0006=1;i_DXNS0006<=10;i_DXNS0006+=1)
{
    nombre_DXNS0006=string(highscore_name(i_DXNS0006))+".................................................................";
    txt_DXNS0006=string(i_DXNS0006)+". "+string(nombre_DXNS0006)+string(highscore_value(i_DXNS0006));
    while(string_width(txt_DXNS0006)>90*scoreW_DXNS0006/100)
    {
        length_DXNS0006=string_length(nombre_DXNS0006);
        nombre_DXNS0006=string_delete(nombre_DXNS0006,length_DXNS0006-5,1);
        txt_DXNS0006=string(i_DXNS0006)+". "+string(nombre_DXNS0006)+string(highscore_value(i_DXNS0006));
    }
    txt_DXNS0006=string(i_DXNS0006)+". "+string(nombre_DXNS0006);
    x1_DXNS0006=scorex1_DXNS0006+5*scoreW_DXNS0006/100;
    y1_DXNS0006=scorey1_DXNS0006+10*scoreH_DXNS0006/100;
    draw_text(x1_DXNS0006,y1_DXNS0006+i_DXNS0006*30,txt_DXNS0006);

    txt_DXNS0006=string(highscore_value(i_DXNS0006));
    width_DXNS0006=string_width(txt_DXNS0006);
    x1_DXNS0006=scorex1_DXNS0006+95*scoreW_DXNS0006/100-width_DXNS0006;
    draw_text(x1_DXNS0006,y1_DXNS0006+i_DXNS0006*30,txt_DXNS0006);
}





Úsenlo junto al script highscore online para tener una agradable tabla de puntuaciones online sin saber de php,sql o hosting.

script hishcore_online instantáneo:
https://www.comunidadgm.org/desarrollo-de-scripts/highscore_online-instantaneo/

:'(  Tengo más de 15 años deseando un script como este de score online y porfín lo he conseguido, espero que les sirva. :-[




#15
Autor del script: Reyes Dávila (Dixon)
Nombre del script: angle_lines(x1,y1,x2,y2,x3,y3,sentido);
Breve descripción de su función: Devuelve el ángulo que forman dos líneas que tienen un punto en común.
Versiones usadas: Game maker 4. Debe funcionar en todas las versiones superiores. Sí funciona en Game maker studio 2.
Versión del script: 1 


//angle_lines(x1,y2,x2,y2,x3,y3,sentido);
//Devuelve el ángulo que forman dos líneas rectas que tienen un punto en común.
//Serial del script: _DXNS004

//Entrada de datos:
ix_DXNS004=argument0;
iy_DXNS004=argument1;
x1_DXNS004=argument2;
y1_DXNS004=argument3;
x2_DXNS004=argument4;
y2_DXNS004=argument5;
sentido_DXNS004=argument6;

pendiente1_DXNS004=(y1_DXNS004-iy_DXNS004)/((x1_DXNS004-ix_DXNS004)+0.0001*((x1_DXNS004-ix_DXNS004)=0));
pendiente2_DXNS004=(y2_DXNS004-iy_DXNS004)/((x2_DXNS004-ix_DXNS004)+0.0001*((x2_DXNS004-ix_DXNS004)=0));
pendiente1y2_DXNS004=(pendiente1_DXNS004-pendiente2_DXNS004)/((1+pendiente1_DXNS004*pendiente2_DXNS004)+0.0001*((1+pendiente1_DXNS004*pendiente2_DXNS004)=0));

//primera salida de datos:
angulo_DXNS004=arctan(pendiente1y2_DXNS004)*57.296;

direction2_DXNS004=point_direction(ix_DXNS004,iy_DXNS004,x1_DXNS004,y1_DXNS004);
distance2_DXNS004=point_distance(ix_DXNS004,iy_DXNS004,x1_DXNS004,y1_DXNS004);
direction3_DXNS004=point_direction(ix_DXNS004,iy_DXNS004,x2_DXNS004,y2_DXNS004)-direction2_DXNS004;
distance3_DXNS004=point_distance(ix_DXNS004,iy_DXNS004,x2_DXNS004,y2_DXNS004);
x4_DXNS004=ix_DXNS004+distance2_DXNS004*cos(0);
y4_DXNS004=iy_DXNS004-distance2_DXNS004*sin(0);
x5_DXNS004=ix_DXNS004+distance3_DXNS004*cos(direction3_DXNS004*pi/180);
y5_DXNS004=iy_DXNS004-distance3_DXNS004*sin(direction3_DXNS004*pi/180);


angulo2_DXNS004=abs(angulo_DXNS004);

if((y5_DXNS004<y4_DXNS004) and (sign(angulo_DXNS004)=-1)){angulo2_DXNS004=180-angulo2_DXNS004}
if((y5_DXNS004=y4_DXNS004) and (x5_DXNS004<x4_DXNS004)){angulo2_DXNS004=180}
if((y5_DXNS004>y4_DXNS004) and (sign(angulo_DXNS004)=1)){angulo2_DXNS004=180+angulo2_DXNS004}
if((y5_DXNS004>y4_DXNS004) and (sign(angulo_DXNS004)=-1)){angulo2_DXNS004=360-angulo2_DXNS004}
if(sentido_DXNS004){angulo2_DXNS004=360-angulo2_DXNS004}

return angulo2_DXNS004;



Modo de uso:

angle_lines(x1,y1,x2,y2,x3,y3,sentido): Este script es parecido al script que dibuja un triángulo. En x1 y y1 colocar el punto de colision entre las dos líneas, en x2 y y2 colocar la línea que representará la base en donde se comenzarán a contar los ángulos, y en x3 y y3 colocar un punto de la segunda línea, la cual es la línea móvil que formará el ángulo. En sentido colocar el sentido como se contarán los ángulos, normalmente se coloca -1 para sentido anti horario (como nos enseñaron en la escuela) y 1 para sentido horario.

Aquí dejo unas imágenes que pueden servir se guía:











Si existe alguna duda pueden consultarme por esta web.


Cómo funciona el script
El script calcula la pendiende de ambas líneas y con esto calcula la arco tangente para finalmente multiplicar el resultado por 57.296 para obtener el ángulo. Luego gira el triángulo que se forma para ubicar la línea de base de forma paralela al eje x para luego hacer comparaciones y obtener ángulos superiores a 90 grados.


Más información
El desarrollo de este script sigue vigente, estoy trabajando para que adquiera compatibilidad en todos los game makers ya que me puede servir en la creación de juegos de fake 3d.


Bibliografia del script
Este script lo construí en dos semanas aproximadamente y para lograrlo tuve que consultar muchos tutoriales sobre triángulos, angulos, y trigonometría. Estos son algunos de los consultados:


https://www.youtube.com/watch?v=PKeUzxt-C_k&list=LL&index=4
https://www.youtube.com/watch?v=c0SGuIk0Wds&list=LL&index=5
https://www.youtube.com/watch?v=gaJk7f_MPX4&list=LL&index=11
https://www.youtube.com/watch?v=k5ZmqESAMpw&list=LL&index=14


Bye...


#16
Desarrollo de Scripts / arctan(x)
Junio 19, 2022, 10:47:44 AM
Autor del script: Reyes Dávila (Dixon)
Nombre del script: arctan(x);
Breve descripción de su función: Devuelve la arco tangente de x.
Versiones usadas: Game maker 1, 2, 3, 4, al parecer funciona en todas las versiones.
Versión del script: 1 


//arctan_compatible(x)
//Calcula la arcotangente de x.
//para mayor precisión usar presicion_DXNS001=0.0001; //mientras más decimales mayor precisión.
//SeriAl del script: _DXNS001.


precision_DXNS001=0.01;
pendienteEntrada_DXNS001=argument0;
pendienteSalida_DXNS001=0;
continuar_DXNS001=1;
for(i_DXNS001=-pi/2; i_DXNS001<(pi/2) and continuar_DXNS001;i_DXNS001+=precision_DXNS001)
{
pendienteSalida_DXNS001=tan(i_DXNS001);
if(pendienteSalida_DXNS001>=pendienteEntrada_DXNS001){continuar_DXNS001=0}
}

radianes_DXNS001=i_DXNS001;

return radianes_DXNS001;



Más información
Este script fue creado para poder calcular la arco tangente en las versiones viejas GM1 y GM2 (año 2000), ya que no cuentan con esta función.

Este script carece de precisión y para aumentarla hay que aumentar la cantidad de decimales de la variable precision_DXNS001=0.01, ejemplo:  precision_DXNS001=0.00001. Al aumentar la precisión la velocidad de cálculo disminuye.

¿Cómo funciona el script?
El script crea un bucle que va desde –pi/2 hasta pi/2 para comparar el valor de x con tan(x), porque la arcotangente se calcula encontrando el valor que la tangente recibió para devolver la x de entrada.

Para lograr el script tuve que ver muchos videos de ángulos y uno de los que más me sirvió para comprender el cálculo de la arco tangente es el siguiente:

https://www.youtube.com/watch?v=1MjNl0m-g3c&list=LL&index=17&t=311s
El youtuber me dió un like por el comentario que le hice sobre el video.  :)

Tengo pensado seguir añadiendo información a este post ya que hay otras cosas extrañas e interesantes involucradas en el tema pero por los momentos no tengo mucho tiempo.

Bye...

#17
Juegos completos / Pong
Junio 11, 2022, 10:23:38 PM


Pong


...


All GM

Es un Script que contiene el juego de pong.






No se descarga, para jugar hay que copiar el código e introducirlo en game maker.
{
if(score<2)
{
juegoEstado="portada";
juegoEstadoCreate=1;
score=2;

celdas=17;

//#Bloquear="
roomwidth=room_width;
roomheight=room_height;
//"

celdaW_asd=roomwidth/celdas;
celdaH_asd=roomheight/celdas;

ballW_asd=1*celdaW_asd-2;
ballH_asd=1*celdaH_asd-2;

ballx_asd=8*celdaW_asd;
bally_asd=8*celdaH_asd;

balldx_asd=1-2*floor(random(2));
balldy_asd=1-2*floor(random(2));
ballxstar_asd=ballx_asd;
ballystar_asd=bally_asd;
ballVelocidadInicial=4;
ballVelocidad=ballVelocidadInicial;
ballVelocidadMaxima=10;

ballEstado="stop";
ballEstadoCreate=1;
ballTiempo=0;
ballTiempo2=0;
ballAceleracion=0.5;

tabla1H_asd=5*celdaH_asd-2;
tabla1W_asd=1*celdaW_asd-2;
tabla1ypos_asd=7*celdaH_asd;
tabla1x1_asd=1*celdaW_asd;
tabla1y1_asd=tabla1ypos_asd;
tabla1Velocidad=12;

tabla2H_asd=5*celdaH_asd-2;
tabla2W_asd=1*celdaW_asd-2;
tabla2ypos_asd=7*celdaH_asd;
tabla2x1_asd=15*celdaW_asd;
tabla2y1_asd=tabla2ypos_asd;
tabla2VelocidadInicial=12;
tabla2Velocidad=tabla2VelocidadInicial;
tabla2posicion=0;
tabla2posicionx=tabla2x1_asd+tabla2W_asd/2;
tabla2posiciony=0;

mb=0;

puntoP2=0;
puntoP1=0;
}

//botones a usar
//#bloquear="
if(keyboard_check(113)){game_restart()}
//mbp=(mb=0)*(mouse_button=1);
mousebutton=mouse_button;
//"
mb=(mousebutton=1);


if(juegoEstado="portada")
{
if(juegoEstadoCreate)
{
tiempo=0;
juegoEstadoCreate=0;
}
x1=8*celdaW_asd;
y1=5*celdaH_asd;
txt="Pong";
draw_text(x1,y1,txt);
tiempo+=1;
if(mb and tiempo>30){juegoEstado="juego";juegoEstadoCreate=1}
}


if(juegoEstado="final")
{
if(juegoEstadoCreate)
{
juegoEstadoCreate=0;
tiempo=0;
x1=7*celdaW_asd;
y1=5*celdaH_asd;
}
tiempo+=1;
x1=7*celdaW_asd;
y1=5*celdaH_asd;
txt="Gana el humano";
if(puntoP2>puntoP1){txt="Gana la PC"}
draw_text(x1,y1,txt);
if(mb and (tiempo>20)){score=0}
}


if(juegoEstado="juego")
{
if(juegoEstadoCreate)
{
juegoEstadoCreate=0
}


tabla1ypos_asd+=tabla1Velocidad-2*mb*tabla1Velocidad;


if(balldx_asd)
{
if((tabla2posiciony-ballH_asd)>(tabla2ypos_asd+(tabla2H_asd/4))){tabla2ypos_asd+=tabla2Velocidad}
if(tabla2posiciony<(tabla2ypos_asd+(tabla2H_asd/4))){tabla2ypos_asd-=tabla2Velocidad}
}

if((balldx_asd=-1) || (ballEstado="stop"))
{
if(tabla2ypos_asd>celdaH_asd*6){tabla2ypos_asd-=tabla2Velocidad}
if(tabla2ypos_asd<celdaH_asd*6){tabla2ypos_asd+=tabla2Velocidad}
}


if(ballEstado="play")
{
if(ballEstadoCreate)
{
ballEstadoCreate=0;
ballVelocidad=ballVelocidadInicial;
ballTiempo=0;
ballTiempo2=0;
ballx_asd=ballxstar_asd;
bally_asd=ballystar_asd;
balldx_asd=1-2*floor(random(2));
balldy_asd=1-2*floor(random(2));
tabla2Velocidad=tabla2VelocidadInicial;
}


ballTiempo+=ballVelocidad;
if(ballTiempo>=30)
{
ballTiempo=0;
ballx_asd+=balldx_asd*celdaW_asd;
bally_asd+=balldy_asd*celdaH_asd;
}


ballTiempo2+=1;
if(ballTiempo2>=30)
{
ballTiempo2=0;
ballVelocidad+=ballAceleracion;
if(ballVelocidad>ballVelocidadMaxima){ballVelocidad=ballVelocidadMaxima}
}


if(ballx_asd>(roomwidth-celdaW_asd)){ballx_asd=(roomwidth-celdaW_asd);ballEstado="stop";puntoP1+=1;ballEstadoCreate=1}
if(ballx_asd<0){ballx_asd=0;ballEstado="stop";puntoP2+=1;ballEstadoCreate=1}
c1=(puntoP1=3);
c2=(puntoP2=3);
if(c1 || c2){juegoEstado="final";juegoEstadoCreate=1}

}
else
{
if(ballEstadoCreate)
{
ballEstadoCreate=0;
ballTiempo=0;
}
ballTiempo+=1;
if((ballTiempo>30) and mb){ballEstado="play";ballEstadoCreate=1}
ballVelocidad=0;
}

}//fin if(juegoEstado="juego")



c1=(ballx_asd>tabla1x1_asd);
c2=(ballx_asd<tabla1x1_asd+tabla1W_asd+celdaW_asd);
c3=((bally_asd+1*ballH_asd)>tabla1y1_asd);
c4=(bally_asd<tabla1y1_asd+tabla1H_asd);
if(c1 and c2 and c3 and c4){balldx_asd=1}

c1=((ballx_asd+ballW_asd)<(tabla2x1_asd+tabla2W_asd));
c2=((ballx_asd+ballW_asd)>(tabla2x1_asd-celdaW_asd));
c3=((bally_asd+1*ballH_asd)>tabla2y1_asd);
c4=(bally_asd<tabla2y1_asd+tabla2H_asd);
c5=(balldx_asd=1);
if(c1 and c2 and c3 and c4 and c5){balldx_asd=-1;tabla2Velocidad-=1;if(tabla2Velocidad<0.5){tabla2Velocidad=0.5}}

if(bally_asd>(roomheight-1*celdaH_asd)){bally_asd=(roomheight-1*celdaH_asd);balldy_asd=-1}
if(bally_asd<0){bally_asd=0;balldy_asd=1}

x1=1+ballx_asd;
y1=1+bally_asd;
draw_line(x1,y1,x1+ballW_asd,y1);
draw_line(x1+ballW_asd,y1,x1+ballW_asd,y1+ballH_asd);
draw_line(x1+ballW_asd,y1+ballH_asd,x1,y1+ballH_asd);
draw_line(x1,y1+ballH_asd,x1,y1);


if(balldx_asd and balldy_asd){balldirection=-45}
if(balldx_asd and !balldy_asd){balldirection=45}
if(!balldx_asd and !balldy_asd){balldirection=135}
if(!balldx_asd and balldy_asd){balldirection=225}

pdx_asd=balldx_asd;
pdy_asd=balldy_asd;
pdirection=balldirection;

if(pdx_asd and pdy_asd){pdirection=-45}
if(pdx_asd and !pdy_asd){pdirection=45}
if(!pdx_asd and !pdy_asd){pdirection=135}
if(!pdx_asd and pdy_asd){pdirection=225}

x1=ballx_asd;
y1=bally_asd;
x2=x1;
y2=y1;

tabla2posicion=0;

i=0;
repeat(16)
{
i+=1;
x2=x1+i*celdaW_asd*cos(pdirection*pi/180);
y2=y1-i*celdaH_asd*sin(pdirection*pi/180);
if(y2>roomheight){y2=roomheight;pdy_asd=-1;x1=x2;y1=y2;i=0}
if(y2<0){y2=0;pdy_asd=1;x1=x2;y1=y2;i=0}
if(x2>roomwidth){x2=roomwidth;pdx_asd=-1;x1=x2;y1=y2;i=0}
if(x2<0){x2=0;pdx_asd=1;x1=x2;y1=y2;i=0}

c1=(y2>tabla1ypos_asd);
c2=(y2<(tabla1ypos_asd+tabla1H_asd));
c3=(x2>tabla1x1_asd);
c4=(x2<(tabla1x1_asd+tabla1W_asd));
if(c1 and c2 and c3 and c4){x2=(tabla1x1_asd+tabla1W_asd);pdx_asd=1;x1=x2;y1=y2;i=0}

if(pdx_asd and pdy_asd){pdirection=-45}
if(pdx_asd and !pdy_asd){pdirection=45}
if(!pdx_asd and !pdy_asd){pdirection=135}
if(!pdx_asd and pdy_asd){pdirection=225}

if(tabla2posicion=0)
{
c1=(x2>=(tabla2x1_asd-celdaW_asd));
if(c1){tabla2posicion=1;tabla2posicionx=x2;tabla2posiciony=y2}
}

//draw_pixel(x2,y2);
}

//draw_circle(tabla2posicionx,tabla2posiciony,5);


if(tabla1ypos_asd>(roomheight-tabla1H_asd)){tabla1ypos_asd=(roomheight-tabla1H_asd)}
if(tabla1ypos_asd<0){tabla1ypos_asd=0}
tabla1y1_asd=floor(tabla1ypos_asd/celdaH_asd)*celdaH_asd;
x1=1+tabla1x1_asd;
y1=1+tabla1y1_asd;
draw_line(x1,y1,x1+tabla1W_asd,y1);
draw_line(x1+tabla1W_asd,y1,x1+tabla1W_asd,y1+tabla1H_asd);
draw_line(x1+tabla1W_asd,y1+tabla1H_asd,x1,y1+tabla1H_asd);
draw_line(x1,y1+tabla1H_asd,x1,y1);


if(tabla2ypos_asd>(roomheight-tabla2H_asd)){tabla2ypos_asd=(roomheight-tabla2H_asd)}
if(tabla2ypos_asd<0){tabla2ypos_asd=0}
tabla2y1_asd=floor(tabla2ypos_asd/celdaH_asd)*celdaH_asd;
x1=1+tabla2x1_asd;
y1=1+tabla2y1_asd;
draw_line(x1,y1,x1+tabla2W_asd,y1);
draw_line(x1+tabla2W_asd,y1,x1+tabla2W_asd,y1+tabla2H_asd);
draw_line(x1+tabla2W_asd,y1+tabla2H_asd,x1,y1+tabla2H_asd);
draw_line(x1,y1+tabla2H_asd,x1,y1);

x1=8*celdaW_asd;
y1=1*celdaH_asd;
txt=string(puntoP1)+"/"+string(puntoP2);
draw_text(x1,y1,txt);


}



Modo de uso:

1. Copia el código.
2. Abre tu game maker.
3. Crea un nuevo proyecto.
4. Crea un objeto.
5. Creale un evento draw/dibujo.
6. Pégale el código entregado.
7. Crea una room.
8. Introduce el objeto en la room.
9. Ejecuta el juego.


Más información:

Siempre me han gustado ese tipo de juegos que no necesitan descargarse. Mi objetivo es proporcionar un código compatible para todos los game makers.
Le diseñé un código para que la computadora con la cual vamos a competir sepa en donde va a caer la pelota para que sus movimientos sean más humanos.

Versiones y evolución del código:
Versión uno: solo era compatible desde game maker 4 hasta game maker studio 1.
Versión dos:  se agrega compatibilidad para incluir los 3 game makers más antiguos.
Versión tres:  Ahora es compatible también con Game maker studio 2.



Compatibilidad comprobada: ⭐



Funciona en todos los Game makers desde el antiguo Game Maker 1.4 (june 1, 2000) hasta GameMaker studio 2.
No ha sido verificado si el juego funciona en los game makers para mac pero la teoria dice que sí.



Conocimientos adquiridos en el proceso:
1.   La potencialidad del Game Maker 1.4 (june, 1 2000) es alta, creo que se pueden crear sistemas interesantes de falso 3D.
2.   Game maker 1.4 (june, 1 2000) no usa las constantes: mb_left, mb_right.
3.   El valor inicial del score en game maker studio 2 es 1.
4.   En Game Maker studio 2 para declarar una variable tipo string no se puede usar comillas simples, solo comillas dobles.
5.   Problemas con fps: Las velocidades de procesamiento difieren entre los game makers y la variable fps que pudiese solucionar este problema no está disponible en todas las versiones, tampoco la current_time. Esto significa que los juegos tendrán diferentes velocidades. En otras palabras: la pelota en game maker studio 2 se mueve más rápido que en 1.4 (june 1, 2000).

Nuevos Scripts desarrollados:
1. Script línea trayectoria: es un script que permite ver la trayectoria que seguirá un objeto, sirve para ver la trayectoria que seguira una pelota al colisionar. Este script dibuja una linea la cual se quiebra al colisionar para indicar la direccion que va a seguir. Este script tengo que pulirlo para mostrarlo al público.

Preguntas Dragón:

1.¿Cómo se crearía un script que contenga un juego que funcione en todos los game makers pero que no sea dependiente del game maker, es decir que pueda ejecutarse el juego sin usar ningún game maker?
Esta pregunta tiene varias soluciones, cuando la respondan por el método sencillo se aumentará la complejidad de la pregunta.

2.¿Cómo crear un juego encapsulado en un script compatible con todos los game makers y que contenga score online?
Para responder esta primero se necesitará conocer la respuesta de la primera pregunta en nivel complejo.

Pistas:  .gml .gml  .html .bat

Nuevas ideas:

Sería bueno poder ofrecer recompensas a los primeros que respondan estas preguntas complejas, la idea sería crear sistemas tan valiosos como monedas los cuales sirvan de premio, es decir  el reto sería crear sistemas/juegos de alta calidad de uso exclusivo. Por ahora solo puedo pagar con feedback, es decir el que responda podrá solicitar que le analice un video juego y hablo de un análisis sincero y profundo.

La otra idea va relacionada: crear un modelo de feedback que incluya:
a.   Un game play en video subido a youtube.
b.   Un análisis del juego de principio a fin. Es decir pasar el juego a menos que sea demasiado difícil.
c.   Declarar fallas en el juego y sus posibles correcciones.


Nuevos retos:

Para continuar la creación de este tipo de juegos ahora tengo nuevos retos:

1. Definir tres nuevos scripts:
   a. Línea trayectoria(explicado arriba).
   b. Script que determina el ángulo que forman dos líneas.
   c. Script que calcula la arco tangente. Para poder calcular arcotangente en veriones viejas.

2. Crear sistema de falso 3d.
3. Dominar la creación de mapas alojados en arrays.

Video juegos que tengo pensado crear con este mismo estilo:

1. Uno sobre conducir un vehículo en un plano 2d.
2. Otro sobre conducir un vehículo tipo top gear aplicando pseudocódigo.
3. Uno de fake 3d como doom, aplicando un raycasting original que permita acelerar el procesamiento.
4. La carreta precisa: volver a programar ese juego desde cero pero sin emplear sprites ni background.
otros más y más que se me vallan ocurriendo.
5. Uno sobre el tennis de mesa aplicando las reglas oficiales.

bye...

#18
General / Game maker reliquias
Junio 04, 2022, 04:28:50 PM
Hola, espero que se encuentren bien.

"Game maker reliquias"


Aquí voy a publicar editables y programas de todo tipo que he creado con game maker, también juegos pero todos sin terminar o recién empezados.

Los editables son para game maker 4

Top gear:


Tengo en mente re crear la primera carrera de top gear y en un dia logré solo crear el carro y el horizonte, se deja ejecutable y editable para game maker 4. Se avanza con S y turbo con X.
Descargar aquí topGear

La creación de este juego presenta una dificultad fuerte que involucra principalmente el tema de perspectiva cónica. Si algunos pueden recordar hace tiempo presenté un script llamado draw_cube, el cual permite dibujar un cubo 3D sin activar funciones 3D, ahora para lograr el juego de top gear es necesario crear un script como ese pero que permita crear un cubo ondulado como el siguiente respetando las reglas de perspectiva cónica:



Y eso no es garantía de que la velocidad del juego valla a ser rápida.


Mario bros 1-1


Tengo pensado crear el primer nivel de Mario bros y ofrecer el editable.
Descargar aquí mario 1-1 sin finalizar para game maker 4


Ya_pasará

Es un juego que estoy intentando crear.

Descarga aquí ejecutable y editable para game maker 4

Bueno, me despido, nos vemos luego.










#19
General / Game maker libertad
Junio 04, 2022, 03:29:23 PM
Hola de nuevo, un gusto en saludarlos.

"Game maker libertad"


Permítanme contarles con libertad sobre los problemas que he arrastrado en la creación de juegos por más de 15 años desde que comencé a utilizar game maker.


1.   Problema 1: El miedo a abandonar proyectos fastidiosos. Creo que a nivel mundial existe un consejo que dice "Culmina lo que has empezado". Siempre me he sentido frustrado cuando he trabajado durante un mes en un proyecto y este deja de motivarme, ahora pienso con libertad que si el proyecto se vuelve tedioso debemos desecharlo a la papelera o mejor aún publicar lo  que tenemos, nos olvidarnos de él y comenzamos otro. Si no está completo lo publicamos como juego en desarrollo y si no se puede jugar lo publicamos como recurso para analizar.


2.   Problema 2: El miedo a que nos roben el juego: Debemos olvidarnos de eso. Creo que sería muy provechoso para todos ofrecer los juegos con sus respectivos editables para que otros puedan aprender de él. Si alguien se aprovecha de eso, bien por él.


3.   Problema 3: el factor sorpresa y la desmotivación. A veces trabajamos duro en un juego y ni siquiera hablamos de el a nadie, tenemos la idea de causar impacto aprovechándonos del factor sorpresa. Esto es malo según mi pensamiento ya que se corre el peligro de desmotivarse, además el factor sorpresa tampoco es muy útil; los video juegos terminan siendo olvidados y desechados.


4.   Problema 4: Obras perfectas: a veces no queremos mostrar nuestro juego a menos que no esté pulido y eso puede ser perjudicial por el mismo problema de la desmotivación. La estrategia de creación de juegos que propongo es la de crear juegos imperfectos, publicarlos tal cual y pulirlos solo si se está motivado.


Creo que si dejamos esos problemas atrás lograremos producir juegos con más libertad y mejoraremos nuestras habilidades.


Bueno eso es todo por ahora.


#20
General / Scripts indomables
Junio 03, 2022, 11:04:42 PM
Hola, saludos caramaradas.

"Scripts indomables"


En este post les contaré sobre algunos scripts que intenté programar pero no pude concretarlos:


Script 1: pote de pintura:
Una vez quise crear mi propia herramienta de dibujo y para hacerla completa tenía que desarrollar un código que permitiera colorear un área de dibujo como lo hace el pote de pintura de paint.


El script tenía que recorrer toda el área como si estuviera programando un desbordamiento de agua sobre un laberinto, después de mucho esfuerzo y varios días  de programación logré crear una especie de Sudoku giratorio que se multiplicaba como virus  hasta que encontrase un límite. Algo como eso:


Lo dejé luego de muchos intentos ya que en un momento no logré comprender que más podía hacer.



Script 2: execute_string(str)
El execute string era una función que estuvo presente hasta game maker 8, con ella podíamos transformar un string en un código real, es decir si escribíamos: execute_string("draw_text(0,0,'Hola mundo')") se ejecutaba el draw_text y se mostraba "hola mundo". Con dicha función y un poco de imaginación se podía crear un game maker dentro de game maker. Los ingenieros del GML simplemente la llamaron obsoleta y luego dijeron que al no ser compatible con todos los módulos no era necesaria.




Cuando decidí re crear esta función con el mismo game maker, me topé con el inconveniente de la velocidad de procesamiento, pero esa no fue excusa para seguir adelante, entonces lancé la primera versión "execute_string(str)".

Cuando decidí mejorar el script para presentar una segunda versión, el script reveló un problema complejo que los ingenieros del game maker se negaron a solucionar.




El problema es el siguiente:
Que una simple suma dentro de un string pueda resolverse, ejemplo:
numero = real("5+5");
draw_text(0,0,numero);



Para lograr el "execute_string(str)" no solo hay que resolver ese pequeño inconveniente, también hay que apoyarse fielmente a las reglas matemáticas y crear un código que resuelva strings de ecuaciones, ejemplo: "5+6*17/3+5*(3+2-(4*5))". Y ese es solo el primer reto del script, luego hay que enseñarlo a reconocer funciones, corregirlas de ser necesario y otras cosas extrañas, y todo esto solo para que el resultado final sea medianamente interesante.

Después de muchos esfuerzos y códigos extraños que resolvían funciones de una manera absurda, el script fue aumentando en complejidad, me obligó a empezar de cero varias veces para reorganizar; la dificultad no dejaba de aumentar y a pesar que me divertí en el desarrollo del mismo durante un buen tiempo, lo abandoné, no recuerdo porqué pero creo que me estaba apartando de la sociedad.


Bueno, por ahora me despido, faltó hablarles sobre el script de plataforma 360, el script que permite que el enemigo encuentre al player atravesando muros, y otros que por ahora no recuerdo pero que poco a poco iré mencionando.

¡Bay!