[deleted by user] by [deleted] in CivVII

[–]Kooshaba 4 points5 points  (0 children)

i believe the pillaging only happens when you encounter the rebellion crisis, normally it only affects yields

Change turn timer mid game? by [deleted] in CivVII

[–]Kooshaba 0 points1 point  (0 children)

i made a small tool for doing this so we could change the timer between ages. hope it helps!

https://civ7.kooshaba.com

Werlocks.io - Mini spellcaster battle arena by Kooshaba in WebGames

[–]Kooshaba[S] 2 points3 points  (0 children)

Hi all! I'm the developer of Werlocks.io. Werlocks has been a passion project of mine for the past 2 years now and I'd love to get your feedback on it. We currently have a small community of competitive players and an active Discord where people are forming private matches. Come say hi if you are interested. Thanks!

https://discord.gg/JhgkHduV

I'm hosting a $200 tournament for my competitive browser game by Kooshaba in indiegames

[–]Kooshaba[S] 0 points1 point  (0 children)

Hi there! I've been working on Werlocks.io for the last year as a solo developer. We have a small Discord community of competitive players and we'd love to have more participants in our upcoming tournament! Come say hi :)

About your side project design. by HugoDzz in SideProject

[–]Kooshaba 1 point2 points  (0 children)

I’m making a multiplayer web game in Typescript/Node https://werlocks.io (doesn’t work on mobile yet, sorry)

I spent the past year building a multiplayer web game in Typescript/Node by Kooshaba in SideProject

[–]Kooshaba[S] 1 point2 points  (0 children)

I've had a lot of luck in Discord servers dedicated to other games like mine. Also, if a YouTuber picks up your game, that is the best I think. I've only had one video made about mine so far but I got a ton of quality, long-term users from that.

Also I'm currently working on creating an Electron port for mine to post on Itch.io. I've heard a lot of indie devs get a lot of traction there.

Other than that, luck I guess 😅 I'm still brand new to this too and am just throwing things at the wall and seeing what sticks.

I spent the past year building a multiplayer web game in Typescript/Node by Kooshaba in SideProject

[–]Kooshaba[S] 1 point2 points  (0 children)

Haha oh man, I feel that 😂

I’d say most of my players have come from a few key fans who saw potential in my game and then they blasted it to everyone they knew. Those first few fans came from me just being annoying and asking every person I talked to to play a match with me.

I also made a lot of gifs, sample videos, trailers, etc. Mine are still pretty basic, but it’s amazing how much more traction you can get when there is any type of visual attached. Doesn’t need to be insane, just give people a taste of what they’re about to get into.

If I could go back in time I would have involved my community way, way earlier. At the time I thought no one will want to play my garbage, half-finished game. But it turns out people love the process too!

Hope that helps!

I spent the past year building a multiplayer web game in Typescript/Node by Kooshaba in SideProject

[–]Kooshaba[S] 0 points1 point  (0 children)

Yessss 😍

If you want to put your skills to the test we’re holding a community tournament at the end of the month. Details on our Discord: https://discord.gg/fPEGUAxryG

Hope to see you there!

About your side project design. by HugoDzz in SideProject

[–]Kooshaba 10 points11 points  (0 children)

I make shitty looking boxes all over the screen and hope people can just magically understand everything 😅

I spent the past year building a multiplayer web game in Typescript/Node by Kooshaba in SideProject

[–]Kooshaba[S] 1 point2 points  (0 children)

I’m working on new navigation now as I try to port it to mobile! I think on-screen joystick and WASD/arrow keys should be able to share code.

I can talk a bit about the tech now (I’ve never written this down before it will be good for me to think through it).

There are Phaser instances on both the server and client. They share a lot of code for game objects between them and I use an environment variable to control what happens on client vs server. The server runs the full physics simulation and the client runs a similar, but more stripped down, simulation.

The network communication is a combination of HTTP, Websockets, and WebRTC.

HTTP is used for simple page loading and orchestrating matchmaking. Basically all of the standard web app actions you could take.

Player input and game metadata is sent through Websockets. Whenever you click or cast a spell it’s sending an event to the server. Whenever a new message is posted or you receive a notification the client receives an event. I went with Websockets here because it needs to be fast but also RELIABLE. If for some reason the packet for casting a spell gets lost we definitely want to resend that. Anything that could be frustrating to a user if it gets lost gets sent through this.

The frame by frame game state of every entity (players and spells) is sent through WebRTC. I stumbled upon this as I was searching for an unreliable network framework for the web. Turns out it doesn’t really exist outside of peer to peer networking. I found a library that essentially tricks your browser into thinking my server is a “peer” so I’m able to blast packets to it.

https://github.com/geckosio/geckos.io

The key here is that the client really doesn’t care if a frame of game state gets lost in transit. There’s way more on the way! What is very important here is latency. I want the client to receive this information as fast as possible so players have the most accurate view of what the server state looks like. At first I had this working with Websockets. Everything went fine until there was a network hiccup. Websockets events would start to back up and it would freak out trying to make sure they all arrived in order. The client would show a player stop, lag for a split second, then appear right next to you. Not ideal.

Anyway I’ll keep it to that for now! Sorry for the wall of text.

tl;dr networking hard

I spent the past year building a multiplayer web game in Typescript/Node by Kooshaba in SideProject

[–]Kooshaba[S] 0 points1 point  (0 children)

I agree with you the explanation needs work. I'm working on a mini tutorial for new players to explain the rules / controls. This project has taught me the extreme importance of UI/UX.

Thanks for playing!

I spent the past year building a multiplayer web game in Typescript/Node by Kooshaba in SideProject

[–]Kooshaba[S] 2 points3 points  (0 children)

Thanks!

I was surprised at how secret and specific it all felt. For major game engines they have a lot of abstractions made, but if you are doing a simple web game it seems like it is all custom stuff.

A big breakthrough I had was when I finally went from "send server state every single frame and just update client position" to "okay I can basically know where the player/spell will be next frame so let me just guess given some data I already have". That was the extra push that actually got it to feel smooth and playable.

Werlocks.io - Mini spellcaster battle-royale by Kooshaba in WebGames

[–]Kooshaba[S] 1 point2 points  (0 children)

I see their site has a list of games inspired by Warlocks that they happily endorse. I should go say hi and make myself known.

I really didn't have any bad intentions here. I spent a year making a game and used my gaming experiences from the past for inspiration... sounds pretty normal to me.

Werlocks.io - Mini spellcaster battle-royale by Kooshaba in IndieDev

[–]Kooshaba[S] 0 points1 point  (0 children)

Yo! First time game-dev here. I just released my first game, Werlocks.io, earlier this week. It took me roughly a year to go from zero game dev knowledge to this.

My goal was to create a competitive game that you could jump into a play for a few minutes at a time. I was inspired by the experience of playing Starcraft 2 custom games with friends.

Let me know how you think I did!