Matematički problemi pri izradi igara?

Sve vezano u matematiku & fiziku koja zaluta u vaš projekt.
User avatar
Denis
Sajentist on djuti!
Posts: 2618
Joined: Tue Aug 26, 2008 9:35 pm
Smallest prime number bigger than 20: 23

Matematički problemi pri izradi igara?

Post by Denis » Mon Jun 29, 2009 1:50 pm

Kad ste se zadnji put susreli s pravim matematičkim problemom pri izradi igara? Kakav je to problem bio? Ja osobno još nisam našiao na matematički problem pri programiranju koji nisam mogao riješiti (čak se ne sječam matematičkih problema uopće O_o).

User avatar
Overseer
Spaaaaaaace!
Spaaaaaaace!
Posts: 593
Joined: Tue Aug 26, 2008 2:02 pm

Re: Matematički problemi pri izradi igara?

Post by Overseer » Mon Jun 29, 2009 2:04 pm

DragonSoul wrote:Kad ste se zadnji put susreli s pravim matematičkim problemom pri izradi igara? Kakav je to problem bio? Ja osobno još nisam našiao na matematički problem pri programiranju koji nisam mogao riješiti (čak se ne sječam matematičkih problema uopće O_o).

Moji su problemi fizičke prirode, a samim time u osnovi i matematičke implementacije fizikalnih zakona su potrebne. Trenutno se igram sa gospodinom Keplerom.
Don't combine bracket and dot syntax in Objective-C, it's bad practice and quite irritating.
There is no such thing as a better graphics API. They are just different. And hot. And sexy. I should stop now.
Your matrices are belong to us.

User avatar
Denis
Sajentist on djuti!
Posts: 2618
Joined: Tue Aug 26, 2008 9:35 pm
Smallest prime number bigger than 20: 23

Re: Matematički problemi pri izradi igara?

Post by Denis » Mon Jun 29, 2009 2:05 pm

Kud si ti otišao na Keplerove zakone O_o? Mislim, ne znam previše o tome, valjda misliš na Keplerove zakone gibanja planeta? Ili je lik još nešto smislio?

User avatar
Overseer
Spaaaaaaace!
Spaaaaaaace!
Posts: 593
Joined: Tue Aug 26, 2008 2:02 pm

Re: Matematički problemi pri izradi igara?

Post by Overseer » Mon Jun 29, 2009 2:07 pm

DragonSoul wrote:Kud si ti otišao na Keplerove zakone O_o?
Planiram kasnije napisati DevLog za projekt svoj, budeš shvatio ako te zanima.
Don't combine bracket and dot syntax in Objective-C, it's bad practice and quite irritating.
There is no such thing as a better graphics API. They are just different. And hot. And sexy. I should stop now.
Your matrices are belong to us.

User avatar
Burek_fr0m_SPACE
Man from Another Place
Posts: 229
Joined: Tue Aug 26, 2008 2:11 pm
Smallest prime number bigger than 20: 23
Location: Black Lodge
Contact:

Re: Matematički problemi pri izradi igara?

Post by Burek_fr0m_SPACE » Mon Jun 29, 2009 2:51 pm

Vrlo mnogo uglova, vektora, sinusa, kosinusa i koječega je bilo u TerraRendu (da, znam da nije igra, ali je dovoljno blizu), s nekima se još uvijek borim. Zna biti vrlo za*ebano ako se nema mnogo iskustva i pogotovo kada se ne planira =)

User avatar
Luka
Posts: 1384
Joined: Tue Aug 26, 2008 3:32 pm
Smallest prime number bigger than 20: 23

Re: Matematički problemi pri izradi igara?

Post by Luka » Mon Jun 29, 2009 2:53 pm

y = ax + b, ovo redovito koristim pri provjeri sudara linija :)

Inače ih nemam puno (ali nije da imam puno projekata iza sebe :D)... uglavnom se svode na jednostavnu trigonometriju ili probleme za koje je dovoljan 1. razred srednje.
  • You know your project is in trouble when..
    ...when you wonder if you could optimize your fps counter function in order to gain extra fps...
    ...and you double your fps doing so.

User avatar
Danijel Korent
Romulanski špijun na Zemlji
Posts: 1583
Joined: Fri Sep 05, 2008 12:35 pm
Smallest prime number bigger than 20: 23
Location: Njemacka
Contact:

Re: Matematički problemi pri izradi igara?

Post by Danijel Korent » Mon Jun 29, 2009 8:49 pm

RayDX wrote:Planiram kasnije napisati DevLog za projekt svoj, budeš shvatio ako te zanima.

Hmm... ovo i mene zanima... u planu mi je projekt gdje ce mi to intezivno trebati, i za "staticko" racunanje i za real time izracune...
a.k.a. Koki

User avatar
Overseer
Spaaaaaaace!
Spaaaaaaace!
Posts: 593
Joined: Tue Aug 26, 2008 2:02 pm

Re: Matematički problemi pri izradi igara?

Post by Overseer » Mon Jun 29, 2009 9:57 pm

koki007 wrote:
RayDX wrote:Planiram kasnije napisati DevLog za projekt svoj, budeš shvatio ako te zanima.

Hmm... ovo i mene zanima... u planu mi je projekt gdje ce mi to intezivno trebati, i za "staticko" racunanje i za real time izracune...
Valjda ću ga onda napisati, evo sad sam se nešto oslobodio od škole pa bez grižnje savjesti mogu pisati stvari za DB. Nadajmo se da će stići i taj DevLog :D
Don't combine bracket and dot syntax in Objective-C, it's bad practice and quite irritating.
There is no such thing as a better graphics API. They are just different. And hot. And sexy. I should stop now.
Your matrices are belong to us.

User avatar
EmP
Veliki brat malih trokuta
Posts: 498
Joined: Tue Sep 01, 2009 10:14 pm
Smallest prime number bigger than 20: 23
Location: Zagreb
Contact:

Re: Matematički problemi pri izradi igara?

Post by EmP » Fri Sep 27, 2013 2:30 pm

Dižem jako staru temu iz mrtvih al htio bih svratit pozornost na ovaj aspekt u izradi igara. Zapravo htio podić svjesnost o matematičkim pitanjima u samom dizajnu igre no o tom potom, malo je offtopic za sada.

U Zvijezdojecu svako toliko naletim na problem tipa "želim ovakvo ponašanje, koja je funkcija za to":

Primjer 1

Primjer je chance to hit koji sam opisivao na svom blogu. Funkcionalni zahtjev je bio da trebam shemu po kojoj svaki poen doprinosi podjednako. Znači ako +1 znači da imaš 5% bolju šansu da +2 znači da imaš 5% bolju šansu nego s +1. Primjer pristupa koji ne zadovoljava je D&D rješenje. Tamo kako se šanse za pogodak ovise o razlici attack ratinga i defense ratinga i vjerojatnost se mijenja s koracima od 5% (5%, 10%, 15%, ..., 90%, 95%). Razlika između 5% i 10% je puno veća od razlike između 10% i 15% a u obje situacije se attack - defense mijenja za samo 1 poen. I drugi problem D&D metode je kad je razlika veća od +/- 10 poena da ona nastupaju posebna pravila (1 na kocki uvijek fula, 20 uvijek pogađa). Ono što meni treba je više u stilu a * 1.05^x dok je klasični D&D prstup a + 0.05x. Matematički put kojime se dođe do eksponencijalne funkcije je ovakva diferencijalna jednadžba:

y' = ky

Gdje je y funkcija, y' derivacija te funkcije i k neki koeficijent. U prijevodu ta jednadžba znači "strmina (brzina promjene vrijednosti) funkcije je proporcionalna njenoj trenutnoj vrijednosti". A bi model bio potpun treba paziti na činjenicu da vjerojatnost ne može biti veća od 100%. Ja sam to riješio tako da sam razlomio chance to hit na pravi chance to hit i chance to miss. Ako je attack < defense onda se računa to hit a u protivnom to miss pa se konačna šansa izračuna kao 100% - chance to miss.

Primjer 2

Drugi primjer u Zvijezdojecu koji zahtjeva matematiziranje je kako računati proizvodnju hrane. Proizvodnja hrane je mehanika kojim je igraču uskraćen dio stanovništa koji bi se inače bavio gradnjom ili znanošću. Iskorištavanje situacija i razvoj tehnologija koje poboljšavaju poljoprivredu poboljšava brzinu razvoja ali ne "iz istog smjera" kao direktni bonusi na učinkovitost industrije i znanosti. U Master of Orionu 2 svaki stanovnik proizvodi određenu fiksnu količinu hrane, tj. čisti a * n gdje je a učinkovitost farmera a n broj farmera. Nedostatak tog pristupa je da mehanika "izlazi iz igre" kako učinkovitost farmera raste. Na početku svaki farmer na početnom planetu proizvodi hrane za 2 stanovnika što znači da samo pola populacije može raditi "pravi posao", štancat brodove i tehnologije. Tehnologija koja diže učinkovitost farmera za +1 jedinicu hrane je brutalno jaka u tom stadiju igre jer diže produktivnost za 33% (trećina ljudi proizvodi hranu a ostale 2/3 proizvode što već, (2/3)/(1/2) = 4/3). Kad se dođe do stadija gdje svaki farmeri uredno proizvodi 10 jedinica hrane onda bonus od +1 ne znači mnogo, samo 1% više "slobodne" populacije. Ono što ja želim je da igrač ima razloga razvijati proizvodnju hrane i na početku igre i u sredini a tek pred kraj da dolazi do metoda da je se riješi.

Za sada sam pri ideji da može biti samo određen broj farmera koji rade "u polju" s normalnom učinkovitošću a ostali rade "kod kuće" s minimalnom učinkovitošću. Tak da ak igrač previše razvije metode za povećanje broja populacije (urbanizacija, naseljavanje orbite i sl.) bez popratnog razvoja poljoprivrede, osjetiti će slabiji rast produktivnosti. Još k tome ta ideja otvara mogućnost za par tehnologija koje povećavaju efektivnu "površinu njiva". No ipak rađe bih nešto elegantnije.
Nexus 64213 blog - IKON: moja verzija JSONa
Stareater blog - lijepe slike kak napreduje kod

User avatar
Denis
Sajentist on djuti!
Posts: 2618
Joined: Tue Aug 26, 2008 9:35 pm
Smallest prime number bigger than 20: 23

Re: Matematički problemi pri izradi igara?

Post by Denis » Sat Sep 28, 2013 3:18 am

A zašto ne pokušaš ubaciti da se hrana kvari? Tako bi mogao asimptotski rast, fino postaviš limit maksimalne hrane i fino. Ili ako hrana već može rasti neograničeno, onda logaritamski, da raste, ali jaaako sporo.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest