Laden...

Eine sinnvolle Basis für ein (beliebiges)gutes Browergame

Erstellt von bluedragon vor 9 Jahren Letzter Beitrag vor 9 Jahren 5.197 Views
Thema geschlossen
B
bluedragon Themenstarter:in
101 Beiträge seit 2008
vor 9 Jahren
Eine sinnvolle Basis für ein (beliebiges)gutes Browergame

Hallo Community,
ich möchte gerne vorweg nehmen, dass ich schon relativ grobe Literatur zu dem Thema gefunden habe. Auch Videos auf der Seite http://www.microsoftvirtualacademy.com waren sehr aufschlussreich.

Nun möchte ich, bevor ich mein Projekt hinsichtlich geschriebenen Codes von Grund auf angehe, nochmal euren Rat einholen in Hinblick auf die verschiedenen Möglichkeiten.

Ich hatte mir überlegt eine Kombination aus
-C#/.NET
-ASP.NET
-WCF+X(A)ML
zu wählen. Mit C# und einem großen Teil der .NET-Lib bin ich aufgewachsen und hab von da an ständig weiter gemacht.
Nur möchte ich mich vergewissern, dass ich nicht sinnvollere Methode verpasse, um schneller/effektiver/qualitativ besser an mein Ziel zu kommen.

Zuerst hatte ich mich an eine App fürs Win8 Phone entschieden, doch ein Spiel über den Browser kann man auch auf dem Handy zocken und eine "Mobile"-Version kurz nach dem ersten Release rausbringen.
Zudem bereitet den meisten Leuten die Flexibilität Freude, dass sie dann auch gemütlich am PC sitzen und spielen können(ohne einen doofen Emulator zu benutzten). Aber das können die Leute dann ja mit sich selber ausmachen =D

Dadurch, dass ich schon für den Apple-Store eine App rausgebracht habe, wird mir die Erweiterung dorthin später auch nicht schwerfallen, falls die Zielgruppe eine "Mobile"-App 'wünscht'.

Nun gut, also ich möchte ein Multiplayer fähiges Browsergames schreiben.
Ich bin mir des Aufwands zu 100% bewusst.
Die Arbeit mit den verfeinerten Grafiken werde ich auf alle Fälle outsourcen. Zu einem Teil weils mir nicht liegt und andererseits, weils mir keinen Spass macht/andere Leute Spass daran haben und gerne Geld damit verdienen.

Ein Multiplayer fähiges Browsergame hab ich vor ein paar Jahren auf Basis von PHP/HTML/CSS/(My)SQL/JavaScript geschrieben und ich möchte meine alte Version in einem Remake neu rausbringen. Nur eben mit mindestens C#/-.NET.

Hardware als eigener Server steht mir auch zur Verfügung. Unter der Vorraussetzung, dass das Spiel irgendwann bekannter wird und die Userzahlen monoton steigend sind, werde ich das Projekt wohl als Software ins Netz tragen. Einfach damit die Sicherheit gegeben ist (oder aber ihr habt dort auch noch Tipps zur Hochsicherheit , zuästzlich SSL^^)

Und hier kommt ihr ins Spiel 😛 ->

Ich würde gerne von euch unter gegeben Umständen um passende Tipps bitten.:
-ich bin fortgeschrittener Nutzer von VS10 bis 13
-ich lerne sehr schnell und gerne neue Themen, die im Bezug zur Sache stehen
-wie gesagt C#/.NET sollte die Grundlage sein, alles dazugehörige/kombinierbare schaue ich mir gerne an

-ich möchte ein Multiplayer fähiges Browsergame schreiben, dass pro Spielwelt eine Userzahl von (im späteren Verlauf) 500-8.000 problemlos handhaben kann

-es müssen viele Berechnungen stattfinden, dementsprechend wollte ich auf meinem Server einen eigenen Cronejob o.ä. ablegen/programmieren (dazu bitte auch Tipps wenns geht 😃 )

-ich möchte den Datenverkehr ordentlich verschlüsseln und nicht einfach nur so WischiWaschi durchs Netz schicken. Ich hab Erfahrung mit Krpytographie, würde mir dort aber auch nochmal gerne Expertenwissen einholen

-Animationen sind erstmal gar nicht so wichtig und kleine Bewegungen von Grafiken sind gar kein Problem, der größte (grafische) Aufwand wird eher noch die Weltkarte sein, dass das dann alles aneinander passt (im Rastermuster automatisch generiert)

-die Datenbank wollte ich in einem MS SQL Server verwalten

Wenn ihr neben euren eigenen Tipps noch externe Links habt, ist das auch super, vielleicht kreuzen sich ein paar mit meinen schon Besuchten, aber das ist egal. Vorziehen tue ich dabei Videos, dann kann ich immer noch nebenbei was machen.
Aber alles andere ist auch i.O. , solange es mich weiter bringt ^^

Gibt es sowas wie eine Projektverwaltung, wo ich einfach verschdiene Etappen mit "ToDo's" belegen kann und dann abharken, wenn die Aufgabe erledigt ist etc.? (ich hoffe ihr wisst was ich meine^^)

lG
blu3

PS.: ich weiß, dass es den perfekten Start und Fortlauf in einem Projekt nicht gibt, aber ich kann zumindest versuchen alle Fehler zu vermeiden, die sich vermeiden lassen 😉

Man muss viel gelernt haben, um nach etwas, worüber man nicht Bescheid weiß, richtig fragen zu können.

Wenn du jemandem vertrauen kannst, erübrigt sich ein Vertrag. Kannst du ihm nicht vertrauen, ist ein Vertrag nutzlos.

5.657 Beiträge seit 2006
vor 9 Jahren

Hi bluedragon,

dein Beitrag liest sich eher wie eine Wunschliste als wie eine Frage. Wir können dir hier im Forum keine Anleitung geben, das Spiel zu entwickeln. Zumal bei so vielen angesprochenen Themen. Du findest für jedes von dir genannte Problem (Netzwerkkommunikation, Verschlüsselung, Datenbanken usw.) unzählige Anleitungen und Tutorials im Netz. Damit solltest du dich erstmal beschäftigen. Bei konkreten Fragen kann man dir dann auch konkrete Antworten geben.

