Halo Section Bg

Learn Linked Lists Through Snake Game

Learn Linked Lists through Snake - make your snake grow dynamically as you learn essential linked list operations. Implement node creation, deletion, and traversal while building this classic game with SFML.

Subscribe and Unlock Access

Get this course, plus 20+ game programming courses. No Card Required. Pause Anytime.

Start Free TrialPreview

What you'll learn

  • Nodes & Linked List Structure

  • Implementation of a Singly Linked List

  • Arrays vs Linked Lists

  • Doubly Linked List & its Operations

  • Circular Linked List & its Operations

  • Using Linked Lists to Create a Dynamic Snake

  • Insertion: Head, Middle, Tail

  • Deletion: Head, Middle, Tail

  • Reversing a Linked List

  • Time Complexity of Linked List Operations

  • Implementing STL Lists

  • Implementing Grid-Based Movement

Requirements

  • Understanding of Arrays and its operations.

  • Intermediate to Advanced proficiency in C++.

  • Ability to read and understand existing C++ game code.

  • Prior experience working on C++ game projects.

  • A system with at least 8 GB RAM, i5 Processor, and 2 GB dedicated GPU.

  • Passionate about making games with a burning desire to become a game developer.

About This Course

Learn Linked Lists by creating the classic Snake game! Learn dynamic data structures while implementing snake growth, movement, and collision detection. Build an engaging game that perfectly demonstrates linked list operations through hands-on development with SFML.

This course offers an exciting, hands-on approach to learning Linked Lists in C++. Instead of just theory, you’ll apply data structures to game mechanics, making learning both engaging and practical.

You’ll start by implementing Singly and Doubly Linked Lists, understanding nodes, insertion, deletion, and traversal. The game’s food system dynamically modifies the snake’s structure using linked list operations—junk food increases size, healthy food removes nodes, alcohol reverses direction, and poison cuts the snake in half.

By the end of this course, you'll not only master Linked Lists but also build a feature-rich Snake game, showcasing data structures in action!

Show More

Curriculum

4 lessons
  • Project Goal
  • Preview

  • Getting Started - Snake
  • Configuring Project
  • Branching Instructions
2 lessons
5 lessons
4 assignments
1 quiz
  • Understanding Level
  • Managing Levels
  • Drawing a Level
  • Starting off with the Level
  • Creating Model and Controller
  • [⏳Quiz]
  • Adding Level Model and Controller
  • Level Selection UI
  • Using Level Service
  • Solution for Level Creation Branch
5 lessons
3 assignments
  • Creating a Player Service
  • Create Player Service
  • Understanding the requirements of our Snake
  • Understanding Snake
  • Setup Snake
  • Position and Direction of Snake
  • Setup Position and Direction
  • Are arrays the best solution?
2 lessons
2 quizzes
  • What is a Linked List?
  • [⏳Quiz]
  • Arrays vs Linked List
  • [⏳Quiz]
6 lessons
5 assignments
2 quizzes
  • Chain of Body Parts
  • Data for Body Parts
  • Create BodyPart
  • Reference for next Body Parts
  • Create Node
  • [⏳Quiz]
  • Drawing a Body Part
  • Draw BodyPart
  • Calculating Position and Rotation
  • Calculate Position and Rotation
  • Making a Body Part Move
  • Move BodyPart
  • [⏳Quiz]
3 lessons
3 assignments
1 quiz
  • Creating a Singly Linked List
  • Starting off with Linked List
  • Spawn Snake’s Head
  • Spawning Snake Head
  • Adding more Body Parts to Snake
  • Spawning Snake Body
  • [⏳Quiz]
  • Preview

5 lessons
3 assignments
1 quiz
  • Chapter Goal
  • Changing Directions with Input
  • Making the Snake Move
  • Implement Snake Movement
  • Use Time Service for Snake Speed
  • Time and Speed
  • Implementing Screen Wrapping
  • Add Screen Wrapping
  • [⏳Quiz]
7 lessons
4 assignments
1 quiz
  • Time to Die Snake!
  • Death Condition
  • Implementing Collisions
  • Implement Body Collision
  • Deleting Snake after Death
  • Delete Snake
  • [⏳Quiz]
  • Re-spawning Snake
  • Re-spawn Snake
  • Figuring out Input Bug
  • Fix Input Bug
  • Solution: Bug in Snake Collision
