Skip to content

Natuworkguy/GameBro

Repository files navigation

Gamebro Logo Created by Natuworkguy

GitHub Repo stars GitHub forks GitHub watchers GitHub issues GitHub closed issues GitHub pull requests GitHub closed pull requests GitHub contributors GitHub last commit GitHub commit activity GitHub repo size GitHub license

Gamebro Studio

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. 💾🕹️


✨ Features

  • 🔧 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

🚀 Getting Started

✅ Requirements

pip install -r requirements.txt

▶️ Run it

python gamebro_gui.py

That’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 .py file!

Gamebro Studio Keybinds

Global:

  • Ctrl+S — Save Project

Sprites:

  • Ctrl+N — Add New Sprite
  • Ctrl+X — Delete Selected Sprite (also removes it from all groups)
  • Ctrl+K — Add Data Key to Selected Sprite
  • Ctrl+D — Delete Data Key from Selected Sprite
  • Ctrl+O — Add a Sprite from a JSON file
  • R — Rename Selected Sprite (when a sprite is selected)
  • C — Clear Selection

Groups:

  • Ctrl+G — Add New Group
  • Ctrl+X — Delete Selected Group (when a group is selected)
  • Ctrl+A — Add Sprite to Selected Group
  • Ctrl+Z — Remove Sprite from Selected Group
  • R — 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.


🧠 Example Output

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()

Doing it manually

You can write the code yourself, using the gamebro module (see this document.)


🙌 Credits

Made with ❤️ by Natuworkguy


MIT License. Do what you want, just don’t sell it as your own. Be cool. 😎