[Java] Hazelcast JUnit Tests

Ich habe mich früher oft gefragt, wie man Hazelcast JUnit Test schreibt.

Heute will ich euch eine kurze, aber knackige Antwort darauf geben.

 

Wer Hazelcast nicht kennt:

Hazelcast ist eine In-Memory-Data Grid, also eine der schnellsten (angeblich sogar die schnellste) NoSQL Datenbanken, die es derzeit auf dem Markt gibt.

Allerdings speichert Hazelcast die Daten per Default nur “In Memory”, also nur im RAM. Da es aber mehrere Hazelcast Nodes (Server) im Cluster geben sollte, können mehrere Hazelcast Server ausfallen, ohne dass dabei Daten verloren gehen. Bei Pentaquin nutzen wir Hazelcast derzeit vorallem als Cache für schnelle Zugriffszeiten, die ein 2D MMORPG dringend benötigt.

Continue reading

[Java] Ist eine Java HashMap Thread Safe?

Ist eine Java HashMap Thread Safe?

HashMap Code

In diesem Artikel wollen wir uns einmal damit beschäftigen, ob die Map Implementierung HashMap<Key,Value> Thread Safe ist. Sicherlich habt ihr auch schon einmal von einer ConcurrentHashMap gehört und euch gefragt, was denn jetzt der Unterschied zwischen diesen beiden ist. Auch gibt es bei einigen immer wieder etwas Verwirrung, weil man immer mal was von 16 Locks im Zusammenhang mit einer HashMap gehört hat. Heute wollen wir das Rätsel einmal auflösen.

Continue reading

[Android] Cyanogenmod wird eingestellt

Cyanogenmod wird eingestellt!

CyanogenMod Logo

Erst vor kurzem habe ich in einem Artikel über den neuesten Nightly Build von CyanogenMod (einer Custom ROM für Android) berichtet und vor ein paar Tagen habe ich dann erfahren, dass Cyanogenmod, Deutschlands beliebteste Custom ROM für Android spätestens am 31.12.2016 eingestellt wird.

 

Der Hintergrund ist, dass die Firma Cyanogen Inc., die CyanogenMod federführend entwickelt und auch die (Server) Dienste & Nightly Builds für diese Android Modifikation bereitgestellt hat, geschlossen wird, wie im Original Blogpost von der Firma beschrieben.

Continue reading

[Android] Bildschirm aktiv lassen

Android Robot

Wer kennt es nicht? Man ist gerade dabei jemandem etwas auf dem Android Handy oder Tablet zu präsentieren, hat dieses dazu auf den Tisch gestellt und nach ein paar Sekunden oder Minuten geht einfach der Bildschirm aus.

Dabei ist es ganz einfach, eine Art “Präsentationsmodus” zu simulieren, sodass dieser an bleibt.

 

Dazu geht man in die Einstellungen unter “Display” und sucht dann die Option “Ruhezustand”, welche man dann auf “nie” stellen muss.

Und schon bleibt der Bildschirm an, bis man diese Option entweder wieder umstellt oder den Power Button wie gewohnt betätigt.

 

 

Continue reading

[OpenGL] Vertex Buffer Object & Vertex Array Object – Was ist das?

Was sind eig. OpenGL Vertex Buffer Objects & Vertex Array Objects – kurz: VBOs und VAOs?

Gerade absolute OpenGL Neulinge haben es recht schwer, sich in die Materie von OpenGL einzuarbeiten, da immer wieder neue Begriffe auftauchen, die Anfänger verwirren lässt. Aus diesem Grund habe ich heute einmal einen kleinen Artikel verfasst, wo diese beiden Begriffe kurz erklärt werden.

 

Vorerst ein paar kurze Informationen vorab:

Die Grafikkarte kennt nur 3D Objekte, welche dann für unseren Bildschirm in 2D umgerechnet werden. Außerdem kennt die Grafikkarte nur 3 Ecke & 4 Ecke – wenn ihr also einen Baum darstellen wollt, oder sogar eine Kugel, bestehen diese Objekte aus lauter kleinen Triangles (Dreiecken) & Quads (Vierecken).

 

Hier mal eine untexturierte Kugel (erstellt mit Blender):

3D Kugel

Continue reading

[Java] Neue 2D (RPG) Game Engine – Version 1.0.1 (Alpha) released!

Derzeit arbeite ich u.a. an einer neuen Java 2D Game Engine, da die alte Java Game Engine Slick2D leider schon lange nicht mehr weiterentwickelt wird.

Auf der Java Seite gibt es aktuell leider kaum wirkliche Alternativen im 2D Bereich (mir fallen spontan nur libGDX und jMonkeyEngine ein).

libGDX konnte mich dabei aktuell noch nicht wirklich überzeugen (vorallem was die Performance angeht – hier habe ich einige Blicke “unter die Haube”, also in den Code geworfen…) und sowohl libGDX als auch jMonkeyEngine 3D Game Engines sind, die zwar einen 2D Mode besitzen, aber eher für 3D und weniger für 2D ausgelegt und somit auch eher dafür optimiert wurden. Auf dem Markt habe ich daher schon lange nach einer guten und kostenlosen Java 2D Game Engine gesucht, aber bin bisher nicht fündig geworden.

Nun habe ich die Sache selbst in die Hand genommen und arbeite aktuell an einer neuen 2D Game Engine, in der Programmiersprache Java 8 geschrieben, die zwar vorrangig für 2D RPG Spiele ausgelegt sein soll, aber auch andere Spiele unterstützen wird. Diese soll quasi eine Alternative zu libGDX & jMonkeyEngine schaffen und für 2D & Computer Plattformen optimiert sein.

JuKuSoft Java 2D Game Engine

Continue reading

[Tutorial Serie] LWJGL 3.1.0 & GLFW (mit OpenGL) – Teil 1

In dieser neuen Tutorial-Serie soll uns einmal um die Lightweight Java Game Library 3 (kurz: LWJGL 3) gehen, eine Library für Java um 3D und 2D Spiele entwickeln zu können. Dabei werden allerdings OpenGL oder Vulkan vorausgesetzt. LWJGL soll den Zugriff auf OpenGL, OpenAL und OpenCL, sowie seit neuestem auch auf Vulkan Funktionen erleichtern und euch eine Menge Arbeit abnehmen. In diesem Tutorial soll es uns aber nur um OpenGL gehen.

LWJGL Logo

Continue reading

[Android] CyanogenMod 14.1 (Nightly Build) erschienen

CyanogenMod Logo

CyanogenMod zählt zu den sog. “Custom ROMs” von Android, also angepasste Android Versionen, die von der Community bereitgestellt werden.

Quasi eine Firmware für euer Smartphone.

Am 08.11.2016 ist von CyanogenMod die erste 14.1 Nightly Build Version erschienen, die Android 7.1 entspricht. Diese soll – trotz Nightly Build – einigen Angaben nach schon recht stabil sein. Es wurden allerdings noch nicht alle Funktionen von Android 7.1 umgesetzt – die Community werkelt noch daran.

Continue reading