Tag Archives: java

I’m making an iOS game: StarGame

Index:
How it all got started
“The game didn’t recognize any user input whatsoever”
Fast forward to half a year ago, …
Introducing StarGame for iOS.

To read more about my personal story of becoming a geek and iOS jailbreaker, this post might be interesting to you: Me, iDevices and Jailbreaking.

How it all got started


The project began about two years ago: as I was teaching myself how to program in Java, I decided to make a simple computer game to gain some actual coding experience. Its initial name was “SpaceGame”; I uploaded the very first teasers to my YouTube channel on the 13th of December 2013: Continue reading I’m making an iOS game: StarGame

StarGame Alpha v0.0.8 – “Perhaps the greatest update ever” (not)

I’ve spent the past (two hours) weeks (not) rewriting (but still) optimizing the code, as well as (actually) adding some (small but notable) new features that (do) make the game act and feel more like a game.

Major improvements include:

+ Revamped gameplay: you now have three lives, but crash instantly when hitting an Asteroid
+ Info Messages! …at game start, crash and game over! Your top score out of the three tries you had is displayed at the game over screen. Continue reading StarGame Alpha v0.0.8 – “Perhaps the greatest update ever” (not)

StarGame Alpha 0.0.7 – The “You crashed!” Update

You’re right. This update finally enables collisions with asteroids. YEHA!

Updates:

fixed collision checking, working and properly implemented now. You crash after the second collision with an asteroid and the game quits.

fixed alien hitbox: now all aliens you shoot do actually die!

+ fixed saving/loading mechanism: your score saves/loads on any operating system you might ever use!

Continue reading StarGame Alpha 0.0.7 – The “You crashed!” Update

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 😐