7 lessons
3 assignments
1 quiz
  • Understanding Obstacles
  • Creating Elements
  • Creating Obstacles
  • Create Obstacles
  • Element Service
  • Using Element Service
  • Implemente Element Service
  • Creating Level 2
  • Create Level 2
  • Solution for Linked List Branch
  • [⏳Quiz]
  • Preview

7 lessons
4 assignments
1 quiz
  • Understanding Food
  • Food Items
  • Starting off with Food
  • Understanding Food Spawning
  • Spawn 1 Food
  • Spawn Food
  • Spawning Random Food Items
  • Spawn Random Food
  • Handling Spawn Timer
  • Food Spawning In Intervals
  • Solution for Food Spawning Branch
  • [⏳Quiz]
4 lessons
2 assignments
1 quiz
  • Chapter Goal
  • Refactoring Snake Collision Logic
  • Refactor Snake Collision
  • Collision with Elements
  • Collision with Food Items
  • Collision in Elements and Food Items
  • [⏳Quiz]
11 lessons
11 assignments
3 quizzes
  • Insertion at the Beginning
  • Initializing a Node
  • Initialize Node
  • Insertion at the Beginning Continued
  • Insert at Beginning
  • Insertion at the End
  • Insert at End
  • Insertion at an Index
  • Insert at Index
  • Insertion at the Middle
  • Insert at Middle
  • [⏳Quiz]
  • Deletion at the Beginning
  • Delete at Beginning
  • Deletion at the Middle
  • Deletion at the End
  • Delete at End
  • [⏳Quiz]
  • Splitting in Half
  • Split in Half
  • Reversing Linked List
  • Reverse Linked List
  • Sync with Food Collision
  • Sync Food Collisions
  • [⏳Quiz]
3 lessons
1 assignment
  • Player Score
  • Operation and Time Complexities
  • Create Gameplay UI Controller
  • Solution for Linked List Operations Branch
3 lessons
2 quizzes
  • What is a Doubly Linked List
  • Singly vs Doubly Linked List
  • [⏳Quiz]
  • Relevance of Doubly Linked List
  • [⏳Quiz]
6 lessons
4 assignments
2 quizzes
  • Prepare for Restructuring
  • Understanding New Structure
  • [⏳Quiz]
  • Creating Base Node Class
  • Creating Single and Double Nodes
  • Create Single and Double Nodes
  • Creating Base Linked List Class
  • Implement Base Linked List Class
  • Refactoring Single Link List
  • Creating Double Linked List
  • Create Double Linked List
  • [⏳Quiz]
5 lessons
9 assignments
3 quizzes
  • Insertion at the Beginning
  • Insert at Beginning - DLL
  • Insertion at the End
  • Insert at End- DLL
  • Insertion at the Middle - DLL
  • [⏳Quiz]
  • Deletion at the Beginning
  • Delete at Beginning - DLL
  • Deletion at the End
  • Delete at End - DLL
  • Deletion at the Middle - DLL
  • [⏳Quiz]
  • Delete All Nodes
  • Delete All Nodes - DLL
  • Splitting in Half - DLL
  • Reversing Linked List - DLL
  • [⏳Quiz]
5 lessons
4 assignments
1 quiz
  • Creating Linked List Type
  • Create Linked List Type
  • Linked List Selection UI Screen
  • Create LL Selection Screen
  • Using Selected LL for Snake
  • Creating Selected LL
  • STOP Food Spawning
  • Stop Food Spawning
  • Solution for Doubly Linked List Branch
  • [⏳Quiz]
4 lessons
1 assignment
  • What is a Circular Linked List
  • Why use a Circular Linked List
  • How to use Circular Linked List
  • Time Complexities of a Circular Linked List
  • Implement CLL and it’s operations in Repel
2 lessons
1 assignment
  • What is STL’s List
  • Using std::list
  • Linked List Loop
1 lesson
6 assignments
  • Bonus Assignment Instructions
  • Create More Levels
  • High on Energy
  • Badass Boss Battle
  • Animation for eating food and digesting
  • Different food spawning algo
  • Moving Obstacles
1 lesson
  • Cheat Sheet - Linked List

Game Projects Built By Industry Experts

Our team of experienced game dev professionals creates impactful projects, led by our founder Mayank and developers who've worked on major titles like Transformers and Temple Run 2.


After struggling to find adequate game development education and taking on significant student debt, Mayank founded Outscal. Now, 60% of our team consists of former students who succeeded in the gaming industry and returned to help others build their careers in games.



Start Your Journey with Outscal Now

Stop thinking! Reading this in 2025 is a sign to begin your game dev journey. Get, Set, Go!

Project Updates

We encourage our clan members to build in public. Posting your progress on platforms like LinkeIin & Twitter holds you accountable and helps you reach the right audience. Imagine recruiters reaching out to you after seeing your daily progress. This is what our clan members have seen happening and its your turn now.

Our Alums Work Here

Start Free Trial

Placements

We cut a cake every time one of our students gets placed—and the bakery’s on speed dial because these job offers just keep rolling in.

Choose Your Plan

Frequently Asked Questions

What is included in the Pro Plan?

You get full access to our entire library of 20+ game projects covering Unity, C++, Data Structures and Design Patterns. Plus, any future projects added will be included at no extra cost.

I am an existing student enrolled in an Outscal program, do I need a subscription for Pro?

If you are already enrolled at Outscal in any of these courses: Full Stack Game Developer, Game Development Advance, Game Dev Fast Track, then you already have full access to out content library, no extra subscription is needed.

What happens to my progress if I cancel my subscription of Pro Plan?

Your progress stays saved. If you renew later, you'll pick up right where you left off.

What content is included in the projects?

Each project focuses on a specific skillset like Design Patterns, Unity, C++, or data structures and guides you through building a real game while you learn these technical concepts. Hence the name "Projects.”

What is the difference between Pro and Mentorship plan?

The Pro plan gives you full access to our entire content library. The Mentorship plan includes everything in Pro plus one-on-one guidance from industry veterans, code reviews, placement prep, and job support.

Does the content include live classes?

No, all content is text-based or pre-recorded , allowing you to learn at your own pace. If you want one-on-one guidance, you can opt for the Mentorship plan.

Does the content include video content?

The core material is text-based. It is engaging text-based format enriched with images, GIFs and videos where helpful. Yet text remains the primary medium.

When will the payment for the subscription be deducted?

Your subscription payment is deducted at the beginning of each 30-day cycle.

Is placement support included in the program?

Placement support isn’t included in the Pro plan (subscription). It’s part of the Mentorship plan, which also offers one-on-one mentorship with industry veterans, code reviews, and placement preparation.

How can I get my doubts solved while I do the courses?

We have a 24/7 Discord community of thousands of game developers who help each other daily. For serious issues, you can directly contact our internal ops team.

Will I get access to all future content that gets added to the library?

Yes, as an active subscriber, you’ll have access to any new projects we add, at no extra cost.

How can I cancel my subscription?

To easily cancel your subscription, simply send an email to admissions@outscal.com or reach out to your payment provider (PayPal or RazorPay). We're here to help you!

What is the best order to complete the 20 projects?

We recommend following the sequence displayed on the “Courses” page, which progresses from beginner to advanced levels (top to bottom). Each project includes a difficulty rating, so if you are already confident with the basics, you can use the intermediate or advanced difficulty filters to advance more quickly.

Which payment methods are supported?

For users in India, payments can be made using RazorPay, while international users can utilize PayPal.

How do I get access to the content?

You will receive a payment confirmation email. Access to all content will be granted within 24 hours after you receive this confirmation.

Do I need to create an account on Outscal platform?

Yes, please make sure that the Email ID you have used with your payment provider (PayPal/RazorPay) is the same Email ID you have registered with on Outscal’s platform in order to unlock access to content.

Projects Included in Pro Plan

Discord Community

We have a close-knit community of 13000+ game devs — artists, designers, programmers, producers, testers, and more.
Network, build connections, attend events, and get referrals.

Karma system on our Discord server motivates everyone to help other folks in the community. All you have to do is tag the right role and ask your question. From basics of C++ to helping you choose the right design pattern for your complex game — our community members will unblock you in less than 15 minutes.

START YOUR STREAK