MiniCraft - selbst nach Programmieren

the0MIKE

Mitglied
Hi Jungs und Mädls :),

ich weiß es ist nicht einfach ein Spiel auf die Beine zu stellen.
Mann muss kentnisse etc. haben.

Java allgemein habe ich schon einiges gemacht, also nichts neues für mich.

Nur kann ich mir nur sehr schwer vorstellen wie ich sowas wie zum Beispiel "MiniCraft" programmiert.

Das spiel war damals für einen Wettweberb, weiß die anforderungen gerade nicht.
Aber zu meiner tatsächlichen Frage, gibt es gute Tutorials (im Internet) die einem einen schnellen und guten eindruck geben, was für vorraussetzungen ein Spiel hat/braucht, und wie man es Performant halten kann?

Habe da leider nichts gefunden. Sowas wie Pong würde ja schon reichen um die Logik zu verstehen :)

Vielen Dank für die Hilfe.

Gruß,
Mike
 

the0MIKE

Mitglied
Hey Spewer,

danke für die schnelle Antwort.

Schaut aufjedenfall gut aus :)

Mal so ne allgemeine Frage wegen der Grafiken, gibt es da zufällig fertige Grafik-Packs, mit denen man z.B ein RPG erstellen kann?
Weil das ja doch ne Arbeit ist die Grafiken zu erstellen. Also als art Libary ;)

Gruß,
Mike
 

the0MIKE

Mitglied
Ach cool Danke für die Links.

Ja genau den Wettbewerb mein ich :applaus:
Kann mir vorstellen wie Anstrengend ^^

Hab mir grad n kleines PHP Script geschrieben, um meine Filme zu verwalten, finden etc.
Deswegen hat es mich gepackt wegen Java Spiel. Hatte ich schon mal vor einiger Zeit vor, leider hat mir da die Zeit und Muse gefehlt.

Sollte jemals ein Ergebniss zu stande kommen, poste ich dies gerne :D

Bin grad schon an dem Tutorial dran, mal schauen wie es sich entwickelt.

Grüße,
Mike
 

the0MIKE

Mitglied
Hi Voxel,

vielen Dank, dachte das wäre entschieden schwerer ;)

Nun das da ein "kleines Delta" zwischen liegt ist mir klar ^^
Ich mein nichts geht über diese HD optic des besten spieles, Pong :D

Nun ging um den Einstieg --> Logik, Technik etc.

Aber danke dir werd ich mir anschauen.

Lg,
Mike
 

c_sidi90

Top Contributor
Such bei Youtube mal nach TheCherno oder TheCodingUniverse, beide haben eine Tutorialserie um einen Minecraft Clone in 3D zu programmieren. The Cherno arbeitet mit nativem Java ohne OpenGL implementierung (sehr cool), der andere mit LWJGL (bessere performance).
 

the0MIKE

Mitglied
Hi,

danke für so viel resonanz :)

Mache jetzt mal das "Quaxli 2D Spiele" Tutorial durch, find es schon von am Anfang sehr gut.
Und werde mich dann weiter reinfuchsen ;)

Weil es so scheint, ich bin nicht so auf MineCraft, festgefahren. war ja auch "Min"i"Craft :p

Dachte an so etwas wie Zwergenweitwurf

Für den Anfang zumindest bleib ich wohl bei 2D spielen.

Aber das mit den Minecraft tut´s hat potenzial für mich, wohl aber erst nach den 2D ;)

Lg,
Mike
 

Network

Top Contributor
OpenGL ist nebenbei generell zu empfehlen (Wird nicht in Quaxlis-Tut verwendet), so spart man sich den ganzen Codeteil für die drehung der Bilder etc....

Größenveränderungen, Verformungen, Drehungen um die eigene Achse oder dergleichen müsste ansonsten in einem langen Startprozess und viel Speicheraufwand für die entsprechenden Bilder erst berechnet werden.
Selbstverständlich funktioniert OpenGL auch in 2D. Nachteil ist, dass es etwas gewöhnungsbedürftig ist auf der einen Seite und schon kompliziert werden kann auf der anderen aber spart man sich wie gesagt den ganzen Transformcode für die Bilder und das ist auch nicht gerade einfach.

Gruß
Net
 

the0MIKE

Mitglied
Vielen Dank,

Werd ich mir zu Herzen nehmen.

Mal so blöd gefragt wegen "Engin"

Die Engin gibt doch an wie sich ein Objekt verhält o.ä.
Heißt das ich könnte mir eine "Engin" schreiben in der ich das Verhalten für bestimmte Objekte angeben kann?

Also anders gesagt wenn ich mir eine Klasse baue, (OO wollen doch schön dem Standart folgen) zählt das schon als
Engin, oder was ist in einer Engin allse enthalten, und kann man die vorgefertigt verwenden?

Wenn man ja z.B. von der Unreal Engin ausgeht, wird diese ja für viele spiele verwendet.

Lg,
Mike
 

Network

Top Contributor
Was alles als Engine bezeichnet wird, dass lass mal die Germanistiker entscheiden :D Nein im ernst, schau dir in Wikipedia das Wort Engine an, dann weisst du wann man in etwa von einer Engine spricht.

Engines sind dafür da um sie vorgefertigt zu verwenden, dass ist der Sinn warum man sie entwickelt. Im Grunde sind es Codeteile die sozusagen universell sind ohne ins Detail zu gehen, aber bereits spezifische Aufgaben erfüllen können.
Du kannst zum Beispiel eine Physics-Engine schreiben, die für alle Objekte die Schwerkraft berechnet, damit die auch schön und möglichst richtig hinfallen. Dieser Codeteil findet dann ganz bestimmt auch für andere Projekte seinen Nutzen sofern er anpassbar genug ist.
Oder eine Anzeige die speziell gleich mal mit Shadern daher kommt. Dann muss man nicht für jedes Projekt einen neuen Shader schreiben.

Ein gutes Beispiel wäre wohl die JMonkey Engine.

Gruß
Net
 

the0MIKE

Mitglied
Hi Network,

ok gut.
Dann war das ja eigentlich genau wie ich meinte (leider kamm es nicht ganz so aus meiner hirnkruste^^)
Aber super dann hab ich ja jetzt schon einiges um mich da ans werk zu machen :p

Als letzte frage (ich weiß falsches Forum Falsche Sprache) aber vieleicht hat es ja schonmal jemand gemacht.
Die logik, die ich hier verwende und wie ein spiel aufgebaut wird/ist bleibt die bei z.b einem spiel für das Iphone gleich?
Also klar eigene sprache andere spezifikationen etc. aber grundsetzlich sollte man es meistern in egal welcher sprache wenn man
die grundkenntnisse versteht und anwenden kann oder?
Schon jemand eins gemacht? geht das mittlerweile auf pc oder ist immer noch mac vorrausgesetzt?
(bitte nur antworten wenn es darauf eine antwort ist und wenn ihr bock habt ^^)

So nun schluss sonst kommen die armen helfer ja nie aus der puste :p

schöne grüße und vielen dank,
Mike
 

Network

Top Contributor
Das Prinzip bleibt immer das selbe. Egal ob IPhone, Android oder PC oder sonst ein System.

Selbst habe ich auf IPhone 1 und auf Android 2 Spiele entwickelt und die Herangehensweise und Umsetzung unterscheidet sich "im Prinzip" nicht von dem was in Quaxlis Tutorial steht.
Aber vom Code natürlich schon ein Stück, nicht alles ist in jeder Sprache gleich umsetzbar, aber das ist ja klar. :)

Gruß
Net
 
Zuletzt bearbeitet:

the0MIKE

Mitglied
@Titanpharao
ok dachte ich mir :p

@all

