26

Też mam wrażenie, że czcionka 1px na CRT (szczególnie 14" i mniej) to trochę za mało. Ja jestem człowiek starej daty i powoli zaczynam mieć problemy ze wzrokiem. No, ale mogło być gorzej, przynajmniej nie dostaję szału przy fontach :P

27 Ostatnio edytowany przez Pecus (2022-07-08 10:59:24)

Panowie (i Panie)!

Jako, że powstaje "wewnętrzny dokument" opisujący zasady działania broni, energii, kasy i punktacji , a widać że gracze nie zawsze zdają sobie sprawę jak to działa (a pewnie chcieli by :) ).
Postanowiłem opublikować tutaj to co zebrałem.

"Dokument" to może za duże słowo, raczej luźne notatki, zawierające także jakieś uwagi dla nas (autorów).
Ale lepiej się gra, jak wie się co od czego w grze zależy :)

---------------------

Najpierw co wiemy:
- Czołgi mają energię (a Ogry warstwy - jak cebula) - na starcie 99 jednostek
- Energii czołgom ubywa na 3 sposoby:
1. 1 jednostka po oddaniu każdego strzału
2. w czasie spadania (jeden piksel w dół 2 jednostki)
3. w chwili trafienia w czołg lub obok niego jakiegoś pocisku - i tu ilość odejmowanej energii zależy od odległości od centrum eksplozji i typu/siły rażenia pocisku.

A teraz bronie defensywne:
- White Flag - powoduje poddanie gracza (może czasem przydać się w sytuacji beznadziejnej). Zaletą jest to, że poddając się nie dajemy dużego punktu przeciwnikom i nie powodujemy, że któryś zyska na tym, że nas zgładzi, ograniczamy też stratę swojej energii czyli także kasy. I tu także ważna uwaga - to jedyna broń defensywna, którą można deaktywować. Wystarczy ponownie wejść do inventory i jeszcze raz wybrać jej aktywację.
- Battery - w momencie aktywacji doładowuje energię czołgu do pełna (99 jednostek) i jednocześnie jest to jedyna broń defensywna, która nie deaktywuje innych broni defensywnych w przypadku jej użycia.
- Parachute - nie chroni przed ubytkiem energii z powodu sąsiedniej eksplozji, powoduje że nie ubywa energii w czasie JEDNEGO spadania. Po takim upadku deaktywuje się i trzeba aktywować nowy spadochron.
- Shield - najprostsza osłona działa dokładnie przeciwnie niż Parachute, nie chroni przed ubytkiem energii w czasie spadania, chroni za to przed ubytkiem energii spowodowanym JEDNĄ sąsiednią eksplozją. Chroni jednorazowo, bez znaczenia jak silna jest eksplozja (czy jest to tylko "draśnięcie", czy też bezpośrednie trafienie atomówką) i od razu po niej deaktywuje się.
- Heavy Shield - osłona z własną energią (na starcie 99 jednostek), działa tak samo jak Shield (nie chroni przed upadkiem) z tym wyjątkiem, że ma własny zasób energii. Przy eksplozji w pierwszej kolejności zmniejszana jest energia tej osłony i jeśli dojdzie ona do 0 to osłona deaktywuje się i dalej zmniejszana jest energia czołgu. W związku z takim działaniem, czołg z tym typem osłony można "zabić" podkopując go, bo spadanie zmniejsza energię czołgu a nie osłony.
- Force Shield - najmocniejsza osłona - działa tak jak Heavy Shield tyle że połączona z Parachute. Co ważne w jej przypadku upadek nie zabiera energii osłonie ani czołgowi. Zabierają ją tylko trafienia.
- Auto Defense - broń agresywna :) . Działa następująco. W przypadku bezpośredniego trafienia w czołg (i osłonę) powoduje "odbicie" pocisku w przeciwnym kierunku z tą samą siłą z jaką był wystrzelony. W przypadku braku wiatru i różnicy poziomów broń trafia wtedy w czołg, który ją wystrzelił. Po takim odbiciu deaktywuje się. W związku z tym, że broń ta reaguje w ten sposób tylko na precyzyjne trafienia, jest także osłoną odpowiadającą działaniu Heavy Shield i ma na starcie 99 jednostek (prawdopodobnie trzeba będzie przemyśleć tę wartość i dać tu mniejszą).
- Mag Deflector - druga broń agresywna :) . W przypadku bezpośredniego trafienia w czołg (i osłonę) powoduje przesunięcie punktu trafienia losowo w lewo lub prawą stronę chronionego czołgu, ale niezbyt daleko, więc można dostać "odłamkiem" przy silniejszej broni. Tak jak w przypadku Auto Defence jest także osłoną odpowiadającą działaniu Heavy Shield i ma na starcie 99 jednostek (prawdopodobnie i tutaj trzeba będzie przemyśleć tę wartość i dać mniejszą).
- Nuclear Winter - nic nie dodaje, nic nie zabiera :) - w zasadzie to broń nie tyle defensywna co obosieczna. Zasypuje teren opadem "radioaktywnym", który jest zwyczajną glebą. Jeśli nie mamy pod ręką żadnej broni odkopującej teren i do tego osłony (najlepiej jednorazowej), to po takim "opadzie" będzie trzeba strzelić do siebie - bo będąc pod ziemią inaczej się nie da. Ewentualnie pozostaje zawsze White Flag.

W związku z odmiennym działaniem broni MIRV, Auto Defense i Mag Deflector wykorzystują tylko funkcję osłony przy trafieniu tą bronią.

Dodatkowo, żadna z osłon nie chroni przed Napalmem. Auto Defense czy Mag Deflector przy bezpośrednim trafieniu odbije je lub przeniesie obok, ale wystarczy trafić bardzo blisko czołgu i nie zadziała jego osłona.

Bronie White Flag i Nuclear Winter po aktywacji wymagają uruchomienia, jest to realizowanie przez "oddanie strzału" po aktywacji tej broni. Oczywiście strzał bronią ofensywną nie jest wtedy oddawany, a jedynie uruchamiana jest wybrana broń defensywna.

Można mieć aktywną tylko jedną broń defensywną w danej chwili. Oczywiście możemy przed oddaniem strzału zmienić decyzję i aktywować inną broni defensywną czy też dezaktywować White Flag.
Oczywiście aktywacja broni w momencie kiedy mamy już aktywowaną jakąś inną powoduje utratę tej poprzedniej (nie ma zwrotów :) ).

Być może trzeba będzie dopasować bardziej nazwy do sposobu działania tych broni, bo teraz... :)



Jak działa odejmowanie energii (i zarabianie kasy!)

Po każdej rundzie wyliczana jest ilość zdobytych/straconych pieniędzy robione jest to na podstawie dwóch zmiennych gromadzonych przez każdy z czołgów w trakcie rundy. Te zmienne to:
gain - energia "przechwycona" od trafionych czołgów (także jeśli trafimy w samego siebie :) i tu haczyk, jeśli pozostało nam bardzo mało energii opłacalne może być trafienie w siebie mocną bronią!
loose - energia stracona w wyniku eksplozji/upadku (i tu ważne liczona jest całkowita utrata energii nawet jeśli czołg ma w chwili trafienia mniej).

Konkretnie

Po każdej rundzie:
money = money + (2 * gain)
money = money - loose
if money <0 then money=0

(na starcie każdej rundy gain i loose mają wartość 0)


W czasie rundy, jeśli w wyniku strzału oddanego przez czołg inny czołg zostanie trafiony, czołg oddający strzał "dostaje energię" zabraną czołgowi trafionemu.
czołg oddający strzał:
gain = gain + EnergyDecrease
czołg trafiony:
loose = loose + EnergyDecrease

gdzie EnergyDecrease to utrata energii w wyniku trafienia.

Oczywiście jednocześnie trafiony czołg traci ilość energii zapisaną w EnergyDecrease, z tym że tutaj strata nie może przekroczyć posiadanej energii.

Jak działa trafienie.
Każda broń, która skutkuje eksplozją, ma swój promień rażenia (ExplosionRadius).
Po eksplozji każdy czołg w jej zasięgu traci energię.
Działa to tak, że obliczana jest odległość trafianego czołgu od centrum eksplozji, zmniejszony o tę odległość ExplosionRadius jest mnożony przez 8 i w wyniku otrzymujemy EnergyDecrease.
Czyli w przypadku trafienia centralnie w czołg:
EnergyDecrease = ExplosionRadius * 8
a z każdym pikselem dalej od centrum ubywa o 8 jednostek mniej.
Nie wiem czy to zrozumiałe - ja rozumiem :)

