Autor Wątek: W jakim języku programujecie?  (Przeczytany 6781 razy)

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

Śro, 23 Kwi 2014, 08:29:50

Offline Windowsill

  • Szeregowy
  • *
  • Wiadomości: 1
  • Reputacja: 0
    • Zobacz profil
Cześć!
Jeśli jesteś programistą to napisz w jakim języku piszesz i ile już się nim posługujesz.
Okej ja zacznę ;)

Programuję w c++ od roku i znam trochę c#. Aktualnie piszę grę w c++ ale zobaczyłem KSP i mam przerwę w programowaniu.

Śro, 23 Kwi 2014, 09:45:21
Odpowiedź #1

Offline JW

  • Szeregowy
  • *
  • Wiadomości: 64
  • Reputacja: 5
    • Zobacz profil
Programuję w Java mniej więcej od pół roku. Podobnie jak ty zobaczyłem KSP ale nie bardzo na mnie wpłynęło.

Reklama

Odp: W jakim języku programujecie?
« Odpowiedź #1 dnia: Śro, 23 Kwi 2014, 09:45:21 »

Pią, 02 Maj 2014, 10:26:59
Odpowiedź #2

Offline pan toflash

  • Szeregowy
  • *
  • Wiadomości: 1
  • Reputacja: 0
    • Zobacz profil
Rok temu zacząłem w Javie ale przesiadłem się na Linuksa i zajarałem się Pythonem. Poza tym na pingwinku nie działa KSP. Niby jest wersja na Linuksa ale nie działa. >:(

Pią, 02 Maj 2014, 10:35:23
Odpowiedź #3

Offline Windowsill

  • Szeregowy
  • *
  • Wiadomości: 1
  • Reputacja: 0
    • Zobacz profil
Aby zobaczyć link - ZAREJESTRUJ SIĘ lub ZALOGUJ SIĘ
Rok temu zacząłem w Javie ale przesiadłem się na Linuksa i zajarałem się Pythonem. Poza tym na pingwinku nie działa KSP. Niby jest wersja na Linuksa ale nie działa. >:(

Odpal na wirtualnej maszynie KSP ;D

Reklama

Odp: W jakim języku programujecie?
« Odpowiedź #3 dnia: Pią, 02 Maj 2014, 10:35:23 »

Pią, 02 Maj 2014, 11:53:03
Odpowiedź #4

Offline Dirkuu

  • Szeregowy
  • *
  • Wiadomości: 68
  • Reputacja: 1
    • Zobacz profil
Ja się bawię jedynie w webmasterkę. PHP, MYSQL, JavaScript, jQuery oraz  AJAX.
Witam i pozdrawiam, do następnego ; )

Pią, 02 Maj 2014, 12:36:12
Odpowiedź #5

Offline Koper

  • Szeregowy
  • *
  • Wiadomości: 95
  • Reputacja: 8
    • Zobacz profil
Aby zobaczyć link - ZAREJESTRUJ SIĘ lub ZALOGUJ SIĘ
Poza tym na pingwinku nie działa KSP.

Na laptopie pobrałem ze Steama i działa, chociaż fakt, o płynności (w przeciwieństwie do Win7) nie ma mowy.

Wracając do tematu wcześniej trochę próbowałem Javy oraz Pythona, teraz ze względu na studia oraz zainteresowania (elektronika/mikrokontrolery) najwięcej piszę w C/C++. Zamierzam się też bliżej zapoznać z C#. No i stosunkowo dużo pisałem w Lua.

Reklama

Odp: W jakim języku programujecie?
« Odpowiedź #5 dnia: Pią, 02 Maj 2014, 12:36:12 »

Nie, 11 Maj 2014, 12:11:50
Odpowiedź #6

Offline ShookTea

  • Plutonowy
  • ***
  • Wiadomości: 370
  • Reputacja: 20
    • Zobacz profil
Java(ewentualnie +MySQL, gdy potrzeba bazy), HTML+CSS+PHP+MySQL+JQuery

Jestem w trakcie pisania gry.

Nie, 11 Maj 2014, 12:21:27
Odpowiedź #7

Offline Dirkuu

  • Szeregowy
  • *
  • Wiadomości: 68
  • Reputacja: 1
    • Zobacz profil
Możesz się pochwalić :)
Witam i pozdrawiam, do następnego ; )

