Autor Wątek: Please support open letter to CCP  (Przeczytany 5385 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Hastrabull

  • Administrator
  • Użyszkodnik
  • Wiadomości: 2 060
    • Zobacz profil
Please support open letter to CCP
« dnia: Marzec 30, 2007, 13:51:55 »
In english so Orbis can also understand what im asking for.

Please support me in this thread:
http://myeve.eve-online.com/ingameboard.asp?a=topic&threadID=499469

This is for our own good. Dunno if it will help, but i think its worth to try.
Jak masz się tu kogoś bać, to mnie...
buahahaha <- demoniczny śmiech

Konrad

  • Gość
Odp: Please support open letter to CCP
« Odpowiedź #1 dnia: Marzec 30, 2007, 14:19:22 »
nie moge pisać na eve-o więc skomentuję tu:

musisz wziąć pod uwagę, iż aktualne (nie mam z eve kontaktu już prawie 4 miesiące, ale powiedzmy, że aktualne) problemy nie mają związku ze sprzętem jako takim, albo lepiej, nie mają związku bezpośredniego, dla serwera ważniejsze jest oprogramowanie, szczególnie takiego jak serwer eve-online

patrząc wstecz, zasada jego działania została opracowana w roku ~2000/2001...  tego, że całość działa na windowsie nawet nie...ehm :)

Ellaine

  • Gość
Odp: Please support open letter to CCP
« Odpowiedź #2 dnia: Marzec 30, 2007, 14:46:00 »
Stackless python.

Hastrabull

  • Administrator
  • Użyszkodnik
  • Wiadomości: 2 060
    • Zobacz profil
Odp: Please support open letter to CCP
« Odpowiedź #3 dnia: Marzec 30, 2007, 15:09:03 »
whatever :)

nie chodzi mi o jakiekolwiek zmiany w sprzecie tylko podejsciu do 0.0
Jak masz się tu kogoś bać, to mnie...
buahahaha <- demoniczny śmiech

vulor

  • Gość
Odp: Please support open letter to CCP
« Odpowiedź #4 dnia: Marzec 31, 2007, 14:50:29 »
Stackless python.
Możesz rozwinąć swoją wypowiedź?

To dobrze, źle?
Podać wady/zalety tego rozwiązania?

Ellaine

  • Gość
Odp: Please support open letter to CCP
« Odpowiedź #5 dnia: Marzec 31, 2007, 15:45:02 »
Stackless Python jest cokolwiek egzotycznym jezykiem skryptowym.
Jego zalozenia wydawaly sie dawno temu ojcom projektu fajne i ladne.
Python jest fajny, ladny, modny, dorodny i nowoczesny. Jest jednak jezykiem skryptowym. Wszystkie cywilizowane jezyki skryptowe wspolczesnie sa (moga byc) prekompilowane przynajmniej do binarnego betakodu (analogicznie do Javy) ale skryptowosc niesie ze soba obciazenia optymalizacyjne jakich nie maja jezyki projektowane z gory jako kompilowane (jak C).
Np musza przechowywac hashtable z nazwami zmiennych, bo zawsze w jezyku skryptowym moze sie uwidziec programiscie odwolac sie do zmeinnej po nazwie ze stringa. Architektura prekompilowanego skrypta musi tez byc gotowa na to ze nagle ktos wykona kawalek kodu w postaci tekstu. Taki C nie ma tych obciazen, Java jest w polowie drogi, a Python je ma (chyba ze sie wogole calkowicie myle co do pythona i gadam nie na temat, co jest mozliwe bo ogladalem go lata temu). So - skryptowy -> wolniejszy.

Stackless to uroczy pomysl zeby nie bylo stosu. Nie ma stosu, nie ma wywolywania funkcji w funkcji. To wymusza pewien styl pisania podobny do np AJAXa;
W normalnym jezyku mozesz miec (jezyk jest podobny do Javy ale nie jest zadnym prawdziwym jezykiem jesli wejdziesz w szczegoly);
class Laser extends Dzialo {
 ...
 strzelaj(cel) {
   obrazenia = this.obrazenia * cel.getResisty(this);
   cel.zadajObrazenia(obrazenia);
   getStatek().getLocalSystem().sendEvent(new PokazywanieKolorowejKreseczki(this, cel));
 }
 obslugaEventaPilotNacisnalSpust() {
   this.strzelaj(getStatek().getAktualnieWybranyCel()));
 }
 ...
}
W stackless nie masz stosu, nie ma stosu nie ma wywolania innej funkcji, wiec juz linijka;
   obrazenia = this.obrazenia * cel.getResisty(this);
nie jest mozliwa bo nie mozesz odwolac sie do funkcji (metody) cel.getResisty(*). Jesli chcesz oprogramowac strzelanie laserem musisz postepowac mniej wiecej tak;

class Laser extends Dzialo {
 ...
 obslugaEventaPilotNacisnalSpust() {
   sendEvent(new ZadawanieObrazen(getStatek.getAktualnieWybranyCel, this.obrazenia));
   sendEvent(getStatek.getLocalSystem, new PokazywanieKolorowejKreseczki(getStatek, getStatek.getAktualnieWybranyCel));
 }
 ...
}
class Statek {
 obslugaEventaZadawanieObrazen(jakich) {
   hapeki = hapeki - jakich*this.MojeResisty;
 }
}

Czyli - nie masz jednej funkcji (metody) ktora obsluguje calosc zdazenia, wylicza sobie wszystko dociagajac dane z innych metod, tylko zglaszasz zdarzenia do kolejki i listenery to po kolei chwytaja. Dlatego mozliwe jest np ze juz skonczyles strzelac z lasera ale z powodu laga obrazenia pojawia sie u celu dopiero po paru sekundach. Wszelkie zlozone procesy to nie rozbudowane odnogi funkcji obslugi guzika tylko serie wzajemnie wywolujacych sie zdarzen ktora bedzie sie toczyc nawet jesli gosciowi ktory wcisnal guzik dawno padl klient i proces go obslugujacy.
Jest to w jakims stopniu logiczne i uzasadnione dla gry sieciowej, ale nie jest bardzo intuicyjne dla przecietnego programisty. Dlatego miedzy innymi byly zawsze takie proste misje - ciezko bylo zwerbowac duzo ludzi byli wystarczajaco bystrzy zeby skryptowac misje w stackles pythonie i jednoczesnie chcieli robic misje (a nie nalezec do glownego dev team) ... no i jeszcze przeniesc sie do Islandii.
Do tego Stackless Python niesie ze soba ograniczenia architektoniczne ktore bardzo utrudniaja rozwoj i optymalizacje czegokolwiek zaczynajac od pewnej skali.

Gdyby wszystko od poczatku bylow  C++, problemy bylyby inne, ale tak ogolniej wielka optymalizacja calosci bylaby prawdodpobnie bardziej realna (chociaz wszystko zalezy od poczatkowych zalozen architelktury jeszcze bardziej niz od jezyka - o tych jednak nie wiadomo za duzo poza sercem CCP).

vulor

  • Gość
Odp: Please support open letter to CCP
« Odpowiedź #6 dnia: Marzec 31, 2007, 21:14:01 »
Liczyłem, że coś wiesz na temat stackless i się tą wiedzą podzielisz.
Wygląda na to, że  ja wiem o tym więcej.  ;)


W stackless nie masz stosu, nie ma stosu nie ma wywolania innej funkcji, wiec juz linijka;
   obrazenia = this.obrazenia * cel.getResisty(this);
nie jest mozliwa bo nie mozesz odwolac sie do funkcji (metody) cel.getResisty(*). Jesli chcesz oprogramowac strzelanie laserem musisz postepowac mniej wiecej tak;

Stackless Python jest w 100% kompatybilny z "stackfull" Pythonem. Różnica jest w implementacji interpretera. Nie jestem specjalistą od stackless pythona, ale z tego co wiem różnica polega na nieprzechowywaniu stosu wykonywanego skryptu na stosie interpretera, lecz na stercie (AFAIK perl ma podobnie).
Cytuj
Stackless Python
A Python Implementation That Does Not Use The C Stack
To nie znaczy, że Stackless Python nie ma stosu.

Tym samym 70% twojego postu to totalny BS.


PS. Już nie musisz tłumaczyć na czym polega problem skalowalności Stackless Pyhtona. Czytając sobie o tym języku sam do tego doszedłem.
Tzn. wydaje mi się, że wiem na tak 90% dlaczego:
Stackless Python niesie ze soba ograniczenia architektoniczne ktore bardzo utrudniaja rozwoj i optymalizacje czegokolwiek zaczynajac od pewnej skali.
« Ostatnia zmiana: Marzec 31, 2007, 21:59:11 wysłana przez Vulor »

Ellaine

  • Gość
Odp: Please support open letter to CCP
« Odpowiedź #7 dnia: Kwiecień 01, 2007, 08:57:23 »
Moje wnioski z czytania peanow przeciw watkom a za mikrowtkami sa wlasnie takie. Ale zapewne jeden z nas zle zrozumial po pierwszym rzucie okiem na strony o stacklessie i przyklady. Zostaje eksperyment - czyli kazdy pisze cos malego w SP i majac juz prawdziwe doswiadczenie moze opowiedziec jak bylo a nie spekulowac :D

Pozostaje prawda cytat z Wikipedii;
Cytat: Wikipedia
Python is designed around a philosophy which emphasises the importance of programmer effort over computer effort, and it rejects more arcane language features, prioritising readability over speed or expressiveness.

A poprzedni post nie mial wyjasnic problemow skalowalnosci Stacklessa tylko nature architektury wogole. Skoro wyciagnales zgola odmienne wnioski czytajac zapewne te same strony, znaczy ze moje wnioski sa niepewne i palcem po piasku pisane, wiec prosze mi nie wierzyć  póki nie sprobuje i nie wypowiem sie jako prawdziwy stackless pythonowiec :)

theorbis

  • Gość
Odp: Please support open letter to CCP
« Odpowiedź #8 dnia: Kwiecień 02, 2007, 11:32:02 »
Hi Hastrabull,

I read that thread on forums even before i saw link here.  Yes, we do read and follow forums at CCP all the time ;)

I share your concerns about current difficulties with game mechanics involving huge battles, and i assure you we are working on solution for the problem. As someone pointed out, Revelations 2 is most likely candidate for changes to happen.

Best Regards,
The Orbis

Hastrabull

  • Administrator
  • Użyszkodnik
  • Wiadomości: 2 060
    • Zobacz profil
Odp: Please support open letter to CCP
« Odpowiedź #9 dnia: Kwiecień 02, 2007, 12:05:34 »
Orbis,
Great, thanks for the info :) I really do appreciate it.

Btw, its great to have someone straight from CCP watching our small forums here :)

Now lets wait for revelations 2

Jak masz się tu kogoś bać, to mnie...
buahahaha <- demoniczny śmiech

Selvin

  • Gość
Odp: Please support open letter to CCP
« Odpowiedź #10 dnia: Kwiecień 19, 2007, 13:54:04 »
ja pisalem w SP :) dostalem nawet bana za to :)
no coz pisze sie tak samo jak w zwyklym Pythonie
da sie wywalywac funkcje w funkcji
kod w eve jest przekompilowany do kodu wirtualnej maszyny pythona
wszystko wyglada bardzo podobnie jak w Javie lub MSIL(C#, itd)