Docs are available at docs/.
Some binaries may be available in the releases. Use at own risk.
What needs to be installed:
- Git
- Nim version 1.6 or higher (primarily developed for 2.0) (
nim
andnimble
need to be available and in the path)- Recommended to be installed through
choosenim
, but also in the package repos of many distros
- Recommended to be installed through
- nimraylib_now
- It's a nim package that includes raylib and nim bindings
- Can easily be installed through
nimble install nimraylib_now
)
Download the source code:
git clone https://github.com/lrshsl/BoidsSimulator --branch hand_in_release
cd BoidsSimulator
Run using nimble:
nimble run
.. and hope it works!
The window shouldn't be resized while running. If different window dimensions are needed, the desired dimensions can be passed as arguments to the program.
nimble run -- 1000 800
Opimization options can be passed: -d:release
for an optimized build or -d:danger
for turning off even more checks to maximize performance (must be passed before the --
)
nimble run -d:release -- 1000 800
Due to dynamic links in the raylib source code, it may be necessary to get some C x11 headers on your system.
Apt based distros (Debian, Ubuntu and distros based on those):
sudo apt install libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev
Pacman (Arch linux):
sudo pacman -S alsa-lib mesa libx11 libxrandr libxi libxcursor libxinerama
Else consult the raylib docs.
- Get an empty usb-stick
- Flash it with a linux distro
- Boot from it
- Install Linux
- See chapter Linux ;)
- Basic boids simulation
- Tunable parameters
- Somehow tunable
- Window dimensions
- Colors
- Settings
- Starting values
- Presets of parameter values
- Size of entities
- UI with instant reloading
- Cohesion, align and separation factors
- Number of entities
- View radius
- Speed (max and min)
- Separation from the edges
- Ui behaviour
- Somehow tunable
- Fancy colors
- Optimizations
Current developement focus:
- Documentation
- Automatic screen size adaption
- Refactor code (comments and architecure)