           ______________________________________________
          |                                              |
          |                   Nawalanka                  |
          |______________________________________________|
            (C) 2003-04-20 by Regedit for One Week Compo
                 <mailto:sawickiap@poczta.onet.pl>


O co chodzi?
~~~~~~~~~~~~
Gra jest klasycznym mordobiciem, czyli naley do tego samego gatunku co np.
Mortal Combat czy Street Fighter. No... prawie klasycznym. Grafika zrealizowana
jest bowiem na konsoli Windows (skada si wic ze znaczkw), a jakiegokolwiek
dwiku czy muzyki brak. Co wicej, bohaterami gry s pacmany.

UWAGA!!!
Bardzo prosz wczy zaraz na pocztku tryb penoekranowy ([l-Alt]+[Enter]).
W oknie dziej si rne dziwne rzeczy.


Klawiszologia
~~~~~~~~~~~~~
* [lewo]/[prawo]  - Chodzenie w przd/w ty
* [gra]          - Skok
* [d]           - Atak (tzn. ugryzienie przeciwnika :)
* [ty]+[d]     - Strza

Drugi gracz:
* [A]/[D]         - Chodzenie w przd/w ty
* [W]             - Skok
* [S]             - Atak (tzn. ugryzienie przeciwnika :)
* [ty]+[S]       - Strza

Ponadto...
* [l-Alt]+[Enter] - Fullscreen
* [Spacja]        - w czasie gry: AI on/off
* [ESC]           - Wyjcie

Ze sterowaniem w menu na pewno sobie poradzisz.


Gra z komputerem
~~~~~~~~~~~~~~~~
Domylnie czerwonym graczem steruje komputer. Nie udao mi si wprawdzie
napisa AI na poziomie, ale przy odrobinie wyobrani wida, e jednak troche
komputer "myli". W istocie AI komputera to poczenie algorytmu losowego
z algorytmem uczcym si - tzn. zapamitujcym i odtwarzajcym wzorcowe
sytuacje. To uczenie si nawet wida, np. komputer nie zacznie strzela,
skaka, strzela w powietrzu itp. (chyba, e losowo) dopki ty nie zaczniesz
tego robi. Niestety, algorytm jest niedokoczony :(


Gra z drug osob
~~~~~~~~~~~~~~~~~
Aby zagra z ywym przeciwnikiem, posad go na lewo od siebie i nacinij w
czasie gry (np. podczas napisu "Get Ready") spacj, aby wyczy AI. Spacj
wystarczy nacisn tylko raz - w nastpnych rundach AI bdzie ju wyczone.
Oczywicie moesz je w kadej chwili spowrotem wczy.

Twj przeciwnik gra klawiszami:

     [W]
  [A][S][D]

Jako e to jest tylko konsola Windows ze swoim standardowym wejciem, a nie
DirectInput, klawisze lubi si blokowa. Testy dowiody jednak, e mimo tego
cakiem sensowne granie na dwch graczy jest moliwe. Jeli masz wic w domu
chtn do gry osob - jakiego brata or sth. - to gorco polecam granie na
dwch! Szczeglnie, e AI inteligencj nie grzeszy i nie jest trudno ogra
komputer.


Kilka uwag o kodzie
~~~~~~~~~~~~~~~~~~~
To jest mj pierwszy powaniejszy projekt i wogle moja pierwsza dziaajca
gra w C++, a wic prosz si nie mia :) Wiem e kod jest straszny. Moe nie
"a tak" straszny (w kocu jakietam dowiedczenie w pisaniu gierek mam), ale
jednak pozostawia wiele do yczenia.

Przede wszystkim baagan panuje w nazewnictwie. Nazwy pierwszych pl
rozpoczynaem od m_, potem tego zaniechaem z lenistwa. Gdzieniegdzie
zastosowaem notacj wgiersk. Cz nazw jest po polsku, cz po angielsku
(ja tak zawsze... :)

rdo skada si z 3 zasadniczych czci, z czego gwna (game.*) stanowi
praktycznie cay kod gry i skada si z ponad 1000 linijek.

Z obiektowoci te jest tragicznie. Praca jest obiektowa (inaczej ju nie
pisz), ale wszelkie zasady OOP zostay pogwacone. Cho nie ma zmiennych
globalnych, wszystko odwouje si do wszystkiego. Po prostu obiekty przekazuj
wskanik do siebie jako parametry metod innych obiektw i tak jako si to
krci :)

Pocztkowo prbowaem tworzy pola i metody prywatne, ale co raz to trzeba byo
jakie pole upubliczni eby inny obiekt mg si do niego odwoa. Potem
zaczem ju od razu tworzy pola publiczne.

Nie no, moe troche przesadziem. Nie jest a tak le :) Tylko kod samej gry
(kolizje, strzelanie, ruch itd.) wyglda tak jak opisaem. Zreszt samo pisanie
tego to by horror i wytrwaoci dodawaa mi jedynie myl, e zdobywam jake
potrzebne mi dowiadczenie w programowaniu w tym jzyku. Zreszt kady wie, jak
wyglda pisanie przy rozgrzebanym i bezsensownym kodzie :) Potem ju si
pisao lepiej i menu czy intro zorganizowane s cakiem niele.

Do dowiadcze, jakie zdobyem podczas pisania tej gry, zaliczy musz przede
wszystkim moje pierwsze powane uycie STL (string, vector, list). Poza tym
nauczyem si pisa gry na konsole (bardzo przydatna umiejtno, co nie? :)


Podzikowania
~~~~~~~~~~~~~
* gemGreg
  - za cenne uwagi
* GoQ
  - za pokazanie mi "Text mode demo compo 5 invitation demo" Sol'a, ktre
    zainspirowao mnie do nauki programowania konsoli Windows
* Xion
  - za to, e jest po prostu fajny
* g[R]eK
  - za to, e jest tak "barwn postaci" :)))


Pozdrowienia
~~~~~~~~~~~~
* Goliatus
* GorskY
* Krzychoo
* Lux
* TRSSam
* Shyha
* ...dla caej zaogi GDPL i #warsztat!


One Week Compo
~~~~~~~~~~~~~~
http://warsztat.pac.pl
http://warsztat.pac.pl/compo


Autor
~~~~~
Regedit
- E-mail : sawickiap@poczta.onet.pl
- WWW    : www.programex.prv.pl
