Gamebro is a retro-inspired game engine GUI built with Python and Pygame β a twist on the legendary Gameboy, but made for building 2D games with style, ease, and a ton of custom potential.
Think Unity, but vibinβ on 16-bit aesthetics and simplicity. πΎπΉοΈ
- π§ Sprite system with editable custom data
- π±οΈ Clickable GUI with panels (Sprites, Inspector, Toolbar)
- π€ Rename sprites with a click & type
- πΎ Save projects as Python scripts
- π¦ Built-in project manager
- π¨ Slick UI styled in dark mode with accents
pip install -r requirements.txtpython gamebro_gui.pyThatβs it. A clean GUI will launch. You can:
- Enter a project name
- Click "Create New Project"
- Add sprites (
Ctrl + N) - Rename them (
r) - Save your project (
Ctrl + S) as a real.pyfile!
Global:
Ctrl+Sβ Save Project
Sprites:
Ctrl+Nβ Add New SpriteCtrl+Xβ Delete Selected Sprite (also removes it from all groups)Ctrl+Kβ Add Data Key to Selected SpriteCtrl+Dβ Delete Data Key from Selected SpriteCtrl+Oβ Add a Sprite from a JSON fileRβ Rename Selected Sprite (when a sprite is selected)Cβ Clear Selection
Groups:
Ctrl+Gβ Add New GroupCtrl+Xβ Delete Selected Group (when a group is selected)Ctrl+Aβ Add Sprite to Selected GroupCtrl+Zβ Remove Sprite from Selected GroupRβ Rename Selected Group (when a group is selected)Cβ Clear Selection
Navigation:
- Click on sprite name β Select sprite
- Click on group name β Select group
Inspector:
- Shows details for selected sprite or group.
Tip: Most actions require a sprite or group to be selected. Use the mouse to select items in the Sprites or Groups panel.
Here's what a saved project file might look like:
# -*- coding: utf-8 -*- from gamebro import Sprite, SpriteGroup, entitify from ursina import * import sys import os from ursina.prefabs.first_person_controller import FirstPersonController # Project: MyGame # Created by GameBro Studio app: Ursina = Ursina(title="MyGame") window.title = "MyGame" if os.path.exists(os.path.join("assets", "icon.ico")): window.icon = os.path.join("assets", "icon.ico") window.exit_button.visible = False window.borderless = True player = FirstPersonController(position=(0, 5, 0)) player.gravity = 1 platform: Entity = Entity(model='cube', color=color.green, scale=(10, 1, 10), position=(0, 0, 0), collider='box') bro: Sprite = Sprite(customdata={'x': 0, 'y': 0, 'visible': True, 'color': 'white'}, name="bro") E_bro: Entity = entitify(bro) def input(key: str) -> None: if key == "escape": sys.exit() def update() -> None: pass app.run()You can write the code yourself, using the gamebro module (see this document.)
Made with β€οΈ by Natuworkguy
MIT License. Do what you want, just donβt sell it as your own. Be cool. π