<?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-4445413175839876229</id><updated>2012-02-16T15:16:57.931+01:00</updated><title type='text'>Kyana Prime</title><subtitle type='html'>Flying Shark classic arcade game remake using C++, OpenGL and OpenAL.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kyanaprime.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4445413175839876229/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kyanaprime.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Javier Martin</name><uri>http://www.blogger.com/profile/10285277746399889306</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4445413175839876229.post-8351829965986648600</id><published>2011-09-04T17:36:00.000+02:00</published><updated>2011-09-04T17:36:24.470+02:00</updated><title type='text'>Friking Shark Beta</title><content type='html'>It's been a long time from my last post but here I am again, and with very good news :)&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;The game is finally complete and is now in Beta stage!&lt;/span&gt;&lt;br /&gt;&lt;br class="Apple-interchange-newline" /&gt;It's been a lot of work, but hey! I have finished my first game! This is something I wanted to do from my childhood, and now I got it :).&lt;br /&gt;&lt;br /&gt;The Beta version can be downloaded from &lt;a href="http://code.google.com/p/friking-shark/"&gt;the project page at Google Code&lt;/a&gt;.&lt;br /&gt;At the time of this writing only Window installer is available.&amp;nbsp;Linux .deb package will be available soon.&amp;nbsp;The game is completely free (GPL3), so Linux users can download the source code and compile it.&lt;br /&gt;&lt;br /&gt;A&lt;a href="http://groups.google.com/group/friking-shark"&gt; Google Group has been created for the project&lt;/a&gt; where you can&amp;nbsp;ask for support or post comments about the game.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I want to thank Saul Cross for arranging the original game music. He has done an impressive work, this game would not be the same without him.&lt;br /&gt;You can see Saul's work &lt;a href="http://www.simple-media.co.uk/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In the following weeks I will be posting my impressions on the development, just in case someone out there finds it useful when trying to make his own one.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Some screenshots from the game:&lt;br /&gt;&lt;br /&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;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://friking-shark.googlecode.com/svn/wiki/Beta1/image2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://friking-shark.googlecode.com/svn/wiki/Beta1/image2.jpg" width="223" /&gt;&lt;/a&gt;&lt;a href="http://friking-shark.googlecode.com/svn/wiki/Beta1/image6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://friking-shark.googlecode.com/svn/wiki/Beta1/image6.jpg" width="223" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://friking-shark.googlecode.com/svn/wiki/Beta1/image9.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://friking-shark.googlecode.com/svn/wiki/Beta1/image9.jpg" width="223" /&gt;&lt;/a&gt;&lt;a href="http://friking-shark.googlecode.com/svn/wiki/Beta1/image12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://friking-shark.googlecode.com/svn/wiki/Beta1/image12.jpg" width="223" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you like the screenshots you may want to see gameplay videos for all levels &lt;a href="http://code.google.com/p/friking-shark/wiki/Videos"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And that's all, enjoy playing it!&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4445413175839876229-8351829965986648600?l=kyanaprime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kyanaprime.blogspot.com/feeds/8351829965986648600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kyanaprime.blogspot.com/2011/09/friking-shark-beta.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4445413175839876229/posts/default/8351829965986648600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4445413175839876229/posts/default/8351829965986648600'/><link rel='alternate' type='text/html' href='http://kyanaprime.blogspot.com/2011/09/friking-shark-beta.html' title='Friking Shark Beta'/><author><name>Javier Martin</name><uri>http://www.blogger.com/profile/10285277746399889306</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4445413175839876229.post-8291763454022173461</id><published>2011-05-04T01:06:00.000+02:00</published><updated>2011-05-04T01:06:08.152+02:00</updated><title type='text'>First level gameplay video</title><content type='html'>&lt;div style="text-align: left;"&gt;Finally! The first Friking Shark&amp;nbsp;level&amp;nbsp;is playable.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;There are some missing details and a lot of aspects to improve, but the hardest work (most of it modeling and texturing) is already done.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" 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://0.gvt0.com/vi/BgUscf6eSVw/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/BgUscf6eSVw&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/BgUscf6eSVw&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I want to thank Diego Sánchez for his invaluable support, in a direct way by modeling the coolest Level Boss ever :) and in an indirect way by pushing me to try some techniques new to me (like occlusion and normal maps).&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I'll try to have a Windows&amp;nbsp;demo release&amp;nbsp;and upload the project to Google Code&amp;nbsp;by the end of the week. The Linux release will surely take some time (due to my ignorance in deploying Linux software).&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&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/4445413175839876229-8291763454022173461?l=kyanaprime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kyanaprime.blogspot.com/feeds/8291763454022173461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kyanaprime.blogspot.com/2011/05/first-level-gameplay-video.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4445413175839876229/posts/default/8291763454022173461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4445413175839876229/posts/default/8291763454022173461'/><link rel='alternate' type='text/html' href='http://kyanaprime.blogspot.com/2011/05/first-level-gameplay-video.html' title='First level gameplay video'/><author><name>Javier Martin</name><uri>http://www.blogger.com/profile/10285277746399889306</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4445413175839876229.post-3230121723917537152</id><published>2011-04-11T18:05:00.000+02:00</published><updated>2011-04-11T18:05:59.404+02:00</updated><title type='text'>My first models and textures</title><content type='html'>Up to now I had relied on my friend Campa for the game models and textures. I no longer have his support, so I finally decided to start creating models and textures by myself.&lt;br /&gt;&lt;br /&gt;This may sound a little absurd, but, as a pure programmer, I have a real panic to graphics because I know modelling requires a talent I think I do not really have.&lt;br /&gt;&lt;br /&gt;Anyway, there is no other option, I have to finish the game, so, this weekend I started to create the models needed to complete the first level using Blender and Gimp.&lt;br /&gt;&lt;br /&gt;The first model I tried to create was the game tank.&amp;nbsp;After a very frustating first attempt, I throwed it out &amp;nbsp;and restarted from scratch.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;This is my current tank, surely not the best tank model around, but good enough for the time being.&amp;nbsp;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&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/-GqBg-vlZhtA/TaMabA9NgrI/AAAAAAAAACU/px7BBfMM8Fg/s1600/ColumnaTanques.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="236" src="http://4.bp.blogspot.com/-GqBg-vlZhtA/TaMabA9NgrI/AAAAAAAAACU/px7BBfMM8Fg/s320/ColumnaTanques.jpg" 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;The tank model&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Other captures and their original versions:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&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://3.bp.blogspot.com/-WfHmq-tjUjI/TaMk_jHRt-I/AAAAAAAAADI/wasDNie6Zf8/s1600/CasasYTanques.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="235" src="http://3.bp.blogspot.com/-WfHmq-tjUjI/TaMk_jHRt-I/AAAAAAAAADI/wasDNie6Zf8/s320/CasasYTanques.jpg" 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;The new red fighter texture and two new buildings&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-4j77ZK1xMS0/TaMfp0Q8gBI/AAAAAAAAACs/DnYiGICsMDA/s1600/Orig1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-4j77ZK1xMS0/TaMfp0Q8gBI/AAAAAAAAACs/DnYiGICsMDA/s200/Orig1.jpg" width="140" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&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/-c0VGuKI8eLE/TaMacOEnm3I/AAAAAAAAACY/VhrXLxaqCj8/s1600/Edificios.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="236" src="http://4.bp.blogspot.com/-c0VGuKI8eLE/TaMacOEnm3I/AAAAAAAAACY/VhrXLxaqCj8/s320/Edificios.jpg" 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;Another new building&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-pJCS4Ts8DXI/TaMhcCCDjFI/AAAAAAAAADA/Raf-vuya0M4/s1600/Orig6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-pJCS4Ts8DXI/TaMhcCCDjFI/AAAAAAAAADA/Raf-vuya0M4/s200/Orig6.jpg" width="140" /&gt;&lt;/a&gt;&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://3.bp.blogspot.com/-ROsE5rxRuh4/TaMadP6vFtI/AAAAAAAAACc/J1-BY5lMSaU/s1600/MasEdificios.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="236" src="http://3.bp.blogspot.com/-ROsE5rxRuh4/TaMadP6vFtI/AAAAAAAAACc/J1-BY5lMSaU/s320/MasEdificios.jpg" 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;More buildings :)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-5iLrUlrp8HQ/TaMfrW20NcI/AAAAAAAAAC0/q4AOro5Y36Y/s1600/Orig3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-5iLrUlrp8HQ/TaMfrW20NcI/AAAAAAAAAC0/q4AOro5Y36Y/s200/Orig3.jpg" width="140" /&gt;&lt;/a&gt;&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://3.bp.blogspot.com/-koepfE5qouI/TaMaeCfZnQI/AAAAAAAAACg/g4v40HFHD10/s1600/PointsFighters.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="236" src="http://3.bp.blogspot.com/-koepfE5qouI/TaMaeCfZnQI/AAAAAAAAACg/g4v40HFHD10/s320/PointsFighters.jpg" 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;The yellow fighter texture&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-EFwgml-Bv8Y/TaMfsY8Ry1I/AAAAAAAAAC4/5X2uPux0eS8/s1600/Orig4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-EFwgml-Bv8Y/TaMfsY8Ry1I/AAAAAAAAAC4/5X2uPux0eS8/s200/Orig4.jpg" width="141" /&gt;&lt;/a&gt;&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/-HeVmxTqT_O4/TaMaey_83yI/AAAAAAAAACk/9K15eiCnS5o/s1600/TanquesyBarcos.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="236" src="http://2.bp.blogspot.com/-HeVmxTqT_O4/TaMaey_83yI/AAAAAAAAACk/9K15eiCnS5o/s320/TanquesyBarcos.jpg" 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;The new cannon boats, i love the original ones.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-SPBvGAj807g/TaMfqgmmWQI/AAAAAAAAACw/J5-gYlneALU/s1600/Orig2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-SPBvGAj807g/TaMfqgmmWQI/AAAAAAAAACw/J5-gYlneALU/s200/Orig2.jpg" width="152" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Creating these models has been very rewarding. Obviously there is a lot of work to do, but now I think I can finish at least the first level on my own, and that's very good news!&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&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/4445413175839876229-3230121723917537152?l=kyanaprime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kyanaprime.blogspot.com/feeds/3230121723917537152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kyanaprime.blogspot.com/2011/04/my-first-models-and-textures.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4445413175839876229/posts/default/3230121723917537152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4445413175839876229/posts/default/3230121723917537152'/><link rel='alternate' type='text/html' href='http://kyanaprime.blogspot.com/2011/04/my-first-models-and-textures.html' title='My first models and textures'/><author><name>Javier Martin</name><uri>http://www.blogger.com/profile/10285277746399889306</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-GqBg-vlZhtA/TaMabA9NgrI/AAAAAAAAACU/px7BBfMM8Fg/s72-c/ColumnaTanques.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4445413175839876229.post-6583359307672885352</id><published>2011-03-29T03:45:00.000+02:00</published><updated>2011-03-29T03:45:37.610+02:00</updated><title type='text'>Friking Shark development status</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Intro&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;For the last few years&amp;nbsp;I've been developing Friking Shark, a 3D remake of the classic arcade&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Flying_Shark"&gt;Flying Shark&lt;/a&gt;&amp;nbsp;on my free time. I really love the original game, and I want to make a tribute to their creators.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It's really hard to build a game from the ground up, and even harder if you try to develop at the same time a game, an engine, a generic widget system for the game editors, and a lot of other things that are interesting and fun but can be seen as overkilling to make an arcade remake.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It is hard,&amp;nbsp;but it is worth the effort. &amp;nbsp;Each time I want to make a new GUI dialog and relying on the widget framework i got the job done in minutes, or when it takes 4 days to build a new editor from scratch I know I'm working on the right direction.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&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;The game is under heavy development and I'm just a coder with no artistic skills. I&amp;nbsp;need an artist (modelling and texturing) to complete the game in a reasonable time (I'm learning Blender just in case), if you are one and want to help please do not hesitate to contact me.&amp;nbsp;&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;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Technical info&lt;/span&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;&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;FS was originally developed for Windows, but after working 2 years in Linux, I decided to make it multi-platform.&amp;nbsp;It will be&amp;nbsp;open sourced&amp;nbsp;soon and I intend to make it GNU if possible.&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;Used technologies and libraries:&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;/div&gt;&lt;ul&gt;&lt;li&gt;Language: C++&lt;/li&gt;&lt;li&gt;Rendering: OpenGL (WinAPI+WGL /XWindows+GLX)&lt;/li&gt;&lt;li&gt;Audio: OpenAL&lt;/li&gt;&lt;li&gt;Small JPEG Decoder Library v0.93b by&amp;nbsp;Rich Geldreich&lt;/li&gt;&lt;li&gt;No&amp;nbsp;engine and no other&amp;nbsp;library is being used, everything else is handmade.&lt;/li&gt;&lt;/ul&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;Important Features&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;/div&gt;&lt;ul&gt;&lt;li&gt;Staged Rendering (queueing and reordering of the rendering operations to draw the scene faster)&lt;/li&gt;&lt;li&gt;Shadow mapping.&lt;/li&gt;&lt;li&gt;Shader support with semi-automatic shader instance generation based on pre-compiler definitions to speed up state changes.&lt;/li&gt;&lt;li&gt;BSP generation and execution.&lt;/li&gt;&lt;li&gt;Quite complete Widget system (with label, button, edit, lists, common dialogs, layouts, focus and input control, z-order, modal dialogs, etc ...)&lt;/li&gt;&lt;li&gt;Fully Interface and Class Factory based.&lt;/li&gt;&lt;li&gt;Insanely modular for a game of this size (yep, I must admit it).&amp;nbsp;&lt;/li&gt;&lt;/ul&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;span class="Apple-style-span" style="font-size: large;"&gt;Scenario Editor&lt;/span&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;&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;The scenario editor is used to create the FS levels.&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 relies on the Entity Types and Formation Types defined in the EntityEditor and FormationEditor.&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;A FS level is composed of:&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;/div&gt;&lt;ul&gt;&lt;li&gt;Terrain&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Terrain model&lt;/b&gt;: A simple mesh created in an external tool, commonly by using and elevation map. In the future the mesh will be generated by the editor itself from the elevation map. Anyway, only the mesh geometry is used, all texture information is discarded.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Terrain texturizing&lt;/b&gt;: Terrain can be textured by creating different layers by eight and/or by associating a texture with a color key in a color map.&lt;/li&gt;&lt;/ul&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/-OEt_jte3xJk/TZEHUdCI8jI/AAAAAAAAABo/Y7c4xSquGHg/s1600/ScenarioEditor-TerrainPanel.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://4.bp.blogspot.com/-OEt_jte3xJk/TZEHUdCI8jI/AAAAAAAAABo/Y7c4xSquGHg/s320/ScenarioEditor-TerrainPanel.jpeg" 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;Height layer terrain texturing panel&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/ul&gt;&lt;ul&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/-8s_QjRcZyYM/TZEHOukTR0I/AAAAAAAAABU/1oKDlz8Ar7Q/s1600/ScenarioEditor-FileDialog.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://4.bp.blogspot.com/-8s_QjRcZyYM/TZEHOukTR0I/AAAAAAAAABU/1oKDlz8Ar7Q/s320/ScenarioEditor-FileDialog.jpeg" 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;Selecting a texture for a color key based texture layer&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Water&lt;/b&gt;: Can be composed by up to two sliding textures. In the future it will be a shader to get a more professional result.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Sun position&lt;/b&gt;: Affects lighting position and shadow direction.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Height Fog&lt;/b&gt;: Enables a shader to create the illusion of water deepness&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&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/-th3HWk7nX9A/TZEHMntOHFI/AAAAAAAAABM/iB2XNxLvlI0/s1600/ScenarioEditor-ChangingForColor.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://4.bp.blogspot.com/-th3HWk7nX9A/TZEHMntOHFI/AAAAAAAAABM/iB2XNxLvlI0/s320/ScenarioEditor-ChangingForColor.jpeg" 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;Selecting a color for the height fog&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;li&gt;Play Area&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Determines the playable area, that is a combination of the distance from the camera to the player avatar, the side scroll length, the viewing angle and so on.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Entities&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Static&lt;/b&gt;: Buildings and the like. They can be destructible or not depending on its type.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Moving&lt;/b&gt;: Tanks, ships and so on. They can be assigned a route to follow through the scenario.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Automatically-Instanced&lt;/b&gt;: Any entity type can be automatically instanced by specifying a color key in a color map. That color map will be used to know where to create instances of the specified entity type. The user can specify the separation between entities and the randomness of its angle and position. Very useful to automatically create rocks, palms, and other terrain details.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&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/-t1dRlhzS3Bo/TZEHNq5rLnI/AAAAAAAAABQ/LDcUGiJN4s8/s1600/ScenarioEditor-EntityLayers.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://2.bp.blogspot.com/-t1dRlhzS3Bo/TZEHNq5rLnI/AAAAAAAAABQ/LDcUGiJN4s8/s320/ScenarioEditor-EntityLayers.jpeg" 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;Automatic palm instancing using the green color in the color map, the same key color&lt;br /&gt;&amp;nbsp;has been used to apply the grass texture.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;li&gt;Formations&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Airplane formations are the waves of planes that the player must face in the scenario. They are added from a set of formation types created in the Formation Editor. Is an easy way to create just a few patterns of waves in the formation editor and add them as many times as needed to the scenarios.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&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://1.bp.blogspot.com/-vocc2fCNUFo/TZEHPYdRidI/AAAAAAAAABY/GNzL40TvRSs/s1600/ScenarioEditor-Formation.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-vocc2fCNUFo/TZEHPYdRidI/AAAAAAAAABY/GNzL40TvRSs/s400/ScenarioEditor-Formation.jpeg" 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;Moving a formation in the play area&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="" style="clear: both; text-align: left;"&gt;As said before, the game engine is insanely modular and as a result the game engine is instantiated from the game editor itself so the game can be played while editing!. Actually, the editor is modifying the game objects directly, as they present an edition interface and serialize themselves in the scenario files.&lt;/div&gt;&lt;div class="" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="" style="clear: both; text-align: left;"&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;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/-dMXIq8l7TFg/TZEHRzmYZ-I/AAAAAAAAABg/RUSeQOpDu7k/s1600/ScenarioEditor-Playing.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://2.bp.blogspot.com/-dMXIq8l7TFg/TZEHRzmYZ-I/AAAAAAAAABg/RUSeQOpDu7k/s320/ScenarioEditor-Playing.jpeg" 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;Playing the game in the Scenario Editor&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Anytime you can switch from game view to free view to identify and track down bogus behaviours.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: left; margin-bottom: 1em; 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/-BRmum_LngK8/TZEHQmoCp2I/AAAAAAAAABc/fxxIDaGapAo/s1600/ScenarioEditor-FreeViewPlaying.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://4.bp.blogspot.com/-BRmum_LngK8/TZEHQmoCp2I/AAAAAAAAABc/fxxIDaGapAo/s320/ScenarioEditor-FreeViewPlaying.jpeg" 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;Playing the game in free view in &amp;nbsp;the Scenario Editor&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Formation Editor&lt;/span&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;The formation editor is used to create and edit &amp;nbsp;the formation types used throughout the levels.&amp;nbsp;&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;/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 relies on the Entity Types created in the EntityEditor.&lt;/div&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;/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;/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;A Formation type is basically a group of entities (airplanes) that follow routes through the play area.&amp;nbsp;Each entity in a formation can be instantiated once or more times, and can have an initial delay and a delay between instances.&lt;/div&gt;&lt;br /&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://1.bp.blogspot.com/-ty3zwy5yzFY/TZEHLWTjJsI/AAAAAAAAABE/gfd3MPmGNEw/s1600/FormationEditor-SelectingFormation.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://1.bp.blogspot.com/-ty3zwy5yzFY/TZEHLWTjJsI/AAAAAAAAABE/gfd3MPmGNEw/s320/FormationEditor-SelectingFormation.jpeg" 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;Selecting a formation type to edit&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://1.bp.blogspot.com/-aQoGbqiu3Sw/TZEHJIZjsEI/AAAAAAAAAA8/0jrrfsMhBSY/s1600/FormationEditor-EntityPanel.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://1.bp.blogspot.com/-aQoGbqiu3Sw/TZEHJIZjsEI/AAAAAAAAAA8/0jrrfsMhBSY/s320/FormationEditor-EntityPanel.jpeg" 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;An entity is selected&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://1.bp.blogspot.com/-EFaTl_47Wrc/TZEHL1uf7pI/AAAAAAAAABI/IAga5yo19PY/s1600/FormationEditor-WorldHidden.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://1.bp.blogspot.com/-EFaTl_47Wrc/TZEHL1uf7pI/AAAAAAAAABI/IAga5yo19PY/s320/FormationEditor-WorldHidden.jpeg" 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;Hiding the sample scenario to improve visibility&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The formation editor uses the game engine to create a sample scenario to test the formations.&amp;nbsp;This simplifies debugging a lot.&lt;div&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;br /&gt;&lt;a href="http://4.bp.blogspot.com/-Sbw7ZIIDzo4/TZEHKQ1HIWI/AAAAAAAAABA/jbN7l2lKsr0/s1600/FormationEditor-PlayingTheFormation.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://4.bp.blogspot.com/-Sbw7ZIIDzo4/TZEHKQ1HIWI/AAAAAAAAABA/jbN7l2lKsr0/s320/FormationEditor-PlayingTheFormation.jpeg" 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;Testing a formation from the formation editor&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; margin-bottom: 1em; 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/-34y8CgU8dd4/TZEHHbTnXKI/AAAAAAAAAA4/a8bK-qqMNiM/s1600/FormationEditor-Debugging.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://2.bp.blogspot.com/-34y8CgU8dd4/TZEHHbTnXKI/AAAAAAAAAA4/a8bK-qqMNiM/s320/FormationEditor-Debugging.jpeg" 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;Testing the formation in the editor from the free view&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Entity Editor&lt;/span&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;The entity editor is used to create and edit the entity types used throughout the levels.&amp;nbsp;&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;/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;When an entity type is created, its behaviour must be selected, a behaviour is a c++ class implemented in the configured modules (.dll/.so).&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;&lt;/div&gt;&lt;div class="" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;An entity is composed of:&lt;/div&gt;&lt;div class="" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Properties: &lt;/b&gt;Properties are the basic parameters of an entity like its bounds type (BBox/BSP/None), its alignment (Neutral, Enemy, Player), maximun speed, maximun health and so on.&lt;/li&gt;&lt;/ul&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;/div&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;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: left; margin-bottom: 1em; 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/-F5CmgthwpZM/TZEHE0FZEKI/AAAAAAAAAAs/3zs_0Duzio0/s1600/EntityEditor-ModifyingBBox.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://3.bp.blogspot.com/-F5CmgthwpZM/TZEHE0FZEKI/AAAAAAAAAAs/3zs_0Duzio0/s320/EntityEditor-ModifyingBBox.jpeg" 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;Adjusting the bounding box of the entity&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;States:&amp;nbsp;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;As said before, an entity type must have a behaviour. Each behaviour exposes its list of states. States cannot be created or removed as they conform the very basis of the entity. One or more animation can be created for each state. How each behaviour selects an specific animation for a given state is totally up to it. Examples:&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Bomber "BaseState" divides the entity current health by its maximun health, so the animations of that state reflect the ammount of damage received by the Bomber.&lt;/li&gt;&lt;li&gt;Fighter "Destroyed" state selects a random animation to allow different animations for the entity destruction.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Animations&lt;/b&gt;: Animations are a basic composition of various types of objects that are activated and deactivated at the configured time.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Models&lt;/b&gt;: A model can contain its own animation that is played at the specified fps. Model animations can be looped.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Particle Systems: &lt;/b&gt;Particle systems are used to create special effects like fire and smoke.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Sounds&lt;/b&gt;: Sounds are played at the configured time range and can be looped.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Events: &lt;/b&gt;An animation can trigger an event of the entity, is up to the behaviour to respond to the specified event.&amp;nbsp;&lt;/li&gt;&lt;/ul&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://1.bp.blogspot.com/-HsH3IF3uwgs/TZEHFcDhVEI/AAAAAAAAAAw/CEzSFeBNefc/s1600/EntityEditor-ParticleSystemSelected.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://1.bp.blogspot.com/-HsH3IF3uwgs/TZEHFcDhVEI/AAAAAAAAAAw/CEzSFeBNefc/s320/EntityEditor-ParticleSystemSelected.jpeg" 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;Moving a particle system in a Bomber&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;li&gt;&lt;b&gt;Child Entities&lt;/b&gt;: An entity can contain child entities, in any position and orientation. A child entity is bound to its parent lifespan and its reference system depends on its parent position and orientation and its own position and orientation in its parent. Child entities are very useful to create turrets and complex bosses.&lt;/li&gt;&lt;/ul&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://1.bp.blogspot.com/-Effm_zCOSiI/TZEHGRos51I/AAAAAAAAAA0/JERkuslxRZ0/s1600/EntityEditor-RotatingSubEntity.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="256" src="http://1.bp.blogspot.com/-Effm_zCOSiI/TZEHGRos51I/AAAAAAAAAA0/JERkuslxRZ0/s320/EntityEditor-RotatingSubEntity.jpeg" 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;Rotating a child entity (a turret)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Future work&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The game is still being built, there are too many things in the TODO list to enumerate them here (I have &amp;nbsp;no intention to bore anyone).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Greetings&lt;/span&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="" style="clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;Very special thanks to Raul Pasarín (A.K.A. Campa) for his invaluable help with the models in the past few years (he has made virtually every model in the game),without him is very likely this project had terminated prematurely.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&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/4445413175839876229-6583359307672885352?l=kyanaprime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kyanaprime.blogspot.com/feeds/6583359307672885352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kyanaprime.blogspot.com/2011/03/friking-shark-development-status.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4445413175839876229/posts/default/6583359307672885352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4445413175839876229/posts/default/6583359307672885352'/><link rel='alternate' type='text/html' href='http://kyanaprime.blogspot.com/2011/03/friking-shark-development-status.html' title='Friking Shark development status'/><author><name>Javier Martin</name><uri>http://www.blogger.com/profile/10285277746399889306</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-OEt_jte3xJk/TZEHUdCI8jI/AAAAAAAAABo/Y7c4xSquGHg/s72-c/ScenarioEditor-TerrainPanel.jpeg' height='72' width='72'/><thr:total>2</thr:total></entry></feed>
