I Made The Hardest Puzzle Game Ever

IrrationalMango
29 Jul 202213:48
EducationalLearning
32 Likes 10 Comments

TLDRIn this video, the creator embarks on a unique journey to develop a Python-based puzzle platformer game where gravity behaves erratically, sending players in all directions. Utilizing the Pygame library, the game evolves from a simple square to a complex world with slime characters, gravity mechanics inspired by 'Run Three', and a variety of challenges. The creator overcomes several obstacles, including optimizing performance and manual texturing, to develop a fully functional level editor, intricate game mechanics, and atmospheric visuals. After four months of development, the creator successfully completes their first video game, showcasing perseverance and dedication.

Takeaways
  • ๐ŸŒ The video discusses creating a puzzle platformer game with a unique gravity mechanic that changes direction.
  • ๐Ÿค” The creator contemplates the feasibility of the game concept and its potential to be either a success or a failure.
  • ๐Ÿ The game development is done using Python and the Pygame library, which serves as a visual and audio interaction layer.
  • ๐Ÿ”จ Early development includes creating a basic square character that interacts with a tile-based environment with 'ground' and 'air' tiles.
  • ๐ŸŽฎ The game introduces a charging system for player movement, inspired by 'Angry Birds', and a slime character named Kevin with customizable traits.
  • ๐Ÿ”„ The core gravity mechanic is implemented where the direction of gravity changes based on the surface the player lands on, similar to the game 'Run Three'.
  • โœจ The game features a particle system called 'Mango Particle System' for visual effects and a death effect with camera shake for player failure.
  • ๐Ÿ› ๏ธ The development process faced challenges such as optimizing for performance, creating textures, and managing block combinations for visual consistency.
  • ๐Ÿ”„ The game includes various types of slimes with unique abilities that can be activated in mid-air, adding complexity to gameplay.
  • ๐Ÿ› ๏ธ A level editor was developed to allow for the creation of custom levels, offering infinite possibilities and replayability.
  • ๐ŸŽถ The game includes a soundtrack by Chris Wu, which provides a dynamic audio experience different from his usual classical music style.
  • ๐Ÿš€ After overcoming several development hurdles and bugs, the game was successfully completed and compiled into an executable format for distribution.
Q & A
  • What is the concept of the game being developed in the script?

    -The game is a puzzle platformer with a unique gravity mechanic that can change directions, sending the player in all four directions.

  • What programming language is used to develop the game?

    -Python is used for developing the game, utilizing the pygame library for visuals and audio interaction.

  • What inspired the developer to create a gravity mechanic in the game?

    -The developer was inspired by the game 'Run Three' and wanted to create a mechanic where gravity changes direction based on the surface the player lands on.

  • What is the 'mango particle system' mentioned in the script?

    -The 'mango particle system' is a custom particle system created by the developer to add visual effects like trails and particles to the game.

  • How does the size of the slime in the game affect gameplay?

    -The size of the slime determines its power when shooting itself, affecting how far it can propel and interact with the game environment.

  • What challenges did the developer face when creating block textures?

    -The developer initially struggled with creating an algorithm to automatically assign the correct texture to each block based on its surroundings, leading to a manual process that was later automated.

  • What is the significance of the slime named 'Kevin' in the game?

    -Kevin is the main character of the game, a slime that the player controls. The developer gave it a texture and eyes, and it rotates to follow its path of motion.

  • What types of slimes with different abilities are introduced in the game?

    -The game introduces slimes with abilities such as double jumping, gravity switching, ground slamming, and being unaffected by gravity, as well as a science slime that splits into two.

  • How does the developer address the issue of multiple slimes converging into one?

    -The developer made it so that slimes would bounce off each other instead of converging, to prevent players from easily beating levels.

  • What tools and resources did the developer use to create the game's assets?

    -The developer used Adobe Animate for creating slime and block textures, Desmos Graphing Calculator for undulating lava effects, and GarageBand along with custom recordings for sound effects.

  • What was the final name chosen for the game, and why?

    -The game was initially named 'The Grav Lab' but was changed to 'A Gravity Game' due to simplicity and avoiding ridicule from friends.

  • How long did it take the developer to complete the game, and what were some of the challenges faced?

    -It took the developer almost four months to complete the game. Challenges included exams, driver's education, PC breakdowns, and the complexity of building a game from scratch without a game engine.

  • What is the game's level editor capable of, and how does it work?

    -The level editor allows for the creation of levels with different block sizes, slime types, and an unlimited number of players. It's easy to use with left-click placement and right-click dragging to fill areas with blocks.

  • How does the game handle different types of terrain like walls and ceilings?

    -The game's gravity mechanic allows the player to interact with all surfaces, including walls and ceilings, making the gameplay dynamic and challenging.

  • What was the developer's approach to testing and fixing bugs in the game?

    -The developer used play testers to identify bugs, such as the issue with slimes converging and the crash upon hitting the save button. Fixes were made based on the feedback received.

  • What are the performance considerations for players when running the game?

    -Since the game was written in Python, performance may vary depending on the player's device. It might run slow even on the lowest graphics settings, but should be fine if nothing else is running.

Outlines
00:00
๐Ÿš€ Gravity Puzzle Platformer Concept

The video script introduces a unique game development project where the player experiences gravity in all four directions. The developer, using Python and the Pygame library, aims to create a puzzle platformer that challenges traditional game mechanics. The script details the initial development stages, including creating a basic square character that interacts with a tile-based environment. The player's movement is initially tied to the mouse, but a charging system is later implemented to enhance control. The character design is also discussed, with the player taking on the form of a slime named Kevin, who can vary in size, color, and number, affecting gameplay dynamics.

05:01
๐ŸŽฎ Enhancing Game Mechanics and Visuals

This section delves into the refinement of game mechanics, such as the introduction of a gravity mechanic inspired by the game 'Run Three', where the direction of gravity changes based on the surface the player lands on. The developer also discusses the creation of a particle system for visual effects, the addition of hazards like spikes for an element of challenge, and the implementation of a lava texture that moves and can be present on any surface due to the game's gravity mechanics. New types of blocks and slimes with unique abilities are introduced to increase gameplay complexity. The developer also shares the process of creating a 3D effect for the game's environment and the challenges faced in texturing individual blocks, eventually leading to an algorithm that automates the process.

10:03
๐Ÿ› ๏ธ Completing the Game with Sound and Level Editor

The final part of the script covers the completion of the game development process. The developer adds sound effects and a soundtrack composed by a friend, enhancing the game's audio experience. A main menu, settings menu, and an intro logo are implemented to give the game a polished finish. Playtesting reveals bugs that are subsequently fixed, such as issues with multiple slimes and the game crashing when saving levels. The game is then converted from Python to an executable format, making it accessible to a wider audience. The developer reflects on the challenges and achievements of completing the project, sharing a personal anecdote about overcoming obstacles and the dedication required to finish the game. Links to the game and additional resources are promised in the video description.

Mindmap
Keywords
๐Ÿ’กGravity
Gravity is the natural force that attracts two objects with mass towards each other. In the context of the video, it is portrayed as a dynamic element that can change direction, affecting the gameplay mechanics of the puzzle platformer being developed. The script describes how the game's gravity mechanic works, such as changing the direction of gravity when the player lands on different surfaces, which is inspired by the game 'Run Three'.
๐Ÿ’กPuzzle Platformer
A puzzle platformer is a genre of video games that combines platforming gameplay with puzzle-solving elements. The video's theme revolves around creating a unique puzzle platformer where the player has control over gravity, leading to innovative gameplay scenarios. The script discusses the development of such a game, including the challenges and creative solutions involved in designing levels and mechanics that incorporate this gravity control.
๐Ÿ’กPython
Python is a high-level, interpreted programming language known for its readability and efficiency. The script mentions Python as the programming language used to develop the game, highlighting the developer's familiarity with it and the challenges faced due to Python not being traditionally used for game development, such as performance issues when running multiple instances of the player character.
๐Ÿ’กPygame
Pygame is a set of Python modules designed for writing video games. It is used in the script to create the game's visuals and audio interactions. The developer uses Pygame as the 'game engine' for their project, demonstrating its capabilities in rendering a square (player character) and handling basic interactions like movement and collision with the environment.
๐Ÿ’กTile-Based Environment
A tile-based environment is a method of structuring levels in video games, where the game world is divided into a grid of tiles, each with its own properties. The script describes the implementation of such an environment in the game, with different types of tiles like 'ground' and 'air', which are crucial for the player's movement and interaction within the game world.
๐Ÿ’กSlime
In the video, 'slime' refers to the player character, which is designed to have different sizes, colors, and abilities. The script uses the term 'slime' to describe the main character's appearance and behavior, such as squishing and sticking to surfaces, and introduces variations of the slime with unique abilities that add depth to the gameplay.
๐Ÿ’กParticle System
A particle system in game development is used to create visual effects like smoke, fire, or explosions. The script mentions the creation of a 'mango particle system' to add visual polish to the game, such as particles for the player's trail and death effect, enhancing the overall aesthetic and feedback to the player.
๐Ÿ’กLevel Editor
A level editor is a tool used to design and construct levels within a video game. The script details the development of a full-fledged level editor for the game, allowing for the creation of levels with various block sizes, slime types, and player counts. This editor is a significant part of the game's development, enabling the creation of complex and challenging levels.
๐Ÿ’กGameplay Mechanics
Gameplay mechanics refer to the rules and systems that govern how a game is played. The script discusses various mechanics being implemented in the game, such as the ability to switch gravity, bounce off blocks, and utilize different slime abilities. These mechanics are central to the game's design and provide the foundation for the puzzles and challenges the player must overcome.
๐Ÿ’กOptimization
Optimization in game development refers to improving the performance and efficiency of a game. The script acknowledges the need for optimization due to Python's limitations in handling game development tasks, such as managing a large number of player instances. The developer plans to optimize the game to ensure smoother performance.
๐Ÿ’กGame Testing
Game testing is the process of evaluating a game to ensure it meets the desired quality standards and is free of bugs. The script mentions playtesting as a crucial step in the game development process, where issues like the convergence of multiple slimes into one and crashes in the level editor were discovered and subsequently fixed.
Highlights

The concept of a game with gravity that changes direction, creating a puzzle platformer experience.

Utilization of Python and the Pygame library to develop the game, despite Python not being a traditional game development language.

Innovative player movement mechanics allowing the player to be launched towards the mouse click and stick to walls and ceilings.

Introduction of a charging system for player movement, enhancing control and strategy.

Customization options for the player character, including size, color, and number, affecting gameplay dynamics.

Stress test of the game engine with a thousand players simultaneously to evaluate performance.

Creation of a slime character named Kevin with a unique texture and animation.

Implementation of a gravity mechanic inspired by the game 'Run Three', changing direction based on the surface the player lands on.

Development of a particle system referred to as the 'Mango Particle System' for visual effects.

Inclusion of hazards such as spikes and lava to add challenge and variety to the game.

Design of different types of blocks and slimes with unique abilities to enhance puzzle-solving aspects.

Introduction of a level editor allowing for user-created content and increased replayability.

Overcoming technical challenges with block textures and developing an algorithm to automate the process.

Incorporation of 3D effects and parallax techniques to create depth in the game's visuals.

Customization of the game's color scheme to a blue and orange theme for aesthetic appeal.

Addition of sound effects and a soundtrack composed by Chris Wu to enhance the game's audio experience.

Completion of the game development process, including playtesting and bug fixing, resulting in a fully functional video game.

Release of the game on GitHub for public access, demonstrating the culmination of the development journey.

Reflection on the challenges and learning experiences throughout the game development process, emphasizing perseverance and dedication.

Transcripts
Rate This

5.0 / 5 (0 votes)

Thanks for rating: