Skocz do zawartości

[pomysł] Symulator mechaniki 2D i walki robotów


TSr

Polecane posty

Pomysł “męczy” mnie już od dłuższego czasu. Początkowo myślałem tylko o prostym programie do rozwiązywania zadań z mechaniki, ale może to być znacznie ciekawsze :twisted: Chcę stworzyć symulator mechaniki 2D, który możliwie dokładnie odzwierciedlał by rzeczywistość. Projekt jest na tyle rozległy, że sam raczej nie mam szans na jego zrealizowanie.

Projekt składa się z trzech bardzo ogólnych części:
1.Symulator fizyki 2D
2.Silnik rozgrywek
3.Edytory (robotów, materiałów, map i inne)

:idea: Ad1. Symulator fizyki 2D
:arrow: Każde ciało “wpuszczone” na arenę zachowuje się zgodnie z prawami fizyki (grawitacja, magnetyzm, lepkość, zderzenia, siły bezwładności i co tylko się da).

:arrow: Zdefiniowane zostaną podstawowe elementy, z których będzie budowało się owe roboty. Np: pręty, siłowniki, silniki, cięgna, sprężyny, przyssawki, uchwyty i inne.
Każdy element będzie wykonany z jednorodnego materiału, który będzie posiadał swoje właściwości (wytrzymałości, gładkość, twardość).
Elementy łączone będą ze sobą za pomocą połączeń przegubowych.

:arrow: Arena (miejsce akcji) będzie przypominała wyglądem gry takie jak Worms czy Soldat. Jeszcze nie wiem czy samą arenę będzie dało się odkształcać czy będzie niezniszczalna. Akcja może dziać się w różnych ośrodkach (powietrze, woda, olej itd.) i przy różnej grawitacji. Wprowadzić można warunki atmosferyczne (wiatr, temperatura). Areny pełne będą niespodzianek. Tu czy tam może uderzyć piorun. Ukryte zapadnie. Pola magnetyczne. Co kto wymyśli jeszcze wink.gif

:arrow: Zbudowanym robotem sterować będzie można “ręcznie”, definiując odpowiednio ruchy (lub całe cykle ruchów) napędów za pomocą klawiatury i/lub myszki. Będzie też możliwość pisania skryptów AI.

:idea: Ad2. Silnik rozgrywek
“Czystym” symulatorem chyba długo nikt się nie będzie bawił więc można zrobić z niego całkiem niezłą gierkę.
Pomysły mam takie:
Wyścigi – na specjalnie przygotowanej arenie. Kto pierwszy z punktu A do B, albo wyścig na okrążenia.
Walki robotów (wg mnie najciekawsze :> ) - materiały, z których budowało by się maszyny miały by określone wytrzymałości na różne parametry tak więc będzie można je niszczyć. Pole do popisu ogromne. Można też zastosować wirtualnych sędziów do oceny walki (np opartych na skryptach).

:idea: Ad3. Edytory
:arrow: Materiałów – Definiowanie materiałów, z których wykonane będą elementy.
:arrow: Elementów – Tworzenie części składowych do budowy robotów.
:arrow: Robotów – projektowanie robotów z gotowych elementów oraz definiowanie klawiszologii, sposobu ruchu i inne.
:arrow: Map – projektowanie konkretnych aren.


Założenia techniczne
:arrow: Język programowania: Object Pascal (FreePascal, Lazarus)
:arrow: Systemy operacyjne: Linux, Windows
:arrow: Inne: Technologia COM (jeszcze nie wiem jak z tym na Linux'ie jest), grafika - SDL, dźwięk - OpenAL (lub też SDL lub inna)

Czekam na uwagi, pomysły, propozycje i ... chętnych do pracy, którym podoba się pomysł 8)

Link do komentarza
Udostępnij na innych stronach

Witam !
No muszę przyznać, że pomysł ciekawy smile.gif
Tylko tak samo jak destruction obawiam się, że mogą wystąpić spore problemy np. z napisaniem silnika fizycznego i szybkością działania, ale masz ten komfort że piszesz w 2D więc jest to możliwe.

Pisałeś już kiedyś tego typu rzeczy ?
Daj jeszcze jakieś swoje prace/wcześniejsze projekty/dokładniejsze informacje(bo to jest tylko wynik jaki chcesz osiągnąć), w ciemno to raczej nikt o zdrowych zmysłach się nie przyłączy smile.gif.
Życzę powodzenia.

Pozdrawiam
Spider ^*^

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

