goku
goku game engine_es
goku game engine_es
  • Capítulo 1: Introducción a SDL2, Rust y Goku
  • Capítulo 2: La Estructura Base: SpriteSheet
  • Capítulo 3: Texturas Animadas
  • Capítulo 4: Manejo de Texturas: TextureManager
  • Capítulo 5: Dando Vida a las Texturas: GameObject
  • Capítulo 6: La Base: Sistema de Baldosas
  • Capítulo 7: Moviendo la Vista: Cámara
  • Capítulo 8: Sistema de Partículas
  • Capítulo 9: La Capa de Interfaz de Usuario
  • Capítulo 10: El Elemento de Botón
  • Capítulo 11: El Elemento de Cuadro de Texto
  • Capítulo 12: El Elemento de Casilla de Verificación
  • Capítulo 13: El Elemento de Deslizador
  • Capítulo 14: El Sistema de Audio
  • Capítulo 15: El Sistema de IA
  • Capítulo 16: El Sistema de Ventana
  • Capítulo 17: Manejo de la Entrada del Usuario
  • Capítulo 18: Renderización de un Fondo de Paralaje
  • Capítulo 19: Gestión del Tiempo y la Tasa de Fotogramas
  • Capítulo 20: Conclusión
Powered by GitBook
On this page
  • Introducción
  • ¿Qué es Rust?
  • ¿Qué es SDL2?
  • ¿Qué es Goku?
  • Configurando tu entorno de desarrollo en Rust y Goku
  • Escribiendo tu primer programa en Goku
  • Conclusión

Capítulo 1: Introducción a SDL2, Rust y Goku

Introducción

¡Bienvenido al emocionante mundo del desarrollo de juegos! En este capítulo, te presentamos tres herramientas poderosas que están ganando popularidad entre los desarrolladores de juegos: Rust, Simple DirectMedia Layer (SDL2) y Goku. Cuando se combinan, estas herramientas ofrecen una experiencia sin precedentes para crear videojuegos. Al final de este capítulo, entenderás Rust, SDL2 y Goku y habrás preparado tu entorno de desarrollo para comenzar tu viaje en la creación de juegos.

¿Qué es Rust?

Rust es un lenguaje de programación que busca ofrecer el rendimiento de lenguajes como C y C++ mientras ofrece garantías de seguridad en memoria. Se lanzó por primera vez en 2010 y desde entonces ha ganado popularidad, especialmente entre los desarrolladores de juegos, programadores de sistemas y aplicaciones de ensamblaje web. Rust se enfoca fuertemente en el rendimiento, la confiabilidad y la productividad.

Algunas características que hacen a Rust atractivo para el desarrollo de juegos incluyen:

  • Rendimiento: Rust tiene un perfil de rendimiento similar a C y C++.

  • Seguridad de memoria: El sistema de propiedad de Rust garantiza seguridad en la memoria sin un recolector de basura.

  • Programación Concurrente: El sistema de tipos y el modelo de propiedad de Rust permiten una concurrencia sin miedo.

  • Interoperabilidad: Puedes usar Rust fácilmente junto con C y otros lenguajes.

  • Comunidad y Ecosistema: Rust cuenta con una comunidad activa y un creciente ecosistema de bibliotecas y herramientas.

¿Qué es SDL2?

Simple DirectMedia Layer (SDL) es una biblioteca de desarrollo multiplataforma diseñada para proporcionar acceso de bajo nivel a audio, teclado, mouse, joystick y hardware gráfico a través de OpenGL y Direct3D. SDL2 es la última versión de SDL y es ampliamente utilizado en la industria del juego. SDL2 proporciona una API uniforme para construir juegos que pueden ejecutarse en varios sistemas operativos, incluidos Windows, Linux y macOS.

