Hallo!
Ich möchte Euch mein aktuelles Projekt vorstellen:<Nameunbekannt>
Es ist ein eine Version des berühmten Brettspieles Axis & Allies, mit verbesserten Regeln.
Ziel ist es zunächst eine Rundenpassierende Variante zum laufen zu bringen, dann eine Multiplayer Variante zu erstellen.
Ich entwickle mit Microsoft Visual Web Developer 2005, und muss sagen es ist die beste Entwicklungsumgebung mit der ich je gearbeitet habe.
Da ich schon auf viele Interesannte Dinge "drauf gekommen" bin, hab ich mir gedacht ich starte einen Thread in dem ich diese zur Information stelle.
Ich ersuche Euch um Feedback und poste mal den ersten Screenshot.
lg ifoko
Hallo Ifoko,
bisschen millitant, aber sieht nicht schlecht aus.
Je nachdem, wie du dir später die "Verwertung" vorstellst, könntest du Probleme geben, wenn du ein Brettspiel als Vorlage nimmst. Auch auf Brettspiele gibt es ein Copyright und wenn du dein Spiel einer großen Öffentlichkeit zur Verfügung stellen willst, könntest du schon Probleme bekommen, erst Recht, wenn das ganze eine kommerziellen Hintergrund hat.
herbivore
Hallo!
@herbivore
Stimmt Dir zu, ich habe mir noch überhaupt keine Gedanke über Urheberrechte usw gemacht. Die jetztige Version dient hautpsächlich dazu, einen Prototypen zu erstellen. Die Graphik, Spielablauf usw sind konfigurierbar.
Der Grundlegende Aufbau:
*einfach wie möglich. Es gibt eine GameClass Klasse, die alle Daten(Ländern, Einheiten, Industrie,........) beinhaltet.
Diese wird dann als XML komplett gespeichert und geladen. Prinzipiell kann der Aufbau der Klasse sehr komplex sein, jedoch gibt es Einschränkungen. So kann man keine Hash verwenden, ArrayList jedoch schon.
Da die komplette Klasse 1:1 "serialisiert" wird kann man diese sehr schön für Saved Games bzw. Spielstände verwenden.
Laden und Abspeichern der gesamten GameClass
public static void SaveGame(GameClass Game, String Path)
{
XmlSerializer sr = new XmlSerializer(typeof(GameClass));
XmlTextWriter tw = new XmlTextWriter(Path, null);
tw.Formatting = Formatting.Indented;
sr.Serialize(tw, Game);
tw.Close();
}
public static void LoadGame(ref GameClass Game, String Path)
{
XmlSerializer sr = new XmlSerializer(typeof(GameClass));
XmlTextReader tr = new XmlTextReader(Path);
Game = (GameClass)sr.Deserialize(tr);
tr.Close();
}
Und das beste ist, man kann die Inhalte der xml Datei ganz bequem mit dem Editor bearbeiten.
Ich hoffe es nutzt
lg ifoko
So habe heute etwas weiter gemacht und die Landverbindungen eingezeichnet.
Die Graphik ist auch schon etwas besser geworden, aber passt noch nicht ganz.
Thread: GDI+ Unscharfes Zeichnen
So Problem gelöst, Ändern vom jpg auf bmp format und es sieht einwandfrei aus.
Ich hoffe das die Bilder jetzt nicht zu groß werden und es beim übertragen zu lange dauert.
Neuer Screeni auf www.axamit.at
Dauert paar Sekunden bis das Bild geladen ist (3MB)
Bald ist es fertig dann brauch ich Tester ^^
lg ifoko
Hast du inzwischen eigentlich die Urheberrechte-Frage geklärt?
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee
Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
Für die Skins und die Polygone hab ich sie schon, da sie von einem Java Game (AAA) sind das unter GPL läuft.
Wie das mit den Rechten vom Brettspiel aussieht, weis ich nicht ob die notwendig sind.
Kennst sich wer das aus ? Was ist wenn ich "Mensch ärgere dich nicht" programmieren will.
lg ifoko
Hallo Ifoko,
wenn du das Spiel Mensch-ärgere-Dich-Nicht nennst, bekommst du Probleme, weil das ein Markenname ist. Das Spiel selber ist aber schon so alt (Pachisi), dass es copyright-frei ist. Wenn du das Mensch-ärgere-Dich-Nicht -Original-Spielbrett verwendest, gibt es aber wieder Copyright-Probleme.
herbivore
Genaus so ist es bei mir.
Ich verbessere ein Java Game (davon hab ich die Rechte, GPL) das wieder einem Brettspiel nach empfunden wurde.
Also dürfte es da keine Probs geben.
Außerdem ändere ich wesentlich das Spielprinzip.
Da es am Anfang sowieso nicht kommerziell ist mach ich mir darüber nicht so viele Gedanken.
Mir ist wichtig, jetzt die Technologie zu entwickeln.
lg
Zu dem verwendeten Bildformat...
Bitmaps werden im Web grundsätzlich nicht verwendet, da sie einfach zu gross sind. Besser sind Vektorgrafiken à la Jpg, Gif, Png.
Du würdest mindestens die Gruppe der nicht-DSL-Benutzer von der Teilnahme ausschliessen, da keiner bock hat, mehrere Minuten auf die Page zu warten.
Für eine Webseite gilt, dass sie insgesamt allerhöchstens einige 100 kB gross sein darf (besser weniger) - ausnahmen sind natürlich Mpgs, Flash oder Applets, bei denen extra daraufhingewiesen wurde.
Grüsse
Cord
oder z.B Bildergallerien bei denen dem user klar ist warum das laden länger dauert
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Original von Cord Worthmann
Besser sind Vektorgrafiken à la Jpg, Gif, Png.
Sorry aber keins von deinen genannten Formaten ist nen Vektorformat 🙂
SVG wäre z.b. eins
Baka wa shinanakya naoranai.
Mein XING Profil.
stimt sind eigendlich alle blos gepackt
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Danke für die Kommentare.
Ich habe jetzt das png Format gewählt. Bilder sind jetzt gestochen scharf und auch ziemlich klein, 54kb das grosse und 46kb das kleine. Ich schätze, dass die Seite max. 150kb bekommt. (Wie kann ich das genau festellen ?)
Die Response Zeit habe ich jetzt auf 30ms-40ms (selber gebaute Caches), auf meiner Entwicklungsumgebung (AMD64 3700+). Allerdings zeichne ich jetzt nur 10 Einheiten, mal schauen wie es performend bei 200-300.
Zum Spiel selbst:
Konfiguration ist fertig; Einheiten aufstellen auch schon;
Bewegen ist zu 70% fertig;
Kampf ist noch komplett offen.
Produktion deto.
Die Woche werde ich mir mal das Hosting angucken, und schauen das ich in 1-2 Wochen eine Testversion online hab.
Update auf www.axamit.at
Jetzt mal Provider suchen; Hat schon jemand Erfahrung mit dem 6,95 € Angebot auf der Main Site?
lg ifoko
So es ist online
http://wolfgang-axamit-1.at.vwdhosting.net/axisWebSite/default.aspx
Movment fast fertig (landen auf Transporter geht noch nicht)
Kampf fehlt.
Bitte mal angucken.
lg ifoko
Also ich glaub ich bin zu blöd um das game zu kapieren!
oder fehlt mir einfach eine kurz anleitung?
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Jo, irgendwie raff' ich da auch nix.
Sieht aber gut aus 😉.
Jo, iss n bissl kompliziert, hab ich den Anschein 😉
Habs aber gesschafft, dass sich die Figuren bewegen, allerdings, ohne dass ich Einfluss drauf nehmen konnte wohin.
Also, die Textbox, die Standardmäßig angewählt ist (die große quadratische) ist für die Kommandoeingabe. Erlaubte Kommandos werden in der Textarea darüber angezeigt.
Z.B: Select Base, Attack Move etc...
Wenn ich nun Attack/Move auswähle, dann kann ich die Einheit nach dem selben Schema wählen, allerdings wird diese dann schon bewegt. Und zwar auf ein Nachbarfeld, auf das schon meine Einheiten stehen ... ??
Naja, so ein paar Tooltipps und eine Hilfe Hinterlegung wären hier nicht schlecht.
--> Du verwendest hier JavaScript, wenn das Bedingung sein sollte, damit man das Spiel spielen kann, dann würde ich Dir auch AJAX empfehlen, für das es schon ein fertiges Framework per DLL Referenz für .NET bereitstellt...
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
So danke mal fürs angucken.
Die Steuerung erfolgt nur mit Zahlen(0-9), in der kleinen Textbox. Die Menü sind weiter oben in der Anzeige.
zB So ist die Eingabe von 0 immer "Menue back".
Würdet ihr so ein Spiel spielen (Grafik)?
Hat der Seitenaufbau lange gedauert? (Response)
lg ifoko
Original von norman_timo
--> Du verwendest hier JavaScript, wenn das Bedingung sein sollte, damit man das Spiel spielen kann, dann würde ich Dir auch AJAX empfehlen, für das es schon ein fertiges Framework per DLL Referenz für .NET bereitstellt...
Nicht das ich wüßte ?)? Brauch ich das überhaupt (JavaScript)?
Ich google jetzt mal nach AJAX, hättest eventuell eine guten Link ?
lg ifoko
Hallo ifoko,
ich gebe Dir mal einen klitzekleinen Auszug aus dem HTML-Quelltext von Deiner Seite:
<input name="MenueSelectTB" type="text" onchange="javascript:setTimeout('__doPostBack(\'MenueSelectTB\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="MenueSelectTB" style="font-family:@Arial Unicode MS;font-size:16pt;width:44px;z-index: 103;
Wie Du erkennen kannst, verwendest Du hier indirekt JavaScript (onChange und onkeypress Events), die Du wahrscheinlich deshalb eingepflanzt bekommen hast, weil Du ASP.NET Controls verwendet hast.
Daran ist nichts verkehrt, keine Angst. Es geht nur darum, dass man zur Entwurfszeit schon klären sollte, ob das Spiel auch ohne JS spielbar sein muss. Die meisten WebEntwickler sagen: Hat der User JS deaktiviert, dann kann er meine WebSite nicht sinnvoll nutzen...
Das ist auch noch nicht verkehrt, wenn man sich dessen bewusst ist, und klar sagt, dass Bedingung aktiviertes JS sein muss.
Ich würde sagen, man kann sogar ein ganzes Design-Konzept danach richten, deshalb kam ich hier auf AJAX. AJAX ist eine Technologie, die mittels JavaScript eine Anfrage an den ASPX Server macht, sich die veränderten Controls herunterlädt und dann ein Refresh nur der veränderten Controls durchführt, so dass der Datenstrom minimiert wird, und auch kein lästiges Neuafbauen der Seite mehr gemacht werden muss.
Baut man auf diese Technologie, dann funktioniert das NUR mit aktiviertem JavaScript. Deshalb habe ich Dir auch die Frage gestellt, ob Du für Dich diese Bedingung gemacht hast, oser ob Du bis dato einfach blind etwas benutzt hast 😉 ?
Wenn Dich AJAX interessiert, dann schau mal hier:
AJAX Interaktiv Herr Schwarz...
Herr Schwarz ist sozusagen der "Erfinder" des AJAX...
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Hallo Norman!
Danke für die ausführliche Antwort. Selber hab ich leider keinerlei "Web" Erfahrung.
Ich brauche im Wesentlichen:
1 grosse Karte (.png 50-70kb)
1 kleine Karte (.png 40-60kb)
1 Eine Eingabebox, sollte Text einlesen
noch 1 Textfeld wo Infos geschrieben werden.
Die Karten werde nach jeder Eingabe neu gezeichnet.
Also denke mir mal ich bräuchte kein JS, aber ich will auch nicht zuviel vom "Vorschlag" des VWD abweichen.
Deswegen setzte ich mal auf JS
Den Link schau ich mir gleich an.
lg
So hab jetzt mal auf "AJAX" umgestellt.
http://wolfgang-axamit-1.at.vwdhosting.net/axisWebSite/default.aspx
Nur mMn tut hat sich nicht viel geändert (was falsch gemacht?)
Ich dachte jetzt werden nur die Element aktualisiert, die geändert werden. Jedoch wird wieder die komplette Seite übertragen.
Kennt sich wer mit AJAX aus der mir helfen kann?
lg ifoko
Hallo ifoko,
das mit AJAX war von mir eigentlich nur ein Vorschlag, aber durchaus realistisch in einer solchen Anwendung zu verwenden 😉
Also Ajax kann nur dann seine Vorteile ausspielen, wenn Du auf gewisse Html-Dokumentenereignisse auch entsprechend reagierst. Das heißt konkret für dich: Vermeide ALLE automatischen PostBacks, und verwende stattdessen AJAX Aufrufe.
Wenn ich mir Deinen Quellcode mal so anschaue (der im Browser!), dann fällt mir z.B. folgendes auf:
<input name="MenueSelectTB" type="text" onchange="javascript:setTimeout('__doPostBack(\'MenueSelectTB\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="MenueSelectTB" style="font-family:@Arial Unicode MS;font-size:16pt;width:44px;z-index: 103;>
hier hast Du ein OnChange-Ereignis von ASP.NET eingepflanzt bekommen, höchstwahrscheinlich, weil Du mit VS dieses Event abfangen willst.
Mit Ajax geht man aber folgenden Weg:
Bei einem OnChange wird eine Ajax-Methode in Deinem Code ausgeführt. Je nachdem was sich aktualisieren soll, schickst Du als Parameter dann an die ASP.NET Anwendung. Als Rückgabewert nimmst Du das aktualisierte Control.
Auf der von mir gezeigten Seite (siehe link oben Herr Schwarz) ist ein Beispiel aufgeführt.
Also versuchen keine Html-Events mehr mit VS abzufangen, denn der generiert immer eine JS-Funktion (__doPostBack), und der Name spricht für sich 😉
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Hi ifoko,
hab da so ein kleiner Denkanstoss an dich 😉
Bedenk bei der Entwicklung, dass es noch User geben soll, welche kein 1280*1024 Display haben (so wie z.B. ich hier in der Firma...)
und ständiges rumgescrollte verdirbt schnell mal den spielspass..
Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher. - Albert Einstein
Wie kann man denn mit weniger als 1280 vernünftig arbeiten ?(
Hallo Waschbecken,
m.E. gar nicht (finde ja schon meine 1600 machmal etwas eng), aber das ändert ja nichts daran, dass es keine Selbstverständlichkeit ist, dass 1280 oder gar darüber genutzt wird oder genutzt werden kann.
herbivore
Zur Veranschaulichung mal eine Statistik von meinem Blog:
1280x1024 47
1024x768 11
1600x1200 7
1152x864 6
1280x800 5
1400x1050 4
1280x960 2
1440x900 1
Es haben zwar inzwischen die meisten 1280x1024, aber vorallem musst du Rücksicht auf die Notebook-Breitbildschirme nehmen, die nicht so hoch sind.
Dazu muss aber gesagt werden, dass wohl hauptsächlich Entwickler sich meinen Blog angeschaut haben, und keine "normalen" Leute. Die Statistik spiegelt also nicht die gesamten Nutzer wieder.
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee
Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
Statistik hin oder her (die, wie schon erwähnt sowieso überall anders ausfallen dürfte), es ist doch nicht so, dass er auf alles und jeden Rücksicht nehmen muss. Wenn das die "richtigen" Spielehersteller täten, würden wir wahrscheinlich heute alle ein paar Takte niedriger fahren.
Und der nächste kommt dann vielleicht noch mit dem Wunsch an, das Game mit Netscape 4 an seinem Siemens-Arbeitsplatz richtig nutzen zu können ... nee, nee, nee 😁
Hallo zusammen,
ich kann hier progger nur zustimmen. Wir Entwickler arbeiten täglich mit PC's und meist ist es so, dass Programmier-IDE's viel Platz auf dem Bildschirm brauchen. Für die Arbeit habe ich auch ein 1600xIrgendwas Bildschirm auf meinem Laptop zur Verfügung. Außerdem habe ich noch einen externen CRT Mönitor angeschlossen, und auf diesem den Windows Desktop erweitert, da ist viel Platz somit...
Aber der normale Surfer, beziehungsweise auch ein normaler Arbeitsplatz, auf dessen PC vielleicht Buchhaltungssoftware oder ähnliches läuft, haben solchen Luxus nicht.
Ich kenne einige aus meinem Bekanntengkreis, die verwenden noch 15" Bildschirme mit einer 800x600 Maximalauflösung.
Gut so weit runter würde ich nicht gehen... Aber ich würde heutzutage eine Auflösung von 1024x768 als Standard bezeichnen, und daran orientiere ich (und meine Firma) mich auch für meine Webapplikationen.
Es ist eigentlich kein Problem ein Fenster zu vergrößern, aber es zu verkleinern ist deutlich schwieriger...
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Ich kann mich den Ausführungen von Progger und norman_timo nur anschliessen. Derzeit ist 1024x768 noch als Verbraucherstandardauflösung anzusehen, 1280x 1024 holt zwar auf, der Anteil ist aber nicht gross genug um den Rest zu ignorieren.
Als Entwickler, Grafiker usw kann mann selbstverständlich nicht genug haben, beim normalen User siehts aber anders aus. Was Waschbecken da so von sich gab war wohl dem Elfenbeinturmsyndrom gutzuschreiben(im übrigen häufig anzutreffen).
Anforderungen:
Ich brauche im Wesentlichen:
1 grosse Karte (.png 50-70kb)
1 kleine Karte (.png 40-60kb)
1 Eine Eingabebox, sollte Text einlesen
noch 1 Textfeld wo Infos geschrieben werden.
Lässt sich recht einfach umsetzen per js die Grafiken zu zoomen(den Rest am simpelsten über Tabellenlayout.
Hallo!
Zunächst freu ich mich des regen Interesses und bedanke mich für die Tipps.
Auflösung.
1280x1024 ist mMn Standard, und wird für die erste Version mal genommen.
Andere Auflösungen sind später relativ einfach zu machen, da nur eine neue "HTML" Seite gemacht werden musss.
Mein jetztiges Hauptproblem ist das "Ruckeln", sprich das komplette neue Laden der Seite, zu verbessern.
Ich versuche das jetzt mit AJAX zu implentieren.
Zurzeit mein Problem:
Bei asp:Button werden die OnClick Events nicht die Javascpript Methoden aufgerufen, sondern ich schaffe damit nur C# Methoden aufzurufen.
Bsp. ServerSideAdd ist Methode der Default Page. Es wird aber noch immer ein PostBack gemacht.
<asp:Button runat=server ID="Button1" OnClick="ServerSideAdd" Text="AJAX"
Style="z-index: 110;left: 1136px; position: absolute; top: 440px; width: 56px;" >
</asp:Button>
Hier funktioniert es:
<tr><td> </td><td><a href="javascript:strtest();void(0);">Submit</a><br></td></tr>
So schaffe ich das die JS Methode aufzurufen, die wiederrum eine C#Ajax Methode von mir ohne PostBack aufruft.
Und ich habe es auch noch nicht geschaft beim OnClick eine Javascript aufzurufen.
Ich muss vorallem auf das OnClick Ereigniss ohne PostBack "auslösung" reagieren können.
lg ifoko
Hat wer ernsthaftes Interesse am Spiel weiter zu programmieren?
http://wolfgang-axamit-1.at.vwdhosting.net/axisWebSite/default.aspx
Ich mach jetzt beruflich ganz was anders (Fabasoft) und hab jetzt wenig Zeit und Bock weiterzumachen.
Bevor es "herumgammelt" würde es mich interessiert, ob wer Zeit und Lust hat, ernsthaft weiterzumachen.
Technisch gesehen gibts jetzt noch immer das obige "AJAX" Problem. (ich hoffe ich bekomme bald tatkräftige Hilfe). und der Kampf ist nicht implementiert.
Im Endeffekt keine "ShowStopper" sondern einfach nur Hackn.
Notwendige Skills:
Programmieren, .NET 2.0, C# Erfahrung, Zeit 2-3 Monate 20-30 Std/Woche und vorallem Webpage Design/Html/Css/Java (mein Schwachpunkt).
Bitte auch im Thread posten.
lg ifoko
So ich habs heute geschafft eine MagicAjax Version zu bauen und ins Netz zu stellen.
http://webifoko-1.at.vwdhosting.net/axiswebsite/default.aspx
Die ist jetzt ausbaufähig.
Ging eigentlich sehr gut heute von 7 - jetzt
Dank dieses Artikels http://www.codeproject.com/Ajax/magicajax.asp
Schaut gut aus dass in 1-2 Wochen das Spiel mal in einer spielbaren Version vorliegt.
lg ifoko