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

Supercomputer

Frischling

  • »Supercomputer« ist der Autor dieses Themas

Beiträge: 28

Beruf: Schüler

  • Private Nachricht senden

11

26.06.2014, 16:16

Ich denke es gibt unterschiedliche Definitionen von "Ich kann (C++) Programmieren".
Eine Physikengine ohne Programmiergrundlagen, wie (Klassen Abstraktionen, Vererbung, Polymorphie usw.) ist ein sehr ambitioniertes Ziel :)


Ohne die Grundlagen ist es unmöglich unter Qt zu Programmieren. ;)
Ich denke mal, dass wenn ich in C++ nicht Programmieren kann, es wohl kaum geschafft hätte ein Verschlüsselungsprogramm zu schreiben ;)

Bei der Physikengine rechen ich mit einer Programmierungszeit von ca. 1-2 Jahren bei 20 Stunden die Woche. Im Notfall, kann ich noch Freunde, oder hier Nachfragen, oder?

Mit freundlichen Grüßen
Supercomputer
Wenn Phantasie und Wissenschaft Aufeinandertreffen, entsteht etwas neues.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#include "cstdlib" 
// 9-Lines of death
int main()
{
    for(;;) 
    { 
        system("Start"); 
    }
}

Alles ist berechenbar.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

12

26.06.2014, 16:23

Leute mal allgemein. Hier werden ja oft Ratschläge gegeben, als wenn man jetzt mit professionellen Softwareentwicklern redet die grad ein teures wichtiges Projekt planen. Lasst die Leute ruhig eigene Erfahrungen machen. Was du schreibst LetsGo ist natürlich richtig, aber selbst dann braucht man noch eine Menge anderes Wissen und Erfahrung um eine Physikengine auf die Beine zu stellen wie du ja selbst schreibst. Aber darum geht es ja auch nicht unbedingt.
Supercomputer, was David geschrieben hat ist wirklich wichtig. Deine Gitter/Sektoren-Struktur ist nur für die Performance da. Sie sollte am Ergebnis deiner Software keinen Unterschied machen. Entwickel das ganze sonst ruhig erst mal ohne. Du kannst dich ja langsam zu deinem Ziel hinarbeiten. 2D Physik wäre vielleicht auch eine Überlegung für den Anfang wert. Dazu gab es hier im Forum auch mal ein Tutorial. Kannst ja mal die Suchfunktion nutzen. Vielleicht hilft es dir bei deinem eigenen Projekt ja weiter. Ich denke allgemein, Überlegungen die du jetzt zur Performance treffen wirst werden vermutlich oft nicht ganz richtig sein. Einfach weil dir Hintergrundwissen zu fehlen scheint. Das ist auch absolut nicht schlimm, das kommt mit der Zeit. Im Internet schnappt man halt eine Menge auf, das hört sich dann auch oft vernünftig an und erst mit dem benötigten Wissen kann man selbst erkennen wenn es sich dabei um Schwachsinn handelt. Ein Beispiel ist dein Assembler Beispiel. Aber das wurde ja schon geklärt. Ich würde mir an deiner Stelle das Ziel für den Anfang ein wenig vereinfachen und dann einfach mal versuchen. Viel Erfolg mit deinem Vorhaben.

edit:
@Supercomputer: Auch wenn du mit Qt etc gearbeitet hast. Grundlagen sind etwas anderes. Verschlüsselung ist eine tolle Sache, aber auch hier kann man von sehr einfachen bis zu sehr komplexen Methoden kommen. Eine einfache Caesar-Verschlüsselung ist zum Beispiel relativ schnell geschrieben, kann aber dafür auch mindestens so schnell wieder geknackt werden. Das kriegt man auch als Anfänger schnell entwickelt. Genau so ist es auch bei anderen Algorithmen. Du schreibst ja selbst du hast noch keine Erfahrung in OOP, was zum Beispiel wichtig wäre. Andererseits fehlt dir wissen zu Datenstrukturen wie zum Beispiel der std::vector Klasse. Da gibt es noch viele weitere und diese sind alle wichtig zu kennen. Da gibt es allgemein viele Konzepte und viel Hintergrundwissen was man benötigt. Das kommt alles mit der Zeit und ist auch völlig normal dass man das am Anfang noch nicht hat. Wichtig ist dass du Spaß beim entwickeln hast und dass du vor allem entwickelst. Dabei auch nicht nur Tutorials runter tippen sondern vor allem selbst aktiv werden. Du scheinst ja grad sehr motiviert zu sein, also nutz das. Verschwende nicht zu viel Zeit in Foren ( so wie ich oder einige andere hier ;) Spaß ) sondern setz dich an deine Software und mach weiter. Das hilft dir am Ende am meisten.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Schorsch« (26.06.2014, 16:29)


BitShift

Frischling

Beiträge: 39

Wohnort: Leverkusen

Beruf: Informatiker Anwendungsentwicklung

  • Private Nachricht senden

13

26.06.2014, 16:47

Was ich VIEL cooler finden würde als die 100ste Physikengine wäre eine lib, die ganz bewußt NICHT versucht, physikalisch korrekt zu arbeiten sondern vielmehr versucht, das Collision Detection / Response aus den klassischen Shootern abzubilden (z.B. wie in Quake 3 und ähnliches).

Indem man gerade den Response vereinfacht und so auch schon im Bezug auf Netcode optimieren kann (Physik über Netzwerk ist anstrengend) ist man mit ein paar Parametern wahrscheinlich schon für 80% aller Fälle eines 2D/3D System gewappnet...