Bitte beachte unseren [Hinweis] Wie poste ich richtig?.

Christian

Weeks of programming can save you hours of planning

B
bluedragon Themenstarter:in
101 Beiträge seit 2008
vor 9 Jahren

Schade, die Antwort habe ich erwartet und das zeigt mir pers. , dass du den Hintergrund nicht verstehst.
Ich will kein Basiswissen.
Ich möchte Expertenwissen.
Keine X-beliebigen Links, die man nach einer Stunde googlen selber findet.

Es ist auch keine Wunschliste. Sondern der inständige Versuch im Vorfeld alle Optionen auszuschöpfen und ich weiß aus eigener Erfahrung, dass es durch aus mitteilungsbedürftige User gibt, die mir gerne weiterhelfen wollen und die gerne lange Texte schreiben wenn Sie das Thema interessiert^^

Und ich lese mir nicht nochmal "Wie poste ich richtig?" durch, denn das habe ich nach meiner Erstanmeldung vor Jahren.

Sei mir nicht böse , aber gibts auch einen Beitrag für "Wie lese ich richtig?"....

Warum soll ich das Rad neu erfinden ? Zeitverschwendung, denn ich verstehe mein Handwerk, schau mir aber gerne neues Werkzeug an und heutzutage kommt alle paar Tage ein neues Produkt raus 😉

lG
blu3

Man muss viel gelernt haben, um nach etwas, worüber man nicht Bescheid weiß, richtig fragen zu können.

Wenn du jemandem vertrauen kannst, erübrigt sich ein Vertrag. Kannst du ihm nicht vertrauen, ist ein Vertrag nutzlos.

B
bluedragon Themenstarter:in
101 Beiträge seit 2008
vor 9 Jahren

Achso, vllt verstehe ich deinen Eindruck einer "Wunschliste".
Mir ging es eher um die Rahmenbedingungen. Mich nerven diese Threads wo man erstmal 20 Beiträge lang klärt wer über was Bescheid weiß und worum es überhaupt geht.
Das artet oft und Grundsatzdiskussionen aus.
Ich sehe kein einziges Thema, dass Mal ganz solide zusammenfasst was ich eigentlich suche. Man muss sich alles doppelt und dreifach zusammnesuchen und hat nach kurzer Zeit ausschließlich äquivalente Basis-Infos, bis man Mal wieder was gutes findet.

Also können wir doch die Initiative ergreifen und selbst so einen Thread produzieren, oder?

Ich werde sicherlich auf eure Ideen eingehen und nicht einfach nur alles aufsaugen.
Für mich dient so ein Forum doch zu Generierung genau solch einer Dynamik.
Tut mir Leid wenn ich den Nutzen eines Forums falsch verstanden habe 🤔

Man muss viel gelernt haben, um nach etwas, worüber man nicht Bescheid weiß, richtig fragen zu können.

Wenn du jemandem vertrauen kannst, erübrigt sich ein Vertrag. Kannst du ihm nicht vertrauen, ist ein Vertrag nutzlos.

5.657 Beiträge seit 2006
vor 9 Jahren

Und ich lese mir nicht nochmal "Wie poste ich richtig?" durch, denn das habe ich nach meiner Erstanmeldung vor Jahren.

Den Hinweis gibt es nicht zum Durchlesen, sondern damit sich alle hier im Forum daran halten.

Dich mit den Grundlagen auseinanderzusetzen, ist deine Aufgabe und nicht die Aufgabe des Forums.

Gesammeltes Grundlagenwissen gibt es bereits hier im Forum, z.B. im Bereich Artikel oder FAQs. Du kannst dich gerne daran beteiligen und dort selbst etwas veröffentlichen.

Christian

Weeks of programming can save you hours of planning

P
1.090 Beiträge seit 2011
vor 9 Jahren

Hi blu3,

ich kann da Christian schon nachvollziehen und sehe es Ähnlich.

Wenn du Hilfe möchtest gib doch bitte zu den einzelnen Punkten an, wie du sie mit deinem aktuellen Wissensstand lösen würdest und wie so. Dann kann man auch sagen ob es da bessere Lösungen gibt.

Z.b. bei der MS SQL Datenbank, das ist jetzt grundlegend nicht falsch. Aber je nach Datenstruktur wäre vielleicht eine nicht relationale Datenbank besser. Dies kann dir aber keiner Beantworten der deine Datenstrukturen nicht kennt.
Wenn du nun sagst wie so du dich für eine MS SQL Datenbank entscheidest, kann man zu mindestens sagen ob die Entscheidung nachvollziehbar ist.

MFG
Björn

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

C
1.214 Beiträge seit 2006
vor 9 Jahren

