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!
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
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
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....
True, but googling soufron brings up a popular lawyer with that last name, whose social media and website use the same handle, and even has a wikipedia page. So I'm assuming he knows he's easy to find.
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.
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
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.
There is no disclaimer of liability and implied warranty. You may be on the hook for damages if someone uses your code under the WTFPL and there is a bug that causes them to lose money.
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.
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.
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
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.
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
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)
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 :)
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/
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)
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
There are no dependencies besides threejs. No typescript or build pipeline. Actually fun to just read the code.
> 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 :)
The client is a lot of JavaScript (with graphics via Three.js)
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 :)
https://en.wikipedia.org/wiki/Extreme_PaintBrawl
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.
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
http://www.wtfpl.net/about/
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.
[1] https://opensource.org/license/0bsd
[2] https://opensource.org/license/mit-0
I think most users will build from source or use provided pre-build binaries
There are definitely issues with getting fine grained memory control in a performant manner but for general processing it's pretty competitive.
I guess if the client is Electron, they're stuck with the web stack.
Server UDP:
https://github.com/solcloud/Counter-Strike/blob/7dab1533ec4d...
Client Websocket:
https://github.com/solcloud/Counter-Strike/blob/7dab1533ec4d...
It's also ... not an awful lot like CS at the moment. Mostly the size and complexity of the map.
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