Skocz do zawartości

Tunel


Rekomendowane odpowiedzi

Tunel


Jesteś pilotem małego, dzielnego statku kosmicznego. Podróżujesz przez tunel czasoprzestrzenny w poszukiwaniu artefaktów - mniejsza o to, czym one są, ważne, że jak się z nimi zderzysz, zdobywasz punkty.
Sposób, w jaki są rozmieszczone, zależy od Ciebie - w tym celu tworzysz plik tekstowy. Następnie wpisujesz dowolne litery alfabetu łacińskiego, entery i spacje (inne znaki nie są dozwolone pod groźbą zakrzywienia czasoprzestrzeni i kompresji Twojego małego, dzielnego statku kosmicznego do punktowego, niepodzielnego statku kosmicznego). Włączasz grę, klikasz "Start" i wprowadzasz dane do tunelu.

Kierujesz strzałkami, zbierasz artefakty... i tyle. To na razie demo techniczne. Nie wsadziłem zmiany prędkości (choć już zaimplementowałem), nie ma wrogów, przeszkód ani nic. Jak sądzicie, czy warto projekt rozwijać?
tunel1.png
-> KIERUJ DO TUNELU

Za wszystko (tj. grafikę i kod) odpowiedzialny jestem ja. Muuuuczek567.
Odnośnik do komentarza
Udostępnij na innych stronach

Ymm...

Na screenshocie dobrze widać, że jedna kratka = jedna litera = jeden artefakt.

Spacja daje jedną kratkę odstępu, 3 spacje - 3 kratki.

Skopiuj sobie:

 

aaaaa bbbbb[kilka spacji]acegikmoqsuwyacegikmoqsuwyacegikmoqsuwyacegikmoqsuwyacegikmoqsuwy

 

i sprawdź, czy najpierw będzie pięć artefaktów, następne pięć trochę na prawo od tamtych, potem przerwa, a na końcu długa spirala artefaktów.

E: nie da się tutaj pisać spacji obok siebie :/

E2: HuderLord, wiem, ale przecież napisałem. Tylko alfabet łaciński i spacja. Entera już mi się nie chciało dodawać, bo i tak 12 liter to już jedna sekunda.

Odnośnik do komentarza
Udostępnij na innych stronach

E2: HuderLord, wiem, ale przecież napisałem. Tylko alfabet łaciński i spacja. Entera już mi się nie chciało dodawać, bo i tak 12 liter to już jedna sekunda.

Zamiast spamić spacjami lepiej było by wstawić po prostu enter który by np mógł robić przerwę adekwatną do 5 spacji. Po za tym by startup nie był w takim wypadku za długi to mogłbyś zrobić by wczytywanych było np 500 pierwszych znaków i dalej by się zapętlały.

Odnośnik do komentarza
Udostępnij na innych stronach

Wczytywanie jest wystarczająco szybkie, żeby obsłużyło 32 kB tekstu (czyli max. dla tablicy) w mniej niż sekundę.

_UWAGA_: dodałem entery i zapętlanie. Ale zapomniałem zmiany szybkości (trochę wolne jest, a szkoda) :/

Odnośnik do komentarza
Udostępnij na innych stronach

rownie dobrze mozesz po prostu otworzyc plik i streamingiem co klatke doczytywac kolejne znaki, to bedzie wystarczajaco szybkie, aby nie odczuwac wczytywania, nie czekac na zaladowanie wszystkich znakow.

Odnośnik do komentarza
Udostępnij na innych stronach

wcale nie, bo to jest jedynie pare linijek kodu do zmodyfikowania :)

Odnośnik do komentarza
Udostępnij na innych stronach

Przecież wiem, ale na co mi to teraz, skoro mi niepotrzebne?

Umiem to zrobić, tylko po prostu w tej chwili nie widzę powodu, żeby z tego skorzystać.

@HuderLord: chodzi o to, żeby na początku nie było ultraścinki, która potrwa z pięć sekund, tylko żeby na początku gry minimalnie spadły fpsy.

Odnośnik do komentarza
Udostępnij na innych stronach

ee. ale wczytanie jednego bajtu poprzez file_bin_read() nie trwa dlugo, a ulamek sekundy, na juz otwartym pliku. dla jasnosci:

create: file_bin_open();

step: file_bin_read();

room_end/destroy: file_bin_close();

 

to jest wlasnie streaming, ktory jest szybki. Otwarty plik jest zmapowany w przestrzeni pamieci, przez co odczyt znakow po kolei nie ma prawa trwac wiecej niz ulamki sekundy :D

dodatkowa informacja: na raz mozesz otworzyc do 6 plikow, wiec jak dla mnie, taka imitacja wielowatkowosci do wczytywania tego rodzaju zasobow do gry, jest wystarczajaco kuszaca.

Odnośnik do komentarza
Udostępnij na innych stronach

Zakręty to już trudniejsza sprawa. Musiałbym nad tym dłużej posiedzieć.

Mógłbym skorzystać z zasady działania tego przykładu efektu Drogi Mlecznej, co jest gdzieś na forum (czy w tematach, czy w przykładach, to już nie wiem), tam to było jakieś bardzo łatwe rozwiązanie.

 

@YXE: ja raczej myślałem, żeby doczytywać za pomocą file_text_read_string, trochę wolniejsze, ale naraz doczytuje calą linijkę.

Odnośnik do komentarza
Udostępnij na innych stronach

zalozmy, ze gra ma 30 stepow, a na sekunde przelatujesz przez powiedzmy kolejnych 5 sektorow tunelu. wczytywanie w ten sposob nijak nie jest wolne, a otrzymujesz plynnie wczytywane dane. :)

file_text_read_string() nie ma sensu uzywac, skoro znaki sa interpretowane jako liczby / znaki alfanumeryczne. dziala to wolniej, bo gm wczytuje do bufora znak po znaku, sprawdzajac, czy nie trafil na enter, potem ten bufor kopiuje do stringa i dopiero zwraca do gry, a odczyt binarny polega na wczytaniu jednego znaku/bajtu i przekazaniu go od razu do gry jako liczbe. tu od razu widac, co jest szybsze.

Odnośnik do komentarza
Udostępnij na innych stronach

gra się zawiesza kiedy plik nie jest wybrany.

 

screenshot przypomina mi trochę tempesta. samo demo niezbyt ciekawe, powiedziałbym "schrooms! w wersji 3D". w końcu zbieranie artefaktów w tunelu bez żadnych przeszkód nie może być zbyt ciekawe. mam nadzieję, że do pełnej wersji coś wymyślisz.

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdziłem. Plik 48 kB został wczytany przez file_text w 0,156 sekundy, przez file_bin w 0,208 sekundy.

:]

@Jaklub:

demo techniczne

Nie dodałem żadnych ficzerów, tylko dałem do sprawdzenia, czy z tego może coś być.

Odnośnik do komentarza
Udostępnij na innych stronach

wiem, że demo techniczne, dlatego użyłem wyrażenia "demo" zamiast "gra". od strony technicznej wszystko jest w porządku (poza bugiem z niewybranym plikiem), ale naprawdę trudno jest powiedzieć, czy coś z tego może być.

 

przyznam za to, że dziwnie zrobiłem, oceniając to później bardziej jako grę.

Odnośnik do komentarza
Udostępnij na innych stronach

muczek, ale nie zrozumiales, ze ja wciaz mowilem o przypadku wczytywania tego co klatke? nvm, ja tylko podalem dobre rozwiazanie problemu wczytywania duzych plikow

Odnośnik do komentarza
Udostępnij na innych stronach

muczek, ale nie zrozumiales, ze ja wciaz mowilem o przypadku wczytywania tego co klatke? nvm, ja tylko podalem dobre rozwiazanie problemu wczytywania duzych plikow

Równie szybkie jak standardowy alokator. Przy tak małej grze jakikolwiek streaming to czysta głupota i wybitny przykład jak się kodu nie powinno pisać.

Odnośnik do komentarza
Udostępnij na innych stronach

Ty tak twierdzisz

Odnośnik do komentarza
Udostępnij na innych stronach

Ty tak twierdzisz

No nie licząc wszystkich developerów, którzy mają przynajmniej rok doświadczenia to tak. Dwa razy pomyśl zanim wciśniesz komuś coś czego nie jesteś pewny bo streaming jest potrzebny ale dla takich produkcji jak gta i wygląda/działa zupełnie inaczej. W jakąkolwiek książkę o gd się nie spojrzy można znaleźć informacje żeby takich zabaw się wystrzegać więc nie mam pojęcia skąd Ty wynajdujesz takie rewelacje.

Odnośnik do komentarza
Udostępnij na innych stronach

Chce miec rozgrywkę na dlugi czas, generuje mapę 10 mb. Hmm, ile to bede czekał na załadowanie mapy? Nie neguj kogoś za to, ze ma umysł otwarty na problemy :)

Odnośnik do komentarza
Udostępnij na innych stronach

Chce miec rozgrywkę na dlugi czas, generuje mapę 10 mb. Hmm, ile to bede czekał na załadowanie mapy? Nie neguj kogoś za to, ze ma umysł otwarty na problemy

10 mega.. ee... musisz być strasznie niecierpliwy bo tak mały plik to się pewnie ładuje kilkadziesiąt milisekund na jakimś syfie sprzed 5 lat. Dobrze, że wszyscy nie są tacy otwarci bo mielibyśmy duży problem. Po to są książki żeby się z nich podstaw dowiedzieć, jak chcesz się tak otwierać to no problem ale nie wciskaj innym teorii jeśli nie sprawdziłeś w 10 miejscach, że jest prawdziwa. Strach się bać co wymyślisz jak będzie trzeba załadować coś na kilkaset mega do pamięci...

Odnośnik do komentarza
Udostępnij na innych stronach

nie wiem właściwie, czy masz pojęcie, że piszesz na forum o GM, w temacie o grze zrobionej w GM :)

nie znasz jego możliwości, nie wiesz, gdzie i jak w nim opymalizować.

nie ucz ojca dzieci robić - skończ wać, wstydu oszczędź.

Odnośnik do komentarza
Udostępnij na innych stronach

nie wiem właściwie, czy masz pojęcie, że piszesz na forum o GM, w temacie o grze zrobionej w GM

nie znasz jego możliwości, nie wiesz, gdzie i jak w nim opymalizować.

nie ucz ojca dzieci robić - skończ wać, wstydu oszczędź.

Człowieku, gdybyś miał taką wiedzę na jaką sam się określasz "oj wielki mistrzu" to już dawno wszystkie narody świata klękałyby przed twym tronem. Jak mniemam gm nie sprawia, że w komputerach pojawią się automatycznie jakieś cudowne dyski przy pierwszym jego użyciu, jeśli tak to sorry rzeczywiście się mylę.

Odnośnik do komentarza
Udostępnij na innych stronach

nie wiem, czego sie czepiasz. ja Cie tylko strofuje odnosnie GMa i zdania, ze streaming w nim sie nie nadaje. Ty jakims cudem szukasz zaczepki, skaczac z tematu na temat. chillout, Zuczku, rodziny CI przciez nie zabilem, to sie nie zachowuj jak jakis nocny msciciel, wparowujacy w temat nie lezacy we wlasnym doswiadczeniu ;)

 

i koniec dyskusji na ten temat, bo to nie miejsce do sprzeczek. Chcesz się kłócić? zapraszam na PW :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...