Końcówka prac by Kaz 2009-05-01 01:11:54

Powoli i nieubłaganie zbliża się godzina, w której zegar wybije czas pojawienia się gry Kolony2106. Po kilku dłuuuugich przerwach wygląda na to, że mamy finalną wersję nie tylko polskiej i czeskiej wersji, ale także angielskiej. Przypomnę, że początkowo mieliśmy tylko zebrać kilka popularnych poprawek do oryginalnego "Kolony" jak zmiana czcionki czy poprawka najdokuczliwszych błędów. Wraz z wgryzaniem się w program apetyt na zmiany rósł. Skończyło się na tym, że gra została mocno poprawiona (właściwie każda procedura gry), rozbudowana o elementy widoczne (outro, intro, wygląd menu, więcej opcji) oraz niewidoczne (dodatkowe procedury, więcej parametrów). No i powstały dwie dodatkowe wersje językowe - co niestety najbardziej przyhamowało prace. Ale co się odwlecze to nie uciecze - gra jest praktycznie gotowa.



Już kilkukrotnie cytowałem maile krążące w gronie zespołu tworzącego ten remake - w osobach Adama "Urborg" Kaczmarka, Arka "ArSoft" Lubaszki i niżej podpisanego. Ponieważ prace programistyczne dobiegły końca, dzisiaj chyba już ostatni cytat, coś jak prezentacja ostatniej cegły w budowanym murze. Na pamiątkę :). Autorem ostatniego maila dotyczącego poprawek jest Arek: "Zgodnie z obietnicą posiedziałem trochę przy K2106 i w załączniku efekt. Myślę, że to finalna wersja, jeśli oczywiście podczas testowania nic złego nie wyskoczy. (...) I to w zasadzie byłoby na tyle... gdyby nie ciekawość! Zachciało mi się sprawdzić, jak Adam rozwiązał problem obsługi błędów podczas próby wczytania outra ;-). I całe szczęście, że to zrobiłem. Okazało się, że wersja polska i czeska wyglądają tak:

-----wersja polska-----
6110 POKE 16,192:I=USR($065F):POKE 1536,GRM:POKE 1537,%0:FOR I=%1 TO 50:POKE 1537+I,ASC(IMIE$(I)):NEXT I:FOR I=%1 TO GRM:POKE 1587+I,ATAK(I,I):T$=STR$(BANK(I)):FOR A=%1 TO LEN(T$):POKE 1592+(I*L10-L10)+A,ASC(T$(A)):NEXT A:NEXT I
6111 TRAP 6112:RUN "D:O"
6112 ? :? "Błąd odczytu!":? :EXEC FIR:GOTO 6111

-----wersja czeska-----
6110 POKE 16,192:I=USR($065F):POKE 1536,GRM:POKE 1537,%0:FOR I=%1 TO 50:POKE 1537+I,ASC(IMIE$(I)):NEXT I:FOR I=%1 TO GRM:POKE 1587+I,ATAK(I,I):T$=STR$(BANK(I)):FOR A=%1 TO LEN(T$):POKE 1592+(I*L10-L10)+A,ASC(T$(A)):NEXT A:NEXT I
6111 TRAP 6112:RUN "D:O"
6112 ? :? "Chyba p_i zpisu!":? :EXEC FIR:GOTO 6111




Ale niestety wersja angielska tak:

-----wersja angielska-----
6110 TRAP 6111:POKE 16,192:I=USR($065F):POKE 1536,GRM:POKE 1537,%0:FOR I=%1 TO 50:POKE 1537+I,ASC(IMIE$(I)):NEXT I:FOR I=%1 TO GRM:POKE 1587+I,ATAK(I,I):T$=STR$(BANK(I)):FOR A=%1 TO LEN(T$):POKE 1592+(I*L10-L10)+A,ASC(T$(A)):NEXT A:NEXT I:RUN "D:O"
6111 ? :? "DISC ERROR!":EXEC FIR:GOTO 6110

Ot taka mała niekonsekwencja ;-). Oczywiście szybko poprawiłem wersję angielską i po zmianie wygląda już normalnie:

6110 POKE 16,192:I=USR($065F):POKE 1536,GRM:POKE 1537,%0:FOR I=%1 TO 50:POKE 1537+I,ASC(IMIE$(I)):NEXT I:FOR I=%1 TO GRM:POKE 1587+I,ATAK(I,I):T$=STR$(BANK(I)):FOR A=%1 TO LEN(T$):POKE 1592+(I*L10-L10)+A,ASC(T$(A)):NEXT A:NEXT I
6111 TRAP 6112:RUN "D:O"
6112 ? :? "Disc error!":? :EXEC FIR:GOTO 6111

Przypomnę, że chodzi o fakt niepotrzebnego włączenia przerwania przy poprzedniej wersji, które powinno być juz na stałe wyłączone, a mogłoby zakłócić komunikację ze stacją dysków - ludziki mają zainstalowane różne systemy w swoich atarkach i lepiej być ostrożnym.

Ucieszony poprawkami chciałem wziąć się za kolonizację Vvp-12 (...), ale po głowie chodziła mi jeszcze jedna myśl. Jakoś nie dawała mi spokoju. Nie wiedziałem, co jest grane, ale coś jeszcze nie było tak! Intuicja? Może. Jeszcze raz rzuciłem okiem na powyższe linie kodu. I co? I mam! Jeszcze jeden błąd. Zwróćcie uwagę na linię 6110 i instrukcję POKE 1537,%0. W każdej wersji językowej jest ta instrukcja. Taka sama i ma taki sam parametr - %0. To źle! W tej komórce przekazywana jest do outra wersja językowa gry. 0 to UK, 1 PL, 2 CZ, dla DE miało być 3. A tu klops. Każda wersja przekazuje zero. Outro rozpozna tylko wersję UK i nie wyświetli poprawnie znaków języka czeskiego lub polskiego, które mogą być w imionach graczy.

Adam nie znał znaczenia tej komórki i zapwne dlatego skopiował linię 6110 bez żadnych zmian do kodu gry PL i CZ. Wprowadziłem wymagane zmiany. Przy okazji usunąłem z outra instrukcje, które rozpoznawały wersję DE i zastąpiłem je uniwersalną procedurą, która potrafi rozpoznać dowolną inną wersję językową, która może powstać w przyszłości. Kilka przeprowadzonych testów upewniły mnie, że zmiany działają prawidłowo. Teraz już mogę wziąć się za kolonizację Vvp-12..."




Pozostają sprawy publikacji gry, które oczywiście też zajmą trochę czasu. Ustaliliśmy, że warto wspierać wszystkie osoby, które chcą się zajmować wydawaniem gier na Atari. A skoro Arek "Nosty" Staworzyński ma już bogate plany wydawnicze i zajęty jest ich realizacją, skierowaliśmy się do "konkurencji", by i ona mogła coś wydać. W rzeczywistości żadnej konkurencji nie ma, bo nie ma normalnego rynku, wciąż gry na Atari to bardzo, bardzo niszowa sprawa. Ale miło pomyśleć, że w Polsce będziemy mieli dwie "firmy" wydające gry (dwa razy więcej niż wydawców gier na Atari na świecie he he). Drugą będzie SikorSoft czyli Paweł "Sikor" Sikorski. Gra będzie dostępna w postaci gołych plików atr - za darmo, oraz w wersji kolekcjonerskiej - już nie za darmo. O szczegółach będę informował później, na razie tyle wieści.

PS. Jak Wam się podoba nowe logo Sikora, które zaproponowałem właśnie przy tej grze? ;)
larek 2009-05-01 18:38:14

O, to już tak oficjalnie?! :)

Heh, bardzo podoba mi się w przytoczonym kodzie linia 6110. Jej długość to 6 (sześć)! linii w edytorze Atari! To właśnie Urborg opatentował metodę wprowadzania tak długich linijek, których w normalny sposób nie da się edytować! :) Dzięki temu Kolony2106 mogło zostać tak bardzo rozbudowane!

MDW 2009-05-01 19:34:16

larek:
A jaka to metoda do wpisywania linii dłuższych niż normalnie? Jest coś oprócz przesunięcia marginesu do zera (jeśli dobrze pamiętam to POKE 82,0) i pisania basicowymi skrótami?

Kolony bardzo mnie cieszy. Jest to jedna z nielicznych gier w jakie naprawdę ostro i długo grałem.

StreaK 2009-05-01 20:27:53

Czy ktoś z autorów ma przygotowany i rozpisany schemat interface'u oraz działania proga. Chetnie zrobilbym porcik/remake tej gry na OpenPandorę w SDL'u.

urborg 2009-05-01 20:49:51

MDW w sumie opis tej metody to dobry temat na nowy artykuł. Może takowy napiszę :-)

Asal_ 2009-05-01 21:15:08

Kaz, popraw jeszcze "Disc" na "Disk".

Kaz 2009-05-01 21:21:08

StreaK - nikt z autorow nie ma rozrysowanego schematu interfejsu ani procedur. To szlo na kompletnego zywca :).

Urborg - i to jest mysl!

Asal - a czemu? Uzylismy brytyjskiego angielskiego, a nie amerykanskiego ;)

Asal_ 2009-05-01 21:31:18

