A Flocking/Emergence test program, written in Qt5
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
specs
src
test
.clang-format
.gitignore
.travis.yml
CMakeLists.txt
LICENSE
README.org

README.org

Autonomous agents using Qt5, revisited

https://travis-ci.org/gagbo/emergence.svg?branch=master

https://codecov.io/gh/gagbo/emergence/branch/master/graph/badge.svg

What is this ?

Purpose

This is a revisit of the Flocking project I started in Qt. After playing with SDL, and choosing that Qt is better for UI, I come back to Qt with the intent of making a better architecture, with tried and true design patterns learned during OSSU-sanctioned courses. The ultimate goal is to allow better maintainability and upgrade possibilities.

Progress

For the time being there is not much to do with it. I am learning how to design properly software, therefore I am still working on paper to write the best specifications and class architecture I can to make this as clean as possible.

It means that the repository is only a small stub for now, with basic CMakeLists and a little file organisation taken from earlier projects.

As such, for the time being issues and PR I did not author will be ignored, and pushes will be made to master until a working version of the project is reached. “Working” means taking at least 1 command line argument for the count of agents the world should start with, and proper simulation afterwards.

Dependencies

These dependencies are “minimal” mostly because they correspond to my environment and the CI env :

  • Qt 5.10.1
  • CMake 3.8

How to play with it

The current CMake configuration overrides the default install location, so there are no system implications about making the install target.

mkdir build && cd build
cmake ..
make install
./install/bin/emergence

Current mappings are printed on STDOUT when launching the simulation. (Menu is only eye candy and non-functional, use the keyboard and the mouse to interact)

Acknowledgements

I would like to thank Jesus Alvarez (@demizer) for providing an easy to find specifications template.