Oto następny podział na programy, teraz jeszcze jeden "filtr" od strony platformy docelowej. Możecie się kierować niekoniecznie kategorią, ale platformą, aby wydawać swoje produkcje online na stronie internetowej. Tu jest całkiem spory arsenał gdzie poza kilkoma rzeczami, wybór prowadzi do tego samego. Jeśli programy do tworzenia gier online, to HTML5. Jak HTML5, to JavaScript! A jak JavaScript, to rysowanie na płótnie lub skorzystanie z WebGL. Zapraszam po należne szczegóły i samą listę oczywiście!

Powracamy do listy programów do tworzenia gier. Nie dopatrzyłem się więcej kategorii gier posiadających oprogramowania do zrobienia gry wyłącznie tego typu. Zatem doszedłem do wniosku, że mogę również pokazać programy do tworzenia gier pixelowych jako motyw produkcji, czyli gierki retro. Może natrafię na jeszcze jakąś kategorię, która posiada "paletę" programów i wtedy szybko o tym napiszę. Na tę chwilę skupimy się na tworzeniu gier w stylu retro z lat .80 i .90.

Przed Wami kolejny wyjątkowy artykuł w którym sięgniemy do znanego wszystkim tytułu, "Vector Runners". Gra została wydana dokładnie dwa lata temu, natomiast pracowałem nad nią tak naprawdę dużo wcześniej i zaskoczę Was, bo to właśnie ten tytuł miał być wstępnie wydany jako pierwszy, zaraz po zamianie narzędzia na "Phaser". Jeśli jesteście zaciekawieni co mnie skłoniło do przełożenia projektu na dalszy plan, to zerkajcie do środka i skupcie się na czytaniu!

Muszę raz kolejny zmienić na szybko temat artykułów z powodu szczególnej okazji. 16 kwietnia, 2020 roku, zasubskrybował mnie dwusetny człowiek, który jeszcze nie uciekł od mojego kanału. Czy wiecie co to oznacza? Że mój kanał przekroczył 200 subskrypcji! Choć ten wynik może być interpretowany jak kpina, to jakoś udało się w ciągu dwóch lat uzbierać kolejną setkę subów mając nadzieję, że nikt z tych osób nie będzie tego traktować jak kulę u nogi. Jason wyjątkowo dziękuje wszystkim subskrybentom i z tej okazji chciałem poświęcić niniejszy artykuł. Po nim będzie jeszcze jeden "specjalny", zatem do list oprogramowań wrócimy jutro.

Idziemy dalej! Oto Waszym oczom ukazuje się kolejna seria oprogramowań zdolnych do wytworzenia gry FPS. Strzelanki pierwszoosobowe w dobie dzisiejszych oprogramowań nie są takie trudne do złożenia, a ponadto same w sobie do dnia dzisiejszego znajdują zainteresowanie u graczy i programistów. Bez ceregieli przedstawiam Wam programy do tworzenia gier FPS.

Spróbuję odejść na nieco dłuższy czas od języka C i wrócić do porad odnośnie rozpoczęcia czy szlifowania tworzenia gier. Na dzisiaj sporządzę listę programów do tworzenia gier, ale tym razem według interesującego Was gatunku zamiast języka programowania. Z powodu dostrzeżenia dużo większej szansy na pierwsze miejsca w rankingach Google u artykułów o tworzeniu gier w języku X, postanowiłem zrobić kolejną serię na kształt wyżej wymienionych, aby postawić "kropkę nad i" i może jeszcze bardziej podnieść zainteresowanie. Dzisiaj programy do tworzenia gier RPG. Zapraszam!

Czas na sfinalizowanie tablic w języku C! Oto Waszym oczom ukazują się ostatnie akapity odnośnie różnorodności tablic. Sam jestem zaskoczony, że jest tego aż tyle. Okazuje się po tym wszystkim, że tablica w języku C nie kończy się na jednym sposobie budowania. Zaprezentowałem Wam już wiele metod, a teraz czas na tę ostatnią odmianę jaką jest literał złożony. Co prawda, to nie dotyczy stricte tablic bo w ten sposób można definiować struktury, aczkolwiek skoro nadal przy tym jesteśmy, załatwmy to raz-dwa i zamknijmy za sobą drzwi.

