Skocz do zawartości

Robotix


Dawidds

Sonda  

22 użytkowników zagłosowało

  1. 1. jaki widok jest lepszy?

    • Top-down
      7
    • Izometryczny
      15


Rekomendowane odpowiedzi

Tytuł: Robotix (nazwa, ekhem, "kodowa")

 

Gatunek: logiczna, z elementami programowania :P

 

Opis: W grze sterujemy robocikiem, którego celem jest zberanie wszytskich monet/diamentów/czy czegoś w tym stylu na planszy, uważając, a by przy tym nie skończyła nam się bateria. Proste, nie :) ?

Dobrze myślisz - nie do końca.

Robicikiem nie sterujemy strzałkami, tylko kodem skryptowym - taki GML, tyle, że inne funkcje :P

 

Oczywiście, kod nie będzie się ograniczał do "ręcznego" przekazania robotowi dokładnej trasy wędrówki, robocik musi sam za pomocą swojego AI wynaczyć sobie trasę wędrówki.

 

Myślałem również nad wprowadzeniem robocika w izometrię, i, chyba, tak właśnie zrobię :P (wtedy plansze nie musiały by być dwuwymiarowe - robocik mógłby spadać z wyższych poziomów na niższe, wchodzić na większe używając jakiegoś pola "windy", lub po prostu wjeżdżając na nie po pochyłych platformach - tu możliwości były by większe)

 

Autorzy:

Kod:
Dawidds

Grafika:
Dawidds

GMThreads:
Snake

Przewidywana data premiery:

Demo:
8 maj 2009

Pełna wersja:
czerwiec/lipiec 2009

Co zostało do zrobienia:

1. Pisanie własnych funkcji

2. Jakiś "normalny" edytor kodu

3. Ograniczenia (HDD/BATERIA)

4. Pseudo-parser, który z takiego kodu:
if(...){ ... }

zrobi mi taki:
if(...)
      {
      ...
      }

5. Menu, lvle, itd.

Komendy

go(n) - porusza robota o n miejsc do przodu.

dir_set(angle) - ustawia robota, aby patrzył na podany kąt (0/90/180/270. Jeśli wpiszemy np. -90 - oczywiście będzie to rozumiane jako 270)

dir_upp(angle) - dodaje do kątu robota [angle]. Czyli np. kod dir_upp(90) obróci naszego robota w lewo (względem tego kierunku, w który aktualnie patrzy)

free_pos(x, y) - sprawdza, czy pozycja x,y nie jest zajęta przez ścianę

*free_left() - sprawdza, czy pozycja po lewej stronie od robota (względem tego, gdzie aktualnie patrzy) ie jest zajętaprzez ścianę.

*free_right() - analogicznie do powyższego, tyle, że w prawo

robot_dir() - zwraca aktualny kąt patrzenia robota

robot_x() - zwraca pozycję x robota

robot_y() - zwraca pozycję y robota

 

* - te funkcje chyba wycofam, ponieważ zbytnio ułatwiają one grę. Jeśli ktoś ich potrzebuje, może je sobie sam napisać - ale będzie go to kosztowało kilka kolejnych linii kodu :)

Dlaczego zbytnio ułatwiają grę? Ano dlatego, że dzięki nim napisanie kodu, za pomocą którego robot przejdzie pokazany na screenie korytarz, jest banalnie proste - ogranicza się do napisania 12 linii kodu... ;/

A tak, to ktoś będzie musiał sam sopbie napisać taką funkcję, a, żeby nie zajmowała za dużo linii, będzie musiał pomysleć, że w tym przypadku przydatny będą lengthdiry ^_^

Screen(y)

Po co piszę ten temat?

A w sumie to sam nie wiem :P

Piszcze jakieś propozycje, czy coś.

Odnośnik do komentarza
Udostępnij na innych stronach

Fajny pomysł, lecz zbyt kojarzy mi się z grą colobot.

 

Piszcze jakieś propozycje, czy coś.

- Ja dodał bym 3d, nie musi być jakaś super bajerancka grafika ale 3d by nadało sporo klimatu grze.

- Kilka rodzajów robotów, jeden umie latać, drugi potrafi rozwalać kamienie itp. Dodaj też możliwość współpracy między nimi.

 

I mam jeszcze pytanie

Robota programujemy i on dopiero wykonuje wszystkie polecenia (złe polecenia = game end ?) czy robimy wszystko na żywca tz. jeżeli robot się zablokuje w trakcie wykonywania misji możemy go przeprogramować ?

 

btw. pokaż screena z jakiegoś kody.

Odnośnik do komentarza
Udostępnij na innych stronach

Kod to po prostu swykłe execute_string(), wcześniej przepuszczone przez pseudo-parser, aby np. nie używać GMowych funkcji, a jedynie te, które są stworzone przeze mnie, jako funkcje obsługiwane przez robota.

 