Características de SDL2:

  • Soporte multiplataforma: Escribe tu juego una vez y despliégalo en múltiples sistemas operativos.

  • API Simple: SDL2 tiene una API sencilla para gráficos, sonido y manejo de entrada.

  • Aceleración de hardware: SDL2 puede usar OpenGL y Direct3D para renderizado acelerado por hardware.

  • Comunidad y Ecosistema: SDL2 es ampliamente utilizado y hay una comunidad activa que crea tutoriales, bibliotecas y herramientas.

¿Qué es Goku?

Goku es un lenguaje de programación emergente diseñado para el desarrollo de juegos. Sus capacidades sinérgicas con Rust y SDL2 lo convierten en una opción destacada para los desarrolladores que buscan una combinación de rendimiento, facilidad e innovación. Goku simplifica la lógica de juego compleja y ayuda en un desarrollo más rápido, mientras sigue ofreciendo la flexibilidad que buscan los desarrolladores avanzados.

Características de Goku:

  • Facilidad de uso: La sintaxis de Goku está diseñada con claridad y simplicidad en mente, lo que la hace accesible para principiantes y robusta para profesionales.

  • Optimización de rendimiento: Goku trabaja eficientemente tanto con Rust como con SDL2.

  • Lógica de juego integrada: Las mecánicas de juego estándar son más fáciles de implementar con las funciones integradas de Goku.

  • GUI integrada: GUI basada en imgui.

Configurando tu entorno de desarrollo en Rust y Goku

Antes de que puedas comenzar a escribir código en Rust, necesitas configurar tu entorno de desarrollo. Sigue estos pasos:

  1. Instala Rust: Ve al sitio web oficial de Rust y sigue las instrucciones de instalación para tu sistema operativo.

  2. Comprobar la instalación: Después de la instalación, abre una terminal y ejecuta el siguiente comando para asegurarte de que Rust se instaló correctamente: rustc --version

  3. Actualiza Rust: Es una buena práctica asegurarse de que estás usando la última versión de Rust. Ejecuta el siguiente comando para actualizar Rust: rustup update

  4. Clona el motor de juego Goku desde el repositorio https://github.com/ladroid/goku

Escribiendo tu primer programa en Goku

Ahora que tu entorno está configurado, escribamos un programa simple para abrir una ventana usando Goku. Este programa será la base para los juegos que desarrollarás en este libro.

Inicializa SDL2: En tu archivo main.rs, inicializa SDL2:

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut ventana = two_d::Window::new("Prueba de juego", 600, 800)?;
    ventana.canvas.set_draw_color(sdl2::pixels::Color::RGB(0, 0, 0

));
    ventana.canvas.clear();
    ventana.canvas.present();
    'bucleprincipal: loop {
        for evento in ventana.sdl_context.event_pump()?.poll_iter() {
            match evento {
                sdl2::event::Event::Quit { .. } => break 'bucleprincipal,
                _ => {}
            }
        }
        ventana.canvas.set_draw_color(sdl2::pixels::Color::RGB(255, 0, 0));
        ventana.canvas.clear();
        ventana.canvas.present();
        std::thread::sleep(std::time::Duration::new(0, 1_000_000_000u32 / 60));
    }
    Ok(())
}

Ejecuta tu programa: Primero en tu terminal, ejecuta el programa usando Cargo: cargo run copia el código y pégalo en el editor de texto integrado, guarda y luego construye desde el menú de la barra superior.

Esto abrirá una ventana con un fondo rojo. Al presionar la tecla Escape o cerrar la ventana, el programa finalizará.

Conclusión

¡Felicitaciones! Has comenzado una emocionante travesía en el desarrollo de juegos con Rust, SDL2 y Goku. Tu conocimiento básico de estas herramientas está establecido y tu entorno de desarrollo está listo para juegos. El próximo capítulo se sumergirá más profundamente en las texturas en el desarrollo de juegos, desentrañando métodos para cargar y administrar estas utilizando Goku. ¡Mantente entusiasta, programa meticulosamente y sigue el camino para convertirte en un desarrollador de juegos competente!

NextCapítulo 2: La Estructura Base: SpriteSheet

Last updated 1 year ago