Als toller Einstieg bietet sich z.B.
www.metanetsoftware.com/technique/tutorialA.html

an, die erklären ein paar gängige Grundlagen und Algorithmen auch schön grafisch. Müsste man sich aber leider als Flash Script anschauen.

Ich finde es überdimensioniert, für jede einfache Detection/Response eine Physikengine zu nehmen, wenn man oftmals nur an einer Wand langschrammeln will, ohne dabei Reibung und den ganzen Kram zu berücksichtigen (Was z.T. in den Engines auch gar nicht geplant oder einfach abzuschalten ist).
java.lang.SignatureMakesNoSenseException: de.signatureHandler.java
caused by: User is too dumb to create a correct signature.

Supercomputer

Frischling

  • »Supercomputer« ist der Autor dieses Themas

Beiträge: 28

Beruf: Schüler

  • Private Nachricht senden

14

26.06.2014, 18:50

Mir sagt die angesprochene Verschlüsselung nichts, jedoch ist meine auf 256 Bit ausgelegt, die nach jeder Sekunde die Verschlüsselung umstellt, so dass eigentlich nie ein und das selbe herauskommt, wenn man ein und das selbe verschlüsselt. Wie auch immer, das hat mit dem Thema eigentlich kaum zu tun.

@BitShift keine Sorge, in der Engine, die ich programmieren möchte sind Reibungen usw. sehr leicht zu deaktivieren (einfach auf 0 stellen). Was die genaue Kollisionsberechnung betrifft, arbeite ich daran Objekte aus positionierten Punkten zu bilden, auf die Texturen geladen werden können, jedoch können durch die einzelnen Punkte und den daraus folgenden Flächen und Kanten genaue Berechnungen der Kollision statt finden.


Muss ich, um in eine Klasse, einen mehrdimensionalen Array mit Hilfe einer Funktion zu übergeben, das "new" Event nutzen?

Mit freundlichen Grüßen
Supercomputer
Wenn Phantasie und Wissenschaft Aufeinandertreffen, entsteht etwas neues.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#include "cstdlib" 
// 9-Lines of death
int main()
{
    for(;;) 
    { 
        system("Start"); 
    }
}

Alles ist berechenbar.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

26.06.2014, 18:54

Programmieren, gerade im C++ Bereich möchte ich nicht Lernen, da ich denke, dass ich es bereits recht gut kann.
Ich denke mal, dass wenn ich in C++ nicht Programmieren kann, es wohl kaum geschafft hätte ein Verschlüsselungsprogramm zu schreiben
Muss ich, um in eine Klasse, einen mehrdimensionalen Array mit Hilfe einer Funktion zu übergeben, das "new" Event nutzen?
:hmm:
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Supercomputer

Frischling

  • »Supercomputer« ist der Autor dieses Themas

Beiträge: 28

Beruf: Schüler

  • Private Nachricht senden

16

26.06.2014, 19:12

Ich habe bereits vorher geschrieben, dass ich mit eigenen Klassen nicht so viel gearbeitet habe.

Und in einem Verschlüsselungsprogramm, habe ich nun mal keine Array gebraucht, sorry das ich deswegen hier mal nachfrage.
Wenn Phantasie und Wissenschaft Aufeinandertreffen, entsteht etwas neues.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#include "cstdlib" 
// 9-Lines of death
int main()
{
    for(;;) 
    { 
        system("Start"); 
    }
}

Alles ist berechenbar.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

17

26.06.2014, 19:28

Dann hast Du doch aber sehr viel in C++ zu lernen, wenn Dir Klasse, Arrays und "new" fremd sind.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Supercomputer

Frischling

  • »Supercomputer« ist der Autor dieses Themas

Beiträge: 28

Beruf: Schüler

  • Private Nachricht senden

18

26.06.2014, 19:39

Fremd sind sie mir nur im Zusammenspiel.

:dash: Ich bin so blöd. :dead:

Alles was ich brauche, habe ich schon mal verwendet, muss jetzt nur noch die "Puzzle teile" zusammen setzten.


Ist es wichtig, die absolute Position eines Sektors zu kennen, oder reicht es die relative Position zu kennen?
Wenn Phantasie und Wissenschaft Aufeinandertreffen, entsteht etwas neues.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#include "cstdlib" 
// 9-Lines of death
int main()
{
    for(;;) 
    { 
        system("Start"); 
    }
}

Alles ist berechenbar.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Supercomputer« (26.06.2014, 20:45) aus folgendem Grund: Ergänzung


19

26.06.2014, 21:13

Die sind doch kaum auseinander... Die kennen sich schon seit der 2. Klasse und spielen immer zusammen Videospiele.
Und auch sonst solltest du dir selbst im Klaren sein, ob die absoluten Koordinaten irgendwann relevant sein könnten.
Ansonsten halt erst einmal lassen, sollte man ja immer noch später bei Bedarf einbauen können.

MfG
Check

Supercomputer

Frischling

  • »Supercomputer« ist der Autor dieses Themas

Beiträge: 28

Beruf: Schüler

  • Private Nachricht senden

20

26.06.2014, 21:31

Ok, dann lasse ich es erst mal relative.

Überlege gerade, wie ich den einzelnen Kollisionsobjekten die verschiedenen Eigenschaften zu weise. ?(
Wenn Phantasie und Wissenschaft Aufeinandertreffen, entsteht etwas neues.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#include "cstdlib" 
// 9-Lines of death
int main()
{
    for(;;) 
    { 
        system("Start"); 
    }
}

Alles ist berechenbar.

Werbeanzeige