Game-Rendering

Hey Leute, ich habe vor - bzw. bin dabei - ein Spiel zu programmieren. Ich habe allerdings bei einer Sache ein Problem und hoffe, dass ihr mir helfen könnt! :)

Und zwar ist es in meinem Programm so, dass alle Grafiken in je ein zweidimensionales Integer-Array in form von RBG-Werten gespeichert wird. Also natürlich eigentlich Integers, die die RGB-Werte repräsentieren. Diese Arrays werden dann "zusammengebastelt" so, dass ich ein großes Array habe. Dieses Array - bzw. die RGB-Werte - werden dann Pixel für Pixel auf ein BufferedImage gebracht und dieses wird am Ende ausgegeben.

Den wirklichen Erfolg in der Performance bringt das - wie in Videos und Texten beschworen - allerdings nicht. Mir ist klar, dass bei jedem Frame hunderttausende Schleifendurchläufe stattfinden müssen bei dieser Methode. Trotzdem wird einem dies immer wieder empfohlen.

Habe ich das Prinzip nicht wirklich verstanden oder mache ich einfach Programmtechnisch was falsch oder vielleicht auch beides? :D

Ich hoffe, dass ihr mir da helfen könnt! :)
 
Zuletzt bearbeitet:

Gucky

Top Contributor
Wo wird das empfohlen? Ich habe das noch nirgendwo gesehen.

Intern wird die Grafik als WritableRaster dargestellt. Wenn du direkt ein Raster (Superklasse von WritableRaster) setzen kannst und nicht den Umweg über das Array machst, dann macht das schon Sinn.
 

Major_Sauce

Bekanntes Mitglied
Nabend,

macht auf jeden Fall Sinn, wenn man das richtig macht.
2-Dimensionale Arrays sind hierfür aber schon mal ein ganz falscher Ansatz, die dinger sind viel zu langsam.

Du kannst aber aus einem Eindimensionalen Array einen "Zweidimensionalen" machen, das geht so:

Java:
int[] pixels = new int[width * height];

//pixel an der position (10 | 25):
int pixel10_25 = pixels[10 + 25 * width];

Dadurch kannst du das auf einem schnelleren Weg machen.

Insgesamt bringt das Render-System durchaus Vorteile mit sich, die Performance hat sich bei mir um etwa 30% verbessert.
Trotzdem würde ich für Spiele eher JavaFX empfehlen.

So habe ich das ganze gelöst:
https://bitbucket.org/indieversestu...Major_Sauce/Game/ScreenManager.java?at=master

mfg Major
 

Bananabert

Bekanntes Mitglied
in java bringt dies kaum einen vorteil mit sich. sobald das raster per hand verändert wird, wird/kann gar nicht bis selten das image optimiert werden. somit liegt dies im ram und wird von der cpu gerendert.

falls du wirklich das rendern selber übernehmen möchtest, schau dir VolatileImages, DoubleBuffering und OpenGL-Based Pipeline mal an.
 

Major_Sauce

Bekanntes Mitglied
Würde ich gar nicht behaupten, man muss nur geschickt rendern.
Wichtig ist, dass man nur das rendert, was wirklich gerendert werden muss.
Ich kenne Leute, die Rendern 10 Objekt und malen danach noch fröhlich irgend welche Sachen davor.
Nehmen wir als Beißpiel ein Kinderzimmer.
Wenn du einfach sagst du renderst alle Spielzeuge die auf dem Boden liegen und dann malst du noch einen Schrank, welcher wohl 7 von 10 Spielzeugen verdeckt, dann ist dies nicht effizient.
Immer erst schauen was denn überhaupt gesehen werden kann, ist es überhaupt auf dem Bildschirm oder ist es drüber, drunter, links, rechts davon, wird es durch ein anderes Objekt verdeckt ect.
Es hört sich vielleicht falsch an, denn das sind schon ein paar abfragen und man könnte denken dass es schneller geht einfach zu rendern und fertig, doch dies ist fast nie der Fall.
 

Finalspace

Mitglied
Warum nicht direkt die Pixel über getRaster().getData() holen und diese Frame für Frame manipulieren?Kann man auch entsprechend mittels Multithreading optimieren (Tiled-Rendering) falls man Performanceprobleme hat.Eignet sich hervorragend für nen Subpixel-Software-Renderer ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Spider game, Ist es verloren? Spiele- und Multimedia-Programmierung 4
J SNAKE-GAME-LOOP / (Applet zu Application) Spiele- und Multimedia-Programmierung 4
P Snake Game Verbessern Spiele- und Multimedia-Programmierung 15
E Organisation für Game Spiele- und Multimedia-Programmierung 1
G [Game-Multiplayer] Welt vom Server zum Client senden. Spiele- und Multimedia-Programmierung 0
C 3d Game Engine : PERFORMANTE Räumliche Verdeckung Spiele- und Multimedia-Programmierung 5
R Durch String Platform Game erstellen Spiele- und Multimedia-Programmierung 8
G Component System Java 2D Game LibGDX Spiele- und Multimedia-Programmierung 6
G Collision Detection in einem 2D Sandbox Game. Spiele- und Multimedia-Programmierung 2
J Problem mit Game Of Life Spiele- und Multimedia-Programmierung 3
B "Snake"-Game Logikfehler Spiele- und Multimedia-Programmierung 1
R Game Loop verhält sich eigenartig Spiele- und Multimedia-Programmierung 1
H Game Crash Spiele- und Multimedia-Programmierung 7
B Game of Life: Was mache ich falsch? Spiele- und Multimedia-Programmierung 3
$ Einstieg in Java Game Development Spiele- und Multimedia-Programmierung 11
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
BraunBerry Java Game verbesserte Kollisionserkennung Spiele- und Multimedia-Programmierung 18
BraunBerry Java Game Waypoint System Spiele- und Multimedia-Programmierung 3
T Moddable Game Spiele- und Multimedia-Programmierung 6
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
I 2D-Side-Scrolling-Game in Chunks splitten Spiele- und Multimedia-Programmierung 9
Z 2D Pixer art RPG Game - Alpha auf Indie DB spielbar Spiele- und Multimedia-Programmierung 0
F Game of Life Spiele- und Multimedia-Programmierung 1
S Game/Cheat Spiele- und Multimedia-Programmierung 20
wolfgang63 Mit JavaFX einfaches Game programmieren Spiele- und Multimedia-Programmierung 5
D Textfield im Game ,Problem: while-Schleife Spiele- und Multimedia-Programmierung 3
O Pause Menu im 2D Game, bitte um Rat! Spiele- und Multimedia-Programmierung 4
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
K Online Game? Spiele- und Multimedia-Programmierung 1
R Game Loop scheitert.. Spiele- und Multimedia-Programmierung 2
Androbin Verschwindender Spieler in 2D-Game Spiele- und Multimedia-Programmierung 7
Sogomn Game Loop Spiele- und Multimedia-Programmierung 2
M Jump 'n' Run Game - Blöcke? Spiele- und Multimedia-Programmierung 7
J Verständnissfragen zur Game-Loop Spiele- und Multimedia-Programmierung 2
N Game GUI Programmieren Spiele- und Multimedia-Programmierung 16
Black_ixx ManaWar Action Game Spiele- und Multimedia-Programmierung 5
M Multiplayer-Game auf Website Spiele- und Multimedia-Programmierung 2
M Multiplayer Game mit Frontend auf HTML5 - ohne ständigen Client Request - Möglich?! Spiele- und Multimedia-Programmierung 12
P Mein Android Game Spiele- und Multimedia-Programmierung 3
N Animationen für ein 2D game Spiele- und Multimedia-Programmierung 6
S Problem mit Zeitsteuerung der Game Loop Spiele- und Multimedia-Programmierung 4
Kenan89 Kleines Game Spiele- und Multimedia-Programmierung 26
M Vektor Game Spiele- und Multimedia-Programmierung 13
F Bot updaten von einem Browser game Spiele- und Multimedia-Programmierung 7
Samake03 [Game]"Plumbo - Lost in Depth" Preview und Fragen Spiele- und Multimedia-Programmierung 18
K Game Engine für selbstprogrammiertes Spiel Spiele- und Multimedia-Programmierung 27
A Music für Android game Spiele- und Multimedia-Programmierung 3
A Wie wird die Person im Game animiert, dass sie ihre Körperteile bewegen? Spiele- und Multimedia-Programmierung 3
K 3D Game wie Minecraft Spiele- und Multimedia-Programmierung 3
T Torquemada´s erstes Game (Pong) Spiele- und Multimedia-Programmierung 5
X Möglichst komplette 2D Game Engine? Spiele- und Multimedia-Programmierung 12
Kr0e Red Dwarf Game Server Spiele- und Multimedia-Programmierung 5
M Euer erstes Game Spiele- und Multimedia-Programmierung 16
M Netzwerk-Game mit UDP Spiele- und Multimedia-Programmierung 8
ruerob Eure Meinung über Applet-game Spiele- und Multimedia-Programmierung 12
J das erste Game Spiele- und Multimedia-Programmierung 2
M Einen Hobby Game - / Grafik Designer zu finden (Screenshot vom Spiel) Spiele- und Multimedia-Programmierung 7
S Game Client für kleine Competition Spiele- und Multimedia-Programmierung 3
J 2D-Game-Engine? Spiele- und Multimedia-Programmierung 2
F Game mit LWJGL/JOGL in executable JAR packen, wie? Spiele- und Multimedia-Programmierung 6
P 2D Game - Alternative zur TileMap? Spiele- und Multimedia-Programmierung 2
W Memory Game Spiele- und Multimedia-Programmierung 4
Steev EGE - Easy Game Engine Spiele- und Multimedia-Programmierung 2
Developer_X X-Shooter Game Spiele- und Multimedia-Programmierung 21
C 2D Multiplayer Game Spiele- und Multimedia-Programmierung 5
O Mein erstes Game Spiele- und Multimedia-Programmierung 10
Developer_X PingPong-the Game by Developer-X Spiele- und Multimedia-Programmierung 170
K My First Game "ORB" vielen Dank Quaxli Spiele- und Multimedia-Programmierung 23
hdi Das java-forum.org 2D-Game Projekt/Tutorial Spiele- und Multimedia-Programmierung 6
hdi Quiclix : Game download Spiele- und Multimedia-Programmierung 5
A Java 2D Game Spiele- und Multimedia-Programmierung 4
K Game-Tutorial von Quaxli Fragen Spiele- und Multimedia-Programmierung 18
G Suche passende Game api Spiele- und Multimedia-Programmierung 9
K Java Game Programming Buch Spiele- und Multimedia-Programmierung 3
C Hilfe bei einfachen Game Spiele- und Multimedia-Programmierung 15
L Kleines RTS Game -> Netzwerkproblem Spiele- und Multimedia-Programmierung 5
P Suche Leute für ein Hobby-Projekt (Browser Game) Spiele- und Multimedia-Programmierung 4
Q online game programieren Spiele- und Multimedia-Programmierung 8
G Welche Game Api Spiele- und Multimedia-Programmierung 9
S 3d applet - online game Spiele- und Multimedia-Programmierung 4
C Open-Source Game Spiele- und Multimedia-Programmierung 2
sparrow 3D-Game-Engine Spiele- und Multimedia-Programmierung 20
J Isometric Tile Game (x,y) inklusive Z cordinaten? Spiele- und Multimedia-Programmierung 2
M Java online multiplayer game Spiele- und Multimedia-Programmierung 2
J java netzwerk strategie game programmiert Spiele- und Multimedia-Programmierung 4
D Jump and Run Game -- Kollisionsabfrage Spiele- und Multimedia-Programmierung 30
B Snake-Game fürs Handy Spiele- und Multimedia-Programmierung 3
F Online Game mit Java? Spiele- und Multimedia-Programmierung 11
M Space PingPong Game --> Performance ok? Spiele- und Multimedia-Programmierung 44
R 2D Game Oberfläche. Wie am besten? Spiele- und Multimedia-Programmierung 2
H LWJGL - Lightweight Java Game Library! Ist Java3D jetzt out? Spiele- und Multimedia-Programmierung 4
E Rendering order auf einem ismetrischen Grid Spiele- und Multimedia-Programmierung 8
T Java3D Rendering Problem Spiele- und Multimedia-Programmierung 7
E Active Rendering im FSEM auf ein JPanel? Spiele- und Multimedia-Programmierung 4
Steev Software Rendering Spiele- und Multimedia-Programmierung 3
Z JME - Rendering in BufferedImage Spiele- und Multimedia-Programmierung 14
S Spline Rendering? Spiele- und Multimedia-Programmierung 4
R Offscreen Rendering Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben