RSSAmplifier

Blog

Jfgeyelin's dev blog

Currently working on PewPew Live

jfgeyelin.comRSS feed ↗25 posts

Latest posts

Announcing PewPew and PewPew 2 Remasters

PP (PewPew) and PP2 (PewPew 2) haven't been compatible with modern devices for a couple of years now as I focused on PPL (PewPew Live), but the persistent stream of emails and comments from folks wanting to play them made me want to re-release them. A re-release was almost ready (thanks SKPG!), but then it occurred that maybe we shouldn't take the easy road of "simply" shipping a new build of the…

Unexpected Gotchas in Making a Game Deterministic

When aiming for a fully deterministic program, it is common knowledge that you have to deterministically seed your random number generators, be careful about multithreading, and the floating point computations. In this post I want to highlight a few less commonly mentioned pitfalls I encountered when making my game deterministic. Foreshadowing My game targets iOS/Android/Linux/Windows/WebAssembly,…

PewPew Live's look in a nutshell

Occasionally someone will asked how I obtained the PPL look. In a nutshell: Draw everything with lines, including the text and the various icons. It's a lot of work, but besides looking unique it creates a consistent appearance which is a thing that a lot of indie games struggle with. The lines are screen-space projected lines with miter joins. Draw the lines with additive rendering. This means…

A general state rollback technique for C++

I wanted to write this post for a while. It describes a C++ technique to implement rollback in the context of multiplayer games that I feel is quite interesting and useful. The tl;dr is: don't bother serializing individual objects, just rollback all the memory. Rollback-based multiplayer I've been working on a multiplayer version of PewPew, and for reasons that are outside of the scope of this…

Abusing constexpr to implement gettext's _() macro with zero overhead.

You usually use the C library gettext with a _() macro that returns a localized version of the text passed in parameter. For example: puts ( _ ( "Hello" ) ) ; will result in a runtime search of the string "Hello", and _() eventually returns the localized version of the string. I assume the search is implemented using some sort of binary search, so it's probably extremely fast. It's fast, but we…

Exponential = dangerous

Note: This post was initially written in 2013, right after the release of Pacifism. For some reason I never published it. It's still relevant today, so here it is seven years later. In PP2's pacifism mode, you can blow up enemies with bombs. I wanted to encourage people to take risks and not just blow up all the bombs they see, so I decided to give players an incentive to explode large amounts of…

PewPew Live released!

PewPew Live was released today on Android ! Let's go over what's new compared to PewPew 2: LAN Multiplayer 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 will only support LAN. Support for custom levels Custom levels are another big new…

Ridiculously cheap depth of field effect for lines

I'm working on PewPew's sequel, for which I've revamped the graphics. Instead of drawing lines directly using OpenGL, each individual line segment is made up of two triangles whose vertexes are computed with shaders. Getting lines in 3D space to be properly displayed on a 2D screen is not trivial. In PewPew's sequel I use the screen-space projected lines, a technique very well described in the…

Pacifism

So! Since my last post I got a new awesome job and thus worked less on PewPew and Rollin' Droid. An update for PewPew is in preparation though. It will feature basic maintenance stuff (iphone 5 support, sound improvements, small optimisations, etc...), and more importantly a new game mode: Pacifism It is inspired copied from Geometry Wars' Pacifism game mode, and even in its unfinished form it's…

Rollin Droid

I have been working on prototypes for games for a while now. I tried doing: a game where you rotate a shape and avoid projectiles a game where you race in between planets an isometric-real-time-chess game on an infinitely large board where you move a knight but there was always something in the gameplay that didn't feel right. Luckily, after playing Line Runner I finally did a prototype that…

"as seen at the Google IO"

I was watching the live broadcast of the Google IO when I got the pleasant surprise of seeing PewPew 2 as the (currently displayed) recommended app. Completely unrelated, and much more importantly, Sébastien Huss has ported PewPew 2 to the Pandora console . I've been meaning to port it to this console for a long time because it has 2 physical joysticks. I really want to thank him as he did all the…

Memcaching the right stuff

I am hosting PewPew's scores on the Google App Engine. I chose the GAE because it was free for small websites that stay under a free quota. Unfortunately for me, they recently lowered the free quota, and I started having to pay the minimum fee of $9/month. It's not much, but I want PewPew to keep on working forever, and $9 per month forever amounts to an infinite amount of money, which I don't…

Icons

When writing this post I often wrote "iCon" instead of "icon"... Damn you Apple. Anyway I got a folder full of different icons for PewPew, and I thought it would be cool to look at the evolution. The first icon shows the classic ship shooting at an enemy, but when resized to 47x47 pixels (the original iPhone's icon size) it didn't look great. I shipped the first version of PewPew with it back in…

Space War

Today, while doing my daily googling of PewPew-related news, I found a piano version of PewPew's main theme! I hope an a capella version is coming.

Keyboards

At one point during the development of PewPew, I wanted the players to be able to enter their name for the online high scores and replays. At first I started to use the native iOS keyboard, and for a couple of months that's all there was. But because I always wanted to have as few OS-specific code as possible to make the porting to different OS as simple as possible, I decided to implement my own…

Asteroids

Quick post to say that I released an update for both PewPew and PewPew 2, that includes a new game mode called Asteroids . It's of course an homage to the classic 1979 game , albeit PewPew style: lots of shooting, and lots of enemies. A few notes: To keep the retro mood going on, the ship's color is forced to white. The asteroids' shape is generated at run time: it was faster for me to write code…

PewPew in Bangkok

I was until very recently doing an internship in Singapore. I got to visit southeast asia, and while in Bangkok I saw this advertisement in the metro: It made my day :)

XPeria Play support

While it's true that Android's openness cause fragmentation which increases the work of the developers, it also allows the creation of new markets and opportunities. The XPeria PLAY by Sony Ericsson is one of those opportunities, and allows mobile game developers frustrated by the touch screen to have fun ;-) As you can see, it has buttons, but most importantly for me, it has two touch-joysticks…

Download numbers

When reading other's developers blog, I always appreciate reading the posts about the number of downloads. It is always useful to know how many downloads to expect, and what impact different events can have. The mobile landscape is changing fast though, and while you can get a pretty good idea of the dynamics of the Apple Appstore, there's not a lot of information regarding the Android Market ( AM…

Interview

Here's an interview I gave for droidgamers.com. Among other things, I talk about which games influenced PewPew, what it's like developing for Android, what impact does getting featured on the Android Market has, and what I think about ad-supported applications.

Success and crashes

One day has passed, and PewPew is doing well. It has entered the Hot android app category on AppBrain.com, and I am receiving a lot of positive feedback. While monitoring twitter I found 14n3 saying "Oh man, making a review of PewPew, this game rocks!". Always gratifying. Unfortunately, there are a few people reporting crashes. Since PewPew is very stable on the iOS devices, the crashes must stem…

PewPew 1.5 available on the Android Market

The title pretty much says it all. I uploaded PewPew to the market today, and it is now spreading across the internet. Here's the link to download it for Android. From what I've seen, PewPew is by far the best shooter on the Android Market. On my Nexus One, I'd say it runs at approximately 4 time the frame rate of the current most popular shooter, Gun Bros . BTW, Gun Bros is an absolute piece of…

PewPew Beta, for Android

Currently my work has shifted from developing PewPew to porting it to several different phone OS. I'll try to write a post later about the process of porting, because there's lot's of interesting bits I've discovered. A few weeks ago I submitted a version of PewPew for the Bada OS to Samsung, but it got rejected because my website contained an image of an iPhone and a link to the App Store. At…

PewPew 1.4 and PewPew 2 1.2 submitted to the app store

I finally submitted to the App Store updated versions of PewPew and PewPew 2 ! Both versions now support the iPad's and the iPhone 4's resolution. Most changes are in PewPew 2 : There's an improved Chapter One : among the things I did was adding visual feedback showing destructible objects were reacting to the players' bullets, so the players would know those objects were destructible . More…

Lack of updates because...

I am porting PewPew to the Bada OS. There is a contest going on, and I believe I have a real chance of winning a price ;-)