Find out more about the people behind RPdev! Here you'll find personal infos an the blogs of the team members.
Hello everybody!
As you have surely seen, my name is Alex and I am new to this team.
I know Martin and Stefan from our studys at TU Dresden and they asked me often enough if I want to support this project. At first I didn't want to, but now I think it might be a good chance to get some experience in programming and testing.
Whatever, I am looking forward to all the tasks I will have to clear ;)
Da ja auf Bitten eines Einzelnen meine SVZ Gruppe geschlossen wurde wird heir nun der Bericht weiter geführt, wie und ob es mti dem Game voran geht ^^
Nun denn... hoffen wir das hier wird brauchbarer.
Als dann: Viel Fun^^
Gruß
Lhûgion
Es fanden in letzter Zeit einige gravierende Änderungen statt.
Soweit dazu...
Hoffen wir mal, dass ich nen Motivationsboost bekomme... Sollte ich allerdings aufgehalten werden, so werde ich das der Person unter gewissen Umständen auch nicht Übel nehmen.
Von daher:
Boys and Girls of every age,
Want you like to see something strange?
Come with us an you will see:
This our town of Halloween!
In this town we call home,
Anyone hear to the pumkin song.
Everybody scream,
Everybody scream,
In this town of Halloween^^
Finstere Grüße
L
Es fanden in letzter Zeit einige gravierende Änderungen statt.
Ich glaub das isses fürn Moment erstmal^^
Ich melde mich wenns mal wieder neues gibt
L
Welcome to my personal RPdev site!
My name is Martin Höher and I am one of the core members of RPdev.
If you want to know more about me, please refer to my About me page. You can find some contact information here.
I also have an own weblog. If you find it interesting or if you have questions feel free to comment it or write an e-mail to me.
You can also follow me on identi.ca.
Have a lot of fun!
As I am currently studying IT at the TU Dresden (Dresden, Germany) I spent a lot of time in this city. However, I was born on the 4th of June 1988 in a small city called Löbau (which is not far away from Dresden).
My relationship to computers
I bought my first computer (a AMD Duron 900MHz machine with everything including graphics on-board) around 2003. Since then I programmed a lot - although the PC was not where I started this hobby. My first steps as a developer were done on a neat little toy - a programmable calculator we had to buy for school.
After I got my computer, a friend introduced me with a version of Delphi; after a few problems at the beginning I quickly managed to write first apps. As I am a big fan of the Final Fantasy series it was my dream to write own games. So I and my pal started to learn OpenGL.
The years at NoManGames
As a logical matter, I and my pal founded a team called NoManGames. We hadn't really a plan what to do next. The first months we tried a little bit around - especially heightmaps were really interesting at this time. However, we didn't manage to realize something similar to a "game". Again and again we started writing heightmap editors - not more and not less.
At a shiny afternoon in our summer holidays we met: And there we got an idea what we really could do: A small, easy to implement 2d strategy game! Well, it was not really easy in the end. We started this game - Legend Wars - in 2004. The last release was in the early weeks of 2008. You see, a long time.
We simply underestimated the time and strength you need to really complete a game. And - to be honest - there are a lot of things that could be done to further improve Legend Wars.
New team - new projects
After NoManGames closed down in mid-2008, Stefan and I founded RPdev. I personally hope, that RPdev will be a bit more "successful" than NoManGames was. In fact, at NoManGames we hardly got feedback from our users - a catastrophe, as we depend on detailed feedback.
Nevertheless, I'm sure it will be a exciting time and we will probably manage to get some projects done. Also, it will probably help me - until now, I mostly used the Pascal programming language - in my opinion a really great language, but in industry totally underestimated!
As a matter of fact, we use C++ language for our projects. As I have not worked too much with C++ in the past, it will surely be interesting. I already start to miss some of the language features of Pascal, but somehow it is also exciting what new concepts are possible with C++.
eMail: martin at server rpdev dot net
ICQ: 471809840
Jabber: blackstar at server jabjab.demartin hoeher at server gmx dot net
MSN: martin.hoeher at server rpdev dot net
If you want to contact me, please write an e-mail, as it is my preferred communication channel. Respond times are nearly always really short.
Please do not try to contact my using my old Jabber account. I'll keep it for now, however, I might drop it at any time.
Enclosed, please find my GnuPG Public Keys. The key "martin_s" is used for signing my e-mails. You can use it to check whether an e-mail you received from me is really written (and signed) by me.
The second - "martin_e" - can be used to send me encrypted e-mails and other messages.
| Attachment | Size |
|---|---|
| martin_e.asc | 2.34 KB |
| martin_s.asc | 2.5 KB |
This section is for stuff connected to my IT study at the Technische Universität Dresden (TUD).
Im Rahmen des Kurses Angewandte Systeme der Künstlichen Intelligenz der Fakultät Informatik der Technischen Universität Dresden habe ich eine Belegarbeit zum Thema "Intelligente Wiedergabelisten" geschrieben.
Dabei ging es darum, eine dynamische Wiedergabeliste zu programmieren, bei der ähnliche Stücke zur aktuellen Liste aus der lokalen Sammlung des Benutzers herausgesucht werden. Das Projekt wurde dabei als Plugin für den Audioplayer Amarok implementiert. Eine genauere Beschreibung (inkl. Dokumentation bzw. Hilfe) gibt es ebenfalls auf unserer Seite zu finden.
Im Anhang dieser Seite findet sich die fertige Belegarbeit. Diese widmet sich dabei hauptsächlich den theoretischen Grundlagen des Plugins. Wer eher Interesse am Code hat (oder mit zur Verbesserung beitragen möchte) ist auf der entsprechenden Seite bei Gitorious besser aufgehoben.
| Attachment | Size |
|---|---|
| Beleg-ASKI-Amarok.pdf | 680.28 KB |
In context of our practical training at the TU Dresden (topic was digital pen and paper and more concretely processing of forms) Friedrich and I developed a set of programs to process and extract data form digital ink using scanned form data for matching text to fields of a form.
Assigned, please find the document we wrote in order of that work.
Note: Document is entirely in German.
| Attachment | Size |
|---|---|
| beleg_dpp.pdf | 1.41 MB |
| Attachment | Size |
|---|---|
| meddlgdata.pdf | 692.73 KB |
Diese Seite enthält einige Resourcen für das Nebenfach Mathematik (für Informatiker) an der TUD.
Table of Contents
Projekt geplant, aber irgendwie das Gefühl, das das mit der aktuellen Programmiersprache nicht leicht zu realisieren wird? Nun, vielleicht lohnt sich ein Blick auf einen Außenseiter: Free Pascal!
Free Pascal ist ein freier (LGPL) Compiler für Pascal und Object Pascal. Er ist kompatibel zu anderen verbreiteten Pascal-Dialekten, wie etwa Delphi 7 und GNU Pascal. Das macht ihn zu einer idealen Ablöse derer.
Denn der Free Pascal Compiler (FPC) ist nicht nur schnell und optimiert sehr gut: Er läuft auch auf einer Fülle von Hardwarearchitekturen und Betriebssystemen. Selbst für Geräte wie den GameBoy Advance oder den Nintendo DS lassen sich Binaries erzeugen.
Daneben überzeugt FPC aber auch mit linguistischen Qualitäten: Die Sprache allgemein ist sehr einfach lesbar und stets verständlich. Kein unnötiges Gefriemel mit Zeigern, keine kryptische Symbolik. Free Pascal greift dem Entwickler unter die Arme und versucht, ihn mit sanftem Druck zu mehr Ordnung im eigenen Interesse zu verhelfen.
Angehangen findet sich das Archiv zum Vortrag "Free Pascal" im Proseminar Konzepte Moderner Programmiersprachen. Darin enthalten sind u.A.:
Das gesamte Paket ist unter der GNU GPL in Version 3 veröffentlich.
| Attachment | Size |
|---|---|
| FreePascal.zip | 478.89 KB |
Endlich wurde der Torpia Combat Analyzor (zumindest in einer ersten Version) fertig gestellt. Enthalten sind ein Editor zum Pflegen der Kampfdaten, welche als XML abgelegt werden und der Analysator, der die Daten anhand der vorher geschriebenen Formel abgleicht und grafisch aufbereitet.
Dieses Tool soll helfen hinter das Kampfsystem von Torpia zu kommen. Dazu werden eine große Anzahl an Kampfberichten gesammelt und eine Formel entwickelt. Der Analysator gleicht die berechneten Daten mit den ermitellten Daten ab und gibt einen Umriss wie nah man sich an der Lösung befindet.
Table of Contents
Die aktuelle Version ist in unserem Downloadmanager zufinden. Zum Download stehen derzeit eine statische und eine dynamische gebaute Variante bereit. Ab Windows Vista kann es zu Side-by-Side-Konfigurationsfehlern kommen aufgrund von Schwierigkeiten die richtige Dll zu laden. Sollte es zu diesen Fehlern kommen sollte man sich die statische Variante herunterladen, in der alle Dlls (statisch) in die Exe einkompiliert wurden.
Die Kampfdatenbank ist relativ selbsterklärend. Man hat eine Eingabemaske vor sich, von der wir glauben, dass diejenigen Daten für die Brechnung der Verluste eines Kampfes relevant sind. Man hat die Möglichkeit weitere Verteidiger hinzuzufügen oder diese auch wieder zu löschen. Sollten alle Einheiten eins Spielers gefallen sein, so kann man die entsprechende Checkbox anklicken und die Verluste automatisch anpassen lassen. Hat man alle Daten korrekt eingetragen, so speichert man diese ab und trägt den nächsten Kampfbericht ein.
Abbildung 3
Sind irgendwelche Daten nicht bekannt so sind diese mit "-1" zu bezeichnen. Sollten also Berichte mit unvollständigen Informationen vorliegen, so können diese gesondert behandelt werden um nicht die Daten zu verfälschen.
Aus diversen Gründen wurden die Grafiken durch Bezeichners ausgetauscht, da diese nicht unbedingt für sich selbst sprechen, folgt hier eine Legende:
Zuerst wählt man sich die entsprechende Formel aus (Wie man eine eigene Formel erstellt sieht man hier!), woraufhin alle Daten mit der ausgewhälten Formel ermittelt werden.
Abbildung 1
Im oberen Bereich sieht man die globale Abweichung in allen Fällen. So bekommt man einen Grobüberblick, wie stark die Unterschiede zwischen bestehenden und berechneten Daten sind. Entsteht eine sehr flache Kurve mit wenigen Schwankungen sind die Abweichungen sher gering. Zeigt die Kurve ein schwankendes und sehr ausuferndes Verhalten scheint man sich wohl auf dem Holzweg zu befinden. Abbildung 2 zeigt eine Formel, die relativ ungenau berechnet.
Abbildung 2
Man wählt sich nun einen speziellen Fall aus und untersucht die Daten für den einzelenen Fall um ein genaueres Bild von der Sache zu bekommen. Entweder man hovert über der Kurve oder klickt auf den gewünschten Fall. Rechts unten sieht man eine Übersicht der ermittelten und tatsächlichen Werte. Dabei gilt folgende Notation:
Links daneben sieht man die Daten grafisch aufbereitet - für die, die eher der visuelle Typ sind ;) Man kann dabei noch entweder Angreifer oder Verteidiger ausblenden um nicht durcheinander zugeraten.
Für Fehler, Kritik, Lob, Verbesserungsvorschläge etc... ist immer Platz. Gern gesehen natürlich hier im Forum, als Kommentar zum Download oder an stefan[at]rpden[dot]net. Bei Fehlern bitte eine aussagekräftige Beschreibung und Version der Anwendung (Versionsnummer und dynamisch/statisch).
Hi there,
I have to do a report 'bout internet phenomena and as you might all know you can talk about that for weeks. So I can't show all crazy stuff, which is there in the internet, in that 15 minutes presentation. That's why I will upload this presentation as a blog entry, so that everyone, especially that guys from my class, can read it once more. Here we go:
Table of Contents
Internetphenomena or a so called “hype” is some kind of data, which spreads quickly over the whole internet, becoming very popular. That can be a movie, a piece of music, a text, a program or even a person.
Anyway, an Internet Phenomenon is also a message. Usually you go out to the internet and want to present a message. Some messages, or mostly the way the messages is presented, are that notably, that everybody will remember it for weeks. Yeah … weeks or maybe months, cause internet phenomena are only a temporarily hype.
If you can’t figure out, what I mean, maybe some Real Life Phenomena will help you to understand what exactly a phenomenon is.
Internet Phenomenon
If you want to know how they work, you have to understand how the Internet and the people interact. The Internet is a high speed way for your ideas and messages. You can communicate with everyone, everywhere. Even with Bots. Anyway … So you can access nearly the whole world from your home computer. This is how the Internet “works”.
Maybe you have an idea, which is innovative and revolutionary. There is no better way to present that stuff in the internet, if you want to reach million of people. This is how the internet phenomena “work”.
They will see it, they will love it and they will spread it all over the internet. And this is, how the people work!
Self Promotion are created by presenting you as a message. If you’re interesting enough to be an internet phenomena you will be one! Most popular sites to present yourself are Twitter, YouTube, MySpace and some famous persons are Magibon, Chris Crocker, that verizan bastart or Chuck Norris.
Images or image editing are very popular, cause it’s easy to create one of them and it’ even easier to share it with the world, because of its small file size. Famous examples are the ORLY-owl or LOLcats.
Websites can also be an internet phenomena. In fact, this seems natural, because websites are a essential part of the internet. And websites will help other websites to get famous by the setting links on their page. But usually websites are famous because of their content. Some examples: youtube.com, google.com
Fun movies are perhaps the most popular type and maybe even the best way to illustrate your idea. This so called vids were spread rapidly, because nothing moves a human better than humour. Some famous representatives: Achmed the dead terrorist, Charlie the unicorn, Zidane vs. Materazzi, Lama with hats
Game spoofs are some kind of fun movies, making fun of a popular game, like Mario, Zelda or final fantasy. Some well known spoofs might by: pokemon spoof, real legend of Zelda, silent hill chibi edition. But not only movies were offered. There are only some games making fun of their famous parents. Most notably game is probably “Mario asshole”, which is a nearly unbeatable version of super Mario world. A player wrote this about the game: “this game gives you a reason to hate life”.
Parodies or imitations are internet phenomena, which take the originally internet phenomena and modify it to make fun of it or provide a different message. The list of phenomena is probably endless, here some examples: Zidane vs. Materazzi, 2Girls1Cup-Reaction, 2Girls1Cup-Lovesong, all the spoofs, Canon Rock played by Funtwo …
Competetions create often a hype. Someone does anything highskilled, like playing a really hard song on guitar without and everyone wants to better. Or maybe the rotate pencils with their hands or do some other stuff with their hands, like cup stacking or coin flipping. Anyway tha main idea is to be the best at this. So everyone tries it out hoping that he will soon post a video, which shows how high skilled he is. Some major internet-sports: Penspinning, Daft Hands, Fingerskateboarding.
A very important type, because it is included by every other type, is interesting content. It doesn’t matter how good your video, text, website or whatever is. It is nothing without the information. A good example for a interesting information and a crappy presentation is 2Girls1Cup. For some reason it is really a interesting video, cause million of people have seen it though the got told what will happen.
There are different types of reaction depending on the internet phenomena itself and of course our own attitude to the presented message. For example if you see a so called competition-internet phenomena and you’re extremely ambitious, so you will probably join that process of becoming an phenomenon. Or if you don’t like nasty and kinky stuff you wont like 2Girls1Cup. and you might not see it more than 1 time.
But there is one thing that all reactions have in common. No matter if you like it or not. One day or other you well tell somebody what you saw. This is how the game works. People will always spread things which keeps them busy.
Also a often happening reaction is to reproduce the idea you saw. In some case you will create an internet phenomena on your own.
Self Promotion
Fun Movies
Competetions
Game Spoofs
http://www.youtube.com
http://en.wikipedia.org/wiki/ORLY
http://en.wikipedia.org/wiki/List_of_Internet_phenomena
http://encyclopediadramatica.com/Main_Page
Ich habe die Ehre das erste deutschsprachige Tutorial auf www.rpdev.net zu veröffentlichen. Es soll sich dieses mal auch mit Spieleprogrammierung beschäftigen – genauer gesagt, mit einem Kartenformat in isometrischer Ansicht, auf der sich dann irgendwann ein "Held" bewegen kann. Was das ist und wie man es benutzt, erfahrt ihr hier.
Vorwort
Gelangweilt von den 2D Standarddraufsichtskarten, die es wie Sand am Meer gibt? Mal etwas machen, was sich von anderen etwas abhebt? Zugegeben ein Spiel was sich von anderen abhebt, sollte mehr als nur isometrische Spielkarten aufweisen. Aber falls du dein Spiel genau damit ausstatten willst, sei hiermit eine kleine Hilfestellung gegeben.
Ich möchte wirklich nur einen kleinen Einstieg geben und keine ausführliche Beschreibung, wie man ein hochkomplexes isometrisches Kartenformat entwickelt. Der veröffentlichte Source soll daher auch nur eine Anregung sein. Ich habe ihn in C++ und teilweise Pseudocode geschrieben.
Table of Contents
Was ist eine isometrische Karte?
Das ist nichts weiter als eine ganz normale Spielkarte mit einer speziellen Perspektive. Stell dir eine rechteckige Karte vor (Draufsicht) und drehe diese um 45 Grad und dann kippe sie nach Hinten etwas ab.
Es gibt auch viele bekannte Spiele, die auf solchen Karten basieren
- Sid Meier’s Civilization
- Final Fantasy Tactics
- Age of Empires I
Vor- und Nachteile?!
Das sei einfach mal in kurzen Stichpunkten zusammengefasst:
Vorteile:
- Perspektive wirkt sehr räumlich
- Weniger weit verbreitet als Draufsichtkarten
- Isometrische Tiles sind nicht schwerer herzustellen
Nachteile:
- Indizes können leicht zur Verwirrung führen
- „Koordinaten von Bildschirm zu Karte“-Problem ist etwas aufwendiger
Also los!
Wie jedes Kartenformat, bauen wir unsere Karte aus einzelnen sogenannten Tiles auf. Ein Tile (Kachel) ist später nichts weiter, als ein einzelnes Feld unserer Karte. Sie beinhaltet einen Verweis auf eine Textur (damit wir wissen, wie das Tile später aussieht), speichert ihre Position und soll außerdem einen Wert speichern ob die Kachel betretbar ist.
Die Textur hat in diesem Fall eine Dimension von 64*32. Es darf auch eine andere Größe gewählt werden, wichtig ist dabei nur, dass die Breite das doppelte der Höhe beträgt.
Nun sollte man sich eine Klasse anlegen, die ein zweidimensionales Array vom Datentyp TILE* speichern kann. Ich nenne dies hier einfach mal isometric_map.
Um das zweidimensionale Array zu erzeugen, verwende ich den STL vector, da er seine Größe dynamisch verändern kann, und man somit die Karte im nachhinein beliebig ändern kann. Das hat für diesen Zweck schon erhebliche Vorteile. Wer mit dem STL-vector nicht so vertrau ist, kann auch statische Größen wählen. Ferner ist es nützlich einen Wert zu haben, der die Kartengröße angibt und außerdem sollte eine jede Karte einen treffenden Namen haben.
Aufgrund einer Anmerkung (vielen dank dafür), möchte ich noch betonen, dass man auch mit einem eindimensionalen Array ein zweidimensional simulieren kann, indem man die Koordinaten in einen index umrechnet.
Nur was muss die Klasse isometric_map jetzt alles leisten können? Das ist abhängig davon wie leistungsstark eure Karte werden soll. Hier eine grobe (subjektive) Unterteilung:
1 Etwas was sie können muss: (wird im Tutorial behandelt!)
- setzen ,ändern und laden der Parameter
- laden und zeichnen der Karte
- bewegen der Karte
2 Etwas was sie können sollte: (wird nicht im Tutorial behandelt!)
- überschreiben der Textur einer beliebigen Kachel
- löschen und hinzufügen von Kacheln
3 Etwas was sie können darf:
- verschiedene Layer
- platzieren von Objekten auf der Karte
- verwalten von Events(wenn man eine Kachel betritt, passiert etwas o.ä.)
Man sieht schnell, dass ein starkes Kartenformat nicht einfach so vom Himmel fällt, sondern einiges an Arbeit bedeutet. Für ein Spiel wäre es natürlich sehr hilfreich, wenn die Karte alle 3 Punkte bedient.
Kommen wir zum ersten Punkt:
Punkt Nummer 1 - Die Standardkarte
Die Klasse wird hier um einige wichtige Funktionen erweitert:
Setzen und ändern der Parameter
Standardmäßig wird in der Initialisierungsmethode die Erstbelegung der Werte wiefolgt vorgenommen:
Nun müssen wir nur noch an die Werte rankommen. Das ist leicht! Da die Klassenattribute private deklariert sind, brauchen wir einfach nur öffentliche Methoden um darauf zugreifen zudürfen
Analog die Methoden um uns die Werte zurückliefern zu lassen.
Laden und Zeichnen der Karte
Der Ladevorgang ist etwas anders, als bei einer Karte mit Draufsicht, da wir ja wissen, dass die Karte um 45 Grad gedreht ist. Das heißt eine Kachelreihe geht nicht senkrecht oder waagerecht, sondern diagonal. Und das heißt wiederrum die Kacheln sind bezüglich der horizontalen oder vertikalen Achse versetzt. Wir müssen daher ledeglich die Position anpassen. Dazu brauchen wir aber ein paar Daten - die Bildschirmdimension und die Kacheltexturdimension.
Nun können wir die methode implementieren, die uns die Karte erstellt:
Naja die Anpassung der Kachelpositionen sieht ja auch sehr gewaltig aus, ist aber im Grunde einfach und zwingend logisch.
Betrachten wir uns dazu den Aufbau der Karte, wie folgt:
Man sieht, dass die Reihen eine bestimmte Ausrichtung haben. Wir müssen die Kachelreihe y einfach um die halbe Kachelbreite nach links und um die halbe Kachelbreite nach unten verschieben.
Und jede Kachelreihe x um die gleiche Dimension nach rechts. Die Kachel (x,y) = (1,2) müssen wir somit zuerst um eine halbe Kachelbreite nach rechtsunten verschieben. und dann 2 mal die halbe Kachelbreite nach links und dann noch mal nach unten verschieben.
Das erreichen wir indem wir den Offset aufaddieren
Jetzt zeichnen wir die Karte einfach. Da wir jetzt die Koordinaten einer jeden Kachel gespeichert haben, ist das Zeichnen nun denkbar einfach. Wir durchlaufen einfach unser 2D-Array und zeichnen jedes Tile
Bewegen der Karte
Hier müssen wir nur jede Kachelposition um x_offset und y_offset verschieben. Da wir die Koordinaten lokal gespeichert haben, sollte das keine Schwierigkeiten machen. Wieder Array durchlaufen und jedes Tile um den offset verschieben.
Und Voila, damit kann man schon einmal ganz einfache isometrische Karten, in sogenannter Diamondform, erstellen.

Jetzt könnte man anfangen, die restlichen Punkte (was "sollte" und was "darf" die Karte können) angehen, aber da dieses Tutorial hier endet, bleibt das entweder Stoff für euch selbst, oder Stoff für ein nächstes Tutorial. Hier ein kleiner Ausblick, was aus viel Experimentierfreude werden kann.

Das ist ein Screenshot aus einem Privatprojekt von mir. Die Texturen sind allerdings nicht von mir, sondern habe ich (nach Anmeldung) auf www.isogames.de herunterladen können.
Somit endet mein Tutorial (erstes überhaupt) und ich hoffe ich konnte euch damit Anregung, Tipps oder Neugier auf mehr machen, und stehe natürlich für Rückfragen oder Kommentare jederzeit zur Verfügung.
In diesem Sinne, viel Erfolg wünscht stefan
Moin,
auch einen schönen Abend von mir. Zu meinem Update ist zu sagen, dass alle ToDo-Sachen wie gewollt funktionieren.
Das heißt beim Buchen eines Hauses wird ein ToDo-Aktion (Schlüsselübergabe) erzeugt und in den ToDoStock gelegt, der dann mittels einer TED auf der Startseite eines Hausmeisters oder einer Putzkraft angezeigt wird, die Unterscheidung ist somit noch nicht vorgenommen (folgt dann schnell am Montag 8) ) Er kann dann mittels eines Buttons und vorher ausgewähltem Eintrag den Auftrag als erledigt abstempeln, der dann somit heraus genommen wird, also definitiv gelöscht. Solche Sachen wie Schaden und so kommt ja erst die Woche, würde ich sozusagen wieder übernehmen, liegt ja in meiner Domäne *reservierung abgeschlossen*
Und fehlen würde noch Schlüsselübergabe bei Auszug, könnte man einfach machen, indem man das aktuelle Datum mit den Auszugsdaten aller Buchungen vergleicht (kommt also wenn die ganze Buchungssache läuft) Was noch sehr fehlt ist die ganze Sache mit dem ToDoIterator und einiger Fragen, die Martin schon versucht hat zu beantworten. Würde das aber noch mal morgen mit nötiger Codeuntermauerung zur Sprache bringen, also wenn einer morgen nen Lappi mitbringen könnte <3
Noch mal in kurz:
Vorhanden:
Fehlen:
soviel zu meinem Update und ich hoffe das nächste mal bekomme ich das Sitzungsprotokoll eher hin. Noch mals sry für all die jenigen die es eher sehen wollten ;)
mfg stefan
Hi there,
today I'm kinda pissed. Here is the situation. I wanted to write a small tool for the game Urban Rivals, so that I don't have to figure out the strength of the opponent by myself. Nothing special so far.
There is the maindialog with some comboboxes and an editbox for the strengthoutput. Let's take a closer look! If you want to write a string to an editbox you have to use this function:
So what is LPCWSTR, you might ask. Here is the correct answer, from msdn.
A 32-bit pointer to a constant null-terminated string of 16-bit Unicode characters. This type is declared in WinNT.h as follows:
Ok, now we know all, to accomplish this task, don't we? We don't! Of course we don't. I tried to do so and here is what I got:

Pretty interesting, isn't it? Ok, a just little problem. So let's google for the solution. 3 hours and 20 different code snippets, which does not work for me, later I'm here to write this. Look at all that crappy string and string converting stuff in C++ ò.Ó
First things first: Some information. You have two different types of characters. Normal characters and unicode so called wide characters.
Anyway... You have also a string and a wstringclass. A class which holds and manages a const char* or a const wchar_t* value. But you have also a const char* stream and a const wchar_t* stream which is nearly the same, not with the bufferconcept, but it uses the streamtechniques.
And you have a whole bunch of other classes like, basicstringstream, stringstream, ostringstream and so on. And here comes the point. You can't get one of these things to get work with LPCWSTR. Look:
As you remember, SendDlgItemText needs a widestring. That means wo should write something like this:
Erm yeah. This is bullshit. Because you can't assign a integer to a widecharacterstring. That would be to easy. Even if you made it to do so, the result will be something like this what you saw above. Long story short. I didn't made it to assign an integer to this damn string and to display it without any chinese characters in it.
Here my favourite solutions, because they're so weird, that they illustrate the c++-stinrg-dilemma very well
solution 1 - very confusing, cause nobody knows what _itow_s() really does!
solution 2 - really cool, because it shows that c+ has to much types of strings and streams
solution 3 - let's use a stringstream!
Not even one of them used to work fine! And now I am at the limit. I not only dislike all the string stuff in C++, I hate it! As you must know, this was not the first time, that I had trouble with strings in C++.
I know that the problem, doesn't really deal with the string stuff, but with the LPCWSTR and the win32 WinAPI. But if wou would be honest just for only one second, you have to admit, that you don't need morde the 10 different classes to put "hello world" to the screen. Or was it L"hello world"?
RPGBomber2009 Banner
Hi there,
it's been a while, since the last release of RPGBomber2009. And unfortunatly this is not an announcement of the current release. But it is a sneak preview of the current state.
I will also present some screenshots ;) And of course I will start with a little intro screen.
presented by rpdev
So this is no real surprise, but if you know the old version, there will be some, erm lets call it changes (and not surpise ;) ), in the version. First of all there will be a smarter main menu. Take a look:
RPGBomber2009 main menu
On the right side is the user interface, where you have acces to the different features. The only currently implemented feature is the integrated map editor - called mEdit. Here is a screenshot, which shows how I load a already created map.
RPGBomber2009 loading a map
This allows us to create, modify and store thousands of maps. E.g.:
RPGBomber2009 a scene
But what is a bomberman game without, erm ... aaah a bomberman, bombs, explosions and all that stuff. Till I now I implemented a bomberman class, which moves perfectly in our world. It detects collision and can also drop bombs, which already explode:
RPGBomber2009 a game
So what to do next? Next step is, to implement, that an explosion hurts or kills the bomberman. ANd afterwards I will add a small mini game called time attack. But this is still s little secret. So stay tuned. The next release will come soon ;)
Da ich ebenfalls Angewandte Informatik an der TU-Dresden studiere, habe ich mich dazu entschlossen aus meiner Geburtsstadt Freiberg (ca 50 km von Dresden weg) an meinen Studienstandort überzusiedeln. Mit 20 Jahren und meinem Geburtstag am 8.11.1987 bin ich derzeit das älteste Mitglied von RPdev, was natürlich nur statistischen Wert hat.
Meine ersten "informatischen" Schritte
Ebenfalls habe ich meine ersten Erfahrungen im Bereich Computer mit dem programmierbaren Schultaschenrechner (Casio CFX-9850G), und somit mit ner stark reduzierten Form von BASIC machen müssen. Mit allerlei Geschick und einem großen Zeitpensum gelang es mir allerlei Programme dafür zu erstellen, dass von kleineren Mathematikprogrammen bis hin zu etwas größeren Spielen gereicht hatte. Hier entdeckte ich auch meine große Leidenschaft für die Entwicklung von Spielen. Wie der Zufall es so will bekam ich, kurze Zeit später darauf, einen einfachen Rechner geschenkt mit dem ich dann so richtig loslegen konnte. Nur hatte ich extreme Startschwierigkeiten. Auch hier half mir der Zufall auf die Sprünge. Durch einen damaligen Freund lernte ich jemanden kennen, der ein wenig mehr Kenntnis darin hatte als ich damals. So begann die harte Zeit wo ich das Programmieren lernen sollte.
Mein erstes Programmierteam
Ich wurde gleich sehr hart rangenommen. C++ war es was es zu lernen gilt. Ich hatte mich mit etwas Lektüre darauf vorbereitet, so war doch die AUsführung am PC wesentlich schwerer. Wie jeder Neuling begann ich einfache Schleifen auf der Konsole zu Programmieren. So verging einige Zeit, in der ich mich dann auch mit der WinAPI und OpenGL beschäftigte, bis es zur Gründung von IriDionS kam, meinem sozusagen ersten Programmierteam. Wir hatten uns zum Ziel gesetzt einen kleinen Shooter zu entwickeln, wohl aber auf Grundlage einer eigenen kleinen Engine, was (wie es schon klingen mag) für zwei leute, wobei einer davon noch recht neu im Metier ist, sehr schwer ist. Das war auch der Grund warum dieses Team kaum von Erfolg gekrönt war. Als dann später auch noch private Spannungen hinzu kamen, löste sich das Team im Jahre 2006 auf. Was aber nicht das Ende meiner "karriere" sein sollte.
Mein Weg bis hierher
Ich hatte mir vorgenommen mein Austieg aus dem Team nicht als Ende zu setzen und began kleine einfachere Projekte, die man notgedrungen auch alleine bewältigen konnte, zu entwerfen. Da ich sehr großes Interesse für 2D Grafiken habe habe ich mich größtenteils mit solchen Spielen beschäftigt. Mit der WinAPI habe ich kleinere Kachelgrafiken gebastelt und mir so ein kleines Gelände geschaffen wo ich meinen held hin und her bewegen konnte. Dies war mir aber nicht genug und ich geriet glücklicherweise wieder in neue formende Hände, zum Entwicklerteam 7BitFaster. Dieses Team benutzte damals eine sehr beliebte Spieleengine mit dem Namen Irrlicht. AUch hier währte meine Mitgliedschaft nicht lange da leider Abiturprüfungen vorrang hatten. Aber ich konnte wenigstens einwas für mich mitnehmen: Irrlicht. Bis heute programimere ich auf Grundlage dieser Engine und habe damit viele Projekte angefertigt, die aber leider nie zum Abschluss kamen. Dazu zählen ein 3D Bomberman Klon, ein 4-gewinnt Minispiel und ein mehr oder weniger komplexer 2D Karteneditor basierend aus Tiles und Sprites. Im zuge meiner Mitgliedschaft bei RPdev werde ich aber diese Spiele fertigstellen und zum Download anbieten.
Und nun soll alles anders werden....
Mit RPdev haben sich zwei Mächte vereint, deren Kraft die Welt verändern soll. Junges Schöpfergenie trifft auf kreativen Ideenheld. Unsere jüngste Planung des Spiels (geheim ;-)) hat schon Hunger bemacht auf die Verwirklichung. Hier sind große Kräfte am Werk es gilt sie nur zu kontrollieren..... Auf in ein Abenteuer