proof88 / proofps-dd Goto Github PK
View Code? Open in Web Editor NEWPRooFPS-dd
Home Page: https://www.facebook.com/whiskhyll
License: GNU General Public License v3.0
PRooFPS-dd
Home Page: https://www.facebook.com/whiskhyll
License: GNU General Public License v3.0
E.g. if actions should be sent to server, server moves player by the actions, sends update back to client(s).
VS
Client mover player by the actions, sends updated position to server, server sends update back to clients.
Collision with wpn items makes player pick up wpns.
Ability to switch between weapons.
Shoot (bullets are not needed to collide yet).
Different kind of bullet types (instant like railgun, flying like rocket, etc.), only 1 type is enough for now to work.
bbahahh
Install WSL:
https://learn.microsoft.com/en-us/windows/wsl/install
Install GUI package and some GUI apps:
short:
sudo apt install x11-apps
sudo apt install gnome-text-editor -y
sudo apt install gimp -y
sudo apt install nautilus -y
sudo apt install vlc -y
cd /tmp
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt install --fix-broken -y
sudo dpkg -i google-chrome-stable_current_amd64.deb
google-chrome
long:
https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps
https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-11-with-gui-support#5-install-and-use-a-gui-package
Install SSH Stuff:
sudo apt install openssh-server
sudo service ssh start
sudo systemctl enable ssh
Install Wine for Ubuntu 22.04 with usually required libs:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install software-properties-common
wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo apt install software-properties-common
sudo apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu/ $(lsb_release -cs) main"
sudo apt update
sudo apt install --install-recommends wine-stable
sudo apt-get install libasound2-dev:i386 libjpeg8-dev:i386
sudo apt install openal-info
sudo apt-get install libpulse0:i386
sudo apt-get install libasound2-plugins:i386
sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport
sudo apt install --install-recommends wine-stable-i386
sudo apt install --install-recommends --fix-missing wine-stable-i386
Install some good-to-have stuff for Wine:
sudo apt install -y dosbox
sudo apt install -y playonlinux
sudo apt install -y winbind
sudo apt install -y wine-binfmt
sudo apt install -y winetricks
sudo apt-get install gstreamer1.0-plugins-good:i386
Run WineCfg to Change its Settings:
winecfg
To add Wine to the list of programs you can open exe files:
mkdir -p $HOME/.local/share/applications/
cp /usr/share/doc/wine/examples/wine.desktop $HOME/.local/share/applications/
Lot of MS fonts should be also installed:
sudo apt-get install ttf-mscorefonts-installer
Prepare Visual Studio to Connect to WSL:
sudo apt install net-tools
ifconfig
Check the IP address of the Ubuntu machine.
Add this IP address as new connection in Visual Studio: Options > Cross Platform > Connection Manager.
Setup VS for WSL:
https://learn.microsoft.com/en-us/cpp/build/walkthrough-build-debug-wsl2?view=msvc-170
In particular these subsections:
Generate Project CMake files:
Install cmakeconverter:
https://github.com/pavelliavonau/cmakeconverter
Run in solution directory, e.g.:
C:\__PR00F__\___developing___\projects\PGE-misc\src
cmake-converter -s PGE.sln
Load the Main Generated CMake files:
In VS, File > Open > CMake ...
Select the main generated CMake file: PGE-misc/src/CMakeLists.txt .
VS will display "CMake Overview Pages", make sure there you see green ticks for:
Set up the CMakeSettings.json to have at least 1 WSL config, e.g.:
Configuration name: WSL-GCC-x86-Debug
Configuration type: Debug
WSL distribution name: Ubuntu
Toolset: linux_x86
Now change the Target System on the Toolbar above to "WSL: Ubuntu", the Configuration to "WSL-GCC-x86-Debug", and the Startup Item to whichever target you want to start debugging, e.g. PRooFPS-dd.
This will initiate the build and debugging.
https://learn.microsoft.com/hu-hu/cpp/linux/cmake-linux-project?view=msvc-170
https://learn.microsoft.com/hu-hu/cpp/linux/configure-a-linux-project?view=msvc-170
https://learn.microsoft.com/hu-hu/cpp/linux/deploy-run-and-debug-your-linux-project?view=msvc-170
Good-to-know for Networking:
https://learn.microsoft.com/en-us/windows/wsl/networking
DeathMatchMode already supports time limit, but the game should use it differently than frag limit. Because number of frags is always updated across all players, so frag limit cross can be detected instantly by any player, but in case of time limit, only server knows WHEN the game actually started. And I dont want to update remaining time in server -> client direction in every frame. I would just let the server track the remaining time, and send a special packet to every player when time elapsed (in general, it should be a packet saying game ended, and the reason of the end). In this case even frag limit could be handled this way.
Depends on: #314
and
Depends on: #248 .
Map File Format is preferably a text file that is easy to edit in text editor.
Look around with mouse (xhair), WASD moves player, space jumps.
Camera follows the player. On the long run, camera should be configurable how smooth it should follow the player.
Browse for open-source libs and understand their pros and cons, then select 1 to use.
Browse for open-source libs and understand their pros and cons, then select 1 to use.
Dont know if even GL-1.1 -specific funcptrs need to be queried like extension funcptrs?
Buy SSD, Install, etc
Browse for open-source libs and understand their pros and cons, then select 1 to use.
Bring framerate-independent moving of legacy PR00FPS to the next level:
Basically this is the "tickrate" property in CS:S:
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.