github.com

Rebels in the sky is a P2P multiplayer game about crews of space pirates roaming the galaxy to play basketball against each other. It's basically a basketball managerial game with some pirate-y stuff. It's a P2P game with no central server, built on top of libp2p. Players interaction are limited to playing games against each other and trading pirates.

The game runs as a terminal application, meaning that you just need to run it from your terminal.

You can try the game over ssh without installing: `ssh frittura.org -p 3788`

My server is not very powerful and there is a limit to the number of concurrent players, so if you like it I would appreciate it if you could install it (https://github.com/ricott1/rebels-in-the-sky?tab=readme-ov-f...) and run it locally :)

Here is a trailer (not of the last version, so some little things are different): https://github.com/user-attachments/assets/aaa02f04-06db-4da...

242
66
discoinverno 5 days ago

My server can't handle all the traffic, guess it's an opportunity to show that the game doesn't need a central authority to keep working.

I created another relayer and ssh node on 85.214.130.204, you can either ssh to this machine `ssh 85.214.130.204 -p 3788` (but the relaying won't work as it tries to connect to the old server), or start your local client with the flag `rebels -i 85.214.130.204` to specify the alternative relayer node ip address.

discoinverno 5 days ago

In case the trailer link doesn't work, here's another: https://rebels.frittura.org/demo_v1.0.18.mp4

Kiro 5 days ago

None of these work for me. Put it on YouTube or something.

discoinverno 5 days ago

My server got hug'd to dead, probably the ssh server won't work now either :(

Hopefully this one works: https://streamable.com/huxiwr

kibwen 5 days ago

The graphics are way better than the description "terminal game" would suggest, I recommend putting some images in your README to better demonstrate the amount of effort you put into them (don't rely on having a video, it won't render for me).

pelasaco 4 days ago

I was surprised by the great graphics too. I agree that some screenshots would be useful.. I was expecting something totally different, than great pixel art :)

huhtenberg 5 days ago

This one works! Hey-hey-hey.

iaresee 4 days ago

Github is rate limiting viewing that right now. :D

linsomniac 4 days ago

Here's a Youtube copy of it: https://youtu.be/5Lu9MSgmTBc

riffraff 5 days ago

this works for me while the readme one didn't.

Also, the "thug boy" song threw me back to Fist of the North Start so hard I got wiplash, excellent choice.

kouru225 5 days ago

This link just takes forever to load for me

davidjfelix 5 days ago

This link also did not work for me.

discoinverno 5 days ago

Weird, can you see it on the github page tho?

tofof 5 days ago

I see what seems like it's supposed to be the trailer (labeled demo_v1.0.18.mp4), but MIME busted:

https://i.imgur.com/U7N2WUs.png

The link in OP in this thread works.

huhtenberg 5 days ago

It's 404, not busted.

postepowanieadm 5 days ago

403 :(

kataklasm 5 days ago

Those planet/satellite animations are absolutely gorgeous!

w4ffl35 5 days ago

Ah so it is... I just asked if he had used that asset, I discovered it a few days ago myself and thought it was an interesting asset.

hinkley 5 days ago

I have a friend who played FTL and I kept thinking that was just a fancy terminal game.

discoinverno 5 days ago

Love FTL, would be sick to port it to terminal graphics

x0n 5 days ago

So much fun! Works fine on windows terminal too! mouse, keyb, colours -- all good.

discoinverno 5 days ago

Ahh nice to know! Never managed to test it

pacifika 5 days ago

Looks very original although I’m a bit daunted by getting to grips with it. Plan to give it a go later. Feedback: The mashup of themes make it difficult to assess what the gameplay is like, even with the video. For example when are you taking action versus navigating away from screens

w4ffl35 5 days ago

Is your game made with godot? It looks like you used this pixel planet generator asset from itch

https://deep-fold.itch.io/pixel-planet-generator

discoinverno 4 days ago

I used the pixel planet generator to generate low resolution gifs, which I then combine together to get the galaxy gifs

TheRealPomax 5 days ago

Looks like the video in the readme doesn't work in all browsers (in my case, firefox).

dortmunddance 5 days ago

Interesting idea to have a completely p2p game! What cross-user interaction do you have in your game?

discoinverno 5 days ago

Thanks:)

Basically users can interact by playing basketball games against each other or by trading players. This sort of interactions are handled with something similar to a TCP handshake, since we must ensure that we end up with a consistent state at the end (e.g. players are traded consistently).

Because of this, it is not easy to have 'real-time' interactions: for example, when challenging each other, players only agree on the initial conditions of the game, which then is simulated independently (and deterministically) on both clients.

dortmunddance 5 days ago

Cool!

Makes me think of blockchain: it is also a tool to ensure "consistent" state changes. Have you thought of moving your game on some blockchain?

For example, XAI is a blockchain specifically designed for games, you should check it out

x0n 5 days ago

blockchain is too slow and completely inappropriate.

pizzafeelsright 5 days ago

this thread makes me want to build a platform

I tend to lean toward the raft protocol vs blockchain due to storage

withinboredom 4 days ago

raft is too non-deterministic. Something like paxos is probably more appropriate; the write-once property is exactly what you want here, and it is deterministic.

drdrey 5 days ago

in case nobody told you, you’re not allowed to say blockchain on HN

littlestymaar 4 days ago

Talking about blockchains is fine, pretending they are somewhat apt at solving a problem that isn't money laundering is what will get you frowned upon.

20after4 5 days ago

This is really cool. Like a mix between TradeWars 2002 and sportsball management.

Well played sir.

bcooney_info 1 day ago

first game i've played for an hour straight in years. well done!

willjp 5 days ago

This is incredible!!! I love it so much, thanks for making this.

bartzokas 5 days ago

One question out of curiosity: Which library did u use for the graphics?

discoinverno 5 days ago

Proudly built with Ratatui: https://github.com/ratatui/ratatui :)

The graphics themselves are basically handmade pixel-by-pixel, you can take a look in the assets folders to get an idea.

For example, pirate images are generated by combining the different parts and then applying a color mapping for the different skin tones.

Planet gifs are adapted starting from https://deep-fold.itch.io/pixel-planet-generator

nickdothutton 4 days ago

Planet animations remind me of Captain Blood. Congratulations. The terminal, from constraint comes creativity.

balbo321 5 days ago

Just curious, how are the results of the match decided? How much player agency is there?

discoinverno 5 days ago

At the beginning of the match, a match ID is created. Randomness is then seeded from this ID and every random event is determined consistently. If you want, a game could be completely simulated just based on the initial ID.

bensmoif 5 days ago

Please tell a story about the music ya'll chose for this, it's incredible.

discoinverno 5 days ago

You mean the song in the trailer? It's the japanese OST for Kenshiro: https://en.wikipedia.org/wiki/Kenshiro

The story is quite simple, I just loved the anime when I was a kid :)

The italian version is also incredible: https://www.youtube.com/watch?v=YPIcdhjPG5I

thianvan 6 days ago

I tried it! Really cool concept and great pixel art!

ldellant 3 days ago

Ma sei un pollo

neomantra 5 days ago

This is very cool. Thank you for sharing your creativity with this game and its source! I love that it is accessed via ssh and is multiplayer.

A screenshot or animated gif in the README might be helpful. Like others I can’t see the movie. Check out charm’s vhs tool to make these.

yoavm 5 days ago

Please not an animated gif. These easily end up weighing more than 10MB, while a similar mp4 can be 500KB. You just need to use an encoding all browsers support.

_flux 5 days ago

I doubt in this case they'd weigh 10 MB, or have you experienced "terminal movies" growing that large?

In fact, I wonder if in this case the gifs would be smaller, while lossless.

smaudet 5 days ago

I suppose it depends on how full color the terminal output is, and how well the GIF is encoded.

I think you're probably correct for this case you can get something smaller.

Nevertheless, the movie has sound, which a GIF (AFAIK) can only do if part of a e.g. an html page...and now you have non-standard browsers to deal with vs just using an mp4.

discoinverno 5 days ago

Thanks a lot, really appreciate it. Have you tried this link: https://streamable.com/huxiwr ?

I know VHS, only problem is that that demo is a bit involved to properly script it..

neomantra 5 days ago

That link works, thanks :) I had tried a couple links earlier and they hadn't. Does that song say "dogboy"?

