Martin Lantzsch
Software Entwickler
18. Dezember 2011

Das nenne ich Fahrphysik

18. Dezember 2011 - Geschrieben von Martin - Keine Kommentare

var speed = 0.25;
var turnSpeed = 2;
 
function Update () {
	// drive ahead and back
	transform.Translate(0, 0, Input.GetAxis("Vertical") * speed);
	// turn around
	if(Input.GetAxis("Vertical") > 0) {
		transform.Rotate(0, Input.GetAxis("Horizontal") * turnSpeed, 0);
	} else if(Input.GetAxis("Vertical") < 0) {
		transform.Rotate(0, Input.GetAxis("Horizontal") * turnSpeed * -1, 0);
	}
}


Meine Basis Fahrphysik für Unity3D, das Auto bewegt sich schon mal, nun fehlt nur noch Beschleunigung, etc :D

Aber echt Klasse Unity, ich hab nun in 10 Minuten eine Welt geschaffen in der man mit einem Auto herumfahren kann, in der Zeit hätte ich mit herkömmlichen Methoden noch nicht mal die Grafikkarte initialisiert. Respekt.

16. Dezember 2011

nonsensetag

16. Dezember 2011 - Geschrieben von Martin - Keine Kommentare

Fundstück des Tages. Aus dem Papoo CMS Inhaltsparser Source Code.

if ($text_teil[1] != "<nonsensetag>")

Also von einem „nonesensetag“ hab ich ja noch nichts gehört, ihr?

7. Dezember 2011

NodeJS auf Windows installieren und nutzen

7. Dezember 2011 - Geschrieben von Martin - 4 Kommentare

Was unter Linux so leicht ist, ist unter Windows auch nicht viel schwerer, wenn man weiß wo man anpacken muss. Da NodeJS seit Version 0.6 einen Windows Build hat, muss man sich gar nicht mit kompilieren herumschlagen sondern kann es direkt per Setup installieren.
Den Download gibt es hier: NodeJS Windows installer
Das Setup verläuft wie jedes andere ganz unspektakulär. Das war es auch schon.

Die node.exe, also das Herzstück von NodeJS findet sich unter

C:\Program Files\nodejs\node.exe

Um effektiv mit NodeJS arbeiten zu können öffnen wir cmd und wechseln in dieses Verzeichnis. Für die Noobs ;-)

cmd.exe
cd C:\Program Files\nodejs\

Hier können wir nun mittels

node.exe

den Server starten. Es begrüßt uns ein Kommando Promt, in dem wir Befehle eingeben können. Wie zum Beispiel Console.Log()

console.Log('Hallo Welt');

Nun wird uns „Hallo Welt“ ausgegeben. Schön, nicht?

Aber jetzt ran an den Speck, wir legen uns nun irgendwo ein NodeJS Arbeitsverzeichnis an, in dem wir unsere JavaScript Dateien ablegen. Ich habe zum Beispiel unter „C:\Users\Martin\Documents\NodeJS\“ ein solches Verzeichnis. Darin erstellen wir uns eine Datei namens „helloWorld.js“

var http = require('http');
var server = http.createServer(function(req, res) {
	res.writeHead(200);
	res.end('Hallo Welt');
}).listen(8080);

Dieses Script lauscht auf den Port 8080 und gibt „Hallo Welt“ aus wenn eine Anfrage per HTTP kommt.
Um nun den Server mit diesem Script zu starten wechseln wir wieder zur Konsole und starten die node.exe folgendermaßen

node.exe C:\Users\Martin\Documents\NodeJS\helloWorld.js

Nun den Browser der Wahl öffnen und „localhost:8080“ in die Adresszeile eingeben und vòila

Hallo Welt

3. Dezember 2011

Morse Beeper

3. Dezember 2011 - Geschrieben von Martin - Ein Kommentar

Eben habe ich ein wenig mit der Console.Beep Funktion von C# gespielt und folgendes ist dabei rausgekommen:

Man kann Text ins Feld eingeben, welcher nach einem klick auf „Übersetzten“ in Morse Code übersetzt wird. Alternativ kann über die 3 Knöpfe „Kurz“, „Lang“ und „Pause“ selbst etwas zusammen gemorst werden. Bisher werden nur Buchstaben unterstützt, falls jemand will kann aber gern auch noch Zahlen implementieren.

Hier kann die .exe heruntergeladen werden: MorseBeeper.exe

Aber wie gesagt, nur eine Spielerei von mir, ich übernehme keine Garantie dafür, das der produzierte Morse Code fehlerfrei ist!

24. November 2011

Kein Kommentar

24. November 2011 - Geschrieben von Martin - 4 Kommentare

Anfänger wird immer und überall eingebleut „Kommentiert alles“, „Schreibt viele Kommentare, damit auch andere euren Code verstehen“.

