PyUGAT / pyweek34

PyWeek#34 submission: Red Planted
https://pyweek.org/e/RedPlanted/
MIT License
4 stars 0 forks source link

Newsfeed / Development Diary #4

Closed caichinger closed 1 year ago

caichinger commented 2 years ago

You want to share something with the @PyUGAT/pyweek34 team? Post here! :)

caichinger commented 2 years ago

Update Tag 1


Persönliche Notiz: Ich habe schon was mitgenommen, danke an alle die dabei waren.

DerPhysikeR commented 2 years ago

Nachdem ich heute den ganzen Tag Zeit habe, werde ich mich erstmal um das grundlegende Pygame Setup kümmern, also run_game.py, Fenster, Gameloop, drehbarer Planet + rechteckiges Sichtfeld und evtl. je nachdem wie weit ich komme auch die Minimap. Ich werde mich nachdem ich noch nicht allzu viel Erfahrung mit Pygame habe erstmal an dieses Tutorial halten https://www.youtube.com/watch?v=jO6qQDNa2UY Heute um 20:00 in unserem täglichen Meeting habe ich hoffentlich schon was zum herzeigen.

thp commented 2 years ago

Hab' mich ein bisschen mit der Generierung von Pflanzen beschäftigt. Braucht noch einiges an Arbeit, nur dass man sich ca. vorstellen kann, wie man das realisieren könnte.

Random generierung:

cd plants
python3 plants.py

Screenshot from 2022-09-05 11-26-55

thp commented 2 years ago

