#pydesw: Softwareprojekt Jump 'n' Run

Du hast eine Idee für ein Projekt?
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

Ohne Erfahrung wird man sich eh an Beispielen lang hangeln.
Für das Level habe ich mir auch eine flache Datei vorgestellt.

Für das Projekt nehmen wir Python 3.5.2 und Pygame 1.9.2a0?
Also aktueller gäng es dann nicht.

Pfeiltasten + Leertaste für den Anfang sind Pflicht :lol:
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

sebastian0202 hat geschrieben:Für das Projekt nehmen wir Python 3.5.2 und Pygame 1.9.2a0?
Also aktueller gäng es dann nicht.
Aber das allerneueste hat nicht immer jeder installiert. Die dritte Ziffer sollte egal sein, weil sie für ein Bugfix-Release steht und normalerweise zu keinen Inkompatibilitäten führen kann. Etwas, wo ein "a" drinsteht, finde ich für den Produktiv-Betrieb ganz schlecht, weil es sich dabei um eine Alpha-Version handelt, bei der sich auch schnell mal was ändern kann.

Ich schlage daher Python 3.4 als Mindestvoraussetzung vor. Python 2.7 würde ich jetzt einfach mal außen vor lassen. Dann müssen wir auch keinen nervigen Kompatibilitäts-Code einbauen. Und für PyGame können wir ja die 1.9 erwarten. Bei den Packages ist es ja nicht so gravierend, wenn man notfalls ein Update auf eine neuere Version durchführen muss.

Denkbar für Windows wäre auch eine Version, die mit Py2Exe (oder ähnliches) erstellt wurde. Aber das kann man auch später noch entscheiden.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Übrigens hier ein kleines Tutorial, das für Physik-Noobs wie mich beschreibt, wie man das Springen der Spielfigur implementiert:
https://pythonspot.com/en/jump-and-run-in-pygame/
Py19917062
User
Beiträge: 113
Registriert: Freitag 30. Januar 2009, 00:53
Wohnort: Dortmund
Kontaktdaten:

@BlackJack: Könntest du noch bitte snafu zur Organisation hinzufügen? Sein GitHub-Name ist seblin.
Py19917062
User
Beiträge: 113
Registriert: Freitag 30. Januar 2009, 00:53
Wohnort: Dortmund
Kontaktdaten:

Soweit ich weiß ist pygame nur mit python2.7 kompatibel. Um es für 3.x zu installieren ist mehr Aufwand nötig. Für einen normalen Client ist es wahrscheinlich eine Zumuntung den Aufwand für ein Jump'n'Run zu betreiben. Was ist den an python2.7 auszusetzen?
Benutzeravatar
Kebap
User
Beiträge: 686
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Py19917062 hat geschrieben:Soweit ich weiß ist pygame nur mit python2.7 kompatibel. Um es für 3.x zu installieren ist mehr Aufwand nötig.
PyGame FAQ - Does Pygame work with Python 3 sagt:
Yes. Pygame 1.9.2 supports Python 3.2 and up. Only the orphaned _movie module (not built by default) does not.
Woher stammt denn deine Info?
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Py19917062
User
Beiträge: 113
Registriert: Freitag 30. Januar 2009, 00:53
Wohnort: Dortmund
Kontaktdaten:

Kebap hat geschrieben:Woher stammt denn deine Info?
Das ist mein letzter Stand aus persönlicher Erfahrung. Aber dann hat sich das auch geklärt. Bleiben wir bei python3.4 und pygame1.9.2.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich konnte es problemlos mittels ``pip3 install pygame`` installieren. Ich habe damit ja auch das oben beschriebene Spiel zum Laufen gekriegt. Die Info ist offensichtlich veraltet.
Pygoscelis papua
User
Beiträge: 206
Registriert: Freitag 13. März 2015, 18:36

Ich habe auch schon mal ein kleines Jump 'n' Run ähnliches Spiel in Python3 programmiert, mit pygame. (war mein erstes Programm mit GUI :))


@BlackJack
Py19917062 hat geschrieben:@BlackJack: Könntest du noch bitte snafu zur Organisation hinzufügen? Sein GitHub-Name ist seblin.
ich habe ihn in der Organisationsgruppe bisher nicht gefunden.

@sebastian0202 hast du den Pullrequest gesehen? :)

So ich denke das mit den Versionen ist jetzt gegessen. Was kommt jetzt?
import this
hidden python features

JAVA = Just Another Vulnerability Announcement :D
BlackJack

@Pygoscelis papua: Man kann keinen hinzufügen, nur einladen. Zum annehmen der Einladung kann ich den Benutzer nicht zwingen. :-)
Py19917062
User
Beiträge: 113
Registriert: Freitag 30. Januar 2009, 00:53
Wohnort: Dortmund
Kontaktdaten:

Wer hat den von den Projektbeteiligten schon Erfahrung mit Projektplanung?
Kann dieses Wiki als Leitfaden benutzt werden?

Wir haben bis jetzt die Grundidee.
sebastian0202 hat geschrieben:Was soll das Programm leisten, welche Funktionen hat es?

Für unser erstes kleines Projekt würde ich ein Jump 'n Run Spiel in 2D vorschlagen.
Damit das nicht zu groß wird, habe ich an einer Art sich wiederholendem Level gedacht.
(Weniger Grafiken die gemacht werden müssten)
Einfach 3-4 kleine unterschiedliche Levelstrecken die sich zufällig wiederholen.
Dazu eben kleine Elemente. Vielleicht ein Item,
dass eventuel die Sprunghöhe verändert oder die Geschwindigkeit.
Oder eben ein Gegner.
Als Sahnehäubchen mit Multiplayer.

Gerne auch andere Ideen.
Und wir haben ein Musterbeispiel.
snafu hat geschrieben:Ich bin gerade bei den PyGame-Projekten auf Piexel gestoßen:
http://pygame.org/project-Piexel-2994-.html

Das ist ein Spiel mit sehr minimalistischer Grafik, bei dem man ein Quadrat von einer Seite zur anderen steuern muss und dabei nach und nach mehr Hindernisse pro Level überwinden muss. Das Design für die jeweiligen Level liegt als simple TXT-Datei vor, wo verschiedene Buchstaben für die unterschiedlichen grafischen Elemente stehen und aneinander gereiht sind. Wenn also "B" für einen quadratischen Block steht, dann wäre "BBB BBB" zum Beispiel der Boden mit einer Lücke zum Drüberspringen.
Was wäre der nächste Schritt?
Pygoscelis papua
User
Beiträge: 206
Registriert: Freitag 13. März 2015, 18:36

Also diese Wiki-Seite ist denke ich sehr gut zur Orientierung geeignet,
Ich denke wir sollten zunächst einmal festlegen, wo dieser Projektplan als Datei hinterlegt wird,
und wer diesen betreut. Vielleicht sollten wir wirklich mit der Rollenverteilung anfangen, also hier viewtopic.php?f=6&t=38890 fortsetzen.
import this
hidden python features

JAVA = Just Another Vulnerability Announcement :D
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

@Pygoscelis papua Den Request habe ich gesehen :-) Gleich mal *gemerged*
Unser Projekt hat jetzt hier Einzug gefunden: https://github.com/python-forum-de/Jump-N-Run-pydesw
Wir müssten den Pull Request also noch mal starten :-P ich mach das gleich mal zum Üben für mich.

Der nächste Schritt ist die Erstellung eines Projektplanes.
Das Dokument aus dem Wiki(Das Beispiel) sieht sehr nach einer ExcelTabelle aus?
Wie können wir denn jetzt einen Projektplan/Projektorganisation erstellen?
Ich denke, wir müssten das hier zusammentragen?!

Ich fange einfach mal..
Darf jederzeit geändert werden.

Projektorganisation:
Da wir keine "Kunden" haben, würde ich behaupten entfällt der Projektleiter als Posten.
Beziehungsweise, der Projektleiter ist derjenige, der die Pull Request's einpflegt?

Qualitätsbeauftragte sind, finde ich wir alle. Jeder wird sicher mal bei dem einen oder anderen schnuppern und bei einer möglichen Codeverbesserung einen Pull Request rausjagen.

Auf alle Fälle sind wir alle Entwickler. Oder möchte sich jemand der Rolle entziehen und lieber von außen Tipps geben?
Fehlen noch Rollen?