hab jetzt die hälfte des Tutorials (kann meinen Heli schon steuern ^^) und klar keine Übung darin und noch nie in Java so komplexe dinge geschrieben aber mal gaaaanz ehrlich...

Das kann sich doch keine Sau so merken, das er es ohne vorlage nachmachen oder sogar erweitern kann??!! o_O

Sagt mir bitte nur das auch wohl Erfahrene (also keine Spiele-Entwickler^^) auch sich vorlagen zu hand nehmen müssen.
Fühle mich ja sonst wie n trottel x)

Thx,
Mike
 

BRoll

Bekanntes Mitglied
Alles eine Sache der Übung und Erfahrung.

Wenn du einmal was programmierst dann weiß man es
im Normalfall für die nächsten Projekte immer noch.
Dh. gewisse Stellen kann man doppelt nutzen,
aber meistens programmiert man schon von Grund an neu,
da lernt man auf jeden Fall am meisten.

Das bringt dann auch die Übung, wenn du vorher noch kein Spiel programmiert hast
kommt man sich nur vor wie ein Trottel.
Kommt drauf an wo man seinen Maßstab setzt.

Wir sind alle irgendwo Trottel, egal wie viel wir wissen :D

Weiß jetzt auch nicht was du genau dir nicht merken kannst davon.
Sollst es ja auch nicht einfach kopieren, sondern selber machen ;)

mfg BRoll
 

the0MIKE

Mitglied
Ja klar :p

Ich merke es ja bei PHP z.B. am Anfang, eig. jede Funktion nachschauen müssen und hier und da.
Nun sind es nur noch komplett neue Sachen die ich nachschlagen muss.

Mann fühlt sich halt nur so erschlagen im ersten Moment, aber das wird noch :)

Lg,
Mike
 

Network

Top Contributor
Ich sags mal so: Quaxlis Tutorial ist dafür ausgelegt um Leuten zu zeigen wie in etwa die Architektur eines Spiels aussieht und wo OOP seine Anwendung findet.

Die einzigen Sachen die man sich merken muss und in Quaxlis Tutorial überliefert werden sollen:
1. Keine JLabels oder sonstige Swingkomponenten und was es noch so gibt verwenden
-> Direkt auf einen Untergrund alles zeichnen

2. Die Programmarchitektur
-> Eine Spielschleife steuert alles! Erst alle Objekte berechnen, dann alle Objekte zeichnen, das ganze wiederholen in die Unendlichkeit.
(Du musst dir nichtmal die Schleife selbst direkt merken, nur ca. den Aufbau. Die Schleife aus Quaxlis-Tutorial ist sehr unperformant und wird eher selten in größeren Projekten verwendet.
Der Sinn dahinter bleibt aber immer derselbe: Irgendwie einen flüssigen Ablauf schaffen (Nicht mal schneller mal langsamer je nach Computerleistung))

3. OOP in der Spieleprogrammierung
-> Bspw. ein Strategiespiel hat Luft-, Land- und Seeeinheiten. Alle können sich bewegen, angreifen etc.... der einzige Unterschied ist, dass die einen sich an nur an Land, die anderen nur zu Wasser und die letzten überall sich bewegen können.
Jetzt müsste man in der Spielschleife theoretisch jedesmal 3 Listen durchgehen um alle 3 Objekttypen zu berechnen, dank richtiger Anwendung von OOP kann man ALLE Objekte in eine Liste stecken.
Das ist nur eins von unzähligen Beispielen.

Das sind so in etwa die 3 Topics die man aus der Anleitung mitnehmen sollte.
Soviel ist das dann garnicht.

Gruß
Net

PS: Wie gesagt: Übung macht den Meister! Als ich mit der Spieleprogrammierung anfing, wusst ich auch noch nicht wo hinten und vorne ist, nach der Zeit findet man jedoch heraus auf welche Dinge es ankommt und schwups entwickelt man auch schon eigene Ansätze für seine eigene Spielarchitektur.
 
Zuletzt bearbeitet:

Fu3L

