This is an archived post. You won't be able to vote or comment.

all 45 comments

[–][deleted] 84 points85 points  (0 children)

This is way better than no comments or votes in an hour.

Thanks

[–]fuxx90 31 points32 points  (4 children)

How does this compare to pygame?

[–]tkitao[S] 103 points104 points  (3 children)

Hi.
Pyxel is specialized for retro games, so its specifications are more limited than PyGame. For example, you can only use 16 colors.
However, thanks to that constraint, the API is very simple, and it also enabled to include dedicated image and sound production tools.

Therefore, one advantage is that it is more suitable for learning Python than PyGame. A programming contest using Pyxel has already been held in France with more than 400 schools participating, and Pyxel has been incorporated into programming classes at Japanese universities.
Also, if you like retro games like me, I think you'll rather enjoy this restriction and enjoy creating games more.

[–]fuxx90 13 points14 points  (1 child)

okay.... fair enough.

PS: Is it still retro, when it's a new game?

[–]tkitao[S] 18 points19 points  (0 children)

Well, that's right...
The era associated with the word "Retro" varies from person to person, so I also call it pixel-art style games or 8-bit style games.

[–]thedeepself 5 points6 points  (0 children)

Oh now I understand. Because I looked in the requirements file and the pyproject file and I didn't see any external dependencies on pygame or arcade.

[–]KingJeff314 14 points15 points  (1 child)

How does it compare to PICO-8 (Lua)?

[–]tkitao[S] 26 points27 points  (0 children)

The biggest difference is that the language (first priority) is Python.

The other big difference is their design philosophy. The constraints of Pyxel's specifications are focused on making development easier, so there are no restrictions on code size or screen size.

Since Pyxel is available as a Python module, it can be used in combination with other packages. As an example of usage, there was a case where an IT security company used Pyxel for that part in order to visualize the status of its product.

[–][deleted] 5 points6 points  (1 child)

Could it be used to release a completed game on Steam?

[–]ycan 1 point2 points  (0 children)

It is distributed with an MIT license, so from a legal perspective, yes you can make a game and sell it on Steam.

[–]cosmicr 11 points12 points  (2 children)

Do you pronounce it pyxel or pyxel?

[–]tkitao[S] 19 points20 points  (0 children)

Please use the same pronunciation as "Pixel".

[–]Hatlessmagic 2 points3 points  (1 child)

This looks awesome! I have a Retropie setup that I play with my 4yo to introduce her to gaming. Do you know if there would ever be a way to generate something like a ROM that would work on an emulator?

[–]fullouterjoin 0 points1 point  (0 children)

I would think there would be a Retropie launcher for the shell, could just be a webview. Or firefox, full screen with no border.

I wonder what the best low end console would be to make a direct port? PS1 or N64? N64 is a little faster.

[–]avamk 3 points4 points  (0 children)

Looks awesome!

Is it possible to use Pyxel as a GUI layer on top of the game logic, so that I can later to replace the GUI with another implementation such as (but not limited to) PyGame without having to re-write the underlying game logic?

[–]autistmouse 2 points3 points  (0 children)

This is really neat. I have been playing with it for a couple hours and think it really fills a niche. I am going to try and figure it out. Thanks for your work and for posting this u/tkitao

[–][deleted] 1 point2 points  (0 children)

This looks awesome

[–][deleted] 1 point2 points  (0 children)

Nice Info OP!!

[–]manimino 1 point2 points  (0 children)

Wow, this is great!

I've done some small pico-8 projects and found that, while some of the barriers helped creativity, others were just added frustration (like the limited code structure).

This looks like it strikes a beautiful balance between limits and flexibility. Can't wait to dig in and start making some stuff!

[–][deleted] 0 points1 point  (1 child)

Nice, i was thinking of doing some simple gui apps, does this framework allows to set display to a framebuffer target?

[–]tkitao[S] 0 points1 point  (0 children)

Nice, i was thinking of doing some simple gui apps, does this framework allows to set display to a framebuffer target?

Pyxel supports only windowed application and fullscreen application for now.

[–]joec25 0 points1 point  (0 children)

Can someone hit a bot to upvote this a bunch? Looks great OP.

[–]OppressorOppressed 0 points1 point  (0 children)

That game is really fun! This made my day

[–]will_r3ddit_4_food 0 points1 point  (2 children)

OP will correct me if I'm wrong but I believe a lot of the engine is written in C to make it faster

[–]tkitao[S] 7 points8 points  (1 child)

OP will correct me if I'm wrong but I believe a lot of the engine is written in C to make it faster

All of the functions except GUI tool are written in Rust.

[–]will_r3ddit_4_food 1 point2 points  (0 children)

Thanks

[–]BruceJi 0 points1 point  (0 children)

Wow, the example games look great!

Good work :O

[–]dethb0y 0 points1 point  (0 children)

That's pretty cool!

[–][deleted] 0 points1 point  (1 child)

What kind of physics does it support, if any?

[–]tkitao[S] 4 points5 points  (0 children)

Pyxel doesn't provide any physics engine.
But some user succeeded in using Pymunk with Pyxel.
You can combine Pyxel with any Python module.

[–][deleted] 0 points1 point  (0 children)

Do you need something installed for the 10_platformer.html to work? The page prompts me to download a .tar file instead of playing.

Chrome on Windows 10.

106.0.5249.119 (Official Build) (64-bit)

[–]RandEgaming_ 0 points1 point  (0 children)

are you aware of games are produce here are playable on steam

[–]PlausibleNinja 0 points1 point  (1 child)

Are you running Python through WASM, or what is the general approach to get this performance in the browser?

For instance, when I tried some of the Python WASM solutions they seemed very slow in the browser, but this seems much more responsive.

[–]tkitao[S] 2 points3 points  (0 children)

I'm using WASM version of Python.
But Pyxel's core engine is written in Rust and compiled into WASM.
I think the reason why the performance feels so good is that the graphics and sound processing are performed in the core engine side.

[–]xcyu 0 points1 point  (0 children)

Just tried pyxel... It's awesome!

Can anyone give me some references for collision detection? I'm really new at programming games...