knasan

Linux and more

Archiv für das Schlagwort “overlay”

Nutze deinen RAM

Warum man Ram statt Festplatte verwendet liegt eigentlich auf der Hand.
Ram ist 1000% schneller als eine Festplatte, sogar eine SSD muss sich hier geschlagen geben. Deswegen wollte ich mir ansehen, ob und wie es Möglich ist, StuntRally im Ram zu Spielen.

Als erstes versuchte ich mich an einer chroot Umgebung, diese war mir am Schluss viel zu groß und wirklich sauber hatte es noch nicht funktioniert. Bis mir eine Idee kam.

Der Kernel hängt ein Virtuelles Dateisystem unter /dev/shm ein. Dieses Dateisystem ist nichts anderes als ein teil des Arbeitsspeichers.

Ich erstellt ein Verzeichnis new_home in /dev/shm also Normaler User. Kopierte .config/stuntrally, .local/share/games/stuntrally und .cache/stuntrally hinein.

In einem Terminal exportierte ich nun meine Home Variable

export HOME=/dev/shm/new_home

und startete das Spiel.

Mir ist sofort aufgefallen, dass das Game viel flüssiger läuft.

Aus diesem Grund habe ich einen wrapper geschrieben, der alle Daten von Suntrally nach /dev/shm/ Synchronisiert und beim beenden wieder nach sein Home.

Mein Ebuild habe ich ein neues USE-Flag spendiert das diesen Wrapper auf Wunsch Installiert.

Für alle die gerne diesen Wrapper verwenden möchten, aber kein Gentoo/Funtoo nutzen, hier das wrapper-script.

suntrally_wrapper

#!/bin/bash

#-------------------------------------------------------------------------------
# Author: Sandy Marko Knauer
# Email: knamarksan@gmail.com
# URL: https://knasan.wordpress.com/2013/02/09/nutze-deinen-ram/
# Description: StuntRally synchronizes files to StuntRally in memory to execute.
# Version: 0.0.1
# License: GNU GPL-v3
#-------------------------------------------------------------------------------

tmpfs=$(grep -c "/dev/shm" /proc/mounts)

new_home="/dev/shm/$USER"_new_home
old_home="$HOME"

if [ $tmpfs = "0" ]; then
echo "/tmp is not as a tmpfs filesystem"
exit
fi

stuntrally_cache=".cache/stuntrally/"
stuntrally_config=".config/stuntrally/"
stuntrally_local=".local/share/games/stuntrally/"

mkdir -p $new_home || exit
mkdir -p $new_home/$stuntrally_cache || exit
mkdir -p $new_home/$stuntrally_config || exit
mkdir -p $new_home/$stuntrally_local || exit

if [ -d $HOME/$stuntrally_cache ]; then
rsync -a --progress $HOME/$stuntrally_cache $new_home/$stuntrally_cache || exit
else
mkdir -p $HOME/$stuntrally_cache || exit
fi

if [ -d $HOME/$stuntrally_local ]; then
rsync -a --progress $HOME/$stuntrally_local $new_home/$stuntrally_local || exit
else
mkdir -p $HOME/$stuntrally_local || exit
fi

if [ -d $HOME/$stuntrally_config ]; then
rsync -a --progress $HOME/$stuntrally_config $new_home/$stuntrally_config || exit
else
mkdir -p $HOME/$stuntrally_config || exit
fi

export HOME=$new_home
/usr/bin/stuntrally

rsync -a $new_home/$stuntrally_local $old_home/$stuntrally_local --numeric-ids --progress --delete || ex>
rsync -a $new_home/$stuntrally_config $old_home/$stuntrally_config --numeric-ids --progress --delete || ex>
rsync -a $new_home/$stuntrally_cache $old_home/$stuntrally_cache --numeric-ids --progress --delete || ex>

rm -r $new_home

Hier nochmal ein direklink auf die Datei, da leider die Formatierung verloren geht. https://github.com/knasan/ebuilds/blob/master/games-sports/stuntrally/files/stuntrally_wrapper

StuntRally unterliegt der GNU/GPL-v3, deswegen habe ich mich auch für diese Lizenz entschieden.

