NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Show HN: Open-source Counter-Strike-like game (github.com)
bilekas 2 hours ago [-]
This is wild... PHP server with electron client.. I'm genuinely impressed. It's been many years since I worked with PHP. Back in the days before proper namespaces etc. This just blows my mind. What an incredible effort, I will definitely be helping with this project in my free time. We need more crazy projects like this!
solcloud 1 hours ago [-]
thank you for kind words :)
doctorpangloss 1 hours ago [-]
“Make games that are fun to make.”
peppertree 2 hours ago [-]
FYI client side is under www/assets. https://github.com/solcloud/Counter-Strike/tree/master/www/a...

There are no dependencies besides threejs. No typescript or build pipeline. Actually fun to just read the code.

solcloud 2 hours ago [-]
thank you, yes like you said all client-side dependencies are "bundled" inside repository, for reading client code start.js is good starting point (https://github.com/solcloud/Counter-Strike/blob/master/www/a...), for server side starting point is server.php (https://github.com/solcloud/Counter-Strike/blob/master/cli/s...)
NoboruWataya 40 minutes ago [-]
Very cool. As an aside, it (the screenshot at least) reminds me a lot of "Extreme Paintbrawl", a game released for PC in the 90s. I used to love playing it when I was a kid. Some years later I found out that it is "considered to be one of the worst video games ever made". :D

https://en.wikipedia.org/wiki/Extreme_PaintBrawl

diggan 3 hours ago [-]
The GitHub languages thing shows it's 82% PHP, 15% JS and some sprinkles with HTML/CSS. But what is the actual client made with? Is it in a different repository? Or is it all implemented in PHP? Impressive if so.

> This is low violence game

I love this description for a game that is all about shooting others in face, planting/defusing bombs and trying to survive while being shot at.

As a side-note, has the OP ever seen a football field? :) Seems to have a bunch of crosses and other out-of-place lines, but I guess the football isn't the focus so probably matters the least :)

dietr1ch 3 hours ago [-]
Well, no one says you need to shoot, maybe you can go the charisma route and convince the terrorists not to get the bomb down.
no_wizard 1 hours ago [-]
Its like a pacifist run in the old Fallout games
swyx 2 hours ago [-]
ah, talk-no-jutsu, the most powerful weapon in a main character arsenal.
rzzzt 2 hours ago [-]
Negotiator selected!
solcloud 2 hours ago [-]
unfortunetely voice chat is currently not supported :D
evanwalsh 3 hours ago [-]
You can see the client code in `www`: https://github.com/solcloud/Counter-Strike/tree/master/www

The client is a lot of JavaScript (with graphics via Three.js)

