88 lines
4.3 KiB
Markdown
88 lines
4.3 KiB
Markdown
# Assignment 2
|
|
|
|
*due on 19 February 2021*
|
|
|
|
For the second assignment you can either pick one of the two provided specifications or come up with your own.
|
|
Yes, you are free to come up with a topic for the second assignment.
|
|
However, doing so requires you to put together a specification similar to the ones provided and get my approval.
|
|
The specification doesn't have to be bulletproof.
|
|
But it must contain a bullet list of goals (with points to score) at the bottom which can be checked / evaluated.
|
|
You can also adjust one of the provided specifications.
|
|
|
|
You are allowed to work in teams, yet the team size has to correspond to the amount of work (features) of the topic.
|
|
For the provided specifications the recommended team size is 3.
|
|
|
|
You are allowed to use:
|
|
- C++ standard library (C++17 standard)
|
|
- C standard library (as fallback)
|
|
- [Boost](https://www.boost.org/)
|
|
- [SDL](https://www.libsdl.org/)
|
|
- [GLFW](https://www.glfw.org/)
|
|
- [GLM](https://glm.g-truc.net/)
|
|
- [Vulkan](https://www.khronos.org/vulkan/) / [Vulkan-Hpp](https://github.com/KhronosGroup/Vulkan-Hpp)
|
|
- [Qt](https://www.qt.io/)
|
|
- [ImGui](https://github.com/ocornut/imgui)
|
|
- [ncurses](https://invisible-island.net/ncurses/)
|
|
- [OpenAL](https://openal.org/)
|
|
- [nlohmann/json](https://github.com/nlohmann/json) / [RapidJSON](https://rapidjson.org/)
|
|
- [Assimp](https://www.assimp.org/)
|
|
- [stb-image](https://github.com/nothings/stb/blob/master/stb_image.h)
|
|
- [Ogg](https://xiph.org/ogg/) / [Vorbis](https://xiph.org/vorbis/) / [Opus](https://opus-codec.org/)
|
|
- [Tiled](https://www.mapeditor.org/) / [tileson](https://github.com/SSBMTonberry/tileson)
|
|
- [OpenSSL](https://www.openssl.org/)
|
|
- [SQLite](https://www.sqlite.org/)
|
|
- [Catch2](https://github.com/DigitalInBlue/Celero)
|
|
- [Google Test](https://github.com/google/googletest)
|
|
- [Google Benchmark](https://github.com/google/benchmark)
|
|
- [spdlog](https://github.com/gabime/spdlog) / [plog](https://github.com/SergiusTheBest/plog)
|
|
- [fmt](https://github.com/fmtlib/fmt)
|
|
- [AngelScript](https://www.angelcode.com/angelscript/)
|
|
- [Lua](http://www.lua.org/) / [sol2](https://github.com/ThePhD/sol2)
|
|
- [cereal](https://github.com/USCiLab/cereal)
|
|
- [protobuf](https://github.com/protocolbuffers/protobuf)
|
|
- [Font Chef](https://github.com/mobius3/font-chef)
|
|
|
|
Feel free to ask me about other libraries / tools.
|
|
|
|
Your application should work either on Linux (64-Bit) or Windows (64-Bit), preferably both unless there is a specific reason why it cannot be cross-platform.
|
|
For Linux, assume a recent version of Ubuntu Desktop and that the required dependencies are installed via the system's package manager.
|
|
Use the corresponding CMake `find_package` mechanism to find them.
|
|
Prefer [`pkgconf`](https://cmake.org/cmake/help/latest/module/FindPkgConfig.html) over custom *FindPackage* scripts.
|
|
For Windows you can simply ship pre-built libraries that are picked up by CMake automatically.
|
|
|
|
You must use [CMake](https://cmake.org/) as build system.
|
|
|
|
Use [ClangFormat](https://clang.llvm.org/docs/ClangFormat.html) to automatically format your code using the provided [`.clang-format`](../.clang-format) configuration.
|
|
|
|
## Team Composition + Specification
|
|
|
|
Send me an email with your team composition and your specification as early as possible.
|
|
Use the following link:
|
|
|
|
📧 [send email](mailto:alexander.hirsch@uibk.ac.at?subject=703807%20-%20Assignment%202%20Team%20Composition)
|
|
|
|
## Submission
|
|
|
|
### Packaging
|
|
|
|
Assuming you are using Git to manage your code, please use the `git archive` command to package your project.
|
|
Use the following command, replacing `XX` with your team number (with leading zero, e.g. `02`).
|
|
|
|
git archive --prefix=team_XX_assignment_2/ --format=zip HEAD > team_XX_assignment_2.zip
|
|
|
|
### Build Test Submission
|
|
|
|
Submit a non-final version of your project around 2 weeks before the final deadline.
|
|
I will verify that your project builds on my test system(s) and let you know if I run into any issues.
|
|
Use the following link, again replacing `XX` with your team number.
|
|
|
|
📧 [send email](mailto:alexander.hirsch@uibk.ac.at?subject=703807%20-%20Team%20XX%20Assignment%202%20Build%20Test)
|
|
|
|
|
|
### Final Submission
|
|
|
|
Verify that the packaged version is working.
|
|
Use the following link, again replacing `XX` with your team number.
|
|
|
|
📧 [send email](mailto:alexander.hirsch@uibk.ac.at?subject=703807%20-%20Team%20XX%20Assignment%202%20Final)
|