Kaz: nie znam się tak dobrze, ale widzę parę błędów językowych na zrzutach ekranu. Na przykład: "Food on 9 months". Przecież tak się nie mówi. Albo: "Power plant malfunction". Też źle.

Kaz 2009-05-01 21:52:11

1. Tlumaczenie zrobil co prawda amator, a nie profesjonalny tlumacz, ale calosc zostala potem sprawdzona i poprawiona przez rodowitego Brytyjczyka. Oczywiscie niewykluczone, ze jakies bledy zostaly. Ale na pewno nie nalezy do nich "disc".

2. Niektore wyrazenia sa mocnym kompromisem - glownie ze wzgledu na ograniczenia pamieci i rozmiarow okienek na ekranie.

Asal_ 2009-05-02 08:35:02

No to może by chociaż napisać: "Food for 9 months" zamiast "Food on 9 months". Zamiast "1 generators were damaged" proponowałbym: "Generators damaged: 1".

Kaz 2009-05-02 11:27:28

Urborg czyta komentarze :).

zilq 2009-05-02 14:18:16

oj, ciupało się w stare Kolony godzinami za starych dobrych czasów... heh
Cieszę, że tak blisko wydania nowej wersji. Zapowiada się obiecująco.
Może się skuszę na jakieś oryginalne wydanie (jak będzie)

urborg 2009-05-02 20:39:24

Asal muszę niestety zapytać, jaka jest Twoja znajomość Angielskiego. Czy jesteś w 100% pewny, że native speaker który robił nam tłumaczenie pomylił się i zamiast "Food on x months" powinno być "Food for x months". Jaką kasę jesteś gotów na to postawić? ;)

Asal_ 2009-05-02 22:02:38

urborg: Żadnej kasy nie będę stawiał ani się zakładał, chciałem jedynie pomóc. W tym roku będę zdawał egzamin CPE, ale z native speakerem nie mogę konkurować. Jestem jednak pewien, że chyba parę rzeczy przeoczył.

Znalazłem na przykład takie dwie strony w internecie:

http://www.bbc.co.uk/ww2peopleswar/stories/32/a5548232.shtml
http://cookingwithamy.blogspot.com/2005/08/be-rachael-ray-for-day-dine-dish-4.html

I w tych tekstach użyte są wyrażenia "to have food for one day".
Zresztą wystarczy poszukać w Google'ach - jest to częste wyrażenie.

Moim zdaniem warto byłoby przynajmniej ten błąd poprawić, gra będzie bardziej profesjonalna.

grzybson 2009-05-02 23:08:35

Wprawdzie ja mam tylko maturę z angielskiego zdaną, ale zgadzam się z asalem - "Food on x months" brzmi co najmniej dziwnie i przychylałbym się wersji z "for".
Swoją opinię opieram na lekturze haseł "on" i "for" w słowniku Oxford Wordpower.

urborg 2009-05-03 06:36:30

Dzięki Asal. Może nasz native faktycznie się pomylił. Trzeba będzie chyba obadać sprawę. W pierwszym tłumaczeniu robionym przez amatorów w tym przeze mnie (poziom FCE) było "FOR". Tyle że potem nasz native speaker poprawił to na "ON".

Pepax 2009-05-06 15:02:56

Hi guys!
I'm looking forward to playing this promising game, regardless of the language used. :-)
I also have to say that I agree with Asal_, he's made some valid points. "Food on x months" sounds to me like a literal translation from some Slavic language. :-D And by writing "Generators damaged: x" you can elegantly avoid having a single number of a noun in plural, just like in the original wording.
I'd say don't trust the native speakers, but it might be mistakenly understood as a criticism of someone in particular, whilst I mean it in general. :-D Keep in mind that native speakers often don't care about grammar, as they don't really need to do so, unlike we foreigners. ;-) And last but not least, it's so easy to overlook a mistake... Soooo, don't trust anyone! :-D

Kaz 2009-05-06 18:32:11

Pepax - true, we just think that our native speaker misunderstood some points. The best way is to figure it out with him. I don't belive he didn't care about grammar :). I also exclude that mistake was overlooked... our translator changed these words himself.

Pepax 2009-05-07 09:44:36

Ah, OK, I missed that piece of information. I'm just suspicious by default as I've met quite a few native speakers at one point of time and they did have some problems with grammar, they even said I probably knew more about English grammar than they did, hehe. I was quite surprised, that's for sure. But then, I was the one who could hardly SPEAK English. ;-)

Pepax 2009-05-07 09:47:09

And when I say "Don't trust anyone" I include myself, too. ;-)

Ted 2009-05-28 09:13:07

witam, kiedy konkretnie możemy spodziewać się premiery Kolony 2106 na stronie? pozdr