A oto wartości promienia rażenia (ExplosionRadius) dla poszczególnych broni:
Baby Missile - 11
Missile - 17
Baby Nuke - 25
Nuke - 31
LeapFrog - 17 15 13
Funky Bomb - 21 11 (* 5)
MIRV - 17 (* 5)
Death's Head - 31 (* 5)
Napalm - x 40 (ta broń jest inna i nie jest wyznaczana odległość od centrum, po prostu każdy czołg znajdujący się w zasięgu płomieni traci 40 jednostek energii - zmienna ExplosionRadius nie jest używana)
Hot Napalm - x 80 (zasada taka jak w Napalm)
Baby Roller - 11
Roller - 21
Heavy Roller - 31
Riot Charge - 31
Riot Blast - 0 (tak na prawdę - 61 ale przy tych broniach nie jest brana pod uwagę przy liczeniu ubytku energii tylko szerokości gruntu do opadnięcia)
Riot Bomb - 17
Heavy Riot Bomb - 29
Baby Digger - 0 (60 - jak w Riot Blast)
Digger - 0 (60 - jak wyżej)
Heavy Digger - 0 (60 - jak wyżej)
Baby Sandhog - 0 (60 - jak wyżej)
Sandhog - 0 (60 - jak wyżej)
Heavy Sandhog - 0 (60 - jak wyżej)
Dirt Clod - 12
Dirt Ball - 22
Ton of Dirt - 31
Liquid Dirt - 0 (może warto to zmienić?)
Dirt Charge - 0 (61 - jak w Riot Blast)
Laser - x 100 (ale tu także jest inaczej - równo 100 tylko w przypadku bezpośredniego trafienia, zmienna ExplosionRadius nie jest używana, więc nie ma mnożenia przez 8 - po prostu odejmujemy 100 jednostek energii - czyli czołg zawsze ginie).


Duże punkty otrzymane przez gracza to ilość czołgów, które zginęły wcześniej niż on. Jeśli któryś z innych czołgów skapitulował wcześniej (Biała Flaga) nie jest doliczany do tych które zginęły i nie daje punktów.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

28 Ostatnio edytowany przez Pecus (2022-07-15 10:16:19)

I jest nowy Build 147 (LOST Build) - https://github.com/pkali/scorch_src/releases/tag/147

A w nim nowe bronie:
- Napalm i Hot Napalm (opisane już powyżej) - broniom tym nie straszne osłony.
- poprawiony statusbar w czasie rozgrywki - już nie pokazuje informacji o działaniach czołgów komputerowych z opóźnieniem.
- trochę różnistych optymalizacji i poprawek w zasięgach broni ("dokument" powyżej już ma zaktualizowane zasięgi).
- Heavy i Force Shields mają teraz minimalnie inny kształt
- przywrócony sposób wyświetlania kąta na statusbarze (i trochę poprawiony)
- brak ładowania na stronę zerową (powinno działać z dowolnymi loaderami)
- nazwa aktywnego gracza pojawia się nad czołgiem w czasie przygotowania do strzału
- możliwość wyboru wysokości/kształtu gór w głównym menu
- zmiana kąta przyspiesza przy dłuższym przytrzymaniu klawisza/joysticka (tak jak już wcześniej było ze zmianą siły strzału).

Brać, wybierać, grać, testować.....

Ja pograłem w weekend z 3 przeciwnikami komputerowymi (wszyscy powyżej Morona), przy najwyższych górach i średniej ilości dostępnej na początku gotówki (chyba 2K ) i .... było ciężko. Choć w końcu wygrałem, ale trzeba było planować, oszczędzać na defensywę itp.

P.-S. Już wiem dlaczego tak trudno było mi wygrać (no może nie tylko dlatego :) ), otóż w tym buildzie Poolshark i Tosser "oszukują na defensywach" :) , jak już raz jedną kupią i użyją, to się im nigdy nie kończy jej zasób - nie muszą już kupować. Poprawiono w developie

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

29 Ostatnio edytowany przez Pecus (2023-04-24 08:08:39)

Panowie (i Panie)!

Otóż zakończyliśmy pewien etap życia :)
Scorcha w wersji nieusieciowionej uważamy za projekt zakończony.
Więcej nie będzie/nie potrzeba/nie mieści się :)

I jest on tu:
https://github.com/pkali/scorch_src/releases/tag/v1.28

Działa na każdym komputerze atari 8bit z minimum 48kb RAM oraz na konsoli atari 5200.

Smacznego.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

30

Dzięki Panowie! Wasza konwersja jest doskonała i wagą wydarzenia nie ustępuje ani trochę np. Prince of Persia.

31

Fajna nazwa wydania. :D

Gra, w którą kiedyś zagrywałem się na PC. Nie myślałem, że na 8 bitach da się zrobić tak świetną wersję. Zdecydowanie wyląduje w ulubionych.

Gratulacje za osiągnięty rezultat i ogromne podziękowania za masę pracy włożonej w to cudo.

32 Ostatnio edytowany przez Pecus (2023-04-26 16:54:04)

Proszę nam tu nie kadzić, bo się zaczerwienimy :)

A było to tak...
Dawno, dawno temu w czasach panowania MAC65 (a w niektórych kręgach QuickAssemblera - tfu.) pomyśleliśmy z Pirxem, że może warto byłoby jakąś grę napisać wspólnie.
Jako, że wszystkie pomysły były już zajęte/zrobione stanęło na tym, że może łatwo da się zaimplementować Scorched Eartch z PC.

Usiedliśmy i w kilka wieczorów (nocki zarwane w ciągach programistycznych :) ) mieliśmy działający szkielet i zarys koncepcji.
Między innymi to, żeby pisać maksymalnie "systemowo" bez tricków, tak by kod był przenoszalny łatwo na inne maszyny z 6502.
Nie do końca się to (wtedy) udało.

No ale okazało się też, że to nie jest takie łatwe. Gra może i wygląda prosto, ale zaprogramowanie tej prostoty było na tyle skomplikowane, że pomysł jakby zaczął się rozłazić... :) - łatwy to jest taki Boulder Dash czy Robbo (do zaprogramowania) gdzie jest kilka powtarzalnych mechanik i proste zasady, a poziom gry ustalany jest przez budowanie coraz bardziej skomplikowanych układów z kilku elementów.

No dobrze, nie wiem, nie napisałem takiej gry, ale robiłem podobne wprawki w BASICu :)

A potem.... życie, był jakiś zryw po którymś SV.

Ale jak teraz Pirx zaczął powoli dłubać, musiałem się włączyć - bo, skubany, całą śmietankę by spił :)

No ale przechodząc do "ad remu", chciałem napisać, że nie traktujemy tego jako jakiegoś wielkiego dzieła. Po prostu udało się skończyć coś zaczęte lata temu. Przy okazji zobaczyć jak dziwnie pisaliśmy wtedy (czy źle czy dobrze - nie oceniam :) - na pewno inaczej) i jak chwilami nierealne były założenia.
To wszystko przez KAZa, Adama, TDCa (tak tak, ile się nasłuchaliśmy, że nie skończyliśmy naszej gry) i parę innych osób naciskających by coś z tym zrobić - bo tak ładnie się zaczęło.
Robimy to dla siebie, żeby sobie udowodnić, że coś tam jeszcze umiemy :) *

A że dało nam to sporo radochy (głównie przy poprawianiu kolejnych błędów) jest też nie to przecenienia.

W sumie wyszło całkiem nieźle :)



P.S. Znalazłem wczoraj błąd, tak rzadki, że sam się dziwię jak go znalazłem. Poprawiłem w developie, a Pirx podmieni dziś pliki - bo nowego release nie będzie!!!

P.-P.S. Jak ktoś lubi czytać o błędach (ja uwielbiam, bo poprawianie ich jest najciekawszą częścią programowania - pod warunkiem, że to hobby a nie praca :P ), to proszę: Błąd polegał na tym, że jeśli gracz użył Lasera a następujący po nim gracz użył z defensyw Lazy Boy lub Lazy Darwin, to bronie te źle celowały i nie trafiały nigdy :) . Co ważne to samo dotyczyło celowania przez AI Choosera, Spoilera i Cyborga (bo to ta sama procedura robi :) ), czyli jeśli gracz odpalił Laser, to bezpośrednio po nim strzelający jeden z tych przeciwników zawsze pudłował :)
A wynika to z tego, że Laser jest (prawie) zwykłym strzałem bez grawitacji i wiatru, po odpaleniu nie zerował odpowiedniej flagi i do następnego strzału (bo strzał tę flagę zerował jak trzeba) nie było wiatru i grawitacji. Celowanie jednak jest przed strzałem czyli nie uwzględniało wiatru i grawitacji :)

*)  No i także po to by pokazać TeDeCowi, że te jego popierdułki w Action! są do d. :P

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

33

Dodam, że grę też udało się ukończyć dzięki mnie, bo kiedyś na SV rozmawiałem z Pirxem i wygłosiłem motywujące: "k****, dokończcie to!".

I jeszcze na zachętę kupiłem Microprinta.

34

PS. Tego dnia przekląłem normalnie, a nie z gwiazdkami.

35

Było to bardzo dla nas ważne k°°°° .
Dziękujemy Ci za nie bardzo (serio :) ).
Też chcesz do creditsow? Bo ostatnio tłumy walą :)

W każdym razie chałwa Ci za to!

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

36

Nie chcę, zostawmy miejsce dla tych, którzy jeszcze nie mają wystarczającej rozpoznawalności na scenie :D

37 Ostatnio edytowany przez grzybson (2023-04-27 09:57:27)

TDCa (tak tak, ile się nasłuchaliśmy, że nie skończyliśmy naszej gry)

Przyganiał kocioł garnkowi xD
Any way, gratulacje, wielkie ukłony i po południu giera wleci na CFkę :D

grzybson/SSG^NG

38 Ostatnio edytowany przez Pecus (2023-05-04 08:00:30)

No kurde. Przepraszam! :)

Męczył mnie jeszcze jeden drobiazg, ale jakoś ciągle zapominałem, a finalnie zabrakło mi 11b pamięci :)
Ale jakoś zebrałem się w sobie, zrobiłem pare optymalizacji kodu i urwałem te kilka potrzebnych bajtów.

Nie będzie nowego release, bo to taki maleńki drobiazg. Podmieniłem pliki wykonywalne tutaj: https://github.com/pkali/scorch_src/releases/tag/v1.28

W pasku statusu gracza jeśli gra człowiek mamy symbol Joysticka i numer portu, a jeśli gra komputer to teraz jest tam symbol komputera i liczba oznaczająca poziom trudności (1-moron ... 8-unknown).

Testując zawsze musiałem pamiętać jakiego przeciwnika ustawiłem na którym graczu, a teraz nie muszę :) - co prawda nie ma już co testować, no ale....

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

39

Chciałbym kupić to na cartridge, bo gra jest niesamowicie dopracowana i moim zdaniem już dawno przebiła pecetową wersję, w którą zagrywałem się za dzieciaka.

Gdzie mogę ją zamówić?

40

Dopisz się tutaj: http://www.atari.org.pl/forum/viewtopic.php?id=19361

My tylko piszemy wydaje Mq :)

P.-S. Kończymy na v.1.38 jest na GitHubie w gałęzi develop.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

41

Panowie i Panie.

Właśnie wczoraj, po wielu godzinach prac nad optymalizacją kodu (wczoraj trwała walka o zyskanie 17bajtów i było bardzo trudno :) ), udało mi się przywrócić wszystkie teksty, które usunąłem wcześniej by zrobić miejsce na poprawki i nowe funkcjonalności.

A skoro to było takie ciężkie, to oznacza, że kod jest tak zoptymalizowany, że Ho Ho :)

Gra cały czas mieści się w 32kB (co do bajtu w tej chwili), ale nie ma już miejsca na nic ponad to, co jest zrobione.

Biorąc pod uwagę, że w między czasie doszło parę ciekawych funkcjonalności (np. możliwość wyłączenia podłogi - czołgi podkopane do końca znikają w nicości) oraz trochę efektów i poprawek, postanowiłem Was i tutaj o tym poinformować.
Chyba już nie mam siły na dalszą optymalizację po to by realizować coraz dziwniejsze pomysły :)

Tak więc v. 1.43 dla dowolnego Atari 8bit z minimum 48kB RAM, Atari 5200 i eksperymentalna dla C64 :) jest tutaj: https://github.com/pkali/scorch_src/tree/develop

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.