[HN Gopher] Show HN: Boardzilla, a framework for making web-base...
___________________________________________________________________
Show HN: Boardzilla, a framework for making web-based board games
Show HN: Boardzilla, a framework for making web-based board games
Tldr: We've made a framework for web-based board games. You can try
out some games over at https://boardzilla.io, or you can take a
look at https://docs.boardzilla.io to learn more about how to
develop your own game. Source is available at
https://github.com/boardzilla Hey y'all. My brother and I have
made a framework for board games. During the pandemic we started to
look at BGA but got discouraged by how old-fashioned the tools were
and how cumbersome the development process was. We set out to make
our own framework where you could use the same code for both the
client and server. Our hope is anyone familiar with Typescript and
CSS could code up a game without worrying about state management,
persistence or networking. It's still very much a wip, and we're
rapidly adding features and games. But we've got our first draft of
developer docs done, and we've put up a few games we've developed
to showcase and test out the platform. Source for the games and
framework is available on Github, and we're excited to code more
games and hopefully encourage other people to try it out. Happy for
any feedback.
Author : joshbuddy
Score : 532 points
Date : 2024-01-29 19:12 UTC (1 days ago)
(HTM) web link (www.boardzilla.io)
(TXT) w3m dump (www.boardzilla.io)
| josephcsible wrote:
| https://github.com/boardzilla/boardzilla-core/blob/main/LICE...
|
| Commons Clause :(
|
| If you're worried about some corporation leaching off of you, why
| not go AGPLv3 instead?
| andrewghull wrote:
| Co-creator here.
|
| I thought AGPL was ok as well, but Commons Clause specifically
| tried to address perceived deficiencies in the AGPL although I
| admit that it didn't really seem to catch on. I'm not super
| well versed in the technical details. Why would you recommend
| AGPL?
| josephcsible wrote:
| https://fedoraproject.org/wiki/Licensing/CommonsClause has
| several links explaining what's wrong with the Commons
| Clause. The reason the AGPLv3 is my preferred replacement is
| that the FAANGs are irrationally afraid of it and refuse to
| let it be used anywhere in the company (e.g., https://opensou
| rce.google/documentation/reference/using/agpl...), but it's
| still 100% Free Software and Open Source and so allowed to be
| packaged in Linux distributions that disallow proprietary
| software.
| andrewghull wrote:
| Appreciate that! We'll take another look at this.
| pessimizer wrote:
| Remember (I'm sure you do) that you can relicense the
| code for the use of anyone who wants to pay you for it.
| AGPLv3 protects you, but doesn't hold you back.
| Tyr42 wrote:
| I'd also suggesting reading some of /dev/lawyer's blog
| posts, though I'm cooking and can't pull up anything in
| particular ATM.
| whatyesaid wrote:
| Damn, poor little Google seems really scared. I'm not sure
| if that info is true. You have to provide the whole source
| of the entire product and not just a segment of code (eg
| library) you forked which they do often?
| jamager wrote:
| Looks very cool, congrats on the initiative!
|
| I think it can be great to develop prototypes, but to build a BGA
| alternative you will need permission from the publishers to
| implement / distribute their games, and given how big is BGA and
| that it belongs to Asmodee, that is going to be tough...
|
| Hope I am wrong, good luck!
| joshbuddy wrote:
| Hey jamager, thanks for the kind comments.
|
| Totally agree, Asmodee has basically prevented a real
| competitor from entering the market. We have an idea in mind
| that doesn't involve going up against BGA, but instead looks at
| more smaller games from indie publishers. Not sure how viable
| that is, but not sure what else someone is supposed to do.
| vindex10 wrote:
| IANAL, it seems, game mechanics can't be copyrighted, unless
| you use the same images for cards / board, or literally copy
| the rule book.
|
| > In short: you can trademark the name, logos. Have copyright
| on art (even the board itself as art). You can't copyright the
| mechanics, processes or rules. That explains the
| Monopoly/Scrabble clones.
|
| https://www.reddit.com/r/gamedev/comments/10f2nov/comment/j4...
|
| which refers to this youtube video:
|
| https://www.youtube.com/watch?v=iZQJQYqhAgY
| jamager wrote:
| Mechanics can't be copyrighted, but the board gaming
| community can smell rip offs from afar and don't particularly
| appreciates them.
|
| Besides, it's going to be madness to advertise that you have
| the game X on your platform but can't use the name or any
| artwork.
|
| If I were the OP, i'd try to gear this towards publishers and
| make it as easy as possible to create functional prototypes.
| They need to iterate countless times on prototypes, one
| little change at a time, and this could be a huge time saver
| for them, facilitate playtasting, etc...
| joeld42 wrote:
| Hey this looks great. I'm working on some AI bots for board games
| and this might be really useful as a frontend for local testing
| of the bot players. I'll check it out.
| andrewghull wrote:
| We've been planning to add a way to do pluggable AI functions
| (both for solitaire play and for testing). If you want to try,
| take a look at the TestRunner class for an easy way to automate
| playing the rules for multiple players.
| joemi wrote:
| I'm looking forward to trying this out!
|
| You might want some sort of mention in the website copy about it
| being self-hostable (unless I'm misinterpreting the docs). The
| website copy talks about your hosting and the related benefits
| (as it rightly should), but I didn't see any mention of self-
| hosting so I almost didn't click through to the docs to see that
| local development is possible.
| joshbuddy wrote:
| Hey Joemi. I wanted to make a self-hosted single game runner,
| but I haven't gotten to it yet. The interface used by the
| game/server is detailed here
| https://github.com/boardzilla/boardzilla-devtools/blob/main/...
| so it should be pretty easy to make this runner. I hope to get
| to it soon.
| joemi wrote:
| Ah, I guess I need to look at the docs more closely.
| catapart wrote:
| Looks good! There's a lot of moving parts for such a wide array
| of functionality, so this looks like a lot of really good work!
| If nothing else, it's nice to have a game engine that focuses on
| tabletop games, that doesn't necessarily focus on how to render
| said games.
|
| All of that said, as someone who has developed a card and dice
| game, using plain html and javascript to create a programmatic
| version that could be played online, I am _still_ having a hard
| time figuring out how to recreate that kind of thing, using your
| system.
|
| Based on the docs, I can see it supports cards. And based on my
| experience developing the same basic gameplay, I can see that
| it's general-purpose enough to be suited for a wide variety of
| games (and my game is simplistic, so it should be possible).
| Feels like it should be a pretty straightforward build, with a
| robust enough library, and yours seems to be fairly robust, so my
| thinking here is that a step-by-step tutorial would go a long
| way. I know enough to see why you've chosen the abstractions you
| have (Actions, Flows, selections, conditions, prompts, etc), but
| without seeing them constructed, it's hard to know where to make
| the specific changes I would want to make.
|
| Anyway, just one opinion! It may feel more straightforward to
| other people. But I don't think I would personally make much
| headway with it, without a tutorial.
| andrewghull wrote:
| Thanks for the comment, and yes we'd love to add more docs.
| (it's time consuming!) I understand that even a simple-sounding
| game can feel daunting to translate into a formalized API. I
| did record a video of me building part of a game FWIW.
|
| https://docs.boardzilla.io/game/creating-a-game
| AlecSchueler wrote:
| It looks like it's based on two main classes, which make sense
| in context of the physicality of board games. You have things
| you move around (`Piece`s), in your hand, from player
| (`Player`) to player and onto different spaces on the table
| itself (`Space`).
|
| So for game you'd need your dice and your cards to be defined
| subclassing `Piece`, and give them to your players (which
| subclass `Player`) and maybe also to a Teller (also `Player`
| who manages the deck, before thinking about which instances of
| `Space` you'll need to set up on your board for your rules.
|
| Your rules all in an instance of the `Game` class and it itself
| has this concept of actions, at their core instances of the
| `Action` class. Those take arguments that allow you to write
| the prompts for the user, define when the action is legal in
| play, and what effect it should have.
|
| Beyond that the API then just kicks in and seems to have a lot
| of handy functions for finding pieces, making comparisons, all
| the stuff you expect. Beyond that just depends on your game
| logic.
|
| There's also some handy functions to filter for different
| Spaces and Pieces so that you can build up the UI logic quite
| quickly, judging by the examples.
| lencastre wrote:
| A couple questions: did you get permission from Friese for
| Funkenschlag? Why Typescript? Any plans to control for players
| who rage quit, anti-play (in all forms), cheat (two connections
| from same IP)?
|
| I tried but couldn't test right away, is this more like BGA or
| TTS?
| andrewghull wrote:
| Yes it's like BGA, not TTS.
|
| No, we haven't done much to secure the online playing
| experience for strangers other than simply enforcing the rules
| of the game. We've been so far more focused on the API side of
| building game than the service side of having customers, but
| these are all on our radar as table stakes to make this an nice
| experience for random players.
| Illniyar wrote:
| Wow, this seems unreasonably well made! Kudos. I'll definitely
| try it out.
| iamevn wrote:
| Really cool looking! Excited to mess around with this.
|
| Happy to see the everyPlayer[1] flow command to allow for
| simultaneous actions. This is something that's missing from the
| other boardgame frameworks I've tried.
|
| [1]: https://docs.boardzilla.io/game/flow#everyplayer
| jvehent wrote:
| Don't called your project *Zilla. The copyright owners of
| Godzilla are known to go after everyone who tries to use the
| "Zilla" suffix. Mozilla learned its lesson long ago and had to
| negotiate a special agreement.
| joshbuddy wrote:
| Um, wow, I had no idea. I've got some other pretty good domain
| names at the ready, so, maybe I need to pull the trigger on
| that.
| doublerabbit wrote:
| Hi Josh,
|
| I'm receiving an error upon accessing the page.
|
| Object.hasOwn is not a function. (In 'Object.hasOwn(t,n)',
| 'Object.hasOwn' is undefined)
| jitl wrote:
| Your browser is too old to work with the library.
| Object.hasOwn is available for 93% of users according to
| https://caniuse.com/mdn-javascript_builtins_object_hasown
| joshbuddy wrote:
| I'm going to add a polyfill later for this. Thanks for
| the bug reports
| joshbuddy wrote:
| Polyfill added btw, happy to take any more bug reports
| either here or in discord and thanks!
| soneca wrote:
| Using this thread as bug report.
|
| There is a typo on the "Credits" card on game pages:
| _"arist"_ - > _"artist"_
| joshbuddy wrote:
| Thanks Soneca. Fixed and deployed.
| gkanai wrote:
| As an 10 year Mozilla veteran, I agree you should switch
| domains/project names. Mozilla was able to negotiate a deal
| for a number of reasons- Mitchell herself is a lawyer, the
| project is a NPO, and probably other reasons too, but it's
| not worth the effort to defend a slightly infringing name
| against the copyright holder in this case.
| cyberninja15 wrote:
| Woah, this is wild. Never knew how aggressive the copyrights
| were for *Zilla.
| gkanai wrote:
| When you consider the most recent Godzilla film, Minus One,
| is the 37th in that franchise, and was not only nominated for
| an Oscar, and may be it's most lucrative, you can see why
| Toho would aggressively police that copyright.
|
| Minus One is legit a great film.
| thfuran wrote:
| No, I can't. That makes it even less reasonable.
|
| Edit: on the other hand, they apparently elected to use
| Godzilla as their logo, which kind of ruins the otherwise
| considerable unrelatedness.
| paradox460 wrote:
| Wonder how the people of Zillah Washington feel about it
| marssaxman wrote:
| I'm fairly sure that the antiquity of the Book of Genesis
| trumps any conceivable trademark claim!
| xky wrote:
| Meta also pursues trademarks applicants for trademarks ending
| in 'book' as well.
| 20after4 wrote:
| That seems a lot more dubious than the *zilla trademark.
| Aeolun wrote:
| How would this even remotely relate to Godzilla or it's
| copyright?
|
| It's not even close to a big scary nuclear fueled monster.
|
| I'll note that the only TM case they ever lost was against a
| company selling trash bags named 'trashzilla', partially
| because it did not constitute a danger to Toho's business
| interests.
|
| Edit: Uh, I missed the logo. Definitely a problem.
| dharmab wrote:
| Revzilla and Partzilla also had a long legal conflict over the
| *zilla name.
| pbhjpbhj wrote:
| It's pretty clear that "zilla" is a genericised word suffix,
| cf "bridezilla", in English.
|
| Whilst it seems to originate with Godzilla -- which honestly
| also doesn't seem to associate with a particular company but
| instead I would say it's a now traditional monster name in
| stories, like Dracula -- noone is confusing this with any
| Godzilla franchise. These sort of attempts to own a word
| sten, across trademark categories, are an over-step that
| legislators need to rein in IMO.
|
| Does the recent Sky trademark battle speak to this?
|
| _This comment is entirely my opinion and does not relate to
| my employer._
| dharmab wrote:
| > Whilst it seems to originate with Godzilla -- which
| honestly also doesn't seem to associate with a particular
| company but instead I would say it's a now traditional
| monster name in stories, like Dracula
|
| This is a really weird take. Dracula is in the public
| domain, while every piece of Godzilla media is still
| copyrighted and trademarked to Toho, one of the big four
| movie studios of Japan.
| eric_cc wrote:
| What do you find "really weird"?
|
| Dracula debuted in 1897 while Godzilla debuted in 1954.
|
| Isn't this the main reason one is public domain already
| and the other is not?
| cobbzilla wrote:
| oh crap
| doublerabbit wrote:
| The page immediately errors for me.
|
| Error
|
| Object.hasOwn is not a function. (In 'Object.hasOwn(t,n)',
| 'Object.hasOwn' is undefined)
|
| The stack trace is:
| o@https://www.boardzilla.io/build/_shared/chunk-IP5CEA34.js:3:...
| rt@https://www.boardzilla.io/build/root-NYPPT2G6.js:3:2506
| Fs@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:9:...
| Ch@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11...
| _h@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11...
| Jg@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11...
| Ei@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11...
| rs@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11...
| Rh@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11... Rh@[native code]
| Ba@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:4:...
| Ia@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:4:...
|
| iPhone - ios 14.8
| joshbuddy wrote:
| Hey Doublerabbit. Thank you for the bug report and stack trace,
| super helpful.
|
| I'm taking a look at it now. I've got to go to bed soon, but
| I'll try to fix this as soon as I can.
| joshbuddy wrote:
| I think I have a fix deployed now. Please try it again if you
| have a moment.
| doublerabbit wrote:
| Wonderful, Working perfectly. Thank you.
| doublerabbit wrote:
| Hi Josh,
|
| It appeared I'm still receiving errors when attempting a
| few of the boards.
|
| Error
|
| Object.hasOwn is not a function. (In
| 'Object.hasOwn(e,A.from)', 'Object.hasOwn' is undefined)
|
| The stack trace is:
|
| su@https://www.boardzilla.io/build/_shared/chunk-
| ZEYFFM3P.js:16...
| Fs@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:9:...
| Ch@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11...
| _h@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11...
| Jg@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11...
| Ei@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11...
| rs@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11...
| Rh@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11... Rh@[native code]
| Ba@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:4:...
| Ia@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:4:...
| sjrd wrote:
| This looks very interesting. One question: would I be able to
| develop a game using my favorite compile-to-JS language? Or would
| the game infrastructure force me to use TypeScript?
| cableshaft wrote:
| Nice. I have a ton of board game prototypes I'd like to make web
| games of at some point, so I spent a little time writing up some
| functions for a general board game library myself for making
| board games, but didn't get too far (just some grid generation,
| custom die rolling, card drawing, tournament functions, some
| tests to demonstrate various scenarios, and a few other things).
| But I'll never have time to do it properly, especially juggling
| other projects. Maybe I'll just see how easy it is to work with
| your library.
|
| I concur it's a bit painful to learn the BGA platform, as it's 1)
| stuck on their platform, you won't be able to put the game
| anywhere else, and 2) all in PHP, which I prefer not to write in
| anymore, and 3) with documentation scattered around in various
| places, including a couple of Powerpoint presentations.
| smcin wrote:
| You're using Typescript+CSS. Was hoping you'd support Python on
| the server, for game logic. Your timing is good because
| developers and publishers currently using BGA are unsettled and
| spooked by Asmodee's business model.
|
| BGA Studio's stack is JS/CSS + PHP (client and server) + MySQL
| [0]
|
| Yucata.de is JS + HTML + .NET 4.5 on the server [1]
|
| (TTS was using Lua, which I looked into but seemed eccentric and
| limited, it's not even OO, why on earth choose a non-OO language
| for a boardgame).
|
| Also here's a useful review of sites/frameworks from 2021:
| "VassalEngine: Survey of other boardgame software" [2]
|
| Can you please please please integrate with Python on the server?
|
| [0]: https://boardgamearena.com/doc/Studio
|
| [1]: https://www.yucata.de/en/FAQ#t17
|
| [2]: https://forum.vassalengine.org/t/survey-of-other-
| boardgame-s...
| gam6121147 wrote:
| > why on earth choose a non-OO language for a boardgame
|
| Lua has usually been a very popular choice for game developers.
| One reason is that it gives you an easy way to embed a
| scripting language in your game.
|
| You can do OOP without classes [0].
|
| > Can you please please please integrate with Python on the
| server?
|
| You expect the developer to port and maintain their entire
| project to Python because you can't be bothered to learn a new
| programming language?
|
| [0]:
| https://en.wikipedia.org/wiki/Lua_(programming_language)#Obj...
| tgtweak wrote:
| Seems pretty trivial to support Python serverside. Python is
| very easy to run in a lightweight isolated container (and you
| can compile it to static executable). The game data that the
| engine makes available to the server side code looks pretty
| standard and doesn't look like a huge shim to maintain.
|
| You could even cross compile the Python to typescript for a
| simplified server side environment (typy for example).
| monkeywork wrote:
| >Seems pretty trivial to .....
|
| Then go do it. If it's pretty trivial....
| hermitcrab wrote:
| Anything is trivially easy when you aren't the person that
| has to do it.
| Ensorceled wrote:
| >> > Can you please please please integrate with Python on
| the server?
|
| > You expect the developer to port and maintain their entire
| project to Python because you can't be bothered to learn a
| new programming language?
|
| They are literally begging, 3 "pleases", rather than
| "expecting".
| askvictor wrote:
| I remember a book on the shelf at home in the 90's entitled
| "Object Oriented Programming in Macro Assembler".
|
| And indeed, C has function pointers, so you can do OO. Just
| not some of the more fun stuff.
| smcin wrote:
| I clearly didn't "expect" the developer to port or do
| anything, I requested they consider _also_ integrating with a
| (server-side) language that 's in general more widespread,
| more expressive, more userbase, more libraries, more powerful
| developer tools. Per the examples I cited, boardgame
| platforms put most of the game logic on server-side, for
| complex games. The client-side checks that moves are not
| illegal, cheating or nonsensical.
|
| I wasn't aware Lua had become widespread in game programming
| [0] (or more specifically, scripting on top of a game engine
| written in some other language); but supposedly not mainly
| due to whether Lua language has adequate features, but in
| part as a reaction to (client) performance of the Lua VM vs
| Python (VM maps to register set rather than stack-based;
| lower memory usage; coroutines); on client rather than on
| server. Some discussion in [0].
|
| I did in fact in 2020 look into implementing a friend's
| boardgame in Lua on TTS vs in Python. That programming only
| confirmed my experience that line-for-line, Python is more
| expressive, IME more productive to develop in, also has much
| stronger library support.
|
| Why is the basic documentation [1] on whether/how to
| implement OO Lua so contradictory and all over the place?
| When I look for a how-to document, I want a clear how-to, I
| don't want to see Lua's own users in a decades-long debate
| [2][3][4][5][6]. Or [7]. Or a lua-users.org/wiki that isn't
| even accessible via https [8]. (If I should be using a more
| accurate term than "OO", then just tell me what that is,
| instead of ad-hominems.) So for example, do we need
| polymorphism, mixins, the ability to call super,
| serialization (probably can do without that), etc. Should we
| sacrifice other features for more deterministic GC and
| performance? What are the compelling reasons _for_ server-
| side Lua? on a feature-by-feature basis vs say Python?
|
| (There's also a constituency who insist that Tcl is object-
| oriented, FWIW.)
|
| Probably the best way to keep this discussion on-focus is to
| define "What is the consensus on an adequate set of OO
| features that's considered necessary for server-side game
| logic programming?" (that's a rational discussion, not "can't
| be bothered to", which is just ad-hominem).
|
| As to TS, in my experience I don't find strong type-checking
| to prevent that many bugs, in codebases written by a small
| number of developers. I can program JS, so again if I saw a
| compelling reason to start using TS I would. (Sure, you could
| also crosscompile Python.) Again, that's not the primary
| issue, the primary issue is what server-side language once
| the game becomes complex and outgrows a pure TS
| implementation.
|
| [0]: "Civilization V ditching Python for Lua" https://www.red
| dit.com/r/programming/comments/bp5m8/civiliza...
|
| [1]: https://www.lua.org/pil/16.html
|
| [2]: How can one implement OO in Lua?
| https://stackoverflow.com/questions/4799078/how-can-one-
| impl...
|
| [3]: Is doing OOP in Lua considered bad practice? https://www
| .reddit.com/r/lua/comments/tbaxlo/is_doing_oop_in...
|
| [4]: Really, how best to give Lua an object/class structure?
| https://www.reddit.com/r/lua/comments/tia21g/really_how_best.
| ..
|
| [5]: Is Lua an object-oriented language? (SO, 2011)
| https://stackoverflow.com/questions/3477676/is-lua-an-
| object...
|
| [6]: Why inheritance isn't as useful in dynamic languages,
| and other notes on OO in Lua (marc.info) "In short:
| inheritance is in most cases not a feature, just a simplistic
| method for expressing similarity."
| https://news.ycombinator.com/item?id=98529
|
| [7]: r/ProgrammingLanguages, 2022: "If Lua is faster and
| smaller than Python, while being just as powerful and
| capable, then why is Python so much more popular?" https://ww
| w.reddit.com/r/ProgrammingLanguages/comments/tfurk...
|
| [8]: https://wiki.c2.com/?LuaUsersWiki
| leetrout wrote:
| What is Asmodees business model and what does it have tondo
| with BGA?
| rtpg wrote:
| Asmodee owns BGA, also owns a huge amount of game publishers.
| I have a decent collection and then looked at my games and
| noticed that Asmodee published like 70% of my games.
|
| Just feels like we're reaching a point where if you want to
| get a game published at a larger scale and distributed,
| you'll likely really be incentivised to go through Asmodee.
| oezi wrote:
| Asmodee is hedgefund-owned French board game company. Drive
| by the injected money they have been 'consolidating' the
| board game publishing industry. For instance they bought the
| rights for Settler of Catan.
|
| A lot of people fear that they will raise prices or reduce
| the offering to return money to the investors at some point.
| factormeta wrote:
| there is nothing wrong with Typescript, but it is the react
| part that worries me. Wouldn't you want something more light
| weight on the front end than react for games? Like svelt, marko
| or solid?
| joshbuddy wrote:
| The React aspects are really minimal, all the animation logic
| is by outside of React. We're really just using it for the
| jsx syntax to make it easier to return markup-looking
| components.
| joshbuddy wrote:
| The reason the server isn't in Python is because in boardzilla,
| you don't express your game twice, once for the client and once
| for the server. Instead, you express the game once in
| typescript, and that code is actually used on both the server
| and client. The client is operating a lot like the server, just
| without the hidden information.
| PufPufPuf wrote:
| What is your reason for wanting Python on the backend so
| strongly? TypeScript is a very logical choice given that it
| runs on backend and a wide variety of frontends (not only web,
| but game engines like Unity too). And its type system is better
| than Python's.
| smcin wrote:
| See reply above.
| jslakro wrote:
| Good initiative but I consider screentop.gg is a solid and pretty
| consolidated option on that field. It's quite easy to create
| games on that system
| JoeOfTexas wrote:
| This is a very difficult space. I think the best way to be
| successful is to have an instant hit game, or spend tremendous
| community effort getting players every day of the year.
|
| I tried my luck with https://acos.games early on when there was
| very few alternatives to BGA. I still develop for it behind the
| scenes when I'm bored. My biggest failure is UI/UX. People don't
| care too much about the awesome technology hiding behind the
| scenes. =(
| jmpavlec wrote:
| Looks really well done. The documentation was very well
| written. I don't have a use case at the moment but it was
| interesting reading through the documentation to see what is
| possible. The state management and replaying games seemed neat.
| I'm writing my own set of games and just thinking about making
| the system flexible enough for others to integrate with feels
| like a big undertaking. Cudos for the work you put in.
| mNovak wrote:
| Looks great! I'll poke around--my dream is make a WH40k-like turn
| based strategy.. curious to see if this can handle sufficiently
| convoluted rules.
| eps wrote:
| All sample games show an error: Object.hasOwn is
| not a function. (In 'Object.hasOwn(e,A.from)', 'Object.hasOwn' is
| undefined) The stack trace is:
| su@https://www.boardzilla.io/build/_shared/chunk-
| ZEYFFM3P.js:16:114536
| Fs@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:9:128279
| Ch@https://www.boardzilla.io/build/_shared/chunk-
| QNN53S6I.js:11:180657 ...
|
| Perhaps put some polyfill in place?
| joshbuddy wrote:
| Thank you, polyfill incoming!
| joshbuddy wrote:
| Polyfill is in place, please let me know if its fixed and
| thanks
| eps wrote:
| Yep, seems resolved. Excellent.
| darekkay wrote:
| If you're looking for something more low-level, I can recommend
| boardgame.io [1].
|
| [1] https://boardgame.io/
| joshbuddy wrote:
| Yeah, I can totally recommend boardgame.io as well. Nicolo is
| super helpful and friendly. Also check out his other project
| https://boardgamelab.app/.
| Longwelwind wrote:
| You might be interested by an open-source project I started a few
| years ago but never really finished: https://github.com/ravens-
| engine/core
|
| I had the idea after developing Swords and Ravens, an online
| adaption of A Game of Thrones: the Board Game (2nd edition), and
| realizing that there was a way to make a library to allow people
| to create board games without having to bother with the network
| part.
|
| I also wrote a blog post about it:
| https://longwelwind.net/blog/networking-turn-based-game/
|
| Good luck in your project!
| joshbuddy wrote:
| Oh wow, thanks, I'll check this out.
|
| We were doing something more like merely recording the game
| moves and applying them to arrive at the game state (having
| deterministic per-session rng). It's a good way to do it, but
| for the same of simplicity, this time around we just record the
| whole json blob per move. It simplifies undos and it also lets
| us easily move through history if you want to view a previous
| state.
|
| But I'd love to try to apply some of your lessons to a later
| version. The challenge for us now is making a good api for
| expressing board games. That's been really tricky tbh. We've
| been working on this for ~7 years and have gone through many
| iterations of this api trying to get it right. I sure hope
| we're closer this time.
| Longwelwind wrote:
| You might be interested in the Phase abstraction of my
| engine.
|
| Basically you represent your board game as a tree of phases
| through which your game progresses in.
|
| Each node of your phase tree can contain state. At any point,
| your game is at leaf of your tree, and the state of the game
| is composed of all the states of all the nodes from the
| current leaf-phase to the root of the tree. Each leaf node
| also have a set of possible inputs describing what possible
| action players can take to progress into the game. This makes
| it really easy to handle games that have special "rare" phase
| that can break the flow of the game (for 7 Wonders: Duel, for
| example, phases where players must resolve a wonder's effect
| that asks them to destroy an opponent's card).
| andrewghull wrote:
| That's almost exactly what I've done here, and then defined
| various nodes with different behaviour like for-loops,
| while-loops, etc.
|
| Take a look at https://docs.boardzilla.io/game/flow to see
| how it looks.
| fayazara wrote:
| One thing about the JS ecosystem, there's a shit ton of libraries
| and frameworks.
| rosmax_1337 wrote:
| I don't think the foremost message on the landing page should be
| a "join our discord" call. It should feature examples and links
| to the source/docs.
|
| In fact, the prominence of "join our discord" on projects like
| this is off-putting for me personally. I don't doubt I am alone
| in this regard.
| hju22_-3 wrote:
| You are not.
|
| I really dislike discord as anything else than a platform for
| disposable communication, e.g. between friends and stuff, but
| people have this tendency of using it as the prominent platform
| for support questions and even as documentation. And together
| with terrible search, and no search indexing, it's just
| terrible when you need to search for a solution.
| joshbuddy wrote:
| Fwiw, we're only using Discord for disposable communication.
| We have a docusaurus site up for the docs, and otherwise all
| the development is taking place on Github. Discord seems very
| popular with the board game crowd, so it was kind of the
| first place we went to try to reach gamers before we started
| reaching out to developers.
|
| What do you prefer to discord for disposable communication?
| Certainly open to suggestions.
| bananamerica wrote:
| I don't think anyone's criticizing or advising against the
| use of Discord for the things it's adequate for, but rather
| its proeminence in the webpage, which communicates that
| you'll have to go to Discord to get more substantial
| information on the project. Having to talk to people is a
| source of stress and attrition for introverts. Not everyone
| needs or wants to have to modulate their language to a
| different social environment every time they need
| clarification.
| joshbuddy wrote:
| Good feedback, let me see what I can do about this and
| thanks
| dzidol wrote:
| I've spent over a minute after finding on HN there's
| something more than just discord invitation trying to
| find where any clue is. Like, you know, playing notpron.
| Tried clicking on different icons, then the footer,
| literally nothing. Finally, I scrolled. Not sure if it's
| my resolution+scaling or what, but with nowadays' bare
| visible scrollbars, there was a map with some tiles and
| coins on the right, and just some gray empty space after.
| As I believe 4k 150% is quite standard, there's no
| surprise some people may get confused.
| johnmaguire wrote:
| I have the same issues with Discord - but surely there must
| be bots that publish Discord support channels as indexable
| websites?
| kevinyew wrote:
| Been enjoying playing a couple games of Seven Wonders Duel so
| far, but one immediate issue is that there is no way to
| unsubscribe from the emails telling me it's my turn. I've already
| got browser notifications turned on, so these emails are filling
| up my inbox fast.
|
| I've also reported a couple bugs so far, the main one being not
| being able to build Wonders even though I have adequate
| resources, but other than that, amazing work! I'm keen to
| implement a game myself sometime soon.
| joshbuddy wrote:
| Oh darn, sorry about the email notifications. I'm going to
| disable them and give them a little extra polish later. Thanks
| for letting me know
___________________________________________________________________
(page generated 2024-01-30 23:02 UTC)