Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

1

26.07.2005, 20:41

Magazin: Tipps und Tricks

Wir suchen noch Leute die Tipps und Tricks haben für unser Magazin. Wenn ihr eine gute Idee habt postet einfach einen hier rein. Ich lege mal einen vor, damit ihr ungefähr wisst was ich meine :)


Realistische Gravitation

Wenn Du in Dein Spiel eine realistische Gravitation einbauen willst, so kannst du dies mit einer physikalischen Gleichung realisieren:

(Link)
, wobei


(Link)
die Grenzgeschwindigkeit ist.

m ist die Masse deines Objekts, g die Anziehungskraft, t die vergangene Zeit in Sekunden und k die übliche Konstante in der Berechnung des freien Falls. Sie berechnet sich wie folgt:
k = 0.5CwAρv². Hierbei ist Cw der Widerstandsbeiwert, A die Körperquerschnittsfläche und ρ die Dichte des strömenden Mediums(der Luft) und v die Geschwindigkeit des vorangegangenen Frames. Achtung wenn v = 0 ist ist k ebenfalls gleich 0 und es kommt in der Kurve zu einer Singularität. Daher müssen wir im Code abfragen ob k = 0 und ggf nachhelfen. Für uns Coder sieht das dann so aus:
(Achtung: tanh ist != tan, sondern der Tangens Hyperbolicus... Dafür ist in der math.h die Funktion tanh() definiert.)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
tbVector3 SpeedVector; //der Geschwindigkeitsvektor

tbVector3 vGravity = tbVector3(0, -0.5f, 0); //muss deinen Modellen angepasst werden

static float k;
float old_k;

old_k = k;
k = 0.5f * Cw * A * MediumDensity * (tbVector3Length(SpeedVector) * tbVector3Length(SpeedVector));
if (k == 0 && old_k => 0) k = 0.0000000000000000001f;
else
    if (k == 0 && old_k < 0) k = -0.0000000000000000001f;

    float a = (float)sqrt((m * tbVector3Length(vGravity)) / k) * (float)tanh((float)sqrt((k * tbVector3Length(vGravity)) / (m * fNumSecsPassed)));
    SpeedVector += ((vGravity) / tbVector3Length(vGravitiy)) * a;


Hier noch ein paar gebräuchliche Werte:
Für meine Kugelbots verwende ich m = 1000, A = 1, MediumDensity = 1.29 und Cw = 0.45

Typische cw-Werte: (diese werden in Windkanälen berechnet)

1,4 Fallschirm
1,1 Scheibe, Wand
0,8 Lkw
0,78 Mensch, stehend
0,7 Motorrad, unverkleidet
0,5 Cabrio offen, Motorrad verkleidet
0,45 Kugel
0,34 Halbkugel
0,15 optimal gestaltetes Fahrzeug
0,08 Tragflügel beim Flugzeug
0,05 Tropfenform

Beispiele für Luftwiderstandbeiwerte von Serien-PKW

0,39 Mercedes M-Klasse
0,37 Smart ForTwo
0,36 Subaru Forester
0,34 Ford Sierra
0,325 VW Golf V
0,31 Jaguar XJ
0,28 - 0,30 Mercedes CLK Cabrio (je nach Modell)
0,29 Opel Vectra A
0,26 Toyota Prius
0,25 Audi A 2

Quelle: wikipedia.de

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

26.07.2005, 21:03

hmmtja ist auch garnicht aufwendig diese Berechnungen ;) und naja der Wert der Tragfläche hängt von Wurzeltiefe, Stirnfläche und Profildicke bestimmt, aber naja o.t. *hust*

Schleierhaft ist mir was diese Berechnungen mit deiner Aussage zu tun haben...
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

3

26.07.2005, 21:06

NOX: Sie ist von David geprüft -.-
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

DrthM2001

Alter Hase

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

4

26.07.2005, 21:58

Ich denke soetwas kann recht nützlich sein. Bisher hab ichs immer selbst hingefriemelt, naja das sieht dann nie sehr realistisch aus!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

5

26.07.2005, 22:18

Dazu sage ich nur:
Schlag das Physibuch auf, da steht das wichtigste drin ;)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

DrthM2001

Alter Hase

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

6

26.07.2005, 23:01

Zumindest teilweise kann man sich die Formeln ja herleiten. Aber die richtigen Werte zu finden ist eben schwer.

