<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5443986370946695189</id><updated>2012-01-26T17:55:13.628-08:00</updated><category term='google app engine'/><category term='pewpew 2'/><category term='optimisation'/><category term='bada os'/><category term='ads'/><category term='ipad'/><category term='hosting'/><category term='gold'/><category term='syntax'/><category term='lua'/><category term='caf'/><category term='forum'/><category term='influences'/><category term='automatization'/><category term='appstore fail'/><category term='survey'/><category term='python'/><category term='OpenAL'/><category term='android market'/><category term='todo'/><category term='makefile'/><category term='pewpew 2 HD'/><category term='review'/><category term='update'/><category term='rant'/><category term='OpenGL'/><category term='retina'/><category term='3GS'/><category term='linux'/><category term='new game modes'/><category term='debug'/><category term='crash'/><category term='JNI'/><category term='asteroids'/><category term='music'/><category term='pewpew2'/><category term='scores'/><category term='samsung'/><category term='beta'/><category term='interview'/><category term='android'/><category term='xcode'/><category term='feature'/><category term='explosions'/><category term='shaders'/><category term='icon'/><category term='wav'/><category term='stats'/><category term='design'/><category term='release'/><category term='porting'/><title type='text'>PewPew's dev blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-2483924331864018573</id><published>2012-01-04T06:43:00.000-08:00</published><updated>2012-01-23T10:35:29.331-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='icon'/><title type='text'>Icons</title><content type='html'>&lt;div style="text-align: justify;"&gt;When writing this post I often wrote "iCon" instead of "icon"... Damn you Apple.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Anyway I got a folder full of different icons for PewPew, and I thought it would be cool to look at the evolution.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-hxILOEcjxuM/TwNwtWbaVuI/AAAAAAAABik/ftsZ_d_YKh4/s1600/a.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="188" src="http://1.bp.blogspot.com/-hxILOEcjxuM/TwNwtWbaVuI/AAAAAAAABik/ftsZ_d_YKh4/s200/a.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The first icon shows the classic ship shooting at an enemy, but when resized to 47x47 pixels (the original iPhone's icon size) it looked like crap.&lt;/div&gt;&lt;div class="" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-2wfETzx1rn0/TwNwuIheS2I/AAAAAAAABio/CyaCnYy70e0/s1600/b.PNG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-2wfETzx1rn0/TwNwuIheS2I/AAAAAAAABio/CyaCnYy70e0/s200/b.PNG" width="200" /&gt;&lt;/a&gt;&lt;span style="text-align: -webkit-auto;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="text-align: -webkit-auto;"&gt;So I simplified it and ended up with this.&lt;/span&gt;&lt;span style="text-align: center;"&gt;&amp;nbsp;I like its purified appearance a lot but&amp;nbsp;&lt;/span&gt;I decided to make it more eye-catching because&amp;nbsp;I want people to download and play the game!&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-vfcMjnlONUo/TwNwupjbbuI/AAAAAAAABi0/DrNeJinIzmw/s1600/d1.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-vfcMjnlONUo/TwNwupjbbuI/AAAAAAAABi0/DrNeJinIzmw/s1600/d1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Up to now I was using Adobe Flash (!) to create the graphics. I decided to learn a bit about Photoshop and was able to add a glowing outline and some gradients.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It's interesting to note that the glowing outline is done the same way&amp;nbsp;in Photoshop and in-game: blur the original image and compose the result with the original using additive blending.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-g9TqS5as86c/TwNwwB4B6tI/AAAAAAAABi8/EYHhwpUlxgU/s1600/d2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-g9TqS5as86c/TwNwwB4B6tI/AAAAAAAABi8/EYHhwpUlxgU/s200/d2.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I later found a &lt;a href="http://blog.cocoia.com/2010/iphone-4-icon-psd-file/"&gt;Photoshop iOS icon template&lt;/a&gt;&amp;nbsp;with which I obtained this icon. However it attracted a lot of (deserved)&amp;nbsp;criticism&amp;nbsp;on the Android market, because the iOS glossy look&amp;nbsp;negatively&amp;nbsp;stood out on Android devices.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dPMhFBU6WCc/TwN3Ve8HOXI/AAAAAAAABjw/zFr7GdulXEo/s1600/f4.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-dPMhFBU6WCc/TwN3Ve8HOXI/AAAAAAAABjw/zFr7GdulXEo/s200/f4.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So I removed the gloss (but kept the roundness), played with the color balance, and obtained the current PP1 icon.&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Me76W0osCEI/TwNww4SgW-I/AAAAAAAABjE/lDeWU-pBw5E/s1600/e1.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-Me76W0osCEI/TwNww4SgW-I/AAAAAAAABjE/lDeWU-pBw5E/s200/e1.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;In parallel I was working on PP2 (and its icon).&amp;nbsp;I considered putting 2 ships on the icon, but it would have suggested multiplayer and I did not want to mislead the customers.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-NlMvIC8ixJw/TwNwyU_WOpI/AAAAAAAABjM/kKE0SOVr3oU/s1600/e2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-NlMvIC8ixJw/TwNwyU_WOpI/AAAAAAAABjM/kKE0SOVr3oU/s200/e2.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;It seems that I attempted to unify the icons of PP1 and PP2, and ended up with this. It was a failure and was never used.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-EDqVQpLjY2E/TwNw1GQ1x_I/AAAAAAAABjU/eSfrcfCXK28/s1600/f1.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-EDqVQpLjY2E/TwNw1GQ1x_I/AAAAAAAABjU/eSfrcfCXK28/s200/f1.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;After a while I realized that the PP2's icon actually looked very plain compared to other game's icons and realized the power of adding textures. This is the current (and likely final) PP2 icon.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-7OD8K7rJyHQ/TwNw26yNWmI/AAAAAAAABjc/4GSX0NXSpwM/s1600/f3.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-7OD8K7rJyHQ/TwNw26yNWmI/AAAAAAAABjc/4GSX0NXSpwM/s200/f3.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/-meudZUOxhek/Tx2nntjW-eI/AAAAAAAABkM/99mh6CB9WeQ/s1600/BIG_ICON_PP2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-meudZUOxhek/Tx2nntjW-eI/AAAAAAAABkM/99mh6CB9WeQ/s200/BIG_ICON_PP2.png" width="200" /&gt;&lt;/a&gt;During my last round of experimentations I tried different color scheme and liked this one very much. I ended up not using it, but it inspired me for the &lt;a href="https://lh5.ggpht.com/iZUPheFsY_sReB1c-CrmPu9AbjunQJq5nxBprSgtEk0MRkvgFcLBcV5yY6F2dZyb9w"&gt;Android Market banner&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Edit (23/01/2012): a&amp;nbsp;&lt;a href="http://www.reddit.com/r/Android/comments/ogx2q/this_bugs_me_that_these_icons_are_not_all_the/"&gt;reddit post&lt;/a&gt;&amp;nbsp;complaining about the lack of coherence with the icons on Android made me discover the&amp;nbsp;&lt;a href="http://developer.android.com/guide/practices/ui_guidelines/icon_design.html"&gt;Android Guidelines&lt;/a&gt;&amp;nbsp;for the application's icons.&lt;br /&gt;&lt;br /&gt;These are the two new (and hopefully final) icons.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-iVagdERqYJk/Tx2niYLk5xI/AAAAAAAABkE/OOe5WCsoW8U/s1600/BIG_ICON_PP.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-iVagdERqYJk/Tx2niYLk5xI/AAAAAAAABkE/OOe5WCsoW8U/s200/BIG_ICON_PP.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-2483924331864018573?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/2483924331864018573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2011/12/icons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/2483924331864018573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/2483924331864018573'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2011/12/icons.html' title='Icons'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-hxILOEcjxuM/TwNwtWbaVuI/AAAAAAAABik/ftsZ_d_YKh4/s72-c/a.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-2823356815805188908</id><published>2011-11-22T20:29:00.001-08:00</published><updated>2011-11-22T23:21:30.762-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Space War</title><content type='html'>&lt;div style="text-align: justify;"&gt;Today, while doing my daily googling of PewPew-related news, I found&amp;nbsp;a piano version of PewPew's main theme!&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/MXHIBwQGnt8/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/MXHIBwQGnt8&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/MXHIBwQGnt8&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;I hope an a capella version is coming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-2823356815805188908?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/2823356815805188908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2011/11/space-war.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/2823356815805188908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/2823356815805188908'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2011/11/space-war.html' title='Space War'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-2301295638807000723</id><published>2011-10-27T02:48:00.000-07:00</published><updated>2012-01-04T02:31:56.983-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='influences'/><title type='text'>Keyboards</title><content type='html'>&lt;div style="text-align: justify;"&gt;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, &amp;nbsp;and for a couple of months that's all there was.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-OKwfWZP9uPA/SpcyltRbSZI/AAAAAAAAAa4/zE8soTsxIiA/s1600/color_example2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="166" src="http://2.bp.blogspot.com/-OKwfWZP9uPA/SpcyltRbSZI/AAAAAAAAAa4/zE8soTsxIiA/s320/color_example2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;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 keyboard.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It was going to be a lot of boring work though, so I kept postponing for later... And then, one day, &lt;strike&gt;I got in&lt;/strike&gt;&amp;nbsp;I saw this:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-cXg4GEA3qS0/TsXlvFLz1fI/AAAAAAAABas/u6VGa6HLJaY/s1600/gunnm.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-cXg4GEA3qS0/TsXlvFLz1fI/AAAAAAAABas/u6VGa6HLJaY/s320/gunnm.png" width="232" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Extract from &lt;a href="http://en.wikipedia.org/wiki/Battle_Angel_Alita"&gt;Gunnm&lt;/a&gt;, a &lt;i&gt;fantastic&lt;/i&gt; manga.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;I&amp;nbsp;immediately&amp;nbsp;wanted to have this keyboard in PewPew, and two days later it was done. And it looked great:&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dsVagwu18XM/TsXp7TRq8II/AAAAAAAABa0/e7T9c0SC_2g/s1600/photo.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="213" src="http://2.bp.blogspot.com/-dsVagwu18XM/TsXp7TRq8II/AAAAAAAABa0/e7T9c0SC_2g/s320/photo.PNG" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;custom keyboard = seamless integration.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Besides the speed gain when porting to a new platform and the code simplification, there are many other advantages to having a custom keyboard. PewPew's font does not contain all the characters, so I can show only the characters that can be entered. Also, you can have &lt;a href="http://pewpewgame.blogspot.com/2009/08/colors.html"&gt;custom colors&lt;/a&gt; in your nickname, and by having a custom keyboard I can make it very easy for the users to specify them:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-VYLvrLgOvNE/TsXq2l8C1QI/AAAAAAAABa8/i_D2NreXo1E/s1600/photo-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://3.bp.blogspot.com/-VYLvrLgOvNE/TsXq2l8C1QI/AAAAAAAABa8/i_D2NreXo1E/s320/photo-1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Of course, there are&amp;nbsp;disadvantages&amp;nbsp;to using a custom keyboard: the users aren't used to the layout, they can't copy paste, the native keyboards are likely capable of detecting false&amp;nbsp;key-presses, etc... but when you just want to enter your nickname, those things are not important.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-2301295638807000723?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/2301295638807000723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2011/10/keyboards.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/2301295638807000723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/2301295638807000723'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2011/10/keyboards.html' title='Keyboards'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-OKwfWZP9uPA/SpcyltRbSZI/AAAAAAAAAa4/zE8soTsxIiA/s72-c/color_example2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-4701909308166104171</id><published>2011-10-20T01:23:00.000-07:00</published><updated>2011-11-17T21:49:25.310-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asteroids'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='new game modes'/><title type='text'>Asteroids</title><content type='html'>&lt;div style="text-align: justify;"&gt;Quick post to say that I released an update for both PewPew and PewPew 2, that includes a new game mode called &lt;b&gt;Asteroids&lt;/b&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It's of course an homage to the &lt;a href="http://en.wikipedia.org/wiki/Asteroids_(video_game)"&gt;classic 1979 game&lt;/a&gt;, albeit PewPew style: lots of shooting, and &lt;i&gt;lots&lt;/i&gt; of enemies.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-nWmnhHvcKWM/Tp_TDT5fK0I/AAAAAAAABXY/pflQUO6Fmfg/s1600/photo.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="http://2.bp.blogspot.com/-nWmnhHvcKWM/Tp_TDT5fK0I/AAAAAAAABXY/pflQUO6Fmfg/s400/photo.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;A few notes: To keep the retro mood going on, the ship's color is forced to white. The asteroids' shape is&amp;nbsp;generated at run time: it was faster for me to write code than to draw&amp;nbsp;manually them :-) Added bonus: they have a unique shape every time.&amp;nbsp;Final note: I resisted the urge of making the asteroids rotate, to stay closer to the original. A game developer's life is tough.&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-4701909308166104171?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/4701909308166104171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2011/10/asteroids.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/4701909308166104171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/4701909308166104171'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2011/10/asteroids.html' title='Asteroids'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-nWmnhHvcKWM/Tp_TDT5fK0I/AAAAAAAABXY/pflQUO6Fmfg/s72-c/photo.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-6388762035294464961</id><published>2011-08-30T17:04:00.000-07:00</published><updated>2011-08-30T17:04:05.501-07:00</updated><title type='text'>PewPew in Bangkok</title><content type='html'>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:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ZmLKhfxcStI/Tlwi9T44hHI/AAAAAAAABQc/Y6jTP9ztBYo/s1600/photo.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/-ZmLKhfxcStI/Tlwi9T44hHI/AAAAAAAABQc/Y6jTP9ztBYo/s400/photo.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It made my day :)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-6388762035294464961?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/6388762035294464961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2011/08/pewpew-in-bangkok.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6388762035294464961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6388762035294464961'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2011/08/pewpew-in-bangkok.html' title='PewPew in Bangkok'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ZmLKhfxcStI/Tlwi9T44hHI/AAAAAAAABQc/Y6jTP9ztBYo/s72-c/photo.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8386046680039979773</id><published>2011-08-30T04:43:00.000-07:00</published><updated>2011-11-17T21:47:22.492-08:00</updated><title type='text'>XPeria Play support</title><content type='html'>&lt;div&gt;&lt;div style="text-align: justify;"&gt;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.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;The XPeria PLAY by Sony Ericsson is one of those opportunities, and allows mobile game developers frustrated by the touch screen to have fun ;-)&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-S1OkaHnk7ns/TlwbdryufJI/AAAAAAAABP8/Fpb0sxJ1bDM/s1600/xperia_play_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="386" src="http://3.bp.blogspot.com/-S1OkaHnk7ns/TlwbdryufJI/AAAAAAAABP8/Fpb0sxJ1bDM/s400/xperia_play_2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;As you can see, it has buttons, but most importantly for me, it has two &lt;i&gt;touch-joysticks&lt;/i&gt; (I just invented that term, and now that I think about it, it doesn't mean anything).&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;I recently released a version of PewPew 2 optimized for the XPeria PLAY, and will be doing the same for PewPew 1 soon.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Sony Ericsson has been really awesome with the whole thing. After exchanging a few emails they rapidly sent an XPeria PLAY simply after I promised I would bring PewPew to their phone. No stupid contracts or anything, they just trusted me. Really cool.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Now the phone itself is fantastic and feels really solid, and the joysticks are surprisingly usable.&amp;nbsp;It is thicker than most phones, but that's to be expected from the slide out gamepad. The GPU is great and in fact it's the Android phone I tested where PewPew runs best.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;You can read a more detailed review over at &lt;a href="http://www.engadget.com/2011/03/28/sony-ericsson-xperia-play-review/"&gt;engadget&lt;/a&gt;, but overall if you like playing games&amp;nbsp;it's a great phone.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8386046680039979773?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8386046680039979773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2011/08/xperia-play-support.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8386046680039979773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8386046680039979773'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2011/08/xperia-play-support.html' title='XPeria Play support'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-S1OkaHnk7ns/TlwbdryufJI/AAAAAAAABP8/Fpb0sxJ1bDM/s72-c/xperia_play_2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-783287074483786339</id><published>2011-07-09T05:17:00.000-07:00</published><updated>2011-11-17T21:50:37.741-08:00</updated><title type='text'>Download numbers</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;When reading other's developers blog, I always appreciate reading the posts about the number of downloads. It is always&amp;nbsp;useful to know how many downloads to expect, and what impact different events can have.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The mobile&amp;nbsp;landscape&amp;nbsp;is changing fast though, and while you can get a pretty good idea of the dynamics of the Apple Appstore, &amp;nbsp;there's not a lot of information regarding the Android Market (&lt;i&gt;AM&lt;/i&gt;) and the new Amazon Appstore (&lt;i&gt;AA&lt;/i&gt;). Here's my humble contribution (please note that all the numbers given are approximations).&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;PP on Android Market&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;During the first two weeks, PP was getting 800 downloads per day. However it got featured by Google, and the downloads increased&amp;nbsp;a hundred folds (it got up to 80k downloads on one day). During the one or two weeks it was featured, it got about 900k downloads and entered the most downloaded free app list. I am guessing that currently, every free app in the top 10 are getting at least 40k downloads per day.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Right now PP is getting 3k downloads per day.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;One metric that people rarely share is the number of active installations. It is particularly relevant if your app is&amp;nbsp;advertisement&amp;nbsp;based, because you want people to keep using (and thus &lt;i&gt;having&lt;/i&gt;) your application for as long as possible. Currently, 37% of the people that downloaded PP kept it, which I think is pretty good considering it's a free application (I download a lot of free apps, but most of the time uninstall them quickly).&lt;/div&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-DuoIeCzQwOk/TcpE_jAVjCI/AAAAAAAAAlY/04m4h-IgLjc/s1600/pp.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="125" src="http://2.bp.blogspot.com/-DuoIeCzQwOk/TcpE_jAVjCI/AAAAAAAAAlY/04m4h-IgLjc/s320/pp.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Active installations of PewPew.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;PP2 on Android Market&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Shortly after it reached 1 million downloads, I released PP2. Two days later, I updated PP to include a link/advertisement for PP2. I was getting around two hundreds downloads per day. PewPew 2 was then featured, and there was a 50% boost which is nice, but really nothing&amp;nbsp;extraordinary.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If I recall correctly, with 400 downloads per day, PP2 was the number 5 in the top selling games category.&amp;nbsp;Right now it is around #40, with around 50 downloads per day.&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-WzYLGq_3PcI/TcpENk6GXoI/AAAAAAAAAlU/dRjnVDucN-E/s1600/pp2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="126" src="http://3.bp.blogspot.com/-WzYLGq_3PcI/TcpENk6GXoI/AAAAAAAAAlU/dRjnVDucN-E/s320/pp2.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Active installations of PewPew 2. Currently the rate is 85%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;PP and PP2 on the Amazon Appstore (aka the Useless Appstore)&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;While I was featured on the AM, Amazon contacted me so that they could get my application on their store. I happily obliged, having heard that if you were lucky enough to be selected for their "free application a day" program, you'd earn a boatload of cash. The idea was that&amp;nbsp;Amazon selects one application per day, makes it free for their customers but still pay 20% of the application's price to the developer instead of the usual 70%.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;PP2 got selected for the "free application a day" operation, but I actually did not earn anything because Amazon makes you sign a contract that cancels the one where the 20% are&amp;nbsp;mentioned. In the end the operation translated into 100k&amp;nbsp;downloads of PP2, but 0$ in my pocket. Some might say that it's worth it because of the free&amp;nbsp;advertisement&amp;nbsp;you get, but on the other hand you do loose quite a lot of potential sales. More importantly, I believe that giving out your products (even for a short amount of time) devaluates their value, but that's a topic that deserve a separate post.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The last thing I'll say about the AA is that in June, PP2 got 18 downloads...&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Getting featured on the AM is awesome when you are a free app, advertising a payed app from a free app that is featured is a good idea, and it appears that the top games aren't raking in as much money as the top games on iOS.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Also, currently the AA is useless. If the rumors that Amazon is going to release its own tablets are true, that might change, but for now the AA is not interesting for developers.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-783287074483786339?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/783287074483786339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2011/07/download-numbers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/783287074483786339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/783287074483786339'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2011/07/download-numbers.html' title='Download numbers'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-DuoIeCzQwOk/TcpE_jAVjCI/AAAAAAAAAlY/04m4h-IgLjc/s72-c/pp.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-5514241182936558176</id><published>2011-05-04T16:00:00.000-07:00</published><updated>2011-11-17T21:51:03.069-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ads'/><category scheme='http://www.blogger.com/atom/ns#' term='interview'/><category scheme='http://www.blogger.com/atom/ns#' term='influences'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Interview</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;Here's an&amp;nbsp;&lt;a href="http://droidgamers.com/index.php/game-news/interviews/1583"&gt;interview&lt;/a&gt; I gave for droidgamers.com.&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;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.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-5514241182936558176?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/5514241182936558176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2011/05/interview.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/5514241182936558176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/5514241182936558176'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2011/05/interview.html' title='Interview'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-1355490022009440613</id><published>2011-02-08T09:42:00.000-08:00</published><updated>2011-02-15T11:32:09.899-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='crash'/><category scheme='http://www.blogger.com/atom/ns#' term='JNI'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='android market'/><title type='text'>Success and crashes</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;One day has passed, and PewPew is doing well. It has entered the &lt;a href="http://www.appbrain.com/apps/hot/"&gt;Hot android app&lt;/a&gt; category on AppBrain.com, and I am receiving a lot of positive feedback. While monitoring twitter I found &lt;a href="http://twitter.com/14n3"&gt;14n3&lt;/a&gt; saying "Oh man, making a review of PewPew, this game rocks!".  Always gratifying.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Unfortunately, there are a few people reporting crashes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Since PewPew is very stable on the iOS devices, the crashes must stem from Android specific code I added. There are two areas where I am not sure I am doing everything right:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It's either the handling of the application life cycle, specifically the part where I have to reload the openGL data when the game is resumed, or the http requests to upload and download the scores and replays.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Those thing would pose no problem if PewPew was a Java application like most Android applications, but it is 99% a C++ app with a thin Java wrapper (and thus uses JNI). To reduce the amount of JNI code I cut some corners.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;At first I started using the Android Java API for the http requests, but then I realised it involved doing a boatload of JNI functions and threads, so I decided to use a C++ library. Curl and Boost are the most well known C++ libraries for that kind of job, but they are also completely overkill and would require too much time to integrate in PewPew. I searched for a light alternative and found &lt;a href="http://scumways.com/happyhttp/happyhttp.html"&gt;HappyHTTP&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;HappyHTTP does all what I need, and can be integrated into a project simply by adding a .h and .cpp file. The only problem is that it uses C++ exceptions. I can't use exceptions in PewPew even if I wanted to, because currently the Android NDK does not support exceptions handling and STL usage at the same time! I quickly hacked an exception-free version of HappyHTTP, but I may have messed up some things up, which may cause the crashes on some devices under certain conditions...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I hope I fix everything quickly so that I can resume doing the fun stuff: working on new levels and game modes.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-1355490022009440613?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/1355490022009440613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2011/02/success-and-crashes.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1355490022009440613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1355490022009440613'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2011/02/success-and-crashes.html' title='Success and crashes'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-4578602122701506268</id><published>2011-02-07T08:10:00.000-08:00</published><updated>2011-02-08T09:42:42.391-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='android market'/><title type='text'>PewPew 1.5 available on the Android Market</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;The title pretty much says it all. I uploaded PewPew to the market today, and it is now spreading across the internet.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Here's &lt;a href="https://market.android.com/details?id=com.jyaif.pewpew"&gt;the link&lt;/a&gt; to download it for Android.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;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, &lt;a href="https://market.android.com/details?id=com.glu.android.gunbros_free"&gt;Gun Bros&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;BTW, Gun Bros is an absolute piece of crap, gameplay and UI wise. It's sickening to see the work of good artists go to waste with game designers like that. Sorry for the rant, but some games just revolt me!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Now go play PewPew on Android and fill the empty leaderboards :)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-4578602122701506268?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/4578602122701506268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2011/02/pewpew-15-available-on-android-market.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/4578602122701506268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/4578602122701506268'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2011/02/pewpew-15-available-on-android-market.html' title='PewPew 1.5 available on the Android Market'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8124522622988336772</id><published>2010-12-20T11:07:00.000-08:00</published><updated>2011-02-08T09:44:01.449-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bada os'/><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>PewPew Beta, for Android</title><content type='html'>&lt;div style="text-align: justify;"&gt;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.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A few weeks ago I submitted a version of PewPew for the Bada OS to Samsung, but it got rejected because my &lt;i&gt;website&lt;/i&gt; contained an image of an iPhone and a link to the App Store. At first I was surprised, but they simply don't want to have iPhone advertisement flaunted at their customers, which is understandable.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In the meanwhile I ported PewPew to Android and improved many things, and because I got rejected, those improvements will get to be in the initial Bada OS release as well (I try to look on the bright side of things).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Regarding the Android version, I don't know how well my app works on other phones, so I am starting a beta process. I want to get PewPew perfectly right before I submit it to the Android Market: I am a firm believer that first impressions counts.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If you want to test it, &lt;a href="https://sites.google.com/site/jfgeyelin/box/PewPew.apk?attredirects=0&amp;amp;d=1"&gt;here is the .apk&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8124522622988336772?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8124522622988336772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/12/pewpew-beta-for-android.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8124522622988336772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8124522622988336772'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/12/pewpew-beta-for-android.html' title='PewPew Beta, for Android'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-5340509962745471505</id><published>2010-11-30T13:29:00.000-08:00</published><updated>2010-11-30T13:32:38.616-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pewpew 2'/><category scheme='http://www.blogger.com/atom/ns#' term='retina'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='new game modes'/><title type='text'>PewPew 1.4 and PewPew 2 1.2 submitted to the app store</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;I finally submitted to the App Store updated versions of &lt;i&gt;PewPew&lt;/i&gt; and &lt;i&gt;PewPew 2&lt;/i&gt;! Both versions now support the iPad's and the iPhone 4's resolution.&lt;br /&gt;&lt;br /&gt;Most changes are in &lt;i&gt;PewPew 2&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There's an improved &lt;i&gt;Chapter One&lt;/i&gt;: 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 importantly, I've corrected the bug where the game denied the completion of a level when a player died just after completing the level's objectives, but before the transition back to the menu.&lt;/li&gt;&lt;li&gt;There's the long awaited &lt;i style="font-weight: bold;"&gt;Chapter Two&lt;/i&gt; ! It took a really long time to create because it's containing a lot of new enemies, and the levels are more complex than in the first chapter.&lt;/li&gt;&lt;li&gt;I now display the best times for the campaign levels.&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Pb5ghyz83zQ/TPVK6xHvvoI/AAAAAAAAAis/ASJ2I2Y6RSg/s1600/Screenshot+2010.11.30+20.02.42.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_Pb5ghyz83zQ/TPVK6xHvvoI/AAAAAAAAAis/ASJ2I2Y6RSg/s1600/Screenshot+2010.11.30+20.02.42.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;I've added a new infinity mode that you unlock by completing the chapter Two. This mode is &lt;u&gt;very&lt;/u&gt; different from the existing ones since you actually control 2 ships. It took a while to adjust the difficulty progression because I am actually not a very good player at this game mode =). It's tough to adjust the gameplay for players that are going to be much better than you.&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Pb5ghyz83zQ/TPVJppwk3II/AAAAAAAAAik/v8GeGLOUQvQ/s1600/Screenshot+2010.11.30+19.58.09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Pb5ghyz83zQ/TPVJppwk3II/AAAAAAAAAik/v8GeGLOUQvQ/s1600/Screenshot+2010.11.30+19.58.09.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;I've slightly improved user interface. I've made the buttons prettier because I've always felt the old buttons (just a rectangle) were boring. Also I've removed the explosions in the backgrounds since they just weren't justified, and in my opinion reduced the purity of the menus.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;I've also re-done the website. The client side is done in GWT while the server side is in python. One of the visible change is that the high scores now include the colors of the nicknames :-)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/TPVtNAW7wmI/AAAAAAAAAiw/a7MYeNFsnNA/s1600/website_sc.png"&gt;&lt;img src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/TPVtNAW7wmI/AAAAAAAAAiw/a7MYeNFsnNA/s400/website_sc.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5545458586378551906" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 266px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Now that I think about it I was quite productive. I really hope you all like the new stuff. My goal is to make PewPew 2 the best twin joystick game on the App Store, so I am going to keep on working on it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-5340509962745471505?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/5340509962745471505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/11/pewpew-14-and-pewpew-2-12-submitted-to.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/5340509962745471505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/5340509962745471505'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/11/pewpew-14-and-pewpew-2-12-submitted-to.html' title='PewPew 1.4 and PewPew 2 1.2 submitted to the app store'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Pb5ghyz83zQ/TPVK6xHvvoI/AAAAAAAAAis/ASJ2I2Y6RSg/s72-c/Screenshot+2010.11.30+20.02.42.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-1917374547301544556</id><published>2010-07-18T13:26:00.000-07:00</published><updated>2010-08-25T07:21:35.862-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='porting'/><category scheme='http://www.blogger.com/atom/ns#' term='samsung'/><category scheme='http://www.blogger.com/atom/ns#' term='bada os'/><title type='text'>Lack of updates because...</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/TENikGOkIlI/AAAAAAAAAhs/mmX-94ZG49E/s1600/pp-bada.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/TENikGOkIlI/AAAAAAAAAhs/mmX-94ZG49E/s640/pp-bada.png" width="314" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:Arial;font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;I am porting PewPew to the &lt;a href="http://developer.bada.com/apis/index.do"&gt;Bada&lt;/a&gt; OS. There is a contest going on, and I believe I have a real chance of winning a price ;-)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-1917374547301544556?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/1917374547301544556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/07/lack-of-updates-because.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1917374547301544556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1917374547301544556'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/07/lack-of-updates-because.html' title='Lack of updates because...'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Pb5ghyz83zQ/TENikGOkIlI/AAAAAAAAAhs/mmX-94ZG49E/s72-c/pp-bada.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8828748450630340524</id><published>2010-06-21T15:41:00.000-07:00</published><updated>2011-02-08T09:45:05.753-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new game modes'/><category scheme='http://www.blogger.com/atom/ns#' term='pewpew2'/><title type='text'>PewPew, step 10</title><content type='html'>&lt;div style="text-align: justify;"&gt;At the beginning of this blog, I used to do short movies showing the progress of the game. I think it's cool to &lt;a href="http://pewpewgame.blogspot.com/2009/02/pewpew-step-2.html"&gt;look back&lt;/a&gt; and see what changed and what hasn't.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Following this spirit, I made a small video showing the new game mode in action:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/SXykxwz9zQI&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/SXykxwz9zQI&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It features two new enemies internally called "Rolling Cube" and "Planner" :)&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It looks really cool, but I still find it hard to play because my fingers tend to slip off the screen. This is because when the two ships are going in opposite directions, they cancel each others movement. Because I want to move anyway, I naturally move my fingers away from the centers of the joysticks, and thus move my fingers off the touchscreen.&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There is really nothing I can do, except maybe visually notify the players that they are already moving as much as they can, and that they don't need to move their fingers further from the center. Come to think about it, it's an excellent idea. Yay. Now back to work.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8828748450630340524?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8828748450630340524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/06/pewpew-step-10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8828748450630340524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8828748450630340524'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/06/pewpew-step-10.html' title='PewPew, step 10'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8276344561505514037</id><published>2010-06-05T14:23:00.000-07:00</published><updated>2011-02-08T09:45:20.784-08:00</updated><title type='text'>One month after...</title><content type='html'>&lt;div style="text-align: justify;"&gt;The lack of posts on this blog is due to some furious bug fixing. During this past month I submitted to the App Store:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-PewPew 2&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-PewPew 2 Lite, but I removed it from the app store immediately because I had actually uploaded the full version, instead of the Lite version...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-an update to PewPew 1 to notify everyone about PewPew 2&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-an update to PewPew 2 because PewPew 2 was crashing when the score table was full, and because the iPad version simply did not start. It got rejected because the game did not support correctly the orientations of the iPad...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-a second update to PewPew 2 to fix all the issues I was aware of at the time (it got accepted).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;At the moment, there seems to be no bugs left on the iPhone, but the iPad version sometimes crashes when validating a score, or when editing the name... It will get fixed!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;While waiting for Apple to approve the various updates, I worked on the campaign. In the next campaign, you'll fight the "Boss" once more. This time however, it's going to be a bit harder to defeat him (some cannons/turrets will accentuate the chaos).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Recently, I have been working on a new Infinity game mode called "Symbiosis". You control 2 ships of different colors, much like in the xbox 360 game &lt;a href="http://www.torpexgames.com/index.php"&gt;Schizoid&lt;/a&gt;. The blue ship will be invincible to blue enemies, and the red ship will be invincible to red enemies. For now, the ships are linked with an electric field that destroys enemies. The electric field is also a spring, so one ship can drag the other ship.&lt;/div&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Pb5ghyz83zQ/TAq_c_XETNI/AAAAAAAAAhU/pUxC9i0LaVE/s1600/sc.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="166" src="http://4.bp.blogspot.com/_Pb5ghyz83zQ/TAq_c_XETNI/AAAAAAAAAhU/pUxC9i0LaVE/s320/sc.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;Don't mind the graphics, I am only testing the gameplay.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I am far from having the gameplay done, and I am not even sure yet this game mode will ever be included in PewPew 2. Controlling two ships at the same time is really really hard, and that's why I added the spring between the ships: it helps keeping the two ships close. Still, I am persuaded that this game mode has potential.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8276344561505514037?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8276344561505514037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/06/one-month-after.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8276344561505514037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8276344561505514037'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/06/one-month-after.html' title='One month after...'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Pb5ghyz83zQ/TAq_c_XETNI/AAAAAAAAAhU/pUxC9i0LaVE/s72-c/sc.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-3488232283194210128</id><published>2010-05-06T14:08:00.000-07:00</published><updated>2010-05-06T14:10:09.495-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pewpew 2'/><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>I received a mail 2 hours ago...</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;...telling me that &lt;a href="http://itunes.apple.com/app/pewpew/id370379981?mt=8"&gt;PewPew 2 is live!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Yay!&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-3488232283194210128?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/3488232283194210128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/05/your-application-is-ready-for-sale.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/3488232283194210128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/3488232283194210128'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/05/your-application-is-ready-for-sale.html' title='I received a mail 2 hours ago...'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-7478126715172650400</id><published>2010-05-01T09:47:00.000-07:00</published><updated>2010-05-01T09:47:29.921-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pewpew 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gold'/><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Gold</title><content type='html'>PewPew 2 is Gold! I submitted it to the App Store yesterday, and hopefully it will be accepted in the App Store within a week. It will be priced at $1.99, which I think is a very good deal considering the quality of the content :o&lt;br /&gt;&lt;br /&gt;This month I did some beta testing on different devices (3GS, iPad), and discovered the performance on the 3GS was worse than on my iPod 2G! I lost a lot of time trying to find out what the problem was, until I finally found &lt;a href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/34795-iphone-3gs-opengl-strange-bug.html"&gt;a post&lt;/a&gt; in a forum explaining that using timers to set the FPS is bad on the iPhone OS 3.0.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;I also did a small trailer with iMovie:&lt;/div&gt;&lt;object height="300" width="400"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11336650&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=11336650&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/11336650"&gt;PewPew 2 trailer&lt;/a&gt; from &lt;a href="http://vimeo.com/user3703944"&gt;Jean-François Geyelin&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;It was my first time doing video editing, and it was pretty fun. It's frustrating that iMovie does not allow placing the text where we want it, but overall it's still a cool and simple software.&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;That is all for now, more updates when PewPew 2 is live.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-7478126715172650400?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/7478126715172650400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/05/gold.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/7478126715172650400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/7478126715172650400'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/05/gold.html' title='Gold'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-1215255819303596380</id><published>2010-03-27T17:07:00.000-07:00</published><updated>2011-02-08T09:46:01.908-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pewpew 2 HD'/><category scheme='http://www.blogger.com/atom/ns#' term='todo'/><category scheme='http://www.blogger.com/atom/ns#' term='pewpew 2'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='ipad'/><title type='text'>PewPew 2's progress</title><content type='html'>&lt;div style="text-align: justify;"&gt;I haven't posted in quite some time now because I've been so busy with programming PewPew 2, but quite a few people are asking for news, so here we go:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;PewPew 2 is progressing real well. Here are some of the new features that are currently &lt;b&gt;done&lt;/b&gt;:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-Scores can be uploaded anytime, not just after you've played (it should have been the case from the start, I know)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-Replays are now uploaded along the scores. This will allow you to watch and admire the best players play. Also, you'll be able to show off.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-Better graphics, 3D sound, seriously optimized engine.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-2 new sound tracks.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-A 10 level campaign with &lt;i&gt;a lot&lt;/i&gt; of diversity. And a boss.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-2 new unlock-able game modes (in addition to megagore, assault, chromatic conflict and dodge this)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-Medals. These are rewards when you achieve certain scores in one of the 6 game modes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-6 different ships. You progressively unlock them by obtaining medals.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-Lot's of new ennemies.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I think it's enough new content for a first release of PewPew 2. Make no mistakes though, there will be updates ;-)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So what am I waiting for? Why am I not submitting PewPew 2 to the app-store? Well, I need to polish everything up. This is the step that will make PP2 awesome. I have to carefully balance everything, make sure the difficulty is not too high (I tend to do that), not to low (no worries there), that the in-game explanations are clear, that the objectives in every campaign level are also clear, etc...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;One more thing... I have been busy bringing PewPew 2 to the iPad!  Here are the first screenshots of &lt;b&gt;PewPew 2 HD&lt;/b&gt;:&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/S66YFAMv9kI/AAAAAAAAAgs/r5Vd3c3rszU/s1600-h/blog_ipad1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/S66YFAMv9kI/AAAAAAAAAgs/r5Vd3c3rszU/s400/blog_ipad1.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;That's Megagore. Notice the increased viewing field.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/S66YMbE4kwI/AAAAAAAAAgw/fUa2olW8QSc/s1600-h/blog_ipad2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/S66YMbE4kwI/AAAAAAAAAgw/fUa2olW8QSc/s400/blog_ipad2.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;And that? That's one of the level of the campaign ;-)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="text-align: justify;margin-left: auto; margin-right: auto; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Pb5ghyz83zQ/S66YQqD6AjI/AAAAAAAAAg0/ZH_fNeuJWHc/s1600-h/blog_ipad0.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_Pb5ghyz83zQ/S66YQqD6AjI/AAAAAAAAAg0/ZH_fNeuJWHc/s400/blog_ipad0.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: justify;"&gt;That's the splash screen. The quote comes from a review on the Canadian App Store, and I find it absolutely hilarious. I had to put it somewhere; I hope the author doesn't mind!&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;Fun fact: like 99% of the developers creating iPad apps, I haven't got an iPad to test it on. To find the ideal position for the virtual joysticks, I've made myself a dummy iPad in cardboard and imagined myself playing with it! Actually, probably all the game developers for the iPad have done the same thing.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;OK, enough chitchat, I have a game to finish.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-1215255819303596380?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/1215255819303596380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/03/pewpew-2s-progress.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1215255819303596380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1215255819303596380'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/03/pewpew-2s-progress.html' title='PewPew 2&apos;s progress'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Pb5ghyz83zQ/S66YFAMv9kI/AAAAAAAAAgs/r5Vd3c3rszU/s72-c/blog_ipad1.png' height='72' width='72'/><thr:total>6</thr:total><georss:featurename>15ème Arrondissement Paris, 75015 Paris, France</georss:featurename><georss:point>48.84279092943874 2.275339365005493</georss:point><georss:box>48.839260429438745 2.268043865005493 48.84632142943874 2.2826348650054933</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-6758652237140439853</id><published>2010-01-20T08:07:00.000-08:00</published><updated>2010-01-20T08:45:48.956-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='explosions'/><category scheme='http://www.blogger.com/atom/ns#' term='3GS'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><title type='text'>Volumetric lines 2</title><content type='html'>I promised I was going to do a follow up on the Volumetric Lines episode, so here it is.&lt;br /&gt;&lt;br /&gt;Like I said, it was very easy to change from regular lines, to using volumetric lines in PewPew.  In fact, I already changed once the way lines are drawn: the early versions of PewPew used SDL without OpenGL, so the lines were drawn in software using the good old &lt;a href="http://en.wikipedia.org/wiki/Bresenham's_line_algorithm"&gt;Bresenham&lt;/a&gt;. Switching to OpenGL forced me to reduce the coupling between the renderer, and the game engine. Here is all I had to do to make the switch to volumetric lines, besides the initialization:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;#ifdef USE_VOLUMETRIC_LINES&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;  for (int index=0; index &amp;lt; numberOfVertex; index+=6)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;   VolumeLineRenderer::getInstance().renderLine(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;    &amp;amp;vertexes[index],&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;&amp;amp;vertexes[index+3]&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;);&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;#else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;  glVertexPointer(3, VERTEX_TYPE, 0, vertexes);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;  glDrawArrays(GL_LINES, 0, numberOfVertex);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New', Courier, monospace;"&gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Here are some new screenshots comparing the regular render to &lt;a href="http://sebastien.hillaire.free.fr/demos/simplevolumeline/vline.htm"&gt;Sebastien Hillaire's one&lt;/a&gt; with different line width.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Pb5ghyz83zQ/SyPInnGNfrI/AAAAAAAAAd8/vAR5jx1r6zI/s1600-h/comp1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family:Times, 'Times New Roman', serif;"&gt;&lt;img border="0" height="266" src="http://4.bp.blogspot.com/_Pb5ghyz83zQ/SyPInnGNfrI/AAAAAAAAAd8/vAR5jx1r6zI/s400/comp1.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Pb5ghyz83zQ/SyPInyiQfiI/AAAAAAAAAeA/HlhNsv8czFg/s1600-h/comp2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family:Times, 'Times New Roman', serif;"&gt;&lt;img border="0" height="266" src="http://1.bp.blogspot.com/_Pb5ghyz83zQ/SyPInyiQfiI/AAAAAAAAAeA/HlhNsv8czFg/s400/comp2.png" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-family:Times, 'Times New Roman', serif;"&gt;&lt;a href="http://1.bp.blogspot.com/_Pb5ghyz83zQ/SyPIny0FuXI/AAAAAAAAAeE/k2ShSXGmNb0/s1600-h/comp3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="http://1.bp.blogspot.com/_Pb5ghyz83zQ/SyPIny0FuXI/AAAAAAAAAeE/k2ShSXGmNb0/s400/comp3.png" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now this is running on a PC, not on an iPhone. I previously said that I could maybe port this glowing effect to a real iPhone/iPod Touch, but it requires &lt;a href="http://en.wikipedia.org/wiki/Shader"&gt;programmable shaders&lt;/a&gt;, which are only available on the iPod Touch 3G and the iPhone 3GS. I only have an iPod Touch 2G, so I wouldn't be able to test it.&lt;br /&gt;&lt;br /&gt;Anyway, if you do not like the glowing effect do not worry, because if I do manage to get this effect to work on a real device at a decent frame rate, I would put an option to keep the classic look :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-6758652237140439853?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/6758652237140439853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/01/volumetric-lines-2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6758652237140439853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6758652237140439853'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/01/volumetric-lines-2.html' title='Volumetric lines 2'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Pb5ghyz83zQ/SyPInnGNfrI/AAAAAAAAAd8/vAR5jx1r6zI/s72-c/comp1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-1646597162804232827</id><published>2010-01-08T06:42:00.001-08:00</published><updated>2010-01-08T09:14:54.715-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wav'/><category scheme='http://www.blogger.com/atom/ns#' term='makefile'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenAL'/><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='caf'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='automatization'/><title type='text'>Automatic .caf file creation</title><content type='html'>As I said in the previous post, I am currently working on adding sound effects to PewPew 2. The preferred format for sound effects with OpenAL on the iPhone is the .caf (&lt;a href="http://en.wikipedia.org/wiki/Core_Audio_Format"&gt;Core Audio Format&lt;/a&gt;), but audio softwares usually output .wav files.&lt;br /&gt;&lt;div&gt;Fortunately, there's an easy way to convert one format to the other, using a built in command in OS X:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;afconvert -f caff -d LEI16@44100 -c 1 in.wav out.caf&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Being a programmer, I am lazy, so I started thinking about automatizing the conversion for all my .wav files using a small python script that would look like that:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;for every file in the directory:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="white-space: pre; "&gt; &lt;/span&gt;exec "afconvert -f caff -d LEI16@44100 -c 1 file.wav file.caf"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But it was not going to be efficient: every time I would want to regenerate a single .caf file, the script would regenerate all of them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And then it hit me: makefiles are made to solve this exact problem. I tested my idea with a small makefile that looked like:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;test.caf: &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;test.wav&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="white-space: pre; "&gt; &lt;/span&gt;afconvert -f caff -d LEI16@44100 -c 1 test.wav test.caf&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;and it worked as expected :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;I am sure lots of other people thought about using &lt;i&gt;make&lt;/i&gt; for stuff other than compilation, but I am still satisfied of having found this on my own.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While I was at it, I did a &lt;a href="http://sites.google.com/site/jfgeyelin/generate_makefile_for_sounds.py"&gt;small python script&lt;/a&gt; to generate the makefile. Everytime I create a new wav file, I simply have to run the makefile generator.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now what's pretty cool is that you can make the makefile run automatically in xCode every time you compile your project. Even cooler is that by executing the makefile with &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;make -j 2 &lt;/span&gt;(or &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;make -j 8&lt;/span&gt; for some lucky bastards), you get to exploit all the cores of your CPU for the conversion. Indeed, &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;man make&lt;/span&gt; explains that the -j switch "Specifies the number of jobs (commands) to run simultaneously".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Pb5ghyz83zQ/S0dmWhXmTEI/AAAAAAAAAfM/4LMcGthFBMw/s1600-h/makecaf.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 201px;" src="http://2.bp.blogspot.com/_Pb5ghyz83zQ/S0dmWhXmTEI/AAAAAAAAAfM/4LMcGthFBMw/s400/makecaf.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5424416813291555906" /&gt;&lt;/a&gt;&lt;div&gt;Try doing this in Windows. For me, it's clear that OS X and Linux are the best OS for programmers!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-1646597162804232827?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/1646597162804232827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/01/automatic-caf-file-creation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1646597162804232827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1646597162804232827'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/01/automatic-caf-file-creation.html' title='Automatic .caf file creation'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Pb5ghyz83zQ/S0dmWhXmTEI/AAAAAAAAAfM/4LMcGthFBMw/s72-c/makecaf.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-6325436185654706794</id><published>2010-01-07T21:50:00.000-08:00</published><updated>2011-02-08T09:46:34.616-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='optimisation'/><category scheme='http://www.blogger.com/atom/ns#' term='explosions'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenAL'/><title type='text'>Happy new year</title><content type='html'>&lt;div style="text-align: justify;"&gt;First of all, happy new year. For some, 2009 was the year of the Ox and 2010 will be the year of the Tiger. For me, 2009 was the year of PewPew, and 2010 will be the year of PewPew 2!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In 2009, most of my time was spent on creating the engine and getting to know the iPhone. Now that the engine is done, I am &lt;i&gt;almost&lt;/i&gt; exclusively working on the content: I am creating tons of new ennemies and even more levels.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I say "almost exclusively", because I actually did improve the engine. I did an important (though obvious) optimisation regarding the collision system (Chromatic Conflict is smoother now because of that), I made explosions luminous, and I am in the process of adding sound effects.&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The light added to the explosions is just an expanding texture (not even billboarded) whose transparency increases until it becomes totally transparent. It's simple, but it looks &lt;i&gt;real&lt;/i&gt; good, I can't wait to post a video.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The sound effects are handled with OpenAL. OpenAL enables you to specify the relative position of the sounds, though I don't know yet whether I will use this feature or not. Basically, this feature allows you to changes the volume of a sound effect, depending on the player's position. For instance, the nearer an explosion happens to the player, the higher the volume of the explosion will be. What's even more interesting is that the volume of an explosion happening to the left of the player would be higher in the left earbud than in the right earbud. You can create other effects, such as the &lt;a href="http://en.wikipedia.org/wiki/Doppler_effect"&gt;doppler effect&lt;/a&gt;, but that would be overkill for PewPew ;-)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-6325436185654706794?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/6325436185654706794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2010/01/happy-new-year.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6325436185654706794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6325436185654706794'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2010/01/happy-new-year.html' title='Happy new year'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-6213262973116853152</id><published>2009-12-11T09:19:00.000-08:00</published><updated>2011-02-08T09:46:39.765-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='todo'/><category scheme='http://www.blogger.com/atom/ns#' term='feature'/><category scheme='http://www.blogger.com/atom/ns#' term='pewpew2'/><title type='text'>PewPew 2</title><content type='html'>&lt;div style="text-align: justify;"&gt;Here's a news that will make a lot of people happy: PewPew 2 is in development!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It will feature (among other things) new game modes unlock-able by completing some levels (there's a campaign mode), additional sound tracks, and medals and ships to earn.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The release date of PewPew 2 is "When it's done", but I hope to finish it before March 2010.&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Programming the levels in the campaign mode is one of the task that is taking me the most time. I want all the levels to have a distinct look as well as a different gameplay. Right now, creating one level takes approximately one week (20% of the time is spent creating the level, 80% is spent polishing it)...&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Of course, if you have any ideas or suggestions for PewPew 2, feel free to send me an email (jfgeyelin@gmail.com) or post a comment.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-6213262973116853152?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/6213262973116853152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/12/pewpew-2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6213262973116853152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6213262973116853152'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/12/pewpew-2.html' title='PewPew 2'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8915515023220500051</id><published>2009-10-26T15:30:00.001-07:00</published><updated>2009-10-26T15:40:21.886-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stats'/><category scheme='http://www.blogger.com/atom/ns#' term='scores'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><category scheme='http://www.blogger.com/atom/ns#' term='google app engine'/><title type='text'>PewPew 1.2 is out!</title><content type='html'>And the scores are pouring in... can you guess when did Apple publish the update?&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SuYjU37LQPI/AAAAAAAAAdY/ruDjCerOg58/s1600-h/chart+(1)"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 99px;" src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SuYjU37LQPI/AAAAAAAAAdY/ruDjCerOg58/s400/chart+(1)" border="0" alt="" id="BLOGGER_PHOTO_ID_5397040044966625522" /&gt;&lt;/a&gt;&lt;div&gt;&lt;div&gt;So far, I've used 0.6% of the maximum CPU load (and 0% of the bandwidth), so I should be OK!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8915515023220500051?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8915515023220500051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/10/pewpew-12-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8915515023220500051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8915515023220500051'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/10/pewpew-12-is-out.html' title='PewPew 1.2 is out!'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Pb5ghyz83zQ/SuYjU37LQPI/AAAAAAAAAdY/ruDjCerOg58/s72-c/chart+(1)' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-7364678735033738667</id><published>2009-10-25T08:16:00.000-07:00</published><updated>2009-10-25T09:19:17.919-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scores'/><category scheme='http://www.blogger.com/atom/ns#' term='forum'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><category scheme='http://www.blogger.com/atom/ns#' term='google app engine'/><title type='text'>URL time</title><content type='html'>&lt;div&gt;PewPew 1.2 should be accepted anytime now, so the scores are going to start to pour in... luckily I have just completed PewPew's website:&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://pewpewgame.appspot.com/"&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;http://pewpewgame.appspot.com/&lt;/span&gt;&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://pewpewgame.appspot.com/"&gt;&lt;/a&gt;The most important features are the &lt;a href="http://pewpewgame.appspot.com/Scores"&gt;score board&lt;/a&gt; and the &lt;a href="http://quick-answer.appspot.com/pewpew"&gt;forum&lt;/a&gt;. I made the score board myself in &lt;a href="http://code.google.com/appengine/docs/python/gettingstarted/"&gt;python&lt;/a&gt;, and found the code for the forum &lt;a href="http://blog.kowalczyk.info/software/fofou/index.html"&gt;here&lt;/a&gt;. The forum is pretty cool, because it allows you to post with your Google account, or without login at all.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Everything is hosted on the Google App Engine, so if the traffic stays under a limit, I will never have to pay for the servers, and the website will stay up and running for ever.&lt;/div&gt;&lt;div&gt;According to my estimations, I can handle 100 000 score submissions per day without paying for additional bandwidth. Since "only" 50 000 people have installed PewPew, I should be fine.&lt;/div&gt;&lt;div&gt;I have no idea what to expect regarding the CPU utilization, but I have cached a lot of database calls, so I should be OK.&lt;/div&gt;&lt;div&gt;At worse, I might have to pay 1 or 2$ per day during the first week; after the first week, the traffic should decrease significantly.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-7364678735033738667?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/7364678735033738667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/10/url-time.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/7364678735033738667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/7364678735033738667'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/10/url-time.html' title='URL time'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-7685823474613400108</id><published>2009-10-08T15:11:00.000-07:00</published><updated>2010-01-08T07:47:09.955-08:00</updated><title type='text'>PewPew v1.2</title><content type='html'>&lt;div style="text-align: left;"&gt;I uploaded the 1.2 update to PewPew yesterday. I have been working on it for several weeks, so there's a lot of changes!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;First of all, there is a new game mode! I was not planning on adding one right away, but the survey made me change my mind. I won't spoil the surprise about how it's played, but I guarantee  &lt;b&gt;it is without a doubt the best mode yet&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt; &lt;img src="http://1.bp.blogspot.com/_Pb5ghyz83zQ/Ss6AH07BIgI/AAAAAAAAAcA/eV3Xh_q5rCU/s400/IMG_0052.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5390386675962683906" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 267px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Not shown here: insane amount of enemies&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Secondly, there is now an online high score board! In a couple of days, I will post about a small website with all the scores.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://1.bp.blogspot.com/_Pb5ghyz83zQ/Ss6AwAEIpMI/AAAAAAAAAcI/he8oTZ-ne9U/s400/IMG_0030.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5390387366148482242" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 267px; height: 400px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Thirdly, all the old game modes have been tweaked: I added a bonus to reward speed in "Dodge This", and there is a new type of enemy in "Assault".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, there are some small new optimizations that should improve the frame rate a bit on the old iPhones and iPods Touch. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's the complete list of what is new:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;new game mode, called "megagore"&lt;/li&gt;&lt;li&gt;online scores&lt;/li&gt;&lt;li&gt;the possibility to move the camera freely when watching a replay&lt;/li&gt;&lt;li&gt;the possibility to flip the screen (useful for iPhone owners)&lt;/li&gt;&lt;li&gt;the possibility to disable the text notifications during the game&lt;/li&gt;&lt;li&gt;a tougher enemy in "Assault", forcing the player to move&lt;/li&gt;&lt;li&gt;an efficiency bonus in "Dodge This"&lt;/li&gt;&lt;li&gt;colors in the nick names&lt;/li&gt;&lt;li&gt;lots of small optimizations&lt;/li&gt;&lt;li&gt;one less spelling mistake (thanks for pointing it out in the comments Anonymous)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-7685823474613400108?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/7685823474613400108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/10/pewpew-v12.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/7685823474613400108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/7685823474613400108'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/10/pewpew-v12.html' title='PewPew v1.2'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Pb5ghyz83zQ/Ss6AH07BIgI/AAAAAAAAAcA/eV3Xh_q5rCU/s72-c/IMG_0052.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-3037958610512902427</id><published>2009-08-30T17:17:00.000-07:00</published><updated>2009-10-07T15:32:10.731-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='feature'/><title type='text'>Colors</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Pb5ghyz83zQ/Ss0WufzLa2I/AAAAAAAAAb4/gnb39As7sJI/s1600-h/font_color.png"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;In PewPew 1.2 (not yet released), you can colorize you nickname. It uses what I call the "Quake 3 text color convention". Indeed, in Quake 3 you could colorize your nickname by inserting "^X", where X would be a number between 0 and 7. Each number was associated with a certain color.&lt;/div&gt;&lt;div style="text-align: left;"&gt;For instance the nickname "^1Hello" would appear red. "^4World" would appear blue. You could even do combinations, like "^1Hello^4World".&lt;/div&gt;&lt;div style="text-align: left;"&gt;Well the same thing is possible in PewPew 1.2, except that there are more colors to choose from. &lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SpcyltRbSZI/AAAAAAAAAa4/j8Y0eovDVKM/s1600-h/color_example2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 208px;" src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SpcyltRbSZI/AAAAAAAAAa4/j8Y0eovDVKM/s400/color_example2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5374820303679211922" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The new feature in action&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a picture showing each color, with its associated symbol:&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Pb5ghyz83zQ/Ss0WufzLa2I/AAAAAAAAAb4/gnb39As7sJI/s1600-h/font_color.png"&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_Pb5ghyz83zQ/Ss0WufzLa2I/AAAAAAAAAb4/gnb39As7sJI/s400/font_color.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5389989317098302306" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 92px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I hope this will result in a colorful online score table! (more on that later).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-3037958610512902427?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/3037958610512902427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/08/colors.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/3037958610512902427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/3037958610512902427'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/08/colors.html' title='Colors'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Pb5ghyz83zQ/SpcyltRbSZI/AAAAAAAAAa4/j8Y0eovDVKM/s72-c/color_example2.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-3703019850414039723</id><published>2009-08-27T10:19:00.000-07:00</published><updated>2009-08-27T18:45:24.013-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='survey'/><title type='text'>Survey results</title><content type='html'>I had exams, so I could not really work on PewPew, but now I am back. Let's take a look at the survey results.&lt;br /&gt;There were 46 responses, and I started having responses only minutes after I posted the link on touchArcade's forum. One cool thing is that they appear in real time, in a spreadsheet. Well done Google.&lt;br /&gt;And wow, I can actually copy paste the generated summary into this post.&lt;br /&gt;Here we go:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The game modes are pretty even, though it would appear you like shooting more than dodging.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:arial, sans-serif;font-size:12px;"&gt;&lt;/span&gt;&lt;div id="title#1" class="ss-indiv-chart-title" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; font-weight: bold; "&gt;What is your favorite game mode?&lt;/div&gt;&lt;div id="image#1" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;img src="http://chart.apis.google.com/chart?cht=bhs&amp;amp;chs=300x125&amp;amp;chbh=20%2C5&amp;amp;chco=008000&amp;amp;chxt=x%2Cy&amp;amp;chxl=0%3A%7C0%7C3%7C6%7C9%7C12%7C15%7C1%3A%7CChromatic%20Conflict%7CAssault%7CDodge%20This%7CI%20do%20not%20know&amp;amp;chxs=0%2C000000%2C12%2C0%2Clt%7C1%2C000000%2C12%2C1%2Clt&amp;amp;chds=0%2C15&amp;amp;chd=t%3A2%2C12%2C14%2C15" class="goog-serverchart-image" width="300" height="125" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/div&gt;&lt;div id="bottomLabels#1" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;/div&gt;&lt;div style="text-align: auto;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:arial, sans-serif;font-size:12px;"&gt;&lt;/span&gt;&lt;div id="title#2" class="ss-indiv-chart-title" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; font-weight: bold; "&gt;What is your least favorite game mode?&lt;/div&gt;&lt;div id="image#2" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;img src="http://chart.apis.google.com/chart?cht=bhs&amp;amp;chs=300x125&amp;amp;chbh=20%2C5&amp;amp;chco=008000&amp;amp;chxt=x%2Cy&amp;amp;chxl=0%3A%7C0%7C3%7C6%7C9%7C12%7C15%7C1%3A%7CChromatic%20Conflict%7CAssault%7CDodge%20This%7CI%20do%20not%20know&amp;amp;chxs=0%2C000000%2C12%2C0%2Clt%7C1%2C000000%2C12%2C1%2Clt&amp;amp;chds=0%2C15&amp;amp;chd=t%3A13%2C11%2C10%2C9" class="goog-serverchart-image" width="300" height="125" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/div&gt;&lt;div id="bottomLabels#2" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;/div&gt;&lt;div style="text-align: auto;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: auto;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;I find the music excellent, and you seem to agree. That's good because the composer is not cheap, he earns 50% of the profit* made with PewPew. The soundtrack is &lt;a href="http://www.jamendo.com/en/download/album/45142"&gt;available for free&lt;/a&gt; by the way.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:arial, sans-serif;font-size:12px;"&gt;&lt;/span&gt;&lt;div id="title#4" class="ss-indiv-chart-title"  style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border- -webkit-box-sizing: border-box; font-weight: bold; color:initial;"&gt;&lt;span class="Apple-style-span"   style=" font-weight: normal;  border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:arial, sans-serif;font-size:12px;"&gt;&lt;/span&gt;&lt;div id="title#4" class="ss-indiv-chart-title" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; font-weight: bold; "&gt;How would you rate the music?&lt;/div&gt;&lt;div id="image#4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;img src="http://chart.apis.google.com/chart?cht=bvs&amp;amp;chs=280x150&amp;amp;chbh=%2C5&amp;amp;chco=008000&amp;amp;chly=12%7C10%7C8%7C6%7C4%7C2%7C0&amp;amp;chl=1%7C2%7C3%7C4%7C5%7C6%7C7%7C8%7C9%7C10&amp;amp;chds=0%2C12&amp;amp;chd=t%3A3%2C0%2C2%2C3%2C2%2C3%2C12%2C9%2C6%2C3" class="goog-serverchart-image" width="280" height="150" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/div&gt;&lt;div id="bottomLabels#4" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;table width="280" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-collapse: collapse; empty-cells: show; font-size: 1em; "&gt;&lt;tbody style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;td width="93" align="left" class="ss-table-scale-label" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: top; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;Very poor&lt;/div&gt;&lt;/td&gt;&lt;td width="93" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;/td&gt;&lt;td width="93" align="right" class="ss-table-scale-label" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; vertical-align: top; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;Excellent&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Ah! Google is not perfect after all, they messed up the parsing! That's about all we learn from this question, because I already knew that I am good at making a game balanced.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:arial, sans-serif;font-size:12px;"&gt;&lt;/span&gt;&lt;div id="title#8" class="ss-indiv-chart-title" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; font-weight: bold; "&gt;The difficulty of the "Assault" mode increases:&lt;/div&gt;&lt;div id="image#8" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;img src="http://chart.apis.google.com/chart?cht=bhs&amp;amp;chs=300x125&amp;amp;chbh=20%2C5&amp;amp;chco=008000&amp;amp;chxt=x%2Cy&amp;amp;chxl=0%3A%7C0%7C5%7C10%7C15%7C20%7C25%7C30%7C1%3A%7Cat%20the%20correct%20sp...%7Ctoo%20quickly%7Ctoo%20slowly%7C(choose%20an%20answer)&amp;amp;chxs=0%2C000000%2C12%2C0%2Clt%7C1%2C000000%2C12%2C1%2Clt&amp;amp;chds=0%2C30&amp;amp;chd=t%3A0%2C4%2C7%2C26" class="goog-serverchart-image" width="300" height="125" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/div&gt;&lt;div id="bottomLabels#8" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;/div&gt;&lt;div style="text-align: auto;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: auto;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:arial, sans-serif;font-size:12px;"&gt;&lt;/span&gt;&lt;div id="title#9" class="ss-indiv-chart-title" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; font-weight: bold; "&gt;The difficulty of the "Chromatic Conflict" mode increases:&lt;/div&gt;&lt;div id="image#9" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;img src="http://chart.apis.google.com/chart?cht=bhs&amp;amp;chs=300x125&amp;amp;chbh=20%2C5&amp;amp;chco=008000&amp;amp;chxt=x%2Cy&amp;amp;chxl=0%3A%7C0%7C4%7C8%7C12%7C16%7C20%7C1%3A%7Cat%20the%20correct%20sp...%7Ctoo%20quickly%7Ctoo%20slowly%7C(choose%20an%20answer)&amp;amp;chxs=0%2C000000%2C12%2C0%2Clt%7C1%2C000000%2C12%2C1%2Clt&amp;amp;chds=0%2C20&amp;amp;chd=t%3A2%2C6%2C8%2C20" class="goog-serverchart-image" width="300" height="125" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/div&gt;&lt;div id="bottomLabels#9" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;And now, the most important information I got: it appears you guys prefer a new game mode over online scores! That really really surprised me.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:arial, sans-serif;font-size:12px;"&gt;&lt;/span&gt;&lt;div id="title#0" class="ss-indiv-chart-title" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; font-weight: bold; "&gt;What would you prefer in the next update&lt;/div&gt;&lt;div id="image#0" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;img src="http://chart.apis.google.com/chart?cht=bhs&amp;amp;chs=300x100&amp;amp;chbh=20%2C5&amp;amp;chco=008000&amp;amp;chxt=x%2Cy&amp;amp;chxl=0%3A%7C0%7C6%7C12%7C18%7C24%7C30%7C1%3A%7CAn%20additionnal%20ga...%7COnline%20scores%7CI%20do%20not%20know&amp;amp;chxs=0%2C000000%2C12%2C0%2Clt%7C1%2C000000%2C12%2C1%2Clt&amp;amp;chds=0%2C30&amp;amp;chd=t%3A3%2C9%2C29" class="goog-serverchart-image" width="300" height="100" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/div&gt;&lt;div id="bottomLabels#0" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; -webkit-box-sizing: border-box; "&gt;&lt;/div&gt;&lt;div style="text-align: auto;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: auto;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;In fact, I was planning on releasing an update with the only new thing beeing onlines scores, but that made me change my mind. So yeah, this survey was useful.&lt;br /&gt;Also, I was thinking about doing a game mode that involved dropping bombs, but since you like shooting so much I went in a different direction... that I have yet to find.&lt;br /&gt;&lt;br /&gt;Finally, I got a lot of interesting/passionated comments in the form. I'll talk about all the improvements I did for PewPew 1.2 in a futur post.&lt;br /&gt;Thanks everyone.&lt;br /&gt;&lt;br /&gt;* that amounts to exactly 0€&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-3703019850414039723?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/3703019850414039723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/08/survey-results.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/3703019850414039723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/3703019850414039723'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/08/survey-results.html' title='Survey results'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-643341789061412416</id><published>2009-07-14T16:28:00.001-07:00</published><updated>2009-07-14T16:48:12.015-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='survey'/><title type='text'>Survey time</title><content type='html'>I am currently working on the update, and I'd like to have a bit of input from the players.&lt;div&gt;It's totaly anonymous and very quick (7 questions).&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-large; "&gt;&lt;a href="http://spreadsheets.google.com/viewform?hl=en&amp;amp;formkey=ci1rNW5oMGkxanJzMjlfRkkya0FhZ1E6MA.."&gt;Link to the survey&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-643341789061412416?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/643341789061412416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/07/survey-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/643341789061412416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/643341789061412416'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/07/survey-time.html' title='Survey time'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8787304665047687020</id><published>2009-07-10T13:30:00.000-07:00</published><updated>2009-07-14T16:59:18.155-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='3GS'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><title type='text'>Volumetric Lines</title><content type='html'>&lt;div&gt;I first started programming PewPew on Linux, with portable librairies (OpenGL/SDL/libcurl). Of course, I had the iPhone/iPod touch in mind, so I designed the gameplay and the UI accordingly.&lt;/div&gt;&lt;div&gt;After a month or two (once I payed for the $99 for the SDK), I migrated to Xcode and the iPhone OS. I'll write a post about that later because it was not as simple as I imagined it would be.&lt;/div&gt;&lt;div&gt;A week ago, I migrated the code back to Linux, and this time it only took a couple of days :) The goal was to make PewPew prettier by giving the lines a glowing look (like geometry wars) by using the infinite power of my computer (compared to the iphone anyway).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SlftcNbdK7I/AAAAAAAAAYs/hM2dsULUOao/s1600-h/2721336395_697e747572_o.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SlftcNbdK7I/AAAAAAAAAYs/hM2dsULUOao/s400/2721336395_697e747572_o.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5357011350677433266" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Perfection.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Naturally, at first I failed :-)&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;My first idea was to draw the lines multiple times, with different width and different transparencies. Here's what it looked like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/Slfs_xAaD3I/AAAAAAAAAYc/_vKeMGputTI/s400/nicetry.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5357010862011453298" style="text-align: center; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 283px; " /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SlftAemAfyI/AAAAAAAAAYk/2pA6i7jIu50/s1600-h/nicetry2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 284px;" src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SlftAemAfyI/AAAAAAAAAYk/2pA6i7jIu50/s400/nicetry2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5357010874248757026" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;b&gt;Not&lt;/b&gt; perfection.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/Slfs_xAaD3I/AAAAAAAAAYc/_vKeMGputTI/s1600-h/nicetry.png" style="text-decoration: none;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Okay so that was ugly, but it had to be done. The second idea was to use pixel shaders. A pixel shader is small routine executed on the graphic card, that is applied to every pixel drawn. In this case, the shader would blur the screen.&lt;/div&gt;&lt;div&gt;And then I remember that activating motion blur in Crysis made the game run at 10fps...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;So I got a third idea, where every line drawn would actually be a streched texture. However, a problem would arises when you would look at the line along its axis: you would only see its profil. By searching a bit (actually, a lot) on the internet, I found out that this problem has been solved, and has a name: &lt;b&gt;Volumetric Lines&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;I won't go into the detail of the technique, there is some code &lt;a href="http://sebastien.hillaire.free.fr/demos/simplevolumeline/vline.htm"&gt;here&lt;/a&gt;. However I will say that his implementation kicks ass, because he actually use the GPU to process the orientation of the texture (using a vertex shader). Here are some glorious screenshots:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SlfrXRwgklI/AAAAAAAAAYU/SzY50Iq4Myw/s1600-h/bsc13.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SlfrXRwgklI/AAAAAAAAAYU/SzY50Iq4Myw/s400/bsc13.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5357009066916876882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Pb5ghyz83zQ/SlfrXE7KWXI/AAAAAAAAAYM/lkU9Br5kM58/s1600-h/bsc9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://4.bp.blogspot.com/_Pb5ghyz83zQ/SlfrXE7KWXI/AAAAAAAAAYM/lkU9Br5kM58/s400/bsc9.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5357009063471896946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Pb5ghyz83zQ/SlfrW2JjBnI/AAAAAAAAAYE/e2tUx0pZSv4/s1600-h/bsc6.png" style="text-decoration: none;"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://4.bp.blogspot.com/_Pb5ghyz83zQ/SlfrW2JjBnI/AAAAAAAAAYE/e2tUx0pZSv4/s400/bsc6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5357009059505702514" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SlfrWttvx7I/AAAAAAAAAX8/ABaF4AN6R6A/s1600-h/bsc2.png" style="text-decoration: none;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SlfrWttvx7I/AAAAAAAAAX8/ABaF4AN6R6A/s1600-h/bsc2.png" style="text-decoration: none;"&gt;&lt;img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 285px; " src="http://3.bp.blogspot.com/_Pb5ghyz83zQ/SlfrWttvx7I/AAAAAAAAAX8/ABaF4AN6R6A/s400/bsc2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5357009057241614258" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;This time, the screenshots are made under OS X, and with the iPhone's screen resolution.&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Transparency is not yet working, but that should be easy to correct and I think that using &lt;a href="http://en.wikipedia.org/wiki/Mipmap"&gt;mipmapping&lt;/a&gt; will reduce the aliasing (and thus make thinner lines possible). Also, the vertex shader has the additional effect of messing up the tab polygon. hehe.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Overall, I am pretty happy of the result. BTW, it might be possible to run this on the iPhone 3GS at a descent frame rate... To be followed?&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8787304665047687020?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8787304665047687020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/07/volumetric-lines.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8787304665047687020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8787304665047687020'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/07/volumetric-lines.html' title='Volumetric Lines'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Pb5ghyz83zQ/SlftcNbdK7I/AAAAAAAAAYs/hM2dsULUOao/s72-c/2721336395_697e747572_o.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-1601654410335083868</id><published>2009-07-04T05:39:00.001-07:00</published><updated>2009-07-14T16:59:43.412-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Let there be PewPew v1.1</title><content type='html'>PewPew v1.1 is finally out. I have not received any crash report (yet?), so the update code seems to work well.&lt;br /&gt;Also, it seems that people appreciate the new game mode =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-1601654410335083868?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/1601654410335083868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/07/let-there-be-pewpew-v11.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1601654410335083868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1601654410335083868'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/07/let-there-be-pewpew-v11.html' title='Let there be PewPew v1.1'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-919850395022017007</id><published>2009-06-24T04:56:00.000-07:00</published><updated>2009-06-26T11:17:10.707-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>Review!</title><content type='html'>First of all, I am happy to announce that App of my Eye &lt;a href="http://appofmyeye.com/2009/06/22/pewpew/"&gt;reviewed PewPew&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;[...] the biggest praise we have for this game is it’s controls, which are very responsive and just feels great overall.  If not THE best controls that we’ve ever had in an iPhone game, definitely one of the best.  Other publishers/developers should take note.  A must-have app for every level of gamer and amazingly, it’s free.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Secondly, last Friday (the 19th), I submitted an other update. Let's hope Apple will validate it more quickly than the last one I submitted!&lt;br /&gt;The most important changes in the new version (PewPew v1.1) are that:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The difficulty increases more slowly in the &lt;span style="font-style: italic;"&gt;Assault mode&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Because the gameplay changed a little bit, the replays you did are incompatible: &lt;span style="font-weight: bold;"&gt;you will not be able to watch the replays you made in PewPew v1.0&lt;/span&gt;. I am sorry, but it was just too complicated to maintain compatibility.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;I finally added a new mode, &lt;span style="font-style: italic;"&gt;Chromatic Conflict&lt;/span&gt;. In this mode, you can change the color of your ship. Depending on the color of your ship, you can destroy certain enemies.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;During the replays, you can stop the rotation of the camera, and fast forward.&lt;/li&gt;&lt;/ul&gt;Edit: and I forgot to mention that PewPew v1.1 allows you to listen to your own music.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-919850395022017007?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/919850395022017007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/06/review.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/919850395022017007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/919850395022017007'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/06/review.html' title='Review!'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-6935503351691634408</id><published>2009-06-16T15:12:00.000-07:00</published><updated>2009-10-07T17:48:02.624-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='appstore fail'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Update cancelled!</title><content type='html'>Okay, so I submitted the update two weeks ago, and it is still "In Review". I had not realized my update was so big it required 2 weeks of attention.&lt;br /&gt;&lt;br /&gt;So I canceled the update, because right after it would have been accepted it, I would have submitted a new one, and I am pretty sure Apple wouldn't have appreciated it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-6935503351691634408?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/6935503351691634408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/06/update-cancelled.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6935503351691634408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6935503351691634408'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/06/update-cancelled.html' title='Update cancelled!'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8503183066264389004</id><published>2009-06-09T16:36:00.000-07:00</published><updated>2009-06-09T17:01:49.825-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Forcing xCode to update the bundle</title><content type='html'>When you modify some of your ressources files in a xCode project, the bundle does not get updated until you modify some port of the code (or do a rebuild all, which takes a while on bigger project).&lt;br /&gt;So here's my (ridiculous) work around:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mac:~ jyaif$ while [ 1 ]; do touch /Users/jyaif/PewPew/Resources/data/boo; rm /Users/jyaif/PewPew/Resources/data/boo; sleep 5; done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In other news, I am still waiting for my update to get approved. I suspect Apple takes this long, to discourage devellopers from updating their apps too often, as this would force them to hire one or -god forbid- two additional testers. In totally unrelated news, I installed and tried the Android SDK :o&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8503183066264389004?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8503183066264389004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/06/forcing-xcode-to-update-bundle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8503183066264389004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8503183066264389004'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/06/forcing-xcode-to-update-bundle.html' title='Forcing xCode to update the bundle'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-369927975959588088</id><published>2009-05-29T12:20:00.000-07:00</published><updated>2009-06-07T14:59:41.142-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='todo'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Update sent to the App Store</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);"&gt;I uploaded an update of PewPew. From what I read, it will probably take a week or so for the game to be available on the App Store.&lt;br /&gt;Anyway, PewPew now:&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;encourages doing the tutorial when playing the game for the first time&lt;/li&gt;&lt;li&gt;asks for confirmation when quitting a game&lt;/li&gt;&lt;li&gt;permits the activation/deactivation of rotation during a replay&lt;br /&gt;&lt;/li&gt;&lt;li&gt;makes it visually obvious to the player that he has taken a bonus&lt;br /&gt;&lt;/li&gt;&lt;li&gt;has a lower amount of particles&lt;br /&gt;&lt;/li&gt;&lt;li&gt;has prettier explosions&lt;/li&gt;&lt;li&gt;puts the game in pause when a low battery alert (or a music menu pop up) appears&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ignores replays that can no longer be played&lt;/li&gt;&lt;li&gt;make the difficulty increase more slowly in the "Assault" mode&lt;/li&gt;&lt;li&gt;respects the players that are listening to their own music :)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Under the hood updates:&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;versioning system for the scores&lt;/li&gt;&lt;li&gt;precalculation of the explosions &lt;/li&gt;&lt;li&gt;needed models are loaded at the beginning of a game (to avoid ingame slowdowns)&lt;/li&gt;&lt;li&gt;externalized descriptions of the game modes&lt;/li&gt;&lt;/ul&gt;What I should have finished:&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;The 3rd mode&lt;/li&gt;&lt;li&gt;An obvious optimization to the collision detection&lt;/li&gt;&lt;/ul&gt;I am still not satisfied with the way the "3rd mode" is. I have tried a variety of gameplay models, but I can't find anything that's not too hard and not too boring.&lt;br /&gt;Also, the "obvious optimization" will take a lot of time to do, and right now I prefer focusing on finishing the "3rd mode".&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-369927975959588088?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/369927975959588088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/update-sent-to-appstore.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/369927975959588088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/369927975959588088'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/update-sent-to-appstore.html' title='Update sent to the App Store'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-5340911893220400345</id><published>2009-05-17T02:54:00.000-07:00</published><updated>2009-06-09T17:03:04.423-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stats'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>More countries</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://spreadsheets.google.com/pub?key=r5RWfhnooyOQ9OqDsYIMykg&amp;amp;oid=5&amp;amp;output=image"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px; height: 320px;" src="http://spreadsheets.google.com/pub?key=r5RWfhnooyOQ9OqDsYIMykg&amp;amp;oid=5&amp;amp;output=image" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Yesterday, I made PewPew available in all countries, except the english-speaking ones (US/Canda/UK/Australia/Ireland...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-5340911893220400345?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/5340911893220400345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/more-countries.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/5340911893220400345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/5340911893220400345'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/more-countries.html' title='More countries'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8021141344547548078</id><published>2009-05-15T08:07:00.000-07:00</published><updated>2009-05-18T08:29:10.368-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stats'/><title type='text'>Downloads</title><content type='html'>The downloads, so far.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://spreadsheets.google.com/pub?key=r5RWfhnooyOQ9OqDsYIMykg&amp;oid=4&amp;output=image"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px; height: 320px;" src="http://spreadsheets.google.com/pub?key=r5RWfhnooyOQ9OqDsYIMykg&amp;oid=4&amp;output=image" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8021141344547548078?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8021141344547548078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/downloads.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8021141344547548078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8021141344547548078'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/downloads.html' title='Downloads'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-9189410940688328475</id><published>2009-05-13T14:49:00.000-07:00</published><updated>2009-05-15T12:32:02.112-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='todo'/><title type='text'>Current todo list</title><content type='html'>Here is the current list of tasks I need to do before releasing an update for PewPew:&lt;br /&gt;&lt;ul&gt;&lt;li style="color: rgb(204, 0, 0);"&gt;force/encourage doing the tutorial when playing the game for the first time&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;ask for confirmation when quitting a game&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;permit the activation/deactivation of the rotation during a replay&lt;/span&gt;&lt;/li&gt;&lt;li&gt;make it obvious to the player that he has taken a bonus&lt;br /&gt;&lt;/li&gt;&lt;li&gt;load some of the needed models at the beginning of a game (to avoid ingame slowdowns)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;somewhat precalculate the explosions, and reduce the number of particules&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;make the explosions more spectacular&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;put the game in pause when a low battery alert appears&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;create a versioning system for the scores&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;i&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;gnore replays that can no longer be played&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;externalise the modes descriptions&lt;/li&gt;&lt;li&gt;finish the 3rd mode&lt;/li&gt;&lt;li&gt;make the difficulty increase more slowly in the "Assault" mode&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(204, 0, 0);"&gt;optimize [a small] part of the collision detection&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Green&lt;/span&gt; = done&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Red&lt;/span&gt; = might not be done&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-9189410940688328475?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/9189410940688328475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/current-todo-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/9189410940688328475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/9189410940688328475'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/current-todo-list.html' title='Current todo list'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-7237718572536099098</id><published>2009-05-12T17:16:00.000-07:00</published><updated>2009-05-12T17:30:34.395-07:00</updated><title type='text'>Ratings on the french App store, after 4 days.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Pb5ghyz83zQ/SgoSJTn2W7I/AAAAAAAAAUk/0bH9bgUgEVU/s1600-h/ratings.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 392px;" src="http://4.bp.blogspot.com/_Pb5ghyz83zQ/SgoSJTn2W7I/AAAAAAAAAUk/0bH9bgUgEVU/s400/ratings.png" alt="" id="BLOGGER_PHOTO_ID_5335096659669310386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Overall, the ratings are decent, and the reviews are good.&lt;br /&gt;It is a good surprise, since this game is really not for casual gamers. I expected more people to not understand/like the game, and subsequently give it a poor rating.&lt;br /&gt;I expect the average rating to decrease though, as unsatisfied people uninstall the app and give it a 1 star rating.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-7237718572536099098?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/7237718572536099098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/ratings-on-french-app-store.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/7237718572536099098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/7237718572536099098'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/ratings-on-french-app-store.html' title='Ratings on the french App store, after 4 days.'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Pb5ghyz83zQ/SgoSJTn2W7I/AAAAAAAAAUk/0bH9bgUgEVU/s72-c/ratings.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-4997611133461052732</id><published>2009-05-07T19:51:00.000-07:00</published><updated>2009-05-07T21:39:43.904-07:00</updated><title type='text'>"Your application status is Ready for Sale"</title><content type='html'>Ca y est, PewPew est disponible sur l'appstore Francaise/Belge/Luxembourgeoise d'Apple.&lt;br /&gt;J'ai crée un groupe de discussion pour pouvoir parler de PewPew, &lt;a href="http://groups.google.fr/group/pewpewgame"&gt;là&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There, PewPew is available!&lt;br /&gt;Since I released PewPew only in France/Belgium/Luxembourg, this post is be both in French and in English.&lt;br /&gt;To ask questions/talk about PewPew, go &lt;a href="http://groups.google.fr/group/pewpewgame"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-4997611133461052732?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/4997611133461052732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/your-application-status-is-ready-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/4997611133461052732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/4997611133461052732'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/your-application-status-is-ready-for.html' title='&quot;Your application status is Ready for Sale&quot;'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-454800120732885438</id><published>2009-05-01T11:35:00.000-07:00</published><updated>2009-05-07T21:41:02.150-07:00</updated><title type='text'>Status: In Review</title><content type='html'>&lt;blockquote&gt;Date Submitted: 01 May 2009&lt;br /&gt;Release Date: 01 May 2009&lt;br /&gt;Status: In Review&lt;/blockquote&gt;&lt;br /&gt;Now, we wait.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-454800120732885438?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/454800120732885438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/status-in-review.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/454800120732885438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/454800120732885438'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/05/status-in-review.html' title='Status: In Review'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8060070037804813851</id><published>2009-04-22T11:28:00.000-07:00</published><updated>2009-04-23T17:09:56.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><category scheme='http://www.blogger.com/atom/ns#' term='syntax'/><title type='text'>Syntax highlighting for Lua in Xcode</title><content type='html'>It is possible! You only need to copy two files in the correct directory: &lt;br /&gt;&lt;a href="http://www.capgo.com/Resources/SoftwareDev/LuaXcode3SyntaxColor.zip"&gt;LuaXcode3SyntaxColor.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(found at &lt;a href="http://www.capgo.com/Resources/SoftwareDev/SoftwareCorner.html"&gt;Capgo's website&lt;/a&gt; via &lt;a href="http://lua-users.org/wiki/LuaEditorSupport"&gt;lua-users.org)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update: after installing this, Xcode started crashing regularly, and at one point I couldn't even send the game to the emulator anymore =&gt; I removed the files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8060070037804813851?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8060070037804813851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/04/syntax-highlighting-for-lua-in-xcode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8060070037804813851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8060070037804813851'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/04/syntax-highlighting-for-lua-in-xcode.html' title='Syntax highlighting for Lua in Xcode'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-1235041209013575456</id><published>2009-04-21T14:37:00.000-07:00</published><updated>2009-04-21T16:53:53.608-07:00</updated><title type='text'>PewPew, step 9</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7eBNNZdWEHA&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/7eBNNZdWEHA&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Added:&lt;br /&gt;-Lightning on the main menu&lt;br /&gt;-3D cube transition between the menus/screens&lt;br /&gt;-"About" screen&lt;br /&gt;-Pretty joysticks&lt;br /&gt;-A new mode (shown at the end) that totally rocks&lt;br /&gt;-Scores&lt;br /&gt;-Menu to display scores and launch replays&lt;br /&gt;-Hashes to verify the integrity of the scores&lt;br /&gt;-Preferences&lt;br /&gt;-An in-game menu&lt;br /&gt;-Lower case characters&lt;br /&gt;-Scrolling background that can change color.&lt;br /&gt;-Music&lt;br /&gt;-A rotating camera when watching replays&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-1235041209013575456?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/1235041209013575456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/04/pewpew-step-9.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1235041209013575456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/1235041209013575456'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/04/pewpew-step-9.html' title='PewPew, step 9'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-4706088522013797780</id><published>2009-03-19T21:56:00.000-07:00</published><updated>2009-04-21T14:26:59.581-07:00</updated><title type='text'>PewPew, step 8</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/C423RwJiUO8&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/C423RwJiUO8&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Added: splash screen, a decent icon, and REPLAYS. Here I am showing the two first modes (using the brand-new replay system)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-4706088522013797780?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/4706088522013797780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/03/pewpew-step-8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/4706088522013797780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/4706088522013797780'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/03/pewpew-step-8.html' title='PewPew, step 8'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-5713629143308028815</id><published>2009-03-15T22:37:00.000-07:00</published><updated>2009-04-21T14:25:30.684-07:00</updated><title type='text'>PewPew, step 7</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Fb2hDbD4x70&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Fb2hDbD4x70&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Bam. One of the modes playable in the game. Needs to be tweaked to become fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-5713629143308028815?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/5713629143308028815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/03/pewpew-step-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/5713629143308028815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/5713629143308028815'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/03/pewpew-step-7.html' title='PewPew, step 7'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-5214309128023074390</id><published>2009-03-09T21:45:00.000-07:00</published><updated>2009-04-21T14:24:31.054-07:00</updated><title type='text'>PewPew, step 6</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/w9Ay9yXc2PE&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/w9Ay9yXc2PE&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Added space partitioning, allowing efficient collision detection between the player, the ennemies, the bullets, and the walls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-5214309128023074390?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/5214309128023074390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/03/pewpew-step-6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/5214309128023074390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/5214309128023074390'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/03/pewpew-step-6.html' title='PewPew, step 6'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-4549702798217162536</id><published>2009-03-06T23:11:00.000-08:00</published><updated>2012-01-01T12:08:14.844-08:00</updated><title type='text'>PewPew, step 5</title><content type='html'>&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PvTfUAHUcq0&amp;amp;hl=fr&amp;amp;fs=1&amp;amp;color1=0xe1600f&amp;amp;color2=0xfebd01"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/PvTfUAHUcq0&amp;amp;hl=fr&amp;amp;fs=1&amp;amp;color1=0xe1600f&amp;amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Just for kicks I enabled addiditve blending which resulted in... ABSOLUTELY NO LOSS OF FPS. Shown here are spherical explosions (200 particules per explosions), still at 60 fps. I captured the video filming the simulator because I was hoping the quality would be better than when filming my ipod (the pixels on my computer screen are larger).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-4549702798217162536?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/4549702798217162536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/03/pewpew-step-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/4549702798217162536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/4549702798217162536'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/03/pewpew-step-5.html' title='PewPew, step 5'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-3916499002567965495</id><published>2009-03-06T22:54:00.000-08:00</published><updated>2012-01-01T12:07:18.631-08:00</updated><title type='text'>PewPew, step 4</title><content type='html'>&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/15QRcS0YsyM&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/15QRcS0YsyM&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;I added a lua interpreter. The graphics (font/ship/background/bullets) are loaded from lua scripts. Also, openGL is now set up for 3D graphics (before, objects far away from the camera were as big as the objects near).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-3916499002567965495?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/3916499002567965495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/03/pewpew-step-4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/3916499002567965495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/3916499002567965495'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/03/pewpew-step-4.html' title='PewPew, step 4'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-6780100283203017924</id><published>2009-02-16T23:22:00.000-08:00</published><updated>2009-04-21T14:19:31.261-07:00</updated><title type='text'>PewPew, step 3</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2gbWYjuLszg&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/2gbWYjuLszg&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;There, the ship can shoot bullets. I also added explosions, and they aren't slowing down the fps either :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-6780100283203017924?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/6780100283203017924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/02/pewpew-step-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6780100283203017924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/6780100283203017924'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/02/pewpew-step-3.html' title='PewPew, step 3'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8128932188124142675</id><published>2009-02-15T12:11:00.001-08:00</published><updated>2009-04-21T14:18:21.111-07:00</updated><title type='text'>PewPew, step 2</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qFvG7jmmLss&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/qFvG7jmmLss&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;I mostly cleaned the code.&lt;br /&gt;Also, the camera follows the player, and you can control the shield.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8128932188124142675?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8128932188124142675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/02/pewpew-step-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8128932188124142675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8128932188124142675'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/02/pewpew-step-2.html' title='PewPew, step 2'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8848210792758184058</id><published>2009-02-14T06:35:00.000-08:00</published><updated>2009-04-21T14:18:04.649-07:00</updated><title type='text'>PewPew, step 1</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wyP0JrLsJCE&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/wyP0JrLsJCE&amp;hl=fr&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Pheww, finally managed to run some code on my ipod. The left "joystick" doesn't do anything, it's there just to prove I can handle multi-touch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8848210792758184058?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8848210792758184058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/04/pewpew-step-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8848210792758184058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8848210792758184058'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/04/pewpew-step-1.html' title='PewPew, step 1'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5443986370946695189.post-8329244768003008715</id><published>2009-02-13T06:30:00.000-08:00</published><updated>2009-04-21T14:20:26.064-07:00</updated><title type='text'>First</title><content type='html'>This blog is dedicated to the development of the &lt;span style="font-style:italic;"&gt;PewPew&lt;/span&gt;, an iPhone game I am programming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5443986370946695189-8329244768003008715?l=pewpewgame.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pewpewgame.blogspot.com/feeds/8329244768003008715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pewpewgame.blogspot.com/2009/04/first.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8329244768003008715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5443986370946695189/posts/default/8329244768003008715'/><link rel='alternate' type='text/html' href='http://pewpewgame.blogspot.com/2009/04/first.html' title='First'/><author><name>Jean-François Geyelin</name><uri>https://profiles.google.com/100900570964561379344</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-zsNQc8inbXM/AAAAAAAAAAI/AAAAAAAABUY/tyrFsV-Ui9k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
