Top
Best
New

Posted by solcloud 10/22/2024

Show HN: Open-source Counter-Strike-like game(github.com)
420 points | 168 commentspage 2
maxwelljoslyn 10/23/2024|
Forget FC '25: this is the football game I really want!

Good stuff, solcloud. Keep following your heart.

k4rli 10/23/2024||
Except it is unfortunately american version of "football".

In CS 1.6/GO there have been community versions of actual football but unfortunately CS2 has killed them off completely.

solcloud 10/23/2024||
Yeah forget EA, this is football, thank you :)
therein 10/22/2024||
You would think it would run in browser. Why are the clients packaged electron applications?
solcloud 10/22/2024|
actually game can be run using any modern web browser with websocket (without needing to use electron), I just provide electron as it have better performance (nodejs supports udp so no websocket bridge is needed) and key shortcut like Ctrl-W do not close tab instead you move forward while crouching :)
modeless 10/22/2024||
Ctrl-W is fixed in fullscreen, and WebRTC DataChannel provides UDP (both client-server and peer-to-peer). Check my port of Quake III: https://github.com/jdarpinian/ioq3, you can test UDP multiplayer and Ctrl-W live in your browser here: https://thelongestyard.link/
solcloud 10/22/2024||
I am fox on fire so Ctrl-W is tab close for me :) but yeah, there are ways (hacks) to make it run in web browser "natively" but only to some extend, I mean you can for sure rebind ctrl-w and other stuff or use chromium, but for me currently real LAN party is playing on electron :) web browser version is for testing and developing (for me at least)
de_elusive 10/23/2024||
There is also play-cs.com which is the real counter strike 1.6 in browser.
modeless 10/22/2024||
The client runs in Electron, but there is no web version? Why not?
beepbooptheory 10/22/2024||
Just run `python -m http.server 4000` inside the www directory! Seems to be working for me.
modeless 10/22/2024||
There should be a hosted demo at least. The web's big advantage is instant distribution with no installation on any platform. I think it's a shame to build using web tech and then throw away your biggest advantage by requiring platform-specific local installation.
solcloud 10/22/2024||
there is indeed a web version like others mentions, I also provided a prebuild binaries for lots of os/arch at https://solcloud.itch.io/counter-strike-football (and anybody can open PR for more), for hosted webpage demo I can for sure hosted somewhere on public internet as can anybody else, so I will leave that as a optional exercise for a reader to host community server :)

I think most users will build from source or use provided pre-build binaries

artemonster 10/23/2024||
No UDP in browser?
modeless 10/23/2024||
Not true anymore! Here's my port of Quake III with UDP multiplayer: https://thelongestyard.link/

It uses WebRTC DataChannel for UDP. The code is here: https://github.com/jdarpinian/ioq3

dfox 10/22/2024||
Making FPS game with Electron client and PHP server is an interesting choice of technologies to say the least.
munk-a 10/22/2024||
PHP is a pretty strong language these days - don't knock it until you try it.

There are definitely issues with getting fine grained memory control in a performant manner but for general processing it's pretty competitive.

kak3a 10/22/2024||
Ditto. Today's PHP is not your what your grandfather used to use. It's a much matured and evolving language. Python only got so popular due to Google's use and AI. It's like the new Perl.
giancarlostoro 10/22/2024|||
I was unphased by Electron, but PHP for Counter-Strike? I'm hoping its using regular websockets.
solcloud 10/22/2024|||
server is written in PHP listening on udp, for client you can use modern web browser with websocket-udp bridge (provided in repo), or use nodejs (electron), I also provide prebuild binaries for some systems on itch https://solcloud.itch.io/counter-strike-football#download
hu3 10/22/2024||||
Yep.

Server UDP:

https://github.com/solcloud/Counter-Strike/blob/7dab1533ec4d...

Client Websocket:

https://github.com/solcloud/Counter-Strike/blob/7dab1533ec4d...

cuu508 10/22/2024|||
*unfazed
solcloud 10/22/2024|||
thank you I guess, I started with php because of rapid development and TDD, but now you can transcode php to C++ or WebAssembly pretty easily, so using vkphp or once wasm socket will be in spec than it is free easy transcode (or using Emscripten), or second option since code is quite simple it will take like barely one week to rewrite it in c++ or other languages which is my plan once the game is future complete and stable (hopefully I will not have to develop my own language :D)
klaussilveira 10/22/2024|||
PHP is _fast_. That is a pretty good reason, specially for this type of game.
krapp 10/22/2024||
PHP is fast for rendering websites, but I doubt it's faster than any other language a game this could be implemented in.

I guess if the client is Electron, they're stuck with the web stack.

wiseowise 10/23/2024||
> I guess if the client is Electron, they're stuck with the web stack.

I don’t see any correlation.

oakesa 10/23/2024||
I came here for the cstrike and stayed for the 'open source' toxic popcorn. Please keep me in the screenshot when this gets picked up by all the news sites.

And great project.

solcloud 10/23/2024|
we have a bit of both here

thank you

indulona 10/23/2024||
+1
camtarn 10/22/2024||
Having Counterstrike in the name of the repo and title of the game might not be the best idea, as it's a trademark.

It's also ... not an awful lot like CS at the moment. Mostly the size and complexity of the map.

solcloud 10/22/2024||
maybe like a said I am not lawyer, I am just a peaceful person :)

for audio/visuals the game is currently pretty basic because I am not wearing all the game development hats, and 3D graphics/audio/animation is not my favorite things (but PR queue is open if anybody is interested), but it can be scaled to more complex map, I actually convert old "real" dust2 map to this game a _year_ ago and record video of playing it https://www.youtube.com/watch?v=aIBVGZanVvU

ghosty141 10/23/2024|||
I think all he is saying remove the references to „Counter-Strike“ and you are all good! How about Sol-Strike? ;)
solcloud 10/23/2024||
that actually sounds kinda cool, but do I have a permission to use it from you, or now anybody can trademark it so I have to be first to register in German with GmbH or smth :D
camtarn 10/23/2024|||
This is a much better demo! Thank you for the link.
solcloud 10/23/2024||
thank you, no problem, I was recording videos as development was going to record progress
pbhjpbhj 10/23/2024|||
Trade mark law usually requires that a mark is not descriptive - counterstrike is a dictionary word that describes fighting back against an attacker. Seems perfectly fine to use in any fps game.

Can't see how that trade mark could stand against a challenge (in UK/EU)?

See eg Art.4, Art.7(1)(c) of EUTMR.

IANAL, these are my personal opinions and unrelated to my employment.

camtarn 10/23/2024|||
"Counter-Strike, Counter-Strike 2, CS:GO, and their respective logos are trademarks and/or registered trademarks of Valve Corporation. © 2023 Valve Corporation, all rights reserved."

I am also not a lawyer, but I would not like to step into a trademark dispute just because it 'seems perfectly fine'.

Albeit in this case you're most likely to just get a cease and desist rather than getting sued.

pbhjpbhj 10/24/2024|||
Yes, you wouldn't want to use "Counter-Strike" but legally they can't stop you using "counterstrike". As you intimate, the legislation probably doesn't matter if you can't afford the legal process.
solcloud 10/23/2024|||
ohh, date with Gaben incoming
ruthmarx 10/23/2024|||
counterstrike by itself might be OK although not used as branding, but none of the stylized forms could be used - that's my understanding at least.
oliverwinton 10/22/2024||
[dead]
mclau156 10/22/2024|
now re-make it in Godot?
solcloud 10/23/2024|
If anybody is interested in in go for it, you can use server from repository and only code client side in godot than purchase bunch of cool assets and AAA game is born