[HN Gopher] Show HN: Open-source Counter-Strike-like game
___________________________________________________________________
Show HN: Open-source Counter-Strike-like game
Author : solcloud
Score : 152 points
Date : 2024-10-22 16:27 UTC (6 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| josephcsible wrote:
| Can you add a license file?
| solcloud wrote:
| 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
| solcloud wrote:
| source code is all written from scratch and it is free for
| anybody
| JTyQZSnP3cQGa8B wrote:
| 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.
| sqeaky wrote:
| 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 wrote:
| _> 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
| kurisufag wrote:
| this may be what you're looking for
|
| http://www.wtfpl.net/about/
| wyldfire wrote:
| Don't use that license, use something similar like MIT,
| BSD or Apache instead.
| kurisufag wrote:
| 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.
| poizan42 wrote:
| 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.
| leni536 wrote:
| You can use zero-clause BSD[1] or MIT no-attribution[2].
|
| [1] https://opensource.org/license/0bsd
|
| [2] https://opensource.org/license/mit-0
| dokyun wrote:
| WTFPL is a fine license. It's even FSF approved.
| josephcsible wrote:
| The FSF certifies that it's a free software license
| that's compatible with the GPL, but they recommend
| against using it: https://www.gnu.org/licenses/license-
| list.en.html#WTFPL
| cAtte_ wrote:
| 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 wrote:
| 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.
| soufron wrote:
| If you need some pro bono legal help for choosing your
| license and avoisine trouble, just contact me :)
| keyle wrote:
| That is nice of you to offer, but your profile nor this
| message provide any way of contacting you.
| dfox wrote:
| Making FPS game with Electron client and PHP server is an
| interesting choice of technologies to say the least.
| giancarlostoro wrote:
| I was unphased by Electron, but PHP for Counter-Strike? I'm
| hoping its using regular websockets.
| cuu508 wrote:
| *unfazed
| hu3 wrote:
| Yep.
|
| Server UDP:
|
| https://github.com/solcloud/Counter-
| Strike/blob/7dab1533ec4d...
|
| Client Websocket:
|
| https://github.com/solcloud/Counter-
| Strike/blob/7dab1533ec4d...
| solcloud wrote:
| 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
| munk-a wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| PHP is _fast_. That is a pretty good reason, specially for this
| type of game.
| diggan wrote:
| 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 wrote:
| 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.
| rzzzt wrote:
| Negotiator selected!
| solcloud wrote:
| unfortunetely voice chat is currently not supported :D
| swyx wrote:
| ah, talk-no-jutsu, the most powerful weapon in a main
| character arsenal.
| no_wizard wrote:
| Its like a pacifist run in the old Fallout games
| evanwalsh wrote:
| 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 wrote:
| 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 wrote:
| 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 :)
| camtarn wrote:
| 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 wrote:
| 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
| therein wrote:
| You would think it would run in browser. Why are the clients
| packaged electron applications?
| solcloud wrote:
| 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 wrote:
| 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 wrote:
| 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)
| peppertree wrote:
| 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 wrote:
| 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...)
| bilekas wrote:
| 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!
| doctorpangloss wrote:
| "Make games that are fun to make."
| solcloud wrote:
| thank you for kind words :)
| wormlord wrote:
| Open-sourcing this is awesome! What a great jumping off point for
| people wanting to do 3D game dev.
| solcloud wrote:
| thank you!
| NoboruWataya wrote:
| 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
| solcloud wrote:
| thank you! very cool, love is specific thing indeed, well we
| can always brawl for that rank one spot :D
| modeless wrote:
| The client runs in Electron, but there is no web version? Why
| not?
| beepbooptheory wrote:
| Just run `python -m http.server 4000` inside the www directory!
| Seems to be working for me.
| modeless wrote:
| 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 wrote:
| 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
| mclau156 wrote:
| now re-make it in Godot?
___________________________________________________________________
(page generated 2024-10-22 23:00 UTC)