Skocz do zawartości

Nubosabuk

Użytkownicy
  • Postów

    45
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Nubosabuk

  1. Chcę zrobić przesuwanie viewa w ten sposób: przesuwam myszką z wciśniętym mb_middle -ekran się przesuwa gdy poruszamy myszką (ale się nie centruje na niej!)- podobnie jak w http://maps.google.pl. Czyli tak naprawdę mouse_x i mouse_y się nie zmienia, a zmienia się view_xview i view_yview. Nie potrafię wpaść na pomysł jak to rozwiązać.
  2. dzięki za obszerną odpowiedź. pokombinuję :)
  3. w mojej grze (https://forum.gmclan.org/index.php?showtopic=27269 ) mam mnóstwo obiektów- jest kilkadziesiąt tysięcy obiektów gwiazd, każda z nich zawiera dane na temat samej gwiazdy jak i tablice z danymi na temat planet krążących wokół niej. Za każdym razem gdy odwiedzany jest układ planetarny, obiekt gwiazda generuje układ planet na podstawie tych danych. Póki co, są one w większości statyczne, lecz wprowadzając interakcje z planetą- wydobycie surowców, budowanie infrastruktury itp będę pewnie potrzebował wydajniejszego systemu zarządzania danymi, bo chyba bez sensu za każdym razem ładować do obiektu gwiazdy setki różnych informacji- przy tysiącach gwiazd zapchał bym pamięć lub za wolno by to działało. Jak się zabrać do zrobienia ogromnej bazy danych w pliku? tak jak grid jest dwuwymiarową tablicą to chyba potrzebował bym więcej wymiarów, ze względu na zagnieżdżenie danych (gwiazda->planeta->info o planecie-> i może coś jeszcze dalej). Co radzicie?
  4. to może być też po prostu bug z którym nic nie zrobisz, a minecraft ma ich pełno. Niektóre są śmieszne- na kompie kumpla zabicie kurczaka zawsze kończy się crashem gry, nieważne czy to on zabił czy któryś z innych graczy:)
  5. pracuję nad generatorem planet, oto pierwsze efekty( są to zapisane surface). tekstura jest tworzona na takiej zasadzie jak opisałem wcześniej( oczywiście daleko jeszcze do efektu końcowego) przy okazji może poradzicie mi jak obrócić kulę planety tak aby "biegun" nie był po środku surafece? próbuję ją obrócić, ale to nie działa;/ GML d3d_transform_set_identity(); d3d_transform_set_translation(-(half_aa-500),-(half_aa-500),0); d3d_transform_set_rotation_z(90); d3d_transform_set_translation(0,0,0) d3d_draw_ellipsoid(half_aa-500,half_aa-500,0,half_aa+500,half_aa+500,1000,surface_get_texture(tekstura[numer]),-1,-1,64); d3d_set_lighting(0); d3d_transform_set_identity(); kod jest wykonywany na surface
  6. masz pomysł na generator planet czy na generator grafiki do planet? bo u mnie te dwie rzeczy są osobno- grafika planety zależeć będzie w pewien sposób on właściwości fizykochemicznych planety. Z tych właściwości stworzony będzie seed na podstawie którego będzie generowany wygląd ( a przynajmniej takie mam założenie wstępne). Planety już teraz w miarę ładnie wyglądają, bo jest to kula rysowana w 3D i oświetlana przez słońce następnie to rzutuję na surface i w ten sposób wyświetlana grafika jest już 2D. Teraz muszę wymyślić jak przełożyć seed na wygenerowanie tekstury którą pokryje kulę:)
  7. Tak się składa że nie robię gry tylko po to aby to skończyć ale także dlatego że sprawia mi to wielką frajdę. Dziękuję za propozycję ale dopóki mnie to nie przerasta zamierzam w miarę samodzielnie wszystko zrobić, oczywiście posiłkując się pytaniami i waszą wiedzą:)
  8. powoli ale do przodu:) zaczęły się studia i mam mniej czasu(a w sumie to sił bo mam zajęcia codziennie od 13 do 21 i potem się po prostu nie chce myśleć). Pracuję teraz nad generowaniem grafiki dla planet i ogólnie nad właściwościami fizykochemicznymi planet. Raczej nie będzie multi, a przynajmniej nie w tej wersji gry, bo pewnie musiał bym ją na nowo napisać. A modowanie- nie wiem, zobaczy się potem czy będę umiał dać taką możliwość:)
  9. dzięki za szybka odp, zwłaszcza o tej porze :D
  10. Czy można zrobić coś takiego: po stworzeniu surface narysować na nim obiekt w 3d? Gdy kombinuję z kodem podobnym do tego poniżej to nie działa. GML grafika[numer]=surface_create(aa,aa); surface_set_target(grafika[numer]); d3d_start() draw_clear_alpha(c_white,0); d3d_draw_ellipsoid(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,steps) d3d_end() surface_reset_target();
  11. Oprócz generatora mapy nie zamierzam wrzucać do gry zdarzeń losowych, ale jeszcze może mi się to odwidzieć:)
  12. właśnie mi się odwidziało i chyba jednak generator zrobię, ale taki totalny, aby nic ręcznie nie dorabiać. A czy jestem dobry w generatorach? póki co zrobiłem jeden a i tak jeszcze nie na 100% gotowy. Uczę się od podstaw na tej grze właśnie:) zobaczymy co wyjdzie:)
  13. Dziękuję wszystkim za bardzo pozytywne i bardzo mnie motywujące komentarze:) Po pierwsze informacja o postępie prac: -doszło płynne przybliżanie/oddalanie - i układy planetarne, w których wielkości planet są w skali (czyli w takim modelowym układzie(takim jak nasz) różnica w wielkości/masie/gęstości pomiędzy np Ziemią, a Jowiszem będzie zachowana, Mj=317Mj, Rj=12Rz itd) -odległości między orbitami planet są na tyle zwiększone aby dać iluzję wielkiej odległości(docelowo będą to przeskalowane jednosti astronomiczne-AU, ale niewiem czy to będzie miało sens) Po drugie: Chciałbym się was poradzić. Chcę się zająć teraz grafiką planet. Widzę cztery możliwości: 1) zostawić tak jak jest- czyli generowany jest kolor planety tylko (w przyszłości zależny od składu chemicznego/rodzaju), 2) ręcznie narysować pulę kilkuset(?) planet i wyświetlanie konkretnej grafiki z tej puli w zależności od rodzaju planety, 3) rysowanie na surface'ach grafiki wygenerowanej (i przypisanej do konkretnej planety) z puli gotowych drobnych kawałeczków/plamek/smug itp, 4) rysowanie na surface'ach grafiki całkowicie wygenerowanej przez komputer, uwzględniając rodzaj planety, jej parametry fizyczne i chemiczne. pisząc to pytanie sam sobie odpowiedziałem co zrobię: Chyba druga opcja: ręczne rysowanie planet pozwoli na stworzenie pewnego klimatu w grze i indywidualnego charakteru. Co prawda dużo pracy, pewnie więcej niż z opcją czwartą, lecz to by pozwoliło na dodawanie grafik od innych zainteresowanych osób, oraz samo rysowanie było by frajdą, chyba że mi się odwidzi po narysowaniu setnej planetki:P to w tedy opcja 3 lub 4.
  14. Ten sposób wygląda fajnie, wypróbuję. Super efekt Ci wyszedł:) nie myślałem że jednym sprajtem można tak wiele osiągnąć Dzięki:)
  15. niestety już tak napisane miałem wcześniej, teraz na wszelki wypadek jeszcze raz sprawdziłem i nic. Ewentualnie może macie jakąś radę jak inaczej podejść do zagadnienia płynnego przybliżania/oddalania?
  16. spróbuję tak jak napisałeś (EDIT: spróbowałem i nie działa). A z tymi wartościami to tak: zmienna zoom_ukl zmienia się poprawnie, w momencie ruszania kółkiem myszy, natomiast zmienna przyblizenie co step zwiększa się/zmniejsza się o 0.1 jeśli nie jest ona równa zoom_ukl. W momencie wyrównania się wartości zmiennej przyblizenie z tą drugą, gdy wartość zmiennej przybliżenie jest mniejsza równa niż 53, zaczyna ona oscylować wokół tej wartości. Np dla wartości zoom_ukl==10, przyblizenie będzie się zmieniać z 10 na 10.1 i tak w kółko.
  17. W stepie mam kod (zamieszczony poniżej). Składa się on z dwóch części: jedna zajmuje się przybliżaniem/oddalaniem w momencie gdy aktualnie znajdujemy się w układzie planetarnym, a druga część zajmuje się tym samym, lecz gdy znajdujemy się w przestrzeni między-gwiezdnej. Obie części są IDENTYCZNE, różnią się tylko jedną zmienną. W eventach Mouse Wheel Up / Mouse Wheel Down zmieniają się zmienne: zoom_ukl (jeśli w układzie) i global.zoom (jeśli w galaktyce)- wartości zmieniają się o 1 co ruch kółkiem myszy . W momencie zmiany tych zmiennych kod ma płynnie dokonać przybliżenia lub oddalenia wykorzystując do tego zmienną przyblizenie. Teraz czas na problem: w widoku galaktyki wszystko działa tak jak chcę, a w widoku układu w momencie przybliżania gdy, zmienna przyblizenie osiągnie wartość 53, zaczyna zmieniać wartość co step z 53 na 53.1 potem znów 53 itd. i dzieje się tak z każdą kolejną wartością: 52, 51 aż do 1. Może jeszcze dodam że wartością początkową dla zoom_ukl jest 59 ( gdy pojawiamy się w układzie to widzimy od razu cały układ) a jedynka oznacza, że mamy przybliżoną planetę(i statek) na maxa. Nie wiem czy jest to zrozumiałe, w razie czego postaram się coś dopowiedzieć. GML if global.zoom==0 { //oddalanie/przyblizanie w ukladzie planetarnym if przyblizenie==zoom_ukl { //nic tu nie ma } else if przyblizenie > zoom_ukl { przyblizenie-=0.1; } else { przyblizenie+=0.1; } view_wview[2]=global.view0_w*przyblizenie; view_hview[2]=global.view0_h*przyblizenie; //centrowanie widoku na statku if instance_exists(obj_statek1) { view_xview[2]=obj_statek1.x-view_wview[2]/2; view_yview[2]=obj_statek1.y-view_hview[2]/2; } } else { //oddalanie/przyblizanie w galaktyce if przyblizenie==global.zoom { //nic tu nie ma } else if przyblizenie > global.zoom { przyblizenie-=0.1; } else { przyblizenie+=0.1; } view_wview[0]=global.view0_w*przyblizenie; view_hview[0]=global.view0_h*przyblizenie; //centrowanie widoku na statku if instance_exists(obj_statek1) { view_xview[0]=obj_statek1.x-view_wview[0]/2; view_yview[0]=obj_statek1.y-view_hview[0]/2; } //info ze teraz widok 0 jest widoczny global.widok=0; }
  18. jak będzie więcej możliwości w grze niż tylko rozrywka typu "połącz kropki" to pewnie wrzucę tutaj, lecz radzę uzbroić się w cierpliwość:) Jak chodzi Ci o wyświetlanie mapy: jest to statyczny obraz(PNG) wygenerowanej na początku gry galaktyki, jedynie pozycja gracza jest dynamiczna.
  19. na pewno gdy tylko zauważę spadek FPS będę starał się to zoptymalizować:) póki co, oczywiście po paru optymalizacjach FPSy spadają dopiero gdy w galaktyce jest powyżej 100tys gwiazd, a taka duża liczba gwiazd nie jest potrzebna:) ( w sumie nawet gdyby gwiazd było by "tylko" 1000 to i tak jest to bardzo dużo dla jednego gracza, ale chcę stworzyć wrażenie ogromu wszechświata.)
  20. No mgławice będą, ale póki co nie wiem jak zrobić(czyt. nie posiedziałem jeszcze nad tym) aby to dobrze wyglądało. Chciałbym aby były tez tworzone w miarę losowo, aby nie było sytuacji, że co jakiś czas w tle widać taką samą mgławicę.
  21. Tytuł: jeszcze nie wymyśliłem Gatunek: ekonomiczna, space sim Opis: Będzie to moja pierwsza gra. Głównym celem gry będzie kolonizacja kosmosu- eksploracja galaktyki,terra-formowanie planet, tworzenie kolonii i zarządzanie nimi, wydobycie, produkcja i handel dobrami. Gracz będzie miał do dyspozycji wielką galaktykę( galaktyka na screenie zawiera około 35 000 układów planetarnych, w których mamy do dyspozycji około 170 000 planet). Za każdym rozpoczęciem nowej gry, galaktyka wraz z gwiazdami i planetami jest generowana od nowa. Parametry ciał niebieskich są mniej więcej takie jakie są w naszej rzeczywistości i występują z podobną częstotliwością, czyli możemy znaleźć czerwone olbrzymy , błękitne giganty, czerwone karły, czy zwyczajne słoneczka takie jak nasze. Podobnie jest z planetami- skaliste, gazowe lodowe, małe, wielkie. Na pewno dodam jeszcze wiele innych obiektów takich jak czarne dziury, kwazary itp. Na dzień dzisiejszy gotowy jest generator galaktyki(tworzenie go, było póki co największą frajdą dla mnie:)), można poruszać się statkiem pomiędzy układami oraz je odwiedzać i poruszać się między planetami. Rysowana jest droga którą przebyliśmy, aby się nie zgubić zbyt łatwo, przybliżanie/oddalanie oraz mapka,ekran ładowania na którym można zobaczyć kształt generującej się galaktyki, no i menu ale niema co pokazywać:). Mam może duże ambicje, ale się nie poddaję i powolutku, małymi kroczkami tworze swoje dzieło. Jak widać jeszcze daleka droga przede mną:). Proszę o uwagi i sugestie, pomysły. Autorzy: Programowanie: ja Fabuła: brak(póki co) Grafika: ja Muzyka: brak(póki co) Screeny: widok z gry ekran ładowania układ planetarny oraz mapa galaktyki w raz z aktualną pozycją gracza
  22. no tablica była by fajna, ale jak zrobić aby linia rysowana była zawsze pomiędzy ostatnim punktem, a pierwszym przechodząc przez punkty pomiędzy, biorąc pod uwagę to,że co chwile dochodzi punkt pierwszy, a te ostatnie są kasowane, tak aby linia łączyła max 10 układów naraz przy zachowaniu kolejności oczywiście. Hmmm akurat wpadłem na pewien pomysł, pokombinuję:). EDIT: Ach! Nie skumałem na początku o co chodzi z tablicą, którą zaproponowałeś, ale już do mnie dotarło. Pokombinuję. Dzięki:)
×
×
  • Dodaj nową pozycję...