Games programmieren

Rief

Himmlischer
Mitglied seit
04.06.2006
Beiträge
2.819
Eigentlich wollte ich ja Ruby nutzen, aber esw gibt SO viele Sprachen wie ich herausgefunden habe...

Also, welche Programmiersprache nutze ich am besten für Games wie die klassischen Megaman oder auch Dragon Quest?
Grafisch kann es ruhig SNES sein, mehr muss nicht, weniger darf aber auch nicht sein.
Was mir wichtig ist ist das ich auch komplexe Skillsysteme und dergleichen in die Games einbauen kann
Nachdem ich jetzt den ganzen Tag gesucht habe, ursprünglich wollte ich mit Java anfange, dann ruby, Python hab ich noch entdeckt und und und frag ich jetzt, kurz bevor ich heia mache, einfach mal im Forum meines Vertrauens

PS:
Auch komplexe Dinge schrecken mich nicht ab, brauche nur gute Tutorials die mir zumindest die Grundlagen und wichtigsten Befehle erklären
 

Nazgul

Mitey Pirabbite
Mitglied seit
26.05.2002
Beiträge
3.339
C++ ist soweit ich weiß eine eierlegende Wollmilchsau unter den Programmiersprachen.
Aber Java, Python, etc. gehen alle genausogut, vllt. sogar besser.

JEDE Programmiersprache fängt an mit "a+b=c" und if-Befehlen, da kommt man nicht drum rum. Jetzt wähle endlich eine Sprache aus und bleib dabei, nicht immer rumwechseln, oder wie Yoda es ausdrücken würde:

Zu schnell, zu ungeduldig du bist. Deswegen versagen du wirst!

Peace^^
 

Meister der Runen

Emergency Induction Port
Mitglied seit
14.03.2004
Beiträge
1.654
Haha... Snes grafik...
Du musst alle Sprites schon selber machen.

Dazu musst du grafische oberflächen können. Die muss dann noch für das
Spiel ausgelegt sein. Wenns 3D ist sollte man noch mit direct X programmieren können.

Ein tutorial.... was du brauchst sind 2-3 Bücher und viel Zeit.

Hier mal ein Beispielcodeteil von einem simplen Spiel, welches noch nicht mal
grafische Oberflächen benutzt (das heißt es läuft in der windows konsole):
Code:
#include "stdafx.h"
#include <cstdlib>
#include <iostream>

using namespace std;

void startbildschirm(void);
void anleitung(void);
void singelplayer(void);
void singelplayer_startcomp(void);
void singelplayer_startplayer(void);
void multiplayer(void);


int main(void)
{
	startbildschirm();
	return 0;
}

void startbildschirm(void){
	int var;
	cout << "Willkommen beim Streichholzspiel! \n";
	cout << "Bitte w\x84hle eine der folgenden Men\x81optionen:\n\n";
	cout << "-1- Singelplayer\n";
	cout << "-2- Multiplayer\n";
	cout << "-3- Anleitung\n";
	cout << "-4- Ende\n\n";
	cout << "Ihre Wahl: ";
	if(!(cin >> var)){
		cerr << "Falsche Eingabe!\n";
		exit(1);
	}
	cout << "\n";
	switch (var){
		case 1 :
			singelplayer();
			break;
		case 2 :
			multiplayer();
			break;
		case 3 : 
			anleitung();
			break;
		case 4 :
			exit(0);
		default:
			cerr << "Ich sagte 1, 2, 3 oder 4!\n";
			startbildschirm();
	}
}

void anleitung(void){
	int i;
	cout << "Willkommen zum Streichholz-Spiel!\n";
	cout << "Die Regeln sind relativ Simpel. Es wird eine Anzahl an Streichh\x94lzern\n";
	cout << "ausgew\x84hlt mit denen dann gespielt wird. Gespielt wird mit 2 Spielern.\n";
	cout << "Nacheinander nehmen die Spieler immer mehr von den vorhanden Steichh\x94lzern\n";
	cout << "weg. Man darf immer nur 1, 2 oder 3 Streichh\x94lzer aufeinmal nehmen und\n";
	cout << "man darf auch nicht keine Streichh\x94lzer nehmen. Wer das letzte Streichholz\n";
	cout << "nimmt hat gewonnen!\n\n";
	cout << "Um zum Menu zurueck zu kehren druecke bitte die 1: ";
	cin >> i;
	if (i==1){
		cout << "\n";
		startbildschirm();
	}
	else{
		cerr << "Falsche Eingabe!\n";
	}
}

void singelplayer (void){
	int var;
	cout << "Wer soll anfangen? Du oder der Computer?\n\n";
	cout << "-1- Spieler\n";
	cout << "-2- Computer\n";
	cout << "Ihre Wahl: ";
	cin >> var;
	if(!(var)){
		cerr << "Falsche Eingabe!\n";
		singelplayer();

	}
	cout << "\n";
	switch (var){
		case 1 :
			singelplayer_startplayer();
			break;
		case 2 :
			singelplayer_startcomp();
			break;
		default:
			cerr << "Fehler!\n";
			singelplayer();
	}
}

void singelplayer_startcomp(void){
	int streich;
	bool z=true;
	cout << "Mit wie viel Streichh\x94lzern willst du Spielen?\n";
	cout << "Anzahl der Streichh\x94lzer: ";
	if(!(cin >> streich)){
		cerr << "Falsche Eingabe!\n";
		exit(1);
	}
	for(;streich!=0;){
		int tempwert=0;		
		if (streich%4!=0){
			cout << "Ich nehme " << streich%4 << " Streich\x94lzer!\n";
			streich -= streich%4;
		}
		else {
			cout << "Ich nehme " << 1 << " Streich\x94lzer!\n";
			streich -= 1;
		}
		cout << "\nEs sind noch " << streich << " Streichh\x94lzer vorhanden.\n";
		if (streich == 0){
			cout << "Ich habe gewonnen!\n";
			char c;
			cin >> c;
			if (c == '\n')
				exit(0);
			else 
				exit(0);
		}
		z=true;
		while (z ==true){

			cout << "Wie viele Streichh\x94lzer willst du nehmen?\n";
			cout << "Anzahl: ";
			cin >> tempwert;
			if(tempwert > 3 || tempwert < 1){
				cerr << "Falsche Eingabe!\n";
				continue;
			}
			streich -= tempwert;
			cout << "\nEs sind noch " << streich << " Streichh\x94lzer vorhanden.\n";
			z=false;
			if (streich == 0){
				cout << "Du hast gewonnen!\n";
				char c;
				cin >> c;
				if (c == '\n')
					exit(0);
				else 
					exit(0);
			}
		}
	}

}

void singelplayer_startplayer(void){
	int streich;
	cout << "Mit wie viel Streichh\x94lzern willst du Spielen?\n";
	cout << "Anzahl der Streichh\x94lzer: ";
	if(!(cin >> streich)){
		cerr << "Falsche Eingabe!\n";
		exit(1);
	}
	for(;streich!=0;){
		int tempwert=0;
		cout << "Wie viele Streichh\x94lzer willst du nehmen?\n";
		cout << "Anzahl: ";
		cin >> (int) tempwert;
		if(tempwert > 3 || tempwert < 1){
			cerr << "Falsche Eingabe!\n";
			continue;
		}
		streich -= tempwert;
		cout << "\nEs sind noch " << streich << " Streichh\x94lzer vorhanden.\n";
		if (streich == 0){
			cout << "Du hast gewonnen!\n";
			char c;
			cin >> c;
			if (c == '\n')
				exit(0);
			else 
				exit(0);
		}
		if (streich%4!=0){
			cout << "Ich nehme " << streich%4 << " Streich\x94lzer!\n";
			streich -= streich%4;
		}
		else {
			cout << "Ich nehme " << 1 << " Streich\x94lzer!\n";
			streich -= 1;
		}
		cout << "\nEs sind noch " << streich << " Streichh\x94lzer vorhanden.\n";
		if (streich == 0){
			cout << "Ich habe gewonnen!\n";
			char c;
			cin >> c;
			if (c == '\n')
				exit(0);
			else 
				exit(0);
		}
	}

}

void multiplayer (void) {
	int streich;
	cout << "Mit wie viel Streichh\x94lzern willst du Spielen?\n";
	cout << "Anzahl der Streichh\x94lzer: ";
	if(!(cin >> streich)){
		cerr << "Falsche Eingabe!\n";
		exit(1);
	}
	for(;streich!=0;){
		int tempwert=0;
		bool z=true;
		bool y=true;
		z=true;
		while (z ==true){
			cout << "Spieler 1 ist dran! Wie viele Streichh\x94lzer willst du nehmen?\n";
			cout << "Anzahl: ";
			cin >> tempwert;
			if(tempwert > 3 || tempwert < 1){
				cerr << "Falsche Eingabe!\n";
				continue;
			}
			streich -= tempwert;
			cout << "\nEs sind noch " << streich << " Streichh\x94lzer vorhanden.\n";
			z=false;
			if (streich == 0){
				cout << "Spieler 1 hat gewonnen!\n";
				char c;
				cin >> c;
				if (c == '\n')
					exit(0);
				else 
					exit(0);
			}
		}
		y=true;
		while (y ==true){
			cout << "Spieler 2 ist dran! Wie viele Streichh\x94lzer willst du nehmen?\n";
			cout << "Anzahl: ";
			cin >> tempwert;
			if(tempwert > 3 || tempwert < 1){
				cerr << "Falsche Eingabe!\n";
				continue;
			}
			streich -= tempwert;
			cout << "\nEs sind noch " << streich << " Streichh\x94lzer vorhanden.\n";
			y=false;
			if (streich == 0){
				cout << "Spieler 2 hat gewonnen!\n";
				char c;
				cin >> c;
				if (c == '\n')
					exit(0);
				else 
					exit(0);
			}
		}
	}
}
C++ btw


Ich glaube du hast eine falsche vorstellung. Du kannst die komplexesten Skillsysteme
der Welt einbauen, jedoch musst du die selber schreiben und das sogar fast mit
1001010110101. Ein wenig vereinfacht natürlich durch Zahlen wie Integer, Double,
Short und Long, Buchstabenzeugs wie Char und String und natürlich den Wahrheitswert Boolean.

Programmieren ist im großen und ganzen nur Mathe
 
Zuletzt bearbeitet:

Kinta

Rebusmind is dead
Mitglied seit
06.08.2003
Beiträge
2.661
Ich kann dir noch den Game Maker empfehlen. Damit kann man - wenn man will - per Drag & Drop Spielelemente zusammenbasteln oder aber - und hier wirds interessant - das ganze auch programmieren. Mit der Software lassen sich wunderbar Plattformer oder Spiele aus der Top-Down-Perspektive machen.
Vom Anspruch her liegt es irgendwie zwischen Anfänger bis Fortgeschrittene, man sollte das Teil auf jeden Fall nicht unterschätzen.

Das Programm ist übrigens auch noch kostenlos in der Lite-Edition und kostet 25 Euro in der Pro-Edition (ein Schnäppchen und für mich hat es sich echt gelohnt).

C++ ist für mich immernoch ne ziemlich heikle Sache. Aber vielleicht wäre auch noch XNA was für dich. Da gibt es ne Menge Frameworks für z.B. RPGs und dergleichen. Ist aber vom Anspruch nochmal ne Ecke höher, würde ich sagen.

Kinta
 

Yok

Hooded Hunter
Mitglied seit
09.04.2008
Beiträge
1.847
Ich würde dir für jegliche Art der Spieleentwicklung Multimedia Fusion 2 (bzw. Fusion 2 developer) empfehlen. (Na toll, noch eine andere Meinung ^^) Ich weiß nicht genau wie teuer der Spaß ist, aber hier gibt es eine 30 Tage Testversion:

Clickteam.com - Creative Tools for the Creative Age

Und hier ein entsprechendes Hilfe- und Tutorialforum:

Clickzone - DIE deutsche Click-Community www.clickzone.de

Mit diesem Programm wurden unter Anderem einige RPGs und I wanna be the guy hergestellt. Es ist möglich so ziemlich alle Kampfsysteme und Aktionen auf das Frame genau zu erstellen, jedoch ist es wirklich ein sehr komplexes Tool, aber Programmierkenntnisse sind nicht zwingend erforderlich. Aber auch hier musst du die Grafiken selber machen.

Was das Erlernen einer Sprache angeht, ist keine leicht zu lernen und du wirst wohl, wie schon erwähnt, um den Kauf des Ein oder Anderen Buches nicht herum kommen.
 
Zuletzt bearbeitet:

Ashura

Amazone und Meridian Child
Mitglied seit
19.09.2001
Beiträge
4.550
So wie ich das sehe, braucht man so oder so ne Menge Erfahrungen im programmieren und ein paar extrem talntierte Leute dazu. Denn wenn man alles allein machen muss sitzt man ohnehin Jahrzehnte an dem "Werk" bevor man auch nur den ersten Dungeon oder Mapbereich fertig hat. Oder hast du wen, der extrem gut in Pixelarbeiten am Pc ist und eventuell ein ehemaliger Informatiker, so das der das auch gleich mit den Oberflächenstrukturen hinkriegt?