Es ist nicht so wirklich klar, was du genau willst, deswegen ist auch nicht so wirklich klar, ob das was du dir vorstellst, sinnvoll ist.
500-8000 Benutzer hört sich erstmal nach sehr wenig an, warum gehst du nicht von mehreren hundert tausend aus? Vielleicht ist es bei dem Spiel, an das du denkst, eine sinnvolle Größe, vielleicht hast du die Obergrenze aber auch willkürlich viel zu niedrig gewählt.
Was sind langlaufende Berechnungen und warum denkst du hier gerade an Cron Jobs? Ist auch alles überhaupt nicht klar. Vielleicht lohnt es sich hier eher (je nach Spiel) etwas Aufwand in ausgefeiltere Schedulingalgorithmen reinzustecken, damit nicht so viele und nicht so komplizierte Berechnungen anfallen.
Warum denkst du jetzt grad an Verschlüsselung und erst recht Kryptographie? Das hört sich erstmal so an, als ob du das selber implementieren wollen würdest, was immer eine schlechte Idee ist. Es ist besser, Standardprodukte zu nutzen und da brauchst du dir jetzt auch noch nicht so wahnsinnig viele Gedanken drüber machen. Auch bei SSL gibts paar Punkte, die man beachten sollte, aber das ist nur ein Nebenaspekt, der im Moment eigentlich überhaupt keine Rolle spielt. Das Schreiben des Spiels ist eine Sache, und wie das später gehostet wird eine ganz andere.
Mir scheint deine Technologieauswahl sehr plattformspezifisch zu sein. Es kann völlig in Ordnung sein, sich nur auf die Microsoftplattform zu beschränken, kommt aber auch wieder drauf an, was du willst. Und was genau meinst du mit XAML? Silverlight? Das ist ziemlich tot und damit schränkst du deinen potenziellen Nutzerkreis noch viel stärker ein.
Die Datenbank sollte nach Möglichkeit austauschbar sein. Beim SQL Server musst du beachten, dass die kostenlose Express Version auf 10GB bechränkt ist und wahrscheinlich auch nicht wirklich skalierbar ist (der Aspekt hat mich bisher nie interessiert, aber für ein Browserspiel ist das schon wichtig). Und wie Palin geschrieben hat, könnte eine NoSql Datenbank durchaus sinnvoll sein. Ist aber auch wieder Geschmackssache.

16.807 Beiträge seit 2008
vor 9 Jahren

Schaut man sich auch nur ein paar Browser-Games an sieht man sehr schnell, dass überhaupt gar keine generelle Basis existieren kann.
Allein das Genre zeigt, dass verschiedene Basen nötig sind.

Es gibt...* Single Player Browsergames

  • Multiplayer Browsergames
  • Click-Browsergames (rein Text-basierend, OGame und Co)
  • Interaktive Browsergames (Simulation)
  • Renn- und Shooter, meist First oder Third-Person-Ansichten

und und und ...

Technologisch gibt es Spiele, die Rechen-lastig sind und welche, die Oberflächen-lastig sind.
Browser-Games sind nichts anderes als ganz normale Anwendungen und auch hier ist es ja so, dass nicht jede Plattform oder Umfeld die gleiche Features bietet, die man braucht.

Allein das Hosting kann die Entwicklung beeinflussen:
Ich hab in Azure ganz andere Möglichkeiten (technologisch wie auch funktionell) Dinge umzusetzen, als in AWS oder auf einem anderen Server.
Brauche ich eine Datenbank, die unbedingt ACID unterstützt, dann bin ich im NoSQL relativ einsam. Die am meisten verbreitete, MongoDB unterstützt dies - wie die anderen 99% der NoSQL DBs - nicht. ACID ist nicht unbedingt im Fokus von NoSQL.
Eigentlich auf dem freien Markt gibt nur FoundationDB, die ACID erfüllen - und seit kurzem eben DocumentDB im Azure Umfeld.
Nimmst Du eine MSSQL DB, dann bist Du eben an Schemen gebunden. Das muss Dir halt auch bewusst sein.

Du siehst: allein die Entscheidung des Hostings kann das Werkzeug bestimmen - und natürlich umgekehrt.

Als Fazit würde ich sagen, dass es keine Basis für Browsergames aller Art gibt.
Für gewisse Areten von Spielen ja; aber keine Eierlegende Wollmilchsau.
Mit C# allein kommst Du nicht weit. Vor allem im Web-Umfeld nicht. Das ist sogar fast der geringste Faktor. Für heutige Webanwendungen musst Du HTML5, CSS4, Javascript (jQuery, AngularJS, RESTful) aus dem FF kennen und mit den Server-Technologien (WCF / WebAPI ), Datenbanken (SQL / NOSQL) und eben je nach Spiel OpenGL umgehen können.
Denk auch an Harding, Security, Loginsysteme (eben die klassischen Elemente PaaS, SaaS,IaaS, OSS).

Für eine Einzelperson machbar - je nach Spiel-Funktionen geht das aber ganz ganz schnell Richtung 1000+ Manntage.

B
bluedragon Themenstarter:in
101 Beiträge seit 2008
vor 9 Jahren

Danke für die vielen Antworten, ich hab mir Zeit gelassen mit dem Beitrag um es so gut wie möglich zu beschreiben, damit ihr mir auch spezifisch euer Expertenwissen um die Ohren hauen könnt 🙂
Und zunächst möchte ich mich erst einmal entschuldigen, ich hab überreagiert :S .
Natürlich braucht ihr speziellere Infos wie ich es selber angehen würde, dann könnt ihr auch Kritik üben/Tipps geben/Verbesserungen vorschlagen gg

Abt & Coder007 haben aber schon die richtige Richtung eingeschlagen, in Bezug auf das worauf ich hinaus möchte 🙂

Alsooo noch mal alles auf Anfang, ich versuche so lückelos wie möglich mein Vorstellungen von dem Ganzen offen zu legen, ohne gleich ein Buch zu schreiben:

1. Grobe Anforderungen an die Anwendung
Ich möchte ein textbasiertes Multiplayer Kriegssimulations Spiel von mir neu aufsetzten.
Das Spiel wird mehrere Server/Welten/Runden mit unterschiedlichen Konfigurationen (Spielgeschwindigkeit, etc.) parallel bedienen.
Die Anwendung soll plattformunabhängig über jeden Browser spielbar sein.
(später sollen User eigene Runden (nicht-/endgeldlich) hosten können)

2. Programmier-/Sprachen & Plattformen
Ich möchte gerne mit Visual Studio arbeiten, weil ich mit dem System sehr vertaut bin.
Am bewandertsten bin ich im Bereich C#/.NET und dazugekommen sind dann irgendwann ASP.NET & X(A)ML.
Davor habe ich immer mit PHP/CSS/JS/HTML(5 seit kurzem) gearbeitet für zielgerichtete Webanwendungen, aber ich merke, dass ich mit C#/etc. viel schneller bin und deshalb möchte ich umsteigen und das vorerst am eigenen Projekt ausprobieren, bevor ich das professionell für Kunden anwende.

ASP.NET Web Forms+HTML5 für das Front-End aus 3 einfachen Gründen:*Server Controls, WebParts, Directives, ViewStates, Benutzterverwaltung *Plattformunabhängigkeit *Kompatibilität zu C#/.NET Back-End

Ein Bonus ist hier noch das Upgrade von ASP.NET in letzter Zeit und die Unterstützung von WCF Diensten.

Mir steht hauseigene Hardware zur Verfügung, darauf IIS6.0(und das WinServer2003 System kann gerne beliebig erweitert werden), um die Web Forms überhaupt zum laufen zu bekommen.
Dadurch, dass ASP.NET kompiliert und nicht interpretiert wird, brauch ich mir auch wenige Sorgen über Konformitäten machen. Es muss nur das .NET Framework auf meinem Server bereitstehen und der User brauch einen beliebigen Browser.

3. Feine Anforderungen an die Anwendung Front-End
-Der User kann sich auf einer Startseite registrieren/einloggen.
-Der User kann sich im Usercockpit die Server anschauen auf denen er gerade spielt/anfangen möchte zu spielen. Übersichten/Statistiken anzeigen, Profil bearbeiten, etc.
-Der User kann sich dann auf bestehenden Servern/Welten per OneClick einloggen/anfangen zu spielen.
-Der User kann dann Wirtschaft betreiben, anfangen Technologien freizuschalten und Truppen zu erstellen
-Der User kann durch Angriffe auf andere Spieler Materialien klauen oder das System des anderen Erobern, um sein Imperium weiter auszubauen
-Der User kann Freundeslisten erstellen und Allianzen beitreten/gründen mit entsprechender Oberfläche
-Der User wird je nach Rundeneinstellung mit einer KI zurecht kommen müssen, die sowohl Quest bereitstellt , als auch Attentate auf Spieler durchführt und für Spieler angriffstechnisch interaktiv ist (z.B. Rohstoffe erbeuten, das System erobern).

-Es wird eine Weltkate geben, die die Positionen der jeweiligen Spieler darstellt. In Kombination kann man sich verschiedene Anzeigemöglichkeiten zusammenstellen(Verbündete/Feinde/Freunde/Allianzmitglieder markieren, wichtige/strategische Punkte mit Notiz setzten, etc. ). Und das soll schon in Hinblick auf Grafik das Aufwändigste am ganzen Spiel sein

4. Feine Anforderungen an die Anwendung Front-End-Back-End-Grauzone
Durch die active Server Controls werde ich versuchen den Verkehr möglichst wenig zu belasten und ohne Umleitung die meisten Dinge abzufragen, so wie auf die Bestätigung durch modale Dialoge verzichten. Sondern entsprechende Einblendungen via CSS ansteuern, wenn es durch das Back-End bestätigt ist -sofern nötig. (So zumindest das grobe Vorhaben)

5. Feine Anforderungen an die Anwendung Back-End
-die Registrierung und den Login könnte ich mir vorstellen über die VS Vorlage zu realisieren. Natürlich muss ich es noch für meine Bedürfnisse erweitern, aber das stelle ich mir nicht all zu schwierig vor.
Ich habe schonmal in einer kleinen Sandbox damit rumgespielt und fand den Einstieg recht vielversprechend.
Was meint ihr dazu ? Gibt es gute Alternativen ? Ich muss nicht unbedingt das Rad neuerfinden 👍
-durch den hohen Anteil an Wirtschaft und Truppenbewegungen wird kontinuierlich mehr Belastung bei der Ausführung der Berechnungen entstehen. Zumal ich nur indirekt beeinflussen kann, wann die Spieler aktiv sind. Deshalb wird es häufiger zu Belastungspunkten kommen, wenn ihr wisst was ich meine ^^ Ich kann natürlich die Algorithmen aufs Minimum verfeinern, aber auch da stößt man doch auch irgendwo an seine Grenzen oder?
-die komplette Spiel Mechanik/Architektur werde ich mir selber zusammenbasteln und vermutlich bereits vorhandene Bibliotheken von mir nutzen, fortlaufend mit C#/.NET arbeiten
-ein wesentlicher Punkt wird sein, die regelmäßige Streuung von NPCs und deren Interaktion mit den Spielern. Hier kommt für mich WCF ins Spiel. Da die Anfrage für Attentate & Quest zufällig generiert wird und auch das nur unter bestimmten Umständen -eben auf Anfrage.-, aber das Schema wird immer das selbe bleiben. Oder ist das unnötig ?

5. Datenverwaltung
Dadurch, dass die Anwendung auf meinem WinServer läuft wollte ich einfach auf den MS SQL Sever zurückgreifen, den ich einfach in der Systemverwaltung hinzufügen kann. Bin mir wegen eurer Einwände nicht sicher, ob es nicht eine bessere Möglichkeit gibt und sollte mir nochmal Gedanken über die Skalierbarkeit machen.
Ich muss sagen da habe ich in der Vergangenheit lästige Punkte entdeckt.

Eventuell könnte ich die stupide aber doch sehr große Datensammlung von Koordinaten über ein GIF lösen.
Da wären die ersten beiden Kanäle mit Koordinaten bis zu 250 (es gehen bis zu 256, aber ich verzicht auf 6 bit für die einfachere Handhabung der Zahl) drin zu speichern und den dritten Kanal kann ich für die Art der Koordinate festlegen.
z.B.Grasland (0), Hügel (1), Wald (2), NPC Stufe 1 System (3),NPC Stufe 2 System (4), NPC Stufe 3 System (5), Spieler Stufe 1 System(6), Spieler Stufe 2 System(7), etc...
Im 4. Kanal kann ich dann bis zu 256 Farbbelegungen anlegen, für die jeweiligen Felder & Markierungen.
256 sollten im 3. & 4. Kanal vollkommen ausreichend sein.
Selbst wenn ich für den 3. Kanal berücksichtige , dass viel mehr Elemente hinzukommen, teilweise für die Landschaft angepasst/gedreht sein müssen -damit die angezeigte Karte nicht fehlerhaft aussieht- dann kann ich immernoch unter der Grenze von 256 verschiedenen Elementen für die Karte bleiben.^^

Dann muss ich das GIF/die GIFs nur in sinnvolle Anzeige-/Ausgabe-Formate mappen und entsprechende Ausschnitte(je nachdem wo sich der User gerade auf der Karte befindet) zusammenlegen.
Einmal mappen in eine Minimap mit den intuitiven(&selbstdefinierten) Farben für den weitreichenden Überblick über die Weltkarte.
Und einmal mappen für die herangezoomte Ansicht eines kleinen Kartenausschnitts. Dabei soll die Zoomstufe von der Anwendung aus vorerst nicht skalierbar sein. Allerdings können die Größen der Ausschnitte von Karte&Minimap vom User festgelegt werden. Das beeinflusst aber nur das Mapping zur Anzeigen, nicht das eigentlich Quell-GIF.

Im Anschluss kann ich für verschiedene Nutzer die selbe Quelle gebrauchen, weil sich zu 100% manche Einstellungen überschneiden werden, das liegt alleine schon daran, dass bei jeder neuen Runde die Standarteinstellungen geladen sind.

Und kurz vor der Ausgabe muss ich nochmal den Einzelfall betrachten, der eigenen Systeme, die müssen am Ende noch drübergemalt werden, da die Speicherung in dem dritten Kanal zur Folge hätte, dass sich keine Quellen überschneiden würden.

Das Workaround mag erst Arbeit bereiten, aber das ungemappte GIF muss ja nur dupliziert&angepasst werden, wenn ein Spieler eine Einstellung vornimmt. Oder spare ich unterm Strich Nichts?
Sind jetzt aber z.B. 3 Spieler in der selben Allianz (und es wäre blau makiert), dann könnte jeder auf das selbe GIF zugreifen und es muss nicht lange herumgerechnet werden an welchem Platz blau/rot/grün/... sein muss.


Ich finde das reicht erstmal.

Jetzt an euch, was übersehe ich und wo erzähle ich totalen Unsinn 😁 ?(
(den Part mit der Verschlüsselung können wir erstmal bei Seite legen)

lG
Hoffi

Man muss viel gelernt haben, um nach etwas, worüber man nicht Bescheid weiß, richtig fragen zu können.

Wenn du jemandem vertrauen kannst, erübrigt sich ein Vertrag. Kannst du ihm nicht vertrauen, ist ein Vertrag nutzlos.

16.807 Beiträge seit 2008
vor 9 Jahren

Mir ist das persönlich viel zu viel Text. Ich habs nur kurz überflogen.

Zu Anwendungen und WebForms: lass davon die Finger weg.
Das ist dafür ungeeignet. WebForms ist für Datengetriebene Anwendungen und hat mit einer RIA, was Du willst, eigentlich nichts zutun.

Was Du willst ist modern. Und das bildet eher sowas wie AngularJS und ne JsonAPI ab.
Ob darunter WCF / ASP.NET MVC steckt oder PHP steckt ist völlig egal.
Zudem ist ein Frontend mit AngularJS um längen schneller gebaut.
Nimmste noch das Routing Modul hinzu und Du kannst ne echte Anwendung / Spiel daraus bauen.
Mit http://angulargo.codeplex.com/ haste ne super Basis mit nem ASP.NET MVC-Kern.

Was Dir keiner abnehmen kann: spiel einfach mal mit den Technologien um; dann wird Dir klar, welche Berg vor Dir ist.

Dadurch, dass die Anwendung auf meinem WinServer läuft wollte ich einfach auf den MS SQL Sever zurückgreifen, den ich einfach in der Systemverwaltung hinzufügen kann.

Schau Dir mal an, wie Evaluation funktioniert. So jedenfalls nicht.
Du suchst eine Technologie nicht dahingehend aus, wie man sie am einfachsten installiert, sondern man ermittelt Features, die man braucht und dann kristallisiert sich nach und nach ein Produkt aus; andere fliegen wegen Nicht-Erfüllung der Kriterien raus.

Mein Kriterium, weshalb ich relationale DBs (noch) nutze: ACID pflicht, ja oder nein?
Wenn ja, dann habe ich quasi keine gescheite NoSQL-DB, die das kann (Ausnahme seit kurzem - aber nur in Azure: DocumentDB). Dann muss ich einen MSSQL verwenden.

Wie das gehostet wird ist mir als Entwickler egal. Als Technical Leader wähle ich Technologie aus, wie zum Projekt passen oder erforderlich sind.
Alles andere kann man kaufen / machen lassen.

742 Beiträge seit 2005
vor 9 Jahren

Verabschiede dich von dem Gedanken irgendwas planen zu können mit deinem Wissenstand. Ich prophezeie jetzt mal wie das ungefährt lauft:

Schritt 0: Du hast große Pläne und planst alles auf einem sehr begrenzten Kenntnisstand durch. Das ist löblich, aber führt erstmal zu nichts.

Schritt 1: Du fangst dann einfach mal an, hackst den Code runter und lernst viel dabei. Irgendwann wirst du dann deinen zuerst geschriebenen Code anschauen und feststellen, dass alles Müll ist und viel besser gelöst werden kann. Eventuell wirst du Performance-Probleme oder Designfehler in deiner Architektur feststellen. Du hast zwar das Gefühl du wärst schon sehr weit, bist aber maximal bei 5%. Also fangst du von vorne an.

Schritt 1.1: Das spiel wiederholt sich, du machst 5,6 Iterationen und lernst viel dabei.

Schritt 2: Irgendwann passt eine Iteration. Mit viel Motivation kommst du über die 5% hinaus und schaffst sogar die 100%. 3 Jahre später bist du dann vll. fertig. Eventuell spielt dann niemand mehr auf dem Browser, aber das ist ein anderes Thema.

Mein Tipp: Fang einfach an und hoffe, dass du genug Durchhaltevermögen und Motivation hast, das zu Ende zu bringen.

B
bluedragon Themenstarter:in
101 Beiträge seit 2008
vor 9 Jahren

Verabschiede dich von dem Gedanken irgendwas planen zu können mit deinem Wissenstand.

Naja ich bin durch aus lernwillig ^^

Schritt 1: Du fangst dann einfach mal an, hackst den Code runter und lernst viel dabei. Irgendwann wirst du dann deinen zuerst geschriebenen Code anschauen und feststellen, dass alles Müll ist und viel besser gelöst werden kann. Eventuell wirst du Performance-Probleme oder Designfehler in deiner Architektur feststellen. Du hast zwar das Gefühl du wärst schon sehr weit, bist aber maximal bei 5%. Also fangst du von vorne an.

Schritt 1.1: Das spiel wiederholt sich, du machst 5,6 Iterationen und lernst viel dabei.

Schritt 2: Irgendwann passt eine Iteration. Mit viel Motivation kommst du über die 5% hinaus und schaffst sogar die 100%. 3 Jahre später bist du dann vll. fertig. Eventuell spielt dann niemand mehr auf dem Browser, aber das ist ein anderes Thema.

Klingt für mich nach einem standart Wasserfall Modell. Aber das ist zum kotzen und auch wenn die einzelnen Modelle nur die Durchführung beschreiben und man sich prinzipiell nicht daran halten muss.

Generell wollte ich mich aber mit Prototypes in einem Spiralmodell an die Sache annähern, sodass ich nach dem Basis-Moduls des Spiels nach&nach modular Funktionen anbaue, die aber gekapselt testbar sind.
Ich habe durchaus die Erfahrung gemacht, dass bei einer scharf vertikal gerichteten Architektur einiges schief gehen kann. Natürlich lässt sich das nicht komplett vermeiden.
Nur werde ich sicher nicht 0815 'drauf los hacken' , sondern solide mit vorhandenen Mitteln das Projekt strukturieren, bis mir nichtmehr auffällt.
Einfache Ansätze:*Klassendiagramm *Kollaborationsdiagramm als Vorlauf für Sequenzdiagamme *evt. Use-Case-Diagramm *Zustandsdiagramm *evt. Aktivitätsdiagramm je nach Komplexität des Anwendungsfalls

Mein Tipp: Fang einfach an und hoffe, dass du genug Durchhaltevermögen und Motivation hast, das zu Ende zu bringen.

Naja klingt etwas zynisch und finde eure Einstellungen schade.
Ich bin mir des Aufwands durchaus bewusst und das habe ich im ersten Beitrag genauso bewusst geschrieben.
Ich habe bereits im Alleingang 2 Spiele entwickelt, die nicht nur gerade der Trend-Idiotie, 95% aller Apps in den Stores oder sonstigen Anwendungen im Web, folgen.
Nun wollte ich gerne auf Web Forms umsteigen und sämtliche Dokumentation von MSDN überzeugt. Vor allem im direkten Vergleich zu Webanwendungen glänzen Web Forms für meine Bedürfnisse.

Und ich verstehe auch nicht wieso ich immer wieder Einwände darüber hören muss.

Ich dachte hier will man sich gegenseitig helfen und nicht runterziehen, dass etwas zu aufwändig wäre. Klar ist es aufwändig und kostet Zeit. Aber wer zu faul ist sich nach der Arbeit damit zu beschäftigen ist selber Schuld und findet immer eine Ausrede , warum 'jetzt gerade weitermachen' zu anstrengend ist.
Zumal ich auch während der Arbeitszeit effektiv an dem Projekt sitzen kann/werde.

Also ihr könnt mir gerne alles aufzählen wo ich sachlich gesehen völlig daneben liege, aber bitte schert nicht alle Threadersteller hier bzgl. großer Projekte über einen Kamm, danke.

Man muss viel gelernt haben, um nach etwas, worüber man nicht Bescheid weiß, richtig fragen zu können.

Wenn du jemandem vertrauen kannst, erübrigt sich ein Vertrag. Kannst du ihm nicht vertrauen, ist ein Vertrag nutzlos.

16.807 Beiträge seit 2008
vor 9 Jahren

Naja ich bin durch aus lernwillig ^^

Lernen reicht da nicht. Du brauchst bei sowas vor allem Erfahrung. Und mit einem Wasserfallmodell übernimmst Du Dich in der Ressourcen-Planung ganz schnell.
malignate sagt das schon richtig und Du musst das schon ernst nehmen. Mach Stück für Stück und nicht alles auf einmal. Spätestens wenn Du am 3. Part bist, wirst Du das erste überdenken.

Und auch wenn Webanwender immer wieder belächelt werden: es ist um längen komplizierter als eine App oder eine Desktopanwendung.
Es ist sowohl horizontal wie auch vertikal viel komplexer. Du wirst mit Technologien, Architekturen und Methoden Kontakt haben, an die Du bei einer App nie denken musst.
Du musst das alleine alles drauf haben und das ist selbst mit zig Jahren im Web und Erfahrung kaum zu schaffen. Und wenn Du jetzt erst mit Web anfängst und dann auch noch mit WebForms; dann muss man Dich einfach etwas bremsen - sorry.

Du musst erst mal ein Mock (Klickstrecke) erarbeiten.
Wenn es sich schei*e spielen lässt, dann kannste auch 10 Jahre entwickeln: wird halt nicht genutzt.

Und ich wiederhol mich gerne: WebForms ist die falsche Technologie.
Du nimmst auch kein Mofa mit aufs Feld um den Acker zu pflügen.

Du glaubst gar nicht, wie viel Aufwand in so einem Ding steckt. Ich denke das unterschätzt Du ziemlich.
Wir helfen Dir; versuchen aber auch Dich auf den Boden zu halten. Manchmal muss man die Erfahrung aber halt auch selbst machen.

Aber Du darfst Dir hier keinen Mentor erhoffen.
Dein Text ist wirklich sehr sehr sehr lang. Wenn das 10 Leute durchlesen ist das viel.

742 Beiträge seit 2005
vor 9 Jahren

Tut mir Leid, wenn das irgendwie schlecht rübergekommen ist. Das was ich geschrieben habe, beruht auf eigene Erfahrungen und Beobachtungen. Ich finde das auch nicht unbedingt schlecht, wichtig ist, dass man sich weiterentwickelt. Ich wollte mit 16 eine 3D-Engine entwickeln und habe dann mti dem Abi mehr oder weniger aufgehört 😉

Deshalb sage ich ja: Fang doch an, dann stoßt du auf Probleme oder Fragen die jetzt noch viel zu schwammig sind. Dadurch dass du dich in Iterationen voranhangelst haben wir kein Wasserfall-Modell. Ich würde nur damit rechnen, an einem Punkt nochmal von vorne anzufangen.

Wenn ich eine Liste von "Technologien" nennen sollte (Das ist jetzt ein bunter Haufen), die ich verwenden würde, dann würde ich folgendes nennen:

C#
ASP.NET MVC
ASP.NET WebAPI
Owin / Katana
Owin Identity Framework
Async/await Tasks
Javascript
Angular
Angular-UI
Bootstrap
CSS, LESS
MongoDB
JSON
Redis
SignalR

Du siehst die Liste ist lange. Wenn du Durchschnitt nur ein Monate mit Lernen pro Punkt verwendest, bist du das erste Jahr schon beschäftigt 😉

Wo du vor allem daneben liegst ist alte Technologien wie IIS6 und WebForms zu verwenden.

B
bluedragon Themenstarter:in
101 Beiträge seit 2008
vor 9 Jahren

Und mit einem Wasserfallmodell übernimmst Du Dich in der Ressourcen-Planung ganz schnell.

Wie gesagt, deshalb ja kein Wasserfallmodell 😄

malignate sagt das schon richtig und Du musst das schon ernst nehmen.

Tue ich doch, sonst wäre ich nicht hier -.-

Und auch wenn Webanwender immer wieder belächelt werden: es ist um längen komplizierter als eine App oder eine Desktopanwendung.

Wie gesagt, ich habe bereits 2 Projekte fertiggestellt. Eine App fürs iPhone und ein Browsergame mit PHP/HTML/CSS/(My)SQL/JavaScript und langsam will ich mich auch nichtmehr wiederholen müssen.
Klar sind die Beiträge lange, aber es ist nicht nur ein Error-Code um den es hier geht, also wäre es doch nur fair vor einer Antwort die Nachricht des Gegenübers ernst zu nehmen und komplett zu lesen oder ? :S

Du musst das alleine alles drauf haben und das ist selbst mit zig Jahren im Web und Erfahrung kaum zu schaffen. Und wenn Du jetzt erst mit Web anfängst und dann auch noch mit WebForms; dann muss man Dich einfach etwas bremsen - sorry.
[...]
Du glaubst gar nicht, wie viel Aufwand in so einem Ding steckt. Ich denke das unterschätzt Du ziemlich.
Wir helfen Dir; versuchen aber auch Dich auf den Boden zu halten. Manchmal muss man die Erfahrung aber halt auch selbst machen.

Bremsen kann ich ja noch nachvollziehen, aber ich weiß nicht, für mich ließt sich das hier mehr&weniger wie eine Vollbremsung noch bevor ich wirklilch angefangen habe und das finde ich einfach schade 😕

Du musst erst mal ein Mock (Klickstrecke) erarbeiten.
Wenn es sich schei*e spielen lässt, dann kannste auch 10 Jahre entwickeln: wird halt nicht genutzt.

Ja das stimmt absolut, deshalb quetsch ich euch aus, bis mir keiner mehr antworten will oder ich alle Antworten habe , die nicht durch eigenrecherche auffindbar warengg

Und ich wiederhol mich gerne: WebForms ist die falsche Technologie.

Du begründest das aber nicht !? Immerhin steht bei der ganzen Literatur die ich bisher darüber gelesen habe, dass es gerade genau für mein Vorhaben geeignet ist.
Oder ich verstehe einfach nicht, warum du der Meinung bist das Web Forms das Falsche sind.

Aber Du darfst Dir hier keinen Mentor erhoffen.

Das tue ich auch nicht, ich habe auf Leute gehofft die sich so sehr dafür interessieren wie ich, anstatt nur nebenbei semantische Nachteile meines Vorhabens aufzuzählen 😦
Hätte ich nämlich das Wissen, sodass ich mir hier sämtlich Fragen erübrigen könnte, dann fänd ich es toll meine Erfahrungen an andere weiterzugeben auf so einem Portal. Aber das muss ja jeder selber wissen^^

Dein Text ist wirklich sehr sehr sehr lang. Wenn das 10 Leute durchlesen ist das viel.

Das ergibt doch überhaupt keinen Sinn.
Entweder man nimmt hier dran Teil&nimmt es ernst(so wie du es zu mir meinst) oder man lässt es gleich ganz. Trotz meiner ernstgemeinten Entschuldigung kann ich auf Mitleser verzichten , die nur eine Morgenlektüre zwischen Kaffee und Aufbruch zur Arbeit wollen.

Wieso muss das hier eigentlich in Off-Topic ausarten ....

Wenn ich eine Liste von "Technologien" nennen sollte (Das ist jetzt ein bunter Haufen), die ich verwenden würde, dann würde ich folgendes nennen:

C#
ASP.NET MVC
ASP.NET WebAPI
Owin / Katana
Owin Identity Framework
Async/await Tasks
Javascript
Angular
Angular-UI
Bootstrap
CSS, LESS
MongoDB
JSON
Redis
SignalR

Du siehst die Liste ist lange. Wenn du Durchschnitt nur ein Monate mit Lernen pro Punkt verwendest, bist du das erste Jahr schon beschäftigt 😉

Okay gut danke , ja einiges davon ist mir geläufig, manches gar nicht.

Wo du vor allem daneben liegst ist alte Technologien wie IIS6 und WebForms zu verwenden.

Interessanter Einwand. Denn bei jeder Recherche via Google kam nur die eine Seite der Münze. Nachdem ich jetzt explizit nach "warum sind webforms veraltet?" gegoogled habe wird dein Punkt sofort mehrfach bestätigt, aber leider ohne Begründung.
Ich finde nur weil etwas alt ist muss es nicht schlechter sein oder weil etwas neuer ist muss es nicht besser sein, wie man bei vielen Linux packages sehen kann 😄

lG
hoffi

Man muss viel gelernt haben, um nach etwas, worüber man nicht Bescheid weiß, richtig fragen zu können.

Wenn du jemandem vertrauen kannst, erübrigt sich ein Vertrag. Kannst du ihm nicht vertrauen, ist ein Vertrag nutzlos.

16.807 Beiträge seit 2008
vor 9 Jahren

Wie gesagt. Wir sind hier nicht unbedingt Mentoren, die Dir bei der Evaluierung helfen.
Das Forum ist dazu da, dass wir bei konkreten Probleme helfen. Bei Dir geht es um die Projektplanung und wenn ich das ganz ernst und stupide sagen darf: das ist nicht unser Job. Das ist auch nicht Offtopic sondern das ist ernste Realität. 😃
Ich helfe gerne bei konkreten Dingen - aber hier wird Dir keiner die Evaluierung und das Konzept abnehmen. Und darauf läuft das hier irgendwie raus. Und dann wird der Ton solangsam auch frech, was ich nich mag 😉

Wir sind hier alle ehrenamtlich unterwegs und opfern unsere kostbare Zeit um Leuten zu helfen.
Was Du verlangst ist mehr oder weniger schon "dreist"; das ist halt nich unser Job. Wenn sich dem jemand antut dann musst Du das zu schätzen wissen - erwarten kannst Du das nicht. Fairness spielt hier keine Rolle.

Und wenn da jetzt nicht die Antwort kommt, die Du hören willst, dann ist das ehrlich gesagt Dein Bier 😉
Hier sagen Dir zumindest zwei Personen, die seit je mind. 10 Jahren ihr Leben auf Webanwendungen fokussiert haben, wie sie es einschätzen und wo sie jetz schon Probleme sehen, von denen Du gar nichts ahnst. Das kannste jetzt akzeptieren oder nicht.
Ich bin da sehr direkt und eck damit gerne an; wer mich kennt weiß aber wie ich sowas meine. Nur glaube ich, dass Du mit hoher Geschwindigkeit mit Deinem aktuellen Wissen und der Planung hier gegen die Wand fahren wirst. Als Ansporn: zeig mir doch das Gegenteil ? 😉

Ich muss auch nicht wieder und wieder begründen, wieso WebForms sch* ist.
Verwende die Suche hier im Forum und Du findest ~5-10 Beiträge, wo ich (zurecht) über WebForms kot*e - mit Begründung. Warum soll ich das nochmal abtippen? 😉
Die Literatur, die sagt, dass WebForms dafür geeignet ist; die will ich sehen. 😃

Und wie gesagt, eine RIA ist nicht mit einer App zu vergleichen.
Ich wünsch Dir, dass das klappt - habe aber aufgrund meiner Erfahrung da skepsis 😃

742 Beiträge seit 2005
vor 9 Jahren

Warum ist Webforms nicht mehr zeitgemäß:

Es war einmal das Web und das Web war gut. Und alle Werkzeuge haben so ähnlich funktioniert, wie es das Web und die Protokolle vorgesehen haben. Doch dann kamen die Desktop-Entwickler: "Warum kann ich für das Web nicht wie für meine Desktop-Anwendungen entwickeln. Lass uns dafür Frameworks schreiben (Webforms)." Doch dann haben auch die Desktop-Entwickler erkannt, dass das nicht so gut funktioniert und ASP.NET MVC entwickelt.

Spaß Beiseite: Webforms war eine zeitweise Verirrung, dazu gehören auch noch eine ganze Reihe von anderen Technologien wie JSF. Das gab es auf sehr vielen Plattformen. MVC ist einfach sehr viel näher an den Web-Protokollen dran und wenn man es mal verstanden hat auch deutlich einfacher, weil die Konzepte sich nicht so sehr beißen. Ein Beispiel dafür ist zum Beispiel der ViewState in Webforms, wo versucht wird einen Zustand reinzubringen. Das HTTP-Protokoll ist aber zustandlos.

Das ist die kurze Antwort. Man findet auch Artikel dazu: WebForms vs. MVC

5.657 Beiträge seit 2006
vor 9 Jahren

Hi bluedragon,

deine Frage war, welche Technologien man für ein Browsergame einsetzen würde. Diese Frage wurde von malignate bereits beantwortet:

C#
ASP.NET MVC
ASP.NET WebAPI
Owin / Katana
Owin Identity Framework
Async/await Tasks
Javascript
Angular
Angular-UI
Bootstrap
CSS, LESS
MongoDB
JSON
Redis
SignalR

Die Diskussion dreht sich im Kreis, da du nicht bereit bist, dich mit den gegebenen Informationen und Hinweisen auseinanderzusetzen. Niemand wird dir erklären können, wie man im Detail ein Browsergame erstellt. Und das Thema ist so vielschichtig, daß die Diskussion noch endlos so weitergehen könnte. Zu den von dir angesprochenen Bereichen gibt es hier im Forum die passenden Unterforen, wo du konkrete Fragen zu konkreten Themen stellen kannst.

Es gibt genügend Browser- und andere Spiele, deren Sourcecode im Internet veröffentlich ist, es gibt zahllose Tutorials und Artikel zu dem Thema und den Detailfragen. Das kannst du dir anschauen und durchlesen, dann bei Bedarf konkrete Fragen dazu stellen.

Bitte beachte in Zukunft [Hinweis] Wie poste ich richtig?, besonders Punkt 1.1, 1.1.1, 1.2, 2.1, 4a, 4c und 8.

Christian

Weeks of programming can save you hours of planning

Thema geschlossen