ROZDZIAŁ 2: metoda nauki i podstawy pisania skryptów SQF

Cudownych objawień tu nie będzie, w pisaniu skryptów wprawiamy się pisząc własne skrypty. Nikt nam tej umiejętności w mózg nie wleje magicznym zaklęciem, jak niczyj doping czy instrukcja nie zastąpi sportowcowi osobistego treningu. Niemniej dobrze wiedzieć, jak się robi pompki i gdzie jest najbliższa siłownia. O tym poniżej, w przenośni oczywiście...



1. O zaczynaniu

Najtrudniej bywa zacząć, więc potrzeba dobrej motywacji, by spróbować i nie zniechęcić się wobec oporu materii. Motywacja może wyrastać z irytacji, że gra nie robi czegoś, co naszym zdaniem robić powinna. Lub z marzenia, by w naszych rozgrywkach działo się coś nowego. Lub z nadmiaru wolnego czasu...


Na początku proponuję zdefiniować, wręcz dokładnie sobie wypunktować, co nasz pierwszy skrypt ma robić. Myślę, że jest kwestią indywidualną, czy lepiej będzie zacząć od czegoś skromnego, czy też od razu skoczymy na głębokie wody. Zależy, jaka potrzeba nas motywuje i jakiego rozmiaru ambicje nami targają. 



2. Czym jest skrypt

Wiedząc, czego chcemy, możemy spróbować wytłumaczyć to komputerowi. Skrypt SQF to algorytm, czyli instrukcja działania. W sposób zrozumiały dla tzw. silnika gry (jej programu) mówi, co gra ma nam wykonać. Instrukcja ta jest odczytywana i wykonywana po uruchomieniu scenariusza, w folderze którego umieścimy plik lub pliki naszego skryptu (patrz ROZDZIAŁ 1: do czego służą skrypty SQF i jak je uruchamiać?). 

Napisanie najprostszego skryptu to kwestia sekund i jednej linijki, z drugiej strony istnieje sporo ambitnych projektów, które są rozwijane latami i obejmują dziesiątki tysięcy linijek kodu. Lojalnie uprzedzam - to pułapka! Człek zaczyna chcąc dodać swojej grze smaczku, którego jej brak, a może się okazać, że pisanie skryptów sprawia mu większą frajdę, niż granie. Taki delikwent wsiąka w skryptowanie na amen woląc odtąd tworzyć, niż grać, aż któregoś dnia ocknie się pisząc bloga z poradami dla początkujących... 

Jak ta wypowiedź składa się ze słów tworzących zdania, tak skrypt składa się z odpowiednio złożonych ze sobą w wyrażenia zmiennych, komend itp. 

Samo tworzenie skryptu przypomina rozwiązywanie ciągu małych łamigłówek logicznych: jak osiągnąć coś z danymi środkami. Jest też ćwiczeniem ze staranności zapisu - najmniejszy błąd, literówka, brakujący średnik, niesparowany nawias prawie zawsze psują rezultat a zwykle powodują, że zamiast rezultatu otrzymujemy od komputera tylko litanię pretensji, czyli enigmatycznych logów błędów. Więcej o tym w rozdziale 4, o debugowaniu kodu - usuwaniu błędów ze skryptu, który nadal, cholera, nie działa.



3. Zmienne

Zmienna to wybrany przez nas ciąg znaków, "wyraz", co do którego "umawiamy się" z komputerem, że przechowuje (jak szufladka z etykietą) pewną wartość, np. liczbę, tekst, zbiór liczb tworzących współrzędne na mapie w grze czy obiekt w rozgrywanym scenariuszu, np. ludzik/jednostka gracza. 

Dlaczego nie używać bezpośrednio wartości, lecz maskować je pod pseudonimami zmiennych? Wartości ukryte pod nazwą zmiennej będą często przez nasz skrypt zmieniane, te zmiany będą nieraz nie do przewidzenia podczas pisania skryptu, ale nazwa zmiennej pozostanie ta sama. Łatwiej wołać kogoś na ulicy po imieniu, niż za każdym razem opisywać jego aktualny wygląd. To nam bardzo ułatwia a wręcz umożliwia pisanie dobrych algorytmów, ale najlepiej przekonamy się o tym w praktyce.



4. Komendy

Komenda (polecenie) mówi komputerowi, co zrobić z jakąś zmienną lub zmiennymi. Na przykład istnieje komenda, która mówi "postaw ten obiekt tam". By zadziałała, musi być podana wraz ze zmienną oznaczającą współrzędne owego "tam" oraz, naturalnie, zmienną oznaczającą "ten obiekt". Wówczas gra wie, co mianowicie ma ustawić w którym konkretnie miejscu. 

Komend jest bardzo wiele i przybywa w kolejnych wersjach Army, a ich ogół tworzy nam kompletną paletę naszych możliwości. Z nich, jak z klocków, będziemy składać skrypt. Nie ma sensu próba wykuwania ich na pamięć. Nic na siłę. Lepiej skupiać się tylko na aktualnie potrzebnych i korzystać na bieżąco z ich dokumentacji. Z czasem i kolejnymi skryptami te częściej używane zakarbują nam się w pamięci, płynność pisania kodu dzięki temu wzrośnie, a my będziemy coraz lepiej poznawać ich zasób, co ułatwi nam kombinowanie, czym co zrobić. 


Skąd jednak na początku wiedzieć, co mam do dyspozycji i po co sięgnąć, by osiągnąć zamierzony cel? Nazwy komend z reguły w jakimś stopniu odzwierciedlają ich przeznaczenie, można zatem zacząć od prostego przeszukiwania linkowanej wyżej listy według słów lub ich fragmentów. Potrzeba tu pewnej znajomości angielskiego. 



5. Kto pyta, mniej błądzi

Jeśli samodzielne poszukiwania nie wystarczą, można skorzystać z pomocy społeczności moderskiej Army - to naprawdę pomocni ludzie. Wymaga to komunikatywnego angielskiego lub dozy cierpliwości i Google translatora. Roboty tam za nas raczej nikt nie zrobi, ale zwykle w ciągu paru dni, jeśli nie godzin, znajdzie się parę dobrych dusz gotowych coś podpowiedzieć, nakierować, wskazać błąd.


Zanim zadamy pytanie, jak coś zrobić, lepiej przeszukać forum - jest spora szansa, że ktoś kiedyś już o to samo pytał i dostał odpowiedź. 

Forum jest też jednym z głównych miejsc publikacji własnych skryptów. Początkujący (i nie tylko) może naprawdę wiele się nauczyć studiując cudze skrypty, które robią coś choć nieco podobnego do naszego projektu. Warto!


Brak komentarzy:

Prześlij komentarz