-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vererbung (Entity und co.) #241
Comments
Mal zu den EntityComponents meinen Senf:
Evtl. macht es Sinn ein paar der EntityComponents aus der Basics in Aus den Basics kann die Auf Körper wirken derzeit Kräfte (z.B. Gravitation) und Powers (die aufgebrachte Leistung), soweit ich weiß. |
Dein Performancetest ist ziemlich nichts sagend, die Methode ist nicht virtual braucht somit keine vererbbare vtable was ja bei calls gerne viel Perf kostet, zusätzlich ist deine Methode noch leer, was dafür sorgt, dass C# die Methode im Release gleich gar nicht aufruft, so als gäbe es diesen call gar nicht, dann ist das ganze natürlich höchst performant.(Wurde sogar von marcus getestet) Außerdem bin ich doch eindeutig eine Entität, aber ich mach ja auch nichts, das sagen zumindest immer alle ausm TeamSpeak. Edit: RenderComponent ohne Model kann vieles sein, was dynamisch z.B. Vertices erzeugt, oder einfach direkt vertices rendert, whatever, da braucht man nicht den bloat von Model reinhauen(auch wenn ich da grad tatsächlich am optimieren bin) |
Ja Meister ... |
Endlich erkennts mal jemand :P |
kann mir mal einer sagen was damit gemeint ist? was ist denn schön :D
` |
Also hab es mir mal die letzten paar Tage genauer angeschaut. Ich würde mich dran versuchen, und das Entity-,Component- und Extensionsystem genauer durch denken um zu definieren wie es sein sollte bzw. wie es umgesetzt werden könnte. Kann aber jetzt schon sagen, dass die Änderungen umfangreich sein werden. Deswegen mach ich mal eine PP über die ihr euch dann drüber machen könnt. |
Hätte mal paar fragen. Ist es möglich die UI auch dynamisch zu erstellen? Da durch Extensions unbekannte Elemente im Spiel auftauchen, sollte die UI die entsprechenden Screens für die Interaktionen dynamisch erzeugen können. Ein bisschen Richtung WPF wäre ganz gut xD @jvbsl, was hälst du davon die Entitys Instanziert zu rendern. Weiß jetzt zwar nicht was im Model.Draw() genau passiert aber glaub das Zeichnet ja einfach nur ein Model? Mit einem IDrawable Interface für Entitys würde das erleichtern und deine LOD Überlegungen auch möglich machen. Kann das Model auch anders gerendern werden als über Model.Draw() indem man z.B. den Buffer rauszieht und direkt mit dem Buffer arbeitet? Da ihr grade sowieso an der Simulation bastelt. Ist es möglich und haltet ihr es für sinnvoll (also ich schon) die Simulation.cs aus Octoawesome.dll in die Runtime.dll zu schieben. |
Kann man schon so sehen - Aber wie sollte eine Erweiterung, sie z.B. Wauzi-Spawneggs implementiert, diesen injizieren? - Derzeit wäre das dann nicht mehr möglich.
Hängt davon ab, was du mit dynamisch meinst. Prinzipiell kann ich die UI mit Code verändern und Controls ein/aushängen. XAML/XML wie bei WPF ist nicht möglich und auch nicht in Planung. Es fehlt aber eine API, die Erweiterungen Zugriff auf die UI gewährt. Grundsätzlich ist es auch schwerer: Control injizieren, wenn ja wo (ein Screen kann immer nur ein Control als Child haben). Der Inventardialog ist z.B. aber kein Control, sondern ein Screen der daneben noch an einen vom Nutzer änderbares Tastaurkürzel gebunden ist. Es gibt seit über einem Jahr die Idee, das UI erweiterbar zu machen, nur ist noch niemand dazugekommen. EDIT: Screens und Controls sind stinknomrale Klassen, die von einer Basisklasse erben. |
Bin wohl ein bisschen zu weit vom Denken her... |
Schon klar. Aber so weit sind wir noch lange nicht ;-) Ressourcen haben wir keine und von interaktion mit Entities kann noch keine Rede sein - wir haben ja noch nicht mal eine Kollision. Ui wird definitiv irgendwann erweiterbar sein, ist aber nicht prio 1. Du hast quasi jetzt aber selbst ein Argument geliefert warum Komponenten zumindest als Basisset in der octoawesome.dll liegen sollen - damit dritterweiterungen von gewissen Standards (hier Inventar) ausgehen können. |
Interface ^^ |
Was haltet ihr von einer IEntityDefinition? |
Wenn du einen konkreten Vorschlag einer Implementierung hast dann mache bitte entweder ein neues Issue auf, oder implementiere es einfach selber ^^ @HierGibtEsDrachen |
Ich wollte wissen ob wir da auch eine (brauchen) / (haben wollen würden). Bin ja wie gesagt am Entity - Component- und Extensionsystem und ein bisschen Refaktorisierung + UI .... Also sagt mir eure Meinung zu den IEntityDefinitions oder wir lassen es hard gecoded in der IExtension Implementierung. (: |
@HierGibtEsDrachen Da ich nicht weiß was deine IEntityDefinition machen soll kann ich dir keine Antwort darauf geben. Ich kann leider nicht in deinen Kopf blicken ;). Ich sehe dein eingehendes Issue als Frage/Anmerkung. Die Implementierung einer IEntityDefinition ist ein eigenes Thema bzw. Issue. Oder eben ein Teil eines Issues. |
Laut Klassen XML Kommentar ist eine Entity ein selbständiges Objekt im Spiel, als solche braucht sie ohnehin eine Update Funktion. Wer sich wegen Performance sorgen macht:
Perf.zip
Physikalischen Berechnungen z.Z. noch [xxx]Component in Basics, sollten eine eigene Basisklasse erhalten.
Die Component Klasse sollte überdacht werden, da sie momentan als Statespace verwendet wird und somit definiert was eine Entity ist bzw. kann.
Des weiteren sollte es eine generelle Unterscheidung von beweglichen und unbeweglichen Entities geben und bewegliche Entities sollten alle dafür notwendigen Parameter in der Basisklasse halten. Sich bewegen zu können ist eine grundlegende Funktion und sollte auch als solche implementiert werden. Sowie die dazugehörige Kollision #202.
Ein Ofen der Eisen schmelzen kann und dafür z.b. 1 Stunde benötigt oder auch ein elektrischer Schaltkreis (jaja Zukunftsmusik) stellt hingegen eine Sonderfunktion dar.
Wie weit die Standartimplementierung der Bewegung gehen soll ist allerdings ein anderes Thema.
Gerader Stoß oder auch Schiefer Stoß etc..
Einleitung der Bewegung über Kräfte und Momente?
The text was updated successfully, but these errors were encountered: