If this is your first year doing game development make sure you have worked through the basics in the Learning Godot and Piskel page.
In your second year, you’ll build on the skills you learned last year, with a focus on advanced techniques and the chance to specialize. You'll also work in teams, simulating real-world development environments. This is a great opportunity to dive deeper into areas like, programming structures, advanced pixel art, shaders, particle effects, or optimizing levels.
Below are resources to help you get started with some of these advanced skills. Remember, just like any craft, mastering video game design comes from deliberate practice. The more you work on projects, experiment, and solve challenges, the better you’ll become.
AI tools can be a useful learning aid when you are developing games in Godot. They are best used to:
Help explain error messages or unfamiliar concepts
Suggest ways to approach a problem when you are stuck
Generate temporary placeholder art so you can focus on gameplay and mechanics first
However, AI should be used with caution, especially for programming.
Important limitations to be aware of:
Godot has major differences between version 3.5 and 4.x, particularly in GDScript syntax and node systems. AI tools often mix these up, which can lead to broken or confusing code.
AI tends to focus on small code snippets, not the overall structure of your project. This means it may suggest solutions that don’t fit well with how your game is organised.
Code generated by AI may look correct but still contain logical errors or poor practices that make your game harder to maintain.
Best practice:
Use AI as a support tool, not a replacement for understanding your own code. Always test, read, and adapt anything it suggests so it works correctly in your project and your version of Godot.
Effectively managing your GitHub repository is essential for successful teamwork. All team members must understand the basics of Git management and branching, while one member should take responsibility for merging branches as the project progresses. These skills can only be mastered through practice, so during this learning cycle, you will actively branch and merge your project. This hands-on experience will help you navigate both the challenges and rewards of using Git.
This video provides a refresher on the basics of Git. Each team member should be added to the project and regularly push changes to their own branch. As a team, aim to merge all completed features into the main branch approximately once a week. Remember: do not merge features that are incomplete or broken!
Everyone should at a minimum understand the "Hello World" tutorial of Github.
At a minimum everyone in the team should understand the basics of Github as outlined in this walkthrough document.
With each new feature you should create a new branch. For instance someone might be working on the Enemy AI. They might make a brach called "Beatle Enemy AI"
One member of the team needs to become an expert in Github. Their job is when a feature is ready it needs to be committed back into the main.
Over the past year, you’ve laid the foundation by learning core programming concepts, exploring the Godot interface, and creating functional 2D and 3D projects. Now it’s time to build on those skills and take your game development expertise to the next level. Now it is about being more deliberate with your codebase and learning some useful systems for making better and easier to debug Godot systems.
Designing character and NPC logic can be challenging. Finite State Machines (FSMs) offer a way to simplify these complex systems, making them an essential tool if you're developing a metroidvania or similarly intricate game.
In this guide, you will learn how to create a Finite State Machine (FSM) in Godot 4. It looks at the problem this pattern tries to solve and see two ways to implement it: using a simple variable and functions, and using nodes for a visual representation.
Often you are wanting to pass information or signals to a node that is far away from the emitter. Instinctually you may want to connect distant nodes using the editor or convoluted paths. This is not best practice and instead using a powerful event bus you can simplify and more easily debug
This tutorial introduces the Event Bus system and further explains why it is important.
Shaders in Godot are small programs that run on the graphics card to create cool visual effects, like glowing lights, water ripples, or unique textures. They are written in Godot's Shader Language, which is easy to learn if you know basic coding. Shaders can make objects react to things like player movement or changes in the environment. They are also great for improving performance by letting the graphics card handle visual effects. Learning shaders helps programmers add exciting, polished visuals to their games.
The Godot Shaders library is an online collection of free, community-made shaders that developers can use to add visual effects to their games. Shaders control how objects look by modifying things like colors, lighting, and textures in real-time. The library includes effects like water, fire, glowing objects, and more, which can save developers time and effort. Using the Shaders Library is a great way to learn how shaders work, experiment with advanced graphics, and make games look more polished.
Pixel art is made by colouring individual pixels in a fixed grid. Each pixel is placed deliberately, which gives pixel art its distinctive retro style and makes it well suited for characters, tiles, and animations in 2D games.
Vector art is made using shapes, lines, and maths rather than individual pixels. Because of this, vector images can be resized to any size without losing quality, which makes them great for UI elements like buttons, icons, and menus in games.
Classic game aesthetic
Perfect for retro, platformers, roguelikes, and 2D action games.
Directly supported by game engines
Works naturally with sprites, tilesets, and animations.
Precise control over every pixel
Artists choose exactly what each pixel looks like — great for clarity and readability.
Efficient for animation
Frame-by-frame animation is straightforward and widely understood.
Works well with lighting and shaders
Many modern engines support pixel-perfect lighting effects.
Does not scale well
Scaling up can cause blurring or jagged edges if not handled correctly.
Time-consuming to create
High-quality pixel art takes practice and patience.
Harder to revise
Changing proportions or shapes often means redrawing sections.
Resolution-locked
Assets are designed for a specific resolution and can look poor if stretched.
Scales perfectly at any size
Vector art can be resized from tiny UI icons to full-screen menus with no loss of quality — ideal for different screen resolutions.
Great for UI and icons
Buttons, health bars, maps, logos, and menus stay sharp on all devices.
Easy to edit and tweak
Colours, shapes, and lines can be changed quickly without redrawing the asset.
Smaller file sizes (for simple art)
Simple vector assets are often much smaller than equivalent high-resolution images.
Future-proof
Assets still look good if the game resolution changes later in development.
Not always supported directly in game engines
Many engines convert vectors into images (textures) at runtime or import time anyway.
Less suited to detailed, textured art
Organic shading, painterly styles, and complex lighting are harder to achieve.
Can feel “flat” or sterile
Without effort, vector art can look overly clean or simplistic.
Animation can be more complex
Skeletal or hand-drawn animations are often easier with pixel or raster art.
Last year you looked at using Piskel to make simple pixel art. You now need to do some deliberate study in order to level up your pixel art game. You should still incorporate the use of colour pallets and animations from last year but you should start expanding on more advaned skills. Pedro Medeiros a professional pixel artist has written an excellent series for Medium which includes a number of more advanced techniques that you should include in your pixel art this year.
At a minimum you should read each of these articles in the series and spend a week deliberatly practising the skills discussed. Art Prompts is a great place to just generate and idea that you can just make without wasting time in indecision.
While you can continue using Piskel this year, upgrading to a more professional tool like Aseprite could be highly beneficial. Aseprite is available for $20 USD on their website and includes a Steam key.
https://medium.com/pixel-grimoire/how-to-start-making-pixel-art-2-bcd705cb04d7
https://medium.com/pixel-grimoire/how-to-start-making-pixel-art-4-f57f51dcfa02
https://medium.com/pixel-grimoire/how-to-start-making-pixel-art-4-ff4bfcd2d085
A great starting point for learning vector graphics is 2Dgameartguru, as it focuses on creating game art with vector tools and breaks the process into clear, approachable steps.
Get started by using the tutorials on the left to learn how to use simple shapes and lines to make a simple but highly modifiable character design great for a cartoony 2D game.
There is also a similar written tutorial with some more character design theory.
A quick series of exercises to learn how to use the Bezier Pen tool in Inkscape.
This is very useful tool for for tracing.
A series of quick exercises to learn a mixture of path functions.
Logos By Nick is an excellent source of knowledge about not just Inkscape but Gimp as well.
At Level 2, creating game assets requires the use of advanced techniques rather than just following beginner tutorials. This includes controlling curves with the pen tool, organising layers clearly, using colour deliberately, and preparing assets so they are suitable for use in a game engine (see the animation resources below). These skills demonstrate a deeper understanding of both design and development.
There is no single “correct” way to animate 2D characters in games. Different projects, art styles, and workflows suit different animation approaches, and the following videos show some common options you can choose from.
A single, flat character image is “cut up” and animated using bones, without separating the art into multiple sprite files first.
Teaches how to rig and animate characters using Godot’s 2D tools. Each body part (head, arms, legs, etc.) is a separate image. These parts are connected with bones and animated inside the game engine.
There is also a useful tutorials on how to combine these animations using Animation Trees
Shows how to arrange frames into a clean sprite sheet ready for game import
Godot's TileMap system makes it easy to create large 2D game levels by arranging reusable tiles. Instead of drawing everything by hand, you can quickly build environments using tiles from a TileSet. TileMaps also handle important features like collisions and navigation, which help characters move around and interact with the world. You can even use scripts to change the map while the game is running. Learning about TileMaps helps developers build better 2D games faster and with less effort.
Particles in Godot are great for adding dynamic effects like fire, smoke, rain, or explosions to bring levels to life. They use small, moving sprites or meshes to create these effects and can be customized with properties like size, speed, and direction. Level designers can use particles to add atmosphere, highlight important areas, or make interactions feel more exciting. With Godot's CPUParticles and GPUParticles, you can balance performance and visual quality depending on the project’s needs. Learning to use particles effectively helps make levels feel more immersive and visually engaging.
Lighting is a key tool for setting the mood and guiding players through a level. In Godot, level designers can use 2D and 3D lights, including DirectionalLight, PointLight, and SpotLight, to shape the look and feel of a scene. Adjusting properties like brightness, color, and shadow settings allows for dramatic or subtle effects. For 2D games, LightOccluders can create realistic shadows, while in 3D, environment settings like fog and global illumination can add depth and realism. Good lighting helps focus player attention, adds atmosphere, and makes levels look polished and professional.