Autor Wątek: Comander Keen na githubie!  (Przeczytany 2636 razy)

Offline jelcynek

  • Użytkownik

  • +1
# Wrzesień 22, 2014, 20:21:56
No to mam co czytać do poduszki. Gra mojego dzieciństwa obnażona.

https://github.com/keendreams/keen

enjoy

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Lobsang Rampa

  • Użytkownik
    • Global Epidemic

  • +2
# Wrzesień 22, 2014, 21:01:51
Rzut oka na pierwszy plik z brzegu:

*((long *)&(scoreobj->temp1)) = -1;
jak dla mnie trochę ciężkawy ten kod :P , to już te wstawki assemblerowe sa przyjemniejsze w analizie :D




Offline koirat

  • Użytkownik

# Wrzesień 22, 2014, 21:24:33
Kod jest lipny, choć dość schludnie napisany.
Czy w tamtych czasach pliki konfiguracyjne były nieznane i wszystkie stałe liczbowe trzeba było na żywca wpisać do źródła ?

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

  • +2
# Wrzesień 22, 2014, 21:38:30
Kod jest lipny, choć dość schludnie napisany.
Gra została wydana, zarobiła i stała się popularna - więc ja bym powiedział, że kod spełnił swoje zadanie perfekcyjnie.

Offline koirat

  • Użytkownik

# Wrzesień 22, 2014, 21:50:39
A jak by gra została wydana, zarobiła, stała się popularna a znaczną część źródła można by wykorzystać do tworzenia następnej to jak byś powiedział ?
Bo ja to bym właśnie nazwał perfekcyjnie.

Pobieżny rzut okiem na te źródła podpowiada mi że niewiele już z tym się zrobić dało.

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Wrzesień 22, 2014, 22:15:39
A jak by gra została wydana, zarobiła, stała się popularna a znaczną część źródła można by wykorzystać do tworzenia następnej to jak byś powiedział ?
Bo ja to bym właśnie nazwał perfekcyjnie.
Powiadasz? To powiedz mi może jeszcze przy produkcji której z następnych gier Id Software mogło by wykorzystać tą znaczną część źródła? ;) Wolfenstein, Doom, Quake, czy może Rage? ;)

Offline Lobsang Rampa

  • Użytkownik
    • Global Epidemic

# Wrzesień 22, 2014, 22:28:20
Powiadasz? To powiedz mi może jeszcze przy produkcji której z następnych gier Id Software mogło by wykorzystać tą znaczną część źródła? ;) Wolfenstein, Doom, Quake, czy może Rage? ;)
Wikipedia mi podpowiada, że Commander Keen to seria 7 następujących po sobie gier.
EDIT: I pewnie dlatego Carmack w pewnym momencie już miał dość tej gry i zapragnął stworzyć coś nowego odmieniając przy tym branżę :)

Btw. Oprócz Carmacka ktoś jeszcze pisał ten kod ?
« Ostatnia zmiana: Wrzesień 22, 2014, 22:33:30 wysłana przez Lobsang Rampa »

Offline ArekBal

  • Użytkownik

# Wrzesień 23, 2014, 04:53:02
Ja tam tego kodu tak krytycznie bym nie komentował

Cytuj
*((long *)&(scoreobj->temp1)) = -1;

Pełna linia to
Cytuj
*((long *)&(scoreobj->temp1)) = -1;   // force score to be updated

Z resztą za każdym razem w tym pliku gdy widzę te "tempX" to komentarz się pojawia.

Obstawiam że nazwane temp1, 2, 3 bo może przechowywać różne wartości... raz to, raz tamto. Mogło by być unią wtedy?

Oczywiście mogło tu być makro upiększające rzutowanko... ale czy naprawdę musiało? Kod i bez komentarza robi dokładnie to.. a że składnia nie najpiękniejsza jest... no tutaj bym się skarżył na język. Chociaż to raczej kwestia tego że wykorzystujemy pole zdefiniowane jako wskaźnik do przechowywania konkretnej wartości. Coś co język "odradza" ale unią by to przełknął.

EDIT: Chociaż imo jeden bool więcej by raczej nikogo nie zbawił... chociaż nie wiem na jakie urządzonko to deployowane było

Dalej... zamiast -1 mogło być jakieś #define INVALID -1 ale czy znowu naprawdę musiało? Co by to poprawiło w tym przypadku. -1 to takie uniwersalne INVALID. A i tak to nie enum i intellisense ci nie podpowie tej alternatywy.

Dużo "sztywnego" kodu napisanego na raz ale za to dość lokalny więc "konfiguracja" się odbywa w kodzie.
« Ostatnia zmiana: Wrzesień 23, 2014, 04:57:28 wysłana przez ArekBal »

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Wrzesień 23, 2014, 10:42:03
Cytuj
EDIT: Chociaż imo jeden bool więcej by raczej nikogo nie zbawił... chociaż nie wiem na jakie urządzonko to deployowane było
SYSTEM REQUIREMENTS
    XT Computer (286 or higher recommended)
    565k of conventional memory
    1 meg of Hard Drive Space (for shareware)
    3 meg of Hard Drive Space (for registered)
286 jako sprzęt hi-endowy. :)
Myślę że u większości z nas pierwszy napisany Pong miał duuużo większe wymagania. ;)

Cytuj
intellisense ci nie podpowie tej alternatywy.
Że co proszę? :)