Damit mein ich nicht das bisschen Geschmiere was ich da im Vergleich mit Bleistift und Papier mache. Jemand wie ich wäre gerade mal ausreichende Qualität für die ersten Entwurfsskizzen der Figuren, bevor man die für´s Game umsetzt. Einmal hab ich versucht n Pixelavatar zu erstellen, der ja nun wahrlich nicht groß ist und bin kläglich dran gescheitert...halte das also bloß nich für so einfach.

Ich mein´s nun wirklich nicht böse, aber ich tippe darauf, dass du eher alt und grau wirst als das du ohne Vitamin B nd die richtigen Leute ein vollständiges Game hinbekommst. Viele Selfmade-Sachen sind nicht umsonst unbeendet, wenn ich da so an die RPG-Maker Ecke denke.
 
Zuletzt bearbeitet:

saryakan

MEME FARMER
Mitglied seit
28.01.2005
Beiträge
2.565
Wenn du spiele im Dragon Quest Stil erstellen willst, dann rate ich dir zum RPGMaker, denn die wichtigsten Funktionen sind da bereits vorprogrammiert.
Mit dem 2k und dem 2k3 bist du sehr eingeschränkt, aber mit dem XP und RGSS kannst du fast alles machen, was du auch mit ner anderen Programmiersprache könntest. (Komplizierte Skillsysteme)
Theoretisch kann man das alles auch mit dem VX, doch kenne ich mich mit dem überhaupt nicht aus...

Ganz ohne Engine ein Spiel von auch nur annähernd ähnlicher Qualität wie DQ zu programmieren ist eine Lebensaufgabe.
 
OP
OP
Rief

Rief

Himmlischer
Mitglied seit
04.06.2006
Beiträge
2.819
Gerade den RPG-Maker will ich nicht benutzen, der bietet zu wenig Freiheiten.

Und ich stelle mir das ehrlich gesagt auch alles andere als einfach und schnell vor

Was das Team angeht was ich zusammensammeln könnte hätte ich bereits zwei Personen für das optische, fürs programmieren eine
Das ich das GANZ alleine nicht schaffen kann ist mir klar, dennoch danke für die Hinweise und Tipps^^

Ich denke ich bleib bei Ruby
Kanns nicht erklären, aber mein Gefühl zieht mich dorthin XD
Also, mal ran an die Grundlagen^^

Aber kurze Frage:
Ist Ruby eigentlich mit Java kombinierbar?
 

Kinta

Rebusmind is dead
Mitglied seit
06.08.2003
Beiträge
2.661
Ich glaube nicht, dass die beiden Sprachen kombinierbar sind, müssen ja jeweils durch nen eigenen Compiler.

Was Aufwand und so angeht hängt das ganz vom Spiel ab. Es gibt viele Leute, die alleine ein Spiel von Anfang bis Ende programmiert, visualisiert und vertont haben, einige der bekanntesten Indie-Spiele sind so entstanden (z.B. Cave Story). Ich denke, mit Spielen, die nen festen Spielablauf haben, der sich nur in bestimmten Parametern ändert (z.B. Puzzlespiele), kann man auch recht schnell erste Ergebnisse erzielen. Ein RPG ist da eher das Mammut unter den Spielen. Man sollte sich anfangs nicht übernehmen, die ersten paar Projekte werden eh wahrscheinlich nicht der Hit werden.

Ich arbeite übrigens auch gerade an einem Spiel... alleine (bis auf eine Handvoll Charakterartworks, die von nem Freund beigesteuert wurden). Es ist zwar noch in der Schwebe, ob ich es bis zur Abgabe (ist für nen Wettbewerb) fertig bekomme, ich werde es aber auf jeden Fall beenden. Allein schon fürn Lebenslauf. ^^

Also nicht entmutigen lassen, wenn man sich nicht gleich überfordert und Schritt für Schritt voranschreitet, ist es alles andere als unmöglich, auch alleine was vernünftiges auf die Beine zu stellen.

Kinta
 

saryakan

MEME FARMER
Mitglied seit
28.01.2005
Beiträge
2.565
:nerv:
Wie bereits gesagt.
Mit dem RPGMakerXP hast du nahezu alle Freiheiten von Ruby und bereits ne ganze Menge arbeit erledigt, da du extrem viele Klassen bereits vorgebaut hast.
 

Nazgul

