In the previous tutorial, we learned about
transforms, a very important concept in 3D that records an object’s local
orientation in space, and used it to move our KinematicBody character. This time,
we’re going to look at another type of 3D node: the Area.
About this series
A word of warning: 3D development can be quite a bit more complex than working
in 2D. While many of the same principles apply - such as working with nodes,
writing scripts, and handling logic/data - 3D brings with it a number of other
considerations. For this reason, it’s a good idea to stick to 2D for your first
few projects, moving to 3D once you have a good understanding of the game
development process. This tutorial will assume you have completed at least
an introductory Godot 2D project.
In the previous tutorial, we covered how
to import 3D objects and how to arrange them in a scene. In this installment,
we’ll add more objects to the scene, including a user-controlled character.
About this series
A word of warning: 3D development can be quite a bit more complex than working
in 2D. While many of the same principles apply - such as working with nodes,
writing scripts, and handling logic/data - 3D brings with it a number of other
considerations. For this reason, it’s a good idea to stick to 2D for your first
few projects, moving to 3D once you have a good understanding of the game
development process. This tutorial will assume you have completed at least
an introductory Godot 2D project.
In the previous tutorial, we started a 3D
project and looked at how to navigate and create 3D objects. In this part, you’ll
learn how to import existing 3D objects that you’ve made or downloaded and how
to use more of Godot’s 3D nodes.
About this series
A word of warning: 3D development can be quite a bit more complex than working
in 2D. While many of the same principles apply - such as working with nodes,
writing scripts, and handling logic/data - 3D brings with it a number of other
considerations. For this reason, it’s a good idea to stick to 2D for your first
few projects, moving to 3D once you have a good understanding of the game
development process. This tutorial will assume you have completed at least
an introductory Godot 2D project.
In this tutorial, we’ll look at how to start working in 3D in Godot. You’ll
learn how to navigate in the 3D editor, how to create and manipulate 3D objects,
and how to work with some of Godot’s essential 3D nodes, such as cameras and
lighting.
About this series
A word of warning: 3D development can be quite a bit more complex than working
in 2D. While many of the same principles apply - such as working with nodes,
writing scripts, and handling logic/data - 3D brings with it a number of other
considerations. For this reason, it’s a good idea to stick to 2D for your first
few projects, moving to 3D once you have a good understanding of the game
development process. This tutorial will assume you have completed at least
an introductory Godot 2D project.
In this series, we’ll explore the applications of procedural generation to game
development. While we’ll be using Godot 3.0 as our platform, much of the concepts
and algorithms related to this subject are universal, and you can apply them to
whatever platform you may be working on.
In this part, we’ll wrap up the procedurally generated dungeon by making it into
a TileMap that we can explore.
In this series, we’ll explore the applications of procedural generation to game
development. While we’ll be using Godot 3.0 as our platform, much of the concepts
and algorithms related to this subject are universal, and you can apply them to
whatever platform you may be working on.
In this part, we’ll continue working on the random dungeon generator, adding
corridors to connect the rooms.
In this series, we’ll explore the applications of procedural generation to game
development. While we’ll be using Godot 3.0 as our platform, much of the concepts
and algorithms related to this subject are universal, and you can apply them to
whatever platform you may be working on.
In this part, we’ll look at a technique for generating random dungeon maps.
In this series, we’ll explore the applications of procedural generation to game
development. While we’ll be using Godot 3.0 as our platform, much of the concepts
and algorithms related to this subject are universal, and you can apply them to
whatever platform you may be working on.
In the previous parts we looked at using
maze generation algorithms. In this part, we’ll look at some other ways to
generate a tile-based world.
In this series, we’ll explore the applications of procedural generation to game
development. While we’ll be using Godot 3.0 as our platform, much of the concepts
and algorithms related to this subject are universal, and you can apply them to
whatever platform you may be working on.
In the previous part we explored how to generate
a random maze using Godot’s TileMap node. In this part, we’ll look at some ways
to use these mazes in your game projects.
In this series, we’ll explore the applications of procedural generation to game
development. While we’ll be using Godot 3.0 as our platform, much of the concepts
and algorithms related to this subject are universal, and you can apply them to
whatever platform you may be working on.
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
In this demo, we’ll consider a local multiplayer game - a topdown-style maze game with
two players (one using arrow keys and the other using WASD controls). This is
not a problem if our game world all fits on one screen, but if the map is large,
we’ll want to have a “split screen” view tracking the two players separately.
We’ll also look at a quick way to set up a minimap display.
Sat, Jun 16, 2018
Mobile UI Building the UI is usually the least fun part of your game. When I’m working on a project, I tend to ignore this part for as long as I can. On the plus side, once you’ve built a few game screens and UI systems, you can often use them across mulitiple projects.
In this tutorial, we’ll make a small UI system for a mobile game. We’ll focus on the UI screens only, with the goal that you can plug this into your own game to jump-start construction of your various game screens.
Read more...
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
This is Part 8: Tank explosions and shooting effects
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
This is Part 5: Enemy shooting and improved enemy movement
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
In this tutorial series, we’ll walk through the steps of building a 2D top-down tank game using Godot 3.0. The goal of the series is to introduce you to Godot’s workflow and show you various techniques that you can apply to your own projects.
This tutorial shows how to use the ray-casting feature of Godot’s physics engine (not the RayCast2D node) to make entities that can’t see through walls.
We’ll use a TileMap for walls and create some rotating turrets that look for the player and shoot when they can see it.
Note: This is not a beginner-level tutorial. It assumes you have a general knowledge of Godot. If you’re not there yet, start here.
Godot offers a number of collision objects to provide both collision detection and response. Trying to decide which one to use for your project can be confusing. You can avoid problems and simplify development if you understand how each each works and what their pros and cons are. In this tutorial, we’ll look at the KinematicBody2D node and show some examples of how it can be used.
In this tutorial, we’ll explore how inheritance works in Godot. You can use
inheritance in Godot to reuse code and create powerful hierarchies of object and
scenes in your game.
We’ll imagine we’re making a classic top-down RPG and use Godot’s inheritance
capabilities to create two different kinds of characters in the game.
At the time of this writing, Godot 3.0 is nearing release, and many new users are
trying it out. Recently I’ve seen a lot of confusion around physics and physics
bodies, especially rigid bodies, which are Godot’s “true” physics nodes.
In this tutorial, I’ll explain when (and when not) to use rigid bodies, how they
work, and demonstrate a few handy tricks to bend them to your will. The
examples will use RigidBody2D, but the lessons apply equally to 3D.
You can watch a video version of this lesson here:
I began using Godot Engine with a group of students. This is a small group of
my most advanced middle schoolers (ages 11-12), with 1+ years of Python
experience. I do an “advanced topics” class with them every Thursday after school.
They have never used a game engine before.
This is part 13 of “Godot 101”. In this installment, we take a deeper look at how to handle KinematicBody2D collisions in a simple and accurate way, and how to avoid a few common mistakes. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 12 of “Godot 101”. In this installment, we add a camera to follow the player, and make a scrolling background. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 11 of “Godot 101”. In this installment, we’ll add animation to the player character. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 10 of “Godot 101”. In this installment, we’ll learn about how to detect when a character is on the ground, so we can jump, by using the RayCast2D node. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 9 of “Godot 101”. In this installment, we’ll learn about how to do simple arcade-style physics using Godot’s built-in physics engine. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 8 of “Godot 101”. In this installment, we’ll learn about two of the simplest yet most useful nodes in Godot: the Tween and the Timer. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 7 of “Godot 101”. In this installment, we’ll learn how properly communicate between nodes, using a Godot feature called a signal. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 6 of “Godot 101”. In this installment, we’ll learn how to detect when two collision areas overlap, so we can make our player run around and pick up gems. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 5 of “Godot 101”. In this installment, we’ll learn how to use player input to move a sprite around the screen. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 4 of “Godot 101”, taking our bouncing sprite and showing how to quickly create multiple instances of it. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 3 of “Godot 101”, where we’ll finish scripting our bouncing animated sprite. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 2 of “Godot 101”, where we’ll introduce Godot’s scripting language, GDScript. If you haven’t already read through the previous parts, please start with Part 1.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 1 of “Godot 101”, where we’ll give an overview of what a game engine is in general, and what Godot is in specific.
About this series
Godot 101 is an introduction to the Godot game engine and how it works. If you’ve never used a game engine before, or if you’re just new to Godot, this is the place to start. If you’re new here, a quick note about this website: we’re called KidsCanCode because we teach programming and game development to kids, but if you’re an adult you’re welcome here, too. We don’t believe in dumbing-down the material for kids, and game development is hard - so it will probably be challenging no matter what your age.
This is part 14 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll finish up the game by adding a “Game Over” screen and the ability to play again.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 13 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll add some powerups that will occasionally appear.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 12 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll add some powerups that will occasionally appear.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 11 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll add multiple lives to the player as well as a nice explosion when player dies.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 10 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll some animated explosions when the player shoots a meteor.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 9 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll add a shield to the player as well as a bar to display the shield’s level.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 8 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll add sound effects and music to the game.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 7 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll start keeping score and learn how to display text on the screen.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 6 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll make our meteors more interesting by adding a little bit of sprite animation.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 5 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll discuss how to change the way Pygame handles collisions between sprites.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 4 of our “Shmup” project. If you haven’t already read through the previous parts, please start with Part 1. In this lesson we’ll discuss how to use pre-drawn graphics in our game.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 3 of our “Shmup” project! In this lesson we’ll add collisions between the player and the enemies, as well as adding bullets for the player to shoot.
About this series
In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 2 of our “Shmup” project! In this lesson we’ll add some enemy sprites for our player to dodge. In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
Let’s make our first game! In this series of lessons we’ll build a complete game using Python and Pygame. It’s intended for beginning programmers who already understand the basics of Python and are looking to deepen their Python understanding and learn the fundamentals of programming games.
This is part 3 of our tutorial series, “Game Development with Pygame”. It is intended for beginner/intermediate programmers who are interested in game development and improving their Python coding skills. You should start with Part 1: Getting Started
This is part 2 of our tutorial series, “Game Development with Pygame”. It is intended for beginner/intermediate programmers who are interested in game development and improving their Python coding skills. You should start with Part 1: Getting Started
This is part 1 of our tutorial series, “Game Development with Pygame”. It is intended for beginner/intermediate programmers who are interested in game development and improving their Python coding skills.
I have often said that I believe computer programming should be adopted as a core curriculum subject in primary school, just like science, history, or math. I often give presentations to this effect for parents, teachers, and school administrators. In this article, I’ll explore a few of the reasons why I believe so strongly in the power of early CS education.
When considering the place of computer science in the curriculum, let’s first look at why we teach other core subjects.
We teach science because we want children to understand the world around them, and the scientific method is a fantastic intellectual tool for investigating the world around you. In a modern society, where scientific advancements directly affect so many aspects of our lives, it is advantageous to have a good understanding of how science works.
In the same way, learning about history or math contribute to a better understanding of the world by providing perspectives and ways of thinking that we wouldn’t otherwise know. In particular, I’ll talk about the use of math in more detail below.
Over the past few years, I’ve taught hundreds of kids to code using Python in workshops, after school programs, and as part of school curriculum. Most of the students I teach are around middle school age (11-14). I find this age to be a great time to start learning. The kids are very engaged and capable - and very motivated to learn, if given the chance.
I prefer Python for teaching kids for a number of reasons, foremost because it’s a very beginner-friendly language. That said, however, there are still a number of very common areas where kids tend to struggle the most.
Making games is a great way to improve your programming skills while making something fun at the same time. Pygame is a set of tools for Python that make it easy to work with graphics and sound.
Unfortunately, installing Pygame is not as easy as using it is. Below you’ll find the best directions we’ve found for getting it working on your system. Follow the directions below, and let us know in the comments below if you have any problems.
There are a huge number of programming languages out there. You’ve probably heard of one or two, even if you’re not a programmer yourself - Java, C++, Swift, etc. But what are they all about and how do you choose which one to learn?
There’s really not one perfect answer to this question, but personally, I prefer Python for teaching kids for a number of reasons. I’ll go into some of those reasons below, but if I had to boil it down to a few bullet points, they would be these:
Sun, Aug 23, 2015
“Gamification” is the application of game design and gaming mechanics in non-gaming contexts. When you see LinkedIn giving you a “profile score,” that’s gamification at work. Done well, it can be a great method of incentivizing users to be more active. In fact, in the absence of formal gamification features, users will often “gamify” things themselves - from people on Facebook who try and get more Likes than their friends, to drivers trying to time it so they don’t hit any red lights.
Read more...