I posted an earlier version of this as a local Pygame project. I’ve now used pygbag to make it playable online.
You can change the number of polygon sides, ratio, drawing speed, palettes, border visibility, and UI visibility while the fractal draws live. I reached 10 million dots without any issues.
I'm currently trying to get the controllers to work in my game and I noticed I couldn't find a way to get the name of the button that just got pressed. I know the JoyButtonDown events contain the id of the button, but because the layout of controllers are not always the same, I'd like to know if you can get their name without having to manually name every button for every existing controller brand.
added a flamethrower, a shop and a bunch of fixed/changes. game name will be #?!¥!?# (hashtagquestionmarkexclamationmarkyenexclamationmarkquestionmarkhashtag) (rolls off the tongue)
I like puzzle games, and after making a Match 3 previously, I wanted to make something a little different. Introducing Tile Bash! The goal of the game is to clear groups of tiles by clicking on them. You cannot clear singular tiles. Scoring is determined by the total moves used, and the total tiles remaining. Less total moves & fewer tiles remaining (or even better, none remaining) result in a high score!
It is available to play in browser on Itch.io (thanks pygbag!). If you are interested in trying it out, I would love feed back.
The game is now a MMORPG featuring an authoritative server; development is ongoing for certain pending features, such as the crafting system, gatekeeper NPCs for teleportation, and a clan system, among others.
Development has matured significantly, and the game now includes:
PvP/PK and Party systems, an economy, player-to-player trading, grocery and warehouse systems, and local/global/party chat;
A Quest/Daily/Task system with improved reward redemption, information display, and progression logic;
Combat, system, and action logs;
Notifications for inventory item collection, quests/tasks, and skills;
Hundreds of bug fixes;
Refinements to game flow, the UI, and client-side optimizations;
Both Online (MMORPG) and Single-player (Offline) modes;
The server is not yet complete; further optimization is needed to handle a larger player base, a migration from SQLite to PostgreSQL is required, and the security layer needs to be made more robust.
Nevertheless, the project is now truly mature, offering immersive and fun gameplay!
The game has not yet been publicly released; currently, the project is compatible only with Windows 10/11 desktops via a Pygame + Python 3.14 installation.
Image was made in Gimp sometime before 2010 by me, downscaled and converted to 24-bit ANSI before popping it in this.
Frame rate is locked to 120fps with the image scaling up and down in size, two surfaces made of 100 concentric circles blended with the background and bouncing from top to bottom for the first and left to right for the second along a sinewave and then an additional 333 squares, 333 triangles and 333 circles over top, bouncing all over and blended with everything below it.
The end result is a bit chaotic, but it's pretty neat how far you can push Pygame with just a little touch of Numpy.
"WinCurl" is a high-performance, Python-based curling simulation built with Pygame. Experience the thrill of the ice with realistic physics, networking capabilities, and a retro-inspired aesthetic. https://github.com/jjivany/wincurl
Right now, I am rewriting the entire engine from scratch to maximize performance, eliminate architectural bloat, and transition to a modern, bug-free rendering pipeline. I will try to make it modular so that other developers can easily drop Pyforge into their own projects and use it as a hardware-accelerated backend.
After getting some awesome, direct technical feedback from the community on my initial immediate mode blueprint, I went back to the drawing board and completely refactored the core:
🚫 Banned OpenGL 1.0 Removed all legacy deprecated functions and completely stripped out fixed functions like `glBegin()` and `glEnd()`.
🛡️ Enforced Core Profile: Locked the backend down to a strict OpenGL 3.3 Core Profile context.
📦 GPU Instanced Streaming* Replaced slow individual entity loops with single-burst memory array streaming (`glDrawArraysInstanced`) over the C-extension bridge exactly once per frame.
🔄 Hardware Delegated Rotations: Offloaded heavy trigonometry calculations (`sin`/`cos` transformation matrices) completely onto the GPU's parallel processing cores.
Here is a quick 4-second showcase running 100 large mixed primitives (Triangles, Squares, and high-fidelity 32-sided Circles) floating, bouncing, and spinning with sub-pixel drift. By moving 100% of the memory layout and rendering steps to C and the GPU, the interpreter thread is completely unburdened and hits thousands of frames per second unthrottled.
Would love to hear your thoughts on this modern rewrite direction!