Reklama

Odp: W jakim języku programujecie?
« Odpowiedź #7 dnia: Nie, 11 Maj 2014, 12:21:27 »

Nie, 11 Maj 2014, 19:52:11
Odpowiedź #8

Offline ShookTea

  • Plutonowy
  • ***
  • Wiadomości: 370
  • Reputacja: 20
    • Zobacz profil
Aby zobaczyć link - ZAREJESTRUJ SIĘ lub ZALOGUJ SIĘ

Ot, co!  8)

Pon, 12 Maj 2014, 13:56:16
Odpowiedź #9

Offline jarek0498

  • Szeregowy
  • *
  • Wiadomości: 9
  • Reputacja: 0
    • Zobacz profil
C++, HTML, JavaScript

Reklama

Odp: W jakim języku programujecie?
« Odpowiedź #9 dnia: Pon, 12 Maj 2014, 13:56:16 »

Wto, 13 Maj 2014, 17:56:56
Odpowiedź #10

Offline michal16202

  • Szeregowy
  • *
  • Wiadomości: 7
  • Reputacja: 0
    • Zobacz profil
PHP, HTML, Basic, MySQL, Lua

Pią, 16 Maj 2014, 19:48:52
Odpowiedź #11

Offline Dirkuu

  • Szeregowy
  • *
  • Wiadomości: 68
  • Reputacja: 1
    • Zobacz profil
Mam pewien problem ponieważ też właśnie coś tworzę - dokładnie grę 2d typu tibia/Aby zobaczyć link - ZAREJESTRUJ SIĘ lub ZALOGUJ SIĘ (Bliżej temu do margonem).


Macie może jakiś pomysł na wyświetlanie innych graczy? Jedyne co wymyśliłem to w intervalu co 300ms łączyć się ajaxem z bazą danych i sprawdzać czy w danym miejscu nie ma jakiegoś gracza, ale czy sprawdzanie co 300ms 609 kafelków nie zabije przeglądarki? Nie mam żadnej innej idei na napisanie tego póki co.
Witam i pozdrawiam, do następnego ; )

Reklama

Odp: W jakim języku programujecie?
« Odpowiedź #11 dnia: Pią, 16 Maj 2014, 19:48:52 »

Pią, 16 Maj 2014, 20:19:39
Odpowiedź #12

Offline Koper

  • Szeregowy
  • *
  • Wiadomości: 95
  • Reputacja: 8
    • Zobacz profil
Przeglądarkę i pewnie przy okazji serwer. Wymyślając coś na szybko, to ja bym wysyłał do serwera zapytanie z pozycją aktualnego gracza. W takim wypadku, jeśli mapę przechowujesz w czymś na kształt tablicy dwuwymiarowej, musiałbyś sprawdzić jakieś r^2 innych pozycji dookoła otrzymanej pozycji (r - zasięg pola widzenia). Potem możesz odesłać listę graczy w pobliżu wraz z innymi potrzebnymi informacjami. Albo pustą jeśli niczego nie ma.

Chociaż nie wykluczam, że pewnie są jakieś lepsze sposoby żeby to zaimplementować, bo jednak gry, a w szczególności przeglądarkowe, to nie moja specjalność.

Pią, 16 Maj 2014, 21:05:30
Odpowiedź #13

Offline Dirkuu

  • Szeregowy
  • *
  • Wiadomości: 68
  • Reputacja: 1
    • Zobacz profil
W sensie, żebym stworzył nową tablicę taką samą jak ta w której przechowuję kolizje, tylko przechowywać tam graczy? Poniekąd było by szybciej działać na pliku, ale w takim wypadku mógłby być problem, gdy jedna osoba wejdzie na drugą.
Witam i pozdrawiam, do następnego ; )

Reklama

Odp: W jakim języku programujecie?
« Odpowiedź #13 dnia: Pią, 16 Maj 2014, 21:05:30 »

Pią, 16 Maj 2014, 21:29:59
Odpowiedź #14

