Giter Club home page Giter Club logo

project-valhalla / main Goto Github PK

View Code? Open in Web Editor NEW
47.0 6.0 13.0 821.54 MB

Main repository for Valhalla, a first-person shooter game project inspired by old school and modern titles.

Home Page: https://discord.gg/qFMAde5WQP

License: Other

C++ 37.82% C 61.03% Makefile 0.01% Shell 0.02% Objective-C 0.12% Makefile 0.36% Shell 0.05% Objective-C 0.25% Batchfile 0.01% Batchfile 0.01% Batchfile 0.01% Batchfile 0.01% Batchfile 0.01% Batchfile 0.01% Batchfile 0.01% Batchfile 0.01% Batchfile 0.01% Batchfile 0.01% CMake 0.27%
game-engine first-person-shooter science-fiction map-editor game-development

main's Introduction

Valhalla Logo

A first-person arena shooter project based on Tesseract which focuses on both old school and casual gameplay.

Discord link YouTube link

About

We are a team of volunteers that have been collaborating since 2019 and are brought together by our shared enthusiasm and creativity. In an effort to enhance our skills and learn new things, we are working to bring the project's shared goal to life.

Although Valhalla is inspired by Cube 2: Sauerbraten and numerous other ancient video games, it does not intend to blindly follow the path of other similar projects and attempt to create yet another clone of well-known old-school games, but rather it seeks to innovate the genre by proposing a simple but enjoyable shooter, experimenting with fresh concepts and combining old-school and modern elements to create something distinctive, leading to a modern interpretation of the classic arena gameplay.

We strive to offer the majority of players a satisfying gaming experience by making sure Valhalla is always free and open source, collaborating with the community, focusing on the creation of a nice blend of classic and casual gameplay and trying to enhance the built-in map editor based on the Cube Engine 2.

Anyone can contribute features, assets and ideas to the project to help it develop.

Goals

Some of the goals we have in mind are:

  • Accessibility: Add tutorials and other important features to help new players get into the game.
  • Cross-Platform Support: Support Windows, Mac, and Linux.
  • Depth: Create simple yet convincing lore to give the game a sense of purpose and its universe a story with depth.
  • Game Engine: Tweak, maintain, and update the engine together with the community.
  • Immersion: Bring audio, effects, and gunplay closer to modern standards.
  • Iterate on the Arena Shooter Formula: Experiment with new ideas and enhance the arena shooter experience.
  • Map Editor Improvements: Make most features of the map editor accessible through a simple and clear user interface.
  • Simplicity: Build gameplay that is interesting and varied while keeping the game itself simple, polished, and fun.
  • UI/HUD Improvements and Customization: Make the UI clear and accessible while allowing easy customization.
  • Unique Aesthetics: Maintain an art direction that helps create something distinct and original.
  • Vibrant Atmosphere: Avoid hyper-realistic and gloomy design language, build levels that feel open and bright.

License

Valhalla's source code and related configuration files and scripts are licensed under the permissive zlib license.
The included ENet network library which the project uses is covered by an MIT-style license, which is however compatible with the above license for all practical purposes.

The game assets are excluded from the licenses mentioned above as these may be subject to individual copyright and have specific distribution restrictions.

Contributions

Without invaluable contributions, this project would not have reached this stage.
To view a list of people who have contributed to this specific repository, contributors.md file.
If you would like to know how to make significant contributions to the project, please take a moment to read our contribution guidelines.

Build Instructions

Below, we have provided an overview of the recommended or available methods for building the source code.

Windows

The binaries will be available in bin/bin64/ and bin/bin32/. They can be launched by using the valhalla.bat batch script located in the root directory of the repository.

Code::Blocks

In order to build the project on Code::Blocks, you can use TDM-GCC.
Make sure Code::Blocks is using the chosen compiler by checking the directory used at Settings -> Compiler -> Toolchain executables -> Compiler's installation directory in Code::Blocks.
Once the compiler is configured, open the valhalla.cbp project located in source/vcpp/ and click on Build -> Build.

Visual Studio

In order to build the project on Visual Studio, you will require one of the latest versions of Visual Studio and its C/C++ extension pack.
Open the valhalla.sln solution or the valhalla.vcxproj project located in source/vcpp/ and click on Build -> Build valhalla.

Linux

In order to build the source code by using the Makefile included in the source directory, you need to ensure you have the SDL2, SDL2-image, SDL2-mixer and OpenGL development libraries installed.
After configuring the required libraries, change the current directory into the root directory of the repository in your terminal and execute the make install command:

cd ./source
make install

This will also install the binaries and make them accessible in the bin/bin_unix/ directory, which can be executed using the valhalla_unix shell script located in the root directory of the repository.

macOS

Makefile

You can use the Makefile located in the source/ directory to build the source code, similarly to the steps described in the Linux section.
To launch the application, you can run the shell script valhalla.sh found in bin/valhalla.app/Contents/MacOS/.

Code::Blocks

Alternatively, you can use Code::Blocks to load and build the project by opening the source/vcpp/valhalla.cbp file and following similar steps to those described in the Windows section.

main's People

Contributors

10010101001 avatar arcabal avatar coornio avatar darky2018 avatar darky2020 avatar edasert avatar garsipal avatar jed- avatar ragegamerboi avatar wallacewallacewallace avatar wohsiesta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

main's Issues

Project doesn't have a license yet.

Could you add a license to the project? You mentioned in the past that you considered some open source licenses. I hope you can go through with this so that others can make derivatives of this project and have the right to republish those. If no license will be added, nobody will want to risk creating a fork and have their republishing rights removed from that if this project ever gets licensed restrictively with a non-free license. I'm not saying that this will happen, but the risk for them would still be there. Also, an open-source license will make others more likely to contribute directly to this project.

https://choosealicense.com/no-permission/
https://opensource.stackexchange.com/questions/1720/what-can-i-assume-if-a-publicly-published-project-has-no-license

Network discrepancies that cause disconnection

It seems that a server network error is caused by shooting at geometry (not players).
I noticed some occasional errors when joining a server, too. This makes online testing inconvenient.

Needs to be resolved as soon as possible.

Add Prop Hunt game mode

Here's my vision for this game mode:

  • repurpose the G key, currently used for dropping the CTF flag, to a versatile gameaction command. In the proposed Prop Hunt mode, this key will allow players to transform into props;
  • props can either be randomly assigned from a pool of map models or selected by scrolling the mouse wheel, akin to choosing weapons;
  • props will periodically emit distinct sounds to help hunters locate them;
  • when players assume the form of props, they become stationary and are no longer affected by gravity. Returning to a "humanoid form" is necessary to regain movement capabilities;
  • while in humanoid form, players can engage in combat with the hunter. However, damage dealt to the hunter will have a severe penalty, making it challenging to eliminate them. Hunters, on the other hand, can eliminate players/props with standard ease.
  • points will be awarded to the hunter for capturing props and props will also earn points for surviving a round;

Adding commands to script a server preview

Consider adding commands that enable scripting for generating a server preview.
browser screenshot

Once you click on a server from the browser, rather than an immediate connection, it should ideally display a preview resembling a scoreboard (perhaps with a thumbnail of the current server map somewhere?).
preview idea

To-do in order to achieve this would be:

  • command to get servername (name of the server);
  • command to get server map;
  • command to get server time;
  • command to get team names;
  • command to loop through the players who are playing in the selected server to retrieve the needed infromation (team/spectator, name, ping);

Linking error on Linux

OS: Fedora 34 (GCC 11.2.1)

As of 9c5d7f0, compilation succeeds, but the linking stage fails due to an undefined reference:

❯ make -C src install
make: Entering directory '/home/hugo/Documents/Git/garsipal/valhalla-project/src'
make -C enet
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags` -x c++-header -o shared/cube.h.gch.tmp shared/cube.h
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -x c++-header -o standalone/shared/cube.h.gch.tmp shared/cube.h
make[1]: Entering directory '/home/hugo/Documents/Git/garsipal/valhalla-project/src/enet'
cc -O3 -fomit-frame-pointer -Iinclude  -DHAS_GETADDRINFO -DHAS_GETNAMEINFO -DHAS_GETHOSTBYADDR_R -DHAS_GETHOSTBYNAME_R -DHAS_POLL -DHAS_FCNTL -DHAS_INET_PTON -DHAS_INET_NTOP -DHAS_MSGHDR_FLAGS -DHAS_SOCKLEN_T   -c -o callbacks.o callbacks.c
cc -O3 -fomit-frame-pointer -Iinclude  -DHAS_GETADDRINFO -DHAS_GETNAMEINFO -DHAS_GETHOSTBYADDR_R -DHAS_GETHOSTBYNAME_R -DHAS_POLL -DHAS_FCNTL -DHAS_INET_PTON -DHAS_INET_NTOP -DHAS_MSGHDR_FLAGS -DHAS_SOCKLEN_T   -c -o compress.o compress.c
cc -O3 -fomit-frame-pointer -Iinclude  -DHAS_GETADDRINFO -DHAS_GETNAMEINFO -DHAS_GETHOSTBYADDR_R -DHAS_GETHOSTBYNAME_R -DHAS_POLL -DHAS_FCNTL -DHAS_INET_PTON -DHAS_INET_NTOP -DHAS_MSGHDR_FLAGS -DHAS_SOCKLEN_T   -c -o host.o host.c
cc -O3 -fomit-frame-pointer -Iinclude  -DHAS_GETADDRINFO -DHAS_GETNAMEINFO -DHAS_GETHOSTBYADDR_R -DHAS_GETHOSTBYNAME_R -DHAS_POLL -DHAS_FCNTL -DHAS_INET_PTON -DHAS_INET_NTOP -DHAS_MSGHDR_FLAGS -DHAS_SOCKLEN_T   -c -o list.o list.c
cc -O3 -fomit-frame-pointer -Iinclude  -DHAS_GETADDRINFO -DHAS_GETNAMEINFO -DHAS_GETHOSTBYADDR_R -DHAS_GETHOSTBYNAME_R -DHAS_POLL -DHAS_FCNTL -DHAS_INET_PTON -DHAS_INET_NTOP -DHAS_MSGHDR_FLAGS -DHAS_SOCKLEN_T   -c -o packet.o packet.c
cc -O3 -fomit-frame-pointer -Iinclude  -DHAS_GETADDRINFO -DHAS_GETNAMEINFO -DHAS_GETHOSTBYADDR_R -DHAS_GETHOSTBYNAME_R -DHAS_POLL -DHAS_FCNTL -DHAS_INET_PTON -DHAS_INET_NTOP -DHAS_MSGHDR_FLAGS -DHAS_SOCKLEN_T   -c -o peer.o peer.c
cc -O3 -fomit-frame-pointer -Iinclude  -DHAS_GETADDRINFO -DHAS_GETNAMEINFO -DHAS_GETHOSTBYADDR_R -DHAS_GETHOSTBYNAME_R -DHAS_POLL -DHAS_FCNTL -DHAS_INET_PTON -DHAS_INET_NTOP -DHAS_MSGHDR_FLAGS -DHAS_SOCKLEN_T   -c -o protocol.o protocol.c
cc -O3 -fomit-frame-pointer -Iinclude  -DHAS_GETADDRINFO -DHAS_GETNAMEINFO -DHAS_GETHOSTBYADDR_R -DHAS_GETHOSTBYNAME_R -DHAS_POLL -DHAS_FCNTL -DHAS_INET_PTON -DHAS_INET_NTOP -DHAS_MSGHDR_FLAGS -DHAS_SOCKLEN_T   -c -o unix.o unix.c
cc -O3 -fomit-frame-pointer -Iinclude  -DHAS_GETADDRINFO -DHAS_GETNAMEINFO -DHAS_GETHOSTBYADDR_R -DHAS_GETHOSTBYNAME_R -DHAS_POLL -DHAS_FCNTL -DHAS_INET_PTON -DHAS_INET_NTOP -DHAS_MSGHDR_FLAGS -DHAS_SOCKLEN_T   -c -o win32.o win32.c
mv standalone/shared/cube.h.gch.tmp standalone/shared/cube.h.gch
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -c -o standalone/shared/crypto.o shared/crypto.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -c -o standalone/shared/stream.o shared/stream.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -c -o standalone/shared/tools.o shared/tools.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -x c++-header -o standalone/engine/engine.h.gch.tmp engine/engine.h
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -x c++-header -o standalone/game/game.h.gch.tmp game/game.h
ar rcs libenet.a callbacks.o compress.o host.o list.o packet.o peer.o protocol.o unix.o win32.o
make[1]: Leaving directory '/home/hugo/Documents/Git/garsipal/valhalla-project/src/enet'
mv standalone/engine/engine.h.gch.tmp standalone/engine/engine.h.gch
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -c -o standalone/engine/command.o engine/command.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -c -o standalone/engine/server.o engine/server.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -c -o standalone/engine/worldio.o engine/worldio.cpp
mv standalone/game/game.h.gch.tmp standalone/game/game.h.gch
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -c -o standalone/game/entity.o game/entity.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -DSTANDALONE -Istandalone/shared -Istandalone/engine -Istandalone/game -Ishared -Iengine -Igame -Ienet/include -c -o standalone/game/server.o game/server.cpp
mv shared/cube.h.gch.tmp shared/cube.h.gch
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o shared/crypto.o shared/crypto.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o shared/geom.o shared/geom.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o shared/glemu.o shared/glemu.cpp
In file included from game/game.h:433,
                 from game/entity.cpp:1:
game/gamemode.h:74:3: warning: ‘mutator’ defined but not used [-Wunused-variable]
   74 | } mutator[] =
      |   ^~~~~~~
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o shared/stream.o shared/stream.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o shared/tools.o shared/tools.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o shared/zip.o shared/zip.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags` -x c++-header -o engine/engine.h.gch.tmp engine/engine.h
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags` -x c++-header -o game/game.h.gch.tmp game/game.h
mv engine/engine.h.gch.tmp engine/engine.h.gch
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/aa.o engine/aa.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/bih.o engine/bih.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/blend.o engine/blend.cpp
mv game/game.h.gch.tmp game/game.h.gch
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/client.o engine/client.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/command.o engine/command.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/console.o engine/console.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/dynlight.o engine/dynlight.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/grass.o engine/grass.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/light.o engine/light.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/main.o engine/main.cpp
In file included from game/game.h:433,
                 from game/server.cpp:1:
game/gamemode.h:74:3: warning: ‘mutator’ defined but not used [-Wunused-variable]
   74 | } mutator[] =
      |   ^~~~~~~
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/material.o engine/material.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/menus.o engine/menus.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/movie.o engine/movie.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/normal.o engine/normal.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/octa.o engine/octa.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/octaedit.o engine/octaedit.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/octarender.o engine/octarender.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/physics.o engine/physics.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/pvs.o engine/pvs.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/rendergl.o engine/rendergl.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/renderlights.o engine/renderlights.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/rendermodel.o engine/rendermodel.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/renderparticles.o engine/renderparticles.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/rendersky.o engine/rendersky.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/rendertext.o engine/rendertext.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/renderva.o engine/renderva.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/server.o engine/server.cpp
In file included from game/game.h:433,
                 from engine/physics.cpp:1692:
game/gamemode.h:74:3: warning: ‘mutator’ defined but not used [-Wunused-variable]
   74 | } mutator[] =
      |   ^~~~~~~
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/serverbrowser.o engine/serverbrowser.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/shader.o engine/shader.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/sound.o engine/sound.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/stain.o engine/stain.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/texture.o engine/texture.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/ui.o engine/ui.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/water.o engine/water.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/world.o engine/world.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o engine/worldio.o engine/worldio.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o game/ai.o game/ai.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o game/client.o game/client.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o game/entity.o game/entity.cpp
In file included from game/game.h:433:
game/gamemode.h:74:3: warning: ‘mutator’ defined but not used [-Wunused-variable]
   74 | } mutator[] =
      |   ^~~~~~~
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o game/game.o game/game.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o game/render.o game/render.cpp
In file included from game/game.h:433:
game/gamemode.h:74:3: warning: ‘mutator’ defined but not used [-Wunused-variable]
   74 | } mutator[] =
      |   ^~~~~~~
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o game/scoreboard.o game/scoreboard.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o game/server.o game/server.cpp
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o game/waypoint.o game/waypoint.cpp
In file included from game/game.h:433:
game/gamemode.h:74:3: warning: ‘mutator’ defined but not used [-Wunused-variable]
   74 | } mutator[] =
      |   ^~~~~~~
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -Ishared -Iengine -Igame -Ienet/include -I/usr/X11R6/include `sdl2-config --cflags`   -c -o game/weapon.o game/weapon.cpp
In file included from game/game.h:433:
game/gamemode.h:74:3: warning: ‘mutator’ defined but not used [-Wunused-variable]
   74 | } mutator[] =
      |   ^~~~~~~
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -o tess_server standalone/shared/crypto.o standalone/shared/stream.o standalone/shared/tools.o standalone/engine/command.o standalone/engine/server.o standalone/engine/worldio.o standalone/game/entity.o standalone/game/server.o -Lenet -lenet -lz  
/usr/bin/ld: standalone/game/server.o: in function `server::aiman::addai(int, int)':
server.cpp:(.text+0x9da5): undefined reference to `ai::botnames'
/usr/bin/ld: server.cpp:(.text+0x9dac): undefined reference to `ai::botnames'
collect2: error: ld returned 1 exit status
make: *** [Makefile:198: server] Error 1
make: *** Waiting for unfinished jobs....
In file included from game/game.h:433:
game/gamemode.h:74:3: warning: ‘mutator’ defined but not used [-Wunused-variable]
   74 | } mutator[] =
      |   ^~~~~~~
