Seite 1 von 3

Verfasst: Dienstag 20. Mai 2008, 16:10
von Crazed
Ah, das ist gut zu wissen.

MfG,
CracKPod

Verfasst: Dienstag 20. Mai 2008, 16:27
von Hyperion
Wäre es nicht einfacher das ganze per Netzwerk-Interface zu realisieren? Somit wäre man Client-seitig Plattform unabhängig und man müßte sich nicht ums "sandboxed" kümmern ...

Allerdings gibts da ja schon Sachen, auch wenn mir der Name nicht einfällt momentan (findet man aber unter freshmeat iirc).

Verfasst: Dienstag 20. Mai 2008, 16:51
von Crazed
Hyperion hat geschrieben:Wäre es nicht einfacher das ganze per Netzwerk-Interface zu realisieren? Somit wäre man Client-seitig Plattform unabhängig und man müßte sich nicht ums "sandboxed" kümmern ...

Allerdings gibts da ja schon Sachen, auch wenn mir der Name nicht einfällt momentan (findet man aber unter freshmeat iirc).
Sandboxed? In wie fern? Python ist doch so oder so cross-platform?...

Wenn dir der Name einfällt poste ihn bitte.
MfG,
CracKPod

Verfasst: Dienstag 20. Mai 2008, 20:42
von BlackJack
Ich denke Hyperion meint, das man die KI-Progrämmchen in Sandboxen laufen lassen sollte, da man sonst schummeln kann und einzelne Ameisen einfach in die Spiellogik eingreifen können.

Wenn man also nicht auf den Sportsgeist der Ameisenprogrammierer vertrauen möchte, bietet es sich an das Spiel als Server zu implementieren, so dass die Ameisen nicht mehr auf Interna zugreifen können.

Verfasst: Dienstag 20. Mai 2008, 20:50
von Jan-Peer
Schlimmer noch: Fiese Ameisen, die durch das Dateisystem krabbeln. Und die dann irgendwo auf eine "Mod"-Seite hochladen, damit sie sich auch schön verbreiten können.

Verfasst: Dienstag 20. Mai 2008, 21:15
von BlackJack
Heissen solche Ameisen dann nicht Würmer!? :-)

Verfasst: Dienstag 20. Mai 2008, 21:32
von Trundle
Das ist doch auch ein Anreiz, programmieren zu lernen...

Verfasst: Mittwoch 21. Mai 2008, 10:30
von Imperator
Da ich gerade von meinem Spiel gefrustet bin, und etwas abwechslung benötige, mache ich mich daran mal einen Singleplayer prototypen zu entwickeln. Vielleicht klappts, vielleicht auch nicht. :P

Verfasst: Mittwoch 21. Mai 2008, 12:04
von Hyperion
http://realtimebattle.sourceforge.net/
Den meinte ich glaub ich :-)

http://www.bluefire.nu/droidbattles/index.html
Der hier hat wohl eher Ähnlichkeit mit eurer Idee

Und dann gabs da noch einen in Ruby ... aber den find ich grad nicht.

Verfasst: Mittwoch 21. Mai 2008, 12:37
von Imperator
So, das absolute Grundgerüst habe ich fertig:

ki.py:

Code: Alles auswählen

import pygame

def walk_x(rect):
    rect = rect.move(1, 0)
    return rect

def walk_y(rect):
    rect = rect.move(0, 1)
    return rect
snake.py:

Code: Alles auswählen

import pygame, ki

class snake():

    def __init__(self):
        self.image = pygame.image.load('Hopsy.bmp')
        self.rect = self.image.get_rect()

    def KI(self):
        pass #it`s your turn ...
snakeme.py:

Code: Alles auswählen

import pygame
from pygame.locals import*
from snake import snake

pygame.init()
size = width, height = 900, 700
screen = pygame.display.set_mode(size)
black = 0, 0, 0
screen.fill(black)
snake = snake()
while True:
    for event in pygame.event.get():
        if event.type == KEYDOWN and event.key == K_ESCAPE:
            pygame.quit()
    snake.KI()
    screen.blit(snake.image, snake.rect)
    pygame.display.flip()


Verfasst: Mittwoch 21. Mai 2008, 13:11
von BlackJack
Und jetzt bitte alles was mit `pygame` zu tun hat raus nehmen. Wenn Du Spiel und GUI nicht sauber trennst, brauchst Du IMHO gar nicht erst anfangen.

Verfasst: Mittwoch 21. Mai 2008, 13:50
von Imperator
Musstest du mich jetzt demotivieren :evil:

Verfasst: Mittwoch 21. Mai 2008, 17:05
von Leonidas
Imperator hat geschrieben:Musstest du mich jetzt demotivieren :evil:
Es ist nun mal so, dass wenn du Logik und darstellung vermischt sich das zu einem Maintenance-Alptraum entwickelt und der Code dann für niemandem mehr von nutzen sein kann.

Verfasst: Mittwoch 21. Mai 2008, 17:30
von Imperator
Die Leute die es benutzen verwenden dann ja nur noch snake.py wo sie die Ki reinschreiben. Snakeme.py wird nur noch per Doppelklick gestartet. Also was habt ihr?

Verfasst: Mittwoch 21. Mai 2008, 19:19
von Hyperion
Naja, niemand kann dich zwingen mit sauberen Konzepten zu programmieren, aber man kann dich ja darauf hinweisen ;-) Uns trennt man Logik und Darstellung sauber, ist es eben eine saubere Lösung. Nebenbei: Wieso sollte ich unter Linux eine xyz.exe starten wollen?

Verfasst: Mittwoch 21. Mai 2008, 22:49
von BlackJack
@Imperator: Wenn man GUI und Spiellogik trennt, kann man neben einer 2D-GUI mit PyGame auch eine mit Tkinter drauf setzen oder eben auch 3D mit OpenGL oder einem anderen 3D-Toolkit. Und das, ohne dass man am Spielcode selbst etwas ändern muss.

Zumindest für einen Klon vom Original AntMe! dürfte eine Tkinter-GUI übrigens für den Anfang einfacher sein, weil die API sehr nach Vektorgrafik aussieht.

Verfasst: Donnerstag 22. Mai 2008, 10:05
von Imperator
@hyperion: Wie meinst du das mit xyz.exe? Wer hat was von exe gesagt?

@BlackJack: Ok, jetzt kommts: Ich kenne mich kein bisschen mit Tkinter aus :oops: Deshalb mach ich es mit Pygame :lol:

InronPython?

Verfasst: Donnerstag 22. Mai 2008, 12:52
von Gromit
Nachdem Lesen der AntMe!-Startseite, hab ich mich gefragt, ob man nicht einfach ein AntMe!-SDK für IronPython bauen kann. (Mit allen den (Nach|Vor)teilen die Windows-Programme so haben)..

Verfasst: Donnerstag 22. Mai 2008, 14:01
von Crazed
Aber Iron Python ist doch eigentlich kein "echtes" Python, oder doch? Ich dächte das wäre sowas wie ein Mashup aus net und Python, oder ist das einfach nur Python mit ein paar net framework klassen erweitert?

MfG,
CracKPod

Verfasst: Donnerstag 22. Mai 2008, 14:12
von Leonidas
Crazed hat geschrieben:Aber Iron Python ist doch eigentlich kein "echtes" Python, oder doch?
Wieso sollte es kein echtes Python sein? Es ist eine Python-Implementation in C#, die auf .NET-Klassen zugreifen kann, was eine recht coole Sache ist. Ich denke sie sind momentan auch weiter als Jython es ist.