Offline ShookTea

  • Plutonowy
  • ***
  • Wiadomości: 370
  • Reputacja: 20
    • Zobacz profil
Tu nie chodzi o grę ani o przeglądarkę, ale o możliwie jak najlepiej zoptymalizowany algorytm, minimalizujący liczbę koniecznych czynności.

ROZWIĄZANIE NR. 1
Jakie będą wymiary w kafelkach? Wydaje mi się osobiście, że jedyne sensowne wyjście (biorąc pod uwagę, że plansza jest prostokątna) to 21x29 (bo pozostałe wyjścia to 3x203 i 7x87).

W takim wypadku, każdy gracz ma dwa konieczne dla Ciebie pola: położenie X z zakresu od 0 do 20 i położenie Y z zakresu od 0 do 28 (X i Y może być odwrotnie, mniejsza). Łącznie te dwie liczby zajmują 10 bitów.
Teraz załóżmy optymistyczny plan "na początek", że na serwerze znajduje się 1000 graczy. Oznacza to 10.000 bitów do pobrania co aktualizację. Oczywiście, za każdym razem wyliczasz na podstawie położenia tych graczy oraz gracza sterowanego, czy kogoś wyświetlić. 10 tys. bitów to nieco ponad kibibajt (zakładając, że 1 B = 8 b) - dokładnie 1250 bajtów. Skoro ustaliłeś interval na 300 ms (ach, te cudowne gry standalone z interwałem rzędu 17 ms :D), daje to ok. 4167 bajtów na sekundę. Zakładając, że miesiąc trwa średnio 30 dni, 10 GB transferu miesięcznie.

10 GB transferu miesięcznie, zakładając, że 24 godziny na dobę, 7 dni w tygodniu, bez przerwy na serwerze znajduje się tysiąc osób.
Co to oznacza?
1. Nikt nie będzie siedział na serwerze tak długo w ciągu miesiąca, by pobrać tak dużo danych. Załóżmy, że trafi się ktoś "mocno uzależniony", który w ciągu miesiąca spędzi na twoim serwerze łączny okres, powiedzmy 5 dni. W ciągu miesiąca pobierze on około 51 MB na każdego gracza. Zakładając, że ma ograniczony transfer do powiedzmy 5 GB miesięcznie, będzie mógł "grać" ze 100 graczami bez wyczerpania transferu. Prawda jest jednak taka, że osoby "mocno uzależnione" od wszelkich gier mogą wydawać więcej pieniędzy na lepszy internet.
2. Czy naprawdę jesteś przekonany, że serwer nie wytrzyma przeciążenia rzędu 350 MB na godzinę? No, chyba że oczekujesz większej ilości graczy, niż 1000 (co na początku może być trudne do osiągnięcia). Wtedy sprawa jest prosta: zarabianie pieniędzy np. na reklamach, mikropłatnościach, Premium. Będziesz w stanie utrzymać porządne serwery.




ROZWIĄZANIE NR. 2 (na które wpadłem przypadkiem)
Sposób na "bardzo dużą ilość graczy+bardzo mały transfer".
Położenie gracza musi być zapisywane na serwerze, inaczej gracze będą mogli czitować.
Prosta funkcja wewnątrz serwera, która co interwał rysuje rysunek z kompletną mapą świata gry, a na niej nakłada postaci graczy na podstawie ich położeń. Następnie, dla każdego gracza wycina fragment mapy i mu wysyła. O ile na początku, gdy graczy jest mało, bardziej opłaca się używać sposobu pierwszego, o tyle jednak w sposobie drugim wysyłana jest stale taka sama ilość danych - czyli jeden rysunek. Jeśli ilość przesyłanych danych odnośnie położenia (czyli sposób drugi) przekroczy ilość danych koniecznych do przesłania zaledwie jednego obrazka (co może zdarzyć się dosyć szybko), wystarczy przełączyć się na rozwiązanie drugie. Bez względu na to, czy gracz będzie 1, czy 100, czy pięć miliardów, ilość danych wysyłanych do pojedynczego gracza będzie taka sama. A jeśli mimo to graczy będzie tak dużo, że serwer przestanie wyrabiać... kupić lepszy serwer (jak napisałem pod koniec rozwiązania pierwszego)