Sorry, aber das ist Schwachsinn! Wenn mein Code schon so schlimm ist, das ich kommentiere muss was ich mache, sollte ich lieber zurück an ans Papier und alles noch mal überdenken. Code kann sprechen. Code kann sich selbst erklären. Wer sagt denn, das ich „kryptische“ Funktionsnamen vergeben oder lauter Abkürzungen schreiben muss? Am Ende holt es mich doch eh wieder ein, denn

  • Code lesen ist ansträngender
  • Klassenexplorer nahezu sinnlos
  • ständig am Suchen der entsprechenden Funktionen und Methoden um nachzuvollziehen was gemacht wird
  • Einarbeiten in den Code nur möglich wenn man alle Kommentare liest und versteht!

Warum also

// erzeuge neues Fenster Objekt aus dem System Objekt s
$win = $s->cwin();

da schreibt man doch gescheiter

$window = $system->createNewWindow();

Wer nun noch sagt aber der Kommentar ist auf Deutsch den versteh ich wenigstens, dem kann ich nur sagen – falscher Job ;-)

Das ganze soll aber nicht heißen, das man gar nichts mehr Kommentieren sollte. Stellen, die etwas Tricky oder vielleicht noch nicht ganz ausgereift sind, können gern mit einem kurzen und knackigen Kommentar versehen werden, der das Anliegen gut rüberbringt.

24. November 2011

Excel CSV, CSV phpMyAdmin

24. November 2011 - Geschrieben von Martin - Ein Kommentar

Aus Excel kann man ja schöne CSV Dateien exportieren, die man bequem weiterverwenden kann. Wie zum Beispiel mittels phpMyAdmin in eine MySQL Datenbank importieren.

Soweit klappt das auch ganz gut, wenn da nur die fiesen Umlaute nicht wären. Nach dem Import wird ein String entweder am Umlaut abgeschnitten oder selbiger fällt heraus. Um dies zu umgehen muss man in Excel das Sheet als UTF-8 Enkodiert exportieren. Doch importiert man es nun auch als UTF-8 kodiertes CSV mit phpMyAdmin hat man das selbe Fehlverhalten wie vorher.

Stellt man nun beim Import die Kodierung auf „latin2“ (auch bekannt als ISO 8859-2) um, sind die Umlaute da. Klingt komisch, ist aber so.

23. November 2011

Weniger ist manchmal mehr, oder wenn error_reporting nicht greift

23. November 2011 - Geschrieben von Martin - Keine Kommentare

error_reporting('E_ALL');

Klar, hiermit wird eigentlich dem PHP Interpreter gesagt alle auftauchende Fehler, Notizen, etc. anzuzeigen. Doch komischerweise bewirkt das bei manchen Hostern, das bei einem Fehler die Ausführung des Script’s „abstirbt“ und nur eine weiße Seite ausgegeben wird.

Haue ich nun diese Funktion raus, gibt es keine Probleme mehr und dank

ini_set('display_errors', 1);

sehe ich die Fehler dennoch.

13. November 2011

Hobby Browsergame Entwicklung – noch sinnvoll?

13. November 2011 - Geschrieben von Martin - 7 Kommentare

Wie die meisten hier sicher wissen entwickle ich mit Elan Hobbymäßig Browsergames und bin auch ziemlich aktiv in der Szene. Zumindest war ich das bisher immer. In letzter Zeit hingegen frage ich mich immer öfter ob es das überhaupt „bringt“. Ich meine es gibt so viele kommerzielle Browsergame Firmen – gut, ich kenne zwei an der Zahl – die ein ganzes Großraumbüro voller Entwickler haben, die Tag ein, Tag aus nichts anderes machen als Browsergames zu programmieren, Designer die Bilder einer Qualität machen die mich selbst mit den Ohren schnackeln lässt.

Die Browsergame Zielgruppe von heute (meiner Erfahrung nach Kinder zwischen 10 und 16) fahren voll auf so was ab. Spielinhalt der so primitiv wie nur irgendwie möglich sein kann, bombasitische realitätsfremde Bilder und Integration zu Fratzenbuch und Co mit an Bord.

Bei uns Hobby Entwicklern sieht es ganz anders aus. Wir Schustern an unseren Spielen ein paar Stunden die Woche, malen Bilder mit den selben Händen aus denen auch vorher der Code entsprang und wir betreiben Linux Server die wir uns gerade so von unserem Einkommen leisten können.

Doch wir stampfen Spiele aus dem Boden, die Spaß machen – vielleicht sind sie nicht so schön anzusehen, tut uns leid, wir sind nun mal keine Grafiker doch wir haben eine Idee, eine Vision, ein Ziel. Und das lautet nicht so viel Kohle mit den Nutzern wie nur irgendwie möglich zu machen, sondern ein Spiel an den Mann zu bringen das sich lohnt zu Spielen.

Aus diesem Grund, JA es lohnt sich Hobbymäßig Browsergames zu entwickeln. Einerseits hat die Welt dann wieder Spiele die sich lohnen zu spielen, andererseits lernt man dabei sehr viel, da dieses „Geschäft“ sehr Facettenreich ist.