Summary of Daj się poznać 2016

Sezon na podsumowania kwitnie w najlepsze. Rozrosło się postów na sam koniec konkursu, że hoho!
Więc oto i moje podsumowanie konkursu Daj się poznać.

Wymagania i cele

Wymaganiami w konkursie były:

  • 10 tygodni x 2 posty
  • Projekt open-source

A celami jakie ja sobie obrałem:

  • Postawić solidnego bloga
  • Nauczyć się Clojure’a

Retrospekcja

Wstępniak – czyli konkurs i wybór projektu:

  1. Daj się poznać 2016
  2. RL Engine

Środowisko i narzędzia:

  1. Clojure – Introduction
  2. Clojure – Environment choice
  3. Clojure – Environment setup
  4. Clojure – Structural editing & keybindings
  5. Clojure – Code coverage
  6. RL Engine – Continuous integration
  7. Code quality checks

Pierwsza funkcjonalność:

  1. RL Engine – Architecture
  2. First feature of RL Engine
  3. Dungeon generation algorithms
  4. Road to BSP
  5. BSP implementation

I tutaj post kończy się zdaniem:

Poza tym, w środku implementacji leży mały problem…

Problem polega na rekursywnym tworzeniu i obrabianiu drzewa lochów.
Jak to z rekursją bywa, jest ona podatna na StackOverflow – tak też było w tym wypadku.
Zostawiłem sobie więc

;TODO: change to recur

i zacząłem drążyć temat optymalizacji ogonowej:

  1. Tail recursion optimizations

Po zaopatrzeniu się w odpowiednią wiedzę stwierdziłem, że odłożę ten temat na później – lepiej skupić się na dokończeniu generatora poziomów.
Brakowało w nim jeszcze przycinania pokoi oraz łączenia ich.
Najpierw dodałem obcinanie pokojów a potem zabrałem się za łączenie pokojów.
No i tutaj, w sumie dalej jestem…

O ile samo łączenie działa – to gryzie się z obcinaniem.

pxFdZSe

Gdzieś w połowie tego procesu stwierdziłem, że zajmuje on stanowczo za dużo czasu.
Doszło nawet do tego, że zacząłem żonglować pojedynczym commitem między komputerami:

  1. Snapshot your work – patches in git

Wymyśliłem więc alternatywę i zamiast pisać posty na temat debugowania, testowania i grzebania w algorytmie, to zaplanowałem serię postów na temat portowania Clojure.

  1. RL-Engine for CLR hosted languages – ClojureCLR
  2. Merge libraries into single executable
  3. RL-Engine for JavaScript – ClojureScript
  4. Rendering RL-Engine in Unity3D

Pomysł okazał się idealny – portowanie okazało się super przyjemne i szybkie.
No i tak oto ostatni post w barwach DSP przenosi nas z powrotem w teraźniejszość.

Podsumowanie

Więc co tak naprawdę udało się zrobić w ciągu tego konkursu?

  • Zakwalifikować się jako finalista (21 postów)
  • Ogarnąć i postawić solidny blog
  • Wypracować sobie nawyk pisania na blogu
  • Nauczyć się Clojure’a
  • Zacząć projekt RL-Engine

A co się nie udało?

Z racji brakującego czasu (jak zawsze), niestety nie udało mi się ukończyć generatora poziomów.
A szkoda, liczyłem, że chociaż jedna funkcjonalność będzie pełna.

Coś jeszcze?

Tak! Kilka bonusów:

Quo Vadis?

Cóż, blog będę na pewno prowadził dalej…
A ten generator wypadało by przecież dokończyć 😉

Be First to Comment

A penny for your thoughts