#pydesw: Softwareprojekt Jump 'n' Run

Du hast eine Idee für ein Projekt?
Benutzeravatar
miracle173
User
Beiträge: 127
Registriert: Samstag 6. Februar 2016, 00:28

viewtopic.php?f=6&t=38779&start=30#p297475
sebastian0202 hat geschrieben: ...
Ich hätte Lust auf ein ganz kleines Jump n Run in 2D.
Optional mit mehr als einem Spieler gleichzeitig. Evtl ein Endloslevel,
bei dem hinterlegte Abschnitte zufallsbasiert aneinandergefügt werden.
Aber wir können das Ganze vertiefen, wenn abgestimmt wurde.
...
@sebastian0202: Kannst du das etwas genauer erläutern, was du dir da vorstellst?
Benutzeravatar
miracle173
User
Beiträge: 127
Registriert: Samstag 6. Februar 2016, 00:28

Die Frage an die Community, die hier diskutiert werden sollte, ist, ist das ein geeignetes Softwareprojekt?
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

Hallo Community!

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.

Welche Tools werden bei der Programmierung vermutlich eingesetzt

Mittels Pygame könnte die Grafik hingezaubert werden.
Welche Bibliothek für den Netzcode genutzt wird, weiß ich noch nicht.
Die Datenhaltung der Level würde ich in JSON belassen.
Aber sowas sollte die Community entscheiden.

Den Aufwand kann ich nicht einschätzen.
Aber PI * Daumen rechne ich mit einem Monat.
Es wird ja nicht jeden Tag daran entwickelt.


Wenn wir das Ganze gut ausarbeiten locken wir vielleicht neue Pythoninteressierte an.
Viele Neulinge in der Programmierwelt möchten immer schnell ein Spiel entwickeln.
Interessierte hätten so einen guten Einblick und kommen vielleicht eher zum Ziel.
Da einiges dann nicht verstanden wird, melden sie sich hier zu Wort. :lol:

Soviel erst einmal dazu :D
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

Ich werfe mal pyglet in de Raum.
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Benutzeravatar
snafu
User
Beiträge: 6732
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

sebastian0202 hat geschrieben:Den Aufwand kann ich nicht einschätzen.
Aber PI * Daumen rechne ich mit einem Monat.
Es wird ja nicht jeden Tag daran entwickelt.
Ich würde da eher 3 Monate veranschlagen. Wir machen das schließlich nicht in Vollzeit. Es steht auch nicht fest, wer sich daran beteiligen möchte, wie die Vorkenntnisse der Beteiligten aussehen, usw.

Mich würde dieses Thema interessieren. Ich kann aber nicht versprechen, jeden Tag etwas dazu beizutragen, da ich nebenher noch arbeiten muss. Als ich mich für die Beteiligung an einem Software-Projekt ausgesprochen habe, war mir übrigens nicht klar, dass die Projekte hier in kürzester Zeit durchgepeitscht werden sollen. Eine etwas entspanntere Zeitplanung fände ich schon ganz gut.
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

Dann veranschlagen wir halt 3 Monate oder mehr.
Vielleicht kommen mit der Zeit immer mehr Ideen dazu. Ist doch auch ok.
Ich will das gar nicht durchprügeln. So verliert man sonst schnell interesse.
Wir wollen ja den Code aufteilen damit jeder etwas dazu beitragen kann.
Solange die Schnittstellen ordentlich definiert sind sehe ich da kein Problem.
Dann arbeitet jeder in dem Tempo das er für richtig hält.
Und hierbei zählt: Privatleben und Arbeit gehen vor.

Möglich wäre es ja mehrere Projekte zeitgleich zu fahren.
(Falls es wirklich welche gibt die ganz hibbelig sind und unbedingt Code schreiben müssen.)
Benutzeravatar
miracle173
User
Beiträge: 127
Registriert: Samstag 6. Februar 2016, 00:28

Ich glaube auch, dass man hier nichts durchpeitschen soll und auch nicht kann, da ja alle freiwillig mitarbeiten. EIne Aufwandabschätzung finde ich deshalb gut, da man beim abstimmen über ein Projekt möglicherweise wissen will, ob es sich um ein eher umfangreicheres oder eher kleineres Projekt handelt.
Pygoscelis papua
User
Beiträge: 206
Registriert: Freitag 13. März 2015, 18:36

Ich glaube sebastian0202 wollte das auch nicht durchpeitschen, vielleicht hat er sich nur etwas mit der Dauer verschätzt.
import this
hidden python features

JAVA = Just Another Vulnerability Announcement :D
BlackJack

Zeiten für Projekte abzuschätzen ist etwas das selbst Profis schwer fällt. Und üblicherweise macht man das Anhand der Aufzeichnungen die man sich bei früheren Projekten ähnlicher Art, an denen man mit dem gleichen oder einem ähnlichen Team gearbeitet hat, gemacht hat. Und das auch erst so richtig, wenn man sich die konkreten Anforderungen etwas detaillierter angeschaut hat. Das gibt's hier alles nicht. Ebenso wie es keinen von aussen vorgegebenen Termin für die Abnahme gibt.

Ich denke man sollte hier, und auch bei den anderen Projekten, keine Zeiten abschätzen die nicht wirklich faktisch begründbar sind. Das macht keinen Sinn. Ausser vielleicht, dass es den Lerneffekt hat, das die Leute sehen das Zeiten abschätzen schwierig ist. ;-)