jak będzie ustawiona mapa? zakładamy, że mapa jest pozioma, czy pionowa?
różnica jest znaczna- przy mapie poziomej nie bierzemy pod uwagę np. grawtacji (bo nie można się unieść nad mapę)
Z kolei w przypadku mapy pionowej nie będzie można przejść przed/za przeszkodą. ma to znaczenie np. w starciach z piorunami.
Link do komentarza
Udostępnij na innych stronach

To na razie brakuje śmiałków? laugh.gif

CYTAT(Spider100)Pisałeś już kiedyś tego typu rzeczy ?
Daj jeszcze jakieś swoje prace/wcześniejsze projekty/dokładniejsze informacje(bo to jest tylko wynik jaki chcesz osiągnąć), w ciemno to raczej nikt o zdrowych zmysłach się nie przyłączy smile.gif.

Pisałem, ale nie aż tak skomplikowane. Od efektu końcowego właśnie zaczynam. Chcę w miarę precyzyjnie określić co ma być stworzone, a sposobami i metodami zająć się [b]puźniej.
To będzie raczej otwarty projekt i nie wiem co masz na myśli pisząc \"w ciemno\". To nie jest tak, że zbiera się ekipa i od razu zaczynamy klepać kod. Najpierw trzeba trochę poplanować.

Co do szczegółów technicznych to cały projekt będzie podzielony na wiele małych modułów. Zapewne będą to biblioteki [b]dołanczane dynamicznie...

CYTAT(ktoś)jak będzie ustawiona mapa? zakładamy, że mapa jest pozioma, czy pionowa?

Nie bardzo rozumiem o co chodzi :?
Mapa (arena) będzie mogła być dość dowolna. Czyli taka jaką ktoś sobie wymyśli smile.gif Grawitacja może wystąpić bądź nie. Może być punktowa lub jednorodna. Wszystko ma być w pełni konfigurowalne.

[quote] uważam, że to będzie niezły hardkor wink.gif [/quote]
Ja również tak uważam laugh.gif , ale Ambicja ponad wszystko :twisted:
Projekt nie ma na celu jedynie osiągnięcie założeń, ale także doskonalenie swoich umiejętności 8)

Link do komentarza
Udostępnij na innych stronach

CYTAT(TSr) [quote]
jak będzie ustawiona mapa? zakładamy, że mapa jest pozioma, czy pionowa? [/quote]

Nie bardzo rozumiem o co chodzi :?
Mapa (arena) będzie mogła być dość dowolna. Czyli taka jaką ktoś sobie wymyśli smile.gif Grawitacja może wystąpić bądź nie. Może być punktowa lub jednorodna. Wszystko ma być w pełni konfigurowalne.

Ktosiowi (jak to sie odmienia? biggrin.gif ) chyba chodziło o to czy mapa jest widziana od boku (tak jak np. soldat) czy od gory (np. gta1-2).

Co do samego projektu to wydaje sie byc bardzo ciekawy, ale ukonczenie go (dojscie do 'uzywalnej' wersji) bedzie, jak to poprzednicy okreslili, nizlym hardkorem.
Szczerze mowiac to chyba bardziej interesuje mnie samo granie (czyli programowanie AI) niz pisanie tej gry - jesli juz to chyba tylko w tym pierwszym bylyby jakies efekty tongue.gif

Pozdrawiam,

vo7 (;

Link do komentarza
Udostępnij na innych stronach

[quote] To będzie raczej otwarty projekt i nie wiem co masz na myśli pisząc \"w ciemno\". [/quote]

Mam na myśli stratę czasu ;p.
Często wyobrażamy sobie takie rzeczy, których tak na prawdę nie jesteśmy w stanie osiągnąć. Założenie że „jeszcze się tego nauczę” nie są najlepsze do grupowej pracy :-).

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

Cokolwiek grywalnego z całą pewnością nie pojawi się zbyt szybko. Tak więc jest to zajęcie dla wytrwałych. Też chciałbym się już pobawić gierką, ale siłą rzeczy się nie da laugh.gif Nawet jeśli się projekt nie uda (odpukać!) to wg mnie nie będzie to stratą czasu smile.gif
Na razie poszukuję kogoś potrafiącego programować obiektowo w Pascalu i znającego podstawy Linux'a. Puźniej jeśli projekt pozostanie otwarty wink.gif każdy będzie mógł się przyłączyć. Wymagania nie są duże, a resztę potrzebnej wiedzy można zdobywać w trakcie prac - wbrew temu co pisze Spider, ale wiem o co chodzi wink.gif Mój zapał nie jest tym, który posiada osoba nie znająca się na rzeczy i myśląca, że zaraz zabierze sie za zrobienie własnej wersji Quake'a albo innego znanego tytułu biggrin.gif - ja mam konkretną koncepcję i wizję :!:

Link do komentarza
Udostępnij na innych stronach

znającego podstawy linuxa? jaki to ma związek, jeżeli można wiedzieć, ? chcesz to pisać z przeznaczeniem dla linuxa? nie żebym miał coś przeciwko, bo uważam, że linux jest lepszy od windowsa, ale linux nie jest zbyt popularny...
Link do komentarza
Udostępnij na innych stronach

[quote] znającego podstawy linuxa? jaki to ma związek, jeżeli można wiedzieć, ? chcesz to pisać z przeznaczeniem dla linuxa? nie żebym miał coś przeciwko, bo uważam, że linux jest lepszy od windowsa, ale linux nie jest zbyt popularny... [/quote]

Jak napisałem w założeniach - program ma działać na obu platwormach tzn i Windows i Linux (osobiscie zalezy mi nawet bardziej na Linux'ie). Ze względu na to, że jest to projekt niekomercyjny, nie muszę się liczyć z popularnością 8)
Link do komentarza
Udostępnij na innych stronach

  • 1 year later...

Sam kiedyś próbowałem robić coś takiego wink.gif
Małe pytanie: Czy będzie to czymś w rodzaju wormsów( np. różne bronie, odkształcany teren) czy crazy machines (typu : wszystko zależy od skryptu i rozmieszczenia elementów)?
Bo wtedy trzeba będzie programować w innym kierunku smile.gif
Możesz zrobić to tak, że sama gra inaczej działa z różnymi bibliotekami dll (np. tarcie.dll, aerodynamika.dll, grawitacja.dll) które użytkownik będzie mógł ściągnąć z internetu lub sam napisać(pomyśl więc o jakimś dodatkowym kreatorze)

Link do komentarza
Udostępnij na innych stronach

interesujace ale malo realne -> za duzo na raz.
niemniej moze w przyszlosci pomoge (raczej dalszej niz blizszej)
Ogolnie bariera dla mnie to SDL/Linux o ile SDL pewnie da sie przskoczyc bez wiekszego problemu o tyle Linux/FP raczej nie bedzie dla mnie do przejscia (przynajmniej narazie)

Tego typu projekt zaczalbym od obrej dokumentacji, jako ze sam (jak stwierdziles) nie dasz rady tego napisac, a bez doc nie pomoga ci inni za bardzo przy takim projekcie.

BTW. Czesc tego co opisales + pewnie wiele przydatnych innych rzeczy mamy w KN, jesli sie Blind/Force zgodzi mozemy ci udostepnic rozne czesci kodu. Mamy poczatek systemu fizyki + klasy do obudowy propertiesow/Edyotra + sporo helperow i interfejsow.

Anyway powodzenia smile.gif

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

Odgrzał się stary temat biggrin.gif Od tego czasu dużo się zmieniło. Nabierałem ciągle wprawy w pisaniu pod Linuksem. O pomyśle ciągle pamiętam i mam zamiar zacząć od planowania. Oznacza to, że nie napiszę ani linijki kodu zanim nie będzie jakichś dokumentów - taki mały przełom w moim podejściu do programowania wink.gif

Ten kod chętnie obejrzę więc mój mail czeka smile.gif
tsr at fenix.katowice.pl

Link do komentarza
Udostępnij na innych stronach

wiesz 64MB na maila to mam jakies opory smile.gif
pogadam z chlopakami i pchne ci zaproszenie do assembli.
z tym ze piszemy w TD wiec pewnie bedzie spory zgrzyt z lazarusem

OT:
Nie zwrocilem uwagi na date zalorzenia tematu, ale GRIGO czy ty czlowiku z choinki sie urwales ? odkopales temat z przed roku ! Myslalem ze to cos nowego ale teraz dopiero zwrocilem uwage ze dopisujesz jakies cuda do tematow ktore od miesiecy nikt nie uzywal... litosci...

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

[quote] Możesz zrobić to tak, że sama gra inaczej działa z różnymi bibliotekami dll (np. tarcie.dll, aerodynamika.dll, grawitacja.dll) które użytkownik będzie mógł ściągnąć z internetu lub sam napisać(pomyśl więc o jakimś dodatkowym kreatorze) [/quote]

O tak najlepiej dawać rady nie mając pojęcia o czym sie pisze smile.gif
tarcie.dll, aerodynamika.dll, grawitacja.dll? lol
Co to ma znaczyć ? Nie wystarczy fizyka.dll i pliki konfiguracyjne ? po za tym tarcie definiuje sie głownie dla obiektów a nie sceny.

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...