plants/plants.py now contains interactive sliders to test how the visualization of "growth" (when the plant grows) and "health" (would decrease when water/sun isn't properly cared for). Placeholder graphics (of course) and still "ugly", not to mention really hackish code; artwork adapted from public domain artwork on OpenGameArt (see plants/README.md for URLs)

out

caichinger commented 2 years ago

plants/plants.py now contains interactive sliders to test [...]

Awesome! :partying_face:

If I find the time, I will later work on the flies.

thp commented 2 years ago

I now also added a "fertility" slider (0..100) that controls various procedural generation parameters. Low values will generate thin/small/non-fruit plants, high values will generate plants with lots of fruit, thick and high plants. We can either just randomize this at plant creation time, or modify the place's fertility based on different factors (e.g. different sectors on the planet have a base fertility, usage of chemicals (spray) reduces fertility of the sector, or just increasing fertility as the game progresses, so as to make it more difficult (more things to do -> a high fertility could mean more water usage, and also more fruit means more "destinations" for flies -> more fruit could also mean more flies in general) -> we have to balance it to see what works.

Clicking and releasing the fertility slider will re-generate the example plants so you can see what different kinds of plants will get generated.

Example generations:

Screenshot from 2022-09-05 16-27-05

Screenshot from 2022-09-05 16-27-13

caichinger commented 2 years ago

Für alle die Zeit haben, um 20:00 unser Daily hier (selber Link für den Rest der Woche).

pyrrhull commented 2 years ago

Hey,

Leider hab ich noch immer internes mic Probleme, ich starte morgen den nächsten Versuch beim Treffen einzusteigen. Was ich bis jetzt mitbekommen hab ist dass es darum geht die Pflanzen am Mars zu hegen und vor schädlichen Einflüssen zu schützen.

Thomas Pflanzen Animation schaut schon sehr cool aus; Ich weiß nicht was ihr noch alles besprochen habt, mir ist dabei die Idee gekommen von einem links nach rechts Scroller wie bei traditionellen Shoot 'em ups wie Gradius.

Hoffe ich schaffs morgen dabei zu sein!

Lg Christoph

Am Mo., 5. Sept. 2022 um 19:10 Uhr schrieb caichinger < @.***>:

Für alle die Zeit haben, um 20:00 unser Daily hier https://app.gather.town/invite?token=9sXyCr7GdMGEpeNHcGCinsalCna3_b2w (selber Link für den Rest der Woche).

— Reply to this email directly, view it on GitHub https://github.com/PyUGAT/pyweek34/issues/4#issuecomment-1237319053, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADXKJ7BXWKFDLFXHQM4MECLV4YSRBANCNFSM6AAAAAAQEP4YRA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

caichinger commented 2 years ago

Update Tag 2

Ein eine kleine Zusammenfassung sowie ein Ausblick für alle die heute im Daily nicht dabei waren.

Stand der Dinge:

Was jetzt ansteht:

Es gibt auch morgen wieder ein Daily um 20:00 in Gather (selber Link; ich bin morgen nicht dabei).

Das Daily morgen ist sicher auch wieder ein guter Zeitpunkt um sich einzuklingen! :nerd_face:

PS: @pyrrhull ich drücke die die Daumen. PPS: Wenn hier jemand mitliest, was machen möchte aber nicht weiß was, einfach melden!

lcnittl commented 2 years ago

Sorry, hab es gestern wegen Schwiegereltern Besuch nicht geschaft zum Meeting zu kommen. Wo kann ich am Besten helfen? (kann auch gerne graphische Objekte o.ä machen)

caichinger commented 2 years ago

Sorry, hab es gestern wegen Schwiegereltern Besuch nicht geschaft zum Meeting zu kommen. Wo kann ich am Besten helfen? (kann auch gerne graphische Objekte o.ä machen)

Auf technischer Ebene können wir später/abends sicher mehr sagen bzw. ergibt sich dann glaube ich was.

Gut parallel machen und sinnvoll wären Grafiken und Soundeffekte (zwei Links im README, gibt sicher noch mehr Quellen). Das ist nicht super dringend aber je früher wir was haben um so eher werden wir spüren, wie sich das Spiel anfühlt und was wir noch brauchen. Wir benötigen zumindest:

Wäre gut, wenn die Grafiken stilistisch in etwa zu den Pflanzen passen oder wir Optionen haben. Die Fliege ist animiert, d.h. zumindest Flügel oben und unten bräuchten wir (ich werde später zum Ausporbieren diese).

Das können für's Erste auch Platzhalter sein.

Wenn du auch selber zeichnen magst/kannst, wäre es sicher auch eine Idee, das aus einem Guß zu machen (nur weit gedacht).

(Bin später wieder erreichbar.)

caichinger commented 2 years ago

Sorry, hab es gestern wegen Schwiegereltern Besuch nicht geschaft zum Meeting zu kommen. Wo kann ich am Besten helfen? (kann auch gerne graphische Objekte o.ä machen)

Was ebenfalls wichtig & cool wäre (je nachdem, worauf du Lust hast):

Wir brauchen mMn ein Scoring System, also User Feedback um den Spielfortschritt darzustellen. Mit jeder geernteten Tomate, sammelt man einen Punkt (Tomato Coin?). Man könnte auch die erschlagenen Fliegen zählen. Dafür benötigen wir eine Anzeige und die ließe sich auch gut separet entwickeln.

caichinger commented 2 years ago

Hab die Zeit übersehen und muss gach los. Noch schnell zur Info: morgen gibt's eine Fliegerl-Demo. :)

thp commented 2 years ago

Pushed some updates.

Axis-aligned bounding boxes for debugging, culling and click handling:

Screenshot from 2022-09-06 15-17-47

A bug (forgot to cleanup old plants):

Screenshot from 2022-09-06 15-51-23

Stylized plant overview view (with highlighted fruits):

Screenshot from 2022-09-06 17-44-28

Interactive zoomed-in view:

Screenshot from 2022-09-06 17-44-07

thp commented 2 years ago

All AABBs in overview:

Screenshot from 2022-09-06 17-55-44

AABBs (main branch HEAD) in detail view:

Screenshot from 2022-09-06 17-55-50

thp commented 2 years ago

Some UI remarks:

Some technical remarks:

Some gameplay remarks:

thp commented 2 years ago

20 Uhr wird sich nicht ganz ausgehen bei mir (daily call), aber ich werde schauen, dass ich vor 21 Uhr online komme. In der Zwischenzeit könnt ihr gerne versuchen, den Code zu "decodieren", und eine Liste von Fragen zusammenzuschreiben, falls Fragen auftreten :)

thp commented 2 years ago

Ich verschieb' mal ein paar Sachen im Git (plants -> hauptordner)

thp commented 2 years ago

Hab' ein paar Performance-Optimierungen für den Renderer vorgenommen.

thp commented 2 years ago

Experimentation continues...

Screenshot from 2022-09-07 13-55-19

thp commented 2 years ago