Jetzt sehe ich gerade die nächsten zwei Knackpunkte in der Exceltabelle.
Anforderungsentwicklung und der Entwurf.

Heißt, wir müssen jetzt entscheiden was wir alles umsetzen möchten.
Was soll das Spiel am Ende können.
Brauchen wir ein Spielmenu, oder starten wir mit Doppelklick das Spiel direkt?
Möchten wir eine Art Multiplayer? Wie soll die Grafik aussehen?
Vielleicht haben wir ja sogar Musikbegabte unter uns.
Wie sieht die Ordnerstruktur aus? Auf welche Datentypen wollen wir uns einigen? (json, csv, ..)
Integrieren wir ein richtiges Logging?

Wo hinterlegen wir eigentlich unsere Planung? Alles ins Reade.me?
BlackJack

Also wenn Features und Milestones feststehen, dann kann/sollte man die am besten über die Issues in Github abbilden. Dort kann man die einzelnen Features dann auch noch mal ein bisschen Diskutieren, Personen zuordnen, und man sieht dort einen Fortschritt wenn die geschlossen werden wenn sie implemetiert sind. Bei den vorhandenen Labels für Issues gibt es kein 'feature', das müsste man dort hinzufügen.

Planung und auch Artefakte wie die Anforderungen kann man hier, im Wiki zum Projekt auf Github, in der readme.md, in einem extra Dokument, eventuell auch in einem Unterordner (doc/ beispiesweise), auch in anderen Formaten als einzelne Markdown-Texte, oder ganz (wo)anders speichern. Man sollte sich halt irgendwie einigen. :-)
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

sebastian0202 hat geschrieben:Was soll das Spiel am Ende können.
Brauchen wir ein Spielmenu, oder starten wir mit Doppelklick das Spiel direkt?
Möchten wir eine Art Multiplayer? Wie soll die Grafik aussehen?
Vielleicht haben wir ja sogar Musikbegabte unter uns.
Wie sieht die Ordnerstruktur aus? Auf welche Datentypen wollen wir uns einigen? (json, csv, ..)
Integrieren wir ein richtiges Logging?
Hört sich alles noch sehr wild an. Wollen wir nicht versuchen, die gesammelten Punkte nach Wichtigkeit zu ordnen, sodass man weiß, welche Entscheidungen als nächstes anstehen und welche Dinge weniger Priorität zum Projektstart haben?
BlackJack

Uuuuaaa, ein Dateiname wie 'groups|Gruppen' geht gar nicht. Ein Pipe-Symbol im Namen und keine Dateinamensendung sind beides so überhaupt keine gute Idee. Es ist ja eine Textdatei, da sollte man mindestens .txt als Endung verwenden. Und da Github Markdown so gut unterstützt, würde es bei einzelnen Textdokumenten Sinn machen die in Markdown-Syntax zu schreiben und .md oder .markdown als Dateinamendendung zu verwenden. Dann kann man sich das in Github auch schön rendern lassen.
Pygoscelis papua
User
Beiträge: 206
Registriert: Freitag 13. März 2015, 18:36

Ja ich habe auch schon eine wiki-Seite erstellt, allerdings konnte ich das halt nur in meiner fork.
import this
hidden python features

JAVA = Just Another Vulnerability Announcement :D
BlackJack

@Pygoscelis papua: Du bist zu dem Repository eingeladen worden, hast aber noch nicht angenommen. Dann solltest Du eigentlich Schreibrechte haben und Wikiseiten ganz normal ohne Fork und Pull-Request anlegen können.
Pygoscelis papua
User
Beiträge: 206
Registriert: Freitag 13. März 2015, 18:36

import this
hidden python features

JAVA = Just Another Vulnerability Announcement :D
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

Das mit der Organisation passt soweit!


Ich habe jetzt ein Issue erstellt: https://github.com/python-forum-de/Jump ... w/issues/7
Ideen zum Spiel sammeln. Damit wir endlich wissen worum es geht
und daraus Programmieraufgaben erzeugen zu können.

Hätte ich das lieber hier reinschreiben sollen?
Dann kopiere ich den Text und schließe den Issue.
Antworten