AntMe! Klon

Du hast eine Idee für ein Projekt?
Crazed
User
Beiträge: 171
Registriert: Sonntag 18. Mai 2008, 11:44

Ah, das ist gut zu wissen.

MfG,
CracKPod
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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).
Crazed
User
Beiträge: 171
Registriert: Sonntag 18. Mai 2008, 11:44

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
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.
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

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.
BlackJack

Heissen solche Ameisen dann nicht Würmer!? :-)
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Das ist doch auch ein Anreiz, programmieren zu lernen...
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

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()

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.
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Musstest du mich jetzt demotivieren :evil:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

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?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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?
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.
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

@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:
Gromit
User
Beiträge: 51
Registriert: Montag 8. Mai 2006, 19:07

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)..
Crazed
User
Beiträge: 171
Registriert: Sonntag 18. Mai 2008, 11:44

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten