Giter Club home page Giter Club logo

game-dev-journey's Introduction

๐Ÿš€ My Epic Game Development Adventure ๐ŸŽฎ

Welcome, fellow adventurer, to the magical realm of game development! ๐Ÿง™โ€โ™‚๏ธ This repository chronicles my thrilling quest to create a game engine from scratch, wielding the mighty powers of C++, mathematics, and physics. Together, we'll explore vast lands of knowledge, uncover hidden secrets, and conquer challenging obstacles on our journey to master the arcane arts of game programming. ๐ŸŒŸ

In this enchanted repository, you'll find ancient scrolls ๐Ÿ“š(resources) and mystical artifacts ๐Ÿ”ฎ (projects) that will guide you through the treacherous landscape of game development. So, strap on your boots, grab your spellbook, and join me on this epic adventure to bring the fascinating worlds of physics, mathematics, and computer science to life through the spellbinding art of game creation! ๐ŸŽฎ

Are you ready to embark on this awe-inspiring journey? Let the adventure begin! ๐ŸŽ‰

Goals

  • The goal is to explore the engaging aspects of physics and mathematics by applying them to game development and real-life simulations. I hope this repository can serve as a guide and inspiration for others who are interested in game development. Alternatively, unveil to students how math and physics become more enjoyable when applied to practical scenarios.

  • To create a habit of continuous learning and improvement, I commit to making at least one meaningful contribution to the project every single day. This daily commitment will help me stay on track and maintain momentum throughout my game development journey.

  • Demonstrate mastery and practical application of each subject by completing at least one project that covers a good portion of the concepts in that subject. This ensures a deeper understanding and hands-on experience with the topics, while also providing tangible results for my learning progress.

Learning Path / Progress

  1. C++ Fundamentals
  2. Data Structures and Algorithms
    • Basic data structures (arrays, linked lists, stacks, queues)
    • Trees and graphs
    • Hash tables and dictionaries
    • Sorting algorithms (quicksort, merge sort, heap sort)
    • Searching algorithms (binary search, depth-first search, breadth-first search)
    • Dynamic programming and greedy algorithms
    • Graph algorithms (Dijkstra's, Kruskal's, Prim's)
  3. Advanced C++ Concepts
    • Templates and metaprogramming
    • Exception handling
    • Lambda functions
    • Multithreading and concurrency
    • Modern C++ features
  4. Mathematics
    • Linear algebra
    • Geometry
    • Trigonometry
    • Calculus
    • Numerical methods
    • Probability and statistics
  5. Physics
    • Classical mechanics
    • Kinematics
    • Rigid body dynamics
    • Collisions and contact
    • Particle systems
    • Fluid dynamics
  6. Game Programming Concepts
    • Game loops
    • Event handling and input processing
    • 2D and 3D rendering
    • Physics and collision detection
    • Audio programming
    • AI and pathfinding
    • Networking and multiplayer
  7. Game Engines and Libraries
    • Unreal Engine
    • Unity (for architectural understanding)
    • SDL
    • SFML
    • Boost C++ Libraries
  8. Building Your Game Engine
    • Engine architecture and core components
    • Game loop and event handling system
    • Rendering and resource management systems
    • Physics, AI, and audio systems
    • Optimization for performance and memory usage
    • Tools for asset management, scripting, and level design

Resources and References

C++ Fundamentals

Advanced C++ Concepts

Projects

Here is a list of projects that I've completed during my learning journey. Each project folder contains a README with a brief description, goals, and technologies used.

  1. C++ Fundamentals

Utils

This folder contains utility scripts to help the journey.

gpprun.sh

This script simplifies the process of compiling and running C++ code. With just one command, it compiles your source code using the g++ compiler and then executes the compiled binary.

Prerequisites

  • Make sure you have the g++ compiler installed on your system. You can check if it's installed by running g++ --version in your terminal.
  • Ensure that the gpprun.sh script has execute permissions. You can set the execute permission using chmod +x gpprun.sh.

How to Use

  1. Open a terminal and navigate to the directory containing the gpprun.sh script.
  2. Run the script with the following command:
./gpprun.sh /path/to/your/source/file.cpp

Replace /path/to/your/source/file.cpp with the path of C++ source file.

  1. The script will compile your code and, if successful, run the compiled binary.

That's it! Now you can easily compile and run your C++ code with a single command.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.