Top Contributor
Bevor nun der Eindruck sich einbrennt, dass Blockwelten einfacher seien als andere Spiele, möchte ich kurz erläutern, warum das nicht der Fall ist:
Ein "normales" Spiel kann normalerweise auf viel bereits geleistete Arbeit zurückgreifen, zB in Form der umfangreichen Editoren von Unity, Unreal und Cry Engine (und immer besser auch dem Editor der JMonkeyEngine). Für Voxelwelten muss man derzeit noch sehr viel selbst machen.
Warum macht man sich dann überhaupt die Arbeit? Voxelwelten haben meist bessere Möglichkeiten beim Generieren, insbesondere, wenn die Welt 3Dimensional sein soll. Also mit Überhängen und Tunneln und allem drum und dran, am besten noch prozedural generiert. Da haben Voxelwelten Vorteile. (Und hier Betonung auf Voxel: Es muss am Ende nicht unbedingt ein Block raus kommen, sondern es kann auch glattes Terrain entstehen, man unterteilt nur beim Generieren/Platzieren und co die Welt in Blöcke)
 

the0MIKE

Mitglied
Verstehe, kommt natürlich dann immer darauf an, was man tatsächlich vorhat.

Wie gesagt werde das Tut mal fertig machen, und mir dann die Gliederung der Schritte rausschreiben ( also wirklich nur grob: Panel erstellen, Initalisierungs-Methode erstellen.. etc.) damit ich mich an der reihenfolge orientieren kann.
Und dann eben ein 2D clon ala "Zwergenweitwurf" machen.

Und wenn ich das mal verinnerlicht habe, werd ich mich vieleicht an 3D ranwagen.

So ne frage an die erfahreren Spiele Programmierer, wenn ihr euch an ein neues Spiel setzt, wie geht ihr ungefähr schritt für schritt vor?
Soll heißen macht ihr euch nen Plan vom spiel auf Papier was es später machen kann/soll oder fangt ihr einfach wild drauf an?

Mir geht es nur darum eine Struktur rein zubekommen :p

Thx,
Mike
 

Apo

Bekanntes Mitglied
Oh die Konzeptionsphase.

In der stecke ich auch grad mal wieder und ich versuche zum ersten Mal wirklich Papier und Stift zu verwenden bzw. ein Dokument zu erstellen, wo alles reinkommt UND was ich pflegen möchte. Ein lebendiges Dokument sozusagen.
Warum hat das einen Vorteil? Naja man macht sich viel mehr Gedanken und hinterfragt viel mehr, als wenn man gleich anfängt. Strukturen werden schneller klar und generell der Codeaufbau sollte sich dadurch verbessern. Aber das kann ich erst später genau bestätigen oder nicht.

Bis jetzt hatte ich eine Idee und habe sie in meinem Kopf reifen lassen, ohne etwas aufzuschrieben und habe dann begonnen zu programmieren. Für kleinere bisvielleicht noch mittlere Projekt ein probates Vorgehen, weil man schnell ein Ergebnis hat. Und jeder sollte wissen, wie wichtig das für die Motivation sein kann.
 

the0MIKE

Mitglied
ja stundenlang an etwas zu schreiben ohne wirkliches ergebniss ist doch recht dämpfend ...

Naja werd ich ja sehen wie es mir liegt, glaub da wird jeder seine mehr oder weniger eigene technik haben :)
 
F

Firephoenix

Gast
Gut für den Start waren bei mir Use-Cases. Dabei macht man sich automatisch Gedanken darüber welche Features man benötigt und wie sich das Spiel für den Anwender anfühlen soll.
Meistens merkt man dann auch recht schnell welche Anforderung wie schwer umzusetzen sein wird.

Wenn man alleine arbeitet und schon eine gute Vorstellung davon hat was man produzieren will kann man natürlich auch direkt loslegen mit dem Code, aber ein paar Notizen wo man nachschauen kann was man sich eigentlich mal dabei gedacht hat schaden nicht.

