Dzisiaj na Steamie pojawił się mój program do nauki informatyki: Informatyka - zrozum i zaprogramuj komputer.

Oparty jest o program studiów inżynierskich z nastawieniem na organizację komputerów. Składa się z 11 lekcji:

1. W pierwszej lekcji użytkownik określa prawdziwość zdań i na ich przykładzie poznaje podstawowe operacje logiczne.

2.
dedek - Dzisiaj na Steamie pojawił się mój program do nauki informatyki: Informatyka ...

źródło: comment_15892153004iqgg9T6PPdBgDguzT7LWq.jpg

Pobierz
@dedek:
Reminiscencje Twórcy Systemów cz. 12: Pierwszy system i pierwsza komercyjna gra

Latem 2005 kilka ważnych życiowych decyzji: bronię magisterkę (wspomniana wcześniej gra Historical Wars), żenię się, odchodzę z pracy, buduję pierwszy kompleksowy system do tworzenia gier i do końca roku robię w nim komercyjną grę. Wydaje się tego dużo, ale w rzeczywistości wszystkie te kroki są konsekwencją podjętych lata wcześniej decyzji:

- engine jest gotowy (C++ bazujący na SDL, pokłosie książki Programming
dedek - @dedek: 
Reminiscencje Twórcy Systemów cz. 12: Pierwszy system i pierwsza ko...

źródło: comment_1588419064RNotJLUeIAk0JweBU17esS.jpg

Pobierz
  • Odpowiedz
@dedek:

Reminiscencje Twórcy Systemów cz. 11: Uczelnia zaskakuje na finiszu

Ostatni rok studiów zaczynam w październiku 2004. Pracuję już od pół roku, dzięki zdobytemu know-how po raz kolejny przeprojektowuję swój engine do gier. Na nim buduję opisaną wcześniej grę strategiczną Historical
  • Odpowiedz
@dedek:
Reminiscencje Twórcy Systemów cz. 10: Programowanie funkcyjne i sposób na naukę trudnych zagadnień

W pierwszej mapie (cz. 2) zwróciłem uwagę na konsekwencje obranej (nieświadomie) na początku ścieżki rozwoju. Moja droga w programowaniu wiodła przez asemblera i C, ponieważ w tych językach pisali wszyscy zawodowcy, jakich znałem. Ponadto do wizualizacji algorytmów i struktur danych wykorzystywano grafy i schematy, które łatwo się przekładały na języki imperatywne. Wiedziałem jak pracuje maszyna, więc myślałem jak maszyna. Na program składały się sekwencje instrukcji wykonywane jedna po drugiej, w każdej chwili mogłem wcisnąć w debuggerze pauzę i sprawdzić stan programu.

Taki sposób myślenia był i pozostaje wiodący wśród programistów. Wystarcza do tworzenia dobrych systemów. Jest naturalny, ponieważ wynika bezpośrednio z konstrukcji najpopularniejszych
dedek - @dedek: 
Reminiscencje Twórcy Systemów cz. 10: Programowanie funkcyjne i spo...

źródło: comment_1587540472AC3ZRomks2LDkcZrNvepVH.jpg

Pobierz
@LazyInitializationException: Metoda polega na tym, że gdy zaczynasz naukę mając blade pojęcie o temacie i masz trudności ze zrozumieniem, odstawiasz go na dłuższy czas. Kiedy po miesiącach/latach wracasz do nauki, okazuje się, że tym razem łapiesz znacznie więcej i szybciej. Stosowana świadomie daje bardzo dobre efekty, ponieważ wielu ludzi po zniechęceniu ustawia się na pozycji "to nie dla mnie", "nigdy tego nie zrozumiem", "nie lubię tego".

Jeśli to wiesz, to
  • Odpowiedz
@czornolisto: dokładnie, krótkoterminowo też jest taka metoda. Polega na tym, że jak nie możesz czegoś rozwiązać, to przed spaniem definiujesz pytania i w czasie snu nieświadoma część umysłu przepracowuje problem. Kiedy się budzisz, bardzo często znasz już rozwiązanie. Jak sam zauważyłeś - stosujesz to, ale właśnie uświadomienie sobie, że coś takiego robisz i to działa, daje większe możliwości, bo możesz świadomie używać metody. Zazwyczaj przepracowujemy problemy, które nas trapią. Niepokój
  • Odpowiedz
@dedek:
Reminiscencje Twórcy Systemów cz. 9: Druga gra, pierwsza praca i przełom

W poprzedniej części zarysowałem koncepcję liniowego postrzegania rzeczywistości i jej nieliniowej natury. Czas na przykład z życia.

Po zakopaniu się w pierwszej grze łagodzę cel: zamiast gry bitewnej w czasie rzeczywistym zrobię strategię turową. Symulator konfliktów zbrojnych na przestrzeni dziejów pod tytułem Historical Wars. Kopiuję część bibliotek narzędziowych, sporo dopisuję, projektuję od nowa główną pętlę gry. Kod jest bardziej przejrzysty, obiektowy, znacznie więcej klas i
dedek - @dedek: 
Reminiscencje Twórcy Systemów cz. 9: Druga gra, pierwsza praca i pr...

źródło: comment_1587216503EqLeaf2e10vvYZRwRWXukE.jpg

Pobierz
@dthprf: gdyby wtedy istniało Unity, pewnie nie tworzyłbym swoich narzędzi. Zwyczajnie nie było sensownej alternatywy. Akurat pojawił się flash i przez kilka lat większość mniejszych twórców przerzuciło się na tę technologię, ale po latach okazał się ślepym zaułkiem. Mój engine był napisany w cpp, więc kompiluje się zawsze i wszędzie, czy to na Windowsa, czy Androida. Ale jest już przestarzały, w końcu powstawał głównie w latach 2004-2006.

Udostępniony jest tutaj, tylko trzeba pamiętać, że pisał go student:
https://github.com/dedekcom/kap_engine

Wrzuciłem go na repo, bo czasem pojawia się potrzeba dodania czegoś do którejś ze starych gier. Wtedy mogę szybko odtworzyć całe środowisko. Ostatnio np. potrzebowałem debugowego exeka, żeby zrobić "making of" Kajka i
  • Odpowiedz
@Myzreal: obecnie, gdy nie mam pełnej wiedzy o problemie, preferuję podejście, które opisałeś: najpierw tworzę jak najszybciej prototyp, który działa. Wtedy poznaję czego nie zaplanowałem i jak poradziłem sobie z przeszkodami. I dopiero po prototypie podejmuję decyzję w czym tworzyć. Jeśli postanawiam zostać przy rozwiązaniu, iteracyjnie je refaktoruję do uzyskania uniwersalnej wersji, którą łatwo rozwijać.
  • Odpowiedz
@dedek:
Reminiscencje Twórcy Systemów cz. 8: Liniowość i chaos

By default postrzegamy życie w sposób liniowy, dlatego nie tylko nie potrafimy przewidywać przyszłości - nie jesteśmy w stanie nawet poprawnie interpretować przeszłości. To co bierzemy za historię jest sumą przypadkowych zdarzeń, prawdziwych lub wymyślonych, które połączyliśmy spójną narracją. Im bardziej abstrakcyjny problem np. polityka, gospodarka, naród, tym bardziej odjechane opowieści. Z kolekcji tych samych faktów i anegdot jeden stworzy kopię aktualnego medialnego przekazu, inny opartą o XIX-wieczne bajki teorię spiskową. Nassim Taleb pięknie ujął problem historii: nie odtworzysz formy lodu z kałuży.

Oczywiście im bardziej ograniczone zagadnienie i im więcej zebranych faktów, tym nasza narracja staje się bliższa prawdy. Dotyczy to jednak wąskich wycinków czasu, w których obowiązują liniowe zależności (przyczyna-skutek). Weźmy np. ten wpis: od 2 tygodni piszę cykl o tworzeniu systemów. Jaki jest jego realny zasięg? Patrząc liniowo: czyta go kilka osób i powiedzmy, że do końca reminiscencji liczba czytelników nie przekroczy kilkunastu ludzi. Nasz mózg dokonuje szybkiej kalkulacji: wysiłek nie
dedek - @dedek: 
Reminiscencje Twórcy Systemów cz. 8: Liniowość i chaos

By defaul...

źródło: comment_15867765700rcehvJeceV9Ele1xoNNVR.jpg

Pobierz
@thexDguy: zinterpretowales po swojemu wpis i wyciągnąłeś inne wnioski od intencji. To nie zarzut, po prostu operujemy na innym zestawie danych a wpis jest zbyt krótki.
  • Odpowiedz
@dedek: Można założyć, ze gdybyś poszedł na architekturę Twoja ścieżka życiowa ukształtowałaby Ciebie w zupełnie inny sposób. Może nie drastycznie inny, ponieważ wiele cech osobowościowych na pewno byś zachował, jednak mógłbyś mieć również inne spojrzenie na rzeczywistość. Inne problemy i marzenia. Innymi słowy byłbyś nieco innym człowiekiem. W taki sam sposób moglibyśmy rozważać, co by było gdybyś dorastał w innej rodzinie lub w innym kraju. Przechodząc taki proces zostałbyś ukształtowany
  • Odpowiedz
@dedek:
Reminiscencje Twórcy Systemów cz. 7: Pierwsza gra, pierwszy system, pierwsza porażka

W 2003 pisanie gier jest trudniejsze niż dzisiaj. Nie ma kompleksowych game makerów czy środowisk typu Unity. Żeby napisać grę musisz stworzyć wszystko prawie od zera. SDL oferuje funkcje typu wczytaj obrazek, naklej go na powierzchnię (surface), odśwież surface ekranu. Jest obsługa zdarzeń (kliknięcia i ruchy myszą, naciśnięcie klawisza itd.), wczytanie i odegranie dźwięków - to wszystko wystarcza do stworzenia gry 2d.

Mam marzenie: zrobić grę przypominającą Fields of Glory - pierwszą najważniejszą grę, gdy dostałem własnego PC-ta. Była to strategia w rozdzielczości 320x240, w której wojska Napoleona walczyły z Anglikami i Prusakami. Powiedzmy taki poprzednik gier z serii Total War. W mojej grze naparzałyby się czerwone kurtki (Anglicy z XVIII wieku) z niebieskimi. Kojarzycie te filmy, w których linia żołnierzy z charakterystycznymi białymi pasami skrzyżowanymi na korpusie, maszeruje z muszkietami na ramieniu, dobosze przygrywają na werblach, przygrywają piszczałki. W końcu zatrzymują się, oficer wykrzykuje komendę, wycelowują muszkiety, ‘fire!’ i salwa zmiata pierwszą linię wroga. A potem odpowiada salwa z drugiej strony, czasem idą na bagnety, a czasem strzelają aż ktoś zacznie uciekać. Świetnie została pokazana taka bitwa w Patriocie z Melem Gibsonem (battle
dedek - @dedek: 
Reminiscencje Twórcy Systemów cz. 7: Pierwsza gra, pierwszy system,...

źródło: comment_1586157472IHyqCk38XLj3c9aqDMUMdL.jpg

Pobierz
  • Odpowiedz
@dedek:
Reminiscencje Twórcy Systemów cz. 6: Programming Linux Games

Jestem wielkim fanem bardzo prostego modelu, który idealnie oddaje jak się czujemy i postępujemy w zetknięciu z jakąś nową dziedziną. Na początku nie wiemy czego nie wiemy, dlatego jesteśmy w fazie “nieświadomej niekompetencji”. Tutaj zachowujemy się różnie: czasem wydaje się, że wystarczy tylko sprawdzić tu, przestawić tam i się zrobi, proste jak drut. A czasem odwrotnie: nie wiadomo z której strony ugryźć, lepiej nawet się nie zabierać. No, ale zaczynamy coś dłubać, oglądać tutoriale i monolit zaczyna rozpadać się na podproblemy. Dociera do nas jak wiele jest niewiadomych - to znak, że jesteśmy w fazie 2: “świadomej niekompetencji”. Odpowiada to lokalnemu dołkowi na krzywej uczenia.

Jeśli jesteśmy wytrwali lub ktoś nam po prostu każe, rozwiązujemy kolejne podproblemy, rozpraszamy chmurę niepewności i przesuwamy się do fazy “świadomej kompetencji”. Wiemy co trzeba zrobić, żeby osiągać konkretne cele, ale musimy się napracować. Ostatnia, 4 faza: “nieświadoma kompetencja” to autopilot. Ktoś przychodzi do ciebie z problemem, rzucasz przez ramię “spróbuj Emacsem przez Sendmail” i dziwisz się, że dalej stoi w przejściu, zamiast brać się do roboty. Na każdy powszechnie występujący problem masz błyskawiczne rozwiązanie, na problemy złożone masz schemat rozwiązania. Ponieważ nie musisz tych patternów wymyślać, wydaje ci się, że są naturalne. Nie pamiętasz godzin spędzonych na łączeniu odpowiednich faktów, które doprowadziły do
dedek - @dedek: 
Reminiscencje Twórcy Systemów cz. 6: Programming Linux Games

Jes...

źródło: comment_1585897681Oh1r0h1Vif2wkOOnlrPDTY.jpg

Pobierz
@no_czesc: dzięki :) Jeszcze kilka uniwersalnych kawałków o zdobywaniu wiedzy, tworzeniu i rozwijaniu systemów zostało do opisania. Fajnie wiedzieć, że ktoś to czyta i korzysta.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@dedek: Sam nie wiem jak znalazłem Twoje wpisy, chyba po prostu zbieżność czasu i miejsca, jak pojawiło się w nowych wpisach, a ja akurat lurkowałem :) Masz całkiem fajne przemyślenia i spostrzeżenia, a poza tym po prostu dobrze się czyta.
  • Odpowiedz
@dedek:
Reminiscencje Twórcy Systemów cz. 5: Koncentracja, perspektywa, zaciemnienie

Dzisiaj napiszę o dwóch kluczowych cechach najlepszych twórców systemów oraz poruszę ideę studiów wyższych.

Powszechnie spotykam się z opinią, że studia to strata czasu i w obecnych czasach można zostać wysoko opłacanym specjalistą bez wyższego wykształcenia. Nie zaprzeczę, znam kilku świetnych programistów, którzy rzucili studia we wczesnych latach i nie przeszkodziło im to w karierze. To ludzie operatywni, nie boją się rzucić dobrej posady i wyemigrować na jakiś czas do UK, albo jeszcze lepiej - założyć firmę w Polsce i pracować zdalnie za
dedek - @dedek: 
Reminiscencje Twórcy Systemów cz. 5: Koncentracja, perspektywa, zac...

źródło: comment_1585815563nuGltdEMldBoaMTWf3AOpA.jpg

Pobierz
  • Odpowiedz
@dedek:
Reminiscencje Twórcy Systemów cz. 4: Pierwsza kompetencja

Nauka stojąca za wczorajszym wpisem jest prosta: znajdź mentora, grupę pasjonatów. Z kim przystajesz, takim się stajesz. Dzisiaj możesz to zrobić ze środka lasu, jeśli masz dostęp do neta. Możesz być aktywnym członkiem grupy programistycznej bez wychodzenia z piwnicy.

Pierwszy semestr na studiach inżynierskich to głównie przedmioty techniczne, fizyka i matematyka. Jest jeden o C++ i najważniejszy dla mnie przedmiot: Organizacja Komputerów. Prowadzi go AJ, facet o aparycji generała Montgomery’ego (tego co pokonał lisa pustyni Rommla): szczupły, krótko przycięte siwe włosy, angielski wąsik. Prawdziwy pasjonat architektury komputerów, rozwiązań technicznych, wszystko rozpisane na instrukcje asemblera. Nie opuszczam żadnego wykładu, chłonę
dedek - @dedek: 
Reminiscencje Twórcy Systemów cz. 4: Pierwsza kompetencja

Nauka ...

źródło: comment_1585724122SuE6pRrRhdnVyevpbt761i.jpg

Pobierz