Sinnvoller wäre IMHO bei der Planung frühzeitig das ganze in Meilensteine aufzuteilen, welche der Reihe nach erreicht werden und die so gesetzt sind, dass man immer ein wenig Fortschritt am Produkt sehen kann. Also zum Beispiel nicht das gesamte Projekt in Teilbereiche aufteilen, die Schnittstellen absprechen, verteilen, und dann arbeitet jeder der Beteiligten an seinem Stück und ganz am Ende wird das dann zusammengesetzt. Auf die Weise hat man dann beim zusammensetzen, quasi kurz vorm Ziel, die ganze Arbeit mit Fehlersuche und Notlösungen um die Teile irgendwie zusammen zu pressen, was frustrierend sein kann. Das sollte sich auf die Projektzeit verteilen.
Pygoscelis papua
User
Beiträge: 206
Registriert: Freitag 13. März 2015, 18:36

@Black Jack, könntest du das vielleicht nochmal im Hauptthread schreiben, ich weiß nämlich nicht, ob dass jeder hier ließt.
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

Hallo,



ich habe schon mal ein Github Projekt dazu erstellt.
https://github.com/sebastian2443/Jump-N-Run-pydesw
Da ich das erste Mal mit Github arbeite, habe ich bestimmt einiges vergessen.
Das Projekt is öffentlich. Muss ich jetzt die Personen die Interesse haben
anhand ihres Github's Namen hinzufügen, oder wie läuft das?

Passt das Readme erst einmal soweit, oder gibt es Änderungswünsche?
Py19917062
User
Beiträge: 113
Registriert: Freitag 30. Januar 2009, 00:53
Wohnort: Dortmund
Kontaktdaten:

BlackJack hat geschrieben: Ich war mal so frei eine GitHub-Organisation anzulegen: https://python-forum-de.github.io/
viewtopic.php?f=6&t=38779&start=15
@BlackJack: Könntest du erläutern wie diese Seite von uns genutzt werden kann und welchem Zweck sie dient?
snafu hat geschrieben:Ich denke, soweit sind wir noch nicht. Wir sollten jetzt als nächstes über das Framework für unser Spiel abstimmen. Mein Vorschlag wäre PyGame.

Und danach können wir planen, wie wir die Arbeiten konkret aufteilen. Denkbar wäre es, an dieser Stelle die Teilabschnitte als Issues zu erstellen. So könnte jeder selbst entscheiden, zu welchen Punkten er etwas beitragen möchte. Auch ist der Entwicklungsprozess dann für Nachzügler nachvollziehbar und sie können jederzeit mit eigenen Beiträgen dazustoßen.
Ich habe hier noch ein Wiki an dem wir uns orientieren könnten.
BlackJack

@Py19917062: Das ist die Webseite zur Github-Organisation (https://github.com/python-forum-de/) bei der man zum einen eben diese Webseite selber ändern kann (das ist einfach ein Github-Repository das die Webseite enthält), und wo man Teams und Repositories anlegen kann. Die Mitglieder der Teams kann man den Repositories zuordnen. Ich dachte das wäre ein netter zentraler Ort für die Projekte.

Ich habe euch beide (sebastian2443 und psython) jetzt mal als Mitglieder in die Organisation eingeladen. Dann kann ich ein Team für die Webseite erstellen und euch da hinzufügen wenn ihr mögt. Ansonsten kann aber auch jeder andere Änderungen für die Webseite erstellen in dem er das Projekt forkt, ändert, und dann einen Pull-Request stellt. Da die Webseite ein Github-Repository ist, gibt es dort auch einen Issue-Tracker und ein Wiki das man für das ”Metaprojekt” nutzen kann.

Momentan ist in dem Repository die Seite die ich mal eben schnell über die Vorlagen von Github erstellt hatte, also HTML und CSS-Dateien. Ich glaube aber auch etwas von Jekyll gelesen zu haben. Da beschäftige ich mich jetzt mal mit, ob man das einfacher hinbekommt als HTML schreiben zu müssen.

@sebastian0202: Du kannst Leute hinzufügen die das Repository selbst verändern dürfen, musst Du aber nicht. Es ist nicht unüblich das man, wenn man etwas beitragen möchte, einen Fork erstellt, daran ändert, und dann einen Pull-Request stellt. Den Du dann annehmen oder ablehnen kannst. Es macht allerdings Sinn noch ein oder zwei andere mit Commit-Rechten zu haben, damit Du nicht das Nadelöhr bist und alles an Dir hängt ob/wann Pull-Requests übernommen werden.

Damit das weniger an Einzelpersonen hängt, dachte ich ja auch das so ein Organisations-Konto praktisch wäre.
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

Alles klar! Bin jetzt drin :lol:
Organisations-Konto ist super.
Also einfach unsere Projekte unter dem Konto python-forum-de erstellen.
Ich könnte jetzt das Projekt aus meinem Konto einfach Clonen, oder?

Und wenn ich etwas an dem Projekt ändern möchte,
erstelle ich mir einen Fork unter meinem Konto.
Dann editiere ich meine Ideen hinzu und polle dann einen Request.
Dabei sollte ich aber darauf achten, dass der Fork best möglich aktuell ist.

Ich nehme an, dass es einen Issue-Tracker und Wiki für jedes Projekt gibt.

Ich bin gespannt wie wir die einzelnen Module aufteilen.
Es wird sicher vorkommen, dass zwei an der gleichen Datei schreiben müssen.
Benutzeravatar
snafu
User
Beiträge: 6732
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.

Ich finde das Konzept interessant, zumal der komplette Quellcode einsehbar ist. Möglicherweise können wir uns ein paar Ideen davon für unser Projekt abschauen. Es benötigt Python >= 3.3 und ein installiertes PyGame.

PS: Anfangs würde ich bei den Einstellungen zunächst mal die Steuerung mit Pfeiltasten einstellen. Sonst wundert man sich anfangs vielleicht, warum sich die Spielfigur nicht bewegen lässt.
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: 6732
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: 6732
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?
Antworten