Kreatives Tief! oder: Comeback zur Spieleentwicklung
Kreatives Tief! oder: Comeback zur Spieleentwicklung
Hallo Leute.
Habe mich jetzt, nach ca. 3 jähriger Programmierpause wieder dazu entschieden in die (hobbymäßige) Spieleentwicklung zurückzufinden.
Nun meine Frage an euch: Wie am besten wieder anfangen?
Also zuerst mal ein paar Worte zu mir.
Habe mit DirectX7 mit der Spieleprogrammierung begonnen, zu der Zeit als das DirectX SDK noch die einzig brauchbare Quelle zum Thema Spieleprogrammierung war, bis dann irgendwann Stefans erstes Buch zu dem Thema erschien. Habe mich zu dieser Zeit durch so ziemlich jeden Optimierungsalgoritmus gequält (ja, ROAM, D-LOD, etc. sind Qualen wenn man ein mittelmäßiger Mathematikschüler war :P ) und alle möglichen Tutorials zu so ziemlich allen Programmiertechniken durchgearbeitet. Dann zu DX8 und schließlich zu DX9 gewechselt und ein paar kleine Spiele (Breakout Klone, Terrain-Projekte, TCG-Games,...) und Anwendungen (ISO Reader, File Loader,etc) geschrieben.
Irgendwie finde ich mich nach einer so langen Programmierpause einfach nicht mehr zurecht... Auf meiner Festplatte sind noch Unmengen an Code, der endlich mal zu ner vernünftigen Engine zusammengefügt werden sollte, aber irgendwie passt alles nicht mehr.
Also, falls ihr (konstruktive) Vorschläge, Ideen oder Anregungen habt - immer her damit :D .
so long...
Habe mich jetzt, nach ca. 3 jähriger Programmierpause wieder dazu entschieden in die (hobbymäßige) Spieleentwicklung zurückzufinden.
Nun meine Frage an euch: Wie am besten wieder anfangen?
Also zuerst mal ein paar Worte zu mir.
Habe mit DirectX7 mit der Spieleprogrammierung begonnen, zu der Zeit als das DirectX SDK noch die einzig brauchbare Quelle zum Thema Spieleprogrammierung war, bis dann irgendwann Stefans erstes Buch zu dem Thema erschien. Habe mich zu dieser Zeit durch so ziemlich jeden Optimierungsalgoritmus gequält (ja, ROAM, D-LOD, etc. sind Qualen wenn man ein mittelmäßiger Mathematikschüler war :P ) und alle möglichen Tutorials zu so ziemlich allen Programmiertechniken durchgearbeitet. Dann zu DX8 und schließlich zu DX9 gewechselt und ein paar kleine Spiele (Breakout Klone, Terrain-Projekte, TCG-Games,...) und Anwendungen (ISO Reader, File Loader,etc) geschrieben.
Irgendwie finde ich mich nach einer so langen Programmierpause einfach nicht mehr zurecht... Auf meiner Festplatte sind noch Unmengen an Code, der endlich mal zu ner vernünftigen Engine zusammengefügt werden sollte, aber irgendwie passt alles nicht mehr.
Also, falls ihr (konstruktive) Vorschläge, Ideen oder Anregungen habt - immer her damit :D .
so long...
- The_Real_Black
- Establishment
- Beiträge: 110
- Registriert: 19.01.2008, 19:57
- Benutzertext: Happy Coding
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Wichtig wäre jetzt zuwissen in welcher Programmiersprache du entwickeln willst, aber ich vermute mal C++. Man könnte nach 3 Jahren Pause (von C++) mit C# an die Spieleentwicklung gehen wobei man dann auch von DirectX auf XNA umsteigen könnte. Für XNA 4.0 gibt es sogar schon einige gute Tutorials im Netz und der nächste Versionssprung dürfte sich auch noch Zeit lassen was XNA4.0 zum einarbeiten lohnen wird. Jetzt die Frage auf welcher Plattform du entwickeln willst? Wenn du zufällig fürs Win7 Phone, Windows und XBox Spiele entwickeln willst, dann ist XNA die Wahl.
Mein Tipp leider nicht konstruktiv: Wegwerfen und von vorne anfangen, damit man den Code aufeinander anpassen kann!Irgendwie finde ich mich nach einer so langen Programmierpause einfach nicht mehr zurecht... Auf meiner Festplatte sind noch Unmengen an Code, der endlich mal zu ner vernünftigen Engine zusammengefügt werden sollte, aber irgendwie passt alles nicht mehr.
Happy Coding.
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Also habe in der Vergangenheit in C++ programmiert, aber auch bereits mit dem Gedanken gespielt auf C# umzusteigen (wobei ich mir nicht sicher bin ob sich Spieleentwicklung und C# vereinbaren lassen...).
Primär habe ich vor wieder für Windows zu programmieren, und mich in die Spieleentwicklung auf der XBox reinzuarbeiten. Über Mobile Games hab ich noch garnicht nachgedacht, wird aber mit den neuen HDC Smartphones auch immer interessanter.
XNA ist mir noch ein Fremdwort, werd aber mal ein bisschen googlen und schauen inwiefern es mir nützen könnte.
Primär habe ich vor wieder für Windows zu programmieren, und mich in die Spieleentwicklung auf der XBox reinzuarbeiten. Über Mobile Games hab ich noch garnicht nachgedacht, wird aber mit den neuen HDC Smartphones auch immer interessanter.
XNA ist mir noch ein Fremdwort, werd aber mal ein bisschen googlen und schauen inwiefern es mir nützen könnte.
Mit dem Gedanken habe ich auch schon oft gespielt...Mein Tipp leider nicht konstruktiv: Wegwerfen und von vorne anfangen, damit man den Code aufeinander anpassen kann!
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Die Frage ist, willst du programmieren, oder willst du Spiele entwickeln. Laut Titel eher zweiteres, laut deiner Beschreibung eher ersteres. Mal abgesehen davon dass die zwei nicht nach XBox exportieren können, was spräche denn gegen UDK oder Unity?
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Sorry, hab ich mich anscheinend ein bisschen missverständlich ausgedrückt. Zuerst programmieren, dann entwickeln. :DDie Frage ist, willst du programmieren, oder willst du Spiele entwickeln. Laut Titel eher zweiteres, laut deiner Beschreibung eher ersteres. Mal abgesehen davon dass die zwei nicht nach XBox exportieren können, was spräche denn gegen UDK oder Unity?
Also, zuerst ne Engine (Grafik/AI/Physik Engine) programmieren (ja ich weiß welcher Aufwand dahinter steckt, und das man das nicht mal "schnell in ein paar Wochen" hinklatscht) und damit dann Spiele entwickeln (Open World RPGs/Open World Weltraum Spiele (Beispiel X3)).
Gegen UDK oder Unity spricht, obwohl Unity ganz nett ist, das ich eine eigene Engine entwickle die meinen Ansprüchen gerecht wird.
- The_Real_Black
- Establishment
- Beiträge: 110
- Registriert: 19.01.2008, 19:57
- Benutzertext: Happy Coding
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Geht ganz gut und für XBox und Windows kann man mit XNA gleichzeitig entwickelnmike1906 hat geschrieben: (wobei ich mir nicht sicher bin ob sich Spieleentwicklung und C# vereinbaren lassen...).
XNA ist mir noch ein Fremdwort, werd aber mal ein bisschen googlen und schauen inwiefern es mir nützen könnte.
http://create.msdn.com/en-US/
http://create.msdn.com/en-US/education/catalog/
hier findet man jedemenge an Code welcher auf Win, WinPhone und XBox gleichzeitig läuft.
zB
http://create.msdn.com/en-US/education/ ... platformer
"Cross-platform support for Windows, Xbox 360, and Windows Phone 7."
Mich schmerzte zwar der Umstieg im Framework von Version 3.1 auf 4.0 da man einige Methoden umgestellt hat, aber es sieht nach einer Verbesserung aus. Leider habe ich keine Ahnung ob jetzt das Entwickeln für die XBox jetzt Geld kostet oder was man dafür alles machen muss ist etwas her als ich mit XNA das letzte mal "produktiv" gearbeitet habe... Ich muss auch mal wieder mit XNA anfangen wenn mich das Studium lassen würde.
Happy Coding.
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
@The_Real_Black danke für die links, hab jetzt mal kurz reingeschaut und sieht ganz interessant aus. Werd mir das ganze heute abend noch genauer ansehen und mich mal ein bisschen reinarbeiten.
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Hallo,
wollte mal wissen ob der Unterschied zwischen XNA 3.1 und 4.0 sehr groß ist, oder sich nur ein paar Methoden verändert haben. Habe mir mal vor einiger Zeit das Buch "Spieleentwicklung mit dem Microsoft XNA Framework: Einstieg und professioneller Einsatz" von Jens Kornerow gekauft und würde gerne wissen, ob man sich damit noch in die XNA einarbeiten kann oder ob ich mir doch eher ein aktuelles Buch welches 4.0 behandelt holen sollte?
wollte mal wissen ob der Unterschied zwischen XNA 3.1 und 4.0 sehr groß ist, oder sich nur ein paar Methoden verändert haben. Habe mir mal vor einiger Zeit das Buch "Spieleentwicklung mit dem Microsoft XNA Framework: Einstieg und professioneller Einsatz" von Jens Kornerow gekauft und würde gerne wissen, ob man sich damit noch in die XNA einarbeiten kann oder ob ich mir doch eher ein aktuelles Buch welches 4.0 behandelt holen sollte?
- The_Real_Black
- Establishment
- Beiträge: 110
- Registriert: 19.01.2008, 19:57
- Benutzertext: Happy Coding
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Naja bei jeden Versionssprung war es immer nötig viel Code anzupassen. Wenn du dich damit leicht tust, dann kannst du auch das Buch mit XNA 4.0 nutzen, wenn nicht, dann solltest du lieber mit 3.1 Anfangen. Ich habe mich zwar in XNA4.0 noch nicht so eingearbeitet sondern nur mal einige der neues Beispiele auszuprobiert deshalb kann ich die Änderungen nicht ganz überblicken, aber es ist ein kleinerer Umstieg als der auf 3.1 damals.Tactive hat geschrieben:Hallo,
wollte mal wissen ob der Unterschied zwischen XNA 3.1 und 4.0 sehr groß ist, oder sich nur ein paar Methoden verändert haben. Habe mir mal vor einiger Zeit das Buch "Spieleentwicklung mit dem Microsoft XNA Framework: Einstieg und professioneller Einsatz" von Jens Kornerow gekauft und würde gerne wissen, ob man sich damit noch in die XNA einarbeiten kann oder ob ich mir doch eher ein aktuelles Buch welches 4.0 behandelt holen sollte?
Bis jetzt habe ich einige Änderungen an den "Hauptklassen" man hat anstelle von Begin und End jetzt "Apply" bei anderen hat man einen Parameter im Konsrtuktor entfernt welcher sowieso immer null war... Vieles ist Kleinvieh an Änderugen.
Die Frage ist für was braucht du XNA? Wenn es ein "professioneller Einsatz" werden soll ist es wichtig die Vorgabe des Unternemens was dort verwendet wird zu verwenden. Als Hobby Entwickler sollte man schon auf das neueste einsteigen um nicht "auf einen toten Pferd das Reiten zu lernen", denn hier kann man es sich erleuben immer das neueste zu verwenden. Und für den Fall, dass du nur mal in XNA hineinschnuppern willst kannst du dir auch mit 3.1 einen Einblick ermöglichen. Noch ne Frage hast du das Buch schon begonnen durchzuarbeiten? Wenn ja solltest du das Buch fertig machen und dann ein neues Kaufen bzw selbst anhand von Tutorials und Beispielen im Netz die Unterschiede erarbeiten.
Happy Coding.
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Vorgaben habe ich da keine, da es ein Hobbyprojekt ist. Pendel momentan zwischen C++ und C# hin und her und möcht gerne ein kleineres Projekt damit realisieren. Bei C++ stört mich das Gehacksel mit den Abhängigkeiten zwischen den Bibliotheken und bei C# sind es die Abhängigkeiten zu den Framework (.Net 4.0 / XNA Framework). Habe auch gesehen das XNA 4.0 nur mit Visual Studio 2010 funktioniert und das ist ja das Vista unter den Visual Studios; aber gut das ist wieder ein anderes Thema.The_Real_Black hat geschrieben:Naja bei jeden Versionssprung war es immer nötig viel Code anzupassen. Wenn du dich damit leicht tust, dann kannst du auch das Buch mit XNA 4.0 nutzen, wenn nicht, dann solltest du lieber mit 3.1 Anfangen. Ich habe mich zwar in XNA4.0 noch nicht so eingearbeitet sondern nur mal einige der neues Beispiele auszuprobiert deshalb kann ich die Änderungen nicht ganz überblicken, aber es ist ein kleinerer Umstieg als der auf 3.1 damals.Tactive hat geschrieben:Hallo,
wollte mal wissen ob der Unterschied zwischen XNA 3.1 und 4.0 sehr groß ist, oder sich nur ein paar Methoden verändert haben. Habe mir mal vor einiger Zeit das Buch "Spieleentwicklung mit dem Microsoft XNA Framework: Einstieg und professioneller Einsatz" von Jens Kornerow gekauft und würde gerne wissen, ob man sich damit noch in die XNA einarbeiten kann oder ob ich mir doch eher ein aktuelles Buch welches 4.0 behandelt holen sollte?
Bis jetzt habe ich einige Änderungen an den "Hauptklassen" man hat anstelle von Begin und End jetzt "Apply" bei anderen hat man einen Parameter im Konsrtuktor entfernt welcher sowieso immer null war... Vieles ist Kleinvieh an Änderugen.
Die Frage ist für was braucht du XNA? Wenn es ein "professioneller Einsatz" werden soll ist es wichtig die Vorgabe des Unternemens was dort verwendet wird zu verwenden. Als Hobby Entwickler sollte man schon auf das neueste einsteigen um nicht "auf einen toten Pferd das Reiten zu lernen", denn hier kann man es sich erleuben immer das neueste zu verwenden. Und für den Fall, dass du nur mal in XNA hineinschnuppern willst kannst du dir auch mit 3.1 einen Einblick ermöglichen. Noch ne Frage hast du das Buch schon begonnen durchzuarbeiten? Wenn ja solltest du das Buch fertig machen und dann ein neues Kaufen bzw selbst anhand von Tutorials und Beispielen im Netz die Unterschiede erarbeiten.
Habe kurz nach meinem Beitrag mal kurz gegoogelt und eine Seite gefunden die Probleme bei der Umstellung von XNA 3.1 auf 4.0 aufzeigt:
http://niklas-rother.de/artikel/hurden- ... ie-umgeht/
Denke aber auch, das ich erstmal mit dem Buch weitermache und schaue wie weit ich damit komme. Kann mir dann ja immer nich ein XNA4 Buch zulegen.
- The_Real_Black
- Establishment
- Beiträge: 110
- Registriert: 19.01.2008, 19:57
- Benutzertext: Happy Coding
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Guter Link ^^ danke.Tactive hat geschrieben: Vorgaben habe ich da keine, da es ein Hobbyprojekt ist. Pendel momentan zwischen C++ und C# hin und her und möcht gerne ein kleineres Projekt damit realisieren. Bei C++ stört mich das Gehacksel mit den Abhängigkeiten zwischen den Bibliotheken und bei C# sind es die Abhängigkeiten zu den Framework (.Net 4.0 / XNA Framework). Habe auch gesehen das XNA 4.0 nur mit Visual Studio 2010 funktioniert und das ist ja das Vista unter den Visual Studios; aber gut das ist wieder ein anderes Thema.
Habe kurz nach meinem Beitrag mal kurz gegoogelt und eine Seite gefunden die Probleme bei der Umstellung von XNA 3.1 auf 4.0 aufzeigt:
http://niklas-rother.de/artikel/hurden- ... ie-umgeht/
Denke aber auch, das ich erstmal mit dem Buch weitermache und schaue wie weit ich damit komme. Kann mir dann ja immer nich ein XNA4 Buch zulegen.
Das mit dem "Vista unter den IDE" kann ich jetzt nicht sagen, da ich mit 2010 zufriedener bin als mit 2008.
Happy Coding.
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Solange man in C# und .NET 4.0 bleibt ist es akzeptabel (auch wenn die Performance des VS2010 nicht an die des VS2008 dank WPF heranreicht). Aber so richtig grausig wird es, wenn man mit dem VS2010 C++ Projekte bearbeitet. Das Intellisense spinnt völlig und Allgemeine Einstellungen für Include- und Lib-Dateien gibt es so auch nicht mehr.The_Real_Black hat geschrieben:Guter Link ^^ danke.
Das mit dem "Vista unter den IDE" kann ich jetzt nicht sagen, da ich mit 2010 zufriedener bin als mit 2008.
Möchte man nun einiges mit WPF machen, was bei Spielen eigendlich nicht notwendig ist, geht eigendlich kein Weg am VS2010 vorbei - da der Designer für WPF im VS2008 nur ein Krücke ist, die gerne immer mal wieder abstürzt.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Eigentlich ist das 2010er das erste Visual C++, das meine Projekte einigermaßen zuverlässig in IntelliSense aufnehmen kann. Außerdem bietet es erste C++0x-Features – die allein waren mir schon Grund, umzusteigen.
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Eigendlich hatte ich es auch wegen der neuen Sprachfeatures probiert und wegen OMP (was aber auch schon bei VS2008 Prof. dabei war - habe aber nur eine Standard-Version hier). Als C++0x Ersatz habe ich mich bisher immer bei der Boost Biblitohek bedient. Sind schon ein paar nützliche Sachen dabei.Krishty hat geschrieben:Eigentlich ist das 2010er das erste Visual C++, das meine Projekte einigermaßen zuverlässig in IntelliSense aufnehmen kann. Außerdem bietet es erste C++0x-Features – die allein waren mir schon Grund, umzusteigen.
Da muss ich mir das VS2010 doch nochmal intensiver anschauen, mit Vista kam ich -trotz der Kindenkrankheiten- ja auch 2 Jahre klar ;)
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Move-Semantics sind schon ziemlich geil (wenn auch mindestens genauso schmutzig). Ohne dieses Feature hätte ich RAII nicht konsequent durchziehen können, weil entsprechender Code schlicht und einfach nicht effizient und direkt genug geworden wäre.
Was ich aber nicht abstreiten kann, ist der höhere Leistungshunger von IntelliSense – darum bleibt es auf meinem Netbook auch leider deaktiviert.
Was ich aber nicht abstreiten kann, ist der höhere Leistungshunger von IntelliSense – darum bleibt es auf meinem Netbook auch leider deaktiviert.
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Mit den C++0x bin ich leider noch nicht vertraut. Gibt es dazu eine gute Seite oder ein gutes Buch, wo man die Neuerungen nachlesen kann? Habe eben eine Seite gefunden wo die Verwendung des auto - Keyword erklärt wird. Ist unter .Net 3.5 ja auch in Form des var - Keywords hinzugekommen; bin mir aber noch nicht ganz sicher ob das eine gute oder schlechte Erweiterung ist, da sie ja schon ein wenig den Code verschleiert.Krishty hat geschrieben:Move-Semantics sind schon ziemlich geil (wenn auch mindestens genauso schmutzig). Ohne dieses Feature hätte ich RAII nicht konsequent durchziehen können, weil entsprechender Code schlicht und einfach nicht effizient und direkt genug geworden wäre.
Was ich aber nicht abstreiten kann, ist der höhere Leistungshunger von IntelliSense – darum bleibt es auf meinem Netbook auch leider deaktiviert.
Bei der Verwendung von auto in Templates läuft es mir jedenfalls nur eiskalt den Rücken herunter:
Code: Alles auswählen
template<typename lhs, typename rhs>
auto AddFunction (const lhs& l, const rhs& r) -> decltype (l + r)
{
return (l + r);
}
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Das ist die neue Funktionsdeklarationssyntax, die in Templates den Fall darstellbar macht, dass man den Rückgabetyp einer Funktion erst nach Kenntnis ihrer Parametertypen kennt (das auto ist in diesem Fall nur ein Platzhalter, damit der Compiler die neue Syntax klar erkennen kann). Diese Art der Deklaration kann man benutzen, falls man will (ich finde sie generell sinnvoll), oder es sein lassen, falls man nicht in die Template-Nischensituation mit dem Rückgabetyp kommt (oder muss dann, wie in C++’97, auf ein zusätzliches Template zurückgreifen).
Der häufigste Einsatzzweck für auto dürfte immernoch for(auto it = v.begin(); x < v.end(); ++it) sein. Und nicht vergessen, dass es auch qualifiziert werden kann: auto const & first = *v.begin();.
Gute Anleitungen kenne ich keine, aber der Wikipedia-Artikel sollte ein Einstieg sein. Der überreißt aber leider alle neuen Features, nicht nur die, die in VC 2010 implementiert sind.
Der häufigste Einsatzzweck für auto dürfte immernoch for(auto it = v.begin(); x < v.end(); ++it) sein. Und nicht vergessen, dass es auch qualifiziert werden kann: auto const & first = *v.begin();.
Gute Anleitungen kenne ich keine, aber der Wikipedia-Artikel sollte ein Einstieg sein. Der überreißt aber leider alle neuen Features, nicht nur die, die in VC 2010 implementiert sind.
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Da ist das echt nützlich ansonsten bricht man sich bei dem Iterator ja die Finger, sofern man nicht vorher das durch ein typedef entsprechend verhindert hat. :lol: :lol:Krishty hat geschrieben:Das ist die neue Funktionsdeklarationssyntax, die in Templates den Fall darstellbar macht, dass man den Rückgabetyp einer Funktion erst nach Kenntnis ihrer Parametertypen kennt (das auto ist in diesem Fall nur ein Platzhalter, damit der Compiler die neue Syntax klar erkennen kann). Diese Art der Deklaration kann man benutzen, falls man will (ich finde sie generell sinnvoll), oder es sein lassen, falls man nicht in die Template-Nischensituation mit dem Rückgabetyp kommt (oder muss dann, wie in C++’97, auf ein zusätzliches Template zurückgreifen).
Der häufigste Einsatzzweck für auto dürfte immernoch for(auto it = v.begin(); x < v.end(); ++it) sein. Und nicht vergessen, dass es auch qualifiziert werden kann: auto const & first = *v.begin();.
Ja, danke - auf die Wikipedia-Seite bin ich auch schon gestossen. Muss nur noch ein wenig Zeit finden das mal zu überfliegen. Schöner wär es allerdings, wenn es eine VS2010 spezifische Seite gäbe wo die Neuerungen mit Beispiel erläutert werden. Das ganze dann noch in deutsch - ja, das wäre schon echter Luxus :lol: :lol:Krishty hat geschrieben: Gute Anleitungen kenne ich keine, aber der Wikipedia-Artikel sollte ein Einstieg sein. Der überreißt aber leider alle neuen Features, nicht nur die, die in VC 2010 implementiert sind.
Bastel gerade mein Projekt um und versuche die Boost-Bibliothek da rauszubekommen, da die Smart-Pointer ja auch gut über std::unique_ptr und std::shared_ptr abgehandelt werden können.
Gibt es in C++0x auch etwas nüzliches zum String-Formatierten?? In der Boost-Bibliothek konnte man folgendes nutzen:
Code: Alles auswählen
std::string s = boost::format("Hello %1% %2%") % "World" % 2010;
- Aramis
- Moderator
- Beiträge: 1458
- Registriert: 25.02.2009, 19:50
- Echter Name: Alexander Gessler
- Wohnort: 2016
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Es gibt immer noch nur die 'guten alten' streams. An deiner Stelle wuerde ich mir einen auf deine Beduerfnisse zugeschnittenen minimalen Klon von boost.format schreiben.
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Naja, bevor ich einen wilden Nachbau vom Boost::Format nehme ich doch lieber eine einfachere Methode, die ich schon früher zum Formatieren von Strings verwendet habe:
Code: Alles auswählen
String StringUtils::Format(const String& format, ...)
{
va_list args;
va_start(args, format);
String s = FormatArgs(format.c_str(), args);
va_end(args);
return s;
}
String StringUtils::FormatArgs(const char* format, va_list args)
{
if (!format || strlen(format) == 0)
return "";
int result = -1, length = 256;
char *buffer = NULL;
while (result == -1)
{
delete [] buffer;
buffer = new char[length + 1];
memset(buffer, 0, (length + 1));
result = _vsnprintf_s(buffer, length, _TRUNCATE, format, args);
length *= 2;
}
String s(buffer);
delete [] buffer;
return s;
}
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Dann kannst Du aber auch gleich bei boost.format bleiben :-) Schneller als das ist es auf jeden Fall, und zusätzlich typsicher. Für schnelle Konvertierungen von und zu strings habe ich außerdem boost.lexical_cast ins Herz geschlossen.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Aber sowas von. Achja, wo wir gerade von den Schwächen VS 2010s sprechen: Ich habe endlich einen Beweis-Screenshot vom Block-Modus machen können. Der ist bei mir erst zwei Mal aufgetreten – die UI reagiert nicht mehr auf Tastendruck und die Textauswahl geschieht nicht zeilenweise, sondern (wie in der DOS-Konsole) blockweise:
Ich weiß aber nicht, ob das jetzt ein Bug oder ein Feature ist.
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Das ist glaube ich ein Feature :-)
Mit ist VS2010 aber öfters in Starre verfallen. Dann hängt die ganze GUI für 20s, zeichnet sich nicht neu, reagiert auf keine Eingaben, bis dann irgendwann alle seitdem geschehenen Ereignisse wie ein Dammbruch durchgerauscht kommen. Das ist übrigens auch der primäre Grund, warum ich weiterhin bei VS2008 bleibe - trotz so sympathischer Neuerungen wie foreach und auto, die mit C++0x mitkommen. Schade.
Mit ist VS2010 aber öfters in Starre verfallen. Dann hängt die ganze GUI für 20s, zeichnet sich nicht neu, reagiert auf keine Eingaben, bis dann irgendwann alle seitdem geschehenen Ereignisse wie ein Dammbruch durchgerauscht kommen. Das ist übrigens auch der primäre Grund, warum ich weiterhin bei VS2008 bleibe - trotz so sympathischer Neuerungen wie foreach und auto, die mit C++0x mitkommen. Schade.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Dieser Blockmodus geht in VC#08 Express genauso (Alt + Mousedrag) ist also wahrscheinlich ein Feature. Allerdings habe ich da keine Probleme mit nicht reagierender UI.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung
Nein, das ist er nicht. Wenn ich mit Alt+Mousedrag etwas markiere, springen die Zeilen asynchron in den Block … heute morgen taten sie das als geschlossene Front.
Aber ein krasses Feature; kannte ich noch garnicht … danke dafür!
Aber ein krasses Feature; kannte ich noch garnicht … danke dafür!