• Stars
    star
    532
  • Rank 83,377 (Top 2 %)
  • Language GDScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

2d Metroidvania-inspired game for the 2019 GDquest Godot Kickstarter course project.

Godot Open 2D Platformer

./img/banner.png

A course based on a short 2d game demo inspired by metroidvanias split into a Free, beginner-friendly series and a paid, intermediate-level series that builds upon the Free one.

âž¡ Follow us on Twitter and YouTube for free game creation tutorials, tips, and news! Get one of our Godot game creation courses to support our work on Free Software.

Our mission

  • Help newcomers and Godot users alike to create games with Godot
  • Help people to go beyond step-by-step content, to practice and learn transferable gamedev techniques
  • Get people to work together and become contributors to open source project

Target

A game demo that offers a few minutes of gameplay, a small world composed of several interconnected rooms. The base target is about 15 videos for the Free series, 25 for the premium course. 40 in total.

For each topic we cover, the Free course should cover the foundations, and the paid course should build upon them.

For example, with the platforming mechanics:

  1. In free tutorials, cover KinematicBody2D, setting up collisions, input, and simple motions up to jump and air control. Also, the foundations of a mechanic that’s unique to the final game, e.g. simple wall jump.
  2. In the paid course, show how to improve the moves, e.g. adding jump input detection before landing, the ability to jump soon after starting to fall, handling slopes, tightening the controls, adding the ability to combine wall jumps with wall run.

Philosophy for the course

The Kickstarter campaign promised a Metroidvania. Some backers are likely to expect design decisions that are specific to what is considered traditional or essential in Metroidvanias: level design that works both through its world architecture and at a local level, with each room or area. Also, platforming and combat mechanics.

img/flinthook-4.png

I would like the course to focus more on design and less on code than the previous one. Let’s avoid complex UI or extras such as refined inventory and leveling systems. The game doesn’t have to be a complete metroidvania: it would take too much time to develop a satisfying demo, while our top priority is education. Let’s not get caught up creating a great, full game, as we have a lot on our plates.

Keep It Short and Sweet

We have limited time and money to produce the course. Also, our priority is education.

The game should be as good as possible in hand and as far as its code is concerned. But it should not get big in scope or feature many different mechanics: content and feature creep are the best way to lengthen the project and lower the quality of our output.

Think of this game demo as a portfolio piece. A recruiter would take but a few seconds to look at each project you’ve worked on and judge your abilities based on that. So will the community.

The cornerstones of Metroidvanias

Metroidvanias are platform games with non-linear interconnected maps or worlds that guide the player towards his goal, typically blocking the player’s progression at times until they unlocked new abilities.

I see two main characteristics in them:

  1. They’re platform-adventure games. The focus is on exploration and possibly telling a story through the world’s design. They can have combat mechanics or leveling systems, but these aren’t mandatory.
  2. The world’s design is central to the game experience. Metroidvanias tend to give the illusion of freedom through looping and interconnected paths. The areas can be fairly linear and guide the player through the level design.

We don’t have the time to build a large, interconnected world, and to produce great levels at the same time. As such, we should focus our attention on the controls first and foremost, and design a small playable area with a few frames later.

img/hollow-knight-3.png Reference game: Hollow Knight’s combat mechanics are to the point: one melee attack that you can aim in 4 directions

Watch this discussion on good Metroidvanias for more insights. Mark Brown (Game Maker’s Toolkit) also has some great videos on the topic, although more focused on world design.

./img/ori-2.png Unlocking abilities to be able to further explore the worlds is a common pattern in Metroidvanias

Open source from the start

We’re going to build the project Open Source from start to finish. The community can see our progress and contribute feedback, code… Part of our role will be to guide them and make it so everyone works towards the same goal: producing an excellent example of how to set up a Godot game project.

All new features and sizeable tasks should be ticketed: open an issue first, add it to the project board, and assign yourself to it before pushing a PR or a big commit. This is so the team and community members can see what’s already in progress.

Project organization

Roles and broad steps to build the project.

Pre-production

  1. Share a form to get the students’ feedback based on the jam. Offer a range of topics for the backers to vote on, and ask for qualitative feedback. We will use their feedback and requests to complement the project.
  2. Create and iterate over the game prototype.
  3. Produce videos related to prototyping and the game creation process.
  4. Outline and detail the topics covered in each course, create tasks.

Production

  • Note taken on [2019-04-29 lun. 07:51]
    Fill at the end of pre-production

The team

On top of the roles below, everyone can do tutoring work for their respective area of expertise.

Lead development: Razvan

Responsible for the code structure and code quality, as well as the consistency of the codebase. Tasks can include general programming, system design, code reviews, refactoring, as well as defining related tasks.

Game development: Guilherme

Responsible for general development work, programming game mechanics and various systems.

Tool development and design: Henrique

Responsible for the design and implementation of tools to help create the game more efficiently and/or comfortably. Also, responsible for assisting with game and world design work.

Project management and design direction: Nathan

Responsible for organizing the project, design decisions to ensure the project stays coherent, moves in a clear direction, and that the game provides the necessary foundations to teach the topics we aim to cover.

Audience and pre-requisites

  • List the resources the students can use to get from ~0 to fitting the pre-requisites for the course.
  • List the companion resources students can follow for each video that covers a given concept. E.g. the intro to signals, assignments, etc.

Free series

The Free courses are for what I would call beginners-plus: amateurs, young programming students, or developers in another domain, e.g. software developers, who have learned the basics of Godot, the basics of GDScript, and put all that in practice in a personal project. The viewer understands basic programming concepts up to what classes and objects are, what a node is at a basic level, and the viewer knows its way around the main areas of the interface.

Although we’ll do our best to help strengthen or push the student’s understanding of basic concepts, we will focus on game design, implementing mechanics, programming patterns… our role is to help the students go beyond the basics, on their way to being independent developers.

Premium courses

The premium courses are for learners who want to go further, to acquire techniques on their path to working like professionals.

Persona: the learners of the premium course don’t want to be spoon-fed ready-made solutions. They enjoy learning and are ready to put in some efforts to improve. They go further than watching the lessons, putting what they learned in practice. They expect quality learning material.

Building the C++ Heatmap GDNative binary

The GDNative folder is a git submodule pointing to the godot-cpp project (pointing to the latest commits as of October 4th) for Godot 3.1. As a result, after cloning, it should be initialized with something like `git submodule update –init –recursive`, or this repo cloned with `–recursive`.

Bindings for your OS should be generated according to https://docs.godotengine.org/en/3.1/tutorials/plugins/gdnative/gdnative-cpp-example.html

Windows

Requirements: Visual Studio Community 20xx with C++, `libgodot-cpp.windows.xxxxx.64.lib` files for GDNative C++ in `GDNative/bin/`, and GDNative bindings in `GDNative/include/gen/`

Building the godot bindings:

  1. Open the `x64 Native Tools Command Prompt for VS 20xx`.
  2. CD into `/GDNative`
  3. Run `scons platform=windows target=release bits=64 generate_bindings=yes`

Building and Debugging using Visual Studio Community 20xx

If `Godot.exe` is in the `PATH` environment variable, the .lib files are built and located in `GDNative/bin/` and bindings in `GDNative/include/gen/`, then the Heatmap project is already configured for Godot building and debugging.

Building will build the DLL in debug or release mode and put in `assets/libraries/win64`, and debugging the solution in debug mode will launch the project in godot and allow for breakpoints in the C++ code.

Scons without opening Visual Studio

  1. Open the `x64 Native Tools Command Prompt for VS 20xx`.
  2. CD into the Heatmap source (`cd game/src/Native/Heatmap`)
  3. `scons platform=windows bits=64 target=release`
  4. If successful, `libheatmap.DLL` will be built into `assets/libraries/win64`

More Repositories

1

godot-shaders

A large library of free and open-source shaders for the Godot game engine. Here, you'll get 2D and 3D shaders with playable demos.
GLSL
2,164
star
2

learn-gdscript

Learn Godot's GDScript programming language from zero, right in your browser, for free.
GDScript
1,913
star
3

godot-3-demos

Dozens of free and open source demos for the Godot game engine, version 3. Head to the link below for newer demos for Godot 4+
GDScript
1,753
star
4

godot-open-rpg

Learn to create turn-based combat with this Open Source RPG demo âš”
GDScript
1,432
star
5

godot-steering-ai-framework

A complete framework for Godot to create beautiful and complex AI motion. Works both in 2D and in 3D.
GDScript
1,144
star
6

godot-procedural-generation

Procedural generation algorithms and demos for the Godot game engine
GDScript
1,103
star
7

godot-make-pro-2d-games

A-RPG demo made with Godot, MIT-licensed, from our Godot course
GDScript
891
star
8

godot-3d-mannequin

An Open Source 3d character and character controller for the Godot game engine
C#
760
star
9

blender-power-sequencer

Add-on for video editing in Blender 3D: edit videos faster! Included in Blender 2.81+
Python
688
star
10

godot-2d-space-game

A 2D space exploration and mining game made with Godot and our AI framework
GDScript
675
star
11

godot-visual-effects

Open-source visual effects designed in Godot, from our VFX Secrets course.
GDScript
622
star
12

godot-power-pitch

International pitch for the Godot Game Engine, made in Godot, available in 15+ languages
GDScript
383
star
13

godot-2d-builder

A simulation game demo made in Godot and inspired by Factorio.
GDScript
375
star
14

godot-demos-2022

Free and open-source Godot demos for learning, with guides and tutorials: 2022 edition.
GDScript
362
star
15

godot-beginner-2d-platformer

Learn to create a 2d platform game with the Godot game engine. This is a beginner programming tutorial.
GDScript
326
star
16

krita-batch-exporter

A Free Krita plugin to batch export layers and groups with maximum flexibility. Scale, trim, export multiple copies of your layers...
Python
281
star
17

krita-free-brushes

A collection of Free Krita brushes, by GDQuest, for concept artists, illustrators and game artists
256
star
18

gdscript-docs-maker

Create documentation and class references from your Godot GDScript code
Python
240
star
19

godot-kickstarter-2019

Create your Own Games with Godot, the Free Game Engine: sources from the January Kickstarter project from GDQuest
GDScript
238
star
20

godot-2d-jrpg-combat

A 2D Japanese RPG Active Time Battle demo for the Godot game engine
GDScript
182
star
21

godot-mini-tuts-demos

Code from our Godot mini tutorials
GDScript
128
star
22

godot-design-patterns

Code design patterns in Godot and in GDScript. State machines and the likes.
C#
123
star
23

godot-tours

A framework for interactive step-by-step tutorials in the Godot editor
GDScript
101
star
24

godot-2d-visual-novel

A Visual Novel demo made with the Godot game engine
GDScript
95
star
25

godot-2d-tactical-space-combat

A 2D Tactical Space Combat demo for the Godot game engine. Inspired by FTL
GDScript
90
star
26

godot-2d-rhythm

This demo is a rhythm game designed for the course Godot 2D Secrets.
GDScript
88
star
27

godot-2d-tactical-rpg-movement

Grid-based movement for a Tactical RPG
GDScript
79
star
28

godot-presentations

Create beautiful interactive presentations and localize them! Made with the Godot game engine
GDScript
69
star
29

krita-tileset-templates

Tileset and tilemap templates for Krita, Photoshop and Tiled 1.0
67
star
30

godot-getting-started-2021

Downloads for the Getting Started with Godot in 2021 free course.
GDScript
57
star
31

godot-2d-tower-defense

GDScript
50
star
32

product-packager

A portable shell program to package and prepare courses, tutorial series, and other products to release on e-commerce platforms like Gumroad and Mavenseed.
Python
50
star
33

godot-guides-v3.0

Work in progress guides and tutorials for the official Godot 3.0 documentation
GDScript
43
star
34

website

HTML
43
star
35

game-sprites

A library of Free game assets to prototype your games
38
star
36

godot-new-features-v3.1

Tutorial series and demos to learn the new features in Godot 3.1
GDScript
31
star
37

learn-gdscript-translations

Translations for the open-source app Learn GDScript From Zero
Python
31
star
38

godot-3d-fps-beginner-series

A beginner-friendly tutorial series hosted by James Taft to learn to create a First Person Shooter in Godot
GDScript
27
star
39

godot-demo-projects-remake

Proof of concept to greatly improve to the official godot demo projects repository.
GDScript
26
star
40

blender-proxies-generator

Command line program to generate video proxies faster for Blender's Video Sequence Editor, using ffmpeg
Python
26
star
41

blender-sequencer-multithreaded-render

Multithreaded renders for the Blender video sequence editor, from the command line
Python
25
star
42

godot-visualization-tools

Tools for debug drawing and animation for visualizations and tutorials
GDScript
23
star
43

godot-2d-action-platformer

GDScript
22
star
44

godot-steering-ai-framework-submodule

A complete framework for Godot to create beautiful and complex AI motion. Works both in 2D and in 3D. For use as Git submodules.
GDScript
21
star
45

godot-steering-ai-framework-demos

Repository of demos and test scenes for GDQuest's Steering AI Framework
GDScript
18
star
46

godot-debug-ui-toolkit

Modular UI components to create debug interfaces and add-on interfaces in Godot.
GDScript
15
star
47

meta

A repository to talk about GDQuest at large, guidelines, etc. all in one place. This is where public discussions that don't belong to a specific repository go.
13
star
48

godot-text-tools

A collection of addons to help to edit text and UI faster within Godot. Color palette, rich text editor...
GDScript
11
star
49

blender-power-sequencer-docs

Documentation sources for Power Sequencer, the Blender add-on for video makers
10
star
50

emacs-flycheck-gdscript

Emacs flycheck extension to lint GDScript code with gdlint
7
star
51

3D-graphics-benchmark-PoC

GDScript
5
star
52

GDPractice

A framework to create interactive coding practices in the Godot engine.
GDScript
4
star
53

godot-plugin-highlighter

Highlights parts of the editor interface that are under the mouse
GDScript
4
star
54

godot-addons

GDQuest Godot Addons
GDScript
4
star
55

godot-js-types

Javascript and Typescript types for Godot related files and the in-browser Godot runtime
JavaScript
3
star
56

godot-plugin-tour

Utilities to create Godot tours
GDScript
3
star
57

godot-colorpicker-presets

Reads a color presets hex file in the project directory and adds the colors to the editor ColorPicker for quick access.
GDScript
3
star
58

godot-learning-app-exporter

Exports Godot projects for usage in the GDQuest learning app
JavaScript
3
star
59

process-course

TypeScript
1
star