[#31] Re: automaty skończone

@selur, post #28

Magazyn, Selur, Magazyn.
[#32] Re: automaty skończone

@Don_Adan, post #31

No niby troche powstalo tych gier... C Code games
ale czy to duzo produkcji, na tak popularny jezyk ?

Moim zdaniem nie... oczywiscie portow nie wliczam, bo i tak malo kto w nie mogl zagrac ze wzgledu na wymagania.
[#33] Re: automaty skończone

@selur, post #32

lista niepełna, na pewno Clue czy Dune2 jest w C a nie ma go na liście.

Ostatnia aktualizacja: 30.11.2022 01:12:27 przez michal_zukowski
[#34] Re: automaty skończone

@michal_zukowski, post #33

no ale czy na pewno Dune 2 jest w wiekszosci w C ?
bo jak to bylo napisane na zasadzie takiej jak Skidmarks w Blitz Basicu (czyli 10% Blitza i 90% asemblera), to to zadne osiagniecie (spod Amosa tez pewnie da sie odpalic gre napisana w asemblerze).
[#35] Re: automaty skończone

@selur, post #34

Raczej jest, jak wyszły źródła C&C to dużo jest plików gdzie historia wskazuje na rok 1991
np. https://github.com/electronicarts/CnC_Remastered_Collection/blob/master/TIBERIANDAWN/ANIM.CPP
z tym, że pewnie wpierw było w C a potem przepisali na cpp.
[#36] Re: automaty skończone

@Lucus, post #10

Och ten Amos, co za wspaniałe narzędzie / język, ale według mnie tylko do prototypowania. Właśnie po to by bardzo szybko zobaczyć / przekonać się czy produkcja ma potencjał. To że w Amosie bardzo szybko widzimy efekt, to oznacza że wiele rzeczy jest ukrytych przed programistą. I dopiero zdajemy sobie sprawę z tego jak piszemy w innych językach. Nawet ten przykład który napisałeś jest średnio zrozumiały dla czytającego a przecież kod więcej razy czytamy niż piszemy (przynajmniej ja). Po kiego diabła robisz curs off i flash off. To chyba powinno być off na starcie.

Według mnie Amos średnio nadaję się do większych projektach ze względu na małą czytelność kodu. Brak struktur powoduje, że piszemy w komentarzach co dana wartość w DATA oznacza, o ile to napiszemy. Z lenistwa raczej napiszemy gdzie nam się przypomniało albo wcale (patrz źródła do gry Legion).

Powracając do tego przykładu to z tego co pamiętam jest na aminecie narzędzie przekształcające kod Amosa na kod w C. Oczywiście ze Screen Open robi się funkcja, którą sami musimy ogarnąć. Pomijam że przy większych projektach zwyczajnie nie daję rady.
1
[#37] Re: automaty skończone

@asman, post #36

100% racji i zgadzam się ze wszystkim co napisałeś. Amos tak naprawdę nie zmienił się od 1992, wszystko co było koło niego robione to tylko łatanie błędów... i to tych prostszych.
Komentować linii Data się w Amosie nawet nie da bo się zawiesi, zresztą chyba nawet jest ograniczenie do około 4000 elementów a może to jest kolejny błąd.
Głupotki typu chowanie kursora, czy wyłączenie migotania ekranu naprawdę wołają o pomstę do nieba.

Ale na jego korzyść przemawia to że dużo ludzi z niego korzysta lub korzystała. Żaden Basic na Amidze nie ma tylu rozszerzeń co Amos i tak bogatej literatury. Sama składnia też jest łatwa do zapamiętania... no i jest fajny HELP z przykładami. Czego chcieć więcej żeby zanurzyć się w świat multimediów... Ci co znają assembler bez problemu łączyli go z Amosem. Najlepszy przykład to użycie Amos'a jako kleju do stworzenia dema Dim od Mellow Chips'ów.

Prawda jest jednak taka, że Amos sssie i uczy złych nawyków...
1
[#38] Re: automaty skończone

@jimiche, post #37

Prawda jest jednak taka, że Amos sssie i uczy złych nawyków...


Makabryczne glupoty gadacie... ludzie tak potrafia nasyfic w innych jezykach , ze nikt inni poza nimi tego nigdy nie odczyta.

Zaden BASIC nie uczy zlych nawykow, tylko badziewni programisci robia syf w kodzie. ok, racja
[#39] Re: automaty skończone

@jimiche, post #37

Z samym Amosem to mam miłe wspomnienia, do momentu aż zacząłem robić slave'y dla Amosowych gier. (Będzie troche wspominkowo :) )
Pamiętam gdy pierwszy raz kolega przyniósł dyskietkę z Amos1.3, który działał na gołej 500. Przy okazji zachwalał że w tym języku to się robi gry (pewnie od sprzedawcy na rynku to usłyszał). Ja byłem sceptycznie nastawiony zarówno do Amosa jak i do Amigi, nie mogłem zrozumieć dlaczego w takim nowym komputerze nie ma basica wbudowanego jak w C64. Chodziłem i w kółko gadałem coś o pustym komputerze. Oczywiście później się przekonałem do Amosa jak i do Amigi.

Jeśli chodzi o Amos, to najlepsze jest to, że to jest kompletne IDE. Nawet jak coś nie pamiętasz albo chcesz sobie przypomnieć to HELP i jazda, mimo że książka do Amosa leżała obok. Mnie brakowało takiego IDE dla ASM i dla C. Mimo że uwielbiam rodzinę IDE Asm-One/Pro to nie ma tam takiej wygody jak w Amosie. A co do C to to tutaj to było jakoś mizernie. Edytor dołączony do SAS C jakoś mi nie leżał i cześć.
I to jest to co pisał Lucus - brakuje czegoś takiego, dla początkujących, klikasz i masz edytor i od razu jest podpięty jakiś template i w łatwy sposób możesz coś osiągnąć, chociażby ten prostokąt :)

@selur
Ja bym rozszerzył i napisał że ludzie potrafią nasyfić w każdym języku.
A jedyny zły nawyk w BASIC to chyba goto :)
1
[#40] Re: automaty skończone

@selur, post #26

to musze jeszcze poczekac na opinie teh Kaina, Lorda Kraszana, Hexamaga...
Ostatnio pisałem w C na Amidze jakieś 6 lat temu. Teraz nie mam czasu, bo jestem zajęty robieniem przelotek i paleniem forsą w kominku. Zaś w mojej etatowej pracy, cóż, Python, JavaScript, PHP w tej właśnie kolejności.
1
[#41] Re: automaty skończone

@Krashan, post #40

Zaś w mojej etatowej pracy, cóż, Python, JavaScript, PHP w tej właśnie kolejności.


Jakos mnie to wcale nie dziwi, juz w zeszlym roku Python stal sie najbardziej popularnym jezykiem programowania a JavaScript jest, byl i bedzie obecny w "internecie".
1
[wyróżniony] [#42] Re: automaty skończone

@selur, post #41

A i jeszcze taka refleksja. W mojej opinii w kwestii "programowanie Amigi" nie język ustala poziom trudności. Największy wysiłek to nauczenie się obsługi hardware (gdy piszemy gry lub dema), albo systemu operacyjnego (gdy celujemy w programy użytkowe, czy pchełki pod Workbencha). AMOS nas izoluje od jednego i drugiego, co na początku jest fajne, bo krzywa uczenia jest mniej stroma, ale potem zaczyna ograniczać.
4
[#43] Re: automaty skończone

@asman, post #39

A jedyny zły nawyk w BASIC to chyba goto :)


To chyba ma związek z programowaniem w C, bo tam zawsze używanie tego działało jak płachta na byka u doświadczonych programistów. Co jest ciekawe, bo zdaje się w źródłach Linuksa gdzieś jest to używane przy obsłudze jakichś błędów, a przynajmniej kiedyś widziałem.
[#44] Re: automaty skończone

@Krashan, post #42

Największy wysiłek to nauczenie się obsługi hardware (gdy piszemy gry lub dema), albo systemu operacyjnego (gdy celujemy w programy użytkowe, czy pchełki pod Workbencha)


No i te swiete slowa niech se kazdy amigowiec w ramke oprawi i nad lozkiem powiesi OK ok, racja

Nie wiem jak inni ale ja uwazam, ze hardware Amigi, szczegolnie obsluga grafiki, to kosmos a kosmos przyjazny ludziom nigdy nie byl.


AMOS nas izoluje od jednego i drugiego, co na początku jest fajne, bo krzywa uczenia jest mniej stroma, ale potem zaczyna ograniczać.


I to wlasnie chyba przyswiecalo autorowi tego jezyka (gdzies byl o tym wywiad z Francisem ale nie wiem gdzie) - maksymalna prostota dla "'zoltodziobow" przy jednoczesnym jak najlepszym wykorzystaniu hardware'u Amigi.
I prawie to mu sie udalo, niestety najslabsze ogniwo, ktore mocno obniza range Amosa, to kiepski kod wynikowy generowany przez niedopracowany i lekko zbugowany kompilator. A dowodem na to sa wlasnie roznego rodzaju Amosowe "extensiony", ktore przyspieszaja dzialanie niektorych funkcji nawet o 100% czy 200% a to jest juz duza roznica.

i TAK, Amos w pewnym momencie zaczyna strasznie ograniczac i pojawia sie sciana nie do pokonania.
Ale pojawia sie pytanie...
Ilu amosowych tworcow w ogole zobaczylo te sciane na wlasne oczy ?
Moim zdaniem niewielu a dowodem na to sa wlasnie gry napisane w Amosie - 95% to totalna szmira. Wiekszosc tych tworcow moze opanowala podstawy i na tym zakonczyli swoj rozwoj.

Jesli lamerowi damy najbardziej wydajny amigowy kompilator C na swiecie, czy bedzie on w stanie stworzyc dobra gre w C ?

Bardzo WATPIE
2
[#45] Re: automaty skończone

@selur, post #41

Eee, może popularny, trendy i cool jest Python, ale najwięcej programuje się nadal w C.
A wiesz co siedzi pod spodem Pythona?

A jedyny zły nawyk w BASIC to chyba goto :)

To chyba ma związek z programowaniem w C, bo tam zawsze używanie tego działało jak płachta na byka u doświadczonych programistów. Co jest ciekawe, bo zdaje się w źródłach Linuksa gdzieś jest to używane przy obsłudze jakichś błędów, a przynajmniej kiedyś widziałem.


Ja nie używam, bo też mnie nauczono, że to zło. A na początku w C++ używałem i musiałem się namęczyć, żeby przestawić (wpływ Basica z C64 właśnie). Ale są przypadki, że warto używać goto, a czym nawet sam John Carmack wspominał w wywiadach wielokrotnie.

Jak kiedyś będę miał za dużo czasu (pewnie nigdy), to zrobię micro frame work, tylko do rysowania po ekranie, żeby pokazać jaki prosty potrafi być C.

Ostatnia aktualizacja: 30.11.2022 20:18:04 przez flops
[#46] Re: automaty skończone

@selur, post #44

Jesli lamerowi damy najbardziej wydajny amigowy kompilator C na swiecie, czy bedzie on w stanie stworzyc dobra gre w C ?


Z użyciem ACE nie trzeba w ogóle dotykać sprzętu, można używać gotowców. Lucek używał tylko i wyłącznie funkcji ACE'owych do obsługi ekranu, blittera i audio i cyk, powstał z tego Atarenium Falkon. To była pierwsza jego styczność z językiem C. Jak na pierwszą skończoną i wydaną grę to chyba wyszło przyzwoicie.

GermZ to prawie samo gołe ACE. Ma tylko jeden customowy system (do rysowania bobów), który rozwijam od czasów OpenFire i Aminera, skopiowałem go też do Chaos Areny i niedługo pewnie też się stanie częścią ACE'a. W Chaos Arenie potrzebowałem trochę szybszego rysowania kruszących się kafli więc jest jedna specjalizowana funkcja która inaczej tłucze po rejestrach niż ACE'owe ogólnego przeznaczenia, ale to jest wyjątek i optymalizacja zrobiona w ostatnim kroku.

BTW. ACE ma coś w rodzaju tutoriala. Od razu ostrzegam że trzeba go czytać powoli i z uwagą, bo to jednak samo się nie skonfiguruje i nie wejdzie do głowy przez analogię do AMOSa, ale każda nieścisłość i braki są traktowane jako bug - można mi to zgłosić i poprawię/dodam co trzeba.

Ostatnia aktualizacja: 30.11.2022 20:29:18 przez teh_KaiN
1
[#47] Re: automaty skończone

@selur, post #44

"Ilu amosowych tworcow w ogole zobaczylo te sciane na wlasne oczy ?"

YOUTUBE
1
[#48] Re: automaty skończone

@flops, post #45

Eee, może popularny, trendy i cool jest Python, ale najwięcej programuje się nadal w C.


no nie wiem...



GOTO (po dziadku Fortran'ie), to rzeczywiscie bylo ZUO z Basicow 8-bitowcow, ktore mialy straszna wade numerowania linii programu i tak jest ale AMOS to juz zupelnie inna epoka basicow.

W Amosie podstawa optymalizacji programu jest instrukcja... GOTO tadaaa i nie ma innej alternatywy
[#49] Re: automaty skończone

@selur, post #44

Jesli lamerowi damy najbardziej wydajny amigowy kompilator C na swiecie, czy bedzie on w stanie stworzyc dobra gre w C ?



Myślę, że lamer będzie miał trudność stworzyć czegokolwiek dobrego (pod kątem technicznym, schludnym i w kontekście wydajności) nawet w AMOSie :) Kompilator ma tu marginalne znaczenie, kiedy nie wiesz, co robisz :)

Nie wiem jak inni ale ja uwazam, ze hardware Amigi, szczegolnie obsluga grafiki, to kosmos a kosmos przyjazny ludziom nigdy nie byl.


Używanie blittera nie należy do rzeczy przyjaznych początkującym, w dodatku bitplany są strasznie nieintuicyjne, kiedyś napisałem sobie funkcję do zapisywania piksela na ekranie w ramach testu i wyszedł mi taki trochę mały potworek, patrzę się na niego i nie wiem teraz dokładnie co miałem na myśli, a obliczeń trochę jest XD (jestem amatorem w pełnego tego słowa znaczeniu). Pokaż to AMOSowcowi, który rozważa przejście na C a sprzeda komputery i pójdzie do zakonu :) To nie jest wina języka C, że to jest takie złożone, tylko Amigi.

void write_pixel(UWORD planesNum, UBYTE** planePtr, UWORD x, UWORD y, UBYTE val) {
	
	
	UBYTE *memPos;
	//calculating place in memory (offset from plane start where byte holds a bit to modify)
	UWORD offset = ( (x>>3) + (y * (SCREEN_WIDTH/8)) );
	
	//mask out how many pixels to shift in byte (0-7) and invert
	//bits are filling byte from right, but we are filling pixels from left
	UBYTE pixShift = (~x & 0x7); 
	UBYTE pixMask = (1 << pixShift); //mask for a bit to write in a byte
	
		
	switch(planesNum){
		
		case 6:
		
		
		case 5:
		
		
		case 4:
		memPos = planePtr[3] + offset;
		*memPos = (*memPos & ~pixMask) | (pixMask & ( ((val>>3) & 1)<<pixShift ) );
		
		
		case 3:
		memPos = planePtr[2] + offset;
		*memPos = (*memPos & ~pixMask) | (pixMask & ( ((val>>2) & 1)<<pixShift ) );
		
		case 2:
		memPos = planePtr[1] + offset;
		*memPos = (*memPos & ~pixMask) | (pixMask & ( ((val>>1) & 1)<<pixShift ) );
		
		case 1:
		memPos = planePtr[0] + offset;
		//copying a bit from the palette value to the memory
		*memPos = (*memPos & ~pixMask) | (pixMask & ((val & 0x01)<<pixShift));
		
		
		case 0:
		break;
		
		default:
		break;
		
	}
	
	
}


Ostatnia aktualizacja: 30.11.2022 20:54:23 przez san_u
[#50] Re: automaty skończone

@teh_KaiN, post #46

To była pierwsza jego styczność z językiem C. Jak na pierwszą skończoną i wydaną grę to chyba wyszło przyzwoicie.


No dobra Master Si PLi PLi ale tworzysz ACzE ktory ma byc do profesjonalnego tworzenia gier na Amige czy tak dla jaj...

ja tu widze pewna analogie...
Wszyscy AMOS'a na pewno znaja, niektorzy kochaja choc wiekszosc go nienawidzi, wielu w nim pisalo gry ale co ostatecznie powstalo ?
w wiekszosci przypadkow LIPA , a dlaczego ?
ktoz to wie ale, moze nie tak powinni to robic...

Na moje oko, nawet jesli ACE jest nawet dla "ulomnych", to wpierw trzeba jednak znac nieco C..
[#51] Re: automaty skończone

@selur, post #48

link

2022 jeszcze się nie zakończył więc musi wystarczyć 2021.
Są statystki githuba itd., ale najwięcej programuje się komercyjnie i tam nie ma wielu takich repozytoriów. Wśród moich znajomych programistów (a mam ich bardzo wielu), min. 80% to programiści C, czasem dotkną czegoś innego. C jest używane w wielu branżach, automotive, aerospace i praktycznie w 99% jakichkolwiek sterowników. Baza kodu C jest gigantyczna. Nie tylko fejsbóniem i internetami świat żyje, w praktycznych zastosowaniach nadal rządzi C.
[#52] Re: automaty skończone

@selur, post #50

Nawet najlepszy programista nie zrobi najlepszej gry, jeśli nie ma pomysłu, a młody narybek to z pewnością łapie się jakiejś prostej inspiracji i patrzy co z tego wyjdzie, a potem już nic nie musi robić, bo na osiedlowym CV ma już tytuł programisty i nie sposób nie skończyć w haremie :).
Innymi słowy, 90% tych crapów w Amosie to najpewniej poligony doświadczalne początkujących.

MDW nie programował czasem w Amosie point'n'clicków?








Ostatnia aktualizacja: 30.11.2022 21:18:03 przez san_u
[#53] Re: automaty skończone

@teh_KaiN, post #46

Jeszcze scrolling trick'i dodaj do ACE
[#54] Re: automaty skończone

@san_u, post #52

Nawet najlepszy programista nie zrobi najlepszej gry, jeśli nie ma pomysłu


Ale cos zrobi a poczatkujacy musi przejsc przez szczebelki drabiny zanim w ogole osiagnie te "cos".


Tak, MDW zrobil wtedy kilka amosowych produkcji z czego sensowne jest tylko "Miasto Smierci".
W mojej ocenie MDW osiagnal maksymalnie 4/10 poziomow wtajemniczenia, choc wtedy srednia krajowa, to bylo jakies 2/10 szeroki uśmiech
[#55] Re: automaty skończone

@san_u, post #52

Pechowy Prezent
1
[#56] Re: automaty skończone

@flops, post #55

tu najgorsza byla pechowa grafika ale jajoglowi tez mieli swoich fanow
[#57] Re: automaty skończone

@selur, post #56

Wszyscy tu wieszają psy na "go to"... Ale czasami to jest po prostu najprostsze i najczytelniejsze wyjscie. Jeśli np. mamy serio sensownie zrobioną obsługę wyjścia w naszym programie, to bez wzgledu na to jakim jezykiem się posługujemy, to bezpośredni skok do tej procedury po prostu ma sens.
Fakt że nadużywanie tej praktyki może dać bardzo nieczytelny kod nie oznacza jeszcze że uzywana rozsądnie nie ma swojego miejsca w kodzie vide jakiś tam kod Linuxa

Ostatnia aktualizacja: 30.11.2022 22:48:34 przez pisklak
[#58] Re: automaty skończone

@selur, post #50

No dobra Master Si PLi PLi ale tworzysz ACzE ktory ma byc do profesjonalnego tworzenia gier na Amige czy tak dla jaj...


A kto dziś tworzy gry profesjonalnie na Amigę :)

W mojej ocenie, ponieważ nikt mu nie płaci, to po prostu udostępnia swoje środowisko i narzędzia do użytku własnego innym, jedni grzebią przy motorach, inni przy ACzach. Dobrze, że jest niż jakby miało nie być, coś tam w Verge Worlds też było zrobione za pomocą ACE, zapewne wszelkie ekrany i menu, czyli coś, na co chcesz poświęcać najmniej czasu.


Na moje oko, nawet jesli ACE jest nawet dla "ulomnych", to wpierw trzeba jednak znac nieco C..


Jak w przypadku każdego innego języka :) Sam w końcu przyznajesz, że w Amosie większość wypocin to "ułomne" produkcje :)

Ostatnia aktualizacja: 30.11.2022 22:56:17 przez san_u
[wyróżniony] [#59] Re: automaty skończone

@san_u, post #53

Jeszcze scrolling trick'i dodaj do ACE


No przecież jest ;)

No dobra Master Si PLi PLi ale tworzysz ACzE ktory ma byc do profesjonalnego tworzenia gier na Amige czy tak dla jaj...


Zdefiniuj profesjonalne. Vergeworld z niego korzysta (ale jeszcze nie wyszła więc się trochę nie liczy), moje rzeczy z tego korzystają. Ta Chaos Arena której prawie nikt z ppa nie ściągnął a na pewno nikt nie kupił jest póki co naszą najlepiej sprzedającą się grą (choć nadal starcza tylko na czipsy) dzięki graczom z zachodu, komercja = profesjonalność? Z niemoich a godnych uwagi rzeczy powstaje również (w bólach trzymania się konfiguracji 7MHz 512+512) port warcrafta 1. Takiego moonstone'a w ACE bez problemu byś ulepił tu i teraz - wszystko co techniczne i wymagane do tego już jest. I to na gotowcach - nawet jak będzie trochę niewydajnie przez użycie stockowych funkcji to tam przecież nie masz 50fps i nikt z tego powodu nie płakał.

Im dłużej robię w grach (a robię aktualnie zawodowo) tym bardziej widzę że przede wszystkim trzeba dokładnie wiedzieć co się chce zrobić, wyciąć wszystko czego się nie umie zrobić a jest opcjonalne, oraz trzymać się w miarę bliskiej daty premiery żeby projekt się nie przerósł.

Ostatnia aktualizacja: 30.11.2022 23:11:01 przez teh_KaiN
3
[#60] Re: automaty skończone

@teh_KaiN, post #59



Jeszcze scrolling trick'i dodaj do ACE



No przecież jest ;)



Czyli Sonica na Amigę już można robić? :)
Nie myślałem, że to dodasz po tylu męczarniach z tymi trikami XD

Ostatnia aktualizacja: 30.11.2022 23:15:10 przez san_u
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem