Spyke

Posts

asklemmy·Ask Lemmybyaxby

Communities for "someone should make this"? And does anyone have any general software project requests?

Is there a Lemmy community for "someone should make this"? Similar to reddit's r/SomebodyMakeThis.

And alternatively, this thread could serve as one: what are some software projects that I/others could take on? Ideally small enough in scope that I could make something partially usable in a weekend or two.

Previously I've just worked on whatever I found fun to program, but it would be nice to hear things that people actually want that don't exist yet, and would be interested in trying it even when it is only partially finished. I'm not sure about others but I find my day job is often full of meetings or bureaucracy, and I don't often get the satisfaction of seeing people happy with something that I built. (I wonder if this feeling is more common in other types of work)

View original on lemmy.ca
82
alexgames·AlexGamesbyaxby

AlexGames: simple Lua games in a browser with multiplayer support, self hosting friendly.

cross-posted from: https://lemmy.ca/post/18821047

AlexGames: simple Lua games in a browser with multiplayer support, self hosting friendly.

TL;DR: try my Lua web games here, see github for self-hosting instructions: https://alexbarry.github.io/AlexGames

Hi all, here's a hobby project I've been working on: I wrote a bunch of simple Lua games, compiled the Lua interpreter to web assembly, and defined a simple API to draw on a canvas and handle input. It all builds to static HTML/JS/WASM, except a few hundred lines of python for a websocket server for multiplayer. I recently added some dockerfiles so I think it should be easy to self host.

Here is the web version on github pages: https://alexbarry.github.io/AlexGames/ , and the source on github (self-hosting instructions in the README).

I'll list some of the games:

  • local/network multiplayer: chess, go, checkers, backgammon, gomoku
  • single player or network multiplayer: minesweeper
  • single player only: solitaire, "word mastermind"[1], "endless runner", "fluid mix", "spider swing", "thrust"

[1]: it may not technically be multiplayer, but my partner and I enjoy picking our own hidden word and sharing the puzzle state as a URL or just passing a phone to each other.

Part of my motivation is to avoid ads on mobile games, and to be able to play different multiplayer web games with friends without having to get them to make an account and all that (just share the generated URL, it contains a multiplayer session ID). I also like the idea of having my own private web games server, and not having to be reliant on some service that might eventually get enshittified.

I figure that if I can throw together a similar game in a few hundred lines of Lua, then no one should have to deal with full screen ads or pay ~$10 to play them. Especially since most mobile games that I like are simple and I only play them for a few minutes at a time, maybe only a few times per week.

Self hosting isn't necessary to try it out, but without SSL it should just be a simple one-line command to host the HTTP and websocket server with docker compose. For SSL support it is a few more steps, I added steps to the README: one command to build the static HTML (so you can copy it to your web hosting server, which should already take care of SSL), and another to host the websocket server, which can have your SSL certs passed as parameters. But you don't strictly need the websocket server, it should just fail to connect after a few seconds and then you can play the games without network multiplayer. You can even use my websocket server and your own static HTML, just add &ws_server=wss://alexbarry.net:55433 as a URL parameter to your own URL. I haven't self hosted much on my public server, so I'd love to hear feedback on how to better handle SSL certs. Ideally you could just choose to not use SSL for your websocket server, but firefox at least prevents you from connecting to a websocket server without SSL if you're using SSL to visit the page itself on the same server. (On a local network without SSL it's fine, though)

Some features that I'm proud of:

  • the network multiplayer works pretty well, I'm pleased with websockets (previously I was hoping to get WebRTC working but I didn't have much luck). On the wxWidgets and Android prototypes I had a normal socket server working too, but I've focused on the web version since it's good enough
  • an English dictionary for word puzzle games. (aside: loading ~220k English words as javascript strings and a javascript array took like 12 MB of browser memory or more, but I got it down to ~6 MB by moving the dictionary to C managed memory)
  • state sharing via URL: for most games I serialize the state and then you can export it as a base 64 string in a URL. This is useful to keep playing on a different device, send a puzzle that you liked to a friend, or for "word mastermind", to choose your own word and get your friend to guess it.
  • built in autosave, undo/redo, and browsing previous saved states. I used the same code to render state previews that I wrote to render the games for normal play, so all a game has to do is implement state serialization, implement a few APIs to get that state, and call "save_state" whenever the player makes a useful move. Then games can simply call a few lines to add an "undo" and "redo" button, and those can call a one line function to fetch the previous or next state. (I'd like to add a full history tree at some point, but for now if you undo many times and make a new move, you lose the moves that you un-did ("undo-ed"?))
  • playing arbitrary games as zips of Lua files. While the self hosting community might not need this much (since they can just add their own games to the source and rebuild), I figured many people might be interested in writing a game without having to build and host my project. So I added support for unzipping bundles of Lua source files and storing them in the built in emscripten filesystem in the browser. I added an example game and an API reference, see the "Options" menu and the "Upload Game Bundle" section.

Let me know what you think! I'd love to hear feedback, or get new game contributions or bug fixes / features.

View original on lemmy.ca
1
selfhosted·Selfhostedbyaxby

AlexGames: simple Lua games in a browser with multiplayer support, self hosting friendly.

TL;DR: try my Lua web games here, see github for self-hosting instructions: https://alexbarry.github.io/AlexGames

Hi all, here's a hobby project I've been working on: I wrote a bunch of simple Lua games, compiled the Lua interpreter to web assembly, and defined a simple API to draw on a canvas and handle input. It all builds to static HTML/JS/WASM, except a few hundred lines of python for a websocket server for multiplayer. I recently added some dockerfiles so I think it should be easy to self host.

Here is the web version on github pages: https://alexbarry.github.io/AlexGames/ , and the source on github (self-hosting instructions in the README).

I'll list some of the games:

  • local/network multiplayer: chess, go, checkers, backgammon, gomoku
  • single player or network multiplayer: minesweeper
  • single player only: solitaire, "word mastermind"[1], "endless runner", "fluid mix", "spider swing", "thrust"

[1]: it may not technically be multiplayer, but my partner and I enjoy picking our own hidden word and sharing the puzzle state as a URL or just passing a phone to each other.

Part of my motivation is to avoid ads on mobile games, and to be able to play different multiplayer web games with friends without having to get them to make an account and all that (just share the generated URL, it contains a multiplayer session ID). I also like the idea of having my own private web games server, and not having to be reliant on some service that might eventually get enshittified.

I figure that if I can throw together a similar game in a few hundred lines of Lua, then no one should have to deal with full screen ads or pay ~$10 to play them. Especially since most mobile games that I like are simple and I only play them for a few minutes at a time, maybe only a few times per week.

Self hosting isn't necessary to try it out, but without SSL it should just be a simple one-line command to host the HTTP and websocket server with docker compose. For SSL support it is a few more steps, I added steps to the README: one command to build the static HTML (so you can copy it to your web hosting server, which should already take care of SSL), and another to host the websocket server, which can have your SSL certs passed as parameters. But you don't strictly need the websocket server, it should just fail to connect after a few seconds and then you can play the games without network multiplayer. You can even use my websocket server and your own static HTML, just add &ws_server=wss://alexbarry.net:55433 as a URL parameter to your own URL. I haven't self hosted much on my public server, so I'd love to hear feedback on how to better handle SSL certs. Ideally you could just choose to not use SSL for your websocket server, but firefox at least prevents you from connecting to a websocket server without SSL if you're using SSL to visit the page itself on the same server. (On a local network without SSL it's fine, though)

Some features that I'm proud of:

  • the network multiplayer works pretty well, I'm pleased with websockets (previously I was hoping to get WebRTC working but I didn't have much luck). On the wxWidgets and Android prototypes I had a normal socket server working too, but I've focused on the web version since it's good enough
  • an English dictionary for word puzzle games. (aside: loading ~220k English words as javascript strings and a javascript array took like 12 MB of browser memory or more, but I got it down to ~6 MB by moving the dictionary to C managed memory)
  • state sharing via URL: for most games I serialize the state and then you can export it as a base 64 string in a URL. This is useful to keep playing on a different device, send a puzzle that you liked to a friend, or for "word mastermind", to choose your own word and get your friend to guess it.
  • built in autosave, undo/redo, and browsing previous saved states. I used the same code to render state previews that I wrote to render the games for normal play, so all a game has to do is implement state serialization, implement a few APIs to get that state, and call "save_state" whenever the player makes a useful move. Then games can simply call a few lines to add an "undo" and "redo" button, and those can call a one line function to fetch the previous or next state. (I'd like to add a full history tree at some point, but for now if you undo many times and make a new move, you lose the moves that you un-did ("undo-ed"?))
  • playing arbitrary games as zips of Lua files. While the self hosting community might not need this much (since they can just add their own games to the source and rebuild), I figured many people might be interested in writing a game without having to build and host my project. So I added support for unzipping bundles of Lua source files and storing them in the built in emscripten filesystem in the browser. I added an example game and an API reference, see the "Options" menu and the "Upload Game Bundle" section.

Let me know what you think! I'd love to hear feedback, or get new game contributions or bug fixes / features.

View original on lemmy.ca
63
retrogaming·RetroGamingbyaxby

Anyone else remember Tyrian? Any other recommendations for classic games with a decent mobile port?

Wikipedia page: https://en.wikipedia.org/wiki/Tyrian_%28video_game%29

TL;DR: fun back in the late 90's, there's a decent mobile port available on Android. I'd love to hear more recommendations for classic games available on mobile.

I played the shareware version of this when I was young a lot. I loved the starting weapon (pulse cannon?), and then loved the laser and a few others... but hated a ton of them (multi cannon? vulcan canon? Those bomb things with trailing clouds? They all seemed so weak and hard to use effectively, even at the highest levels. It almost felt like they only existed to be avoided in arcade mode, where you changed weapons by touching things that appeared after killing enemies or destroying things).

You could also upgrade your shields, generator, ship, side weapons... I remember different side weapons had wildly different strengths. Some were short burst and a ton of damage (plasma storm! My favourite), others would fire continuously and do a little bit of damage.

I liked the arcade mode too, and I vaguely remember trying the two player mode with friends who had a joystick (one on the keyboard, the other on a joystick), or awkwardly trying to share the keyboard (probably one with WASD, the other with arrow keys, but I can't remember). We might have tried the mouse, but I feel like the keyboard was more effective.

There was even some tanks/aircraft mini game, like Worms Armageddon? I think you had to unlock it, possibly with cheat codes. And as I was writing this I remembered some other special ship (or game type, I forget) where you had to perform gestures to do special attacks? Like tapping move in a direction and pressing shoot would also shoot a bolt of lightning, in addition to your normal weapon? And there were other key combinations to do more powerful attacks.

A few years ago I played through a lot of it (even the non shareware episodes! Childhood goal unlocked) on my Android phone: https://play.google.com/store/apps/details?id=com.googlecode.opentyrian ... I'd share an F-droid link but I'm surprised not to find one. I thought it was all open source now.

I found a bit of other discussion on it in a thread about dos games: https://lemmy.world/comment/248050 (side note: what is the best way to share a comment in a way that works well no matter what your home server is?)

I didn't grow up playing it, but I had heard good things about the "Ur-Quan Masters", a remake of Star Control II (wikipedia link). I still have the app downloaded to my Android phone, but it seems like it was taken down, the link doesn't work unless you're logged in to a google account that already has it downloaded: https://play.google.com/store/apps/details?id=com.sourceforge.sc2 . I found a github link and some other sites that reupload APKs, but I can't vouch for any of them.

Anyway, does anyone else have any recommendations for fun classic games with a decent mobile port? I love to stock up on games like this before a long flight. I'm also interested in iPhone recommendations, I haven't found as many in the Apple app store.

View original on lemmy.ca
74

You reached the end