#pyweek-game-jam

1 messages · Page 13 of 1

pallid perch
#

any game jam really

hot forge
#

We've typically avoided games that are massively dependent on precise inputs for pyweek, just because it's so much tweak/polish to feel nice... (not to mention that python libraries and engines tend to be... not optimized well?)

pallid perch
#

unless you can do everything in parallel for which you'd need a massive team and hyper focus to get things done exactly right with time to be tested and possibly change the game based on feedback

hot forge
#

so like... laggy gameplay is a problem

covert seal
#

yeah, rhythm games feel like a poor fit for python

pallid perch
#

I don't think some things are possible. It's like asking nine women to have a baby in one month

hot forge
#

we've done a few "actiony games" that did decently well, and one that did very well... but the one that did very well was extremely lightweight https://pyweek.org/e/hoarse_oddish/

limpid heart
#

try with the command line argument to set the resolution, python run_game.py {height in pixels} {0 for windowed, 1 for fullscreen} for some reason it was displaying 720 and 1080 fullscreen on my secondary monitor, any other resolution on my primary...probably going to default it to windowed 😦

#

It's a wasteland 🙂, the future, 2022

hot forge
#

I was assuming that red layer was a deliberate artistic choice :D

hybrid granite
#

this is why I hate windows. How do I even try .exe files!!

covert seal
#

yeah, if someone doesn't rebuild the pyinstaller bootloader, you can't run the exes

hybrid granite
#

I could just run from source >:(

hot forge
#

You invented the band Steam Powered Giraffe :D

limpid heart
pallid perch
#

What's the deal with the pyinstaller bootloader?

covert seal
#

you can override it, but it is non trivial

#

and windows defender is pretty good against viruses

pallid perch
covert seal
#

pyinstaller is easy to use to create viruses, so the wheel is detected as a virus

#

if you build it from source, you don't have that problem

#

you can even do that in a github action (though not for linux)

hybrid granite
#

I guess I might have to build from source

covert seal
hybrid granite
#

hmm

#

though we didn't complete the game on time
relatable.

pallid perch
#

4a4A

lusty wasp
#

Balancing is hard

hot forge
#

oh yeah

#

having some dedicated playtesters is super useful, to put fresh eyes on your game and tell you what their experiences are

#

this time we were very much "oh no, just get it working" for a lot of the time, so all of our balance work and even a bunch of the raw mechanical stuff was done in the last few hours :p

limpid heart
#

having an idea as to what is going on is super helpful I imagine as well. Being on a team of first timers is quite the experience. We learned a ton, even made some branches on Saturday

sacred marsh
#

Panda3D been around for a very long time, thus there's also a lot of work behind it to have it at the point it is today

hot forge
#

nice!

#

I mean, I haven't used Panda3D - I don't really know how to code python

#

and most of my knowledge of the game tools are from a decade ago

#

I'll recommend it to our programmers to have a play with

#

Since most of our game coding experience was from a decade ago, I was still following a bunch of recommendations like "make all the textures square and powers of 2 so the rendering pipeline is less stressed and we reduce lag" - if there's newer libraries that cope better that's super good news

lusty wasp
#

That's pretty outdated advice, modern cards have no problem handling non-power-2 sizes

#

On desktop hardware, anyway

woeful tree
#

Python is certainly fast enough for twitchy action games, as long as you use good libraries. And not just game engines, you can get incredible speedups just with numpy

sacred marsh
#

yes.. the scipy tool chest, especially numpy is magical.. many programmers would struggle to crunch a lot of numbers in lower level languages at the speed that numpy can handle things

woeful tree
#

The only thing you'd struggle to do is AAA games where every single aspect needs to be pushing performance limits

sacred marsh
#

I think an important thing to not forget about python is, that it is supposed to be a glue language, you're not doing the hard work in your python code but glue together a beautiful quilt of high performance libraries and control them from the python domain

unreal forge
#

But maybe it depends what you want, performance-wise.

onyx basin
#

can I still make docs changes?

#

or is it no changes at all at this point

lusty wasp
#

@onyx basin documentation is fine.

onyx basin
#

ok, thanks

lusty wasp
#

That's what the final day is for.

onyx basin
#

the reason i'm asking is because the file to run the code is called run_game.py but the README says to run main.py

#

which could potentially be confusing

lusty wasp
#

I think users will figure it out, but changing it is certainly OK :-)

hot forge
#

I wouldn't really say that was a part of the game :)

#

unless your game is a very clever meta "figure out how to run my game" challenge

#

the game file displays the victory screen if you execute it with the right arguments, and the readme is a series of riddles to what those arguments are :p

lusty wasp
#

Not sure how that ties into the Cops theme though...

#

Detective Python I guess

hot forge
#

:D

sacred marsh
# unreal forge I disagree. Python can be used as a glue language but it's not really "supposed"...

I agree on almost all of your points. The nice thing about it is rapid dev cycles, for projects outside of the scope of a game jam, the most obvious way to approach a problem is to write it in python first and optimize out what needs to be optimized out.. I don't say you can't do it all in Python, but you reach limits very fast when you try to do things that it simply isn't good at i.e. looping over and manipulating large datasets.. take the right tool for the job, don't shoehorn it into a lang just because you can 🤷‍♂️

lusty wasp
#

@hot forge I may steal your idea next PyWeek... ;-)

hot forge
#

:D

#

it's honestly a pretty funny idea as a meta thing

unreal forge
#

That's very fair. There are certainly some times where we thought about numpy.

sacred marsh
#

a week long jam is not something to compare against a project involving a good size team with years to work on.. the scope of a week, while long for a jam, is limiting the scope of a project before you need to take out the big guns anyway 😜

unreal forge
#

Would a game where the game is to find out how to run the game actually be "written in Python"?

lusty wasp
#

Python itself is C after all so even when you're using a stdlib feature like hashlib you're in effect letting C do the heavy lifting.

unreal forge
#

Also, Ahdok is a teammate of mine from previous winning entries. Should he get the role? Who do we ask?

lusty wasp
#

Any Discord admin I suppose. @hot flume ?

hot forge
#

it might mistakenly lead people to think I know anything about python :D

#

rather than you know, what I actually contributed to those programs

#

where the only python I added was this one

#

it was a mistake to let me have a keyboard

unreal forge
#

Is that even a python? Are there any herpetologists here?

sacred marsh
hot flume
#

Role granted!

hot forge
#

I don't really know a lot about snakes, but it has a pointed tail so it's not a rattlesnake

unreal forge
#

Like the only distinguishing thing is that underbelly I guess

lusty wasp
#

Good old days of slotting the panda3d punch card into my pip machine. I might be misremembering.

sacred marsh
#

ah yes.. the good old days w/o the interwebs and those fancy newfangled smart-touchy-phone-thingies

lusty wasp
#

I think they started calling them wheels when they switched to floppy disks for Python packages, after the round shape of the magnetic tape inside

sacred marsh
#

back when software could literally be eaten up by bugs

lusty wasp
#

Back when you had to literally catch the exceptions being thrown out of your computer

onyx basin
#

How do I get the top of a sprit/image/surface?

unreal forge
#

Like, the coordinates?

onyx basin
#

I mean yeah.

unreal forge
#

In pygame, right?

#

I think Surface has a get_rect method

onyx basin
#

Yep

#

Like I wanna get the tip of this ship and move it through the tip's angle.

unreal forge
#

So pygame.transform.rotate looks like what you need for that.

#

Takes the surface (the ship in this case) and can rotate it to give you a new surface.

onyx basin
#

Well, I already done that

onyx basin
#

Let me share a video

proud ruinBOT
#

Hey @onyx basin!

It looks like you tried to attach file type(s) that we do not allow (.mkv). We currently allow the following file types: .gif, .jpg, .jpeg, .mov, .mp4, .mpg, .png, .mp3, .wav, .ogg, .webm, .webp, .flac, .m4a.

