Application development made easier, more powerful, and more visual
Hello, Habr! Today I want to tell you about my project — “Game Engine 3”, a software shell for creating 2D games and applications.
Introduction

Game Engine 3 is a tool for creating 2D games with physics and animation. Being open-source, featuring an intuitive visual programming editor based on nodes, and offering capabilities for working with graphics, physics, and animation, it is suitable for both beginners and professionals. It allows you to create applications without writing code, thanks to a convenient and understandable interface. This article will explore what makes this shell unique.
Project Technical Details
The Game Engine 3 shell was created using the Python programming language, as well as Cython for optimization (which allows working with a Python-like language while having strictly typed variables, resulting in higher performance).
Architecture:
The Game Engine, which provides sprite rendering, collision handling, physics, animations
The Shell, which allows project creation.
The Website, which hosts documentation on using the shell.
Game engines are the heart of any modern game. They determine how quickly and conveniently developers can bring their ideas to life. The Game Engine 3 shell has its own physics engine, which implements collision detection (object contact) and object interaction (the ability for one object to move others). The rendering system uses Pygame's capabilities to draw graphics on the screen. Sprites and textures are implemented using Pillow's features.
The shell has its own editors for objects (changing their parameters), scenes (the ability to add objects and assign them specific properties), and functions (allows writing programs using nodes).
On the project support website https://artyom7777.pythonanywhere.com you can find information about the shell, descriptions of nodes and functions.
Downloading and Launching the Program
The shell is intended for writing applications on Windows (fully operational) and Linux (in beta testing). You can download the program from the https://artyom7777.pythonanywhere.com.
Extract the archive and run "Game Engine 3.exe".

Creating First Project
On the program's initial screen, there are 3 menu tabs: File, Project, and Help. In the File tab, you can create and open a project (And also a create project from the template), as well as create a project from a template.

Project and Collision Settings
After opening a project, on the left you are greeted by the project directory panel. The "project.cfg" file contains the main project settings: window size, title, and icon, setting max FPS and TPS, fullscreen mode, and the initial scene. In the "collision.cfg" file, you can set collisions between different groups of objects.


Files, Objects, Scenes, Functions
The program allows you to create objects, scenes, and functions. In objects, you can change their parameters, configure hitboxes, sprites, and animations. A scene allows adding objects and setting which object the camera will be attached to. Functions are an editor, written in nodes, that allows creating various algorithms.

Physics
There are four types of objects: Static, Dynamic, Kinematic and Particle. The parameters of dynamic objects include velocity, jump force, gravity, and braking force. Each object also has mass, which is used for interactions between objects. These properties allow for creating good physics and interesting games.
A kinematic object, unlike a dynamic object, can be moved using kinematic objects.

Animation
Let's focus on animations. In the animation editing menu, you can create groups. Each group has its own sprites that will be played during the animation. There are also settings for each animation group: whether it will loop, its speed, and whether the animation will start immediately when the scene begins.

Node Editor
Let's focus on Functions, which are presented as an editor where you can create nodes and connect their inputs and outputs to write various algorithms. For example, you can make the text "Hello World!" appear in the console when the game starts. Nodes are divided into categories: Events, Loops, Working with Text, Numbers, Logic, Objects, Animations, Other, Working with Lists and Dictionaries. More than 80 nodes are currently implemented. It's also worth mentioning the node that allows writing code in Python.

Created Projects
Several simple projects (Google Dino, Snake, and a Platformer) have been implemented using the Game Engine 3 shell to demonstrate the product's capabilities. These examples are published in a separate repository on GitHub.

Advantages
Ability to create games and applications without writing textual code.
Convenient editor and simple interface, easy for beginners to understand.
A website hosting information about the engine and a guide for creating your first project.
Future Plans
Ability to write shaders.
Ability to create projects for Linux, iOS, Android, Web.
New nodes to increase the editor's functionality.
Ability to create sprites within the engine.
Conclusion
Game Engine 3 is project for 2D games (applications) developments. With its node-based editor, powerful physics, and flexible animation system, it reduces time spent on routine tasks, allowing you to focus on creativity. Try the engine in action — it might become your new favorite.
Thank you for your attention! If you have any questions — please share them in the comments