Kapitel 1: Einführung in SDL2, Rust und Goku

Einleitung

Willkommen in der aufregenden Welt der Spieleentwicklung! In diesem Kapitel stellen wir Ihnen drei leistungsstarke Werkzeuge vor, die bei Spieleentwicklern immer beliebter werden: Rust, Simple DirectMedia Layer (SDL2) und Goku. In Kombination bieten diese Werkzeuge ein beispielloses Erlebnis bei der Erstellung von Videospielen. Am Ende dieses Kapitels werden Sie Rust, SDL2 und Goku verstanden haben und Ihre Entwicklungsumgebung vorbereitet haben, um Ihre Reise in die Spieleentwicklung zu beginnen.

Was ist Rust?

Rust ist eine Programmiersprache, die darauf abzielt, die Leistung von Sprachen wie C und C++ zu bieten und gleichzeitig Garantien für die Speichersicherheit zu bieten. Es wurde erstmals 2010 veröffentlicht und hat seitdem, besonders unter Spieleentwicklern, Systemprogrammierern und Web-Assembly-Anwendungen, an Popularität gewonnen. Rust legt großen Wert auf Leistung, Zuverlässigkeit und Produktivität.

Einige Merkmale, die Rust für die Spieleentwicklung attraktiv machen:

  • Leistung: Rust hat ein Leistungsprofil ähnlich wie C und C++.

  • Speichersicherheit: Das Besitzsystem von Rust gewährleistet Speichersicherheit ohne Garbage Collector.

  • Gleichzeitige Programmierung: Das Typsystem und das Besitzmodell von Rust ermöglichen eine furchtlose Nebenläufigkeit.

  • Interoperabilität: Sie können Rust problemlos neben C und anderen Sprachen verwenden.

  • Community und Ökosystem: Rust verfügt über eine aktive Gemeinschaft und ein wachsendes Ökosystem von Bibliotheken und Werkzeugen.

Was ist SDL2?

Simple DirectMedia Layer (SDL) ist eine plattformübergreifende Entwicklungs-Bibliothek, die darauf ausgelegt ist, einen direkten Zugriff auf Audio-, Tastatur-, Maus-, Joystick- und Grafikhardware über OpenGL und Direct3D zu ermöglichen. SDL2 ist die neueste Version von SDL und wird in der Spieleindustrie weit verbreitet eingesetzt. SDL2 bietet eine einheitliche API, um Spiele zu entwickeln, die auf verschiedenen Betriebssystemen, einschließlich Windows, Linux und macOS, laufen können.

Merkmale von SDL2:

  • Plattformübergreifende Unterstützung: Schreiben Sie Ihr Spiel einmal und setzen Sie es auf mehreren Betriebssystemen um.

  • Einfache API: SDL2 verfügt über eine einfache API für Grafik, Ton und Eingabeverarbeitung.

  • Hardwarebeschleunigung: SDL2 kann OpenGL und Direct3D für hardwarebeschleunigtes Rendering nutzen.

  • Community und Ökosystem: SDL2 wird weit verbreitet eingesetzt, und es gibt eine aktive Gemeinschaft, die Anleitungen, Bibliotheken und Werkzeuge erstellt.

Was ist Goku?

Goku ist eine aufkommende Programmiersprache, die speziell für die Spieleentwicklung maßgeschneidert ist. Seine synergistischen Fähigkeiten mit Rust und SDL2 machen es zu einer herausragenden Wahl für Entwickler, die eine Kombination aus Leistung, Einfachheit und Innovation suchen. Goku vereinfacht komplexe Spiellogik und unterstützt eine schnellere Entwicklung, bietet dabei aber immer noch die Flexibilität, die fortgeschrittene Entwickler suchen.

Merkmale von Goku:

  • Benutzerfreundlichkeit: Die Syntax von Goku ist auf Klarheit und Einfachheit ausgelegt, sodass sie sowohl für Anfänger als auch für Profis geeignet ist.

  • Leistungsoptimierung: Goku arbeitet effizient mit Rust und SDL2 zusammen.

  • Integrierte Spiellogik: Mit den eingebauten Funktionen von Goku lassen sich standardisierte Spielmechaniken einfacher implementieren.

  • Integrierte GUI: GUI basiert auf imgui.

Einrichten Ihrer Rust- und Goku-Entwicklungsumgebung

Bevor Sie mit dem Schreiben von Rust-Code beginnen können, müssen Sie Ihre Entwicklungsumgebung einrichten. Folgen Sie diesen Schritten:

  1. Installieren Sie Rust: Gehen Sie zur offiziellen Rust-Website und folgen Sie den Installationsanweisungen für Ihr Betriebssystem.

  2. Überprüfung der Installation: Nach der Installation öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um sicherzustellen, dass Rust korrekt installiert ist: rustc --version

  3. Aktualisieren Sie Rust: Es ist ratsam, sicherzustellen, dass Sie die neueste Version von Rust verwenden. Führen Sie den folgenden Befehl aus, um Rust zu aktualisieren: rustup update

  4. Klonen Sie den Goku-Spiel-Engine-Repository von https://github.com/ladroid/goku

Schreiben Ihres ersten Programms in Goku

Jetzt, da Ihre Umgebung eingerichtet ist, schreiben wir ein einfaches Programm, um ein Fenster mit Goku zu öffnen. Dieses Programm wird die Grundlage für die Spiele sein, die Sie in diesem Buch entwickeln werden.

Initialisieren Sie SDL2: In Ihrer main.rs-Datei initialisieren Sie SDL2:

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut window = two_d::Window::new("Spieltest", 600, 800)?;
    window.canvas.set_draw_color(sdl2::pixels::Color::RGB(0, 0, 0));
    window.canvas.clear();
    window.canvas.present();
    'mainloop: loop {
        for event in window.sdl_context.event_pump()?.poll_iter() {
            match event {
                sdl2::event::Event::Quit { .. } => break 'mainloop,
                _ => {}
            }
        }
        window.canvas.set_draw_color(sdl2::pixels::Color::RGB(255, 0, 0));
        window.canvas.clear();
        window.canvas.present();
        std::thread::sleep(std::time::Duration::new(0, 1_000_000_000u32 / 60));
    }
    Ok(())
}

Führen Sie Ihr Programm aus: Führen Sie zunächst in Ihrem Terminal das Programm mit Cargo aus: cargo run kopieren Sie den Code und fügen Sie ihn in den integrierten Texteditor ein, speichern Sie und bauen Sie dann über das obere Menü.

Dies öffnet ein Fenster mit einem roten Hintergrund. Mit der Escape-Taste oder durch Schließen des Fensters beenden Sie das Programm.

Fazit

Herzlichen Glückwunsch! Sie haben eine aufregende Reise in die Spieleentwicklung mit Rust, SDL2 und Goku begonnen. Ihr grundlegendes Wissen über diese Werkzeuge steht fest, und Ihre Entwicklungsumgebung ist bereit für Spiele. Im nächsten Kapitel werden wir uns intensiver mit Texturen in der Spieleentwicklung beschäftigen und Methoden zum Laden und Verwalten dieser mit Goku erläutern. Bleiben Sie begeistert, programmieren Sie sorgfältig und machen Sie sich auf den Weg, ein versierter Spieleentwickler zu werden!

Last updated