Mathematisches Verständnis

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

dragomrak

Betreff: Mathematisches Verständnis

BeitragMo, Feb 08, 2016 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

ich habe einiges über BlitzBasic gelesen und finde es ziemlich spannend. Ich bringe auch Programmierkenntnisse mit ( QBasic, Turbo Pascal, FreeBasic, LibertyBasic, JustBasic ). Das eigentlichr Problem, das sich mir stellt, ist, ob ich die mathematischen Fähigkeiten für Spieleprogrammierung habe, wobei es mir nur um 2D-Spiele geht, die auch durchaus einfach aussehen dürfen.
Ich möchte vorerst einmal in Spieleprogrammierung hineinschnuppern, um festzustellen, ob ich es kann und ob es mir Spaß macht. Und jetzt die Frage:

Welche mathematischen Kenntnisse benötige ich dazu? Ich war in Mathe früher immer ganz schlecht und habe von Geometrie kaum Ahnung. Nun vermute ich, dass ich das brauche. Wie seht ihr das? Danke für eure Einschätzungen.

Grüße, Dragomrak

Midimaster

BeitragMo, Feb 08, 2016 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst mit jedem beliebigen Mathe-Wissenstand Spiele herstellen. Zum einfachen Bewegen der Figuren werden oft nur die Grundrechenarten benötigt. Das kommt daher, dass bei Spielprogrammierung oft iteriert wird. Das heißt man läßt eine Berechnung 20x laufen anstatt es mit einer kompizierten Formel zu errechnen.

Für Diagonalbewegungen kann es sein, dass Du sowas wie SIN und COS brauchst. Du findest die richtige Verwendung solchen Formel aber bereits oft hier in alten Beiträgen im Forum. Wenn du nicht weiterkommts, stell im Forum eine Frage. Es antwortet immer einer...

Viel häufiger benötigt man LOGIK, also sowas wie IF A>B*2 THEN C=5. Da kommen oft sehr verzwickte Codezeile-Ungetüme raus, bis die Spielfigur das macht, was man will.

Am allerwichtigsten ist das "Gewusst-Wie". Welcher Befehl bringt mir das gewünschte Ergebnis. Hier hilft nur Erfahrung sammeln und Beispiele anderer studieren.

Ich wünsche Dir jedenfalls viel Erfolg und Spaß.
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Abrexxes

BeitragMo, Feb 08, 2016 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du die 4 Grundrechenarten kennst, die Punkt und Komma Regel beherrschst, und Sachen wie pi, cos, sin keine Fremdwörter sind (wobei letztere schon "gehobener" sind,) dann bist du fit.

Wenn du Spiele programmierst ist "logisches Denken" 99% des Ziels. Und wenn bei denn 1% was fehlt, (zb für eine kleine Physik Spielerei,) dann hilft das BBP oder Google weiter. Diese Formeln sind in jeder Sprache gleich.

cu

(Mist, Midimaster war schneller)
 

dragomrak

BeitragMo, Feb 08, 2016 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

vielen Dank für eure Antworten. Das macht mir Mut. Dann werde ich es wohl auch hinbekommen und falls nicht, frage ich im Forum nach.
Grüße von Dragomrak

DAK

BeitragMo, Feb 08, 2016 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das kommt alles darauf an, was du vor hast zu machen.

Textgames: Quasi keine Mathematik
2D-Games: Je nach dem, aber mit Grundrechenarten und Trigonometrie (Sin, Cos, Tan, Atan, Atan2) kommt man gut durch
2D-Physik: Hier wird es schon schwieriger, aber hier kommt es auch hauptsächlich auf das richtige Denken an, wie schon angeschnitten. Dazu kommen noch 2D-Vektoren
3D-Games: Hier kommt es stark an, auf die 3D-Engine. In Blitz3D braucht man immer noch nicht mehr, außer wohl noch 3D-Vektoren. Wenn man tiefer in die Materie eintaucht, kommt man nicht um Matrizen/Matrizenmultiplikation rum, ist aber auch halb so wild.
3D-Physik: Das wird schon eher fortgeschritten. Da besser einfach fertige Libraries verwenden.
3D-Effekte: Hier gibt es kein Limit an Schwierigkeit Wink
Gewinner der 6. und der 68. BlitzCodeCompo

