Kreatives Tief! oder: Comeback zur Spieleentwicklung

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
Antworten
mike1906
Beiträge: 20
Registriert: 13.07.2010, 10:51

Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von mike1906 »

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...
Benutzeravatar
The_Real_Black
Establishment
Beiträge: 110
Registriert: 19.01.2008, 19:57
Benutzertext: Happy Coding
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von The_Real_Black »

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.
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.
Mein Tipp leider nicht konstruktiv: Wegwerfen und von vorne anfangen, damit man den Code aufeinander anpassen kann!
Happy Coding.
mike1906
Beiträge: 20
Registriert: 13.07.2010, 10:51

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von mike1906 »

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.
Mein Tipp leider nicht konstruktiv: Wegwerfen und von vorne anfangen, damit man den Code aufeinander anpassen kann!
Mit dem Gedanken habe ich auch schon oft gespielt...
Tiles

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Tiles »

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?
mike1906
Beiträge: 20
Registriert: 13.07.2010, 10:51

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von mike1906 »

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?
Sorry, hab ich mich anscheinend ein bisschen missverständlich ausgedrückt. Zuerst programmieren, dann entwickeln. :D
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.
Benutzeravatar
The_Real_Black
Establishment
Beiträge: 110
Registriert: 19.01.2008, 19:57
Benutzertext: Happy Coding
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von The_Real_Black »

mike1906 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.
Geht ganz gut und für XBox und Windows kann man mit XNA gleichzeitig entwickeln
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.
mike1906
Beiträge: 20
Registriert: 13.07.2010, 10:51

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von mike1906 »

@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.
Tactive
Beiträge: 61
Registriert: 21.07.2004, 15:10
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Tactive »

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?
Benutzeravatar
The_Real_Black
Establishment
Beiträge: 110
Registriert: 19.01.2008, 19:57
Benutzertext: Happy Coding
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von The_Real_Black »

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?
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.
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.
Tactive
Beiträge: 61
Registriert: 21.07.2004, 15:10
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Tactive »

The_Real_Black hat geschrieben:
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?
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.
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.
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.
Benutzeravatar
The_Real_Black
Establishment
Beiträge: 110
Registriert: 19.01.2008, 19:57
Benutzertext: Happy Coding
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von The_Real_Black »

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.
Guter Link ^^ danke.
Das mit dem "Vista unter den IDE" kann ich jetzt nicht sagen, da ich mit 2010 zufriedener bin als mit 2008.
Happy Coding.
Tactive
Beiträge: 61
Registriert: 21.07.2004, 15:10
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Tactive »

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.
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.

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.
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Krishty »

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.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Tactive
Beiträge: 61
Registriert: 21.07.2004, 15:10
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Tactive »

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.
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.

Da muss ich mir das VS2010 doch nochmal intensiver anschauen, mit Vista kam ich -trotz der Kindenkrankheiten- ja auch 2 Jahre klar ;)
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Krishty »

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.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Tactive
Beiträge: 61
Registriert: 21.07.2004, 15:10
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Tactive »

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.
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.

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);
}
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Krishty »

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.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Tactive
Beiträge: 61
Registriert: 21.07.2004, 15:10
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Tactive »

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();.
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: 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.
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:

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;
Benutzeravatar
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

Beitrag von Aramis »

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.
Tactive
Beiträge: 61
Registriert: 21.07.2004, 15:10
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Tactive »

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;
}
Benutzeravatar
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

Beitrag von Schrompf »

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.
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Krishty »

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:
BlockEdit.png
Ich weiß aber nicht, ob das jetzt ein Bug oder ein Feature ist.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
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

Beitrag von Schrompf »

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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 16:33

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Despotist »

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.
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Kreatives Tief! oder: Comeback zur Spieleentwicklung

Beitrag von Krishty »

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!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten