Java Nebenprojekt #1: “Parkhaus”

Willkommen zu einer neuen Post-Reihe über kleinere Java-Nebenprojekte. Hier stelle ich kurz und prägnant vor, was ich so außer StarGame in Java mache.
Diese Projekte entstehen teilweise im Zusammenhang mit aktuellem Stoff im Informatikunterricht in der Schule. So auch das erste Projekt, über dass ich heute schreiben werde:

Continue reading Java Nebenprojekt #1: “Parkhaus”

StarGame Alpha V0.0.6

Updates:

+ added another kind of alien: green ones are bad (shoot them and you get points), blueish ones are good (don’t shoot – deduct points)

+ added saving and loading mechanism:

  • score is saved each time the player reaches the right end of the stage (level)
  • save file is at “C:\Users\*username*\Documents\StarGameSave.txt”
  • score is loaded from file every time the game starts

+ added sound feedback: when you shoot, a shooting sound plays

* internally added crashing mechanism (not yet active though)

* many improvements, bug fixes and optimizations (including window flickering)

How to play:

The key bindings are as follows

  • Arrow keys – move ship (white rectangle
  • Page up – activate weapons
  • Space key – shoot

Go to the right end of the window to complete the stage.
The game counts your score. When killing a green alien, you get 100 points. When killing a cyan alien, you lose 100 points. When completing a stage, your get 10 points and your score is saved.

Continue reading StarGame Alpha V0.0.6

SpaceGame Alpha Snapshot v0.0.00.0.00000.1.42

Today, I am releasing a special preview (“snapshot”) of my work-in-progress Java game called “SpaceGame”.

Hiermit veröffentliche ich im Rahmen einer außerordentlichen Vorschau die neueste, stabile Version meines “SpaceGame” Java-Spiels!

Screenshot / Bildschirmfoto

>>>download<<<

Key bindings:

Arrow keys – move ship (white rectangle)
Page up – cheat
Page down – spawn alien (green triangle)
Space – fire (currently only works after cheating!)
Escape – quit game

Tastenbelegung:

Pfeiltasten – Raumschiff bewegen (weißes Rechteck)
Bild auf – schummeln/cheaten
Bild ab – Alien erzeugen
Leertaste – schießen (funktioniert im Moment nur nach cheaten!)
Escape (Esc) – Spiel verlassen

System requirements:

– latest version of Java
– fast graphics-card with a minimum of 1 TB of memory (less memory and integrated cards might cause lag!)
– at least 9 GB of RAM (less might cause lag, too!)
– 20 GB of free hard drive space

Systemvoraussetzungen:

– neueste Java-Version
– schnelle Grafikkarte mit min. 1 TB Speicher (Bei weniger könnte es u. U. ruckeln!)
– min. 9 GB Arbeitsspeicher (Bei weniger könnte es u. U. ruckeln!)
– 20 GB freier Festplattenspeicher

Java, Objective-C, HTML – oder: Wie ich zum Geek wurde, Teil 1

Wer mich fragt, was ich denn programmieren kann, der bekommt diese drei Namen genannt:

Java, Objective-C, HTML

Ich möchte in diesem Post ein wenig zu meinem werden als Geek
loswerden, und gleichzeitig auf diese drei Programmiersprachen eingehen.

Java

             Java ist eine objektorientierte Programmiersprache, die auf allen gängigen Betriebssystemen läuft, und somit eine sehr kompatible Lösung zur Programmierung darstellt. Nachteil: sie ist auf keinem Betriebssystem die “Muttersprache”, muss also in einer virtuellen Umgebung laufen, was letztendlich zu Leistungseinbußen führt.

Das erste mal kam ich mit Java in Kontakt, als ich im Sommer 2011 über einen Schulfreund von “Minecraft” erfuhr.
Zunächst beachtete ich das Spiel nicht wirklich. Ich hatte mir ein paar Screenshots und Let’s Plays angeschaut und war nicht sonderlich angetan, spielte ich doch gerade SimCity und Need For Speed (die scheinbar eine bessere Grafik hatten und spannender wirkten).
Das Minecraft-Fieber packte mich erst ein paar Wochen darauf, als ich es bei meinem Freund selbst ausprobieren konnte. Am nächsten Nachmittag bat ich meine Eltern, über ihr PayPal-Konto das Spiel für mich zu kaufen.
Da die Standard-Funktionen ein Jahr später langweilig wurden, fing ich an, Erweiterungen (Mods) zu installieren und kam in Kontakt mit Java. Das Installationsprogramm für den Mod war keine “.exe” Datei, wie ich sie von allen anderen Programmen kannte, sondern “.jar”. Die kleine Kaffeetasse fiel mir auch sofort ins Auge.

Dieser erste Eindruck einer universalkompatiblen Entwicklungsumgebung war allerdings weitestgehend negativ. Das Spiel stürzte öfters ab, hinterließ fehlerhafte Spielstände und die Modifikationen wollten auch nicht so recht. Dazu kam noch, dass mein Rechner (damals ein Fujitsu Scaleo P mit Pentium 4) nicht der schnellste war, und Java die ohnehin schon begrenzten Ressourcen dahin-fraß wie nix.

Ich erinnere mich noch, wie ich das Spiel alle 5 Minuten neu startete, weil es langsam geworden war. Heute weiß ich: der Rechner packte einfach die steigende Menge an zwischengespeicherter Spielwelt nicht.

Doch der Minecraft-Hype ebbte ab, der fünfte selbstbezahlte Server wurde abbestellt und anderes aktueller und wichtiger.

Java ist erst seit kurzem, genauer, seit September des vergangenen Jahres ein Thema, da wir im Informatikunterricht dieses Jahr endlich mal was gescheites durchnehmen, Java-Programmierung. Auch, wenn, wie in vielen anderen Bereichen auch, nur eine abgespeckte Variante in der Schule beigebracht wird, war es für mich der Anstoß, mit dem Programmieren wieder anzufangen (Kontext bei Objective-C).

Seitdem arbeite ich privat an dem Projekt “SpaceGame”.
Es soll einmal ein 2D-von-der-Seite (Sidescroller) Shoot ’em up werden, in dem der Spieler versucht, entgegenkommenden Asteroiden und Aliens auszuweichen und letztere dabei abzuschießen. Ich habe ein Video auf meinem Youtube-Kanal veröffentlicht, das einen kleinen Einblick in das Spielprinzip (schießen) gibt (Es ist leider veraltet und zeigt nicht den aktuellen Stand!).

Objective-C

Das ist mal eine schwere Sprache!
…zumindest für Quereinsteiger (wie mich).
           Objective-C ist eine Programmiersprache, in der unter Apples Betriebssystemen Mac OS X und iOS Programme geschrieben werden.

Seit meinem zehnten Lebensjahr, genauer, seit September 2009, bin ich (wahrscheinlich) unwiderruflich im Apple-Universum gefangen.
Es passierte zum deutschlandweiten Verkaufsstart der dritten Generation iPod Touch. Im Fernsehen wurde die “mobile Spielekonsole” massiv beworben, und schnell war für mich klar: das ist ein Must-Have! So war ich stolzer Besitzer eines Apple-Gerätes, und meine Ver-apple-lung nahm ihren Lauf. Über die vierte Generation  bis hin zu meinem aktuellen Gadget, dem “iPod Touch 5G 32GB schwarz” “iPad Mini mit Retina Display Schwarz und Silber 16GB WLAN” ist dieser Prozess so weit fortgeschritten, dass ich bei Ausfall der iCloud am Rande der Existenz stehen würde (das ist natürlich übertrieben , aber es wäre durchaus ein sehr großer Verlust!).
Zwischenzeitlich besaß ich auch ein weißes Plastik-MacBook (Bild/Video), welches mir gute Dienste leistete.

Zu Objective-C fand ich, … tja, wenn man das so genau wüsste…
Die wahrscheinlichste (und nebenbei bemerkt, die einzige in meiner Erinnerung überlieferte) Theorie hierzu ist, dass Papa mir während irgendwelchen doch zu langen Ferien sein iPad mit einem iOS-App-Programier-eBook für Quereinsteiger  in die Hand drückte (vielen Dank an dieser Stelle nochmal an den Autor, Kevin McNeish), mit dem ich mich zum iOS-Entwicklungs-Einsteiger mauserte, und mit dem zweiten Buch der Serie auch endlich ans Eingemachte ging. Leider habe ich in letzter Zeit (1/2 Jahr) nichts mehr in dieser Richtung gemacht (habe andere Projekte am laufen).
Zu meiner eigenen App-Idee sage ich nur so viel: es soll eine Fitness-App sein, in der man sich Trainingpläne zusammenstellen, und diese interaktiv mit Unterstützung des iPhones ausführen kann.

HTML

         Das gute alte HTML ist die Grundlage des World Wide Web und damit die Grundlage jeder Internetseite (auch dieser) (!).

Ähnlich wie bei Java und Objective-C kam der Anstoß hierbei von Schule und Elternhaus: ein paar Monate, bevor ich mich auch in der Schule damit beschäftigen werden würde, bekam ich von Papa ein Buch namens “HTML for Kids” zum Geburtstag (?), welches ein sehr guter Einstieg in die Materie war. Mit Notepad und Internet Explorer bewaffnet zog ich also los und arbeitete mich durch immerhin die Hälfte der Kapitel und baute ein gutes Grundwissen auf, das ich bis heute behalten habe. Auf meiner Festplatte lagern immernoch einige HTML-Ordner, die ich aus nostalgischen Gründen noch nicht entfernt habe.

Von den drei Sprachen gefällt mir Java am besten, obwohl Objective-C wahrscheinlich extrem cool ist, wenn man es kann, und HTML (die einfachste der drei) auch seine reize hat, vor allem als Einstieg in die Welt vom Programmieren.

Ich kann übrigens auch etwas mit SQL anfangen, da es in der Schule 1/2es Jahr lang Thema war. Allerdings könnte ich es in keiner Form irgendwie implementieren, sondern nur Abfragen durchführen.
Schulkenntnisse eben 😐

My Camera

Overview

For Christmas, I got a Sony Cyber-Shot DSC-HX50V Digital Camera. It features a great 20 MP sensor with good low-light performance, 30x optical zoom, 1080p AVCHD video recording with stereo sound and many fancy capture modes and manually adjustable settings.
In addition, it is capable of Wi-Fi photo transfers and features automatic GPS geotagging.

A First Look

The camera, turned on. One can see the zoom lens.
The Sony DSC-HX50V after unboxing.

What’s in the box?

Next to the device itself, there is a *huge* manual in way too many languages, a USB cable and charging adapter, a wristband and the rechargeable battery. Nothing ground-breaking. Note that there is no SD Card included (!).

The Device

Holding it in my hands for the very first time was a great experience.
It feels to extraordinary good, I almost forgot it is plastic. Every detail, from the adjusting wheels over buttons to just the housing – all of it feels very high-grade and valuable.

First Snaps

That doesn’t stop at performance: the camera starts up relatively quickly and takes amazing images at up to 20 megapixels. Colors appear vivid on the 3″ high-resolution display and navigating through the menus is very comfortable and easy thanks to nice UI design and a lot of on-screen help texts. The so-called “In-Camera Guide” is nicely designed, too. No need for that chunk of a manual 😉 .
The few videos I recorded are of very high quality and rival the framerate of professional camcorders. However the “movie” button, which triggers video recording from anywhere, is poorly positioned. I found myself accidentally recording minutes of video after holding it wrong (not kidding, the button is where one would naturally place one’s thumb).

Wi-Fi picture transfer is very simple, I was able to copy photos to my iPhone from scratch in a matter of minutes using the PlayMemories Mobile app. Remote controlling the camera is fun, too.

Resumé

The Sony DSC-HX50V is a solid digital camera that satisfies all your needs in photography at this price level.
If you’re looking for a nice companion to your DSLR or a nice and easy-to-use beginners camera that still has lots of manual options, this model is what you’re looking for.

Links

Official Sony Product Page (Germany)
Official Sony Product Page (UK)
Amazon Offer (Germany)

Amazon Offer (UK)

Welcome to CONATH!

CONATH Photographer / Programmer / Musician
CONATH Logo

This is a blog about photography, tech, music and the world.
The main author is Christoph Parstorfer (here: “chris”, elsewhere “conath”), a 15 years old geek who likes traveling, watching movies and (obviously) dealing with computers.
Next to school, his photostream and a soundcloud page, he runs the Twitter account and the website.

Check out his personal site at c0nath.tumblr.com.