Mamy sobotę więc czas wrócić do niedokończonego epizodu na temat tablic w języku C! Zakończmy te dwa artykuły o których była mowa, żebym miał to już z głowy. Teraźniejszy temat to będzie tablica o zmiennym rozmiarze (ang. "variable length array" w skrócie "VLA"), kolejny dodatek standardu C99 z 1999 roku wprowadzony przez organizację ISO. Patrząc na termin to trochę może być dziwne rozumowanie czym konkretnie jest "zmienny rozmiar". Czyżby język C oferował jakąś prototypową rewolucję w postaci tablicy dynamicznej? A może chodzi o możliwość wprowadzania do funkcji tablic o różnych rozmiarach, nie tylko sztywno ustawionych w kodzie? Rozwiejmy te wątpliwości raz na zawsze.

Na dzisiejszy wieczór mam kolejną małą porcję wiedzy. Pisałem już o tym parę razy w ostatnim czasie jednak występowało to jedynie w roli "epizodycznej". Teraz chcę to osadzić w roli głównej i opisać dokładnie ze szczegółami. Mianowicie, poświęcę artykuł na wyjaśnienie czym jest dereferencja wskaźnika, zatem o języku C raz kolejny i na pewno nie ostatni!

Słyszeliście o terminie "kompilacja warunkowa"? Działa bardzo podobnie jak zwykła instrukcja warunkowa z tą różnicą, że tłumaczy odpowiedni fragment kodu źródłowego w zależności od spełnienia warunku. Wynik warunku jest zależny od stałych preprocesora! W ten sposób staje się możliwe tworzenie o wiele bardziej przenośnych programów na różne platformy bez duplikowania kodów źródłowych! O tym, jak z tego korzystać i jak to wygląda w praktyce piszę poniżej.

Gotowi na ostatnią część wyjątkowo "logicznego" rozdziału? Poprzednie części są tutaj i tutaj. Mogłem co prawda od razu to pokazać, aczkolwiek chciałem iść zgodnie z historią rozwoju tego potężnego języka (bo język C jest potężny nad wyraz) i przedstawić najpierw radzenie sobie bez typu "bool" w C przez 1999 rokiem, a potem pokazać jak wyglądała pierwsza wersja "booleana". W tym momencie chcę zademonstrować kolejny zapis a właściwie bibliotekę, która pozwala pisać tak samo jak w językach wyższej abstrakcji czyli z podziałem na "true" i "false". Biblioteka o której mowa nosi nazwę "stdbool". Dołączacie ją do swojego programu i już o nic nie musicie się martwić w tym zakresie.

Z dużym opóźnieniem po zajęciach mogę wreszcie Wam okazać dalszą część tematu rozpoczętego wczoraj. Mówiliśmy o tym, że w języku C nie było możliwości korzystania z logicznego typu danych. Mam dla Was kolejną wiadomość. Od 1999 roku wraz z wprowadzeniem standardu C99, niemożliwe stało się możliwe! "bool" w C zaczął istnieć! Bez żadnych bibliotek, wspomagaczy zewnętrznych czy haczyków! Przejdźmy do szczegółowego omówienia.

Zanim rozpoczniemy czytankę, chcę powiedzieć o małej zmianie tematów artykułów. Z powodu ponownego wtrącenia się zajęć zdalnych u mnie na uczelni, nie dam rady w chwili obecnej kontynuować materiału o tablicach. Zostały jeszcze dwa wątki, które z przyczyn ode mnie niezależnych (nie wyrobię się po prostu) przesunę na ten weekend. Aby dać sobie nieco odetchnąć, postanowiłem w takim razie rozpocząć kolejny rozdział dotyczący wartości logicznych w języku C. Opowiem Wam jak sobie radzić w niektórych sytuacjach mających związek z wyrażeniami logicznymi jeśli typ "bool" w C nie istnieje! To jest część pierwsza, czyli wyjaśnienie jaką wartością i jakim typem danych charakteryzuje się "prawda" i "fałsz" bez typu logicznego.

Zapraszam na kolejną część tłumaczenia notacji wskaźnikowej. Wczoraj wieczorem była tablica jednowymiarowa, a teraz pokażę jak wygląda notacja wskaźnikowa do tablicy dwuwymiarowej. Wszyscy Ci, co pominęli pierwszą część, zapraszam tutaj. Jeśli myśleliście, że ostatni artykuł przyprawia o zawrót głowy, tutaj dopiero zacznie się wyrywanie włosów! Nie żartuję!

Ponownie poruszę zagadnienie na temat relacji pomiędzy tablicą a wskaźnikiem w języku C i C++. Wątek ten jest albo wymagany, albo poboczny w zależności od tego, w jakim języku piszecie (albo chcecie pisać) na co dzień. Zakładając, że przeczytaliście wprowadzenie do wskaźników, mogę Was poprowadzić za rękę dalej i zaprezentować Wam jak wygląda notacja wskaźnikowa do identyfikowania odpowiedniego elementu w tablicy. Tutaj jedynie Was wprowadzę do tematu, a w tym miejscu zastaniecie zapisy dla tablicy dwuwymiarowej. Tam dopiero się dzieje! Na razie, przeanalizujemy tablicę jednowymiarową. Zapraszam!

Na dzisiaj mam dla Was treść materiału dotyczącą wskaźników w języku C. Ze względu na ostatnie wydarzenia w ciągu tych kilku dni, postanowiłem podzielić się zdobytą wiedzą na ten temat mając szansę utrwalić sobie ten materiał. Na razie takie proste podpunkty. Dowiemy się co to są "wskaźniki", jak je utworzyć w kodzie, co się pod nimi kryje oraz w jaki sposób mogą nam ułatwić pisanie kodu. Do dzieła!

Na końcówkę tego dnia przygotowałem artykuł, który będzie próbował obalić teorię, że mniejszy zakres danych to zawsze lepszy wybór. Dysponujecie szerokim wachlarzem różnych zakresów typów danych (zależy też jaki język). C i C++ na ten przykład mają "int" jak każdy inny język, ale dysponują również typem "short", "long" czy nawet "long long". Byłbym zapomniał, są też podziały na typ ze znakiem ("signed") i bez znaku ("unsigned"). W niektórych sytuacjach człowiek jest absolutnie pewny, że niektóre wartości NIGDY nie będą musiały potrzebować ujemnych liczb, na przykład liczba użytkowników w bazie danych. Jeden programista to wie, drugi to wie, koledzy tego drugiego też to wiedzą, a mimo wszystko ludzie na upartego trzymają się kurczowo standardowego rodzaju "int". Co to może oznaczać? Czemu mimo tych "pewniaków", że pewne zakresy czy zbyt duże liczby nie będą wcale potrzebne, twórcy kodu wciąż wykorzystują "integer"? Przeczytajcie moje hipotezy, a być może chociaż częściowo postaram się ukoić Waszą ciekawość.

Skaczemy ponownie do Javy i teraz pokażę Wam jak korzystać z mniej znanej struktury danych kryjącą się pod nazwą "HashMap". Użytkownicy Pythona raczej będą ją nazywali "słownikiem". Ja też wolę to stwierdzenie, natomiast ze względu na zachowanie tagów, będę korzystał naprzemiennie z obu tych nazw. Przejdźmy do wyjaśnienia jak w języku Java korzystać ze słownika.

Najnowsze doniesienia o moim szablonie do gier! Trochę więcej przygotowań i edukacji w zakresie wskaźników spowodowało popchnięcie "progressu" do przodu i zacząłem wczoraj wznawianie prac w "raylib". Co konkretnie się udało zrobić i na jakiej zasadzie zostawiam w środku artykułu.

Enumeracja to odrębna gałąź w programowaniu, która też wymaga porządnego wyjaśnienia. Typ wyliczeniowy również znajduje swoją użyteczność na wielu płaszczyznach i każdy porządny informatyk powinien tę strukturę znać. Co to jest "enumeracja"? Jak ją utworzyć? Jak ją można wykorzystać w praktyce i do jakich celów?