[HN Gopher] Show HN: Rebels in the sky - Terminal game about spa...
       ___________________________________________________________________
        
       Show HN: Rebels in the sky - Terminal game about space pirates
        
       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...
        
       Author : discoinverno
       Score  : 233 points
       Date   : 2024-11-22 08:21 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | thianvan wrote:
       | I tried it! Really cool concept and great pixel art!
        
       | balbo321 wrote:
       | Just curious, how are the results of the match decided? How much
       | player agency is there?
        
         | discoinverno wrote:
         | 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.
        
       | dortmunddance wrote:
       | Interesting idea to have a completely p2p game! What cross-user
       | interaction do you have in your game?
        
         | discoinverno wrote:
         | 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 wrote:
           | 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
        
             | pizzafeelsright wrote:
             | this thread makes me want to build a platform
             | 
             | I tend to lean toward the raft protocol vs blockchain due
             | to storage
        
               | withinboredom wrote:
               | 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.
        
             | x0n wrote:
             | blockchain is too slow and completely inappropriate.
        
             | drdrey wrote:
             | in case nobody told you, you're not allowed to say
             | blockchain on HN
        
               | littlestymaar wrote:
               | 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.
        
       | muon-bath wrote:
       | thanks for this beautiful game! cheers
        
       | discoinverno wrote:
       | In case the trailer link doesn't work, here's another:
       | https://rebels.frittura.org/demo_v1.0.18.mp4
        
         | davidjfelix wrote:
         | This link also did not work for me.
        
           | discoinverno wrote:
           | Weird, can you see it on the github page tho?
        
             | tofof wrote:
             | 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 wrote:
               | It's 404, not busted.
        
         | riffraff wrote:
         | 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.
        
         | Kiro wrote:
         | None of these work for me. Put it on YouTube or something.
        
           | discoinverno wrote:
           | My server got hug'd to dead, probably the ssh server won't
           | work now either :(
           | 
           | Hopefully this one works: https://streamable.com/huxiwr
        
             | huhtenberg wrote:
             | This one works! Hey-hey-hey.
        
             | kibwen wrote:
             | 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 wrote:
               | 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 :)
        
         | kouru225 wrote:
         | This link just takes forever to load for me
        
         | huhtenberg wrote:
         | Video URL on the GH page is 404.
         | 
         | https://github.com/user-attachments/assets/aaa02f04-06db-4da...
        
           | omoikane wrote:
           | There is a demo video here:
           | 
           | https://github.com/ricott1/rebels-in-the-sky/tree/main/demo
        
             | iaresee wrote:
             | Github is rate limiting viewing that right now. :D
        
         | postepowanieadm wrote:
         | 403 :(
        
         | linsomniac wrote:
         | Here's a Youtube copy of it: https://youtu.be/5Lu9MSgmTBc
        
       | bartzokas wrote:
       | One question out of curiosity: Which library did u use for the
       | graphics?
        
         | discoinverno wrote:
         | 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
        
       | riffraff wrote:
       | 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 wrote:
         | 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 wrote:
           | Figata spaziale!!!! Sono qui a mascella spalancata
        
       | discoinverno wrote:
       | 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.
        
       | kataklasm wrote:
       | Those planet/satellite animations are absolutely gorgeous!
        
         | legohead wrote:
         | from the readme: https://deep-fold.itch.io/pixel-planet-
         | generator
        
           | w4ffl35 wrote:
           | 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.
        
       | x0n wrote:
       | So much fun! Works fine on windows terminal too! mouse, keyb,
       | colours -- all good.
        
         | discoinverno wrote:
         | Ahh nice to know! Never managed to test it
        
       | nnx wrote:
       | - Space pirates?? - You know, pirates! but in space!!
        
       | bensmoif wrote:
       | Please tell a story about the music ya'll chose for this, it's
       | incredible.
        
         | discoinverno wrote:
         | 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
        
       | 20after4 wrote:
       | This is really cool. Like a mix between TradeWars 2002 and
       | sportsball management.
       | 
       | Well played sir.
        
       | hinkley wrote:
       | I have a friend who played FTL and I kept thinking that was just
       | a fancy terminal game.
        
         | discoinverno wrote:
         | Love FTL, would be sick to port it to terminal graphics
        
       | neomantra wrote:
       | 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.
        
         | discoinverno wrote:
         | 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 wrote:
           | 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.
        
         | yoavm wrote:
         | 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 wrote:
           | 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 wrote:
             | 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.
        
       | emmelaich wrote:
       | Reminder that ssh'ing to some random server is not without some
       | privacy concern.
        
         | discoinverno wrote:
         | 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 wrote:
           | 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 wrote:
             | 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.
        
       | TheRealPomax wrote:
       | Looks like the video in the readme doesn't work in all browsers
       | (in my case, firefox).
        
       | willjp wrote:
       | This is incredible!!! I love it so much, thanks for making this.
        
       | pacifika wrote:
       | 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 wrote:
       | 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 wrote:
         | I used the pixel planet generator to generate low resolution
         | gifs, which I then combine together to get the galaxy gifs
        
       | nickdothutton wrote:
       | Planet animations remind me of Captain Blood. Congratulations.
       | The terminal, from constraint comes creativity.
        
       ___________________________________________________________________
       (page generated 2024-11-23 23:01 UTC)