up:: [[Godot MOC]] tags: #note/develop #on/computing/gamedev # Godot Learning Plan This is my plan for learning and getting better at the [[Godot Engine]]. This plan is highly malleable and changes regularly since I'm always discovering things I don't know. ![[Godot MOC#^note-on-godot-versions]] Items written in **bold** are actively being worked on, while items written in *italics* have been started but are on hold. To see more details of my progress in this plan, check out my [[Godot MOC#Learning Log|learning log]]. ## Getting Started - [x] Join the Godot Discord server and introduce myself - [x] Read through the ["About" section](https://docs.godotengine.org/en/stable/about/introduction.html) of the official documentation - [x] [Introduction](https://docs.godotengine.org/en/stable/about/introduction.html) - [x] [System Requirements](https://docs.godotengine.org/en/stable/about/system_requirements.html) - [x] [Frequently Asked Questions](https://docs.godotengine.org/en/stable/about/faq.html) - [x] [[Godot Licensing Compliance]] - [x] Read through and follow along with the [getting started docs](https://docs.godotengine.org/en/stable/getting_started/introduction/index.html#doc-getting-started-intro) - [x] [Introduction to Godot](https://docs.godotengine.org/en/stable/getting_started/introduction/introduction_to_godot.html) - [x] [Overview of Godot's Key Concepts](https://docs.godotengine.org/en/stable/getting_started/introduction/key_concepts_overview.html) - [x] [First Look at Godot's Editor](https://docs.godotengine.org/en/stable/getting_started/introduction/first_look_at_the_editor.html) - [x] [Learning New Features](https://docs.godotengine.org/en/stable/getting_started/introduction/learning_new_features.html) - [x] [Step by Step](https://docs.godotengine.org/en/stable/getting_started/step_by_step/index.html) - [x] [Your First 2D Game](https://docs.godotengine.org/en/stable/getting_started/first_2d_game/index.html) - [x] [Your First 3D Game](https://docs.godotengine.org/en/stable/getting_started/first_3d_game/index.html) ## Setting Up My Preferred Dev Environment Once I've gotten a bit accustomed to the built-in tools, I'll want to set up my preferred dev environment in order to be as efficient as possible. This environment needs to be viable on Windows, MacOS, and Linux, as I use all three on a regular basis. - [x] Choose and configure a text editor. Options include: - [ ] Built-in editor - [x] neovim (which is already my primary editor for programming projects) - [x] VSCode (which used to be my primary editor for programming projects) - [ ] Choose a programming language for projects. I'll probably be deciding this on a project-by-project basis and using multiple languages in a single project. Options include: - [ ] GDScript (which I'd have to learn); *this is one of the main languages supported by Godot* - [ ] C# (which I'd have to learn); *this is one of the main languages supported by godot* - [ ] C++ (which I'm already comfortable with); *this requires using the GDExtension technology* - [ ] C (which I'm already comfortable with); *this requires using the GDExtension technology* ## Learning the Basics This part isn't planned out very well yet. The Godot documentation suggests searching for and going through some third-party tutorials and resources. I will look through the [where to start](https://docs.godotengine.org/en/stable/community/tutorials.html#where-to-start) section and decide on what route I want to take. - [ ] **Read through the [best practices](https://docs.godotengine.org/en/stable/tutorials/best_practices/index.html#) guide** ## Starting Small - My First Godot Project I want to get started working on actual projects as soon as possible to avoid getting stuck in tutorial hell. Working on small, achievable projects will be good for helping me find my workflow and get used to using my new tools. For my first project, I think I will go with recreating Pong. It's simple and is something I've already done using other technologies, so I'll be able to just focus on the "learning the tools" part.