Feel free to ask in #community-meta if you think this is a mistake.

onyx basin
#

Oh

unreal forge
#

Oh, so if it's just getting the coordinates of the new surface, you can do surf.get_rect().top

onyx basin
#

It says mkv is not allowed

unreal forge
onyx basin
unreal forge
#

There's a lot going on there

#

Not sure what you are aiming for exactly.

#

You need to move the little blue flame one?

onyx basin
#

It's another problem but I guess I can solve it easily. Actual problem is that I don't know how to move the ship in the direction of the nose of the it.

#

I need to do some math, I know but dunno how to implement it exactly

unreal forge
#

Ah, so if you have rotated by angle then one unit forwards is x += math.cos(angle) and y += math.sin(angle).

#

Although angle should be in radians for that to work.

#

So you can do angle_radians = math.radians(angle_degrees) first and then x += math.cos(angle_radians) and y += math.sin(angle_radians).

onyx basin
#

I try it now

unreal forge
#

45 entries is very respectable!

onyx basin
#

Here it's acting weird c:

#

I think it's about the fact that I do stuff about getting the angle in wrong way

swift tinsel
#

uhm

onyx basin
#

I am sorry

#

:/

swift tinsel
#

It's fine lol

onyx basin
#

@unreal forge

onyx basin
swift tinsel
#

I was confused for a second reading but then i realised you tried to mention Chard

onyx basin
#

Yes :]

unreal forge
#

Okay. I'm not 100% sure about the behaviour of cos and sin here but I think just angle -= something would probably do better than angle += 360 - something

#

But you could also normalise it explicitly to the range [0, 360] by doing angle_radians = math.radians(self.angle % 360).

#

Maybe also you want to move by more that 1 unit at a time? You can do self.x += distance * math.cos(...) etc.

#

I'm guessing here, I've not seen much of your code.

onyx basin
unreal forge
#

Okay cool

onyx basin
#
angle_rad = math.radians(self.angle % 360)
self.x += math.cos(angle_rad)
self.y -= math.sin(angle_rad)
#

Thank you very much :D

unreal forge
#

Wonderful, you're welcome

onyx basin
#

C:

unreal forge
#

Oh right, minus because pygame is centered top-left?

#

I'm used to counting from bottom-left.

onyx basin
#

Yes c:

unreal forge
#

And they said trigonometry was useless. Hah!

onyx basin
#

I probably will need to do more complicated math for smoothing the movement of these ships

#

Math for air friction

#

I don't know how to do that but one of my friend has done that before in Garry's Mod with Lua. So I can ask him for help I guess c:

hot forge
#

I've played a pyweek game this competition that definitely agrees that "math is awesome"

unreal forge
#

You can do quite well by using the Verlet method: track the x and y coordinates (x, y) as well as the previous x and y coordinates (old_x, old_y). Then for each update cycle you do self.x += (self.x - self.old_x) * DRAG_FACTOR.

#

Tweak the drag factor, or just make it 1 for no drag, and you get a nice feeling of momentum.

#

And of course add on your extra movement for that update cycle.

onyx basin
onyx basin
#

@unreal forge

keys = pygame.key.get_pressed()
if keys[self.controllers["jump"]]:
    self.poses.append([self.x, self.y])
    
    if len(self.poses) >= 2:
        self.old_x = self.poses[-2][0]
        self.old_y = self.poses[-2][1]
        
    angle_rad = math.radians(self.angle % 360)
    self.x += (self.x - self.old_x) * 0.8 + math.cos(angle_rad) * self.speed
    self.y -= (self.y - self.old_y) * 0.8 + math.sin(angle_rad) * self.speed

    print(f"x = {int(self.x)}, old_x = {int(self.old_x)}")
    print(f"y = {int(self.y)}, old_y = {int(self.old_y)}")
    print("\n")

unreal forge
#

0.8 is quite an extreme factor.

#

It's losing 20% of it's momentum per update cycle.

#

But that's up to you.

#

I also vaguely feel like the sign is wrong for the self.y? Maybe should be self.y += (self.y - self.old_y) * 0.8 - math.sin(angle_rad) * self.speed

onyx basin
#

Well, looks like it doesn't work because I only draw when the player presses the button

#

Hmm

#

Otherwise I don't draw the ship hence there is no air friction effect

#

Brain is stopped

#

May I should update the speed per update cycle and need to draw the ship per update cycle instead of only when player presses the button.

onyx basin
#

I made a full play-through video of my game arcadecat (don't watch if you don't want spoilers I guess) https://youtu.be/_z8lsIEQa9I

A 100% playthrough Python Prison, a game I made for the week-long PyWeek 31 game jam contest.

It's a puzzle game where you have to escape the prison in each level by bribing cops and building and executing actual Python code.

Entry page: https://pyweek.org/e/pythonprison/
PyWeek 31: https://pyweek.org/31/
Github: https://pyweek.org/e/pythonpri...

▶ Play video
hot forge
#

:)

#

I already played through it :)

#

although I skipped levels 8 and 10

#

I uh... don't know python

#

the others I solved without any programming knowledge, mostly through combinatorics or guesswork

onyx basin
#

That's awesome, thanks for playing rooHappy level 10 is definitely a doozy, it takes like half the video AlexXD

hot forge
#

my friend managed to get it to crash in stage... 6?

onyx basin
#

ooh, how? rooScared

hot forge
#

the first one that has a function and an output I think the p(2*3) stage

#

he pushed the button to run the function and it crashed. I'm sorry I didn't see a traceback

#

he was on mac though

#

that's one of the reasons I played this early, I wanted to see if I could replicate the issue, but it works fine for me

onyx basin
#

Oh, dang. I don't have a mac to test the game on 😦

#

Worked fine on Windows and Linux for me rooThinkingNut

hot forge
#

nods

#

he saw enough to get a good feel for it though.

#

we like the concept, and the puzzle execution is decent enough :)

onyx basin
#

Thanks discoHug

hot forge
#

it's very baba is you

onyx basin
#

yeah

hot forge
#

I imagine with a lot more time to lay out stages, you could build the sokobans such that they wouldn't need any pulling (pulling makes sokobans pretty simple), but that's not really where the idea lies

#

it's going to have an issue that anyone who doesn't know python can't really solve some of the puzzles, but well, this crowd is going to have a low percentage of those players

#

But if a bunch of the teams have playtersters/artists/content devs who aren't programmers they might bounce off it a little due to that (although as a non-programmer I can still appreciate what the design is doing)

#

but you know... given one of the three scoring categories is "innovation" I think you're gonna score pretty well ;)

onyx basin
#

Yeah, I'm banking on people knowing a little Python since it's all peer judged - but maybe some levels are too hard rooDevil1

hot forge
#

it's probably fine for anyone who actually knows python (I can't judge, I don't know python)

onyx basin
#

I really wish I had more time to make more levels - a "no pulling" would have been a good option to make some harder

hot forge
#

but in our team that's 2 out of the 6 of us :)

#

we had two coders, two playtesters and level designers, and two content/asset-makers

#

but... even with that, this is still going to be the most receptive demographic you're going to be able to find for that idea :)

#

python developers is gonna be 80% of the people who took part ;)

#

I liked the thought to put the controls and level skip options in the corner, it's good for letting people see later levels if they just don't want to do the complex ones

#

when you have new features and ideas in the back half of your game, it's smart to let people access those parts without having to complete everything first to get there

#

just so if someone is skipping through all 50 entries, they can see the scope of what you did without needing to spend half an hour to get there :)

#

so yeah, I think you did good :)

onyx basin
#

Yeah, I almost didn't make the skip function obvious but seemed a good idea in case people were rushing or struggling.

hot forge
#

it's a good call for an event like this

#

like if a full commercial release of a game, you'd want to manage progression and gate content to have a... curated experience, or to let the game's story flow or to make sure that features were being introduced at a sensible rate etc etc.