Holzchopf

Meisterpacker

BeitragMo, Feb 08, 2016 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
dragomrak hat Folgendes geschrieben:
falls nicht, frage ich im Forum nach.


Gerne Smile sonst wirst dir vor lauter Mathematik-Begriffen doch nur schwarz vor Augen hier. Ich behaupte mal, man kann alleine mit Punkt-vor-Strich sehr viele interessante 2D-Spiele programmieren. Snake oder Tetris zum Beispiel. Kommt auch immer drauf an, welches Ziel du verfolgst. Wenn immer ein bisschen mehr Komplexität dazu kommt, in ganz kleinen Happen, hantierst du im Handumdrehen mit Mathematik, von der du noch nie gehört hast Wink

MfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

dragomrak

BeitragMo, Feb 08, 2016 22:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist ermutigend. Smile Danke. Da ich erst einmal nur schnuppern möchte und dann sehen werde, wie weit ich komme, ist das ein Anfang, der optimistisch klingt. Fein.! Das, was ich im Auge habe, sind Retrogames, wie man sie auf den C64 hatte oder auch auf dem Amiga. Das ist optisch nicht so komplex.
Grüße von Dragomrak
 

funkmaster5000

BeitragMi, Feb 10, 2016 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mit diesem Artikel angefangen und halte ihn für eine super Grundlage. Außerdem behandelt er bereits (fast) alles, was für 2D Programmierung am Anfang gebraucht wird - und zwar bereits in den winzigen ersten 3 Abschnitten Exclamation

Das reicht bereits für ein rudimentäres Rennspiel ohne Kollision in Blitz. Nehmen wir an, du möchtest noch die Kollision berechnen. Wie stellen wir das an? Wir denken uns 2 Vierecke um das Bild der Autos. Wenn sich diese Vierecke zu nahe kommen, kollidieren die Autos. In Blitz gibt es bereits eine eigene Funktionssammlung dafür (RectsCollide/RectsOverlap), aber nehmen wir an, du möchtest es selbst berechnen.

Da du bereits ausreichend mit Variblen vertraut sein müsstest, ist alles was du brauchst:

Code: [AUSKLAPPEN]
;deklariere die variablen
Viereck1XPosition% = 12
Viereck2XPosition% = 120
Viereck1YPosition% = 200
Viereck2YPosition% = 50
BreiteDerVierecke% = 32 ;pixel
HöheDerVierecke% = 32 ;pixel

;prüfe auf kollision
If Abs(Viereck1XPosition - Viereck2XPosition) < BreiteDerVierecke And Abs(Viereck1YPosition - Viereck2YPosition) < HöheDerVierecke Then Print "Kollision!"


Du siehst also, mit Minus/Plus/Mal/Geteilt und kleiner/größer/gleich stellst du in 2D fast alles an.

Der C64 konnte auch nicht viel mehr, in Assembler sogar nicht einmal Mal oder Geteilt. Das musste man ihm beibringen.
 

dragomrak

BeitragMi, Feb 10, 2016 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Gallo Funkmaster5000,

ich danke dir für deine Antwort. Das sieht ja dann schon bewältigbar aus. Ich werde mich zuerst dennoch an etwas Einfacherem versuchen, vielleicht ein Mastermind, an dem ich dann nach und nach die Optik verbessere, wenn die Funktionen laufen. Das ist sicher als Einstieg gar nicht so schlecht. Dann vielleicht Pong oder Snake, um die Grundlagen der Kollisionen zu verstehen. Das scheint mir ein ganz guter Einstieg zu sein.
Grüße von Dragomrak

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group