A game engine built for simplicity, performance, and creativity
Simple tools, simple code, extreme performance. Built for creativity and ease of use.
⚠️ Experimental - Pre-Release
Perro provides everything you need to build games with a clean, intuitive scripting language and powerful systems that work together seamlessly, optimized for speed and simplicity.
Write your game logic in Pup, a clean and intuitive scripting language designed specifically for game development. With syntax similar to TypeScript, it's familiar and easy to learn.
Pup compiles directly to native Rust code, giving you the simplicity of a scripting language with the performance of native code. No runtime interpretation, no virtual machine, it's just fast, efficient game logic.
Learn Pup →Everything in Perro is a node, managed by the engine's central system in a flat map for fast access. From 2D sprites to 3D meshes, cameras to lights. Build complex hierarchies with simple, reusable components.
The engine manages all nodes in a centralized flat map, providing constant access time. No need to worry about memory management or complex setup. Just create nodes and let the engine handle the rest.
Explore Nodes →Organize your game world with Perro's powerful scene system. Build levels, manage states, and structure your project with intuitive hierarchies.
Scenes are statically compiled into the executable in release builds, eliminating runtime file I/O and parsing overhead. Load entire scenes in milliseconds, not seconds.
View Features →Just write scripts in Pup. The APIs automatically hook into the engine to access nodes. Attach scripts to any node to add behavior and logic. No manual memory management or complex setup needed.
Scripts compile directly into the engine binary, giving you full access to engine internals. The type-safe API bindings automatically connect your scripts to engine nodes, so you can focus on game logic instead of boilerplate.
Learn Scripts →Build beautiful interfaces with Perro's UI system using FUR (Flexible UI Rules). Create menus, HUDs, and interactive elements with a powerful text based declarative approach.
FUR files are statically compiled at build time, eliminating runtime parsing overhead. Write your UI in a declarative markup format similar to JSX or XAML, and Perro handles the rendering efficiently.
Learn UI →Pup's syntax is similar to TypeScript, familiar and easy to learn. Here's a simple example of a player script:
@script Player extends Sprite2D var speed = 7.5 var health = 100 fn init() { Console.print("Player ready!") } fn update() { var delta = Time.get_delta() self.transform.position.x += speed * delta } fn take_damage(amount: int) { health -= amount if health <= 0 { Signal.emit("player_Died") } }Don't let the simple syntax fool you. Pup compiles down to optimized machine code, running natively alongside the engine with zero interpretation overhead.
Your Pup scripts are compiled to native machine code alongside the engine core. No virtual machine, no interpretation, just pure performance.
Scripts compile directly into the engine binary. There's no boundary between your game code and the engine. Everything runs as native Rust code with full access to engine internals.
Get quick feedback during development. Only modified scripts need to recompile, keeping your workflow smooth and efficient.
Write simple code, get native performance. No compromises.
Speeds have been achieved up to 40,000 updates per second on Windows and 200,000 updates per second on Linux VM
Signals propagate like radio waves across your entire game. No references needed. Any script can emit, any script can listen. Watch signals travel in real-time.
Write once, deploy everywhere. Perro supports major desktop platforms with a single codebase.
Perro is built by the community, for the community. No licensing fees, no restrictions, no strings attached. Just pure freedom to create.
Built with input from developers who want a better game engine experience. Your feedback shapes Perro's future.
Use Perro for any project whether it's commercial, personal, or educational. No revenue sharing, no hidden costs.
Access the full source code. Modify, extend, or contribute back to the project. You own your tools.
Start creating with Perro Engine today. Simple tools, powerful performance, unlimited creativity.