Mitey Pirabbite
Mitglied seit
26.05.2002
Beiträge
3.339
Ich glaube du unterschätzt den RPG-Maker. Schon mal Velsarbor, oder die Reise ins All gespielt?

Besonders Ersteres Beweist, dass man so ziemlich alles 2D-RPG-Mäßige aus dem Dingzaubern kann, wenn man sich nur genug reinhängt.

Und es wird einem halt schon sehr viel Arbeit abgenommen, verglichen mit on-the-scratch.

Peace^^
 

Kiview

Mächtiger Krieger
Mitglied seit
25.01.2009
Beiträge
81
Hast du schonmal programmiert?
Wenn nein, würde ich als erstes Projekt kein RPG empfehlen und wenn du nicht wirklich tief in die Materie einsteigen willst, sollte etwas ala RPG Maker reichen.

Ansonsten empfehle ich C++ mit SDL als Multimedia Framkework.
Ich persönlich werde jetzt demnächst allerdings mal ein Projekt in C# starten, da es Performance mäßig hinter C++ auch nicht mehr so weit zurück liegt, aber deutlich komfortabler und weniger altbacken daherkommt.
 

Redwolf

Folge der 8 bei den Palmen!
Mitglied seit
14.02.2002
Beiträge
2.817
Definitiv RPG Maker. Ein eigenes Spiel mit derartiger Komplexität allein hochzuziehen wird schwierig. Der RPG-Maker XP oder höher ist doch auch Ruby-scriptfähig. Damit müsstest du zur not alles auf deine Bedürfnisse anpassen können. Wichtig ist es in der Anfangsphase alles genau durchzuplanen und dir Gedanken dazu zu machen, was benötigt wird und was der RPG-Maker schon mitbringt.

Schau mal in die Credits von einem Spiel wie Baphomets Fluch 2.5. Da siehst du wie viele Leute es brauch ein Projekt derartiger Komplexität umzusetzen (16 aktive Mitglieder, zahlreiche Aussteiger).
Baphomets Fluch 2.5 ? Broken Sword 2.5
 

Yok

Hooded Hunter
Mitglied seit
09.04.2008
Beiträge
1.847
Naja. Ein Beispiel was der RPG Maker nicht kann, sind .avi Dateien abspielen. Klar, in der Theorie gibt es dafür Scripte, aber auch immer wieder Warnungen, dass der RPG Maker damit Probleme hat.

Ich will nicht rumstochern, was der Maker alles nicht kann, denn theoretisch würde ALLES funktionieren. Nur in der Ausführung hapert es dann.
 

Yuffie

✦ 1st CLASS SOLDIER ✦
Mitglied seit
27.04.2004
Beiträge
1.742
Bitte um Hilfe!

Was ich möchte?
Ich möchte ein Sammelkartenspiel erstellen welches man online spielen kann.
Tauschen, gegeneinander Spielen etc.
Ziemlich simpel.

Was ich als Möglichkeit sehe:
Man könnte dies doch sicherlich als Flash erstellen oder mit dem RPG-Maker
und dem Online-Script (RMX-OS). Allerdings hab ich bei beidem nicht so die
Ahnung wie sowas funktioniert.

Eure Vorschläge?
Wahrscheinlich ist das Ziel hochgesteckt, aber habt ihr vielleicht eine Idee,
wie man ein solches Spiel am besten auf die Beine stellt? Programmvor-
schläge wären zum Beispiel nett.

Vielen Dank. ^^
 

Kinta

Rebusmind is dead
Mitglied seit
06.08.2003
Beiträge
2.661
Also für ein Kartenspiel wäre der Game Maker mein Vorschlag (welch Überraschung ;)).
Damit sollte sich sowas recht flexibel umsetzen lassen.
Und Online-Spiele sollen sich damit auch basteln lassen (hab ich selbst noch nicht gemacht, aber es ist möglich).

Ich nehme an, dass du ein eigenes Spielsystem umsetzen möchtest?

Kinta
 

Yuffie

✦ 1st CLASS SOLDIER ✦
Mitglied seit
27.04.2004
Beiträge
1.742
Danke für den Tipp. GameMaker hatte ich im Auge das Programm aber
nur kurz überflogen, aber auf deine Empfehlung hin werde ich es mir mal
genauer anschauen.

Das Kartenspiel soll wirklich sehr einfach gehalten sein, eigentlich ähnlich
wie das altbekannte Pokémon-TCG. ^^
 
Oben