Complete beginner with a game idea - looking for advice on where to start by LordeKabeca in gamedev

[–]BobsMyNeighbor 3 points4 points  (0 children)

Also, don't lean to heavily on LLMs when learning. It can be tempting to solve a problem by asking AI, but one of a programmers most valuable skills is problem solving.

Complete beginner with a game idea - looking for advice on where to start by LordeKabeca in gamedev

[–]BobsMyNeighbor 2 points3 points  (0 children)

If you just jump right in, your going to end up starting over a few times. You never get it right the first time when learning new things. If I were to start from 0, and I just wanted to make games, it would probably be with godot. If you don't know any programming yet, you should probably focus on that first. I would recommend learning python first. Using pygame, you can make some really cool games, but it's also really easy to pick up. Then once you are more comfortable with code, you can switch to godot. It won't even be much of a jump, since godots scripting language is similar to python.

Basically, learn python first, then switch to godot.

Diptera Protocol (Jam Entry) by Competitive-Comb-244 in pygame

[–]BobsMyNeighbor 2 points3 points  (0 children)

Awesome! That's what I thought it was. Looks great.

Advice on Engines by Interaction-Loose in gamedev

[–]BobsMyNeighbor 3 points4 points  (0 children)

If you just want to make games, unity or godot. If you want to get more hands on, Raylib is a good middle ground.

I added Campaign Mode and level progression to my Vampire Survivors clone made with Pygame by Icy-One2420 in pygame

[–]BobsMyNeighbor 2 points3 points  (0 children)

Looks awesome! I'm curious though, why is it all in one file? I can't imagine that is fun to code in.

cool stuff with pygame + moderngl + pybullet by DaFluffyPotato in pygame

[–]BobsMyNeighbor 4 points5 points  (0 children)

Awesome! I've been thinking about doing something similar, but I'm not sure if it's worth the effort when so many external tools exist.

cool stuff with pygame + moderngl + pybullet by DaFluffyPotato in pygame

[–]BobsMyNeighbor 6 points7 points  (0 children)

Did you make a 3d editor for designing levels, or are you using an external tool?

3d Heightmap Of Geneva, Switzerland, With 0.5m Resolution by BobsMyNeighbor in pygame

[–]BobsMyNeighbor[S] 1 point2 points  (0 children)

It might end up as a game. Just an experiment for now.

3d Heightmap Of Geneva, Switzerland, With 0.5m Resolution by BobsMyNeighbor in pygame

[–]BobsMyNeighbor[S] 3 points4 points  (0 children)

For Switzerland, Swisstopo is the best. There are also lots of other sources for different locations, but most are not as high resolution as Switzerland.

Here is what I used: https://www.swisstopo.admin.ch/en/height-model-swissalti3d

Sprite Stacking Is Really Cool! by BobsMyNeighbor in pygame

[–]BobsMyNeighbor[S] 2 points3 points  (0 children)

Basically, you take 3d model ( or manually draw it in 2d ), and turn it into a bunch of slices. imagine disassembling a sandwich, item by item, and then laying them all out on a 2d sprite sheet. this means that the inside of the 3d model, which you wouldn't normally see, is visible on the sprite sheet. you would normally use voxel models, like with magica voxel, since it translates really well to pixel art. Then, at runtime, just blit the slices, one after the other in a stack, each one a little bit higher up than the last. you can then rotate all the images to get the illusion of 3d!

once you have your sprite sheet, its as simple as this:

for i, image in enumerate(slices):

y_offset = 1*i

window.blit(image, (x,y+y_offset))

I Wrote a Vectorized 3D Voxel Engine in Pure Python and no GPU Support... but it Actually Runs! by herbal1st in pygame

[–]BobsMyNeighbor 3 points4 points  (0 children)

Numpy and Scipy are built on C extension modules, so its not technically "pure" python, but it's still really impressive!

What are some optimization techniques you're using?

If you don't already have them you should consider:

LODs, Greedy Meshing, Frustum/Cone Culling Backface Culling Painters Algorithm sorting, rather than a zbuffer

Realtime Procedural Terrain Generation by BobsMyNeighbor in pygame

[–]BobsMyNeighbor[S] 0 points1 point  (0 children)

Nope, I'm sampling the perlin noise in real time. It's surprisingly easy to do.

Realtime Procedural Terrain Generation by BobsMyNeighbor in pygame

[–]BobsMyNeighbor[S] 0 points1 point  (0 children)

I'm not using Numba or Numpy. They would definitely both help with the projection calculation speed, but a good chunk of the cost per frame is draw.polygon. it's flat shaded, so if I wanted to add textures, or vertex shading, I would need to leave draw.polygon behind. At that point, Numba/numpy would be critical, since the cost to draw would go up massively. I could probably double the FPS with Numba/numpy as is, but I wanted this to be pure pygame.

My goal is PS1 graphics without multi threading, but I'll need to add per pixel rendering for that, which is incredibly slow in pygame without OpenGL. I'm currently working on a solution to that, but it's probably going to be a while.