Mit dieser Entscheidung hast du soeben die benötigte Entwicklungszeit verzehnfacht - mindestens.
Aber ein paar Kritikpunkte hätte ich da noch anzubringen. Beim Startmenü des Spiels wird offenbar zwischen Groß- und Kleinschreibung unterschieden und nur die Kleinbuchstaben zählen als eine gültige Auswahl. Wenn man "E" eingibt, wird die Demo nicht beendet, bei "e" aber schon. Es sollte aber idealerweise auch mit Großbuchstaben gehen, zumal die Buchstaben vor den Menüpunkten auch groß sind. (Die Funktionen toupper() oder tolower() können da helfen, damit man nicht beide Fälle extra abfragen muss.)
Wenn man mehrere (nicht zur Auswahl gehörende) Zeichen eingibt und dann Enter drückt, rauscht mehrmals das Hauptmenü vorbei. Ich nehme mal an, dass du für die Eingabe nur eine Variable vom Typ char verwendest - das sollte aber vielleicht eher ein char-Array sein, falls man dusselig (oder einfach nur neugierig) ist und einfach mal mehrere Zeichen eingibt. Alles nach dem ersten Zeichen kann man dann ja immer noch ignorieren.
Was genau meinst du mit einer GUI? Wenn du das Ganze in einem (normalen) Fenster anzeigen willst - vielleicht mit einer statischen Grafik hier und da - und die Steuerung per Maus erfolgen soll, brauchst du wirklich keine 3D-Engine wie Irrlicht. Dafür würde ein GUI-Toolkit wie z.B. Qt oder (wenn's mit mehr 2D-Grafiken sein soll) SDL oder SFML reichen (entsprechende Links findet Google). Solange du wirklich nur eine GUI erstellen möchtest, ist Irrlicht nicht optimal. Aber vielleicht musst du die Erfahrung auch selbst machen. Wir können dir hier nur gut gemeinte Ratschläge geben.
freundliche Grüße, Rolus
Interessantes Projekt. Die Demo macht schonmal Lust auf mehr, auch wenn es keine Grafik gibt.
Ich bin gespannt, was damit passiert.
da hat er auch verdammt recht. aber trotzdem konnte ich einige sachen nicht fixen, weil mir dafür das wissen über die alten iostreams fehlt. _getch() will beispielsweise nicht immer funktionieren, das ergibt einen komischen dirty-hack gegen ende der demo.
für 3d brauchst du aber mehr als nur die engine ... dafür brauchst du modellierer und texturierer. eigentlich haben sie recht, wenn es nur 2d sein soll, ist die win-api oder die mfc besser geeignet. aber wenn du noch tollen schriften oder hübsche interfaces einbauen willst ... bleibt bei der engine.
und wie weit bist du schon?
aktuell versuche ich mich noch an der Engine. Kann aber durchaus auch noch sein, dass ich eventuell auf die SDL umsteige, zumindest für das Projekt.
Kommt darauf an. Wenn du das 3D-Projekt abblässt (also keine Meshes und erweiterte Renderoptionen verwendest), solltest du entweder die Win-API oder die MFC verwenden. Diese erlauben dir eine gute grafische Benutzeroberflächen, und um die benötigten Daten zu sichern kannst du dann die STL benutzen.
Soweit ich weiß, besitzt die STL nämlich kein besonderes Interface ...
Wenn er die WinAPI oder MFC nutzt dann hat er einen Entwickler weniger. Ich nutze kein Windows und habe auch nicht vor es in meiner Freizeit einzusetzen.
Außerdem ist die WinAPI die mieseste API die je erfunden wurde. Absolut unintuitiv zu programmieren und umständlich ohne ende. Dazu gibt es von hause aus keine Hardwarebeschleunigung, welche selbst bei einem 2D Spiel nicht schaden kann. Auch ist sie absolut nicht auf Spiele Entwicklung ausgelegt. Die MFC ist genauso nur eben ein schlechter Aufsatz für die WinAPI.
Wenn dann wäre eher Direct2D eine brauchbare Empfehlung gewesen aber nicht sowas.
Ähm hab nie behauptet das die WinAPI in C++ geschrieben wäre nur selbst für eine C API ist sie rotz. Da gibt es weit bessere Lösungen. Außerdem ist die WinAPI für den gegebenen Fall deutlich zu langsam und alles andere als verdammt schnell. Selbst für das entwickeln von Desktop Anwendungen wie einen Editor wäre das direkte Arbeiten mit der WinAPI in keinem Fall zu empfehlen. Da sind komfortablere Lösungen wie Qt, wxWidgets oder die VCL eher zu empfehlen.
Weißt du was Direct2D ist? Das ist wie die WinAPI und SDL eine Bibliothek. Dazu würde man natürlich in der Entwicklungsphase das DirectX SDK benötigen, aber man baut keine API als SDK ein. Du bringst hier einfach zu viel durcheinander.Direct2D? Du meinst als SDK einbauen oder was?
Wieso soll die WinAPI langsam sein? Klar, wenn man für schnelle Grafikausgabe Hardwareunterstützung braucht, muss man DirectX oder OpenGL einbinden. Das kann man mit der WinAPI ebenso wie mit jeder anderen Bibliothek (natürlich mit ein paar Zeilen mehr Code). Aber für reine GUIs gibt es unter Windows nichts schnelleres, da alle anderen Bibliotheken die WinAPI selbst nutzen. Natürlich ist die WinAPI unkomfortabel - ist die X11-Programmierung auch - aber ohne diese grundlegenden Schnittstellen könnte es auch keine abstrakteren Bibliotheken geben, die diese kapseln. Was ich damit sagen will: Natürlich bietet es sich normalerweis nicht an, die WinAPI zu benutzen. Aber sie ist eben kein abstraktes Toolkit, mit dem man möglichst bequem GUIs erstellen kann und als solches wurde sie auch nicht entworfen. Sie ist eine grundlegende Schnittstelle für Windows-Funktionen und diese Aufgabe erfüllt sie.
Aber es bringt auch nicht viel, Robin Longstride hier alle möglichen Sachen zu empfehlen, solange gar nicht klar ist, was er machen will (reine GUI/2D-Grafik/3D-Grafik?).
freundliche Grüße, Rolus
soweit ich das kapiere, will er 2D machen, da würde ich auch eher direct2D empfehlen, WinAPI ist da absoluter Mist.
@ RL: Aber ich geb dir einen Tipp: Wenn du die Sprache erst lernst, mach erst einmal eine ordentliche GUI, 2D Grafik kannst du danach immer noch machen, da ist dann STL bzw. direct2D perfekt zu geeignet, jetzt aber wie gesagt, erstmal eine Windoof GUI erstellen, aber nicht mit WinAPI
Lesen hilft. Du schreibst viel und doch nichts. Das Thema hier ist die Entwicklung eines Spiels. Die erste Fassung war mit reiner Textausgabe. Nun ist die Frage wie es weiter geht. Also entweder 2D oder 3D. 3D würde ich schon mal kategorisch ablehnen, da es zu Aufwendig wird damit ein vernünftiges RPG zu erstellen.(siehe z.B. das Community RPG) Also bleibt ja nur noch 2D.
Daher stellt sich die Frage was nimmt man für die Erstellung von 2D Spielen. Die WinAPI sowie die MFC sind für soetwas nicht ausgelegt. Direct2D ist noch recht jung und bietet daher weniger Möglichkeiten des Einstiegs.(hatte es nur genannt weil die Nennung der WinAPI idiotisch war) Hatte ihm wo anders SFML und SDL vorgeschlagen. Erspart mir nachher für eine Linux Version außerdem Arbeit(muss dann das halbe Spiel nicht neu schreiben). Außerdem kann ich ihm bei der SDL Hilfe geben. Dazu kommt das es hierfür sehr viele Zusatz Bibliotheken gibt(bessere Musikausgabe, laden von 2D Karten, GUIs, ...)
Der Punkt ist das man nicht immer irgendwas empfehlen kann wenn man nicht weiß was der jenige wirklich machen will oder was geplant ist. (hast ja selbst auch schon geschrieben, nur noch mal für alle zum Verständnis)
@winapi, die Geschichte sagt etwas ganz anderes. Die WinAPI wurde gerade für eine "einfachere" Programmierung erfunden. Es gibt auch genug Software die direkt auf sie zugreift, also keine Abstraktion nutzt. es ist hier aus ganz üblich sich selbst zu quälen und direkt damit zu arbeiten.