Eve Online > Dyskusje ogólne

LAGFIELD vs battlefield

<< < (12/12)

Ellaine:
To jest bardzo stary tekst, nic w nim zreszta zaskakujacego, pisali go ludzi ktorzy wybrali te technologie.

Pare lat pozniej Oveur w jakims wywiadzie przyznal sie, ze Stackless Python, a przede wszystkim - jakies tam pierwotne zalozenia projektowe, bardzo ograniczaja i utrudniaja optymalizacje i rozwoj na pewnym poziomie i wogole nie jest lekko. I ze Stackless Python jest trudny dla prostych skrypciarzy projektujacych misje.

marcoos:

--- Cytat: Albi (była Ellaine) w Maj 17, 2007, 13:09:02 ---I ze Stackless Python jest trudny dla prostych skrypciarzy projektujacych misje.

--- Koniec cytatu ---

Pewne jest, ze najszybszy kod pisze się w kodzie maszyny docelowej (assembler) tylko kto to by zrobił - a co gorsza później poprawiał :)

A co do projektowania misji, to chyba nie robią tego koderzy? :) Trzeba rozróżniać formę od treści ;)

Ellaine:
Wystarczający jest C++. Nawet bez wstawek assemblerowych, masz panowanie nad tym jak rzeczy są trzymane w pamięci, alokowane i zwalniane itd itp. A przy tym masz, przynajmniej w microsoftowym, opcje współczesnego zarządzania wyjątkami, zdarzeniami i użycia automagicznie zarządzanej pamięci (gcnew i programujemy jak w Javie). Czyli - tam gdzie Cie to nie boli, programujesz wygodnie jak w językach całkiem współczesnych, a tam gdzie chcesz wycisnąć szczyty wydajności, jesteś bliższy assemblerowi.

Te wszystkie "mundane tasks" którymi nie muszą zajmować programiści w Stackless Pythonie, to jednocześnie miejsca, gdzie można optymalizować aplikację.

Jeśli idzie o skrypterów - chyba w Revelations, CCP oglosilo, ze wprowadzili nowy, prostszy język skryptowy dla ludzi którzy robią misje, bo wlasnie mieli oni zwykle problem z językiem.
Nie robią tego developerzy silnika tylko content designerzy, którzy niestety oprócz edytorka do ustawiania stateczków nauczyc pisac skrypty

adam000:

--- Cytat: marcoos w Maj 17, 2007, 12:51:05 ---Nie wiem w czym pisałeś, że miałeś takie problemy - i nie wiem, w czym programowałeś wcześniej. Ale właśnie python jest jednym z lepiej zaprojektowanych i nadających się do dużych projektów językiem programowania. Faktem jest, że większość dokumentacji jest po angielsku - ale tak niestety jest z większością języków programowania.

--- Koniec cytatu ---

Piszę w różnych "dziwnych" językach (raczej niepopularnych) a poza tym jestem "zatwardziałym" programistą C++ :-) To o czym pisałem było właśnie w Pythonie :-)  Ja wcale nie przeczę, że Python jest niezłym językiem i wiele rzeczy jest dla niego zrobione. Chodziło mi o ogólną koncepcję stosowania języków bez statycznej kontroli typów do "dużych projektów"... zresztą projekt może i być duży, tylko obawiam się jakie schody się zaczynają jak takie coś trzeba potem przerabiać i rozbudowywać latami, zwłaszcza w zespołach programistów. Problem jest nawet kiedy kompilator wychwytuje Ci podstawowe błędy, cuda mogą się dziać kiedy nawet tych podstawowych błędów nie wychwytuje, a wychodzą na wierz po miesiącach czy latach.

A wracając do EVE to Pythona nie jest raczej "jądrem" ich systemu tylko raczej językiem skryptowym "wbudowanym" a aplikacje właśnie do takich rzeczy jak programowanie misji itp. I do takich rzeczy może się sprawdzać idealnie. Coś sobie przypominam z devblogów (ale mogę się mylić), że wspominali o przepisywaniu niektórych "newralgicznych" procedur z Pythona na C++, czyli właśnie przenoszeniu ich do "jądra" aplikacji.

Fizyk:
A wracając do EVE to Pythona nie jest raczej "jądrem" ich systemu tylko raczej językiem skryptowym "wbudowanym" a aplikacje właśnie do takich rzeczy jak programowanie misji itp. I do takich rzeczy może się sprawdzać idealnie. Coś sobie przypominam z devblogów (ale mogę się mylić), że wspominali o przepisywaniu niektórych "newralgicznych" procedur z Pythona na C++, czyli właśnie przenoszeniu ich do "jądra" aplikacji.

Tak masz rację.

Pewne jest, ze najszybszy kod pisze się w kodzie maszyny docelowej (assembler) tylko kto to by zrobił - a co gorsza później poprawiał

" kodem maszyny docelowej " nie jest asembler a język maszynowy, asembler jest językiem wyższego poziomu lub też translatorem kodu z asemblera na język maszynowy. Wybacz ale jestem purystą, po prostu mało osób zna ten język jeszcze mniej go docenia i to jako fanatyka takiego kodzenia smuci :(  .


Albi podczas tworzenia tak dużych projektów często tworzy się własne środowiska programistyczne więc o ile C++ powinien być jakąś bazą to wokół niego powinien byc zbudowany bardzo uniwersalny język skryptowy, całkowicie niepodobny do wszystkiego co znamy i ściśle odpowiadający wymaganiom a jednocześnie łatwo rozbudowywalny. Napewno nie wystarczy C++ bez wstawek asemblerowych, na poziomie kompilatora i tak wszystko jest zamieniane na język maszynowy ale kompilatory języków wysokiego poziomu robią to nieefektywnie ( czasami nawet bardzo nieefektywnie nawet banalne procedury sortowania są często przekładane na postać która nie umywa sie pod względem efektywności odpowiednich napisanych w asemblerze ). Ten microsoftowym ma to do siebie ze stara sie byc jak najbardziej uniwersalny i to właśnie go gubi. ( traci na wydajności ). Słusznie napisałeś chcesz możesz być bliższy asemblerowi ale co za rużnica czy będąc w odległości 100km od domu zbliżysz się do niego na metr czy też na ten metr sie od niego oddalisz??.

Po mojemu sprawa jest prosta przy budowie tak wielkiego projektu konieczne jest stworzenie środowiska ( języka programowania ? ) które bedąc jednocześnie maksymalnie otwartym ( gotowym na ewentualną rozbudowę ) wykorzysta możliwości sprzętowe. Powstanie środowisko można myśleć o tworzeniu rozrywki dla kilkuset tysięcy graczy na jednym serwerze. W przeciwnym wypadku zawsze gdzieś pomiędzy uniwersalnością a wydajnością będzie istnieć konflikt.

p.s.1 Nadal będę się upierał że ta "polityka" gridowa o której piszesz już jest stosowana ( przynajmniej w jakiejś części ).

p.s.2 co do znikających szipów juz teraz możesz sobie to wytłumaczyć np. w ten sposób: wylogowujesz się co znaczy tyle ze na twoim szipie przestały funkcjonować wszystkie systemy oprócz systemów podtrzymywania życia. Cała energia jaką udało się zmagazynować w zapasowych systemach mocy wykorzystywana jest na zrobienie ostatniego skoku. Niedziała system nawigacji więc warpujesz się w losowym kierunku. Przez jakiś czas działają jescze jakieś podstawowe urządzenia w stylu elektryczny czajnik czy odkurzacz więc można cię namierzyć ale gdy i one się wyłączą lipa nic nie możesz zrobić i wtedy znika całkowicie możliwość znalezienia cię. Jesteś po prostu wrakiem szybującym gdzieś tam dla inych po prostu zniknołeś, nawet bateria w ręcznej bateryje wylała więc nie mżesz migać. Siedzisz w kajucie nad paprotką ( aby mieć więcej tlenu ). I tyle. Fakt ta teoria ma w sobie całkiem sporo nieścisłości ale cóż ta gra to jedna wielka bajka na resorach.

Nawigacja

[0] Indeks wiadomości

[*] Poprzednia strona

Idź do wersji pełnej