But seeing your video makes me realize the colors are messed up in my terminal and don't look near as nice as your video. Maybe a theme or something I have is messing it up... will muck more.

I just built rebels and tried "vhs record" and played the tape and the results weren't good. Even just a couple curated screenshots could communicate a lot there on the README, especially for a game.

neomantra 3 days ago

I explored this more. Does Rebels require TrueColor? I think that's what the problem is, Apple Terminal doesn't support it (https://github.com/termstandard/colors?tab=readme-ov-file#no...). It works fine in Kitty.

muon-bath 5 days ago

thanks for this beautiful game! cheers

emmelaich 5 days ago

Reminder that ssh'ing to some random server is not without some privacy concern.

discoinverno 4 days ago

True, I can see your public key, username, and IP I guess. I only log the username and hash of the public key/password that I use for storing save files (the logs are for debugging, but I swear I don't sell them to google). You can see what I do in the source, of course you have to trust me on that :)

emmelaich 4 days ago

Yes, sorry should've said I never doubted you!

My comment more addressed to the clients, who can mitigate the issue with appropriate ssh_config.

withinboredom 4 days ago

More specifically, make sure that you aren't forwarding your ssh keys; otherwise the game can impersonate you on any server the keys work on.

emmelaich 4 days ago

Ah, that's worse than a mere privacy issue! Good point.

I was thinking merely about anonymity.

Both can be largely eliminated by having per host or per organization Identities and using IdentitiesOnly.

riffraff 5 days ago

As an Italian, some of the player names are hilarious.

The game seems really cool and honestly really impressive, but it's hard to understand what you're supposed to do at any moment.

You have a typo here https://github.com/ricott1/rebels-in-the-sky/blob/17f3e2a21e...

Also, the Italian-food sounding names are hilarious, well played :)

discoinverno 5 days ago

Thanks! I agree, I really need to write a wiki or something. The problem is that this game started as a basketball managerial game and then got completely derailed as I kept implementing whatever I thought was cool at the moment.

I think there are mainly 3 themes to play for:

- Basketball: assemble the best possible team. Basically try to acquire as much money as possible to hire the best free agents;

- Money: just try to get as rich as possible, using the market and in the future your asteroids;

- Space adventure: get the best possible spaceship (more options will be available in future releases) and have fun in the spaceshooter game you can access from your team pane (button 'Space adventure').

I tried to combine and summarize these 3 themes by having a reputation score assigned to your team, which can increase based on all 3 conditions. In the Swarm pane there is a Top Ranking window where the best crews are listed.

UomoNeroNero 5 days ago

Figata spaziale!!!! Sono qui a mascella spalancata

nnx 5 days ago

- Space pirates?? - You know, pirates! but in space!!