martin

Treue Seele

Beiträge: 92

Beruf: Schüler

  • Private Nachricht senden

7

26.07.2005, 23:46

Man könnte meiner Meinung nach auch was über cheats bringen
z.B.
dort gibt es cheats und Quellcode
http://www.unknowncheats.com/downloads/p…=category&id=63

Angenommen man moechte ein Onlinegame programmieren, dort verderben ja öfters POWERGAMER (also die, die versuchen mit allen Mitteln die Besten zu sein) oder eben SCRIPTKIDDIES einem durch Wh(wallhacks) oder aimers die Laune.

>>man könnte ja ein Programm entwickeln das alle cheater entarnt<<
so wie VAC oder HalflifeGuard etc.
-oder in grundlegenden Zügen erklären wie das funktioniert
achja und die FUnktionsweise eines Cheates( ich Habe selber keine Ahnung ;bei Google hab ich nich viel gefunden)


>>oder eben andersrum ein neuen Cheat entwickeln:<<
also ich stell mir das folgendermaßen vor, jedes Mal wenn dich ein Spieler anvisiert, dann verursacht das ein Lagg(also stockt ganz heftig)
-in der Zeit werden ganz viele DAtenpakete an den CLIENT(en) geschickt
Man´kann im Menu einstellen ob dolle, nich dolle oder gar nicht.

Gibt es eigentlich auch eine Unterteilung im Heft, so wie :
[NOOB-ABSCHNITT]
[MASTERMIND-ABSCHITT]
oder so was ?

ODER mal was anderes:
wenn ich irdendwo vom Server gekickt werde oder gebannt werde, dass dann eine ENDLoSschleife im chat(Taste z) eröffnet wird und der Server zusammenbricht indem der string ="tja, das habt ihr nun davon" den Server zum Absturz zwingt.(k.a macht ihr euch durch solche Veröffentlichungen strafbar ?)
das wär doch mal was feines

[DAS SIND NUR DENKANSAETZE]
AN ALLE DIE GLEICH WIEDER RUMBRÜLLEN, dass dies und jenes nicht stimmt, ich bin aber trotzdem für nette Hinweise offen.


.
WER, WIE , WAS, WIESO , WESHALB, WARUM, wer nich fragt bleibt dumm

"""
+°°+ <::::::::|::: der fährt Ski
##

8

26.07.2005, 23:58

Was stellst du dir denn vor was nen cheat ist?! Den kann man nciht entwickeln-.-

Er dient eigentlich dazu, das die Hertseller des games, ohne schwierigkeiten schnell an die stelle kommen, die sie testen wollen ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

DrthM2001

Alter Hase

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

9

27.07.2005, 00:07

Du hast selber gesagt ich soll nicht gleich rumbrüllen, aber bitte... 80% was du da geschrieben hast stimmt nicht/nicht realisierbar. Einen cheat programmiert nicht der cheater, sondern der programmierer des spiels.
Was du mit diesem packet-flooding beim anvisieren meinst verstehe ich nicht. Jedenfalls kann man sagen, dass es ganz und garnicht einfach ist in die mechanik des spiels einzugreifen. noch schwieriger ists, wenn es währenddessen läuft.

Stefan

Alter Hase

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

10

27.07.2005, 07:55

Naja, ich glaube Martin meint wie Leute z.B bei einem MMOG cheaten! Wenn ich auf die Blizzardseite gehe, sieht man ja oft, dass wieder Accounts von Cheatern gesperrt worden sind. Also so uninteressant wäre die Frage ja gar nicht, wie man selbst als Spieler cheaten kann.
Aber ich selbst versteh gar nicht, dass es überhaupt möglich ist, da doch der Server alle Werte kontrollieren kann und der Client ja eigentlich nicht viele Werte selbst versendet, ausser vielleicht ein paar ChatMessages, Position und Angriffswerte(welche Waffe, Ziel,..).
Aber ich selbst habe leider auch überhaupt keine Ahnung, also wäre die Frage vielleicht berechtigt! Aber so ein Tool proggen das ein Signal gibt, wenn sich ein Ork in der Nähe befindet, wäre schon eine schöne Sache^^


cya,
Stefan, der leider gerade pech bei einem netten Mädel hatte :crying: ,
Ein Artikel, wie findet man als Progger eine Freundin, wär mir jetzt lieber :D

Werbeanzeige