Full Game Development Lecture Notes

Jul 20, 2024

Full Game Development Lecture Notes

Overview of the Project

  • Objective: Build a 3D game from scratch based on a simplified version of Nazi Zombies.
    • Goal: Fast learning process to understand game development complexities and avoid common pitfalls.

Tools Required

  • Blender: For 3D modeling of environment and characters.
  • GIMP (GNU Image Manipulation Program): For texturing models and the environment.
  • Gdau (game engine): For coding and building the game.
  • Downloads: Latest versions from their official sites; Gdau from gdau engine.org and Blender from blender.org.

Project Structure

  1. 3D Modeling in Blender: Create games environment and characters.
  2. Texturing: Apply textures using GIMP.
  3. Export Models: From Blender to gdau game engine.
  4. Coding the Game: Implement game mechanics and functionality in gdau.
  5. Building Mechanics: Create FPS gameplay with enemies and player interactions.
  6. User Interface (UI): Develop an intuitive FPS interface.

Blender Basics

Blender Setup and Navigation

  • Fundamentals:
    • Mouse scroll to zoom in/out.
    • Middle Mouse click to rotate.
    • Shift + Middle Mouse click to pan.

Object Manipulation

  • Selecting: Left-click to select objects, drag to select multiple.
  • Transformation:
    • G to move, R to rotate, S to scale.
    • Axis constraints: X, Y, Z keys lock movement to that axis.
    • Local axis constraints: Double tap axis key during transformation.
  • Reset Transformations:
    • Alt+G resets location.
    • Alt+S resets scale.
    • Alt+R resets rotation.
  • Applying Transformations: Ctrl+A apply specific transformations (location, rotation, scale).

Editing Meshes

  • Edit Mode: Enter with tab key, manipulate vertices, edges, and faces.
  • Editing Tools:
    • Extrude (E), Inset (I), Bevel (Ctrl+B), and others for detailed mesh work.
    • Knife tool for custom cuts.

UV Mapping and Texturing in Blender

UV Unwrapping

  • Purpose: Map 2D textures onto 3D models properly.
  • Steps:
    • Mark seams to guide unwrapping.
    • Ctrl+E -> Mark Seams.
    • A to select all, U to unwrap.
    • Use smart UV project for simpler models.

Shader Editor and Material Application

  • Adding Materials:
    • Use Nodes to create complex material attributes.
    • Add textures and normal maps for detailed surfaces.

Creating Game Logic and Interactions in Gdau

Setting Up Gdau

  • Download and set up the latest Gdau engine version.
  • Interface Walkthrough: Scene panel, Inspector, Viewport, Node system, etc.

Adding 3D Objects

  • Mesh Instance: Add as 3D nodes.
  • Transformations and materials: Adjust using Inspector.
  • Camera setup: Add and orientate a camera to view the scene.
  • Script Introduction: Basic GD script for object interaction.

Player Control and Movement

  • FPS Setup: Implement character body, collision setup.
  • Script for Movement and Input Handling: Apply gravity, check button input, and update player position.
  • Mouse Look: Implement camera rotation for looking around.

Advanced Functionality and Game Mechanics

Weapon System

  • Modeling Weapons: Basic modeling and animating weapon firing actions in Blender.
  • Import Weapons: Integrate into Gdau, set up firing, reloading animations.
  • Raycasting: For bullet collision detection.
  • UI Updates: Ammo count and weapon status.

Enemy AI and Interaction

  • Enemy Pathfinding: Use navigation meshes for enemy movement.
  • State Machine: Implement enemy idle, chase, and attack behaviors.
  • Damage System: Enemies take and react to damage.

Game UI

  • Add FPS HUD: Health, ammo, and current weapon displays.
  • Weapon Pickup System: Implement interactions to collect new weapons.

Final Touches and Polishing

  • Texture Refinements: Optimize game visuals with Blender and GIMP.
  • Level Design: Enhancements and game aesthetics.
  • Play Testing: Ensure all mechanics work seamlessly together and adjust as necessary.

Conclusion

  • Resources Provided: Download example projects from Itch.io.
  • Further Learning: Experiment with GD script, Blender modeling, and texture creation.
  • Game Development Fundamentals: Important to start simple, increasing complexity over time.

Final Notes

  • Practice and iteration are key to mastering game development.
  • Ensuring clear code structure helps in expanding and troubleshooting the game mechanics.