very wip
its a LEARNING EXPERIENCE so pls dont flame
feedback and help very welcome!!!
- build
- edit config.json
- run run.py
You'll need
- Python 3.6+
- pyenet
- Cython
- A working C++(11?) compiler.
- If you're on Windows you'll want to use MSVC 2015 or 2017 (should be the same MSVC version your Python installation was built with)
See build.bat
for an example on building.
OPTIONAL:
- uvloop
- Protocol:
- Script loading/unloading
- Scripted gamemodes.
- Built-in command script with argument parser etc.
- Complete set of hooks and utility functions
- Default set of general server scripts
- Map loading and iterative sending
- Map switching/rotations
- Map metadata
- Proper configuration
- Server packs (models, sounds, etc.)
- Dynamic entities
- Sounds played by server
- System chat messages (big hud messages too)
- Script loading/unloading
- Connection:
- All these packets sent by the client are currently handled by the server:
- PositionOrientationData (update data for rubberbanding and orientation)
- InputData (movement directions + jump crouch sneak sprint)
- ExistingPlayer (player join + set name/team/weapon)
- spectator included [untested]
- ChatMessage (chat messages, team/global :P)
- BlockAction (building, destroying blocks)
- BlockLine
- WeaponInput/Reload (primary/secondary fire, reload)
- ChangeClass/Team (weapon/team)
- SetTool/Color (current selected tool/block color)
- UseOrientedItem (grenade thrown or rpg fired)
- HitPacket (weapon fire hits)
- PlaceMG (places a mounted machine gun at target location)
- UseCommand (generic use button keypress)
- Basic rapid hack prevention
- All these packets sent by the client are currently handled by the server:
- Gameplay
- Rifle, SMG, Shotgun, RPG, Sniper and basic MG support
- Grenades and Rockets.
- Building and destroying
- Spawning, dying, respawning
- probably some other things
- probably another set of other things
I hope I did this right.
Copyright (C) 10se1ucgo 2017
based on pyspades <https://github.com/infogulch/pyspades> (C) Mathias Kaerlev 2011-2012.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.