Co do colobota - grałem w niego, ale te gry mają trochę inne założenia. :P

Tutaj mamy po prostu pojedyncze levele - a na każdy określoną ilość linii kodu (tylko muszę skończyć ten parser, aby nie można było całego kodu ująć w jednej linii).

 

Robota programujemy raz, i odpalamy kod przez F9.

 

Zawsze możemy wcisnąć F8 - otworzy nam się systemowy Notepad z aktualnym kodem - możemy sobie wpisać nasz kodzik w Notatniku, i wczytać do gry przez F6.

 

Skoro na kod mamy ograniczoną liczbę kodu, to chyba logiczne, że kod wykonujemy raz... :P

Jeśli się nam nie uda - F2 to nowa gra.

 

Prosiłem Bagna, żeby napisał mi jakiś edytor kodu pod moje potrzeby, ale jedyne, co mu się chciało zrobić to jakiś "Bitch Editor v666", na dodatek źle działający :3

 

Muszę jakoś rozbudować wbudowany edytor.

O, wiem. Zrobię wcięcia (Tabulatory) :D

 

Hmmm...

Jeśli Notepad++ jest open source, to mogę go wsadzić do gry?

Odnośnik do komentarza
Udostępnij na innych stronach

Robicikiem nie sterujemy strzałkami, tylko kodem skryptowym - taki GML, tyle, że inne funkcje :P

 

Oczywiście, kod nie będzie się ograniczał do "ręcznego" przekazania robotowi dokładnej trasy wędrówki, robocik musi sam za pomocą swojego AI wynaczyć sobie trasę wędrówki.

 

Niezbyt rozumiem elementy zaznaczene grubszą czcionką. Trochę to nielogiczne.

E:

 

Robota programujemy raz, i odpalamy kod przez F9.

Jak pisałem jeszcze tego nie było. No to to wszystko wyjaśnia. A pomysł ogółem ciekawy.

Odnośnik do komentarza
Udostępnij na innych stronach

Gdzie Full?:x
O.o ?

Weź rozwiń tą wypowiedź, bo nie mam pojęcia, o co Ci chodzi.

 

Zostało mi do zrobienia naprawdę niewiele, za tydzień spokojnie będę miał zrobiony engine, to dam demo, i zostanie mi (według moich rozważań... ^_^) miesiąc-dwa na zrobienie leveli, tutoriala, i ogólnie rzecz biorąc doprowadzenie gry do końca.

 

Kuchnia, chyba zrobię od razu tą izometrię. Jest ktoś chętny na zrobienie graficzek chociaż ściany i robota (izometrycznych) ^_^ ?

 

Ed: Lol... nie wiem, jak mogłem napisać 2009... :D

Odnośnik do komentarza
Udostępnij na innych stronach

No, mam już izometrię.

Teraz tylko zrobić jakiś system współrzędnych w tej izometrii (narazie nie ma funkcji: robot_x/y oraz free_pos (ale kolizje są - nie da się wejść w ścianę))

A po tym przyjdzie pora na zrobienie systemu wysokości tych bloczków... to dopiero będzie jazda :D

 

Co do chwytaka - całkiem dobry pomysł, ale jeszcze zobaczę.

 

47x8 - a żeś się czepił... xP

To i tak nazwa tymczasowa.

 

O, właśnie.

Możecie się wykazać.

Kto wymyśli najlepszy tytuł będzie w creditsach, lol :D

Nie no, serio. Dajcie jakiś dobry pomysł, bo ja zbyt twórczy pod tym względem nie jestem... :P

 

Zrób wersję "gmRobotix" z prawdziwymi komendami gmla, można by wtedy dać tą grę jako kurs dla początkujących!
Nie do końca zrozumiałeś.

Cała składnie "języka" jest identyczna, jak w GMLu (bo właścicie to to jest gml...).

Jedynie jest zablokowana większość funkcji typu: instance_create, game_end, sprite_create_x etc.

I kilka elementów składni - zmienne globalne (skoro sterujemy jednym robotem (patrz: instancją) to po co nam one :P ?) oraz "with(obj/ins)".

 

Ed: Kurna, za cholerę nie mogę wymyślić, jak by tu określić współrzędną obiektu w siatce iso :P

Jeśli przesuwam obiekt jakby w prawo (dir==0), to w rzeczywistości przesuwam go tak:

x+=24;

y-=12;

I powiedzcie mi teraz, jakby tu poznać pozycję obiektu w takiej "krzywej" siatce ;/ ?

Jakieś propozycje :D ?

Odnośnik do komentarza
Udostępnij na innych stronach

No, mam już izometrię.

Szkoda. Mialem nadzieje ze bedzie to widok top-down. Przynajmniej latwiej byloby Ci zachowac estetyke. Ale i tak jestem optymistycznie nastawiony do projektu. Nic wiecej nie moge powiedziec, mam tylko nadzieje, ze to co masz zamiar zrobic - zrobisz :)

Odnośnik do komentarza
Udostępnij na innych stronach

Się screena czepiacie.

 

A co miałem na nim niby pokazać :P ?

Ew. mogłem dać z napisanym jakimś kodem, ale chyba każdy tu piszący ma GMa, i widział kiedyś na oczy GMLa - to jest to samo, tyle, że dostępne funkcje są trochę inne. :P

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli najprostrzy rodzaj przekazu podprogowego. W skrócie-zmień to.

E:rozwijam myśl- Nie pasuje, a nad grafą trzeba się niestety pocić czasami.

E2: Nie chcę się kłócić, ale przedstawiony na screenie kąt patrzenia to dimetria raczej a nie izometria

 

Izometria:

http://www.bonix.webpark.pl/izometria.jpg

Dimetria:

http://upload.wikimedia.org/wikipedia/comm...C5%9Bna.svg.png

 

Co do skreślonej wypowiedzi- swiatło słoneczne idące od lampy widocznie mi wypaliło część oka i nie zauważyłem że to izometria.

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli najprostrzy rodzaj przekazu podprogowego.
lol :D

Akurat teraz piszę silnik, a nie robię grafiki... ;/

 

Zresztą, od tematu odjechaliście.

Piszcie jakieś super propozycje lepiej :D

 

A ja chyba będę musiał zrobić określanie współrzędnych "na chama" - po prostu, jeśli przesuwam gracza w prawo, to zwiększam wartość jakieś tam zmiennej grid_x o 1... ;/

Ale to jakieś takie, ee, nie satysfakcjonujące rozwiązanie... :P

 

Ed: Już nie będę kolejnego postu pisał:

 

Ale jaki ja screen mam jeszcze dać niby :P ?

 

Dałem tyle, ile mam.

Teraz pracuje nad jakimś systemem wysokości poszczególnych bloczków, jak skończę, dam screena.

Odnośnik do komentarza
Udostępnij na innych stronach

To miały byś pomysły, a nie prośby o screeny.

@topic - dorób podłych alienów chodzących po mapie, a ty jako robocik musisz wybrać odpowiedni moment na włączenie akcji, oraz dodaj funkcję wait(x), zeby chwile poczekał np. jakby puścić go gdzieś a potem żeby poczekał pół sekundy zanim pójdzie, żeby nie wpadł na zuego aliena i żeby alien go nie wciągnął na obiad.

Odnośnik do komentarza
Udostępnij na innych stronach

Hmmm... alieny to oczywiście sience-fiction, ale jakieś wysuwające się w ustalonym rytmie ostrza mogą być ciekawe. :P

 

I jeszcze jedno: funkcje typu: sleep, max/min, sqrt/sin/power, mod/div, lengthdir_x/y (choć go raczej nazwę ldir_x i ldir_y - krócej)(ogólnie głównie matma) będą działały i tutaj.

Odnośnik do komentarza
Udostępnij na innych stronach

Alieny trochę nie pasują. Ale miny, niewybuchy w które jeśli się puknie to wybuchną, jakieś pułapki typu mostek nad jeziorem kwasu mogłyby być.

 

pomysły? Proszę bardzo:

-wspomniane miny

-działka wspomagające( np. Do rozwalenia przeszkody)

-zue roboty

-do obrony: kamienie i złom do rzucania

-elementy które można przesuwać

-zue działka które nas atakują

-śmigło lub skrzydła do przeprawy nad przepaścią lub jeziorkiem

-przełączniki, przyciski, konsole do aktywacji, dźwignie i inne ustrojstwa do manipulacji, chociażby drzwiami

-cdn.

Odnośnik do komentarza
Udostępnij na innych stronach

Najlepszy pomysł z tej listy to przesuwalne elementy - można go wykorzystać na wiele sposobów, np. przesunięcie jakieś skrzynki w dziurę (poziom niżej), aby można było po niej przejść.

 

Choć, kuchnia, powoli zaczynamy odchodzić od głównego założenia gry... xP

 

Kurna, ciągle mi chodzi po głowie, w jaki by tu cudowny sposób sprawdzać tą pozycję robota w siatce.

Zrobiłem to na razie na chama, jak pisałem, ale wcale mnie to nie satysfakcjonuje :P

A wręcz przeciwnie - np. w roomie, w Cereation Code muszę walnąć aktualną pozycję gracza - no chyba, że zawsze zaczynało by się w tym samym miejscu.

 

Już nawet przez myślałem, czy by nie zrobić każdej możliwej pozycji [if(x==liczba && y==liczba2){ grid_x=cos; grid_y=cos }]... :P

 

Ed:

Bonus który wykonuje określony kod bez potrzeby pisania kodu
Rozwiń myśl.
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ę...