WIP fly behavior (there's still something buggy with the sprite orientation):

Screenshot from 2022-09-07 14-42-16

In overview:

Screenshot from 2022-09-07 14-41-31

thp commented 2 years ago

Adjusted the layout a bit:

Screenshot from 2022-09-07 17-45-13

Screenshot from 2022-09-07 17-45-21

thp commented 2 years ago

Alternative art style?

Screenshot from 2022-09-07 18-41-50

There's now also a TODO.md if you want to add sounds as a simple beginner task.

caichinger commented 2 years ago

Wow! A lot has happened here! Thank you @thp!

I was on the go the whole day and still have to do "IT support" for someone dealing with court proceedings, hence a can only leave a short comment here and hope to be able to join later.

Comments:

caichinger commented 2 years ago

Update Tag 3

Es ist richtig viel passiert!


Hier copy-paste unserer Notizen aus dem Daily.

Zu den Kommentaren von oben:

Daily: Entscheidung für Comic oder Pixel Art. Beim Planeten egal, der skaliert eh gut. Bei den anderen Objekten muss man schauen. Ggfs in der Git-History nachschauen.

Daily: Wir nehmen statt Hütten Steine oder andere inaktive Objekte. Alles was da ist soll eine Rolle haben.

Daily: Können wir probieren. TBD wenn wir im Spiel weiter sind.

Daily: Machen wir.

Allgemeine Notizen:

TODO:

lcnittl commented 2 years ago
  • Cursors anpassen (Christian)
    • Mouse Cursor verstecken und dann ein Sprite zeigen
    • Wenn wir Frame zeichnen, Mouse Position abfragen und dann
    • über die Bounding Boxes iterieren

Ready to be enjoyed. We will still need some nicer cursor images (and potentially have them have some motion). :-)

On another note:

The use of Sprite has confused me slightly (since there is a pygame.Sprite), therefore, I have renamed Sprite to SproteX in f989c15. Feel free to revert this, if you do not like it.

caichinger commented 2 years ago
  • Cursors anpassen (Christian)

    • Mouse Cursor verstecken und dann ein Sprite zeigen
    • Wenn wir Frame zeichnen, Mouse Position abfragen und dann
    • über die Bounding Boxes iterieren

Ready to be enjoyed. We will still need some nicer cursor images (and potentially have them have some motion). :-)

Nice! Yes, there are a few images to be updated but it already feels much more like the "garden simulator" we talked about initially. :)

caichinger commented 2 years ago

From my side:

image

thp commented 2 years ago

The use of Sprite has confused me slightly (since there is a pygame.Sprite), therefore, I have renamed Sprite to SpriteX in f989c15. Feel free to revert this, if you do not like it.

SpriteX doesn't tell me more than Sprite. Does it do something with the X coordinate? Is it scaled (and the "X" stands for multiplication/scaling?). Is it a sprite that looks like ❌ ? IMHO even NonPyGameSprite would be a better name than SpriteX.

In the spirit of bikeshedding, TexturedSprite or ImageSprite might do the trick? Or PlantedSprite, to distinguish it from the framework's Sprite class? ImageSprite might just be the way to go...

lcnittl commented 2 years ago

SpriteX doesn't tell me more than Sprite. Does it do something with the X coordinate? Is it scaled (and the "X" stands for multiplication/scaling?). Is it a sprite that looks like ❌ ? IMHO even NonPyGameSprite would be a better name than SpriteX.

TL;DR: Feel free to rename it to anything you prefer or, as mentioned earlier, to revert the commit.

It does tell that it is not Sprite from Pygame (which has a rather different signature and made me wonder why the documentation does mention, eg, property Sprite.rect while it was not working on my side). I did not want to massively rename the variable. so I borrowed the X from LaTeX 😄, where it is often practiced to suffix names of rereleases or hostile forks of (abandoned) packages with x - like scratch/scratchx or graphics/graphicx -- I believe this means "next", but not quite sure. I am happy with any name (other than plain Sprite).

caichinger commented 2 years ago

Ich merke, ich finde es schade, dass ich so wenig Zeit habe. Hab probiert Zwischendurch bisschen was zu machen, manches würde ich gerne besser verstehen. Thomas, wenn du nach der Woche nochmal Zeit hättest, wäre cool. Bin für jetzt auch schon wieder am Sprung.

Mein Ziel war, einige für das Gameplay relevant Dinge anzureißen, damit wir diese am Abend diskutieren können und für Freitag, Samstag Aufgaben haben, bei denen sich andere leicht einklinken können.

Hier mein Update

Und ich muss sagen, ich finde sie schon herzig.

image

Wenn ich es schaffe abends dabei zu sein, würde ich gerne noch ein bisschen downscopen. Werde in der Nacht ein Mail an der PyUGAT schicken mit TODOs für alle die wollen.

thp commented 2 years ago

Ich hab' mal die alten Bilder wiederhergestellt vor dem "experiment" mit photorealistischen Assets.

thp commented 2 years ago

New cursor artwork:

Harvesting Hand Screenshot from 2022-09-08 19-36-55

Scissors (might need some more work) Screenshot from 2022-09-08 19-36-51

(also the "cut down" area is now limited to the root of the plant, avoiding accidental cut-downs)

thp commented 2 years ago

Tomato and leaf artwork has also been "optimized":

Ugly version ("photorealistic" experiment):

Screenshot from 2022-09-08 19-38-51

Intial version ("artistic leaves" + very pixellated tomatoes):

Screenshot from 2022-09-08 19-39-19

(hopefully) Improved pixel art version:

Screenshot from 2022-09-08 19-39-32

thp commented 2 years ago

Something is buggy. Worked around using https://github.com/PyUGAT/pyweek34/commit/3a77fad72616434a1d7f9ff174cb992a2c13d7a0 for now.

Screenshot from 2022-09-08 19-51-56

thp commented 2 years ago

In other news, cutting plants just became a bit more fun...

cutty

caichinger commented 2 years ago

Tomato and leaf artwork has also been "optimized":

Nice, I like it.

caichinger commented 2 years ago

Daily happening now, who wants to join? :)

https://app.gather.town/app/ABfbK7Oa6yXHmA3g/meeting

I don't have much time but Paul is here as well.

caichinger commented 2 years ago

Update Tag 4 (Edit: eigentlich das Protokoll vom Daily)

Fliegen

Gameplay

Menü und Benutzerführung:

Notizen

Mögliche Kriterien für Spielende:

Optionale TODOs:

TODOs Thomas:

TODOs Claus:


Bitte weiter bearbeiten

thp commented 2 years ago

FruitFly AABB calculation is now fixed. It even conveniently includes the tomato sprite's corners in case the fly carries a tomato (so carrying a tomato makes it easier to hit - although it can be removed if we don't want this):

Screenshot from 2022-09-08 21-25-21

thp commented 2 years ago

Atmosphere (the blue thing).

Screenshot from 2022-09-08 21-41-49

thp commented 2 years ago

And some fancy rocks:

Screenshot from 2022-09-08 21-53-51

thp commented 2 years ago

And some flies animation / interaction (limited to the atmosphere, you can't squash flies "outside" the atmosphere) -- the video was recorded with --fast, usually plants don't grow that fast:

output

Also added some sounds. That's it from my side for today.

thp commented 2 years ago

Kelly watch the stars. Now that's really really it for today :)

Screenshot from 2022-09-08 22-45-25

caichinger commented 2 years ago

@thp you made me laugh, thank you! And of course also thank you for the fixes and improvements! I guess it is a good sign if you just do not want to stop tinkering around. ;)

caichinger commented 2 years ago

Wie ihr gesehen habt, habe ich das Mail ausgeschickt und zur Übersicht bzw. zum leichteren Einstieg für Personen, die vielleicht darauf reagieren, ein paar Issues erstellt Wenn ihr an einem der noch nicht zugewiesenen Issues arbeitet, bitte kommentieren bzw. einfach euch zuweisen, damit wir in etwas wissen, wer wo dran ist (oder eben nicht).

caichinger commented 2 years ago

We will need people who can try our game and provide feedback with regards to installation and navigation.

If you know someone, ideally unrelated, and willing to give it a try, please comment in #14. That's also a good first issue.

caichinger commented 2 years ago

Ich habe wieder ein bisschen gebastelt (anders kann man es auch nicht nennen).

Das Spielt startet mit einem kleinen Welcome Screen.

startup

Mit der Leertaste geht es los und wenn die Fliegen N Tomaten gesammelt haben, ist es aus.

gameover

caichinger commented 2 years ago

If pulled out some important parameters and introduced an ImportantParameterAffectingGameplay class (feel free to comment on the name;). My aim was to pull together the parameters we need to adjust to obtain a nice experience - and make this obvious.

Also, I imposed a limit on the total number of flies.

After playing around a bit, I believe we should introduce a win-condition, i..e if the player collects N tomatoes, then you win. Then we have a race player against flies. What do you think?

caichinger commented 2 years ago

Please think and share how much time you still want to invest (and if any, to work on which aspect?) before the deadline.

It is perfectly fine if you cannot contribute any further! My own resources are very limited at the moment and also tomorrow there will be very little I can do.

Still, we need to know so we can wrap the game up in time and share it with the PyWeek community. :)