Gruß
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ZoXlike Audio Server selbst erstellen Spiele- und Multimedia-Programmierung 11
W Spiel-Grundlagen selbst austüfteln: Kollisionen? Spiele- und Multimedia-Programmierung 3
T Selbst-handelnde Objekte im Client-Server Betrieb Spiele- und Multimedia-Programmierung 9
Waljakov Grafikfunktionen selbst schreiben? Spiele- und Multimedia-Programmierung 6
LeleEdits Discord JDA nach Rolle suchen Spiele- und Multimedia-Programmierung 0
I Wie kann ich die Kreise nach jeweils 1s spawnen lassen? Processing Spiele- und Multimedia-Programmierung 1
dummycoders Android Studio - Button ändert Farbe erst nach Delay? Spiele- und Multimedia-Programmierung 5
A Spiel nach Abfrage beenden oder neustarten Spiele- und Multimedia-Programmierung 1
Blender3D VLCJ Video lässt sich nicht mehr abspielen nach mysql Installation Spiele- und Multimedia-Programmierung 1
M Kann nur nach rechts drehen Spiele- und Multimedia-Programmierung 7
S Quaxli's Heli Spiel läuft nicht nach Plan Spiele- und Multimedia-Programmierung 2
P Spiel laggt nach unbestimmter Zeit tierisch. Spiele- und Multimedia-Programmierung 27
B LWJGL StackOverFlow Problem nach 30sekunden. (Pong) Spiele- und Multimedia-Programmierung 2
A AffineTransform: Nach Drehen verschieben Spiele- und Multimedia-Programmierung 2
N JPanel Inhalt aktualisiert nach Thread.sleep nicht Spiele- und Multimedia-Programmierung 2
F Screenshot Programm nach Exception weiterlaufen lassen? Spiele- und Multimedia-Programmierung 9
D Java Variable nach String benennen Spiele- und Multimedia-Programmierung 13
A Minecraft SocketException nach Minecraft-Update Spiele- und Multimedia-Programmierung 6
M DataLine not supported nach 20 Minuten Spiele- und Multimedia-Programmierung 6
M Beim schießen richtet sich die Kugel nach der Maus aus (Quaternion) Spiele- und Multimedia-Programmierung 5
E Spiel startet nach exportieren nicht Spiele- und Multimedia-Programmierung 7
Gossi Quaxlis 2D Tutorial....Probleme nach hinzufügen der Kollisionsabfrage Spiele- und Multimedia-Programmierung 16
aze "verstümmelte Flächen" nach TransparenzInterpolation Spiele- und Multimedia-Programmierung 9
W JOGL bleibt nach display() in PaintArea.paintComponent hängen Spiele- und Multimedia-Programmierung 5
F Lichtspektrum dezimal nach RGB Spiele- und Multimedia-Programmierung 10
R Koordinaten, Breite, Höhe nach drehen berechnen? Spiele- und Multimedia-Programmierung 3
Apo ApoStarz - Bring die Sterne nach Hause Spiele- und Multimedia-Programmierung 19
M Sich nach links verschiebendes Bild Spiele- und Multimedia-Programmierung 2
D Zwei Fragen (Exponential Fog und Schein-nach-außen-Effekt) Spiele- und Multimedia-Programmierung 6
S Polygon bewegt sich nach mehreren aufrufen immer schneller Spiele- und Multimedia-Programmierung 3
M durchsichtiges Bild nach clearRect Spiele- und Multimedia-Programmierung 8
S drawString Befehl nicht ausgeführt nach transforming Spiele- und Multimedia-Programmierung 5
F Das SPiel ruckelt nach einer Zeit Spiele- und Multimedia-Programmierung 19
S Info+Taste nach oben. Spiele- und Multimedia-Programmierung 2
S Punkt berechnen, nach Rotation Spiele- und Multimedia-Programmierung 2
R Falsche Positionierung der Interpolatoren nach Verwendung Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben