Show HN: Open-source Counter Strike like game

(github.com)

84 points | by solcloud 3 hours ago ago

35 comments

  • diggan 2 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 2 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 7 minutes ago

        Its like a pacifist run in the old Fallout games

      • swyx an hour ago

        ah, talk-no-jutsu, the most powerful weapon in a main character arsenal.

      • rzzzt an hour ago

        Negotiator selected!

        • solcloud an hour ago

          unfortunetely voice chat is currently not supported :D

    • evanwalsh 2 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 an hour 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 an hour 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 :)

  • bilekas an hour 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 2 minutes ago

      thank you for kind words :)

    • doctorpangloss 17 minutes ago

      “Make games that are fun to make.”

  • peppertree an hour 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.

  • josephcsible 3 hours ago

    Can you add a license file?

    • solcloud 2 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

      • cAtte_ an hour 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....

      • solcloud 2 hours ago

        source code is all written from scratch and it is free for anybody

        • sqeaky an hour 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 an hour 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 an hour 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 an hour ago

          this may be what you're looking for

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

          • wyldfire 15 minutes ago

            Don't use that license, use something similar like MIT, BSD or Apache instead.

  • dfox 2 hours ago

    Making FPS game with Electron client and PHP server is an interesting choice of technologies to say the least.

    • munk-a 2 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 an hour 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.

    • solcloud 2 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)

    • giancarlostoro 2 hours ago

      I was unphased by Electron, but PHP for Counter-Strike? I'm hoping its using regular websockets.

  • therein 2 hours ago

    You would think it would run in browser. Why are the clients packaged electron applications?

    • solcloud an hour 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 :)

  • camtarn 2 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 an hour 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