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

1

19.11.2012, 12:24

ParSim - Entwicklerblog

Einige Wissen ja dass ich an einem Weltraumspiel arbeite.

Man wird aus verschiedenen Partikel "Technische" Konstruktionen herstellen und diese Im Kampf steuern, bis sie Kaputtgeschossen werden.
ich hatte Hierdarüber berichtet.

Nun, es ist spielbar.

Mit einem Editor lassen sich Partikel platzieren. Je nach Material bewegen sie sich in versch. Richtungen.
"Sinn" ist es eine Riesen Kollision zu erzeugen! :D oder andere ballistische Spielereien zu machen.

Hier kann man das Projekt (in C# mit XNA) Herunterladen.


Ist ganz nett aber nur eine Demo für die Engine und den Editor, in denen Später die Konstruktionen geflogen, zerstört und gebaut werden.

Ich werde sukzessive weitere Materialien und technische Möglichkeiten wie etwa hier zufügen.
Außerdem werde ich das GUI dass ich geschrieben habe verbessern.

Falls noch jemand einsteigen will ich kann Hilfe gebrauchen :D

Genug der Worte jetzt Bilder und der Download.




Sandbox (Editor & Simulation).rar

Hoffe es gefällt euch ;)

LG
Bilder zu meinem Projekt: ParSim

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Horus« (29.08.2013, 11:26)


2

29.11.2012, 13:31

Es gibt Neuigkeiten.

Ich habe letztes Wochenende mit c++ angefangen und bin total begeistert. :D

Die Partikelengine läuft schon:



Ich nutze SFML 2.0 und VC++ Express 2010.

Bisher umgesetzt an der C++ Variante:

1. GUI bestehend aus Menüs und Buttons
2. einfache Grafik.
3. Partikelengine mit:
Parralel-Processing der Partikel. (Minimalem Einsatz von Mutexes.)
Rasterung des Simulationsraumes zur Kolisionserkenneung.
Natürlich etwas Vektorgeometrie um Massenträgheit der Partikel und richtige Kollisionen zu erreichen.
4. Multithreading für Client (Grafik GUI usw) und Engine. Also 2 Threads.
Natürlich verwende ich Klassen und Headerdateien usw. Ich hoffe "richtig".


Leider ist das ganze noch immens langsam. Aber ich weiß schon par Sachen zu optimieren. Muss mir mal Referenzen und Zeigen vornehmen. :wacko:

Da ich C++ betreffend ein Anfänger bin könnte ich Hilfe gebrauchen, auch von Personen die jetzt nicht unbedingt Profis sind.

Ich stelle das Projekt mal online. Vielleicht hat ja jemand Interesse einzusteigen oder das Projekt mal anzusehen. ^^
https://www.dropbox.com/sh/i1ns2ke4o821f3h/l0fGhGp5EP

LG
Bilder zu meinem Projekt: ParSim

3

29.11.2012, 18:17

Das Tempo hat sich vervielfacht :D

Ich würde sagen so in der jetzigen Form schafft die Engine etwa das dreifache Tempo der C# Engine.
Wenn man bedenkt dass ich noch weiter optimieren werde dann würde ich sagen hat sich der Umstieg mehr als gelohnt!
Auf dem Laptop laufen 100k Partikel in Echtzeit und der Lüfter brummt. :D


Aber eine Sache ist komisch, auf dem Laptop läuft alles nur wenn ich den Kompatibilitätsmodus aktiviere.
Ich habe auf beiden Rechnern Windows 7 Home Premium. ?(

Im normalen Modus stürzt die exe beim starten auf dem Laptop ab: "Game.exe funktioniert nicht mehr..."
Ich nutze Visual Studio C++ 2010 und SFML 2.0. :hmm:

Kann jemand damit was anfangen?
Bilder zu meinem Projekt: ParSim

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Horus« (29.11.2012, 18:24)


Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

4

29.11.2012, 19:34

Zitat

Ich würde sagen so in der jetzigen Form schafft die Engine etwa das dreifache Tempo der C# Engine.

Freut mich für dich. :)
Das bestätigt meine Vermutung, dass in .Net Gleitkommaberechnungen (halber Genauigkeit?) nicht gerade spitzenmäßig optimiert werden.

Zitat

Im normalen Modus stürzt die exe beim starten auf dem Laptop ab: "Game.exe funktioniert nicht mehr..."

Stichwort: Debugging ;)

Ich bin an deinem Projekt übrigens sehr interessiert.
Außerdem würde ich gerne mal einen Blick auf den Quelltext riskieren.
Dadurch das du erst seit etwa einer Woche mit C++ arbeitest, erwarte ich einige "Unschönheiten" im Code. ^^

5

29.11.2012, 19:40

Das trifft sich gut, ich habe gerade den ganzen Code kommentiert.

Zitat

Dadurch das du erst seit etwa einer Woche mit C++ arbeitest, erwarte ich einige "Unschönheiten" im Code.

Ja darauf kann man sich verlassen.
Referenzen und Zeiger sind fast nicht vorhanden da lese ich mich ein.
Geht es über diesen Link?
https://www.dropbox.com/sh/i1ns2ke4o821f3h/l0fGhGp5EP
Ich gebe dir sonst auch gerne Zugriff auf Dropbox.

EDIT: es ist momentan für 2 Cores eingestellt. Man muss die Einstellung noch manuell in der Cfg.h vornehmen.

LG
Bilder zu meinem Projekt: ParSim

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

6

29.11.2012, 20:00

Also, erstmal ist mir aufgefallen, dass sehr viele Kommentare überflüssig sind, weil bereits im Code steht, was der Kommentar aussagen will.
Auch von der Objektorientierung könnte man es sicher besser machen.
Mein Heulkrampf kam aber bei dem Codeschnipsel: ^^

C-/C++-Quelltext

1
2
3
4
5
Particle *particle; //Partikel selbst
...
//Viel viel Code
...
particle = (Particle *)malloc(particleMaximum * sizeof (*particle))


Ich rate dir dringend, dass du dir ein C++ - Buch besorgst, welches du dir dann mal gewissenhaft durchliesst.
Ich persönlich habe damals mit dem folgendem angefangen: C++ - Lernen und professionell anwenden
Für das habe ich mich damals entschieden, weil es auch gut zum Nachschlagwerk taugt.

EDIT:
Es scheint mir auch so, als ob der Speicher nicht wieder freigegeben werden würde.
Ein 1A Speicherleck also... :(

7

29.11.2012, 20:47

Ist ja bald Weihnachten. Da weiß ich ja welches Buch ich mir wünsche. :D

Danke das du dir den Sourcecode mal angesehen hast. Dann hab ich ja ein par Sachen dir ich mir noch vornehmen kann.
Ohne malloc habe ich einen Stack Overflow...
Das mit dem Speicherleck ist mir noch relativ unklar^^.

LG
Bilder zu meinem Projekt: ParSim

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

8

29.11.2012, 20:50

Ich weiß nicht, wie du es "ohne malloc" machen willst.
Richtig, so wie es sich in C++ gehört, wäre es aber mit einem New.

Was ist dir an einem Speicherleck unklar? :S

9

29.11.2012, 20:54

Ok das mit dem "new" probier ich.

Vor allem wann ich den Speicher freigeben muss, also am Ende einer Schleife, oder in den Destruktoren. Oder am Ende der Funktion?
Und In welchem Fall muss ich speicher freigeben. Doch nicht jede Variable die deklariert wird? ?(
Bilder zu meinem Projekt: ParSim

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

10

29.11.2012, 21:08

Zitat

Und In welchem Fall muss ich speicher freigeben. Doch nicht jede Variable die deklariert wird?

Faustregel:
Immer wenn du selbst den Speicherbereich erzeugst, musst du ihn wieder freigeben.

Wenn du dich mehr informieren willst, dann hier zwei Stichwörter:
Stack und Heap


Freigegeben wird immer dann, wenn der Speicher nicht mehr genutzt wird. Jetzt überleg mal, nach welchen Ereignis in deiner Klasse keiner mehr auf deinen reservierten Speicherbereich zugreifen sollte.

Werbeanzeige