In file included from game/game.h:433:
game/gamemode.h:74:3: warning: ‘mutator’ defined but not used [-Wunused-variable]
   74 | } mutator[] =
      |   ^~~~~~~
In file included from game/game.h:433:
game/gamemode.h:74:3: warning: ‘mutator’ defined but not used [-Wunused-variable]
   74 | } mutator[] =
      |   ^~~~~~~
make: Leaving directory '/home/hugo/Documents/Git/garsipal/valhalla-project/src'

Statistics

Before exploring external methods for storing player statistics such as potentially forking SauerTracker (which would require an engaged player community to be considered), it's preferable to record the key player statistics within a configuration file as originally intended and make these stats accessible through the user interface.

So, regardless of future developments (which could involve external methods for storing statistics, at the expense of synchronization with client-side statistics in case the latter are not dropped), it would be valuable to implement client-side player tracking to provide an overview of our in-game efforts.
The statistics would store information such as:

  • total kills;
  • total deaths;
  • kill/death ratio;
  • total suicides;
  • total teamkills;
  • total headshot kills;
  • matches won;
  • win percentage (percentage of matches won out of total matches played);
  • total time played;
  • longest kill streak;
  • most kills in a single match (record);
  • total flags stolen;
  • total flags captured;
  • total flags returned;
  • total infected players;
  • total zombies killed;
  • total monsters killed;

Eventually, it'd make sense to fork SauerTracker.

Add cosmetic items

A while back, I tried out some cool cosmetic item models that matched the game's aesthetic quite well, and the best part was they came with free licenses.
With these available models up for grabs, it's relatively a piece of cake to finally fulfill the original vision of allowing players to customize their look a bit more.

Cosmetic items would only be available for two body parts:

  • head/face (hats, helmets, masks);
  • back (backpacks, swords, guitars);

image

Add Race game mode

Here's how I envision it:

  • finish line entity: introduce a finish line entity with a radius. When a player crosses this finish line, they get teleported back to a spawn point and a new lap is added to their record;
  • checkpoint entity: implement checkpoint entities (with a radius) to ensure that if a player dies, they can respawn from the most recent checkpoint they reached;
  • lap limit variable: create a variable that allows the server creator to define the maximum number of laps required to determine the winner;
  • scoring system: each time a player finishes a lap, the system records the number of seconds it took them to complete that lap and adds these seconds to their overall points;
  • winner determination: the player with the fewest points, indicating they completed laps in the least time, wins the match once the maximum lap limit is reached;

Could not find core textures

When I launch the game, I get the error

could not load texture media/texture/game/notexture.png

This is suspicious as the asset folder is named data instead of media, but when it is renamed to media, it fails to load the directory completely.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.