solcloud 2 hours ago [-]
yes, client code is JavaScript using Three.js (https://threejs.org/) library, but since server and client is decoupled, client code can be implemented using anything, there is also php cli interactive interface, but most users prefer javascript one which is currently only one with real gui
solcloud 2 hours ago [-]
yes that is correct, all code is in this monorepo, yeah I get little hyped with that animal destroying description :D for that sidenote crosses - love your note - my sense of humor is kinda weird I guess or maybe because I grow up in Europe while watching America movies with football players wearing helmets idk :D

on more humor side there is also php cli interface (https://github.com/solcloud/Counter-Strike/blob/master/cli/c...), but unless you have fancy matrix like font in your terminal emulator you probably do not see woman in red dress laying on pitch :)

55 minutes ago [-]
modeless 38 minutes ago [-]
The client runs in Electron, but there is no web version? Why not?
wormlord 58 minutes ago [-]
Open-sourcing this is awesome! What a great jumping off point for people wanting to do 3D game dev.
josephcsible 4 hours ago [-]
Can you add a license file?
solcloud 3 hours ago [-]
I guess I can, but I am not a lawyer and I don't really want to go on date with Gaben and his lawyers (date with Gabe, gooseman and Jess is ok for me), but if you have any suggestions please share
soufron 4 minutes ago [-]
If you need some pro bono legal help for choosing your license and avoisine trouble, just contact me :)
cAtte_ 2 hours ago [-]
even if you were infringing on Valve's copyrights (which you probably aren't, you're just using one of their trademarks), licensing your project or not wouldn't change that at all. but more importantly, by not including a license file in your repository, you are asking everyone to assume that your project is not licensed, therefore all rights are reserved, therefore it's not actually open-source (a comment on HN is sadly not enough): https://docs.github.com/en/repositories/managing-your-reposi....
fragmede 59 minutes ago [-]
Please do. This is your code so you get to decide exactly how free you want it to be, but without a license, it's "source available" which means that people can't do more than look at it and say "that's nice". If you want to let other people actually do something with it, then it needs a license. I can't decide for you which one to choose, but MIT is popular, let's other people take your code as long as they say where it came from. For web projects that you want to remain free, AGPL is a license that says you can use this code, but any changes you make to it also have to be free. It's a tricky topic that this comment is far too short to cover, but it's worth a hour or two of your time to consider as what you think of as okay to with your source won't align with what everyone else might consider to do with your source.
solcloud 3 hours ago [-]
source code is all written from scratch and it is free for anybody
sqeaky 2 hours ago [-]
So this code is free!?

So I can take it and reuse it exactly as is and claim it's my own and sell it on Steam for $60 a pop?

So I can take it and use your name that is surely somewhere in the code and fill it with swastikas and hate speech and say that this represents your views?

Or more reasonably since I don't see a license this is copy written reserving All Rights and anything said here is just a trap you're just waiting for me to do something cool with it then hit me with a lawsuit and take my money, right?

But more seriously head over to the open source initiative read up on a couple of licenses and pick one. Almost any license will prevent people from using your name but let other people use the code if that's a thing you want.

If you just want to protect your name and let people use the code for whatever even making money consider an MIT or BSD Style license.

If you want (to protect your name and for) other people to be able to use the code but need to share their changes consider a GPL style license. This will complicate other people making money but doesn't strictly prohibit it.

If you don't want (the previous stuff and for) other people to be able to prevent people from selling it you might want to use something like a Creative Commons non-commercial license, I won't be perfect but there are flowcharts you can follow to figure out which license works for you.

airstrike 2 hours ago [-]
> So I can take it and use your name that is surely somewhere in the code and fill it with swastikas and hate speech and say that this represents your views?

That has nothing to do with the game being free. If you dedicate source code to public domain and someone slaps swastikas on it, it doesn't represent OP's views all of a sudden

JTyQZSnP3cQGa8B 2 hours ago [-]
That’s not a valid license. Without a file or statement in the repository, I guess it’s a proprietary piece of software that people cannot legally fork.
kurisufag 2 hours ago [-]
this may be what you're looking for

http://www.wtfpl.net/about/

wyldfire 1 hours ago [-]
Don't use that license, use something similar like MIT, BSD or Apache instead.
kurisufag 40 minutes ago [-]
would you mind pointing out why?

those are very dissimilar licenses in the sense that wtfpl is basically a cute way of putting something into the public domain, while MIT et. al. do actually have (albeit minor and reasonable) restrictions on the conduct of people using the code.

dokyun 8 minutes ago [-]
WTFPL is a fine license. It's even FSF approved.
dfox 3 hours ago [-]
Making FPS game with Electron client and PHP server is an interesting choice of technologies to say the least.
munk-a 3 hours ago [-]
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 2 hours ago [-]
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 3 hours ago [-]
I was unphased by Electron, but PHP for Counter-Strike? I'm hoping its using regular websockets.
solcloud 3 hours ago [-]
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
cuu508 3 hours ago [-]
*unfazed
solcloud 3 hours ago [-]
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)
3 hours ago [-]
therein 3 hours ago [-]
You would think it would run in browser. Why are the clients packaged electron applications?
solcloud 2 hours ago [-]
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 30 minutes ago [-]
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/
camtarn 3 hours ago [-]
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 2 hours ago [-]
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

3 hours ago [-]
oliverwinton 2 hours ago [-]
[dead]
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 20:28:22 GMT+0000 (Coordinated Universal Time) with Vercel.