5 ms·
Show HN: Browser grand strategy game for hundreds of players on huge maps
Hi HN,
I've been building a browser-based multiplayer strategy game called Borderhold.
Matches run on large maps designed for hundreds of players. Players expand territory, attack neighbors, and adapt as borders shift across the map. You can put buildings down, build ships, and launch nukes.
The main thing I wanted to explore was scale: most strategy games are small matches, modest maps, or modest player counts, but here maps are large and game works well with hundreds of players.
Matches are relatively short so you can jump in and see a full game play out.
Curious what people think.
https://borderhold.io/play https://borderhold.io/play
Gameplay:
https://youtu.be/nrJTZEP-Cw8 https://youtu.be/nrJTZEP-Cw8
Discord:
https://discord.gg/xVDNt2G5 https://discord.gg/xVDNt2G5
- sgolem 7mo agoOne of the main challenges has been making the map simulation work for hundreds of simultaneous players without the server becoming a bottleneck. Most interactions are event-driven and the map state updates incrementally, which keeps things manageable even when many borders are shifting at once. I've successfully tested this with 4096^2 maps and 1024 players and in those tests framerates were stable at 144 FPS, with the server ticking steadily at the standard 10 TPS. It is built on Rust and Bevy. I'm happy to answer any questions.
- reitzensteinm 7mo agoHow did you test with 1024 players - were they real? Often synthetic loads are very different to those caused by real players.
- sgolem 7mo agoBots are run on a separate thread from the main game loop and I can configure them to have a particular amount of actions per tick or second - to simulate real player action frequency. In my tests core game loop handles 1024 bots without issues, often running 5-20x of realtime.
- brudgers 7mo agoI clicked "Play Game" and got a message about a queue. Maybe that experience can be improved.
- beeflet 7mo agoI don't like the mixel art used
- SilentM68 7mo agoHmm, it does not seem to work on Edge browser on my Linux OS, but it loaded fine in Chrome in the same OS.
- bschwindHN 7mo agoThe sliders don't respond well, like the server is authoritative but the client isn't properly predicting where the slider will be. I'm playing on a 144Hz monitor, but the game is struggling to hit over 80 FPS. I keep getting errors which display in the bottom right of the screen, such as "tick" (tick failed, ZeroInvestment) errors and WebSocket receive errors. I started a custom game and "things" are just happening super quickly. All I can seemingly do is right click some stuff and do some actions. There is almost no feedback on the few actions you can do. Nothing much to observe. I don't even know where "I" am on the map. Sorry but this isn't a game yet. There's no compelling core gameplay loop, too little explanation, and wayyyy too many bugs.
- sgolem 7mo agoHey, thank you for all these details, I really appreciate it! I also use a 144Hz monitor and the framerate is often rock solid at the top. The problem is with browsers and battery powered devices. Chrome often locks up the game at 30, 60, or 120 FPS randomly, on battery or AC. I still haven't figured that one out. I'm fixing some of those errors up right now. The problem is that I don't have a regular play testing base and for some players that do play it they're based relatively close to the server. I assume many issues reported here are from the US based folks, and I'm in Europe. Thanks once again, I'll use this to improve it!
- altairprime 7mo ago> Curious what people think. About what? The game itself is mildly interesting as some sort of blockchain mega-Risk variant, but without any sort of story about how you came up with the idea, or how you coded it, or a link to your source code, or etc etc etc this seems primarily meaningless/irrelevant here at Hacker News. I see your comment asking us to propose questions that you answer — but where are your own stories, that aren't just replies to the prompts you want us to present you with? > You agree not to[:] reverse engineer or attempt to extract protected service logic except where the law clearly permits it Talk about failing to understand your target audience.
- sgolem 7mo agoWell, the purpose of this initial post was to just let people know it exists. I agree that those topics could be interesting and I might write them up in a blog. The game doesn't really force any blockchain usage on you, but it will be optional in the future to play matches where you can win money. Also, those terms were more or less vibed into existence so bear with me as I refine them into something solid in the near future. Thank you for the feedback.
- plz_throw 7mo agoI don't know, looks like OpenFront in a RetroGUI? Based on the left bottom UI element an older version, otherwise remarkably close [1] https://m.youtube.com/watch?v=ckqSFbwplvY https://m.youtube.com/watch?v=ckqSFbwplvY
- sgolem 7mo agoYeah it's heavily inspired by openfront and territorial, I've played both. My goal for this was to see how far I can push it in terms of player count and map sizes.
- rcakebread 7mo agoVery buggy, so many it's not even worth reporting, since you can't be bothered to test.
- registeredcorn 7mo agoBe honest: is this just an OpenFront clone? https://openfront.io/ https://openfront.io/ It's fine if it's just a fan-clone, but you really need to be explicit about where the idea (and code) came from if that's what you've done.
- Jyaif 7mo agoJudging by the error messages, it looks like it's a bevy+wasm project. So it's not a simple fork of OpenFront.
- sgolem 7mo agoYes it's Bevy, with a custom backend game loop/simulation.
- sgolem 7mo agoThe idea definitely came from openfront and territorial, I've played both. But this codebase has nothing to do with them, it was built from scratch.
- registeredcorn 6mo agoThanks for the reply. I also saw some other replies stating much of the same thing. I apologize that I didn't give you more benefit of the doubt. To get a bit personal for a second: I've been having a rough go of things job-wise. There have been a lot of issues trying to find work with how competitive the job market has become with mass layoffs & the overuse of LLMs in everything. The few outlets that I've have had to try and escape those concerns have also been facing a lot of controversies with LLM-related content, too. It just feels like there's no real escape from a very negative mindset, and I chalked your project up to being "Yet another thing to be mad over." It was stupid of me. To clarify: I was pretty torn when I had seen the video of your project; I hadn't played a round because of the queue. I was sitting there and thinking, "Well, if you have the idea of spreading between areas over a top-down static map, and you want any kind of modern weaponry in it...how do you not end up looking like OpenFront or some variation of 4x games?" I think the answer is essentially that...you don't. It's just kind of how it ends up looking. I think I was a little bit more suspicious of your project in particular because the UI layout looks/looked exceptionally close to OpenFront's. But again, it's kind of a standard expectation thing. "Where should we put chat? Well, probably off to one side. Where do you put notifications? In that same area, I guess?" Etc. There's a natural progression of similarities. Basically, I was wavering a bit, but jumped the gun because I was angry about things that had nothing to do with you or your work. I am sorry about that! I hope your project does well.
- mettamage 7mo agoAfter seeing this I just think it'd be awesome if there's like... a Civ 7... where you can play with 100 people, in a way that's playable, somehow. Yea, not really thought out but if anyone could make it awesome, it'd be them and I'd love to beta/alpha test it. If any Civ 7 dev is reading this, my email is in my profile. (yea I know, a crazy long shot, lol :') I'm doing it for the hype)
- pbmonster 7mo agoBut why? What would change compared to 12 players on a huge map? Do you just want to conquer a large number of your neighbors and then still get to compete against other mega-empires? When playing civ on 12 player maps, I still mostly interact only with the 3-4 that I directly compete with at any given time. I imagine that wouldn't really change with 100 people.
- TobTobXX 7mo agoThere was Golden Age of Civilisations (or sth) a while ago. It ran Freeciv (FOSS Civ 2/3 clone) and made each turn take 4 hours and added advanced queuing tooling. Was quite fun, maybe it still exists, haven't checked.
- alephnerd 7mo agoNot to be overly dismissive, but this feels like a plastic satire of a war game. Additonally, most civvy wargames tend to be based on the Avalon Hill Civilization boardgame from back in the day (which also influenced Sid Meier's Civilization), which imo peaked with Civ 4 (Civ 7 and Humankind I think is based on "History of the World"). I'd recommend reading some US Navy [0][1][2], Marines [3], and NATO [4] literature on how to better create tactical and grand strategy war games. Lots of wargaming and intel analyst vets ended up in the boardgame publishing world. [0] - https://apps.dtic.mil/sti/pdfs/AD1001766.pdf https://apps.dtic.mil/sti/pdfs/AD1001766.pdf [1] - https://www.history.navy.mil/content/dam/nhhc/research/publications/publication-508-pdf/NHHC_Winning%20a%20Future%20War_508b.pdf https://www.history.navy.mil/content/dam/nhhc/research/publi... [2] - https://www.cna.org/reports/2004/Transforming-Naval-Wargaming-A-Framework-for-Operational-Level-Wargaming.pdf https://www.cna.org/reports/2004/Transforming-Naval-Wargamin... [3] - https://www.usmcu.edu/Portals/218/Forging%20Wargamers_web.pdf https://www.usmcu.edu/Portals/218/Forging%20Wargamers_web.pd... [4] - https://paxsims.wordpress.com/wp-content/uploads/2023/09/nato-wargaming-handbook-202309.pdf https://paxsims.wordpress.com/wp-content/uploads/2023/09/nat...
- crotobloste 7mo agoAwesome resources, thank you for linking them!
- prawn 7mo agoI tried a custom game. Received constant errors in the bottom right. Couldn't work out where/who I was. I could right-click and offer alliances to factions, but there was no response at any point. Couldn't work out how to do anything. (Firefox/macOS)
- sgolem 7mo agoI've added a "How To Play" button now before you start the game, and have polished up those error paths. Now they should be much less common and displayed more nicely.
- Yokohiii 7mo agoRIP Can't enter a game, kicks me out of queue.
- harmf 7mo ago[flagged]
- pwatsonwailes 7mo agoDoesn't seem to do anything on custom game.
- sgolem 7mo agoNot sure why is that. Can you provide more details or try again?
- sornaensis 7mo agoWeird clone of OpenFront but with no UI .. ? Custom game doesn't work, tons of errors, can't even see where I am, or understand what is going on. Doesn't seem like you played your own game before submitting it.
- deleted 7mo ago[deleted]
- deleted 7mo ago[deleted]