PewPew Live is the third installment of the PewPew game series. I defined it as a twin-joysticks
arcade shooter with a retro-minimalist aesthetic.
Multiplayer is the main difference with PewPew 2, and the reason PewPew Live exists in the first place.
The initial plan was to support online multiplayer, but this proved to be very complex. For now the game
Support for custom levels
Custom levels is another big new thing. Allowing users to create their own levels will
increase the replayability of the game.
I had to choose where on the spectrum would the creation be: should the players be given building blocks that they
can remix (low barrier of entry, low variety of levels), or should the players have
to directly write code (high barrier of entry, high variety of levels) like I do when creating levels?
I chose the later because that's what I would have liked as a player, it introduces people to programming, and
tooling that lower the barrier of entry can always be built on top.
New game modes
Unlockable ships, trails, bullets
The original PewPew was started around 2009, at the beginning of the Smartphone era. Many assumptions
done back then do not make any sense in today's landscape.
On top of this, the original game's feature set grew organically without much planning.
I took PewPew Live as an opportunity to fix everything, including:
Support for high-refresh rate screens
PewPew Live supports refresh rates higher than 60 fps because the rendering system can interpolate between
Abstraction of the rendering API
PewPew 2 was directly using OpenGL. PewPew Live has an abstraction over the rendering API that improves
portability. For example, using directly Vulcan should be possible.
Now that shaders are available on almost all mobile devices, PewPew Live can depend on them for animations.
Resizable window support
The UI now dynamically adapts to the size of the window.
I had retrofitted determinism in PewPew 2, but there were some bugs that I never solved. Now the game is
designed from the start to be deterministic. This should make it harder to cheat.
Overall better game architecture of the game
It gives me more flexibility to do weird things. E.g. you can run multiple instances of the game
In PewPew 1 I was editing SVGs in Adobe illustrator and exporting them to PewPew. This time around I
invested time to make a tailored editor for graphics and level. This should lead to higher quality models
Better collision detection for walls
In PewPew, a single wall was actually a quadrilateral with a width. This made editing levels painful, and if
the wall was too thin compared to the velocity of an entity, collisions would be missed. This time around,
the walls are actual lines and collisions can't be missed.
In PewPew sound was made of .wav files. In PewPew Live, the sounds are synthetized at runtime. This allows
more flexibility in the sounds, and takes less space. It does limit the kind of sound effects the game can
have, but the upside is that it makes the sound effects more consistent.
The initial reason UTF-8 support was added was so that I could display my first name correctly. Now UTF-8 is
used all over the place, for example to display icons in buttons.