Bueno, no es que garantice que vayas a ser como Will Wright si lees esta guía que acabo de publicar en Colectivo Guma, pero lo que sí te puedo asegurar es que al final de este primer capítulo habrás terminado tu primer juego: Un sencillo PONG para dos jugadores en el mismo teclado. ¿Perfecto para vacilar con tus amigos, verdad?

Como podréis comprobar si lo leéis, está escrito en un formato totalmente diferente a lo habitual y, según lo que me viene diciendo la gente, es mucho más divertido de seguir que las guías tradicionales. Puede que hasta resulte divertido para algunos consumados desarrolladores.

Si alguna vez se os ha pasado por la cabeza lo de crear un juego o simplemente tenéis curiosidad, os lo recomiendo encarecidamente.

Capítulos publicados hasta el momento

Pingbacks to “Guía para aprender a crear videojuegos (Lee esto si quieres ser como Will Wright)”

  1. TiRSO!Blog » Este es Will Wright
  2. TiRSO!Blog » Tercer capítulo de la guía “Quiero Ser Como Will (Wright)”
  3. El primer PONG (incluye vídeo) « miguelSantirso.es
  4. Segundo capítulo de la guía “Quiero Ser Como Will (Wright)” « miguelSantirso.es

35 comentarios en “Guía para aprender a crear videojuegos (Lee esto si quieres ser como Will Wright)”

  1. TiRSO! dice:

    He detectado que el enlace que menciono en la guía ya no funciona. De momento, podéis usar la siguente página para descargarlo: http://fenixpack.blogspot.com/

    Cuando tenga más ganas revisaré el capítulo para adaptarlo a estos cambios.

  2. daniel dice:

    el elace de descara ya no funciona podrias subirlo denuevo porfavor

  3. Ya lo he corregido, ¡Gracias por el aviso!

  4. ignacio dice:

    estoy siguiendo el tutorial y me da error no se que pasa y no lo consigo corregir, me da en “drawing_color” te dejo lo que llevo

    //————————————————-
    //Program: MI PRIMER PONG
    //Author: IGNACIO
    //Team: Team Inforg
    //————————————————-

    ///////////////////////////////////////////
    // Función incial (aquí empieza todo)

    Program MIPONG;
    Global
    int RESOLUCION_X;
    int RESOLUCION_Y;

    int x_Paleta_1;
    int y_Paleta_1;
    int Ancho_paleta_1;
    int Alto_Paleta_1;
    int Color_Paleta_1;
    BEGIN

    // INICIALIZAR ASPECTOS GRÁFICOS

    set_title(“Mi Primer Pong”); // Establece el título de la ventana de juego
    Full_screen = true; // No queremos que se ejecute a pantalla completa
    Graph_mode = mode_16bits; // El modo gráfico será de 16 bits
    set_mode (m640×480); // Resolución de 640×480
    set_fps(60, 60/10); // Establecemos los fps que queremos

    RESOLUCION_X = 640; // Almacenamos en dos variables la resolucion
    RESOLUCION_Y = 480; // para utilizarlo después

    // ESCRIBIR INFORMACIÓN SOBRE EL JUEGO EN PANTALLA
    write(0,10,10,0,”Mi Primer Pong, v. 0.01″);
    write(0,10,20,0,”Team Inforg”);
    write_int(0,300,10,1,&fps);

    // HEMOS TERMINADO DE INICIALIZR, LANZAMOS EL BUCLE PRINCIPAL
    Controlador_Juego(); // Arrancamos el controlador del juego
    END
    ///////////////////////////////////////////
    // Controlador del juego (aquí se controla el juego)

    Process Controlador_juego()
    BEGIN
    Inicializar(); // Inicializar al estado inicial
    Loop // Bucle principal

    If(key(_esc)) // si se pulsa escape
    exit(0,0); // salir del juego
    END
    Dibujar(); // dibujar todos los elementos en pantalla.
    Frame; // Refrescar pantalla
    End // del loop

    End

    ////////////////////////////////////////////
    // Inicializar el juego a su estado inicial

    Process Inicializar()
    BEGIN

    X_Paleta_1=30;
    Y_Paleta_1=240;
    Ancho_Paleta_1=20;
    Alto_Paleta_1=100;

    END

    ///////////////////////////////////////////
    // Dibuja los elementos del juego en pantalla

    Process Dibujar()
    Begin

    clear_screen(); // Limpiar la pantalla
    drawing_map(0,0) // Establecer que se dibuje en el fondo1

    // DIBUJAR PALETA 1

    drawing_color(rgb(0,0,0)); // indicamos el color de dibujo
    draw_box(X_Paleta_1-Ancho_Paleta_1/2, Y_paleta_1-Ancho_paleta_1/2,
    x_Paleta_1 Ancho_Paleta_1/2, y_Paleta_1 Alto_1/2;

    End

    ayudame a ver donde esta el error

  5. Te falta un punto y coma en la linea anterior, la de drawing_map(0,0)

    Sin saber el error concreto que te da el compilador no puedo estar seguro, pero creo que puede ser eso.

    Un saludo.

  6. ignacio dice:

    muchas gracias lo probare

  7. ignacio dice:

    soy yo de nuevo ya corregir el error pero a continuar me da otro error haber si puedes solucionarlo como antes estoy ya en el final del tutorial.
    //————————————————-
    //Program: MI PRIMER PONG
    //Author: IGNACIO
    //Team: Team Inforg
    //————————————————-

    ///////////////////////////////////////////
    // Función incial (aquí empieza todo)

    Program MIPONG;
    Global
    int RESOLUCION_X;
    int RESOLUCION_Y;

    // VARIABLES GLOBALES
    int Velocidad_Paletas;

    //CARACTERISTICAS DE LA PALETA 1

    int X_Paleta_1;
    int Y_Paleta_1;
    int Ancho_Paleta_1;
    int Alto_Paleta_1;
    int Color_Paleta_1;

    //CARACTERISTICAS DE LA PALETA 2

    int X_Paleta_2;
    int Y_Paleta_2;
    int Ancho_Paleta_2;
    int Alto_Paleta_2;
    int Color_Paleta_2;

    //CARACTERISTICAS DE LA BOLA

    int X_BOLA;
    int Y_BOLA;
    int Ancho_BOLA;
    int Alto_BOLA;
    int Color_BOLA;
    int Velocidad_Bola_X = 3;
    int Velocidad_Bola_Y = 3;
    BEGIN

    // INICIALIZAR ASPECTOS GRÁFICOS

    set_title(“Mi Primer Pong”); // Establece el título de la ventana de juego
    Full_screen = false; // No queremos que se ejecute a pantalla completa
    Graph_mode = mode_16bits; // El modo gráfico será de 16 bits
    set_mode (m640×480); // Resolución de 640×480
    set_fps(60, 60/10); // Establecemos los fps que queremos

    RESOLUCION_X = 640; // Almacenamos en dos variables la resolucion
    RESOLUCION_Y = 480; // para utilizarlo después

    // ESCRIBIR INFORMACIÓN SOBRE EL JUEGO EN PANTALLA
    write(0,10,10,0,”Mi Primer Pong, v. 0.01″);
    write(0,10,20,0,”Team Inforg”);
    write_int(0,300,10,1,&fps);

    // HEMOS TERMINADO DE INICIALIZR, LANZAMOS EL BUCLE PRINCIPAL
    Controlador_Juego(); // Arrancamos el controlador del juego
    END
    ///////////////////////////////////////////
    // Controlador del juego (aquí se controla el juego)

    Process Controlador_juego()
    BEGIN
    Inicializar(); // Inicializar al estado inicial
    Loop // Bucle principal

    If(key(_esc)) // si se pulsa escape
    exit(0,0); // salir del juego
    END

    Actualizar(); // Actualiza la lógica del juego
    Dibujar(); // dibujar todos los elementos en pantalla.
    Frame; // Refrescar pantalla
    End // del loop

    End

    ////////////////////////////////////////////
    // Inicializa el juego a su estado inicial

    Process Inicializar()
    BEGIN

    velocidad_paletas = 5;

    // INICIALIZAR PALETA 1
    X_Paleta_1=30;
    Y_Paleta_1=240;
    Ancho_Paleta_1=20;
    Alto_Paleta_1=100;

    // INICIALIZAR PALETA 2
    X_Paleta_2=610;
    Y_Paleta_2=240;
    Ancho_Paleta_2=20;
    Alto_Paleta_2=100;

    // INICIALIZAR BOLA
    X_BOLA=320;
    Y_BOLA=240;
    Ancho_BOLA=15;
    Alto_BOLA=15;

    END

    ///////////////////////////////////////////
    // Dibuja los elementos del juego en pantalla

    Process Dibujar()
    Begin

    clear_screen(); // Limpiar la pantalla
    drawing_map(0,0); // Establecer que se dibuje en el fondo1

    // DIBUJAR PALETA 1

    drawing_color(rgb(255,255,255)); // Indicamos el color de dibujo
    draw_box(X_Paleta_1-Ancho_Paleta_1/2, Y_paleta_1-Alto_paleta_1/2,
    X_Paleta_1 Ancho_Paleta_1/2, Y_Paleta_1 Alto_Paleta_1/2);

    // DIBUJAR PALETA 2

    drawing_color(rgb(255,255,255)); // Indicamos el color de dibujo
    draw_box(X_Paleta_2-Ancho_Paleta_2/2, Y_paleta_2-Alto_paleta_2/2,
    X_Paleta_2 Ancho_Paleta_2/2, Y_Paleta_2 Alto_Paleta_2/2);

    // DIBUJAR BOLA

    drawing_color(rgb(255,255,255)); // Indicamos el color de dibujo
    draw_box(X_BOLA-Ancho_BOLA/2, Y_BOLA-Alto_BOLA/2,
    X_BOLA Ancho_BOLA/2, Y_BOLA Alto_BOLA/2);
    End

    ///////////////////////////////////////////
    // Actualiza la lógica del juego

    Process Actualizar()
    Begin
    //ACTUALIZAR PALETA 1

    // Si se pulsa “arriba” y la paleta no ha llegado arriba
    if(key(_up) AND Y_Paleta_1-Alto_Paleta_1/2 > 50)
    Y_paleta_1 -= velocidad_paletas; // Hacemos que suba
    End

    // Si se pulsa “abajo” y la paleta no ha llegado abajo
    if(key(_down) AND Y_PALETA_1 Alto_Paleta_1/2 50)
    Y_paleta_2 -= velocidad_paletas; // Hacemos que suba
    End

    // Si se pulsa “abajo” y la paleta no ha llegado abajo
    if(key(_m) AND Y_PALETA_2 Alto_Paleta_2/2 < 430)
    Y_Paleta_2 = velocidad_paletas; // Hacemos que baje
    End

    Control_Bola();

    End

    /////////////////////////////////////////
    // Actualiza la lógica de la bola

    Process Control_Bola()
    Begin

    // Colisiones con Paleta 1
    If(velocidad_Bola_X X_Paleta_1 // si la bola está en zona de colisionar con la paleta 1
    && X_Bola-Ancho_Bola/2<=x_Paleta_1 Ancho_Paleta_1/2)

    If(abs(Y_Paleta_1-Y_Bola)0 && X_bola<x_paleta_2 //si la bola está en la zona de colision con la paleta 2
    && x_Bola-Ancho_Bola/2<=x_Paleta_2 Ancho_Paleta_2/2)

    If(abs(Y_Paleta_2-Y_Bola)<Alto_Paleta_2*0.5 Alto_Bola*0.5) // Si la paleta 2 está bien colocada
    Velocidad_Bola_x *=-1;
    End

    //COLISIONES CON PAREDES SUPERIORES E INFERIOR
    If(Velocidad_Bola_Y<0 && Y_Bola-Ancho_Bola*0.5<=50) // si la bola colisiona con la pared superior
    Velocidad_Bola_Y *=-1;
    End

    If(Velocidad_Bola_Y<0 && Y_Bola-Ancho_Bola*0.5<=430) // si la bola colisiona con la pared inferior
    Velocidad_Bola_Y *=-1;
    End

    X_Bola =Velocidad_Bola_X;
    Y_Bola =Velocidad_Bola_Y;
    End

    de nuevo muchas gracias

  8. Tienes que decirme cuál es el error del compilador; si no tendría que revisar todo el código… Además, tienes que intentar acostumbrarte a corregir estos errores por ti mismo: Más adelante no vas a tener a nadie que te revise tu código ;)

    • Emanuel dice:

      Necesito aprender a desarrollar videojuegos, Necesito que me recomiendes documentacion, para leer y aprender… me manejo en C/C++ y visual Basic (Nivel Intermedio)….

      Espero tu respuesta, muchas gracias.

  9. ignacio dice:

    tienes razon lo revisare yo mismo gracias

  10. ignacio dice:

    Ya he terminado el juego y lo e modificado, lo pongo como ejemplo.

    http://rapidshare.de/files/40368351/mi_pinpollo.rar.html

  11. ¡Muy bien! Pero has cometido un pequeño error al generar el .rar… Tienes que incluir también el archivo con extensión .dcb, que es en realidad el que contiene toda la información del juego. Sin eso no puedes ejecutarlo.

    Si lo corriges y me pasas el enlace nuevo, igual escribo una entrada en el blog para q lo vea todo el mundo ;)

  12. ignacio dice:

    Perdón ese era el fácil este es el enlace del juego en modo normal.
    rapidshare.de/files/40378084/mipinpollo.rar.html

  13. Me lo he descargado y no me funciona… Dice que el formato del .dcb es incorrecto. Si a ti te funciona seguramente sea por algún problema concreto del Windows Vista, o vaya usted a saber… xD

    Si quieres, puedes grabar un pequeño vídeo (de unos pocos segundos, tampoco forcemos) y también lo pondría en una entrada de mi blog.

    También, si te interesa esto de hacer videojuegos, te recomiendo que te introduzcas en el foro de stratos-ad (http://forums.stratos-ad.com). Esa es seguramente la comunidad más activa de desarrolladores de juegos hispanohablantes y seguro que te ayudará un montón a seguir avanzando.

  14. mario dice:

    heyy estoy interesado en crear videojuegos…ablo en boca de cuatro fantasmillas k somos XD k estamos empezando en esto…uno d nosotros kontrola muxisisisimo mac ..yo controlo linux un poko y tngo estudios de musika y se usar varios programas para crear…y luego tnemos a otro que se encargaria del rollo de grafikos enkuanto a crear un personaje …y otra que se le da mu bien los guiones y todo eso….bueno como e dicho estamos empezando y e visto este tutorial par air yo poniendome a kaldo por mi parte….el problema esque me pierdo cuando hay tanto link podrias indicarme que archivo necesito bajar del fenix ese…y en donde porque me baje el fenixpack2.9 pero eso no tiene lo que nombras en la guia.

    gracias

    PD:buenisima guia es mucho mas amena que cualkier toste d esos que t enkuentras por google oi en dia^^

  15. mario dice:

    ten en cuenta k uso ubuntu 8.10 y abro los archivos para windows con el wine^^

  16. mario dice:

    ya me funciona..pero el archivo zlib1.dll no lo enkuentro :S

  17. mario dice:

    ME LO E BAJADO A PARTE FUNCIONARA?…ESPERO K SI…M GUSTA M GUSTA :p

  18. mario dice:

    siento ser tan pesado..pero solo dispongo de linux y la konsola de windows no m ayuda muxo kuando aparece en la guia….no m ejecuta el cmd que pides…supongo porke se referira a la consola d windows…entonces abro la terminal d ubuntu …pero d ai palante no se komo llegar a la karpeta y aser el resto :S lo siento

  19. Jose dice:

    Buenas, voy a empezar a revisar el tuto a ver q tal. Por lo pronto leo que algunos tienen problemas con la descarga…
    Aqui pongo el enlace para los archivos de windows:
    http://fenix.divsite.net/download/Fenix-084b-win32-binary.zip
    Y aqui los de linux:
    http://fenix.divsite.net/download/Fenix-084b-win32-binary.zip

    Un saludo

  20. Jose dice:

    Perdonad copie el enlace de windows 2 veces xD
    El enlace para los archivos de linux es:
    http://fenix.divsite.net/download/Fenix-084b-bin.tar.gz

  21. Pablo dice:

    Una pregunta, el Fenixpack solo sirve para Linux o tamien en windows?
    Gracias

  22. Pablo dice:

    Otra pregunta, me baje las 6 cosas que hay aki ya que el link que hay en la guía no sirve
    http://fenixpack.blogspot.com/
    me lo bajé de ahí
    Fenix Docs
    Installer Tools
    Basic examples
    medium examples
    advanced examples
    dll examples
    Que hago con los 6 archivos? como funciona eso?

  23. oscar dice:

    hola me pasa k hago el primer codigo i no me da ningun error al compilar con el codigo

    //Author: Oscar
    //Team: Team Inforg
    //————————————————————–
    //////////////////////////////////////////////////////
    // Funcion inicial (aqui empieza todo)

    Program MIPONG;
    Global
    int RESOLUCION_X;
    int RESOLUCION_Y;
    BEGIN

    //INICIALIZAR ASPECTOS GRAFICOS
    set_title (“Mi primer pong”);
    Full_screen = false;
    Graph_mode = mode_16bits;
    set_mode (m640×480);
    set_fps (60, 60/10);

    RESOLUCION_X = 640;
    RESOLUCION_Y = 480;

    write(0,10,10,0, “Mi primer Pong, v. 0.01″);
    write(0,10,20,0, “Team Inforg”);
    write_int(0,300,10,1,&fps);

    Controlador_Juego();
    END

    Process Controlador_Juego();
    BEGIN

    Loop
    if (key(_esc))
    exit (0, 0);
    End

    Frame;

    End
    END

    el problema es que obtengo el dcb i lo interpreto con el FXI i me da error

    si alguien tiene la respuesta le estaria muy agradecido
    gracias de antemano

  24. hernan dice:

    Lei el primer capitulo
    muy bueno
    pero eso paso de verdad???
    lo digo por curiosidad ^^
    y como puedo hacer para que se reinicie la bola cuando se va?
    es que no se mucho de computacion
    se poquito y queria saber si podias ayudarme
    salu2!

  25. UKu3 dice:

    Hola que Tal señor Miguel
    Bueno lo que pasa que yo desde pequeño he querido hacer videojuegos es lo que mas me gusta
    y de verdad le agradesco por estos tutoriales SOn muy buenos para comenzarte a meterte en el tema Muchas gracias
    Esperto algun dia ser mejor que usted
    Gracias No mames Es usted Genial
    EChenle cacumen

  26. Alejandro dice:

    hola mi nombre es alejandro y ps a mi me gusta mucho todo esto de la cultura de los videojuegos. se podria decir que soy un vicio para los videojuegos pero puedo controlarlo, pero no solo me gusta jugarlos tambien me gustaria crear.
    he creado un juego con FPScreator pero quiero algo mas que eso, quiero hacer mis propios juegos desde cero, quiero hacer de mis pensamientos e imaginaciones un videojuego por eso pido ayuda.
    pues me llamo mucho la atencion esta guia que pusiste por que no es aburrida como cualquier otra guia por eso te felicito. ademas de ser como un libro de una historia para leer es una exelente guia para desarrollar videojuegos.
    mi problema es que descargue el fenix que dice la guia, empece todo muy bien, hice los codigos como lo decia, iba todo bien hasta que al compilar el juego con el FXI me aparecio un error de que el compilador no sirve, intente buscarlo en google pero no encontre nada y los links que pusiste aca ya no funcionan.
    por favor quiero seguir con esto ya que me gusta muchisimo asi que si pudieras arreglar los links o poner otro te lo agradecere, me urge por favor.
    saludos a todos.

Deja una Respuesta