Skip to content
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

Änderung / Erweiterung an Entity, Komponenten und Extensions #249

Closed

Conversation

HierGibtEsDrachen
Copy link

@HierGibtEsDrachen HierGibtEsDrachen commented Mar 4, 2018

Docu.pdf
und noch die alten Komponenten
OldComponents.zip

Also bei mir läuft es wenn ihr es ausprobiert und es nicht geht, tja was kann ich da sagen.
Bin auf engenious 1.12, bin nicht dazu gekommen engenious zu debuggen.
Ich ändere im Endeffekt nicht viel, es kommen neue dinge dazu aber ich hab versucht so wenig wie möglich umzuschreiben. Allerdings kann ich, sofern meine Änderungen euch zusagen, nicht weiter machen weil es sonst wirklich zu viel auf einmal wird. Das hier soll den den neuen Weg einleiten, es ist aber nicht mal im Ansatz vollständig - so wie OctoAwesome - eine Never Ending Story halt.

Da ich die feature/multiplayer als Basis benutzte... hab ich aus Faulheit das in meine Develope reingemerged. Ich hab hoffentlich alles was nicht rein gehört gelöscht. Versprechen kann ich aber
nichts :(

@ManuelHu ManuelHu changed the base branch from develop to feature/multiplayer March 4, 2018 17:38
@ManuelHu ManuelHu changed the base branch from feature/multiplayer to develop March 4, 2018 17:39
//TODO More Generic, überdenken der Planetgeneration im allgemeinen (Heapmap + Highmap + Biome + Modding)
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ushort sandIndex = definitionManager.GetDefinitionIndexByName(Languages.OctoBasics.Sand);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Das ist meiner Meinung nach nicht so gut, den lokalisieten Namen zu verwenden. Verleitet einen ENtwickler, der nur in Sprache X testet deren hardcoded Wert zu verwenden, und in Sprache Y gehts dann nicht mehr. rweiterungsübergreifend ist auch per se kein gegenseitiger Zugriff auf die Lokalisierung möglich.

Wichtig: Diese A´nmerkung gilt gleich für alle anderen Stellen, an denen dies so verwendet wird.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ja das ist mir bewusst. Ich plädiere für ein festes Token auch Server übergreifend, Aber nebenbei gesagt das ist Modder Code, wer kann den Modder schon zwingen in verschiedenen sprachen zu Coden :D
aber hast recht! das wäre ohnehin nur vorübergehend so geblieben

{
base.Deserialize(reader, definitionManager);
base.Deserialize(reader, definition);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hier finde ich den alten Namen schöner, aber über Namensgebung lässt sich streiten... Vor allem weiter unten bräcuhte man den Namen "definition" für eine Definition, da muss auf "def" ausgewichen werden.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wollte die Signatur ändern zum IGameService. Dass dann so hängen geblieben ;O aber hast auch recht.

@@ -90,11 +88,14 @@ public bool RemoveUnit(InventorySlot slot)
if (slot.Amount >= definition.VolumePerUnit) // Wir können noch einen Block setzen
{
slot.Amount -= definition.VolumePerUnit;
if (slot.Amount <= 0)
Inventory.Remove(slot);
if (slot.Amount <= 0) Inventory.Remove(slot);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coding styles... Aber es werden weniger Verstöße ;-)

}
else if (service.TakeBlock(controller, Entity.Cache, out IInventoryableDefinition item))
{
// TODO: und jetzt ?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich finde es etwas komisch, dass die ToolbarComponent direkt mit der Welt interagiert.

Copy link
Author

@HierGibtEsDrachen HierGibtEsDrachen Mar 4, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warum nicht ? Direkt ist es eben nicht, sondern über den Service. Der Cache liegt eh in der Enttiy... da könnte sonst was mit gemacht werden. Ob es diese Komponente macht oder eine andere ist für mich kein Unterschied. Die Komponenten berechnen sich selbst wenn es geht. Dann braucht man kein typeof(T) gesuche mehr in irgendwelchen Liste.

{
if (Tools.Any(s => s != null && s.Definition.Name == slot.Definition.Name))
continue;
else AddNewSlot(slot);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coding styles oder sich das else sparen.

{
player.Components.AddComponent(new GroundPhysicComponent(60f, 400f, 0.8f, 3.5f));
player.Components.AddComponent(new InventoryComponent());
player.Components.AddComponent(new ToolBarComponent());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was hat das Inventar-Zeug mit Physik zu tun?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nichts. Kann dir eine dritte schreiben ^^

namespace OctoAwesome.Basics.SimulationComponents
{
class PhysicEngine
{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was macht diese leere Klasse? Außerdem nach Coding Styles bitte immer die Zugriffsmodifikatoren angeben...

private IDefinitionManager definitionmanager;
/// <summary>
/// Manager for persistance at lokal Disk.
/// </summary>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hast du die Doku-Kommentare gemacht? Wir hatten uns darauf geeinigt, dass diese in Deutsch auszuführen sind. Bitte keine Diskussion - hatten wir über das Thema schon genug!

IDefinitionManager DefinitionManager { get; }
/// <summary>
/// Take a Block from the World.
/// </summary>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doku-Kommentare bitte auf Deutsch.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Da schließe ich mich an

@ManuelHu
Copy link
Member

ManuelHu commented Mar 4, 2018

Ich habe jetzt mal grob drübergeschaut, meine ersten Eindrücke:

Allgemein:

  • Vielen Dank für die ausführliche PDF-Datei, die macht einiges klarer.
  • Der IGameService ist schön, das kann definitiv so übernommen werden.
  • Die EntityController, sind wie @CsharpLassi schon meinte ein wenig undifferenziered, aber könnten und evtl. beim Multiplayer ziemlich helfen.
  • Dokukommentare bitte auf Deutsch machen, wir haben schon genug Englische drin! (Hier bitte keine Diskussion - haben wir lange genug diskutiert!)

In deiner PDF, was meinst du mit "Das Selektieren von Blöcken im Inventar wurde jedoch nicht wieder umgesetzt."? Wenn Funktionalität verloren geht, ist das nie gut.

UI
Die UI-Veränderungen am Inventar-Screen gefallen mir persönlich nicht so und ich finde die alte Anordnung übersichtlicher (v.a. geht nicht so viel Platz für die Toolbar drauf). Dazu habe ich nichts im PDF gefunden, was hat dich denn dazu bewogen bzw. was sind die Vorteile deiner Anordnung?
Vor allem auch das verwenden zweier, mehr oder weniger redundanter Controls dafür und für die Ingame-Toolbar gefallen mr nicht

Bezüglich der Branches
Mit "Mach die Änderungen gegen Develop" war gemeint, dass du die Änderungen nur gegen den Develop machst und nicht auch noch gegen den aktuellen Multiplayer-Stand. So wie du es jetzt machst bleiben uns nämlich nur zwei Möglichkeiten: Entweder wir mergen deinen PR in den develop-Branch und holen uns unfertige Teile aus dem Multiplayer-Branch dazu (ganz schlimm) oder wir mergen gegen den Multiplayer-Branch und holen uns damit Änderungen aus dem develop dazu (nicht ganz so schlimm).

Zu den Komponenten / Rendering sollen bitte andere etwas sagen. Physik habe ich mir auch nicht angeschaut, aber warum hats du denn überhaupt die Herangehensweise geändert, wenn du sie selbst als schlecht handhabbar (vgl. PDF S. 13) bezeichnest?

@HierGibtEsDrachen
Copy link
Author

HierGibtEsDrachen commented Mar 4, 2018

Meine Antworten nicht als Diskussionsversuch sehen :) zumindest nicht immer. Ein bisschen rechter fertigen werde ich mich ja dürfen.

In deiner PDF, was meinst du mit "Das Selektieren von Blöcken im Inventar wurde jedoch nicht wieder umgesetzt."? Wenn Funktionalität verloren geht, ist das nie gut.

Es konnte früher mit den Tasten 1-9 und Maus über einem Block im Inventar, Blöcke in die Toolbar geschoben werden. Das konnte ich auf die schnelle nicht fixen :( Sie können nur mit der Maus reingezogen werden.

Die UI-Veränderungen am Inventar-Screen gefallen mir persönlich nicht so und ich finde die alte Anordnung übersichtlicher (v.a. geht nicht so viel Platz für die Toolbar drauf). Dazu habe ich nichts im PDF gefunden, was hat dich denn dazu bewogen bzw. was sind die Vorteile deiner Anordnung?

Zur UI muss ich sagen, dass ich es in zwei Teile aufgeteilt habe, weil durch die allgemeinere Umsetzung konnte ich es nicht wieder so verbinden wie es war. Dafür landen gerade alle Möglichen UI Controls im "Inventar" und liegen in den ComboBox(en) oben sodass man wechseln kann. Vllt kommt ja später auch noch ein Skill-Tree oder so ka. Wenn das wirklich so schlimm ist (ja hübsch ist es nicht) kann man auch eine Komponenten basteln die beides ist. So Enorm ist der Aufwand nicht. Außerdem müsste dann die Registrierung auf Tasten möglich sein, also fände ich Vorteilhafter.

Vor allem auch das verwenden zweier, mehr oder weniger redundanter Controls dafür und für die Ingame-Toolbar gefallen mir nicht

Die Redundanz war auch schon vor meiner Änderung gegeben ^^ sieht man jetzt vllt. stärker aber eigentlich ist das Toolbar-Inventar Control genauso wie das alte.

Mit "Mach die Änderungen gegen Develop" war gemeint, dass du die Änderungen nur gegen den Develop machst und nicht auch noch gegen den aktuellen Multiplayer-Stand.

WAS ist denn da passiert... hab es nochmal angeschaut, also da sollte eigentlich nichts mehr im Code sein. Falls doch macht es die Develope auch nicht kaputt, aber eure Entscheidung.

aber warum hats du denn überhaupt die Herangehensweise geändert, wenn du sie selbst als schlecht handhabbar (vgl. PDF S. 13) bezeichnest?

Die Physik wollte ich so mal Testen weil mir die Rechnung Kraft * Kraft nicht so gefallen hat xD. Es ist im Moment auch nicht wirklich ausbalanciert. Vllt. finden sich ein paar Fürsprecher wenn nicht ändere ich es beim nächsten Push, versprochen!

Dokukommentare bitte auf Deutsch machen, wir haben schon genug Englische drin! (Hier bitte keine Diskussion - haben wir lange genug diskutiert!)

Alle ? ;O... würd das dann nebenbei machen... Ein Kommentar am Tag ...

Paar Kommentare von en auf de geändert.
Leere Klasse entsorgt.
Definition in definitionmanager umbenannant.
@Gallimathias
Copy link
Member

So erstmal danke für deinen erneuten Pull Request.

Vorne weg etwas lob: Der Pull Request an sich sieht sehr ordentlich aus mit kurzer Beschreibung und Überschrift, wirklich kein vergleich zum letzen mal top.

Habe auch gesehen das du mir eine E-Mail geschickt hast, ich denke das die Mail mit dem Pull Request zu tun hatt, lese ich mir heute abend durch.

Wir gucken uns deinen Pull Request an und bitten um etwas geduld :)

@Gallimathias Gallimathias self-assigned this Mar 5, 2018
@Gallimathias Gallimathias added the suggestion A suggestion for a new feature / function label Mar 5, 2018
Copy link
Member

@Gallimathias Gallimathias left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok habe das erstmal ganz oberflächlich gecheckt. Mal wieder wären ein paar stylguide Geschichten zu beheben.

Der GameService ist soweit eine gute Idee.

Leider ist sowohl kollission und Physik komplett kaputt so das das spiel nicht spielbar wird.

Es wäre von vorteil deine Eingefügten Todo's bitte noch in deinem Kommentar zu erwähnen so kann man nach einem Merge gleich Issues draus machen.

Zu deiner PDF und dem Komponenten Thema schreibe ich in einem gesonderten Kommentar etwas dazu.

Inhaltlich wären die Änderungen noch zu prüfen.

//TODO More Generic, überdenken der Planetgeneration im allgemeinen (Heapmap + Highmap + Biome + Modding)
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ushort sandIndex = definitionManager.GetDefinitionIndex<SandBlockDefinition>().FirstOrDefault();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warum kommt von GetDefinitionIndex eine IList zurück? Rein von namen her würde ich bereits einen Index erwarten und keine ganze liste.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Weil es eine Definition theoretisch zweimal oder mehrere male geben kann :P

@@ -0,0 +1,56 @@
# Network / Multiplayer

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Das ist Teil des Multiplayers branches

Value = 40;
Margin = Border.All(20, 30);
}
public override string ToString()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verwende hier am besten den Pfeiloperator

{
// TODO: resx -> Languages.OctoBasics.Inventory or what ever...
return "Inventar";
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hier am besten auch den Pfeilchenoperator verwenden

grid.AddControl(buttons[i], i, 1);
}
}
protected override void OnUpdate(GameTime gameTime)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mach hier bitte noch eine Leerzeile rein, also zwischen die klassen ^^

/// <returns></returns>
public static bool IsNullOrEmpty(this string input)
{
return string.IsNullOrEmpty(input);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Das ist unnötig das kann .NET nämlich von Haus aus von daher sehe ich die CodeExtension nicht als sinnvoll an. Vorallem da Extensions der grauen sind was Performance angeht.

Copy link
Author

@HierGibtEsDrachen HierGibtEsDrachen Mar 5, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Da muss man aber immer string.IsNullOrEmpty(string) schreiben.
Echt hätte erwartet, dass der Jitter das inline macht...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope die mergen das recht umständlich während der Laufzeit. Da ist zwar ne änderung geplant in C# 8 was ein extension keyword einfügt aber leider noch keine perfomance verbesserung. Um das performanter zu machen bedarf die .NET runtime in dem punkt ein redesign.

Außerdem ist sehr häufig string.IsNullOrWhitespace besser.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich würde es durchgehen lassen wenn die anderen ihr grünes licht dazu geben.

IDefinitionManager DefinitionManager { get; }
/// <summary>
/// Take a Block from the World.
/// </summary>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Da schließe ich mich an

/// </summary>
public Entity Entity { get; set; }
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hier ist der Dateiname wirklich irreführend. Ich bin sowieso nicht so der Freund davon mehrere Klassen in einer Datei zu haben. Aber wenn man das macht dann sollte doch der Name entsprechend sein.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Das nicht von mir hab es nur verschoben ^^

@@ -10,6 +10,7 @@ public interface IMapPopulator
/// </summary>
int Order { get; }

//TODO: Kommentieren xD
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Das Todo bitte entfernen


namespace OctoAwesome
{
// TODO: implementieren -> egal was oder wie xD
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Das Todo entfernen und lieber später in ein Issue packen

@Gallimathias
Copy link
Member

Kurzes Fazit

  • Also den Multiplayer als Basis zu nutzen finde ich von der Historie aktuell schwierig.

  • Zum Review sei noch gesagt das du gerne so große auskommentierte Codeblöcke rausschmeißen kannst wir haben ja git, und wenn die drinn bleiben dann bleiben die warscheinlich auch drinn ^^.

  • Ich würde mir wünschen wenn zwischen methoden, die keine überladungen sind, noch eine leerzeile reinkommt. Ich finde das macht es beim lesen etwas fluffiger aber es soll kein grund für ein ablehnen sein.

  • Generell zu deiner PDF. Erst mal sehr schön und vorbildlich das du deine Änderungen dokkumentierst. Es ist gefühlt noch etwas unstrukturiert aber deshalb würde ich keinen Pull Request ablehnen.

Zu deinen Interfaces:

Du gehts hier eigentlich den entgegengesetzten weg als wir bisher in Octo gegangen sind. Wir haben uns ganz bewusst dazu entschieden auf Komponenten zu setzen und nicht wie bei Unity auf ein Interface, Koponenten misch masch oder nur Interfaces. Alle drei seiten haben natürlich vor- und nachteile. Sowas sehe ich aber fast schon als generelle Design entscheidung. Es ist etwas doof wenn ein Teil des Projektes es so macht und der andere teil anderst.

Zur Phsysik:

Die Physik logik ist in deinem Code komplett zerschossen. Von daher würde ich das wenn du das ändern möchtest separiert sehen. Es wäre gut die alte Physik wieder herzustellen.

Zusammenfassend:

Eigentlich versuchst du hier drei Teilbereiche einzuführen wenn ich dich richtig verstehen: neue Physik, neues Komponentensystem, einführung des Gameservices. Oder ?

Aktuell, und ich muss es wirklich mir noch inhaltlich genauer ansehen, sind das eigentlich irgendwie 3 Pull Requests.

  • Die Physik lehene ich in der Form ab
  • über ein Redesing des Komponentensystems muss man generell erstmal diskutieren da das eine massive und Grundlegende Entscheidung ist wie wir dort vorgehen.
  • Der GameService stößt auf großen anklang, auch bei mir, tendenziell könnte das ein eigenes Thema mit eigenem Branch werden. Nach einer Inhaltlichen prüfung würde ich dem aber nichts entgegensetzen.

Außerdem fehlt für einen Merge eine entsprechende veröffentlichung, somit würde das maximal in den Stream fallen und das würde frühenstens nach dem Multiplayer stattfinden.

@Gallimathias Gallimathias added input needed It waits for the answer to queries. investigate A community member should explore the reasons or the problem to be able to name details and evaluate labels Mar 5, 2018
@XYZLassi
Copy link
Member

XYZLassi commented Mar 5, 2018

Also ich bin noch nicht dazu gekommen, darüber zuschauen und ich weiß nicht ob das gleich wird.

@XYZLassi
Copy link
Member

XYZLassi commented Mar 5, 2018

Also es ist wieder kompliziert jetzt.

1)Ich denke die neuste Version von Engenious sollte schon laufen, weil die 1.12 ist schon relativ alt.

Mein Problem ist gerade das es immer mehr ein Monster wird, der Pullrequest und es vermischen sich viele Dinge.
Also ich würde vorschlagen, das wir (@HierGibtEsDrachen, @ManuelHu, @Gallimathias und ich) mal drüber schauen und mal Dinge heraussuchen, die wir als kleinen oder mehrere kleine Request übernehmen.

Mein Problem ist immer noch, das das System für Multiplayer nicht ausgereift genug ist, aber es gibt viele kleine und gute Ansätze die man Umsetzen kann und darauf Aufbauen sollte.

@HierGibtEsDrachen
Copy link
Author

Ja das mit Mutliplayer Basis war ein fail. Aber der Stand war noch nicht allzu weit von der Develop entfernt. Bis auf das eine File das ihr beide angemerkt hab ist sonst eigentlich nichts mehr drin und das sind Notizen. Es tut mir schrecklich leid :(

Zum Rest muss ich sagen:
Bei Physik stimme ich nicht zu. Es war ein Versuch und gleichzeitig wollte ich sehen was ihr da zu sagt. Aber bin schon selber der Meinung, das der Ansatz falsch bzw. nicht gut Umgesetzt ist. Gleichzeitig muss ich sagen, dass die Physik ohne richtiges Komponentensystem nicht ernsthaft implementiert werden sollte. Der Teil von Lassi ist schön und gut aber das denkt ja auch nicht alles ab. Der Player kann sich bewegen und Fällt nicht durch Blöcke, dass muss für den Anfang reichen.

Ich hab eigentlich versucht eine Struktur zu implementieren (bzw. den Weg dafür einzuschlagen) die mehr Leisten kann als das gegenwärtige Komponenten System. Dafür musste ich eben mehr ändern auch die UI. Es muss nicht über Interfaces gehen, ist jetzt eine persönliche vorlebe, können auch Basisklassen sein.

Interessant ist, dass alle das womit ich wenigsten zeit verbracht hab am besten finden... xD
Du hast mein Issue geschlossen und gleichzeitig sagst du das darüber diskutiert werden sollte?

@Gallimathias
Copy link
Member

Eigentlich wurde bisher nur ein einzelnes Issue von dir Geschlossen alle anderen sind noch aktiv.

Weist du das Problem mit den Issues ist das selbe wie mit den Pull Requests, du willst zu viel auf einmal. Um so größer die sachen werden um so eher bloppen natürlich sachen auf oder können andere nichts damit anfangen weil sie zu allgemein gehalten sind.

Hättest du z.b. tatsächlich erst den GameService gemacht dann hätte der warscheinlich sogar schon recht früh implementiert werden können. So aber machst du gleich 3 verschiedene Sachen in einem aufwasch.

Auch in den Issues, du machst ein Issue Refactorisierung auf was absolut alles sein kann und willst gleich zich sachen in einem Issue abarbeiten. Das gleiche gilt für das Issue Vererbung, vererbung ist ein weites feld. Wenn man die Beschreibung liest willst du gleich zwei Dinge ansprechen (Basisklasse für Komponenten und Blöcke mit Funktionen) und im Gesprächsverlauf gehts dann auf einmal um Todo: unschön, typeof() methoden, um extensions, um ui. Ich hatte das issue kurzzeitig gelockt weil es zu sehr vom Thema abwich.

Besser wäre es wenn du spezifischer und dedizierter vorgehst. z.b. ein Issue auf machst Titel: IEntityComponent, Text: hallo leute ich habe mir vorgestellt das wir eine IEntityComponent brauchen weil, und das soll folgendes können, und damit ist uns das und das möglich. Oder Titel: KomponentenSystem Redesign. Text: Ich finde wir müssen das Komponentensystem folgender maßen ändern weil.....

Das gleiche gilt für einen Pull Request, wenn du kleinerere Einheiten Einreichst die spezifischer sind z.b. der GameService oder reaktion auf Http request 418 oder was auch immer dann ist zum einen für alle beteiligten die änderung überschaubarer und man kann dedizierter dinge anehmen oder ablehenen. Am besten vom develop branch über einen feature branch in den develop branch. So blockiert sich auch nichts. Aktuell blockieren dein Pull Request vorallem änderungen die vllt. nur minimal etwas miteinander zu tun haben.

Zu aller letzt, wir schätzen dein Engangment, das ist wirklich toll, bringt ein wenig leben in die Bude so soll es sein aber wir haben hier bei Octo definitiv kein druck und auch kein enges Zeitfenster. Octo wird niemals ein Endstadium erreichen, so wie du es sagst eine Never Ending Story und zwar ganz absichtlich. Nimm ein wenig druck aus der sache raus und lasse dir doch zeit mit den Dingen es muss nicht an einem Wochenende das Komplette EntitySytem Redesignd werden. Und du darfst nicht vergessen das wir eine Gemeinschaft sind, man will miteinander Entwickeln und voneinander lernen, von niemandem ist verlangt das er ganze Funktionen des Spiels (UI, Multiplayer, Extensions etc...) fertig und perfekt abliefert,

Und das ist auch der Punkt, so etwas wie ein neues Komponentensystem betrifft eben alle, also gibt es auch viele Meinungen zu einem Thema. Wenn du dich ein bisschen umguckst oder dir die Videos anschaust dann siehst du ja auch wie ähnliche Themen abgehandelt wurden (Definitions, Multiplayer, Universum, Sprache im Projekt) die leute möchten dazu ihre Meinung abgeben und ihre Ideen mit einbringen. Vllt. möchte das gerne jemand mit dir gemeinsam entwickeln, wer weis das schon, alles ist möglich wenn man bei Octo mitmacht.

Also genug der vielen Worte wir machen das jetzt mal im laufe der woche so wie der @CsharpLassi gesagt hatt und dann gucken wir weiter. ^^

@HierGibtEsDrachen
Copy link
Author

Was ist hier jetzt mit dem Pullrequest?

@Gallimathias
Copy link
Member

Wir sind die Woche nicht dazu gekommen

@Gallimathias
Copy link
Member

Zu diesem PR wurde eigentlich das wesentlichste gesagt. Wir lehnen den PR aus oben genannten Gründen ab. Was die Vorschläge zum Komponentensystem angeht werde ich für dich ein Issue aufmachen. Der Gameservice wird sehr gerne angenommen. Aber dann bitte diesen als einzelnen PR aufmachen. Der Pullrequest sollte in einem Branch sein der von develop stammt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
input needed It waits for the answer to queries. investigate A community member should explore the reasons or the problem to be able to name details and evaluate suggestion A suggestion for a new feature / function
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants