2026-04-22 08:41:29 +02:00
2026-04-22 08:41:29 +02:00
img
2026-03-25 22:41:30 +01:00
2026-04-22 08:41:29 +02:00
2026-03-10 16:04:39 +01:00
2026-03-15 19:22:20 +01:00
2026-03-10 16:04:39 +01:00
2026-03-26 19:34:47 +01:00

SLOVENSKO:

Končni Projekt za 3. Letnik - PRAP

Uporabljene knjižnice

  • SDL3
  • SDL3_image
  • SDL3_ttf
  • SDL3_mixer
  • stdc++23

Build

gcc compiler + cmake

mkdir build
cd build
cmake ..
make -j

(Za Windows uporabite MSYS2 MINGW64 terminal)

Delovanje

Master Thread (Rendering Thread)

Ta nit/thread ustvari glavno okno in kliče metode za renderiranje. Prav tako obdeluje dogodke (events) in posodablja stanje igre.

Game Thread (Slave Thread)

Ta nit/thread izvaja glavno zanko igre, posodablja stanje igre in entitete. Odgovarja za logiko igre, medtem ko master thread skrbi za renderiranje in dogodke.

Sinhronizacija

Med tema dvema nitoma se uporablja std::shared_mutex za sinhronizacijo dostopa do skupnih virov, kot so entitete v GameState. Master thread uporablja std::shared_lock za branje entitet med renderiranjem, medtem ko game thread uporablja std::unique_lock za posodabljanje entitet.

Licenca

Vsa izvorna koda (razen kadar je drugače navedeno ali uporabljeno) je licencirana pod "Lesser General Public License v2.1" edino (okrajšano na "LGPL v2.1-only"). Več informacij o licenci najdete v datoteki LICENSE. Vse slike (v direktorijo resources/) so podane pod "Creative Commons Attribution-ShareAlike" (CC BY-SA) licenco. Font "Roboto" je licenciran pod "SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007" (Na voljo na spletu).

Avtorske pravice

Vse avtorske pravice (copyright) so rezervirane k avtorju te izvorne kode/slik.



ENGLISH:

Finals Project for Junior Year - PRAP

Uporabljene knjižnice

  • SDL3
  • SDL3_image
  • SDL3_ttf
  • SDL3_mixer
  • stdc++23

Build

gcc compiler + cmake

mkdir build
cd build
cmake ..
make -j

(For Windows, use MSYS2 with the MINGW64 terminal)

Operation

Master Thread (Rendering Thread)

This thread creates the main window and calls rendering methods. It also handles events and updates the game state.

Game Thread (Slave Thread)

This thread runs the main game loop, updating the game state and entities. It is responsible for game logic, while the master thread handles rendering and events.

Synchronization

A std::shared_mutex is used between the two threads to synchronize access to shared resources, such as entities in GameState. The master thread uses std::shared_lock to read entities during rendering, while the game thread uses std::unique_lock to update entities.

License

All source code (unless otherwise stated or used) is licensed under the "Lesser General Public License v2.1 only" (abbreviated as "LGPL v2.1-only"). More information about the license can be found in the LICENSE file.

All images (in the resources/ directory) are provided under the "Creative Commons Attribution-ShareAlike" (CC BY-SA) license.

The font "Roboto" is licensed under the "SIL Open Font License Version 1.1 - 26 February 2007" (available online).

All copyrights are reserved by the author of this source code/images.

Description
No description provided
Readme LGPL-2.1 3.2 MiB
Languages
C++ 97.3%
CMake 2.7%