# Projekt: Produkcja demoscenowa
###### tags: `sylabus`
Demoscena to międzynarodowa subkultura komputerowa – powstała w latach 80 ubiegłego wieku – zajmująca się tworzeniem dem, czyli programów komputerowych generujących w czasie rzeczywistym prezentacje audiowizualne. Celem dema jest zaprezentowanie umiejętności programistycznych, graficznych i muzycznych członków grupy demoscenowej. Produkcje demoscenowe wystawia się w konkursach na festiwalach zwanych _demoparty_, na których uczestnicy głosują na najlepsze produkcje w kilku kategoriach. Jeśli zainteresował Ciebie temat, to koniecznie obejrzyj polski film dokumentalny [_Sztuka przekraczania_](https://www.youtube.com/watch?v=NVEBWUM8lko).
Celem projektu jest przygotowanie dema na komputer [Amiga 500](https://pl.wikipedia.org/wiki/Amiga_500) pod szyldem grupy [Ghostown](http://www.pouet.net/groups.php?which=10931), która wielokrotnie zajmowała pierwsze miejsce na podium, np.: [Sushi Boyz](https://www.youtube.com/watch?v=ZQ3-nnoXGng) czy [Human Traffic](https://www.youtube.com/watch?v=mZTWdzJMiJA). Produkcję chcielibyśmy wystawić na [Revision](https://en.wikipedia.org/wiki/Revision_(demoparty)) – najbardziej prestiżowym i największym demoparty na świecie – odbywającym się co roku na przełomie marca i kwietnia. Grupa w swoich szeregach ma wysokiej klasy grafików [Slayer](http://artcity.bitfellas.org/index.php?a=artist&id=467) i [DKL](http://artcity.bitfellas.org/index.php?a=artist&id=894) oraz świetnego muzyka [Jazzcata](https://soundcloud.com/jazzcat-2/popular-tracks). Lubimy eksperymenty i nowe wyzwania, dlatego chcielibyśmy zaprosić do współpracy programistów niezwiązanych z demosceną i zobaczyć dokąd nas to zaprowadzi. A nuż będzie to strzał w dziesiątkę?
W projekcie wykorzystujemy szereg nowoczesnych technologii do tworzenia narzędzi, grafiki 2D, modeli 3D, muzyki i efektów audiowizualnych:
- język [Python](https://www.python.org/), [GoLang](https://golang.org/) i [TypeScript](https://www.typescriptlang.org/)
- shadery GLSL [ShaderToy](https://www.shadertoy.com/)
- środowisko [Processing](https://processing.org/)
- [Photoshop](https://www.adobe.com/pl/products/photoshop.html)
- [Modo3D](https://www.foundry.com/products/modo) i [Blender](https://www.blender.org/)
- instrumenty i efekty [VST](https://en.wikipedia.org/wiki/Virtual_Studio_Technology)
Zadania programistyczne pokrywają szerokie spektrum tematów o zróżnicowanym poziomie trudności:
- konwersja danych
- przetwarzanie i synteza dźwięku
- przetwarzanie obrazu
- kompresja danych
- narzędzia wspomagające debugowanie i profilowanie
- narzędzia do parametryzowania i sekwencjonowania efektów
- prototypowanie efektów graficznych
- adaptacja efektów do ograniczeń komputera _Amiga 500_
- rozwój infrastruktury do uruchamiania efektów
Idealnie każdy uczestnik projektu powinien utworzyć prototyp efektu i z pomocą prowadzącego zajęcia zaadaptować go do ograniczeń platformy docelowej. Środowisko programisty bazuje na [Visual Studio Code](https://code.visualstudio.com/) i emulatorze [fs-uae](https://fs-uae.net/), ale ze względu na szereg ograniczeń skierowane do użytkowników systemu _Linux_ lub _macOS_. Więcej na temat kodu i środowiska można dowiedzieć się przeglądając publicznie dostępne repozytorium [cahirwpz/demoscene](https://github.com/cahirwpz/demoscene).
Jeśli uda Wam się wprowadzić swój efekt do produkcji, to zostaniecie uwiecznieni (pod wybranym pseudonimem) w sekcji _credits_ i członkowie grupy Ghostown będą Was zachęcać do uczestnictwa w _demoparty_. Wrażeń z obejrzenia efektów swojej pracy na ekranie kinowym i aplauzu publiczności nie da się zapomnieć!