Seite 1 von 3
"fl0w in games" clone
Verfasst: Montag 12. März 2007, 16:41
von Dill
ihr kennt sicher:
http://intihuatani.usc.edu/cloud/flowing/
wenn man keinen extrafetten rechner hat, lässt sich das nicht wirklich flüssig durchspielen.
ich denke es wäre gut machbar das mit pygame und evtl. pyode nachzubauen.
Re: "fl0w in games" clone
Verfasst: Montag 12. März 2007, 17:04
von Leonidas
Dill hat geschrieben:wenn man keinen extrafetten rechner hat, lässt sich das nicht wirklich flüssig durchspielen.
Ist der Laptop der neben mir steht extrafett? Also auf dem lies es sich ganz angenehm spielen - und ich muss zugeben, ich konnte gar nicht mehr aufhören (hab die Schlange durchgespielt aber als Qualle ist der Endgegner wirklich hart).. Kenne es von der letzten c't, wo einige Spiele dabei waren.
Mit Pygame sowas zu machen stelle ich mir vergleichweise unbequem vor - Pygame (oder genauer SDL) hat einige Sachen die wirklich unangenehm sind, man muss also öfters um die Bugs herumarbeiten.
Verfasst: Montag 12. März 2007, 17:23
von apollo13
Hmmm, irgendwie find ich keine Viecher mehr...
Und was ist mit "+ makes your current body segment evolve" gemeint, funktioniert bei mir irgendwie nicht?!
Verfasst: Montag 12. März 2007, 17:40
von BlackJack
Also ich sitze hier an einem 1 Ghz Athlon, damit ist es unspielbar. Soviel zum Thema extrafetten Rechner.

Verfasst: Montag 12. März 2007, 17:41
von Leonidas
apollo13 hat geschrieben:Hmmm, irgendwie find ich keine Viecher mehr...
Wenn du alle gegessen (in dem Kontext wäre das Wort assimilieren gut platziert) musst du auf diesen (ich glaube roten) Marker schwimmen, dann kommst du eine Ebene runter. Habe keine Anleitung gelesen, daher hat es erst etwas gedauert, bis ichs raus hatte.
Verfasst: Montag 12. März 2007, 18:42
von Dill
leonidas, du hast auf hoher qualität keine probleme wenn diese dicken viecher kommen?
ich hab hier massives ruckeln mit meinem athlon 3000+.
habe aber auch keine gescheite grafikkarte (radeon 9200), aber da es flash ist solte das doch eher unwichtig sein.
Mit Pygame sowas zu machen stelle ich mir vergleichweise unbequem vor - Pygame (oder genauer SDL) hat einige Sachen die wirklich unangenehm sind, man muss also öfters um die Bugs herumarbeiten.
was würdest du denn alternativ vorschlagen?
das spiel ist ja nicht sonderlich komplex, kann mir kaum vorstellen, dass SDL damit probleme hat. (was daran liegen könnte, dass ich es noch nie benutzt habe

)
EDIT: komplette regeln gibts hier:
http://jenovachen.com/flowingames/forum ... c.php?t=74[/b]
Verfasst: Montag 12. März 2007, 18:56
von BlackJack
SDL bietet keine Vektorgrafik und das Spiel scheint da Wert drauf zu legen. Tkinter-Canvas oder Cairo würden sich vielleicht anbieten. Falls die denn hübsch bzw. schnell genug sind.
Verfasst: Montag 12. März 2007, 19:34
von apollo13
@Dill: Danke für die Regeln
Auf meinem Laptop läuft es flüssig:
Intel Core 2 Duo 2,0 Ghz 4mb Cache
Geforce Go 7700 512mb
Wundert mich allerdings nicht wirklich, sonst würde ich mir wirklich sorgen machen....
Verfasst: Montag 12. März 2007, 20:23
von Y0Gi
Auf meinem Pentium M mit 1.50 GHz läuft das wunderbarst. Und ja, es ist cool
Allerdings habe ich irgendwann mangels Futter und entsprechend Evolution abgebrochen; dass es einen Endgegner gibt, wusste ich nicht. Allerdings war da noch ein anderes Vieh so wie ich, mit dem ich mir immer gegenseitig dieses "Dinger" vom Leib gefressen habe.
Verfasst: Montag 12. März 2007, 22:01
von Leonidas
Dill hat geschrieben:leonidas, du hast auf hoher qualität keine probleme wenn diese dicken viecher kommen?
ich hab hier massives ruckeln mit meinem athlon 3000+.
habe aber auch keine gescheite grafikkarte (radeon 9200), aber da es flash ist solte das doch eher unwichtig sein.
Nein, da der Laptop recht ähnlich ausgestattet ist wie der von apollo13: Core 2 Duo T5500 (1,66 GHz), GeForce Go 7600 (nichts besonderes, mir war nur wichtig dass es eine nVidia ist, weil ich mir die ATI-Scherereien unter Linux sparen will) und 2 GB RAM.
Auf dem anderen Rechner ist ein Athlon 1700+, aber dort will ich mir Flash gar nicht erst antun.
Y0Gi: Die Aufgabe ist es ja, die anderen Dinger zu fressen - ganz

Verfasst: Dienstag 13. März 2007, 01:28
von Dill
Ist der Laptop der neben mir steht extrafett?
ja
> is there an extension for SDL available to handle some
> kind of vector graphics? For example for animated,
> colored fonts?
There's SDL_svg for SVG image rendering. It was dead for a while,
but then picked back up
http://lists.libsdl.org/pipermail/sdl-l ... 52386.html
das wäre doch die richtige antwort auf die flash-version
Im tutorial von cario wird nur geizeigt, wie man cairo-grafiken in dateien schreiben kann (pdf, svg), aber man kann es auch über SDL nutzen:
Drawing with cairo to an SDL Surface can be tricky.
Pygame (oder genauer SDL) hat einige Sachen die wirklich unangenehm sind, man muss also öfters um die Bugs herumarbeiten.
Könntest du etwas genauer sagen, was da problematisch ist, das projekt würde ja keine übermässigen anforderungen an SDL stellen.
Verfasst: Dienstag 13. März 2007, 09:45
von Dill
habe mal cairo + pygame getestet. irgendwie ist das zu lahm, oder ich mache was falsch.
Code: Alles auswählen
import cairo
import pygame
import array
import math
def draw(surface, dim):
x, y, radius = dim
ctx = cairo.Context(surface)
ctx.set_line_width(15)
ctx.arc(x, y, radius, 0, 2.0 * math.pi)
ctx.set_source_rgb(0.8, 0.8, 0.8)
ctx.fill_preserve()
ctx.set_source_rgb(1, 1, 1)
ctx.stroke()
def input(events):
for event in events:
if event.type == pygame.QUIT:
sys.exit(0)
else:
print event
#Create Cairo Surface
Width, Height = 512, 512
data = array.array('c', chr(0) * Width * Height * 4)
stride = Width * 4
#init PyGame
pygame.init()
window = pygame.display.set_mode( (Width,Height) )
screen = pygame.display.get_surface()#Draw with Cairo
y = 0
x = 0
while True:
input(pygame.event.get())
surface = cairo.ImageSurface.create_for_data (data, cairo.FORMAT_ARGB32,Width, Height, stride)
x = x + 5
y = y + 5
draw(surface, [x,y,200])
#Create PyGame surface from Cairo Surface
image = pygame.image.frombuffer(data.tostring(),(Width,Height),"ARGB",)
#Tranfer to Screen
screen.blit(image, (0,0))
pygame.display.flip()
Verfasst: Dienstag 13. März 2007, 18:41
von Leonidas
Dill hat geschrieben:Pygame (oder genauer SDL) hat einige Sachen die wirklich unangenehm sind, man muss also öfters um die Bugs herumarbeiten.
Könntest du etwas genauer sagen, was da problematisch ist, das projekt würde ja keine übermässigen anforderungen an SDL stellen.
Also den Rotationssupport kannst du zum Beispiel vergessen, denn wie ich festgestellt habe kann SDL nicht gut rotieren - man sollte ein Surface nie mehr als zwei mal rotieren, weil die Qualität darunter stark leidet (habe mal ein Sechseck rotiert, nach einigen Rotationen sah es
so aus. Ich habe das letztendlich in den Griff bekommen, aber als Python-Programmierer ist man nicht gewöhnt unelegante Lösungen zu implementieren.
Verfasst: Dienstag 13. März 2007, 18:57
von BlackJack
Das war jetzt aber kein Beispiel für Deine doch recht harte Aussage. Das die Rotation nix taugt steht AFAIK sogar in der Doku. Damit wäre es dokumentiertes Verhalten und kein Bug.
Verfasst: Dienstag 13. März 2007, 19:31
von Leonidas
Ok, die Aussage ist vielleicht zu hart geraten, mag sein. Ich habe etwas mit Pygame gespielt, so als Einstieg und auch etwas zum ausspannen. Es gibt aber einige Pygame-Spiele die sogar ziemlich süchtig machen. Ansonsten finde ich aber Pygame ein wenig eingeschlafen, wie SDL eigentlich auch. Man kann da doch einige kleine Details nachbessern, die es angenehmer zu nutzen machen würden.
BlackJack hat geschrieben:Damit wäre es dokumentiertes Verhalten und kein Bug.
Ich habe mal in die Dokumentation zu Pygame geschaut und konnte dazu nichts finden. Das man einen Fehler dokumentiert macht es auch nicht sonderlich besser. Ist jetzt meine Meinung als Pygame-Anwender. Würde mich mehr darüber freuen wenn es gescheit funktionieren würde, als über einen zusätzlichen Satz in der Dokumentation. Aber das ist eher eine Sache der SDL.
Verfasst: Dienstag 13. März 2007, 21:34
von BlackJack
Also ich meinte, dass die Qualität eines rotierten Bildes nicht besonders ist, das würde ich nicht als Bug bezeichnet. Ist halt einfach nur ein einfacher Algorithmus.
Dein Bild sieht so aus, als wenn nicht beachtet wurde, dass die rotierten Bilder grösser sind als das Ausgangsbild.
Verfasst: Dienstag 13. März 2007, 22:54
von Leonidas
BlackJack hat geschrieben:Dein Bild sieht so aus, als wenn nicht beachtet wurde, dass die rotierten Bilder grösser sind als das Ausgangsbild.
Du hast recht - in der Anfangsphase habe ich das wirklich nicht beachtet. Später aber schon, nur davon habe ich dann keine Bilder mehr. Inzwischen funktioniert das ja auch passabel, nachdem ich eine Kopie des ungedrehten Bildes immer gespeichert habe und für jede Rotation das Ursprungsbild rotiere.
Verfasst: Dienstag 13. März 2007, 23:17
von BlackJack
Das hätte man aber auch bei einem besseren Algorithmus so gemacht. Jede Rotation ist verlustbehaftet.
Verfasst: Dienstag 13. März 2007, 23:26
von Leonidas
BlackJack hat geschrieben:Das hätte man aber auch bei einem besseren Algorithmus so gemacht. Jede Rotation ist verlustbehaftet.
Ok, hast Recht.
Was mir aber jetzt so einfällt: an dieser Stelle hätte man auch Pygame intelligenter machen können, so dass es das speichern und rotieren im Hintergrund selbst macht. Ich sehe darin eigentlich keine größeren Nachteile. Die Rotationsfunktion würde dadurch hochwertiger scheinen als sie ist.
Verfasst: Mittwoch 14. März 2007, 10:55
von Y0Gi
Mach doch!
