gdquest-demos / godot-3-beginner-2d-platformer

Learn to create a 2d platform game with the Godot game engine. This is a beginner programming tutorial.
MIT License
364 stars 96 forks source link

Project goal and scope #1

Closed NathanLovato closed 5 years ago

NathanLovato commented 5 years ago

This is a game demo and tutorial series for programming beginners. The goal is to guide the viewer through the process of creating a simple 2d platform game, and creating their first game.

The viewer should have some tiny programming foundations. You can assume they went through scripting in the official docs, and/or our gdscript intro

The demo should feature a complete game loop with:

And no extras. You can use debug scripts or anything for yourself, but please don't add any extra autoload or utilities to the final game. This is going to be a complete step-by-step series.

Target audience

Programming beginners, from ~13 years old. People who have little to no programming experience and experience with Godot.

Game feel

Keep it simple. No input recording, no physics manipulations on walls. Decent controls in hand: the character should move well, offer a bit of air control, but that's about it.

Code style

The code should be well-structured and clean as usual, using clear variable and method names, splitting the content of physics process into several methods to make it easy to read. But try to keep the code dead simple.

We're still going with typed gdscript and the code order we use in our style guide, so it's consistent with the rest of our projects. But you should not use programming patterns like state, command, etc.

NathanLovato commented 5 years ago

For the art, I was considering simple geometric shapes made in Inkscape, like on the Steering tut I'm working on:

Screenshot from 2019-08-17 10-22-55

(note it looks better in motion - but the art we end up with should look good on screenshots as well)

Or as in Thomas was alone, or several mobile games:

Screenshot from 2019-08-17 10-31-31

Appealing, yet only using basic shapes and signifiers.

NathanLovato commented 5 years ago

From there, manage the project however you'd like. Create issues, ping me for questions or review anytime, or if you need me to help with anything. I'm here to help with graphic design/feedback for instance.