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 :)
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
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
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!
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
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....
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.
> 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
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.
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.
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)
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
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 :)
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
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 :)
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.
Its like a pacifist run in the old Fallout games
ah, talk-no-jutsu, the most powerful weapon in a main character arsenal.
Negotiator selected!
unfortunetely voice chat is currently not supported :D
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)
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
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 :)
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!
thank you for kind words :)
“Make games that are fun to make.”
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.
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...)
Can you add a license file?
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
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....
source code is all written from scratch and it is free for anybody
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.
> 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
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.
this may be what you're looking for
http://www.wtfpl.net/about/
Don't use that license, use something similar like MIT, BSD or Apache instead.
Making FPS game with Electron client and PHP server is an interesting choice of technologies to say the least.
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.
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.
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)
I was unphased by Electron, but PHP for Counter-Strike? I'm hoping its using regular websockets.
Yep.
Server UDP:
https://github.com/solcloud/Counter-Strike/blob/7dab1533ec4d...
Client Websocket:
https://github.com/solcloud/Counter-Strike/blob/7dab1533ec4d...
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
*unfazed
You would think it would run in browser. Why are the clients packaged electron applications?
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 :)
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.
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