#

but for a competition like this what you mostly want is for people to be able to experience and see all the work you did.

#

if someone judging 40 games in a week can't do a level quickly, the result is likely they just move along to the next game... or worse if the game breaks or crashes, and they're unable to see all the features, you're just missing out... whereas the debug/skip stuff is just helpful to everyone

#

(I'm saying this on a team that didn't provide a level skip option ofc :p)

north ocean
hot forge
#

:D

#

I know BASIC and FORTRAN

#

:p

#

and HQ9+

onyx basin
#

Do you guys think replit.com is good to start off coding for python?

twilit canopy
#

No. It was inspired by koko the gorilla and the gamestop stock thing where a guy that goes by DeepFuckingValue and RoaringKitty led a bunch of people who started calling themselves "apes".

limpid heart
#

I updated my entry

#

default windowed now

#

the command line options exist for those who want em

#

I'm already thinking about multiplayer 😮

#

More demolition derby than get the checkpoint

#

I do want to implement a minimap too

#

I wonder if pyglet might offer performance enhancements and if I should move there first...

twilit canopy
valid prairie
#

@woeful tree The pyweek downloader isn't working

#

There's an SSL certificate error

slender igloo
#

What errors do you see?

twilit canopy
onyx basin
hot forge
twilit canopy
#

Can we still write diary entries after the submission deadline?

#

If not, I'll write a post-portem writeup elsewhere.

onyx basin
#

But cute art discoAww

onyx basin
#

PyWeek 31: Judging ends in 12 days, 23 hours and 44 minutes

#

PepeSuspicious time to play some games

hot forge
#

but well... I hope that gives some idea of why our team has someone who doesn't know any python, and what they were doing :D

#

I have a lot of photos in my phone of "hey guys, this is where we're at" :D

limpid heart
hot forge
#

I could check for y'all by just adding a diary entry to an ancient pyweek game

#

so I can add diary entries to 7 year old games

#

so old that the webhost with all the images for our diary entries back then doesn't exist

onyx basin
#

I get ssl certificate error when I try rooBlank

valid prairie
#

Yes same

#

I’ve made an issue on GH and pinged mauve twice

#

No response

sacred marsh
keen yoke
#

i didnt realize pyweek happened lmao

#

i participated last time and burned the hell out of myself

cinder mesa
#

Is anyone doing anything to sandbox the games they're judging? I was thinking of setting up a virtual machine, but maybe that is overkill.

shut gull
#

I don't think it's a bad idea. you're running code from people that you probably can't trust

karmic scroll
karmic scroll
#

You might also set up a second account that has zero privileges, and run games like that.

twilit canopy
woeful tree
#

I have looked into the downloader issue and I think maybe the server is missing an intermediate certificate

lusty wasp
#

@woeful tree that is correct: openssl s_client -connect pyweek.org:443 fails.

woeful tree
#

I've asked @tiny mesa to look into it, because he is the person with root, but he can't get to it right now

#

It will print warnings but it does work

#

It might have been a better workaround to bundle CA certificates into the CLI, but that would take longer

hybrid granite
lusty wasp
#

Yeah, FOX broke all our records…

hybrid granite
#

yeah 😳

sly oyster
#

@knotty stag i was able to crash ur game

sacred marsh
lusty wasp
#

Mea culpa, I did the packaging

limpid heart
#

I've been wanting to learn more about the account management side anyways

lusty wasp
#

There's always the risk that accelerated graphics won't work well under emulation

sly oyster
#

@shut gull failed to run ur game

shut gull
#

did you read the part in the readme where it said it required python 3.9

#

that's why

sacred jasper
#

when are we voting for the winner

lusty wasp
#

Now

hybrid granite
#

wait wait... how?

lusty wasp
#

You can review and rate entries on the PyWeek site.

#

At the end of the two-week period the rating system will close and the winner will be announced.

#

There's a countdown timer on the PyWeek site.

hybrid granite
#

oh I see.

valid prairie
sly oyster
#

Okey, yeah i have py 3.8

#

Lol who reads read me

hybrid granite
limpid heart
#

but I love reading

lusty wasp
#

I'd certainly read the readme if I get an error message… if I didn't already read it earlier

north ocean
#

i uh

#

what do you read when you cause an error on your own project?

#

🤔

lusty wasp
#

Obviously the next step would be to try and fix it myself

north ocean
#

i mean

#

i could read my readme

hybrid granite
#

with info that other users might find useful.

#

but... empty? lemon_angrysad

sly oyster
#

Okey maybe i will read them in future

shut gull
#

github gives you this banner thing that says something like "write a readme to tell users" something something

north ocean
#

lol I barely open github

slender igloo
valid prairie
#

Docker would probably also work well

#

And from what I’m reading, they actually work similarly (on Linux, since I have no clue how Docker works on Windows)

covert seal
#

docker isn't safe, but it may be good enough for this

cinder mesa
#

Lots of good suggestions in here how to do it on linux, but unfortunately I'm on windows.

covert seal
#

our school has sandboxie, but idk how good it is

cinder mesa
#

Maybe that was my first mistake

covert seal
#

docker shouldn't be used to run untrusted processes. It isn't designed to be resistant to that attack

valid prairie
#

Windows Sandbox is good, but it can be minorly annoying for smth like Python, since you’d have to install Python and never close Windows Sandbox

#

Windows Sandbox was created so that you could run untrusted software safely

cinder mesa
#

I'll give that one a try. Didn't know windows had that as a feature

valid prairie
#

I think you might need Win 10 Pro

#

You have to enable it from Add or Remove Features and restart your computer

cinder mesa
#

Thanks! I do have windows 10 pro, so that should work

limpid heart
slender igloo
sacred marsh
#

great super villain tactic.. let's write an evil app during pyweek.. yes, I wonder why they haven't made it into a movie yet... smh

limpid heart
karmic scroll
#

yeah, absence of donuts is a clear giveaway

mellow hawk
#

Simple logic, that

pearl oxide
#

Hey! I was running the aaaaAAAA project, I am getting this error on running poetry run task start

gilded dirge
#

i was the only one in our group to have that issue

#

converting to .wav files made it work

#

just curious, which OS are you on?

pearl oxide
#

ubuntu 20,10

#

thanks, i will do that

gilded dirge
#

ok

#

wack, i'm on macos

pearl oxide
#

another 😬

proud ruinBOT
digital spoke
tiny mesa
#

my apologies for the SSL SNAFU folks, I've updated the SSL cert renewal and it all seems correct now

woeful tree
#

And I have reverted the downloader CLI to restore full certificate verification

tardy quarry
#

Anyone else get these to work? is the 100% non-working just me?

#

I wasn't sure how many folks have rated these games; I'll try them on another machine (non-mac) to see if that was the cause

pearl oxide
#

badge blaster works perfectly tho...

tardy quarry
#

Badge Blaster launched, but it accepted no keyboard nor mouse-input for me; the main screen and audio were great! 🙂

pliant atlas
#

Do i have to mark my submission as final?

lusty wasp
#

@tardy quarry you need to use the up arrow key to select a menu item

#

It's in the instructions that the game is exclusively controlled via the arrow keys.

#

Also, if you have a gamepad plugged in, you need to unplug it, otherwise it is used for input instead.

tardy quarry
#

hmm, no game pad plugged in; nothing happens when I use the arrow keys

pliant atlas
#

smh

sacred marsh
#

Not to stir up a discussion about platforms, but macOS is getting less and less dev friendly, particular noticeable in the gamedev sector.. so anyone on mac, who has any other OS to test an entry on, it would be great to go that little extra mile. Keep on using macOS if you feel at home there, but note that Apple is one of the most obstructive players doing a lot to make developing and using free and opensource software harder and harder. If that is on purpose, ignorance or a mix of those two makes very little difference imho.

gritty terrace
mild skiff
#

@tardy quarry Hi James, what was the issue with "Asteroid Chase"?

tardy quarry
onyx basin
#

.zip file format depends on OS? rooBlank

sacred marsh
#

usually no.. but I'm sure someone challenged apple to try and break the zip format and they were up to the challenge

tardy quarry
#

FWIW - it's my fault, I used the Finder "compress this folder" thinking that it couldn't possibly mess up a zip of a folder... little did I know until I used the unzip command - double clicking it from Mac Finder of course works fine 😦

sacred marsh
tardy quarry
# sacred marsh good.. you learned the apple credo.. "you're holding it wrong", "it's a feature ...

thanks for the kind words - I should have checked the my .zip before I submitted (other than using finder itself) - I hadn't found the pyweek command until I started judging the other games though, that's when I downloaded my game (along with all others) and found that the .zip file includes a "__MACOSS" that includes all the files as dot files... really goofy - it might be okay since it also includes the original folder I intended to send

sacred marsh
#

yeah.. I doubt anyone is going to have a lot of difficulty to get it to run, so don't beat yourself up about it.. trust me, each time I want to double/triple/quadruple check everything and every time something goes wrong.. it's the nature of a jam or releasing something in general..
I just don't like Apple and have a hard time to keep that to myself.. not sure if it's noticeable 🤔

onyx basin
#

I need to move the little blue thruster flame after the ship's back

#

I need to use them separately too because the blue flame has its own effects, like if ship is in speed, the flame will be growed in size

sacred marsh
#

not sure what is being used.. but this is a case for reading up on transformation matrices and applying that knowledge

unreal forge
# onyx basin I need to move the little blue thruster flame after the ship's back

So you need to rotate the second sprite (flame) by the same angle as the first one (ship), that's fairly clear. But you also need to change the offset between the flame and the ship in a way which depends on the rotation. In general, if the offset between the centres of the two sprites (from the ship to the flame) used to be (dx, dy), then the new offset needs to be something like (dx * cos(angle) - dy * sin(angle), dx * sin(angle) + dy * cos(angle)).

sacred marsh
#

whatever framework/engine is underneath that probably, provides such matrices ootb

unreal forge
#

50% chance I got the sign of the sines incorrect, but it also depends on which direction the framework considers to be a positive angle.

#

From there you can generalise to a tree of sprites each with their own configurable offsets and angles. Get some skeletal animation going.

#

Have some fun with it. 😁

sacred marsh
#

use linear algebra instead of trigonometry tho.. it's just a stepping stone and if you want to really get into graphics programming you'll end up using linalg anyways sooner or later

onyx basin
unreal forge
sacred marsh
#

yes.. that's what the "read up on it" part was intended for

#

doesn't hurt to understand the trig part to understand the latter.. but you won't be able to avoid linalg when you get into graphics programming, so why go the long way around..

#

I may not be the best or most patient teacher, but if I had another go to start from scratch, I wouldn't let me write entire scenegraphs w/o using stacking matrices that do both the heavy lifting and apply it in a manner that is better understood and executed faster by the underlying hardware

unreal forge
#

The question that was asked was how to position one sprite relative to a rotated sprite, though. Not how to become a graphics programmer.

sacred marsh
#

well.. the question implies wanting to learn about graphics programming from how I see it...

unreal forge
#

I certainly didn't read it that way.

sacred marsh
#

good for you

onyx basin
#

Hey, both of your answers were awesome C: May @sacred marsh's one is a little out of topic tho :D But well it's helpful too since it's about my question

unreal forge
# sacred marsh good for you

I'm not being critical. I just mean I honestly answered the question that was put to me the way I would answer it for myself. Yes there are deeper answers but I'm not going to get into the weeds when it seems unnecessary. Apart from anything else the trigonometry is substantially easier than matrices when you're in two dimensions and restricted to rigid body motions.

#

FWIW though there doesn't seem to be a matrix class in pygame, so it's pretty much limited to the functionality in pygame.transform.

onyx basin
#
@property
def x(self): 
    dx = self.ship.image_copy.get_width() / 2 - self.ship.offsets["thruster"]
    
    return dx * (math.cos(self.ship.angle) - math.sin(self.ship.angle))
@x.setter
def x(self, value): self.x = value

@property
def y(self): 
    dy = self.ship.image_copy.get_height() / 2 - self.ship.offsets["thruster"]

    return dy * (math.cos(self.ship.angle) + math.sin(self.ship.angle))
#

dx and dy values while moving

dy -16.5
dx -36.0
dy -36.0
dx -16.5
dy -16.5
dx -36.0
dy -36.0
dx -16.5
dy -16.5
dx -36.0
dy -36.0
dx -16.5
dy -16.5
tardy quarry
unreal forge
unreal forge
onyx basin
#

Thanks anyway it's a good solution too I guess

tardy quarry
onyx basin
onyx basin
# unreal forge You haven't done the calculation correctly, the offset `(dx, dy)` gets transform...

It still acts weird c:

@property
def x(self):
    dx = self.ship.sprit_copy.get_width() / 2 - self.ship.offsets["thruster"]
    dy = self.ship.sprit_copy.get_height() / 2 - self.ship.offsets["thruster"]
    # dx = dy = 50
    print("dx", dx)

    return dx * math.cos(self.ship.angle) - dy * math.sin(self.ship.angle)
@x.setter
def x(self, value): self.x = value

@property
def y(self):
    dx = self.ship.sprit_copy.get_width() / 2 - self.ship.offsets["thruster"]
    dy = self.ship.sprit_copy.get_height() / 2 - self.ship.offsets["thruster"]
    # dx = dy = 10
    print("dy", dy)

    return dx * math.sin(self.ship.angle) + dy * math.cos(self.ship.angle)
unreal forge
#

The thing you are transforming is just the offset between the two sprites, you still need to add that transformed offset back on to the centre of the parent sprite.

#

Think about how you are calculating and using that offset.

#

And also remember that the arguments to sin and cos should be in radians.

#

Think it through and you will get there.

slender igloo
onyx basin
#

Well friends, thanks but I guess I need to sleep now. Tomorrow morning I will try to fix it

#

Have a good one!

gritty terrace
#

I recorded the full campaign of our game, Asteroid Chase. We invite you to play the game, despite the broken requirements.txt file 😉
https://youtu.be/b31-toqAYNI

What is this game about?

You play as Jake. He is a police officer from the Outer Ring.
He has just arrived in the capital to repair his rusty police ship.
His plans change when he hears about a grand theft on the police radio.
Help him catch the thieves of the imperial crown!

Game created by Team Vegemite Pierogis!

Credits:
Game Design: VV...

▶ Play video
fickle laurel
#

this is so dope

#

niceee

lusty wasp
lime tendon
#

@onyx basin !iv nice game

onyx basin
#

@unreal forge It is working pretty, thank you c:

#
def __init__(self):
  self.offsets = {"thruster":(80, -10)}

@property
def rect(self): return self.sprit_copy.get_rect(center=(self.origin))

def offset(self, key): return self.offsets[key]

@property
def x(self): return self.ship.rect.center[0] - (self.ship.offset("thruster")[0] * math.cos(self.ship.angle_rad) + self.ship.offset("thruster")[] * math.sin(self.ship.angle_rad))
@property
def y(self): return self.ship.rect.center[1] - (self.ship.offset("thruster")[0] * -math.sin(self.ship.angle_rad) + self.ship.offset("thruster")[1] * math.cos(self.ship.angle_rad))

round mulch
#

!paste

proud ruinBOT
#

Pasting large amounts of code

If your code is too long to fit in a codeblock in discord, you can paste your code here:
https://paste.pydis.com/

After pasting your code, save it by clicking the floppy disk icon in the top right, or by typing ctrl + S. After doing that, the URL should change. Copy the URL and post it here so others can see it.

dusky shard
#

lol

rose escarp
#

Just found out about this competition! Looks really cool, is there a date set for the next one yet? I want to put something in my calendar so that I make sure I don't miss it!

woeful tree
onyx basin
#

Oh yeah like 8 days left to rate games pithink I should start playing more of them

little apex
#

hm yes

deep crystal
warm marsh
#

i had to go to this link to download it

#

the game uses pygame zero i think

deep crystal
#

Oh weird. I guess there's two separate entries, and the one you linked doesn't have an upload marked "final" so it can't be rated.

woeful tree
#

Yep!

valid prairie
#

What if nobody plays my game?

tardy quarry
onyx basin
#

Что за геймджем?

valid prairie
#

You have one week to develop a game in Python

hybrid granite
#

and that week is over.

lusty wasp
#

You can develop a Python game in a week any week you like.

#

It just won´t be part of the competition. 😉

shut gull
#

it just doesn't feel the same

unreal forge
proud ruinBOT
north ocean
#

because its a 7 day competition, but they could choose any 7 consecutive days to create a game

unreal forge
#

Very fair

north ocean
#

so to choose the correct 7 days, there's technically only two correct weeks

#

although we could weight a portion of it

#

^ this is the theme for next pyweek yall

#

"meta pyweek"

unreal forge
#

How do the theme options get picked?

lusty wasp
#

@north ocean but you can take anywhere from 1-7 days to create that game, some have submitted PyWeek entries made in 3 days

north ocean
#

true

#

so we have to figure out the odds for someone to finish their game

#

and that increases the possible choices to be during pyweek

unreal forge
#

PyWeek: The Game

real eagle
#

I should make a game like that.

#

That is a choice game.

#

You choose which path you want to go on, and make a game.

#

And then rate others.

#

An emulation of PyWeek.

unreal forge
#

It could even populate itself with the entries in the current PyWeek.

#

Including itself!

real eagle
#

That would be cool.

unreal forge
#

It probably shouldn't steal your browser cookies and rate itself 5/5/5.

real eagle
#

Is there a PyWeek api?

real eagle
unreal forge
#

There's whatever the game downloading tool does.

real eagle
#

Wonderful. Is that open source?

unreal forge
#

Which doesn't contain the other data about entries.

#

But you could also just parse the entry list.

real eagle
#

Then time for PyWeek: The Game. Name ™️ed by Chard

unreal forge
#

You can have the name.

#

Although maybe some kind of recursive name?

#

"GAME: A Meta-Entry"

real eagle
#

Ooh, that's smart.

unreal forge
#

Take it. I look forward to playing it.

worldly moth
#

I don't know about python, but may I user test it? I can look for bugs..... 🙂

#

So I was referred here from another channel, that game dev was even possible. I was wondering if there can be a game that people play to be hire in a company have to play to evaluate them. Like an moral choice, knowledge test, social test-RPG 🙂

dire vigil
#

hey peeps

onyx basin
#

Man, there's so many games to rate samSlain

#

How common is it that most people bother trying and rating everyone else's games? rooThink1

leaden ginkgo
#

Is pygame still used most nowadays?

lusty wasp
#

@onyx basin Some simply sample x games at random plus play the ones that look promising

#

@leaden ginkgo it varies, pygame is used a lot because it´s relatively low-level, but I´ve also seen use of pyglet, wasabi, pygame zero, arcade, and of course Panda3D

limpid heart
#

ursina is a fun panda3d wrapper

tardy quarry
#

is there any automated scanning for malicious code in the game submissions? I got nervous downloading 40+ zip files to install and run their dependencies on my machine

limpid heart
#

IDK that there is, but at this point I Feel SOMEONE Would have had to have found it

onyx basin
#

@hot flume (sorry for the ping, you're the first person I thought of) after great consideration, I have decided to give the pydis staff entry the Duckiest Game Award. Congrats to everyone who worked on aaaaAAAA!

hot flume
#

haha, thanks! I'll let them know~

sleek sail
#

If I had made and separately entered my ducky wheres waldo that would've been mine...

onyx basin
#

Lol it would have

woeful tree
hot forge
#

I tend to do the ones that look interesting to me first, then anything that looks particularly polished (as ideally I want to have seen the top few when the results are declared so I know which is which) - and after that I randomly sample from games I think won't have attracted many views :)

twilit canopy
#

an fxr in python is already cool, but splitting the backend into a separate package might make it even more useful

woeful tree
#

What backend?

twilit canopy
#

oh nvm

#

sorry

woeful tree
#

The whole thing is a separate package

twilit canopy
#

i just saw the [gui]

woeful tree
#

Oh, yeah, doesn't have a Pygame dependency by default

twilit canopy
#

convenience to distinguish floats for outside callers?

woeful tree
#

It's because the original code that I was porting used both names like p_xxx and xxx and I didn't want to lose track of them when I was in the middle of porting

twilit canopy
#

ah ok

woeful tree
#

Actually, not sure if it used them or I added them; in the original code lots of these variables were globals that were mutated while generating, which I did not want to do

obtuse sentinel
#

is learning pygames worth it?

woeful tree
hybrid granite
#

lmfao

#

nice analogy.

woeful tree
valid prairie
#

@woeful tree Curious: why do you use a for loop to copy data to _params instead of just doing _params.update(kwargs)?

woeful tree
#

To trigger the side effects of the descriptors' __set__() methods

#

Validation and conversion, at least

valid prairie
#

Got it

#

I misread the code

#

I thought you were using setitem instead of setattr (which IK doesn’t exist, but that’s what I thought I read for some reason)

unreal forge
#

Also it's such a cute function: ```python
def setitem(a, b, c):
"Same as a[b] = c."
a[b] = c

#

The docstring contains the entire function body.

woeful tree
# unreal forge It totally exists! <https://docs.python.org/3/library/operator.html#operator.set...

The actual version you probably use is in C: https://github.com/python/cpython/blob/e1903e11a3d42512effe336026e0c67f602e5848/Modules/_operator.c#L540

operator is a funny module that defines lots of Python functions and then imports faster implementations from _operator and overwrites them all

unreal forge
#

I guess that means it can be used in non-CPython implementations just as well. Does this mean that the Python implementations are generally untested though?

unreal forge
#

They are tested! They do this sneaky thing: ```python
import sys
sys.modules['_operator'] = None
import operator

quick spindle
unreal forge
#

It being a function means you can do things with it like pass it to map. That's probably faster in cases where what you need is map.

#

But I imagine the _operator implementation will just call the same C function as the corresponding opcode would.

twilit canopy
#

@woeful tree are we allowed to use meme images in diary entries?

#

not from the perspective of memes in general, but copyright reasons if we're discussing inspiration for the game during brainstorming

woeful tree
#

I don't know, IANAL. I don't think PyWeek has rules about licensing for diaries so I guess it's the same grey area as the rest of the Internet

twilit canopy
#

hmm, I'll play it safe and link a page describing the history of the meme.

#

ty

unreal forge
#

Five hours to go. Has anyone played every game?

tardy quarry
#

I attempted every game, I couldn't get some to play and didn't spend enough time to debug "file not found" issues that theoretically I could fix

unreal forge
#

Good on you for trying them all though. I've only done ten, I feel bad about that.

lusty wasp
#

Imagine how bad I feel that I've only had time to try two :-/

unreal forge
#

Gz @lusty wasp !

onyx basin
#

I forgot the judging ended. My game won? rooPog

unreal forge
#

Well done! I'm sorry I didn't get round to playing yours, but I know my teammates loved it.

onyx basin
#

And Halt! and Badge Blaster, both definitely deserving yes

#

Thanks vvComfies

#

People were right, I should have made the levels easier and the music was terribly repetitive LuL

unreal forge
#

Don't second guess yourself, the important thing is to have something at the end of the week.

valid prairie
#

Yup!

real eagle
#

Wonderful job everyone!

valid prairie
#

And people told me I didn’t have enough content even though I slaved away all week 😔

onyx basin
#

Building a game in a week is hard aniblobsweat

unreal forge
#

🥳

#

It is hard, setting reasonable goals is hard, learning to ship is hard

onyx basin
#

@hot forge To answer your message I have no idea if this game contains a potential exploit where you could execute something problematic with the code blocks given There was no such protection since I had no clue how to properly sandbox in python WolfLol All I did was was set globals and locals to {} and set open=None as a feeble way to prevent messing with stuff.

#

Though it's no more dangerous than a normal python interpreter 02shrug

hot forge
#

:D

#

also congrats on the win :D definitely deserved

onyx basin
#

Thank you discoHug

real eagle
#

Congrats!

green trench
#

Congrats on the winners of Pyweek 31

unreal forge
onyx basin
#

Yes it would LuL

#

Well actually, there was a 2 second timeout on the code execution rooThink1

green trench
#

@onyx basin Its especially hard when you have a day job to juggle with as well as participating in the event.

hot forge
#

haha yeah

#

I've never done a pyweek where I didn't take holiday to have time for it

#

that's scary

green trench
#

I do notice one problem I'm having while participating in these pyweek game jams. My "production" value seems rather lackluster. While true that I could make a solid game. The one thing I seem to be struggling the most is the "Aesthetically pleasing graphics, and decent sound/music quality. This is my 3rd attempt at pyweek and 2 of the 3 have been successful

hot forge
#

and I didn't even do any coding!

green trench
#

This run however I went in with the smallest scope possible because of my day job. Had to make a compromise somewhere.

#

While I'm here I got to ask. What constitutes as good "production"? If I want to be a decent indie game dev, This particular trait needs the most improvement.

onyx basin
#

UI, art, sound, clear game objectives & putting that all together I suppose rooHmm

hot forge
#

I think people interpret "production" differently, but to score well there's a lot of things that contribute

#

like obviously, having nice graphics helps (not necessarily complex graphics, but they've got to be fit for purpose and look nice in the context they're being used)

#

music and sound make a big difference too. If your game is very limited in sound that feels very empty

onyx basin
#

yeah, even just a tiny bit of sound helped me enjoy a lot of games

hot forge
#

but after that, you also want to put lots of work into UI and player experience - everything needs to work, you want to make it so that it's obvious what things do and controls are intuitive. Menus and UI need feedback (I'm mousing over this hitbox, so it changes colour and maybe makes a little quiet noise so you know what you're mousing over)

#

things like "it has a title screen, and a menu, saves your progress, has an end screen and credits" seem obvious, but a lot of game jam games skip over them

#

getting all that stuff in there takes time and work too

green trench
#

So I've noticed. I tend to primarily focus on the gameplay aspect and making sure everything runs fine with almost minimal to no glitches/bugs. Sound music and graphics tend to come next. It seems I've been falling short on the latter 3.

hot forge
#

Like, this time we scored super high on production, and we had (I hope) nice graphics, but we didn't score super high on production because we had nice graphics, we scored high on production because we had menus and dialogue scenes and voice acting and sound effects and visual feedback and so on.

#

a lot of people kinda rate by "feel" as well, and we put a bunch of thought into how these things complemented each other - part of the reason that our dialogue is short and goofy and cute is because the art is, etc.

green trench
#

Were you in a team in this game jam?

hot forge
#

yes :)

#

I drew the art and wrote a bunch of dialogue for copcake caper

#

:p

green trench
#

So by default having a team has an advantage and the ability to have different people do different tasks...provided they are coordinated.

#

nice raccoon pic btw

hot forge
#

well, there's a good reason why "individual" and "team" are different categories :D

green trench
#

True

hot forge
#

although having said that, there's plenty of pyweeks where the individual score outclassed the team score (and the individual game was better)

#

that's something I kind of subconsciously think about while rating too, if a team is 2 people or an entry is solo entry, I kinda consider that a bit when rating a game

unreal forge
#

Top individual entries always score higher on fun and innovation. Top team entries always score higher on production.

#

Caveats around overgeneralisation etc. etc.

hot forge
#

but yeah, when you have a team of people, you can afford to have a dedicated artist, and then they can devote quite a lot of time to polishing that stuff

#

whereas an individual entry has so much other stuff to do

#

like, one thing that's always been part of my experience when making art for these jams is sometimes I'll draw something, and it'll need adjusting or altering to "look right" - and that tweaking process takes a lot of time

#

but for a solo entry you make the asset and just kinda go with it

#

(having said that, I cut plenty of corners myself - none of the art is remotely as polished as I wanted it, but that's what timed challenges are about)

unreal forge
#

@green trench I've never done a solo entry. It sounds like a lot of time pressure. But I think what I'd try to do would be to make sure I don't overreach, that I can ship something that is a clean end-to-end experience. Scoping is hard though...

green trench
#

@unreal forge I made that mistake with the scope when I attempted pyweek 28(Tower)

hot forge
#

but yeah, those are the things that I think really affect production. UI especially is something that is often overlooked for how much it adds to the "professional feel" of a game

green trench
#

in fact I'm still working on this tower game to this day.

#

about a month or 2 was spent solely on sprite art

hot forge
#

:D

green trench
#

Going to have to speed it up however. Working on a game for x amount of years takes its toll. I want to do something else for game dev. And I certainty don't want to make a habit of starting a project only to leave it half done.(I already have 1-2 projects like that)

unreal forge
#

You have to ship, that's part of what's nice about game jams, it forces the issue

green trench
#

Yeah and bundlers and packagers like pyinstaller doesn't seem to be the way to go long term. I've seen python games from other developers shipped where almost "everything" is in one application.

#

and you can just run from the application without having to search through 40-50 files to find the executable.

unreal forge
#

You can ship as a single .exe with pyinstaller.

green trench
#

@unreal forge I tried to do something like that in this run, but I ended up making a shortcut that doesn't work.

#

obviously its not that simple 😛

unreal forge
#

That was the windows build script I set up for us this time.

#

It probably should've also tried to package the ffmpeg DLL but apart from that it seems to have worked pretty well.

#

No, though. It isn't simple. 😦

hot flume
#

@onyx basin Enjoy your pink name :D and congrats

#

Other PyWeek winners, please tag me and I can apply the role~

onyx basin
#

Pink OhIPanda pinkpixel thank you rooYes

meager leaf
#

:o congrats to all the winners!
hopefully i can join next pyweek and make something cooler
i def learned a bit more about what i am capable of

hybrid granite
#

pyweek winners announced?

#

hmm

#

nice.

onyx basin
#

What's with the cat in lots of people's discord names? rooThinkingNut arcadecat

hybrid granite
#

its cute.

#

one thing I've noticed with this server is how patterns in nicknames spread to many users.

#

(gurkan)

onyx basin
#

gurkan? vvBlank

hybrid granite
#

lot of people with that name.

onyx basin
#

Oh WolfLol

#

Hadn't noticed

hybrid granite
#

credit goes to this person @Vestergurkan

#

😉

lusty wasp
#

Congrats to everyone!

hybrid granite
#

congrats to your team!

lusty wasp
#

Looks like you've been busy ;-)

hybrid granite
#

yes yes I was. am.

#

haha.

feral dagger
#

Hey, okay okay okay so what modules should i learn for starter Pygame?

#

like basic basic

#

I know some basic Python and some file handling is it

lusty wasp
feral dagger
#

wait its not-

#

pyweek game jam tho-? 0.o okay i suppose I'm confused lol sorryyyy

pearl oxide
pearl oxide
feral dagger
hybrid granite
hybrid granite
pearl oxide
hybrid granite
#

oh.

sly oyster
#

Turns out that if u make game in dark room others cant see anything in light because in the game colors are dark ;)

lusty wasp
#

Calibrate your monitor's gamma curve

fresh jacinth
#

Congrats on PyWeek btw @onyx basin! 🙂

solid star
#

Grats to the winners 🙂

onyx basin
random sinew
#

Congratulations!

real eagle
#

Congratulations everyone!

cinder cliff
#

Congrats everyone :D :D :D great games here!

unreal forge
#

Gotta start training for next time!

#

Like... Python workouts.

#

Reps are easy with loops

onyx basin
#
for i in range(1000):
  print('do a push up')```
#

rooHmm does that work

unreal forge
#

Nice! Maybe this though: ```python
for i in range(1000):
if i < 5:
print('do a push up')
else:
raise TypeError('not built for this')

lusty wasp
#

Throw an await random.choice(distractions) in there and that'd be right for me

hybrid granite
#

One last message in #pyweek channel until it gets archived.

covert seal
#

this channel doesn't get archived, we just move it slightly lower in the channel list

hybrid granite
#

interesting.

valid prairie
valid prairie
real eagle
valid prairie
#

Ah

#

The discord I spend the most time in has Mods (which gets pinged) and Grail Sorters (which has the perms). (It follows a sorting theme)

lusty wasp
hybrid granite
#

yes py_strong

primal orchid
#

nc

bright vigil
#

when is the next pygame

real eagle
limpid heart
#

I think closer to 5 than 6 at this point

bright vigil
#

guys

#

does anyone know how to do a cutscene in pygame?

lusty wasp
onyx basin
#

What is this channel for?

lusty wasp
#

@hybrid granite Wow! Amazing! Congrats!

pliant atlas
#

The spring pyweek is over but you can participate in the fall one

real eagle
pliant atlas
#

whats "happens twice a year"

real eagle
#

Apparently biannual is used sometimes, and semiannual is used too.

rocky yoke
#

all dis stff be making me confuzzled lol

low knoll
low knoll
unreal forge
#

There's also biennial.

#

Good communicating means making yourself understood, so I recommend avoiding all of these words.

#

Except maybe semiannual, that one seems unambiguous.

lusty wasp
#

semiannual means every half year, that is the word that applies to PyWeek.

north pivot
#

which ide good for pygame

pliant atlas
#

Wrong channel , bud

#

But PyGame doesn’t have an IDE

#

any editor/ide would work

#

@north pivot

onyx basin
#

hello

onyx basin
#

!hel0

lyric fog
#
​No Category:
  help Shows this message

Type !help command for more info on a command.
You can also type !help category for more info on a category.
shut gull
#

<@&831776746206265384> ^

onyx basin
#

!hel0

fresh jacinth
#

!help

shut gull
#

lol

onyx basin
#

well

shut gull
#

!help

viral idol
#

!ban 811872674614739014 self botting is against Discord's ToS

proud ruinBOT
#

:incoming_envelope: :ok_hand: applied ban to @lyric fog permanently.

marsh turtle
#

That was unexpected...

pliant atlas
#

wowee

onyx basin
#

oh.

#

so like, you cant use selenium to automate certain processes like deleting messages?

#

using your authority

#

in discord?

#

welp ig i shouldnt make a dm purger then

lusty wasp
#

Why are you asking this in here? Just read the Discord ToS again if you want to remind yourself of what you agreed to

gloomy ivy
#

!rank

lilac ermine
inland wasp
#

!rules

proud ruinBOT
#

The rules and guidelines that apply to this community can be found on our rules page. We expect all members of the community to have read and understood these.

dark basin
#

ah thanks

hot flume
#

Thanks again to everyone who participated in PyWeek!
The next PyWeek is not scheduled yet, but we'll announce it as soon as a date is decided on. It'll most likely be in the Fall of this year.

Wondering what PyWeek is?
PyWeek is a twice-a-year game jam that has been running for the past 15 years. Starting on the first day of the jam you start coding, designing, and developing your game. This can be done as an individual or with a team. By the end of the 7 days you must submit your entry on the PyWeek website for it to be counted as a valid submission. Visit pyweek.org for more details!

north ocean
#

wow

hot flume
#

@north ocean what leads you to that conclusion? The only thing in there about python was the tags skewed towards python and that was all data science related

north ocean
#

specifically that pyweek was the same week that they tracked the data

#

they only tracked the data over a few weeks time, and pyweek was one of those weeks

#

We collected data for two full weeks, from March 26th 2021 to April 9th 2021. The following analysis is based on the behavior during that time.

#

it would be interesting to see if they are different if it was tracked during not py week

hot flume
#

PyWeek was the first of the weeks they tracked. But I would be surprised if ~90 users impacted the stats of a site that gets literally millions of hits a day.

north ocean
#

i thought pyweek was bigger than that oops

hot flume
#

But even in the article, the stuff that mentioned python was all data science related, no game dev related.

delicate jay
sour goblet
onyx basin
onyx basin
#

!e import pygame

proud ruinBOT
#

@onyx basin :x: Your eval job has completed with return code 1.

001 | Traceback (most recent call last):
002 |   File "<string>", line 1, in <module>
003 | ModuleNotFoundError: No module named 'pygame'
onyx basin
#

!e pip install pygame

proud ruinBOT
#

@onyx basin :x: Your eval job has completed with return code 1.

001 |   File "<string>", line 1
002 |     pip install pygame
003 |         ^
004 | SyntaxError: invalid syntax
dawn yarrow
#

how does pyweek game jam work?

onyx basin
#

twice-yearly game jam that lasts a week where solos and teams can compete bongoCat

dawn yarrow
#

got it, thanks!

misty cloak
#

Is the game still going on?

barren harness
#

When does this jam happen?

onyx basin
#

Next one would be in 5 months or something rooThink

sacred jasper
viral idol
#

Where a user uses their own account, instead of a bot account

sacred jasper
viral idol
#

Because it's part of Discord's terms of service, which you agreed to when you created your Discord account.

sacred jasper
deft fulcrum
#

when will the next gamejam be

dawn yarrow
proud ruinBOT
onyx basin
#

which you will be using to carry out tasks

#

for example, you could self bot yourself to spam in multiple channels

onyx basin
#

for self botting

#

using selenium or ppadb you could easily automate multiple things

#

making a program use your authority in discord is against TOS

valid prairie
dim sphinx
#

hi

uneven root
errant niche
#

i think with the new update, all of intents for selfboting are disabled, so you wont be able to see message content or user data any more

raw sandal
#

For all those that gave up frustrated that the 'speech to text' input did not work in our game: here is a version that supports text input through the keyboard: https://pyweek.org/d/7319/

onyx drift
#

Kinda sucks. I made this RPG and I want to share it

spare bison
hybrid granite
#

or...share here?

static moon
#

,

sturdy totem
#

i wanto to be tall

spare bison
hybrid granite
#

conversation 100

#

I wonder why they're keeping this channel up even tho the next pyweek is months away. Not even being archived? 🤔

sullen bear
#

There is no reason to archive it, PyWeek is a partner of ours and we're large fans of the event, hence we keep the channels up year round (though do retire team forming).

hybrid granite
#

nice.

rose rampart
#

who knows django?

real eagle
snow sentinel
#

What's a pyweek game jam?

onyx basin
#

See channel description

#

The next PyWeek has not been scheduled yet, although it will be held roughly in the Fall of 2021.

PyWeek is a twice-a-year game jam that has been running for the past 15 years. Starting on the first day of the jam you start coding, designing, and developing your game. This can be done as an individual or with a team. By the end of the 7 days you must submit your entry on the PyWeek website for it to be counted as a valid submission. Visit pyweek.org for more details!

molten girder
#

Lol

woeful haven
#

I saw Godot has 3rd party Python bindings and does that count? Or is that not allowed in PyWeek

woeful tree
woeful haven
#

Well, that's good to know if I ever join

woeful haven
woeful tree
#

I have spoken the the author of godot-python before, and he warned me that godot-python isn't well supported by Godot and not to expect production quality software

woeful haven
#

oof

woeful tree
#

That may have changed, of course, it may have matured

#

What's considered as supporting parts btw?

I don't recall exactly how this is expressed in the rules, but game logic should be in Python, even if your engine uses other languages.

dark plank
#

when i sthe

#

i mean

#

when is the next jam

real eagle
#

Some time in Fall 2021. It hasn't been scheduled yet.

dark plank
#

yeaa

elder remnant
#

Hi

copper badger
#

Hey whats game Jam?

#

cant see a pinned post.

copper badger
#

thank you very much Lu

#

Out of curiosity is there a way to get to the top of a thread quickly? I wish everywhere used Vim commands.

thin heron
#

In a channel Ctrl + F -> press enter and filter the results to see the oldest messages first. (That's how I do it, there might be other ways)

copper badger
#

Legend 😉

onyx basin
#

@glass atlas Feel free to try out bot commands in #bot-commands, this channel is for the pyweek game jam

onyx basin
glass atlas
glass atlas
#

what's the topic of this pyweek

thin heron
cursive sequoia
#

what is pyweek game jam??

next cave
#

?

shell moth
onyx basin
#

can i participate to this py week game jam

#

PLS

#

ifyou wnat please

onyx basin
real eagle
real eagle
split plank
#
limpid heart
hybrid granite
limpid heart
#

They might wanna update the channel info

hot flume
#

The channel description is still correct. We don't have dates for the next PyWeek yet.

limpid heart
#

haha fall, I read feb

#

I should work on my letter reading skills

sleek sail
#

need to deyank it it's tenured now by this point

pale kiln
#

Where do i submit

real eagle
pale kiln
#

U_u rly how it be

real eagle
#

PyWeek is only a week long, and it was in March/April

deep shuttle
#

mmm jam

astral shore
#

strawberry jam

meager bear
#

can you do 3D in python

split cradle
onyx basin
delicate owl
#

Technically 3d on a screen is just a 2d image so you could technically do 3d with a 2d module, it would just be a lot of unnecessary work

onyx basin
#

you can try to use ursina engine

#

its a 3d game engine for python

weary thunder
#

yeah

meager bear
#

Oh thank you that works

#

Ursina would be really good

fierce agate
#

how do u make games in python

#

i use pygame

#

but its not very efficient to make good games

onyx basin
#

oooo i cant wait for pyweek game jamm

#

i wanna flex my pygame skillz

echo hemlock
#

my pg has turned to ph to alternate module help..

modern obsidian
#

Hi guys

#

What's this channel for

#

I'm kinda a python beginner right now

thin heron
radiant shoal
#

That sounds fun!

modern obsidian
#

Wow that seems fun

onyx basin
#

Yea, does sound fun.. would be fun if you knew how to use pygame unlike me :p

wide cove
#

this seems fun.

karmic scroll
#

It is fun. Now, go learn pygame and join us. 🙂

potent kiln
#

i know a tiny bit of pygame, but it's only a GUI and a custom icon ;-;

onyx basin
#

You guys know pygame?

serene nexus
#

a bit

#

can do basic graphics ig and refresh screen

#

squares and fonts

wide cove
#

I got alot to learn, I will contine to learn and maybe I will join you all

rain prawn
#

@vast monolith i understand, i regret what i have done, please

cunning matrix
#

what an I doing wrong

#

am

mellow grotto
#

you need to have the image in the same directory as the .py file, or have the full path

fiery hare
#

hey

#

i've tried working with pygame took a long time I recommend either pycharm or sublime text sublime is a bit hard to sit up but good luck

gritty cove
stiff geode
#

Some good pygame courses recommended?

bright fable
hearty lodge
unborn star
#

What is pyweek?

arctic prairie
near pilot
onyx basin
onyx basin
# cunning matrix

It's not in the same dir. You need to put it in the same dir as your main.py.

Otherwise you can specify the entire path and keep fkimage.jpg in your Desktop.

restive skiff
#

no one in q&a

sullen bear
# restive skiff lmao

let's keep messages on topic for this channel, there is no one there since the event is not running

bitter tartan
#

I'm starting to like pygame man, it's amazing.

north ocean
#

Why does this channel stick around but code jam doesn't?

onyx basin
#

Good question pithink

sullen bear
onyx basin
#

are we supposed to use only pygame?

pearl oxide
onyx basin
#

ok 😄

onyx basin
#

,

dawn obsidian
#

not particularly aware of game dev, what kind of games are done in python?

jaunty lake
#

platformers, rpg, anything you can think of - if you have the time 😉

pale kiln
#

Can somone help me with colisions im making a tile goame nothing do do w game jam im.stuck on the same probelm for week pls pls help hod do i code colision without a class

#

All of those stupid ass tutprials are like: yea colisons is ewhen 2 blocks colide anyhow here is the code from preious video:(1200lines)

#

PLS HELP

#

Im act going mad

#

Pls help

#

I cant takr this no morw

pale kiln
#

Pls for thr love of Satan help

thin heron
proud ruinBOT
#

:incoming_envelope: :ok_hand: applied mute to @full plank until 2021-06-18 11:28 (9 minutes and 58 seconds) (reason: duplicates rule: sent 4 duplicated messages in 10s).

bold plank
left minnow
#

hello im new to python programming, but i know basics, im making a pygame, i have created a window and added an button image, but what i want is that when u press the button it spits out jokes, how can i do this? can someone quickly show me now??

thin heron
winter forge
#

Hello

stark talon
#

hello

odd hill
#

robux

clear turret
#

Hii

vast crest
#

im full of bobux

torpid elbow
#

Hi

mint abyss
#

hi

thin current
#

Hello

#

hello world

clear turret
#

Hii 👍

distant creek
#

Hey!

barren harness
#

Hello

vast crest
#

Programmed to know and not to feel

#

Not even sure that this is real

#

Hello world

#

Ooooh will i find a love

#

Oooooh or a power plug

#

OoOoOoh Digitally
I-So-La-Ted

potent hill
#

nice

cosmic obsidian
#

If the website isn’t down and you’re getting that, check your hosts file

real eagle
#

That site is down

#

The Pixels site was taken offline

sullen bear
azure lagoon
#

hi

#

what is this channel about

thin heron
hybrid granite
lusty wasp
#

@hybrid granite it is a key we used for testing the gameover sequence, we forgot to take it out before release 😳

hybrid granite
#

interesting.

#

for easily getting to the gameover sequence? instead of waiting to get hit?

#

hmm

mellow hawk
#

Smart

onyx basin
#

Next game jam when :(

#

!mute 742308736235995138 Spamming isn't productive

proud ruinBOT
#

:incoming_envelope: :ok_hand: applied mute to @misty oriole until 2021-07-10 15:51 (59 minutes and 59 seconds).

onyx basin
solemn patio
#

some time in Autumn is all it says

rigid palm
#

Is there a game jam going on at the same time as the codejam?

real eagle
rigid palm
misty turtle
real eagle
rigid palm
hollow scroll
#

HI guys , how to open project python in pycharm

#

i'm creating project by cmd terminal

#

like folders and files

sleek sail
#

Create Project, select folder, use existing files; something along those lines - not really the right channel for that

tender temple
#

Pycharm is a bit tricky and not handy for beginners, therefore you should definitely see some yt videos.

hollow scroll
#

Hello, is there a tool to save the code and the command to do?

stuck mason
#

hii all

hollow scroll
#

hi

calm bear
#

hi @sullen bear

tulip swan
#

hi all

bleak marten
#

hi :)))

hollow scroll
#

Hi guys

#

How to upload a python django website to shared hosting with Godaddy , Is there a video that explains this?

summer rapids
onyx basin
#

its going to be fall soon

#

scheduling when

short dawn
#

are you asking for scheduling scheduling

deft igloo
#

Hey I must ask what is pyweek?

unique glade
#

That's what it is

#

@deft igloo

spark orchid
#

Hi all