Update the game concept

This commit is contained in:
Nathan Lovato 2019-09-07 11:13:59 +02:00
parent fb5b1f5996
commit 8ef30f68dc

View file

@ -5,8 +5,6 @@
#+AUTHOR: Nathan Lovato
/The concept is still a living document so that we have a base for design discussions. At this stage, we can still change the core mechanic, if you have something that's as versatile and that can fit the teaching goals for the project. See the [[*Possible other uses][first note]] below/
* Gameplay
** Core mechanic: pulling yourself with the Hook
@ -27,13 +25,6 @@
- Charge onto enemies with the cannonball attack
- Lunge down on enemies and stun them if falling from above
- Note taken on [2019-04-30 mar. 17:49] \\
Hook would not only fit the need for giving the player a versatile tool: it would allow us to play with physics, vector math, and visually debugging the game. It also allows us to have related upgrades.
I'm open to any other mechanic or tool with the same potential, e.g. the spear from one of Shaun Spaulding's jams.
- Note taken on [2019-05-01 mer. 07:29] \\
The ideas above are for reference, to give us paths to build upon the core mechanic and show its potential.
*** Controls
**** Mouse and keyboard
@ -57,197 +48,6 @@
Regardless of the control scheme, use a snapping system to help direct the player towards hooking points. Even on rails or long hookable surfaces, we might want to have a limited number of points, e.g. in the middle and on the sides, to help the player better hook using a gamepad.
* Course
** Teaching goals
*** Game design
- *Using one mechanic for many purposes*: giving the player a versatile tool.
- *Game feel*: making the game feel alive by adding life and feedback to the environment and the player's actions
*** Game creation
- *Game creation workflow*: the process and broad steps to follow to get a game project started, prototyping, and getting the character controller, camera, etc. to feel right.
- *Making multiple behaviors interact together*: especially for the character controller, getting the different moves (/e.g. jump, wall jump, slide/) to flawlessly flow into one another.
*** Metroidvania essentials
- *Platforming character controller* and related code structure: behaviors, aggregation-based approach.
- *Level design*, creation workflow, and connecting frames. Guiding the player through the environment, looping, and branching paths.
- *Unlocking mechanics* through upgrades and controlling player progression.
- *Camera*: helping the player with a camera that moves ahead of the character and looks where the player wants to look.
** List of topics
/This is a list of topics that can be broken down or merged into more or fewer videos. From there, we should arrange them to form the 3 series (free, indie, pro) with clearer lists of topics and videos, and refine as we move forward with the project's pre-production./
/This isn't a list of videos for the course: we should pick the scope from there./
# Remember for teaching: copy paste code snippets instead of writing every line.
# Check e.g. Brilliant for assignment examples and text-based resources.
*** Extra video ideas
/Ideas of modules to extend the course/
Collecting keys and opening closed doors
Modular AI for enemies, different algorithms to find paths, flee the player...
Porting an algorithm to C or C++ with NativeScript/GDNative. E.g. a heatmap algorithm would run slowly in GDScript
Minimap: designing and implementing a map that updates as you explore new frames, and that can show unexplored areas
**** Creating tools for debugging and testing the game efficiently
Series on designing and creating good tools, be it in the viewport, as in the waypoint platform tutorial, or in-game, like a tool to fly through the world.
Tools should always answer a need: figure out what costs you or what's going to cost you time, prioritize them, figure out solutions, and calculate the time they'd take you.
Tools for level design/testing/free camera
Tools for code/debug code
**** Boss
Designing and implementing a boss, with an intro and outro cut-scene, and phases.
** Free series
Create a simple yet compelling platform game, learning the creation workflow from an indie game dev's perspective.
*** Intro: what this course is about, what you'll learn, how to make the most of it
Target audience
Pre-requisites
What you'll learn: list of content
How this course is designed/teaching style
Free resources to get up to speed
*** How to make video games: getting started
*Goal*: Learn what it takes to make games when you have no experience, and how you can get started
- Overview of the process
- Avoiding common pitfalls as a beginner
- Reassure people about programming: it doesn't have to be hard, it can also be fun
- Share practical resources to get started with Godot or GDevelop
References:
- https://www.youtube.com/watch?v=j48LtUkZRjU
- https://www.youtube.com/watch?v=z06QR-tz1_o
- Playlist by Extra credits https://www.youtube.com/watch?v=z06QR-tz1_o&list=PLhyKYa0YJ_5C6QC36h5eApOyXtx98ehGi
**** Intro
You want to make video games, but you don't know how or where to start? In this video, you'll learn Everything you need to know to get started and create your first game.
1. How indie developers make games
2. Free Software you can use to create your own games
3. Free resources and tutorials to get started
I'm Nathan, and I've been teaching game creation and art for years, with Free Software like the Godot game engine and the digital painting app Krita.
**** Notes
Make something that you can do at first
Can I make a game without programming?
No. But wait! Maybe programming isn't what you think.
Changing values in the Inspector is programming.
You can learn it slowly, start simple, and write more complicated code as you progress.
**** Summary
*** How it's like to work as a game designer: a day in the life of an indie game designer
*** How to make games: the workflow
Cover the workflow to pre-produce, then produce a game, using the metroidvania 2d project as an example
Only about creating the game:
Prototyping, experimenting
You can only plan from production
*** Metroidvania design analysis: what makes a (good) Metroidvania?
Take the analysis from the course's README/prototype jam doc
*** Basic motion and input: ground, air control
*** Basic hook mechanic
*** Simple lookahead camera: following the player's velocity
*** Creating a level with Tilemaps and scenes
*** Simple transition between two levels
*** Adding BGM and sounds to the game
*** Character health and taking damage on contact
*** Death and restarting the game
*** Basic patrol AI: detects gaps and walls, moves within a range
*** Integrating assets into the game
*** Building and distributing the game for desktop
Publishing on Itch.io?
*** Bonus
**** Creating a game soundtrack with Free Software /Include the plugins, virtual instruments you found/ (beginner/introductory tut)
**** Doing sound design for your game with Free Software (beginner/introductory tut)
** Premium series
*** Indie
/This is a list of topics, some can take several videos/
Scaling the hook's power based on distance
Wall jump
Ledge detection, grab ledge, and let the player jump
Unlocking new abilities
Level loops: Exploring the possibilities of the core mechanic
Designing frames with pre-made scenes, level loops, and tilemaps
Teaching the player how to play through level design: designing an in-game tutorial without words
Designing game animations in Godot
Designing combat mechanics, damaging enemies: e.g. hook pulls character to enemy and kills it, enemies use projectiles?
Simple flying enemy AI
Hook: Pulling objects
Sound design: how to choose the sounds and BGM for your game to improve the experience and game feel /Practical sound design tips like boosting basses, listening to the game the eyes closed.../
*** Pro
/This is a list of topics, some can take several videos/
Design analyses of character movement, camera, etc. in other platform games
Ledge: teleport to the platform
Polish: Storing input before touching the ground
Polish: letting the player jump right after starting a fall
Refining the camera: better prediction of the player's motion
Hook: Breaking fragile surfaces
Hook: Removing armors from enemies
How to architecture the map at a meta level to manage the player's progression
Designing and implementing flexible AI: Series on pathfinding, code structure to build reusable AI behaviors for flying enemies
Code structure: Rundown of the project's code structure and abstractions
Code structure: Patterns we use in the project
* Prototypes
** DONE Base movement with the hook
CLOSED: [2019-05-03 ven. 10:18]
@ -441,23 +241,194 @@
- Store input: jump after fall start, or hook
- Allow the player to jump right after a fall started, and to hook if the input was right before actually the snap detector detected the hooking point. Maybe only when falling?
** TODO Predicting player motion
:PROPERTIES:
:EFFORT: 3:00
:END:
* Course
** Teaching goals
It's hard to track how a hook will pull the character. It'd be nice to have tools to visually debug the characters projected arcs of motion, to get a sense for what the hook will do.
*** Game design
As the player can control their horizontal motion mid-air, they can deviate from the curve, but still, as it's the core gameplay, we should have some tools to track and fine tune player motion.
- *Using one mechanic for many purposes*: giving the player a versatile tool.
- *Game feel*: making the game feel alive by adding life and feedback to the environment and the player's actions
*** Questions
*** Game creation
- *Game creation workflow*: the process and broad steps to follow to get a game project started, prototyping, and getting the character controller, camera, etc. to feel right.
- *Making multiple behaviors interact together*: especially for the character controller, getting the different moves (/e.g. jump, wall jump, slide/) to flawlessly flow into one another.
*** Metroidvania essentials
- *Platforming character controller* and related code structure: behaviors, aggregation-based approach.
- *Level design*, creation workflow, and connecting frames. Guiding the player through the environment, looping, and branching paths.
- *Unlocking mechanics* through upgrades and controlling player progression.
- *Camera*: helping the player with a camera that moves ahead of the character and looks where the player wants to look.
** List of topics
/This is a list of topics that can be broken down or merged into more or fewer videos. From there, we should arrange them to form the 3 series (free, indie, pro) with clearer lists of topics and videos, and refine as we move forward with the project's pre-production./
/This isn't a list of videos for the course: we should pick the scope from there./
# Remember for teaching: copy paste code snippets instead of writing every line.
# Check e.g. Brilliant for assignment examples and text-based resources.
*** Extra video ideas
/Ideas of modules to extend the course/
1. Which motions can we predict accurately?
2. Can we use this information to improve the movement?
1. At least we can use it to better illustrate how the motion works in videos/tutorials
# ** Displaying player input
# To showcase switch between mouse/gamepad, illustrate differences in how you'd use the control schemes, advantages of each.
# For videos but also for debugging, playtesting.
Collecting keys and opening closed doors
Modular AI for enemies, different algorithms to find paths, flee the player...
Porting an algorithm to C or C++ with NativeScript/GDNative. E.g. a heatmap algorithm would run slowly in GDScript
Minimap: designing and implementing a map that updates as you explore new frames, and that can show unexplored areas
**** Creating tools for debugging and testing the game efficiently
Series on designing and creating good tools, be it in the viewport, as in the waypoint platform tutorial, or in-game, like a tool to fly through the world.
Tools should always answer a need: figure out what costs you or what's going to cost you time, prioritize them, figure out solutions, and calculate the time they'd take you.
Tools for level design/testing/free camera
Tools for code/debug code
**** Boss
Designing and implementing a boss, with an intro and outro cut-scene, and phases.
** Free series
Create a simple yet compelling platform game, learning the creation workflow from an indie game dev's perspective.
*** Intro: what this course is about, what you'll learn, how to make the most of it
Target audience
Pre-requisites
What you'll learn: list of content
How this course is designed/teaching style
Free resources to get up to speed
*** How to make video games: getting started
*Goal*: Learn what it takes to make games when you have no experience, and how you can get started
- Overview of the process
- Avoiding common pitfalls as a beginner
- Reassure people about programming: it doesn't have to be hard, it can also be fun
- Share practical resources to get started with Godot or GDevelop
References:
- https://www.youtube.com/watch?v=j48LtUkZRjU
- https://www.youtube.com/watch?v=z06QR-tz1_o
- Playlist by Extra credits https://www.youtube.com/watch?v=z06QR-tz1_o&list=PLhyKYa0YJ_5C6QC36h5eApOyXtx98ehGi
**** Intro
You want to make video games, but you don't know how or where to start? In this video, you'll learn Everything you need to know to get started and create your first game.
1. How indie developers make games
2. Free Software you can use to create your own games
3. Free resources and tutorials to get started
I'm Nathan, and I've been teaching game creation and art for years, with Free Software like the Godot game engine and the digital painting app Krita.
**** Notes
Make something that you can do at first
Can I make a game without programming?
No. But wait! Maybe programming isn't what you think.
Changing values in the Inspector is programming.
You can learn it slowly, start simple, and write more complicated code as you progress.
**** Summary
*** How it's like to work as a game designer: a day in the life of an indie game designer
*** How to make games: the workflow
Cover the workflow to pre-produce, then produce a game, using the metroidvania 2d project as an example
Only about creating the game:
Prototyping, experimenting
You can only plan from production
*** Metroidvania design analysis: what makes a (good) Metroidvania?
Take the analysis from the course's README/prototype jam doc
*** Basic motion and input: ground, air control
*** Basic hook mechanic
*** Simple lookahead camera: following the player's velocity
*** Creating a level with Tilemaps and scenes
*** Simple transition between two levels
*** Adding BGM and sounds to the game
*** Character health and taking damage on contact
*** Death and restarting the game
*** Basic patrol AI: detects gaps and walls, moves within a range
*** Integrating assets into the game
*** Building and distributing the game for desktop
Publishing on Itch.io?
*** Bonus
**** Creating a game soundtrack with Free Software /Include the plugins, virtual instruments you found/ (beginner/introductory tut)
**** Doing sound design for your game with Free Software (beginner/introductory tut)
** Premium series
*** Indie
/This is a list of topics, some can take several videos/
Scaling the hook's power based on distance
Wall jump
Ledge detection, grab ledge, and let the player jump
Unlocking new abilities
Level loops: Exploring the possibilities of the core mechanic
Designing frames with pre-made scenes, level loops, and tilemaps
Teaching the player how to play through level design: designing an in-game tutorial without words
Designing game animations in Godot
Designing combat mechanics, damaging enemies: e.g. hook pulls character to enemy and kills it, enemies use projectiles?
Simple flying enemy AI
Hook: Pulling objects
Sound design: how to choose the sounds and BGM for your game to improve the experience and game feel /Practical sound design tips like boosting basses, listening to the game the eyes closed.../
*** Pro
/This is a list of topics, some can take several videos/
Design analyses of character movement, camera, etc. in other platform games
Ledge: teleport to the platform
Polish: Storing input before touching the ground
Polish: letting the player jump right after starting a fall
Refining the camera: better prediction of the player's motion
Hook: Breaking fragile surfaces
Hook: Removing armors from enemies
How to architecture the map at a meta level to manage the player's progression
Designing and implementing flexible AI: Series on pathfinding, code structure to build reusable AI behaviors for flying enemies
Code structure: Rundown of the project's code structure and abstractions
Code structure: Patterns we use in the project