-Sandy

Advertisements

Stuntrally, Spaß mit Linux

Die Macher von Stuntrally haben ganze Arbeit geleistet. Bisher das Beste Rally Spiel unter Linux was ich gesehen habe, Spaß ist hier vorprogrammiert. Lange habe ich nach ein Game gesucht das so süchtig machen kann wie Stuntrally.

Wer einen Joystick besitzt und mit diesen spielen möchte, kein Problem. Ich verwende zum Beispiel mein Gampad von einer PS3.

Leider gab es für dieses Spiel kein gentoo Ebuild, also musste ich selbst Hand anlegen und eines schreiben. Manchmal ist das ein unterfangen das sehr viel Zeit und Mühe kostet, aber man ist natürlich auch Stolz auf sein Ebuild.

Ich möchte euch nun ein paar Bilder zeigen, wer gerne mal ein Rennen Fahren möchte und auf gute Grafik nicht verzichten möchte, ist mit Stuntrally bestens bedient.

01232013_233842007

Es gibt eine ganze Menge an Stecken die man Fahren kann. Von Leicht bis Schwer, aufwendig oder einfach, es ist für jeden etwas dabei.

Was mit sehr gut gefällt sind Loopings

Runde mit Loopings

Hier sehr schön zu sehen, die Macher von Stuntrally haben sich sehr viel Mühe gemacht. Es macht nicht nur Spaß dieses Spiel zu Spielen, sondern es ist auch noch schön es anzusehen.

Ähnlich wie bei Need for Speed, boost für alle.

Boost für alle

Rein in den Looping aber mit Speed. Es ist nicht immer einfach die Balance zu halten.

Bodenhaftung nicht immer gegeben.

Bodenhaftung nicht immer gegeben.

Ist man zu schnell unterwegs, kann es passieren das man abhebt.

01232013_232505389

Wie man hier gut sehen kann, ist die Auslastung am Rechner gering, es kommt natürlich auf dem Rechner an.

01232013_232925200

Die Strecken Bauer haben sich vieles einfallen lassen. Fahren in einer Winterlandschaft gibt einen erst den richtigen kick.

01232013_233047187

Driftet man um die Kurven gibt es satte Punkte. Es gibt Verschiedene Techniken dies zu tun. Ob man die Handbremse benutzt oder doch einfach Normal auf die Bremse Tritt kostet etwas Strecken Erfahrung und man muss auch das Auto etwas besser Kennenlernen.

01232013_234455545

Ist man im Single Modus die Runde einmal durchgefahren, bekommt man besuch von Ghost.

01232013_234318455

01232013_234531144

Alle Wagen müssen Wasserdicht sein, oft geht man ungewollt Baden wenn man vom Weg abweicht. Es gibt aber auch Strecken wo man sogar gezwungen wird durchs Wasser zu Fahren. Manchmal können diese auch Tief sein. Hängt man fest, kommt man nur mit Flippen des Wagens wieder raus. Manchmal aber auch nicht!

01232013_234311564

Ich finde, es ist wirklich ein sehr gutes Spiel geworden. Nicht nur spielerisch der Steuerung sondern die Grafik allein macht schon sehr viel her.

Jetzt möchtest du natürlich auch dieses Game haben, was ich gut Verstehen kann, dann habe ich eine sehr gute Nachricht für dich. Einen Ebuild für gentoo gibt es auf meinem github Account.
Wenn du mein Ebuild verwendest und Fehler findest, dann melde dich bei mir, damit ich darüber Informiert bin und es beheben kann.

Da es wirklich nicht einfach war, möchte ich den Kompliziertesten Teil des Ebuilds hier kurz verewigen.

src_unpack() {
  git-2_src_unpack
  EGIT_REPO_URI="git://github.com/stuntrally/tracks.git"
  EGIT_SOURCEDIR="${S}/data/tracks"
  git-2_src_unpack

  mkdir ${MYBUILD_DIR}
  [ -d ${S}/data/tracks/.git ] && rm -r ${S}/data/tracks/.git
}

Das Ebuild für Stantrally ist ein Live Ebuild. Dies bedeutet dass alle benötigten Daten vom Server via „git“ abgeholt werden.
Stuntrally benötigt zwei „git“ zweige. Im ersten Zweig ist das Spiel an sich und im zweiten teil, wie hier zu sehen, die Strecken (tracks).
Um jetzt nicht zwei Ebuilds schreiben zu müssen und auch nicht ständig die ganzen 395 MB zu downloaden zu müssen, suchte ich nach eine Möglichkeit diese in einem Ebuild zu verpacken.

Nach etwa drei Tagen ist mir eine Lösung gelungen.

1. Noch bevor src_unpack aufgerufen wird, wurde EGIT_REPO_URI auf das git vom eigentlichen Spiel gesetzt: git://github.com/stuntrally/tracks.git
2. git-2_src_unpack Klont das Repository auf Festplatte und entpackt es.
3. Die Variable EGIT_REPO_URI wird nun auf die Tracks gesetzt und erneut mit git-2_src_unpack heruntergeladen und entpackt.
Die Variable EGIT_SOURCEDIR sollte normal nicht gesetzt werden, aber es ist natürlich problematisch beide Repos in einem Verzeichnis zu Klonen.
Deswegen habe ich diese gesetzt, damit die Quellen immer lokal auf Platte beleiben und bei einer Neuinstallation nicht ständig gelöscht wird und somit jedes mal 395 MB gesaugt werden muss.

Das Ebuild kennt ein USE-Flag, editor.
Setzt man dieses Flag, bekommt man ein Spiele Editor Installiert, was ich mir jedoch noch nicht genau angesehen habe.
Wer dieses Game mag, wird sicherlich früher oder Später eigene Strecken bauen wollen.

Wie oben kurz erwähnt, das Ebuild findet Ihr auf mein Github Account https://github.com/knasan/ebuilds.
Hierfür richtet man sich am besten ein Lokales Overlay ein, hierzu benötigt man Layman. Am besten einfach kurz nach gentoo layman suchen, dann findet man sehr schnell Informationen wir man sich ein Lokales Overlay einrichtet.

Viel Spaß beim Zocken!

Sandy

Ebuild Repository auf github.com/knasan

Hi,

ich habe mich dazu entschlossen meine Ebuilds auf Github zu veröffentlichen.
Wenn ein Ebuild fertig ist und ich davon überzeugt bin das einige von diesem Ebuild Profitieren, werde ich dieses Ebuild auch auf Flora Veröffentlichen.
Flora ist ein Community Repository für Funtoo-Linux.

Flora Wiki

Der Grund warum ich zuerst alle in einem Extra Repository pflege ist folgender.

1. Ich kann in Ruhe, ohne mir Gedanken machen zu müssen, an meine Ebuilds Arbeiten und mir auch mal einen Fehler gönnen ohne das mir jemand Böse ist 🙂
2. Alle Ebuilds die ich hier veröffentliche sind Experimentell, dies bedeutet dass in einen oder anderen Ebuild Fehler vorhanden sein können die noch nicht gelöst wurden.
Oder einfach noch nicht ausreichend getestet werden konnte, so das ich mir noch nicht zu 100% sicher sein kann, ob dieses Ebuild funktioniert.
3. In Flora sollen nur neue Ebuilds erstellt werden, Ebuilds die auf bugs.gentoo.org eingereicht wurden oder schon im Offiziellen Portage vorhanden sind sollen dort nicht veröffentlicht werden (wenn ich es richtig verstanden habe).
4. Kann mein eigenes Profil pflegen, was gleichzeitig mein Lokales Privates Overlay ist. Was mir viele Optionen offen lässt, die man bei ein Gemeinsames Projekt nicht hat.

Sobald neue Ebuilds auf meinem Git Account hinzugefügt wurde, werde ich in dieser neuen Rubrik darüber schreiben.
Ich erhoffe mir, das Interessierte, über diesen Blog mit mir Kontakt aufnehmen werden.
Sei es um mir Bugs oder Anregungen mitzuteilen. Ich bin offen für alles was noch kommen mag.

Sandy

Beitragsnavigation

%d Bloggern gefällt das: