<?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-2942877753097296913</id><updated>2011-12-22T03:20:00.997+01:00</updated><category term='Project Sunburn'/><category term='Content'/><category term='SgMotion'/><category term='GSM'/><category term='Performance'/><category term='Shaders'/><category term='DPSF'/><category term='Game'/><category term='Input'/><category term='Deferred'/><category term='XML'/><category term='Prototype'/><category term='Geometry'/><category term='BEPU'/><category term='Winforms'/><category term='collision'/><category term='Particles'/><category term='Codeplex'/><category term='Editor'/><category term='Tweaking'/><category term='Scripting'/><category term='PostProcess'/><category term='Rendering'/><category term='Render'/><category term='Vehicle'/><category term='Edit/Play'/><category term='AI'/><category term='Gizmo'/><category term='Camera'/><category term='Concept'/><category term='Console'/><category term='Internship'/><category term='Engine'/><category term='physics'/><category term='XNAnimation'/><category term='character'/><category term='Animation'/><category term='Video'/><category term='Viewport'/><category term='Sunburn'/><category term='Sample'/><category term='Over Night'/><title type='text'>Core Engine Development</title><subtitle type='html'>Development blog about Core Engine - 3D XNA Game Engine.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>95</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3897687307862164537</id><published>2011-12-05T02:44:00.001+01:00</published><updated>2011-12-05T03:07:17.322+01:00</updated><title type='text'>EditMesh Submode &amp; History Panel</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-TufVYgNN-nk/TtwmWjzA9yI/AAAAAAAABPM/ITLz-14ld5U/s1600/TestEnvironment%2B2011-11-19%2B21-52-40-41.png" imageanchor="1" style="text-align: center;"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/-TufVYgNN-nk/TtwmWjzA9yI/AAAAAAAABPM/ITLz-14ld5U/s640/TestEnvironment%2B2011-11-19%2B21-52-40-41.png" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It was about time I posted a new video about my progress, so I decided to create a very early preview of some of the new features. This includes an early version of the history panel and the improved mesh editing feature.&lt;br /&gt;&lt;br /&gt;If you're familiar with &lt;a href="http://neoforce.codeplex.com/" target="_blank"&gt;Neoforce&lt;/a&gt;&amp;nbsp;you may recognize it in the video video. If you don't, it's basically a Winforms-like library with tons of features for 2D menus. It has quite an exhaustive feature-list and will replace all my previous Winforms based panels/windows. One big advantage of using Neoforce is alpha support, something not easily accomplished using regular Forms. Another advantage is in its design, instead of using OnPaint events and event handlers, it has regular Update and Draw functions. This is really nice when you're creating transitions and smooth animations for your controls.&lt;br /&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: center;"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/YAH9HJY_gJ0" width="640"&gt;&lt;/iframe&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;There are some other features hidden in this video, one is still in very early development. You might have seen the screen fading from and to black several times, that is part of it ;) The best way to describe it: a method to quickly access your panels, menus, assets etc. through a single hotkey (spacebar by default) As you can see in the video, I 'pinned' the history panel to my game window, keeping it active when leaving the screen overlay. I will talk more in-depth about this video once it's more developed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-3897687307862164537?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3897687307862164537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/12/editmesh-submode-history-panel.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3897687307862164537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3897687307862164537'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/12/editmesh-submode-history-panel.html' title='EditMesh Submode &amp; History Panel'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-TufVYgNN-nk/TtwmWjzA9yI/AAAAAAAABPM/ITLz-14ld5U/s72-c/TestEnvironment%2B2011-11-19%2B21-52-40-41.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-6982744374382763311</id><published>2011-11-05T06:02:00.000+01:00</published><updated>2011-11-05T06:07:40.677+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><title type='text'>Gizmo update coming soon!</title><content type='html'>Hi guys, just wanted to let every XNA3DGizmo user know that a update is currently being developed. I noticed that the original implementation had some sloppy shortcuts that could make it more difficult to implement if you were unfamiliar with the code. This included references to the Engine class among other things.&lt;br /&gt;&lt;br /&gt;So I decided to improve things by removing any reference to outside classes (including InputState which is no longer required) I realized this update is&amp;nbsp;necessary&amp;nbsp;as even I found it&amp;nbsp;difficult&amp;nbsp;to implement the gizmo in a new project and wasn't a simple drag&amp;amp;drop operation as it should be (or as close as possible to it) this made it obvious some improvements were required to the public version.&lt;br /&gt;&lt;br /&gt;The last public update was quite a while back and I was using a modified version with already several improvements implemented (such as multiple type of objects you can select as shown in the &lt;a href="http://youtu.be/4NdRgTwDeis"&gt;Vertex Manipulation Video&lt;/a&gt; where I select both scene objects and vertices with the same Gizmo component)&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/-8c49abTmxN0/TrTBUNvVGmI/AAAAAAAABPA/jS3ysEvAryQ/s1600/TestEnvironment+2011-11-05+05-52-44-88.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://2.bp.blogspot.com/-8c49abTmxN0/TrTBUNvVGmI/AAAAAAAABPA/jS3ysEvAryQ/s640/TestEnvironment+2011-11-05+05-52-44-88.png" width="640" /&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: left;"&gt;So in general the upcoming update should make it much easier for everyone to implement this gizmo into his own code/editor.&amp;nbsp;&lt;b style="text-align: -webkit-auto;"&gt;If you had trouble integrating it, please let me know.&lt;/b&gt;&lt;span class="Apple-style-span" style="text-align: -webkit-auto;"&gt;&amp;nbsp;There is no current ETA on therelease, but I'll try to do it sooner than later...&lt;/span&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/-8c49abTmxN0/TrTBUNvVGmI/AAAAAAAABPA/jS3ysEvAryQ/s1600/TestEnvironment+2011-11-05+05-52-44-88.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-6982744374382763311?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/6982744374382763311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/11/gizmo-update-coming-soon.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6982744374382763311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6982744374382763311'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/11/gizmo-update-coming-soon.html' title='Gizmo update coming soon!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-8c49abTmxN0/TrTBUNvVGmI/AAAAAAAABPA/jS3ysEvAryQ/s72-c/TestEnvironment+2011-11-05+05-52-44-88.png' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-1980332681492263397</id><published>2011-09-23T15:28:00.000+02:00</published><updated>2011-09-23T15:28:22.695+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rendering'/><category scheme='http://www.blogger.com/atom/ns#' term='Geometry'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Image Collection</title><content type='html'>I haven't made a lot of progress recently on the engine due to my internship (completed) and the start of the new school year (my last) I did make some screenshots a while back when I was working on flares and terrain texture mapping. Below a small assorted list of the things I did.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ADYPpFbmb7A/TnyGp36-dmI/AAAAAAAABOQ/kJJsm_oHDnU/s1600/SampleGame+2011-06-12+00-55-19-48.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-ADYPpFbmb7A/TnyGp36-dmI/AAAAAAAABOQ/kJJsm_oHDnU/s640/SampleGame+2011-06-12+00-55-19-48.png" width="640" /&gt;&lt;/a&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/-3lvEQpK0_k4/TnyGqb3SMdI/AAAAAAAABOU/eNtsxjUl8SI/s1600/SampleGame+2011-06-12+01-59-08-68.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/-3lvEQpK0_k4/TnyGqb3SMdI/AAAAAAAABOU/eNtsxjUl8SI/s640/SampleGame+2011-06-12+01-59-08-68.png" width="640" /&gt;&lt;/a&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/-LhwVNWq4zcI/TnyGrazwtfI/AAAAAAAABOY/Mm-CivbklU0/s1600/SampleGame+2011-07-10+00-38-42-42.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/-LhwVNWq4zcI/TnyGrazwtfI/AAAAAAAABOY/Mm-CivbklU0/s640/SampleGame+2011-07-10+00-38-42-42.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-N9TB8VZKaNs/TnyGtBJB9fI/AAAAAAAABOc/KDaEhRKwURQ/s1600/SampleGame+2011-07-10+15-02-42-11.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://4.bp.blogspot.com/-N9TB8VZKaNs/TnyGtBJB9fI/AAAAAAAABOc/KDaEhRKwURQ/s640/SampleGame+2011-07-10+15-02-42-11.png" width="640" /&gt;&lt;/a&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/-OYmz-5oUyro/TnyGuNZm50I/AAAAAAAABOg/e7TN4uqNkpQ/s1600/SampleGame+2011-07-10+15-02-58-65.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/-OYmz-5oUyro/TnyGuNZm50I/AAAAAAAABOg/e7TN4uqNkpQ/s640/SampleGame+2011-07-10+15-02-58-65.png" width="640" /&gt;&lt;/a&gt;&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/-_WPUo3yBCP0/TnyGveAEYPI/AAAAAAAABOk/yY1I72zoLJg/s1600/SampleGame+2011-07-10+15-03-05-48.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://2.bp.blogspot.com/-_WPUo3yBCP0/TnyGveAEYPI/AAAAAAAABOk/yY1I72zoLJg/s640/SampleGame+2011-07-10+15-03-05-48.png" width="640" /&gt;&lt;/a&gt;&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/-cBqA8vhN36s/TnyGwaaMjoI/AAAAAAAABOo/9nHoQdlSs1E/s1600/SampleGame+2011-07-10+15-19-37-07.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://2.bp.blogspot.com/-cBqA8vhN36s/TnyGwaaMjoI/AAAAAAAABOo/9nHoQdlSs1E/s640/SampleGame+2011-07-10+15-19-37-07.png" width="640" /&gt;&lt;/a&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/-aEVcWnmBjT4/TnyGy56kQtI/AAAAAAAABOs/e_-nmxXintI/s1600/SampleGame+2011-07-10+15-25-32-75.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/-aEVcWnmBjT4/TnyGy56kQtI/AAAAAAAABOs/e_-nmxXintI/s640/SampleGame+2011-07-10+15-25-32-75.png" width="640" /&gt;&lt;/a&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/-0OtxhZe0diU/TnyGz_mZ1xI/AAAAAAAABOw/SBHwVkdu6Mk/s1600/SampleGame+2011-07-10+16-31-57-11.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-0OtxhZe0diU/TnyGz_mZ1xI/AAAAAAAABOw/SBHwVkdu6Mk/s640/SampleGame+2011-07-10+16-31-57-11.png" width="640" /&gt;&lt;/a&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/-sDP5KtecuIY/TnyG0t8S8kI/AAAAAAAABO0/yzOqcdTW3ms/s1600/SampleGame+2011-07-10+19-38-13-24.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-sDP5KtecuIY/TnyG0t8S8kI/AAAAAAAABO0/yzOqcdTW3ms/s640/SampleGame+2011-07-10+19-38-13-24.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;With the terrain texturing I tried to minimize stretching on steep surfaces without using the tri-planar technique, there were some difficulties and I don't have a finalized method yet. The red/green colors on the terrain indicate UV coordinates, the lines are the surface normals and the yellow text displays the vertex number in the VertexBuffer. I hope this can&amp;nbsp;at least&amp;nbsp;somewhat fill the major gap in between posts recently, hopefully I can do some cool stuff again soon like working on the mesh editor from my previous post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-1980332681492263397?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/1980332681492263397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/09/image-collection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1980332681492263397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1980332681492263397'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/09/image-collection.html' title='Image Collection'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ADYPpFbmb7A/TnyGp36-dmI/AAAAAAAABOQ/kJJsm_oHDnU/s72-c/SampleGame+2011-06-12+00-55-19-48.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7024465320276185546</id><published>2011-07-04T00:32:00.000+02:00</published><updated>2011-07-04T00:32:22.451+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='collision'/><category scheme='http://www.blogger.com/atom/ns#' term='Geometry'/><title type='text'>Vertex Manipulation [Compound objects]</title><content type='html'>Just a short update on what I've been working on this time. It started when I was playing CoD:WaW this afternoon and I noticed a lot of debris and broken walls which got me thinking about how they managed these kinds of assets.&amp;nbsp;This intrigued me, so I started drawing up some ideas on how I could potentially add this to the toolset, with little knowledge on mathmatical geometry or destruction calculations I tried to start things simple and look for existing online resources.&lt;br /&gt;&lt;br /&gt;I will go into much more detail on this topic at a later time, for now I'd just like to share a few images and give notes on what you see.&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://3.bp.blogspot.com/-JHk-z83vZX4/ThDqCn76rFI/AAAAAAAABNQ/cd-lwn_Jp0Q/s1600/SampleGame+2011-07-03+20-55-27-63.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-JHk-z83vZX4/ThDqCn76rFI/AAAAAAAABNQ/cd-lwn_Jp0Q/s640/SampleGame+2011-07-03+20-55-27-63.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;ray vs. triangle collision. white lines visualize an array of lines from the camera eye colliding with the geometry.&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&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/-6xwZ5i_sa0A/ThDqErf-aXI/AAAAAAAABNU/I87ATNJIY9M/s1600/SampleGame+2011-07-03+23-22-39-68.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-6xwZ5i_sa0A/ThDqErf-aXI/AAAAAAAABNU/I87ATNJIY9M/s640/SampleGame+2011-07-03+23-22-39-68.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;The box-mesh on the left was used to cut 4 holes into the plane-shape.&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&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/-sGIyshbG4so/ThDqG2-7EeI/AAAAAAAABNY/M2IhZ9tO9R4/s1600/SampleGame+2011-07-03+23-22-43-59.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-sGIyshbG4so/ThDqG2-7EeI/AAAAAAAABNY/M2IhZ9tO9R4/s640/SampleGame+2011-07-03+23-22-43-59.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;The wireframe of the same scene, visualizing the triangles of the triangulated plane.&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&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/-OVQQaem-Oek/ThDqIAxOaKI/AAAAAAAABNc/ha7xFy0gbYQ/s1600/SampleGame+2011-07-03+23-27-00-92.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-OVQQaem-Oek/ThDqIAxOaKI/AAAAAAAABNc/ha7xFy0gbYQ/s640/SampleGame+2011-07-03+23-27-00-92.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;A hole cut by defining 5 vertices by colliding a ray with the plane, these were defines at runtime from the camera-eye.&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;I'm also looking into 'bridging' (users of 3D Studio Max may know what I'm talking about) to fill the gap between two planes of a wall (its back and front) after cutting a hole with the triangulator.&amp;nbsp;Some basic box uv-mapping and a noisy texture to simulate broken concrete (or any other material) and you should have the basics to quickly create holes in walls or break chunks of the scene's meshes. The resources I used are listed below. Much more on this at a later time, there is still a lot to do and even more to talk about :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Resources&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://create.msdn.com/en-US/education/catalog/sample/picking_triangle"&gt;App Hub - Triangle Picking Sample&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://triangulator.codeplex.com/"&gt;Nick Gravelyn's Triangulator&lt;/a&gt; (2D)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf"&gt;Triangulation By Ear Clipping&lt;/a&gt; - by David Eberly&lt;br /&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/2942877753097296913-7024465320276185546?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7024465320276185546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/07/vertex-manipulation-compound-objects.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7024465320276185546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7024465320276185546'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/07/vertex-manipulation-compound-objects.html' title='Vertex Manipulation [Compound objects]'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-JHk-z83vZX4/ThDqCn76rFI/AAAAAAAABNQ/cd-lwn_Jp0Q/s72-c/SampleGame+2011-07-03+20-55-27-63.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4575170485599954543</id><published>2011-07-03T02:23:00.000+02:00</published><updated>2011-07-03T02:23:06.349+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Input'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><title type='text'>Input &amp; Hotkey Management</title><content type='html'>Input management is one of those things I never really paid a lot of attention to, using simple if-statements inside an &lt;i&gt;Update() &lt;/i&gt;or &lt;i&gt;HandleInput()&lt;/i&gt; function worked fine is most cases, until recently.&amp;nbsp;Recently I started to notice my input handling got scattered throughout my code-base and a lot of coupling was required to make sure it was handled properly.&lt;br /&gt;&lt;br /&gt;To prevent hotkey-clutter (especially when modifiers (ctrl, shift, alt) get involved) I started working on a &lt;span class="Apple-style-span" style="background-color: white; color: #3d85c6;"&gt;HotkeyManager&lt;/span&gt; that handles groups of Hotkeys in an easily maintanable way. Initially it was supposed to assign a &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;HotkeyGroup &lt;/span&gt;to one or more&amp;nbsp;'editor-states', like &lt;i&gt;'only-use-this-hotkey-while-in-editmeshmode'&lt;/i&gt;, I soon realized this wasn't going to be very helpful and I would have to&amp;nbsp;continuously&amp;nbsp;add new states to keep it up to date...so this was scrapped and replaced by a simpler, but&amp;nbsp;more powerful feature - &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;Predicate&lt;/span&gt;&lt;i&gt;&amp;lt;&lt;/i&gt;T&lt;t&gt;&lt;t&gt;&lt;t&gt;&lt;i&gt;&amp;gt;&lt;/i&gt;. Using predicates enables the manager/hotkey to activate only if a predefined condition is met (i.e. if &lt;i&gt;gizmo.IsActive == true&lt;/i&gt; -&amp;gt; execute the hotkey-function) it can contain more than one statement such&amp;nbsp;as &lt;i&gt;gizmo.IsActive == true &amp;amp;&amp;amp; Camera.IsMoving == false&lt;/i&gt; for example...if both conditions are met, the hotkey may execute with the associated &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;Action &lt;/span&gt;(the method assigned to the hotkey) The code-snippet below should be able to illustrate its use.&lt;/t&gt;&lt;/t&gt;&lt;/t&gt;&lt;br /&gt;&lt;t&gt;&lt;t&gt; &lt;br /&gt;&lt;/t&gt;&lt;/t&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-oaOJ5O0-A7I/Tg-v62ajzfI/AAAAAAAABNM/RsIt0piStms/s1600/gizmo_codesnippet1.png" imageanchor="1"&gt;&lt;img border="0" height="262" src="http://4.bp.blogspot.com/-oaOJ5O0-A7I/Tg-v62ajzfI/AAAAAAAABNM/RsIt0piStms/s640/gizmo_codesnippet1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You may have noticed the above code refers to the &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;GizmoComponent &lt;/span&gt;class. &lt;i&gt;SetSelectionPool(&lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;ISelectable&lt;/span&gt;&amp;gt;&lt;/i&gt;&lt;iselectable&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #3d85c6;"&gt; &lt;/span&gt;selectables)&lt;/i&gt; is a new function I've added to more easily support custom collections and to assign new collections at runtime, in my case this is used&amp;nbsp;to switch between vertex- and object-selection more easily. I will add this along with many other improvements to the open-source gizmocomponent at codeplex at some point.&lt;br /&gt;&lt;br /&gt;Back to the hotkeys...within &lt;i&gt;InitializeHotkeys()&lt;/i&gt; there is a&amp;nbsp;&lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;HotkeyGroup&amp;nbsp;&lt;/span&gt;class, this class holds a collection of hotkeys that belong to the same component or share similar functionality. These groups are passed to the manager and will be updated automatically. &amp;nbsp;The &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;Hotkey &lt;/span&gt;class is the main class and has several parameters including key (supports all &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;Keys&lt;/span&gt;, &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;MouseButtons &lt;/span&gt;and &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;GamepadButtons&lt;/span&gt;) a &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;KeyPressState &lt;/span&gt;(press, release, hold) a &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;KeyModifier &lt;/span&gt;(control, shift, alt or a combination - not illustrated in img), the parent &amp;nbsp;(used by the Predicate&lt;istateswitch&gt; to verify the conditions) and the &lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;Action &lt;/span&gt;to execute after the key is pressed and all conditions are met.&lt;br /&gt;&lt;br /&gt;A quick search revealed there are no suitable Input/Hotkey managers (I didn't like any of the libraries available on Codeplex) so I might turn this into an open-source component/library if enough people are interested in such a library.&lt;/istateswitch&gt;&lt;/iselectable&gt;&lt;br /&gt;&lt;iselectable&gt;&lt;istateswitch&gt;&lt;br /&gt;&lt;/istateswitch&gt;&lt;/iselectable&gt;&lt;br /&gt;&lt;i&gt;Actions and Vertex manipulations are also still WIP, I made some progress on both these tasks and should have some something new to blog about soon enough.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4575170485599954543?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4575170485599954543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/07/input-hotkey-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4575170485599954543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4575170485599954543'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/07/input-hotkey-management.html' title='Input &amp; Hotkey Management'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-oaOJ5O0-A7I/Tg-v62ajzfI/AAAAAAAABNM/RsIt0piStms/s72-c/gizmo_codesnippet1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-2137871668569799163</id><published>2011-06-26T16:21:00.004+02:00</published><updated>2011-06-26T18:59:49.234+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Prototype'/><category scheme='http://www.blogger.com/atom/ns#' term='Content'/><title type='text'>Vertex Manipulation (Mesh-editing)</title><content type='html'>Editing models inside my engine has been something I wanted to support for a long time now. Especially when you're not the one creating the assets, but do have to work with them inside the editor it can be time consuming to send back a model with incorrect material&amp;nbsp;names or a mesh that should be split to optimize rendering, or vice versa. With this tool I will eliminate the need to have artists re-export their models because of tiny mistakes/changes and should provide a much cleaner pipeline in general.&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/-A1fkzUCavW0/TgdBOFKbe_I/AAAAAAAABNE/7WD9V3wSjmU/s1600/SampleGame+2011-06-26+16-20-32-11.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://2.bp.blogspot.com/-A1fkzUCavW0/TgdBOFKbe_I/AAAAAAAABNE/7WD9V3wSjmU/s640/SampleGame+2011-06-26+16-20-32-11.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Currently only the very core of this feature has been implemented (as seen in the video) and a lot of other stuff is still to follow, I will give a brief overview of how the fully functional tool should work once its complete.&amp;nbsp;When any new model (.fbx or .x) is imported, it's processed by the content pipeline and turned into an .xnb file, an .xml file will be attached to the source (model) file that contains all changes to the model and will be processed during build-time.&amp;nbsp;By default this .xml file is empty and nothing altered, during run-time a mesh can be converted to Editable Mesh (trying to keep this similar to 3D Studio Max's naming conventions) which allows vertex and triangle selection with support for&amp;nbsp;any type of transformation that is supported by the gizmo component (translate, rotate, scale in local- and world-space) these transformations are stored inside Actions (I will talk about Actions a lot more at a later time, but it's basically what you use to support&amp;nbsp;undo/redo in any kind of editing software) and written to the model Xml. The model is then re-build the next time the project is build and the actions are applied, this can hold any type of alteration including material renaming, splitting meshes&amp;nbsp;and deleting / adding new vertices alongside vertex transformations.&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;Because the source model remains untouched, whenever the model is re-exported from any DCC-tool like 3D Studio Max or Maya the model will still build with all transformations and alterations applied. An example:&amp;nbsp;A material named '&lt;i&gt;#46 Material&lt;/i&gt;' is renamed at run-time to '&lt;i&gt;corridor_floor&lt;/i&gt;', if the artist then changes the name of '&lt;i&gt;#46 Material&lt;/i&gt;' to '&lt;i&gt;corridor_floor&lt;/i&gt;' or something else in the source model, the run-time change is ignored because the original material name (&lt;i&gt;#46 Material&lt;/i&gt;) can no longer be found...&amp;nbsp;in a worst-case scenario this ignores the material properties you stored for the original name (material properties are stored elsewhere, so no data is actually lost) so even in the worst case, you are only a small step away from re-applying your previous changes&amp;nbsp;(A warning dialog with failed conversions should help with this, making it potentially very quick and painless to manually re-assign the changes that are never lost, just ignored till resolved) The same applies to vertex transformations, but these can be&amp;nbsp;a bit more difficult to keep track of once the indices of a certain mesh change inside the .fbx source file.&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;There is still a significant amount of work that has to be completed before this feature takes it full shape, with this first proof of concept up and running I believe it will be a very valuable tool to have available, and a lot of fun to create :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="390" src="http://www.youtube.com/embed/4NdRgTwDeis?rel=0&amp;amp;hd=1" width="640"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;It proved to be quite easy to convert the gizmo to support vertex manipulation (and selection) I will add these changes to the codeplex project at some point in the future...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-2137871668569799163?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/2137871668569799163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/06/vertex-manipulation-mesh-editing.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2137871668569799163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2137871668569799163'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/06/vertex-manipulation-mesh-editing.html' title='Vertex Manipulation (Mesh-editing)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-A1fkzUCavW0/TgdBOFKbe_I/AAAAAAAABNE/7WD9V3wSjmU/s72-c/SampleGame+2011-06-26+16-20-32-11.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-5446002953195888368</id><published>2011-06-15T21:10:00.000+02:00</published><updated>2011-06-15T21:10:30.249+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project Sunburn'/><title type='text'>Updated blog layout</title><content type='html'>I had plans to do this a while ago, but never got around actually doing it. Last night I kind of stumbled upon a new, wider template that still looked pretty similar to the old one. Most noticeable benefit is the extra space available for bigger images and videos and I'm pretty glad about how the new template turned out.&lt;br /&gt;&lt;br /&gt;In lack of other news I dug up some screenshots of Project Sunburn.&lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Rp6uIqa4TiU/TfkBeyGDXMI/AAAAAAAABM8/ON9s8jTv5p4/s1600/ps_leveloverview01.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="352" src="http://3.bp.blogspot.com/-Rp6uIqa4TiU/TfkBeyGDXMI/AAAAAAAABM8/ON9s8jTv5p4/s640/ps_leveloverview01.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;An objective-based level from Project Sunburn&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/---dIszeTwdE/TfkB_ZTYiQI/AAAAAAAABNA/eh6CEhVW8LQ/s1600/Test+Environment+2010-10-31+21-41-46-50.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="360" src="http://2.bp.blogspot.com/---dIszeTwdE/TfkB_ZTYiQI/AAAAAAAABNA/eh6CEhVW8LQ/s640/Test+Environment+2010-10-31+21-41-46-50.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;Enemy drone firing at the player in one of our test setups.&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Let me know what you think about this new layout in the comment section :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-5446002953195888368?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/5446002953195888368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/06/updated-blog-layout.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5446002953195888368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5446002953195888368'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/06/updated-blog-layout.html' title='Updated blog layout'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Rp6uIqa4TiU/TfkBeyGDXMI/AAAAAAAABM8/ON9s8jTv5p4/s72-c/ps_leveloverview01.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4851997212824843885</id><published>2011-06-14T23:39:00.001+02:00</published><updated>2011-06-15T00:10:26.742+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rendering'/><category scheme='http://www.blogger.com/atom/ns#' term='Deferred'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Environment Mapping (w/ Normal Maps)</title><content type='html'>A while ago I was trying to get Environment maps (aka Cube-maps) to work with SunBurn's Deferred renderer with reasonable success. Last week I had a go at it again, this time in my own renderer, because the normal-mapping information was already available inside the shader it was relatively easier to do this time around (along with all the problems I have already solved the first time) &lt;br /&gt;It was supposed to be a transparent (forward)-effect for windows etc, but somehow turned into an opaque cube-mapped deferred shader...Not sure how that happened :)&lt;br /&gt;&lt;br /&gt;Below you can see what the shader looks like at the moment, where the first two images show the 'forward' shader and the last two use the deferred shader (which includes pointlights, specularity etc.) The forward shader will be modified so it supports alpha-mapping, what it was originally designed for anyway.&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://3.bp.blogspot.com/-s2lymO7Ofo0/TffPLtglvdI/AAAAAAAABMs/YgXgZFX7VpU/s1600/SampleGame+2011-06-12+23-16-56-10.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-s2lymO7Ofo0/TffPLtglvdI/AAAAAAAABMs/YgXgZFX7VpU/s640/SampleGame+2011-06-12+23-16-56-10.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;Forward shader - environment map, with normal map and simple directional light.&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&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/-ajUcv6ZTsBI/TffPWvGoskI/AAAAAAAABMw/1kpJy3Tade8/s1600/SampleGame+2011-06-13+01-59-17-69.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="360" src="http://4.bp.blogspot.com/-ajUcv6ZTsBI/TffPWvGoskI/AAAAAAAABMw/1kpJy3Tade8/s640/SampleGame+2011-06-13+01-59-17-69.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;Forward shader - similar setup as above.&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&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/-UGC81OPc7Qw/TffPoySNpXI/AAAAAAAABM0/G7ilPGbCsVo/s1600/SampleGame+2011-06-13+15-54-55-90.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="360" src="http://4.bp.blogspot.com/-UGC81OPc7Qw/TffPoySNpXI/AAAAAAAABM0/G7ilPGbCsVo/s640/SampleGame+2011-06-13+15-54-55-90.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;The deferred shader - with pointlight on the left and right (with very strong colors to highlight the effect)&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&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/-06XV1gq_74k/TffPxN2fCGI/AAAAAAAABM4/BFJOjNEiNLA/s1600/SampleGame+2011-06-13+15-56-52-52.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/-06XV1gq_74k/TffPxN2fCGI/AAAAAAAABM4/BFJOjNEiNLA/s640/SampleGame+2011-06-13+15-56-52-52.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;Deferred shader - with the deferred rendertargets (LoR: color, normals,depth,lighting)&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The next step is to further develop the forward rendering pass, for transparency mostly. This includes depth-sorting of the objects along with Composite Lighting that calculates approximate lighting for objects that don't support deferred shading.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Resources:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://create.msdn.com/en-US/education/catalog/sample/custom_model_effect"&gt;Custom Model Effect XNA Sample&lt;/a&gt;&lt;/b&gt;&amp;nbsp;- Source for the cube-map processor and the basics for the environment mapping shader.&lt;br /&gt;&lt;b&gt;&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2008/03/04/cubemaps-the-salt-of-computer-graphics.aspx"&gt;Shawn Hargraves on Cube-mapping&lt;/a&gt;&lt;/b&gt; - Some interesting bits about cube-mapping, closely tied to the XNA sample above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4851997212824843885?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4851997212824843885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/06/environment-mapping-w-normal-mapping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4851997212824843885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4851997212824843885'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/06/environment-mapping-w-normal-mapping.html' title='Environment Mapping (w/ Normal Maps)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-s2lymO7Ofo0/TffPLtglvdI/AAAAAAAABMs/YgXgZFX7VpU/s72-c/SampleGame+2011-06-12+23-16-56-10.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8425934748211138971</id><published>2011-06-05T02:35:00.002+02:00</published><updated>2011-06-15T00:51:54.783+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rendering'/><category scheme='http://www.blogger.com/atom/ns#' term='Deferred'/><category scheme='http://www.blogger.com/atom/ns#' term='Shaders'/><title type='text'>A new (Deferred) Renderer [Part 1]</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;For a long time I have used SunBurn as my primary rendering solution. This helped a great deal while developing &lt;a href="http://tomlooman.com/previous-projects/needle-juice-game/"&gt;Needle Juice&lt;/a&gt;, &lt;a href="http://tomlooman.com/current-projects/game-over-night/"&gt;Over Night &lt;/a&gt;and more recently: &lt;a href="http://tomlooman.com/current-projects/game-project-sunburn/"&gt;Project Sunburn&lt;/a&gt;. With no new game projects lined up with&amp;nbsp;&lt;i&gt;Core Engine&lt;/i&gt;, I have decided to experiment with my own rendering solution, based on Catalin’s Deferred Rendering sample along with information from many other sources including a &lt;a href="http://www.google.nl/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBQQFjAA&amp;amp;url=http%3A%2F%2Fwww.guerrilla-games.com%2Fpublications%2Fdr_kz2_rsx_dev07.pdf&amp;amp;ei=zMrqTbSiCcXNswaxp9ToCg&amp;amp;usg=AFQjCNGr55AoaZud-nPtnrx8YLC90AZeCA&amp;amp;sig2=EMEv8acqWc2ivNCylnFX2Q"&gt;Killzone 2 presentation&lt;/a&gt; from 2007.&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/-RuoVTYRh-wE/Teq7UVwSN8I/AAAAAAAABMY/VlfL8R6wGJA/s1600/deferredshading101.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-RuoVTYRh-wE/Teq7UVwSN8I/AAAAAAAABMY/VlfL8R6wGJA/s640/deferredshading101.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The above images shows the most recent unit-test of filling the hardware DepthBuffer with the Gbuffer-depth to draw post-deferred geometry (i.e. using forward rendering for transparent surfaces) and other visuals such as vertex-lines. This is done during the final combining pass of the geometry data and lighting using the ‘DEPTH’ semantic. This fills the depth-buffer as all depth is lost after switching RenderTargets (something that can be prevented on the PC using PreserverContents, but does not work on the Xbox - this solves the problem entirely)&lt;br /&gt;&lt;br /&gt;Some other experiments include texture projection as seen below.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZPTBqJOyi5w/Teq8AMMtn6I/AAAAAAAABMg/tuMjDyjuVeQ/s1600/lpp_textureprojection2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/-ZPTBqJOyi5w/Teq8AMMtn6I/AAAAAAAABMg/tuMjDyjuVeQ/s640/lpp_textureprojection2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Texture projection has several great uses, including Deferred Decals, light shapes and video projection on the scene's geometry (as seen in &lt;i&gt;Splinter Cell: Conviction&lt;/i&gt;) Back while developing Over Night we used shadow-mapping in places where texture projection could have been much cheaper. A good example of this is the blue light coming from outside through the shaded window, covering most of the room as seen below. The second image uses a texture to simulate a similar effect, without having to re-draw the entire shadowmap every frame, instead simply sampling from the texture and projecting it into screen-space.&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/-q45F7pqj_D0/Teq7sSyIALI/AAAAAAAABMc/E4fiusjl2VQ/s1600/lpp_textureprojection.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://2.bp.blogspot.com/-q45F7pqj_D0/Teq7sSyIALI/AAAAAAAABMc/E4fiusjl2VQ/s640/lpp_textureprojection.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-Yi9ChUhqO9Q/Teq8trxBmhI/AAAAAAAABMo/MXb-KrmYJgI/s1600/securityroom_HQ.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-Yi9ChUhqO9Q/Teq8trxBmhI/AAAAAAAABMo/MXb-KrmYJgI/s640/securityroom_HQ.png" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looking back at Needle Juice, where we used a directional light with shadows to draw light coming through the windows, another place where texture projection would have been a cheaper and more elegant solution to our problem (also preventing light-leaking, which is very common with directional lighting)&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-GtUGiuW1GA0/Teq8UeP4jyI/AAAAAAAABMk/LEdC7S_ioL4/s1600/needlejuice_window2.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="360" src="http://4.bp.blogspot.com/-GtUGiuW1GA0/Teq8UeP4jyI/AAAAAAAABMk/LEdC7S_ioL4/s640/needlejuice_window2.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Needle Juice: directional-light coming through the window, required shadow-mapping.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br clear="both" /&gt;&lt;br /&gt;I will continue working on the renderer for the time to come, with such a wealth of presentations, papers and samples on deferred rendering (and graphics programming in general) it will keep me busy for a while…Until next time! :)&lt;br /&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/2942877753097296913-8425934748211138971?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8425934748211138971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/06/new-deferred-renderer-part-1.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8425934748211138971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8425934748211138971'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/06/new-deferred-renderer-part-1.html' title='A new (Deferred) Renderer [Part 1]'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-RuoVTYRh-wE/Teq7UVwSN8I/AAAAAAAABMY/VlfL8R6wGJA/s72-c/deferredshading101.png' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-5389047764613753300</id><published>2011-05-21T22:59:00.001+02:00</published><updated>2011-06-15T20:46:35.757+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='PostProcess'/><category scheme='http://www.blogger.com/atom/ns#' term='Shaders'/><title type='text'>'Depth Dependent Halos' for Wireframe rendering [Part 3]</title><content type='html'>It took a while to upload (on 56k wireless connection) but the video is finally available on YouTube. If you haven't seen the previous posts about this topic, the effect is based on UDK's implementation of 'Depth Dependent Halos' to increase readability of wireframes in complex scenes.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="640" height="390" src="http://www.youtube.com/embed/eUALswfvwPs?rel=0&amp;amp;hd=1" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;After I managed to get the desired effect I could simplify it significantly. Moving from two render-passes to one and from 18 texture look-ups to 'just' 9. This was possible by removing the normal 'diffuse' pass which is nothing more than the regular colored wireframe you can see in the video (when the halos are toggled-off), and instead using the information available inside the depth-buffer to construct the wireframe. This is pretty easy if you take into account that &lt;i&gt;if (depth == 1)&lt;/i&gt; there is no geometry, where &lt;i&gt;if (depth &amp;lt; 1)&lt;/i&gt; there is&amp;nbsp;in fact&amp;nbsp;a line that was drawn when constructing the depth-buffer. From this you create a colored wireframe and the halo inside the post-processor. The same data can be used to determine intersecting lines...removing the need for 9 texture lookups that sampled data from the original wireframe in the first prototype and instead re-using the sampled depth.&lt;br /&gt;&lt;br /&gt;The result can be seen above...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-5389047764613753300?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/5389047764613753300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/depth-dependent-halos-for-wireframe_8571.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5389047764613753300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5389047764613753300'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/depth-dependent-halos-for-wireframe_8571.html' title='&apos;Depth Dependent Halos&apos; for Wireframe rendering [Part 3]'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/eUALswfvwPs/default.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-1668782053228372351</id><published>2011-05-21T13:23:00.000+02:00</published><updated>2011-05-21T13:23:27.539+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='PostProcess'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Shaders'/><title type='text'>'Depth Dependent Halos' for Wireframe rendering [Part 2]</title><content type='html'>I have been working on getting the depth buffer to generate properly and using it to post-process the wires (i.e. creating the outline around the wireframe) and so far I'm quite satisfied...it's still a work in progress, but progress is going well...&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-cxgynDvxrZU/TdecT_DckiI/AAAAAAAABMQ/PkVj0AOejbM/s1600/wireframe_halos.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://3.bp.blogspot.com/-cxgynDvxrZU/TdecT_DckiI/AAAAAAAABMQ/PkVj0AOejbM/s400/wireframe_halos.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;This is the result so far, with the depth buffer drawn in the top-left corner and the final image in the middle.&amp;nbsp;&lt;/i&gt;&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/-HXQFJXPL148/TdecUzHqQwI/AAAAAAAABMU/xF9-wW74Xdo/s1600/wireframe_halos_cropped.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="323" src="http://2.bp.blogspot.com/-HXQFJXPL148/TdecUzHqQwI/AAAAAAAABMU/xF9-wW74Xdo/s400/wireframe_halos_cropped.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;A zoomed-in version of the first image, the effect is visible around the characters head where you see a clear outline being formed, disconnecting it from the other character underneath it.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;For comparison I used a color similar to UDK &lt;i&gt;(see first image of previous post)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;4 more texture-lookups will be added which adds improved support for diagonal lines - that would bring the total lookups to &lt;b&gt;14&lt;/b&gt;...which is quite a lot for a single effect, but since the geometry&amp;nbsp;will never been drawn with fancy shaders while in this 'mode'&amp;nbsp;(nor any other post-process effect) I don't expect it to be a problem. This effect provides the most benefit when moving around with the camera, I hope to upload a short video of this after I finalized the effect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-1668782053228372351?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/1668782053228372351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/depth-dependent-halos-for-wireframe_21.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1668782053228372351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1668782053228372351'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/depth-dependent-halos-for-wireframe_21.html' title='&apos;Depth Dependent Halos&apos; for Wireframe rendering [Part 2]'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-cxgynDvxrZU/TdecT_DckiI/AAAAAAAABMQ/PkVj0AOejbM/s72-c/wireframe_halos.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-1453569804048116579</id><published>2011-05-21T01:33:00.000+02:00</published><updated>2011-05-21T01:33:07.954+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='PostProcess'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='Prototype'/><title type='text'>'Depth Dependent Halos' for Wireframe rendering</title><content type='html'>'Depth Dependent Halos' is something I read on the UDK site a while ago, it's for their 'new' (by now pretty old...) wireframe rendering that increases readability of the lines for complex scenes. I was kind of wondering how they accomplished this and wanted to try this out myself (I was working on a wireframe-mode anyway, so it was the right time to experiment)&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/-qdHFe1HxVAk/Tdb2EDACpXI/AAAAAAAABMI/naimu4-XSYM/s1600/depthdependenthalos_udk.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" src="http://2.bp.blogspot.com/-qdHFe1HxVAk/Tdb2EDACpXI/AAAAAAAABMI/naimu4-XSYM/s400/depthdependenthalos_udk.png" width="400" /&gt;&lt;/a&gt;&lt;/div&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;&lt;div style="text-align: left;"&gt;This is the effect I am trying to replicate. Black halos are drawn around the wireframe lines to provide a better understanding of depth differences between these lines.&lt;/div&gt;&lt;br /&gt;I went through a few different approaches and ended up with a small post-processing shader that applies the halo around the wireframe lines. It took a few iterations to get the desired results, but I did end up with something that is pretty close to what I am looking for...&lt;br /&gt;&lt;br /&gt;The first step was to create my regular wireframe and letting the post-processor create a small single pixel halo around these lines using a different color. The second step (still have to start on this one) will require a depth-buffer and use the depth information to determine if the outline/halo should be drawn with halos being drawn on top of lines underneath them, creating&amp;nbsp;discontinuities&amp;nbsp;between lines that intersect and are underneath others.&lt;br /&gt;&lt;br /&gt;Some of the iterations I went through:&lt;br /&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: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-13GK2hM3u-o/TdbzRucBCzI/AAAAAAAABMA/DPxqE0s6Tcg/s1600/SampleGame+2011-05-21+00-16-10-35.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://3.bp.blogspot.com/-13GK2hM3u-o/TdbzRucBCzI/AAAAAAAABMA/DPxqE0s6Tcg/s400/SampleGame+2011-05-21+00-16-10-35.png" width="400" /&gt;&lt;/a&gt;&lt;/div&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;&lt;div style="text-align: left;"&gt;&lt;i&gt;Trying to find out the correct pixel offset and coloring by finding edges and applying a different color to each direction (up/down/left/right in screen-space)&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ieR-o4N4Rnk/TdbzXLmZ4lI/AAAAAAAABME/Kpv7DbQS-_M/s1600/SampleGame+2011-05-21+00-14-57-31.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://4.bp.blogspot.com/-ieR-o4N4Rnk/TdbzXLmZ4lI/AAAAAAAABME/Kpv7DbQS-_M/s400/SampleGame+2011-05-21+00-14-57-31.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;This is the current state of the code, and resembles the desired effect (of step 1) quite closely.&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&lt;/i&gt;&lt;a href="http://3.bp.blogspot.com/-P0ACI35FTwY/Tdby3rxLJeI/AAAAAAAABL8/0vGOwWpRHps/s1600/SampleGame+2011-05-21+00-49-17-74.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://3.bp.blogspot.com/-P0ACI35FTwY/Tdby3rxLJeI/AAAAAAAABL8/0vGOwWpRHps/s400/SampleGame+2011-05-21+00-49-17-74.png" width="400" /&gt;&lt;/a&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;I have also been working on some additional scene navigation features. These are best shown in a video, but since I currently get my connection through a painfully slow USB stick - that will have to wait...&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;i&gt;bonus image...(this result was less then expected, but looks pretty cool)&lt;/i&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: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-14ADVPKmJ3g/Tdb3XQXePBI/AAAAAAAABMM/nP9kWxHrGls/s1600/SampleGame+2011-05-21+00-28-29-86.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://1.bp.blogspot.com/-14ADVPKmJ3g/Tdb3XQXePBI/AAAAAAAABMM/nP9kWxHrGls/s400/SampleGame+2011-05-21+00-28-29-86.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-P0ACI35FTwY/Tdby3rxLJeI/AAAAAAAABL8/0vGOwWpRHps/s1600/SampleGame+2011-05-21+00-49-17-74.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/-P0ACI35FTwY/Tdby3rxLJeI/AAAAAAAABL8/0vGOwWpRHps/s1600/SampleGame+2011-05-21+00-49-17-74.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/-P0ACI35FTwY/Tdby3rxLJeI/AAAAAAAABL8/0vGOwWpRHps/s1600/SampleGame+2011-05-21+00-49-17-74.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&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/2942877753097296913-1453569804048116579?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/1453569804048116579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/depth-dependent-halos-for-wireframe.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1453569804048116579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1453569804048116579'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/depth-dependent-halos-for-wireframe.html' title='&apos;Depth Dependent Halos&apos; for Wireframe rendering'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-qdHFe1HxVAk/Tdb2EDACpXI/AAAAAAAABMI/naimu4-XSYM/s72-c/depthdependenthalos_udk.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-163529037433557435</id><published>2011-05-14T19:33:00.000+02:00</published><updated>2011-05-14T19:33:40.311+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Camera'/><category scheme='http://www.blogger.com/atom/ns#' term='Prototype'/><title type='text'>Prototype: Orientation-Adapative Grid</title><content type='html'>"Orientation adaptive Grid" is a concept I drew up earlier this week and I finally turned it into a working prototype yesterday. There really isn't a lot to talk about - It reacts to the orientation of the camera and shows/hides the three available grids. The video below demonstrates this in a few seconds...&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="257" src="http://www.youtube.com/embed/m7yK1bhKgi0?rel=0&amp;amp;hd=1" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;(watch is high-quality to see the lines)&lt;br /&gt;&lt;br /&gt;I'm not quite sure if I will be using this in the later stages of my editor - so far it goes look kinda cool and doesn't seem too distracting - it will require some more tuning (of the alpha values) and once the ViewCube (seen in the top-right corner) is complete I will revisit this concept as they play pretty well together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-163529037433557435?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/163529037433557435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/prototype-orientation-adapative-grid.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/163529037433557435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/163529037433557435'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/prototype-orientation-adapative-grid.html' title='Prototype: Orientation-Adapative Grid'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/m7yK1bhKgi0/default.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3441502277166349910</id><published>2011-05-02T00:10:00.000+02:00</published><updated>2011-05-02T00:10:53.072+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Camera'/><category scheme='http://www.blogger.com/atom/ns#' term='Viewport'/><category scheme='http://www.blogger.com/atom/ns#' term='Prototype'/><title type='text'>Editor Tool: ViewCube (Camera Orientation helper)</title><content type='html'>Got to work on a new tool today and to users of 3D Studio Max or Maya it may look very familiar. It's called the ViewCube and it helps you orientate&amp;nbsp;your camera in the scene. The video below demonstrates the basic system, Right now it's still only a prototype I made earlier this evening&amp;nbsp;and I will finish it at a later time. The final tool will interpolate to the new position/orientation&amp;nbsp;and the tool itself will be available in the top-right corner of the screen (and will have greatly improved visuals of course ;)).&lt;br /&gt;&lt;br /&gt;Since I only have one viewport available in my editor, this can theoratically be a replacement for the standard dedicated Top/Side/Front-viewports. I might add&amp;nbsp;an easy toggle for perspective-to-orthographic so you would not longer need/have 4 viewports on your screen at the same time...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="257" src="http://www.youtube.com/embed/uuW6Cz-h0t8" width="400"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-3441502277166349910?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3441502277166349910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/editor-tool-viewcube-camera-orientation.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3441502277166349910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3441502277166349910'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/editor-tool-viewcube-camera-orientation.html' title='Editor Tool: ViewCube (Camera Orientation helper)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/uuW6Cz-h0t8/default.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7464485123843536426</id><published>2011-05-01T02:05:00.000+02:00</published><updated>2011-05-01T02:05:21.094+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='GSM'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Engine Restructuring</title><content type='html'>So I have actually had the time to work on the engine again and been experimenting with some design patterns.&amp;nbsp;Since the deadline of our latest project (&lt;a href="http://tomlooman.com/current-projects/game-project-sunburn/"&gt;Project Sunburn&lt;/a&gt;) has passed a while ago I have been doing some experimental stuff, mostly to try&amp;nbsp;and fix issues and concerns that were bugging me for a while. Since there are currently no new projects/games scheduled&amp;nbsp;to use the engine I am basically free to experiment and try out new things.&lt;br /&gt;&lt;br /&gt;A pretty major annoyance is '&lt;i&gt;one-frame-lag&lt;/i&gt;', it's fairly common and can easily happen when you don't own full&amp;nbsp;control over the optimal update-order of your components.&amp;nbsp;This type of lag most commonly occurs when object-A affects object-B, but B has already updated himself that frame. It will then take another frame&amp;nbsp;for the full-effect to be applied. The same thing can happen when different objects query information from a object that itself gets affected several times during a frame, this ends up being messy and will have unexpected results and &lt;i&gt;one-frame-lag&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;However, I believe to have found a pretty solid solution, since it a bit experimental I will first test it against more complex&amp;nbsp;components. More on that later...&lt;br /&gt;&lt;br /&gt;The latest version of Core Engine was also lacking a proper Game-State management framework, which wasn't a problem for a long time since we generally didn't use 2D menus for our prototypes, but I am currently figuring out a good way to re-integrate this into the engine (from scratch) The 'standard' frameworks really don't work for me as they easily make your framework very complex and put a lot of extra strain on iteration speed, it should be a lot simpler and that's exactly what I'll be trying to accomplish.&lt;br /&gt;&lt;br /&gt;A small note on the &lt;b&gt;&lt;i&gt;Gizmo &lt;/i&gt;&lt;/b&gt;for those of you who may be using it - I might release an update soon fixing some of the integration issues people might&amp;nbsp;experience when they don't have a similar framework set-up. I will try to completely decouple the component which makes it a lot easier to integrate &amp;nbsp;into your own editor. (If you experienced any other issues, let me know and I will see if I can fix is along with the rest)&lt;br /&gt;&lt;br /&gt;With all the other stuff going on I did not spend a single minute on &lt;b&gt;&lt;i&gt;V-script&lt;/i&gt;&lt;/b&gt; (Except for a presentation I did, I might talk about it some other time) So there is not much news on that I'm afraid.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-7464485123843536426?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7464485123843536426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/engine-restructuring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7464485123843536426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7464485123843536426'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/05/engine-restructuring.html' title='Engine Restructuring'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4635231791153959901</id><published>2011-04-03T14:24:00.000+02:00</published><updated>2011-04-03T14:24:36.783+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internship'/><title type='text'>Starting my Internship (at Trinigy, Germany)</title><content type='html'>Some of you may know I was recently accepted as Intern Software Engineer at Trinigy, Germany.&amp;nbsp;I arrived in Engingen (near Stuttgart) yesterday (on April 2nd) and I will start my internship tomorrow.&amp;nbsp;It lasts 6-months which is quite extensive, but I expect to learn a lot from this experience.&lt;br /&gt;&lt;br /&gt;I don't know what effect this will have on my personal (XNA)projects. I might be able to work on them whenever I have some spare time available.&amp;nbsp;One of the projects is V-script which I recently talked about. I'm considering making it open-source, but have not made my decision yet. It all depends on the quality of the end-result.&amp;nbsp;If you're interested in seeing the V-script (or 'Node-graph Framework') as open-source, leave your comment and let me know if you have any specific features you would be interested in... (I will publish a feature-list soon)&lt;br /&gt;&lt;br /&gt;I was going to publish a video of the assignment I had to complete in order to get accepted, but I'm not sure if that is allowed.&amp;nbsp;If I'm able to publish it, I will upload a video about it soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4635231791153959901?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4635231791153959901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/04/starting-my-internship-at-trinigy.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4635231791153959901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4635231791153959901'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/04/starting-my-internship-at-trinigy.html' title='Starting my Internship (at Trinigy, Germany)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8863468882110893849</id><published>2011-03-29T01:20:00.000+02:00</published><updated>2011-03-29T01:20:17.585+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><category scheme='http://www.blogger.com/atom/ns#' term='SgMotion'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><title type='text'>SgMotion: Rig/Skeleton Visualizer</title><content type='html'>A couple of days ago I added a new feature to the SgMotion animation library.&lt;br /&gt;It visualizes the animation skeleton to debug animation and rigging issues and helps finding bone/dummy names and indices more easily.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-2sEigWiSdMk/TZEWhCvD0zI/AAAAAAAABLY/dI0uZqF34KA/s1600/sgMotionSample+2011-03-26+02-48-45-44.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="http://4.bp.blogspot.com/-2sEigWiSdMk/TZEWhCvD0zI/AAAAAAAABLY/dI0uZqF34KA/s400/sgMotionSample+2011-03-26+02-48-45-44.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can grab the &lt;a href="http://sgmotion.codeplex.com/SourceControl/list/changesets"&gt;latest release&lt;/a&gt; for SgMotion over at codeplex.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;An example of how to use this new feature is available inside the Sample project.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As an added bonus you can cycle through the skeleton to highlight bones and their children, watch the video to find out exactly what I mean.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;iframe allowfullscreen="" frameborder="0" height="255" src="http://www.youtube.com/embed/dpuLGzgLwU0" title="YouTube video player" width="400"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-8863468882110893849?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8863468882110893849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/03/sgmotion-rigskeleton-visualizer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8863468882110893849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8863468882110893849'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/03/sgmotion-rigskeleton-visualizer.html' title='SgMotion: Rig/Skeleton Visualizer'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-2sEigWiSdMk/TZEWhCvD0zI/AAAAAAAABLY/dI0uZqF34KA/s72-c/sgMotionSample+2011-03-26+02-48-45-44.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3327314461806597425</id><published>2011-03-10T00:53:00.000+01:00</published><updated>2011-03-10T00:53:30.699+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Visual Script 2.0</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-I2tLJGNaVKs/TXgPypFG_4I/AAAAAAAABLU/LGcc0OxsSkQ/s1600/visualscript20.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="https://lh5.googleusercontent.com/-I2tLJGNaVKs/TXgPypFG_4I/AAAAAAAABLU/LGcc0OxsSkQ/s400/visualscript20.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;The above image contains the new (WIP) V-Script tool. It's much like the old script tool, working with Nodes similar to many other node-based frameworks out there. However, this new tool is build from the ground up and should end up with a much cleaner structure and higher flexibility. It will include Xbox 360 support, something that the old wasn't designed for.&lt;br /&gt;&lt;br /&gt;As you can see above, I have most of the basics worked out. A cool feature that I added today is auto-alignment, this&amp;nbsp;basically structures the connectors automatically and re-sizes the Node if&amp;nbsp;necessary. The old system required you to manually place all connectors, which proved to be a pain for the more complex script-nodes that were added late in development.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;One last thing you can see is the new menu inside the XNA Game Window. There aren't captured by Fraps, so you couldn't see them in my last video while it was already implemented back then. It's still only a small proof of concept, it's a context-based menu that changes depending on what you've selected and/or are working on (particles, scripts, object-placement etc.) note that the gray bottom-bar (that is currently empty) will include info about the editor and gizmo properties etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-3327314461806597425?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3327314461806597425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/03/visual-script-20.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3327314461806597425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3327314461806597425'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/03/visual-script-20.html' title='Visual Script 2.0'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-I2tLJGNaVKs/TXgPypFG_4I/AAAAAAAABLU/LGcc0OxsSkQ/s72-c/visualscript20.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3350517547783958374</id><published>2011-03-02T14:44:00.000+01:00</published><updated>2011-03-02T14:44:34.405+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Console'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Console Extension - Auto-complete &amp; Suggestions.</title><content type='html'>I actually finished this last night, but I didn't post about it and decided to get some sleep instead. It's an extension on the console component I integrated a few weeks ago. It adds support for auto-complete and command suggestions.&amp;nbsp;I might add an&amp;nbsp;&lt;i&gt;argument-&lt;/i&gt;completer as well in addition to some layout fixes.&lt;br /&gt;&lt;br /&gt;&lt;object height="255" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/uiskEx8D2OI?fs=1&amp;amp;hl=en_US"&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/uiskEx8D2OI?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="255"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;i&gt;(watch in HD 720p + fullscreen to read the text)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I originally got this idea from the UDK console that has a similar feature, it should make browsing and finding commands much faster and easier and doesn't rely on software knowledge as much.&lt;br /&gt;&lt;br /&gt;It's based on the&amp;nbsp;&lt;a href="http://console.codeplex.com/"&gt;GameConsole&amp;nbsp;&lt;/a&gt;by Vos which I believe is one of the best console component for XNA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-3350517547783958374?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3350517547783958374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/03/console-extension-auto-complete.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3350517547783958374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3350517547783958374'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/03/console-extension-auto-complete.html' title='Console Extension - Auto-complete &amp; Suggestions.'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4781833713943400623</id><published>2011-02-26T12:41:00.000+01:00</published><updated>2011-02-26T12:41:38.009+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><title type='text'>XNA 3D Gizmo Video!</title><content type='html'>Finally a video about the Gizmo showcasing the feature-set. I've added some tunes as well this time, hope you like it...&lt;br /&gt;&lt;br /&gt;&lt;object height="255" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UlORUmMl5uY?fs=1&amp;amp;hl=en_US"&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/UlORUmMl5uY?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="255"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4781833713943400623?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4781833713943400623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/02/xna-3d-gizmo-video.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4781833713943400623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4781833713943400623'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/02/xna-3d-gizmo-video.html' title='XNA 3D Gizmo Video!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-2459494313954505429</id><published>2011-02-24T10:09:00.000+01:00</published><updated>2011-11-05T06:06:31.636+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Sample'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><title type='text'>XNA 3D Gizmo v1.0.0 Released!</title><content type='html'>The latest version of the &lt;a href="http://xnagizmo.codeplex.com/"&gt;XNA Gizmo&lt;/a&gt; is now available on Codeplex! You can download it &lt;a href="http://xnagizmo.codeplex.com/releases/view/61535"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Since my last announcement I have added many features (including all those I mentioned in my previous post) and it should be ready to use in your own editor. I supplied a small framework to show the Gizmo at work. I have tried to make the implementation&amp;nbsp;to your own engine/editor to be as painless as possible, however it can always be easier...(if I knew what all of your engines/editors would look like :) )&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://xnagizmo.codeplex.com/"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-oDTH1W4uZfo/TWYel6fxjmI/AAAAAAAABK0/G9NI6RWCQT0/s640/gizmo_modeoverview.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I still haven't made a video to showcase all of the new features, but it should be available soon...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xnagizmo.codeplex.com/releases/view/61535"&gt;Download Link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-2459494313954505429?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/2459494313954505429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/02/xna-3d-gizmo-v100-released.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2459494313954505429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2459494313954505429'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/02/xna-3d-gizmo-v100-released.html' title='XNA 3D Gizmo v1.0.0 Released!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-oDTH1W4uZfo/TWYel6fxjmI/AAAAAAAABK0/G9NI6RWCQT0/s72-c/gizmo_modeoverview.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3806819174644814658</id><published>2011-02-12T23:56:00.003+01:00</published><updated>2011-02-13T00:51:35.343+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Gizmo Roadmap &amp; Engine Revamp</title><content type='html'>First off, there have been several updates for the Gizmo since the last announcement. You can download them on the &lt;a href="http://xnagizmo.codeplex.com/SourceControl/list/changesets"&gt;Source Code&lt;/a&gt;-tab on Codeplex.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most (features and code) has already been implemented by now, however there are still some nice features on the horizon. This includes:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;- Grid &amp;amp; Rotation snapping.&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;- Multi-layer selection. (or click-through selection)&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;- Reset transform.&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;- Added support for multi-selection.&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;- Precision Mode.&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some of these were already part of the old gizmo, and others were already implemented in the internal version of the Gizmo I used in my own editor a while ago. So it shouldn't take long to implement any of these in the revamped public release...Stay tuned for updates! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next, a quick notification on the &lt;b&gt;Core Engine roadmap&lt;/b&gt;. Since there is currently no game in development I can make breaking changes without ramifications. This is something I often do when there are no games actively developed with the Engine. This time it's a pretty huge revamp of the complete engine-structure. So far I have deleted over 110 classes to make room for a new and improved structure including a much better GameState management system that is first on the list.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Not all code is deleted though, I will be using a lot of the old code for new components and managers, deleting them for now makes the re-design a lot quicker and efficient (preventing 100's of errors) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In addition to the new structure I'd like to design components in such a way that it's easier to create external projects for &lt;b&gt;open-source initiatives&lt;/b&gt; such as sgMotion &amp;amp; GizmoComponent. If I can just copy/paste my own component to one of the open-source projects, it will be a lot easier to update and maintain. The Gizmo is a good project to fine-tune just that. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A&lt;b&gt; new video &lt;/b&gt;should be up soon, once the Gizmo is out of Beta. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-3806819174644814658?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3806819174644814658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/02/gizmo-roadmap-engine-revamp.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3806819174644814658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3806819174644814658'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/02/gizmo-roadmap-engine-revamp.html' title='Gizmo Roadmap &amp; Engine Revamp'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8735307073359834565</id><published>2011-02-08T12:16:00.004+01:00</published><updated>2011-02-08T12:24:42.274+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><title type='text'>Gizmo Beta Released!</title><content type='html'>It's finally here...well kinda. It's still in Beta, but a lot of its functionality is working and now you can try it out for yourself on &lt;a href="http://xnagizmo.codeplex.com/"&gt;CodePlex&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are some known issues (including local-space transformations not working as intended) but I really wanted to let you guys try it and see what you think of it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The component has been re-built from the ground-up to eliminate all of the old issues and improve readability and flexiblity of this new revamped component. Feedback and suggestions are welcome, you can post it in the comments or leave a message on &lt;a href="http://xnagizmo.codeplex.com/discussions"&gt;Codeplex &lt;/a&gt;instead. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll leave you with just this image and a &lt;a href="http://xnagizmo.codeplex.com/releases/view/60596"&gt;download link&lt;/a&gt; for now, a video will follow once I have a fully stable build.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TVEnSCjlwZI/AAAAAAAABKc/JbOQreW6CMI/s1600/XNA3DGizmo%2B2011-02-08%2B11-58-56-93.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/TVEnSCjlwZI/AAAAAAAABKc/JbOQreW6CMI/s400/XNA3DGizmo%2B2011-02-08%2B11-58-56-93.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5571277404911288722" style="cursor: pointer; width: 400px; height: 240px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since I'm finally using SVN, you can directly follow my updates on the &lt;a href="http://xnagizmo.codeplex.com/SourceControl/list/changesets"&gt;Source Code&lt;/a&gt; tab of codeplex.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-8735307073359834565?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8735307073359834565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/02/gizmo-beta-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8735307073359834565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8735307073359834565'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/02/gizmo-beta-released.html' title='Gizmo Beta Released!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/TVEnSCjlwZI/AAAAAAAABKc/JbOQreW6CMI/s72-c/XNA3DGizmo%2B2011-02-08%2B11-58-56-93.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-2073810794251312398</id><published>2011-02-05T23:22:00.004+01:00</published><updated>2011-02-05T23:38:35.795+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><category scheme='http://www.blogger.com/atom/ns#' term='GSM'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>GSM &amp; Gizmo Update</title><content type='html'>Still no release available for the Gizmo project. However, with the Translation mode pretty much complete and the Rotation well under-way it's getting closer.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I finally created an SVN-host. This means the next Gizmo release will use it as well, so you should keep a sharp-eye on the &lt;i&gt;Source Code&lt;/i&gt; tab of the project page.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Among other things I completely re-designed the GameState management of the engine. the previous GSM had faded over time in flexibility and support due to heavy changes in overall engine structure. This new system should increase readability, flexibility and performance. The Gizmo will use a small portion of the GSM. As it will be flexible, you can easily change the components to fit in your own framework without having to use mine.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TU3QMEHHuSI/AAAAAAAABKM/-5t2F38KrzM/s1600/Test%2BEnvironment%2B2011-02-05%2B03-50-16-04.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TU3QMEHHuSI/AAAAAAAABKM/-5t2F38KrzM/s400/Test%2BEnvironment%2B2011-02-05%2B03-50-16-04.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5570337219807787298" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The (normally invisible) collision hull of the Rotation-mode. Mesh vs. Ray will determine the selected axis.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TU3Qe7pCPyI/AAAAAAAABKU/13idF0cbHqQ/s1600/Test%2BEnvironment%2B2011-02-05%2B03-50-05-04.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/TU3Qe7pCPyI/AAAAAAAABKU/13idF0cbHqQ/s400/Test%2BEnvironment%2B2011-02-05%2B03-50-05-04.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5570337543951630114" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The already complete Translation-mode. As seen in the previous video.&lt;/i&gt;&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/2942877753097296913-2073810794251312398?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/2073810794251312398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/02/gsm-gizmo-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2073810794251312398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2073810794251312398'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/02/gsm-gizmo-update.html' title='GSM &amp; Gizmo Update'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/TU3QMEHHuSI/AAAAAAAABKM/-5t2F38KrzM/s72-c/Test%2BEnvironment%2B2011-02-05%2B03-50-16-04.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-239607118732525472</id><published>2011-01-31T03:46:00.004+01:00</published><updated>2011-01-31T04:17:15.755+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><title type='text'>Gizmo Update (no release yet)</title><content type='html'>I have been working on a completely new Gizmo. The old one did what it has to do, but it lacked feedback for the user and didn't look very professional.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The new release, should be the (near) final iteration of the project. I still don't know exactly when it's going to be finished, but I've made a lot of progress today.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Currently, only the Translation part of the gizmo is in place. But like the previous version, rotation and scaling will be supported.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="250"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Wgo3UDUr8mc?fs=1&amp;amp;hl=en_US"&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/Wgo3UDUr8mc?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-239607118732525472?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/239607118732525472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/01/gizmo-update-no-release-yet.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/239607118732525472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/239607118732525472'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/01/gizmo-update-no-release-yet.html' title='Gizmo Update (no release yet)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3698630000943230094</id><published>2011-01-07T04:14:00.003+01:00</published><updated>2011-01-07T04:24:48.666+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Over Night'/><title type='text'>Updated 'Over Night' Trailer on Youtube</title><content type='html'>I've just finished updating the trailer of our previous project, 'Over Night'. It includes a new voice for Jake, the protagonist and higher quality in-game footage. The previous upload suffered greatly from compression artefacts. This issue has been resolved and the overall quality of the footage has been greatly improved.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="250"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hPNWEHkZSus?fs=1&amp;amp;hl=en_US"&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/hPNWEHkZSus?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For anyone wondering if this means the project is still on-going, I'm afraid I'll have to disappoint you. I've updated the trailer so I can include it in my &lt;a href="http://tomlooman.com/"&gt;Portfolio&lt;/a&gt;. 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/2942877753097296913-3698630000943230094?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3698630000943230094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2011/01/updated-over-night-trailer-on-youtube.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3698630000943230094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3698630000943230094'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2011/01/updated-over-night-trailer-on-youtube.html' title='Updated &apos;Over Night&apos; Trailer on Youtube'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4801116158631440153</id><published>2010-12-31T03:51:00.007+01:00</published><updated>2010-12-31T05:51:51.833+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='collision'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Sunburn'/><title type='text'>Due Update</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;It's been a while since my last update. After a tiring 26 and a half hours of continuous work to make the deadline, I needed some time off from XNA. I got started again earlier this week though and I have a few teaser screenshots to show you guys.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TR1Fi-BmAsI/AAAAAAAABJg/tcLG3YRpmfc/s1600/ejectedshells.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/TR1Fi-BmAsI/AAAAAAAABJg/tcLG3YRpmfc/s400/ejectedshells.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5556673982312612546" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;The placeholder shells colliding with the environment.&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/TR1FkZHJhJI/AAAAAAAABJw/a0ou2y3AtCU/s1600/shells_lineup.png" style="font-style: normal; "&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/TR1FkZHJhJI/AAAAAAAABJw/a0ou2y3AtCU/s400/shells_lineup.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5556674006763537554" style="cursor: pointer; width: 400px; height: 266px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;The new shell models. (By Bo our 3D Artist)&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TR1FkmXO4DI/AAAAAAAABJ4/bw1Zi8gdFfk/s1600/WindowsGame1%2B2010-12-26%2B14-56-27-44.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TR1FkmXO4DI/AAAAAAAABJ4/bw1Zi8gdFfk/s400/WindowsGame1%2B2010-12-26%2B14-56-27-44.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5556674010320658482" style="cursor: pointer; width: 400px; height: 253px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;Transparency/cube-map test for scope on Assault Rifle. (using Arbitrary model)&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TR1GfJ7BzlI/AAAAAAAABKA/92IxF8brPHA/s1600/an102_closeup.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/TR1GfJ7BzlI/AAAAAAAABKA/92IxF8brPHA/s400/an102_closeup.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5556675016298450514" style="cursor: pointer; width: 400px; height: 201px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;Dummies, a much easier way to align muzzle flashes and shell positions with the weapons.&lt;/i&gt;&lt;/p&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TR1Fj6D1gvI/AAAAAAAABJo/zRNXqktjRIc/s1600/gizmo_wip.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TR1Fj6D1gvI/AAAAAAAABJo/zRNXqktjRIc/s400/gizmo_wip.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5556673998428144370" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;i&gt;The new (WIP) Gizmo. The current release on Codeplex is pretty outdated feature-wise. An updated release should be up soon (no ETA available yet)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;Other upcoming tasks include, &lt;b&gt;motion-blur&lt;/b&gt; on the shells, &lt;b&gt;depth of field&lt;/b&gt; on the weapons and a proper &lt;b&gt;muzzle flash &lt;/b&gt;among other cool stuff...&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4801116158631440153?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4801116158631440153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/12/overdue-update.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4801116158631440153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4801116158631440153'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/12/overdue-update.html' title='Due Update'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/TR1Fi-BmAsI/AAAAAAAABJg/tcLG3YRpmfc/s72-c/ejectedshells.png' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-5882443625962223663</id><published>2010-11-21T02:47:00.003+01:00</published><updated>2010-11-21T02:52:43.100+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='XNAnimation'/><title type='text'>Updated SgMotion for Sunburn 2.0.6</title><content type='html'>&lt;a href="http://sgmotion.codeplex.com/releases/view/56112"&gt;SgMotion v1.2&lt;/a&gt; for Sunburn 2.0.6 is now available on Codeplex! &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mostly changes to the Sample and removed some older unused classes that were causing trouble with the new XNA 4.0&lt;br /&gt;&lt;br /&gt;&lt;div&gt;The PlayerMarine.fbx class seems to loose his Animation clips in XNA 4.0 for an unknown reason. I have tested this issue with some of my own animated models, and they still work fine (using KW-Xport) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you run into similar issues with your own models, I added a small *.xml file that demonstrates a quick way to split the model into custom animation clips&lt;i&gt; (Note, default clip name in .fbx model is "Take 001")&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TOh6ujvLnoI/AAAAAAAABHE/LOqsrErtMCw/s1600/sgMotionSample%2B2010-11-21%2B02-41-35-07.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TOh6ujvLnoI/AAAAAAAABHE/LOqsrErtMCw/s400/sgMotionSample%2B2010-11-21%2B02-41-35-07.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5541814281765101186" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://sgmotion.codeplex.com/releases/view/56112"&gt;Download Here&lt;/a&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/2942877753097296913-5882443625962223663?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/5882443625962223663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/11/updated-sgmotion-for-sunburn-206.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5882443625962223663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5882443625962223663'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/11/updated-sgmotion-for-sunburn-206.html' title='Updated SgMotion for Sunburn 2.0.6'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AoqEZhXDIS4/TOh6ujvLnoI/AAAAAAAABHE/LOqsrErtMCw/s72-c/sgMotionSample%2B2010-11-21%2B02-41-35-07.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7458127337917953435</id><published>2010-11-02T15:31:00.002+01:00</published><updated>2010-11-02T15:57:41.584+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Project Sunburn: AI-Subsystem  (First Dronetype &amp; AI-Manager)</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;We completed our first playable prototype yesterday, and it includes AI! This was the first time I worked on game AI, previous games like Needle Juice and Over Night did not include any form of AI. Luckily our enemies are robotic, not human. It's a lot easier to create a believable drone that in-fact should act as if it's programmed compared to a humanoid character running around trying to act as a sentient being. So far the main drone class, the Spider-Drone,&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;has been implemented and is strolling around in our game. Other drone types (including flying drones) will be added later in phase 2. (started yesterday) Below I wrote a very short summary of certain AI aspects that I included so far.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/TNAhtoaR0NI/AAAAAAAABGE/2hnm_V6IJ54/s1600/ai_droneposing.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/TNAhtoaR0NI/AAAAAAAABGE/2hnm_V6IJ54/s400/ai_droneposing.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5534961009863807186" style="cursor: pointer; width: 400px; height: 222px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;A lot of the info a drone requires is processed in a global manager class. This makes it easier to spread the workload across multiple frames, avoiding frame drops. One example is the Link Availability, testing the links against active drones in the level, blocking a certain link if a drone is not moving (shooting or idle), and therefore blocking that path. This avoids unnecessary navigation errors when drones try to reach the player. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/TNAhux_cJKI/AAAAAAAABGU/3eJtxuO7z5M/s1600/ai_linkblocking.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/TNAhux_cJKI/AAAAAAAABGU/3eJtxuO7z5M/s400/ai_linkblocking.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5534961029615461538" style="cursor: pointer; width: 400px; height: 233px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;Red lines indicate the path is blocked...&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;Another task that is handled by the AI-Manager is tagging waypoints as cover. As certain drone variations will hide behind cover to deploy their weaponry. These kind of non critical components are updated on low frequencies to safe CPU-cycles. In addition, only waypoints near the player can be tagged as potential cover.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/TNAhvPpP1QI/AAAAAAAABGc/ogNV-8VBg4M/s1600/ai_waypointcover.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/TNAhvPpP1QI/AAAAAAAABGc/ogNV-8VBg4M/s400/ai_waypointcover.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5534961037575443714" style="cursor: pointer; width: 400px; height: 228px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;The Yellow waypoints are tagged as "Cover"&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;All drones have some kind of weaponry to use against the player.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;Our first drone has a light machine gun, firing short bursts of bullets. Their weapons work very similar to the player weapons, so it was easy to setup. The turret tries to maintain a solid aim at the player (limited by its rotation speed) and fires bullet salvo's while trying while trying to get closer. In addition, the lens in front, can be destroyed by a single well-aimed shot. This basically counts as a headshot and immediately disables the drone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/TNAhuER7oCI/AAAAAAAABGM/7Rki8NEbNek/s1600/ai_droneshooting.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/TNAhuER7oCI/AAAAAAAABGM/7Rki8NEbNek/s400/ai_droneshooting.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5534961017344991266" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;These are some of the highlights currently implemented as part of the AI-Subsystem. In the upcoming phase I will spend more time optimizing the current manager, add air-drones, improve path-finding and improving overall behavior of the drones. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-7458127337917953435?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7458127337917953435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/11/project-sunburn-ai-subsystem-first.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7458127337917953435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7458127337917953435'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/11/project-sunburn-ai-subsystem-first.html' title='Project Sunburn: AI-Subsystem  (First Dronetype &amp; AI-Manager)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AoqEZhXDIS4/TNAhtoaR0NI/AAAAAAAABGE/2hnm_V6IJ54/s72-c/ai_droneposing.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8621842220206732765</id><published>2010-10-13T23:37:00.002+02:00</published><updated>2010-10-13T23:41:00.203+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='PostProcess'/><category scheme='http://www.blogger.com/atom/ns#' term='Shaders'/><title type='text'>Post-Process: Motion-Blur Effect</title><content type='html'>A simple Motion-Blur post-process based on the &lt;a href="http://http.developer.nvidia.com/GPUGems3/gpugems3_ch27.html"&gt;GPU Gems 3&lt;/a&gt; article.&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="250"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Qy5RXM9N5NQ?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Qy5RXM9N5NQ?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-8621842220206732765?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8621842220206732765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/10/post-process-motion-blur-effect.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8621842220206732765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8621842220206732765'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/10/post-process-motion-blur-effect.html' title='Post-Process: Motion-Blur Effect'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-2626236006209451740</id><published>2010-10-13T03:22:00.003+02:00</published><updated>2010-10-13T03:31:37.467+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Editor Update: Clone-tool with ClonePreviewer</title><content type='html'>You can simply drag your clone to the desired location while using the scroll-wheel to determine the amount of clones you like. The process is finalized by pressing the Enter key.&lt;br /&gt;&lt;br /&gt;The preview models share the same instance of the source model, rendered with an offset for each clone. The translation is snapped to the current grid size, alternatively you can use precision-mode (Shift) to fine-tune your clone-offset. Works with any type of placeable entities, however entities without a model (particles etc.) use simple boundingboxes/icons to show their destination. This may change in the future, where even particles may be fully rendered while previewing.&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="250"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vm_qN2Pfjko?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vm_qN2Pfjko?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-2626236006209451740?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/2626236006209451740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/10/editor-update-clone-tool-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2626236006209451740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2626236006209451740'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/10/editor-update-clone-tool-with.html' title='Editor Update: Clone-tool with ClonePreviewer'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-2634421026091870764</id><published>2010-10-12T02:59:00.003+02:00</published><updated>2010-10-12T03:03:34.255+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Prototype'/><title type='text'>Creating Line-based Animations with the SketchTool</title><content type='html'>&lt;div&gt;A Proof of Concept to animate objects, particles and lights using the Sketch tool. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The position and normal (of the colliding triangle) and stored and converted to an animation file (shared with the already built-in Animation Editor). These can be plugged into any script to easily animate objects, lights or particles in the environment.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="250"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cz-62KEIoyw?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/cz-62KEIoyw?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-2634421026091870764?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/2634421026091870764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/10/creating-line-based-animations-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2634421026091870764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2634421026091870764'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/10/creating-line-based-animations-with.html' title='Creating Line-based Animations with the SketchTool'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8411421245707779450</id><published>2010-10-10T05:04:00.004+02:00</published><updated>2010-10-10T05:17:31.808+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Prototype'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Effortless Waypoint &amp; Path creation using 3D-Sketching</title><content type='html'>&lt;div&gt;About 3 weeks ago, I demonstrated the Sketching in 3D Tool. Today I went a little further and expanded it to be able to create waypoints and paths for our upcoming levels without effort. Manually placing waypoints can be a tedious task, especially if your level is continuously changing in its early stages. With this new Tool we'll be able to create full AI paths in seconds, with easy tweaking after the initial waypoints are setup.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TLEvz5geiYI/AAAAAAAABDo/HOQ43FeJQZM/s1600/effortless_waypointcreation_image.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/TLEvz5geiYI/AAAAAAAABDo/HOQ43FeJQZM/s400/effortless_waypointcreation_image.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5526250786417183106" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Currently there are two types of lines. WaypointLines and AvoidanceLines, the latter is used to state certain parts should simply be avoided by the AI or to break paths that are too close to geometry or ledges.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="250"&gt;&lt;param name="movie" value="http://www.youtube.com/v/X2Xq7-K6Ne8?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/X2Xq7-K6Ne8?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-8411421245707779450?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8411421245707779450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/10/effortless-waypoint-path-creation-using.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8411421245707779450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8411421245707779450'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/10/effortless-waypoint-path-creation-using.html' title='Effortless Waypoint &amp; Path creation using 3D-Sketching'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/TLEvz5geiYI/AAAAAAAABDo/HOQ43FeJQZM/s72-c/effortless_waypointcreation_image.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8045853761524095438</id><published>2010-09-27T00:30:00.005+02:00</published><updated>2010-09-27T00:53:58.558+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='collision'/><category scheme='http://www.blogger.com/atom/ns#' term='Prototype'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Triangle-precision ray collision</title><content type='html'>Bullet collision was previously calculated using the triangle mesh capabilities of BEPU. This wasn't going to work efficiently with all the separate meshes that are going to be used in our levels. With the basics of triangle-picking already implemented in the editor tools it didn't take a lot of time to get a basic prototype up and running. In the image below you can see the new filtering algorithm.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/TJ_Jj855zdI/AAAAAAAABDI/Cc873z92hxU/s1600/Test+Environment+2010-09-27+00-17-26-35.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/TJ_Jj855zdI/AAAAAAAABDI/Cc873z92hxU/s400/Test+Environment+2010-09-27+00-17-26-35.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5521353287661112786" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TJ_GCMEq0-I/AAAAAAAABDA/0pojk86r3iw/s1600/Test+Environment+2010-09-27+00-17-26-35.png"&gt;&lt;/a&gt;&lt;i&gt;each "group" (1 big sphere, 8 small ones) contain 41k polygons. (click image to read the text)&lt;/i&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In a regular scene with a higher amount of objects with lower polygons per mesh that are spread across the scene, the optimization methods will become more efficient. This will be tested once the prototype level is complete.&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;div style="display: inline !important; "&gt; The main focus of the new filtering system is excluding hidden models before they enter into the per-triangle collision check. This system is added on top of the bounding-sphere filter that was already present in the editor tool.&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TJ_JkW5ZM8I/AAAAAAAABDQ/n98SIBXpAlM/s1600/Test+Environment+2010-09-27+00-00-53-47.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TJ_JkW5ZM8I/AAAAAAAABDQ/n98SIBXpAlM/s400/Test+Environment+2010-09-27+00-00-53-47.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5521353294638298050" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Overkill? 150 million triangles both rendered and tested against the bullet ray. This clearly wasn't going to run smoothly (roughly 0.1 fps)&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Video:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;object width="400" height="325"&gt;&lt;param name="movie" value="http://www.youtube.com/v/InCxEeaarXg?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/InCxEeaarXg?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="325"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(use 720p and fullscreen to read the filtering info in the topleft corner)&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-8045853761524095438?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8045853761524095438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/09/triangle-precision-ray-collision.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8045853761524095438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8045853761524095438'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/09/triangle-precision-ray-collision.html' title='Triangle-precision ray collision'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AoqEZhXDIS4/TJ_Jj855zdI/AAAAAAAABDI/Cc873z92hxU/s72-c/Test+Environment+2010-09-27+00-17-26-35.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-1286384290300736581</id><published>2010-09-18T17:05:00.004+02:00</published><updated>2010-09-18T17:41:46.841+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Engine Update: Sketching in 3D</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TJTWBnx-zCI/AAAAAAAABBo/d-8cBJhRhPw/s1600/image_sketching3d.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 156px;" src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TJTWBnx-zCI/AAAAAAAABBo/d-8cBJhRhPw/s400/image_sketching3d.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5518270766782532642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Over the past 2 months I haven't posted a lot of news. With the new project up and running (kick-off was the 13th) I'll start doing more regular postings like I used to.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With the project details still being worked on, there is some time to develop tools that should make life easier later on in the development stage. So I decided to work on some odd ideas that I came up with while traveling. The first one is a pretty cool feature, its sketching in 3d. It uses the 3d meshes inside the level as a canvas to draw on. I think this is very useful for level designers and to help process play-testing feedback. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="250"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Gj4xuVJHgPY?fs=1&amp;amp;hl=en_US"&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/Gj4xuVJHgPY?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For this particular feature to work, triangle precision ray-testing was required. Luckily the &lt;a href="http://creators.xna.com/en-US/sample/pickingtriangle"&gt;XNA Creators Club&lt;/a&gt; had a sample project to get me started. The lines are made of vertices combined into a LineStrip. In addition the triangle normal is tested against the ray direction to prevent drawing on back-faced triangles. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While implementing triangle-precision picking I updated the Gizmo so it is now able to select models by triangle instead of the small boundingbox. Being used to 3D studio max' selection methods I decided to implement multi-layer selection. Because that name probably makes no sense, I'll try to explain it. If multiple objects are behind one another, clicking multiple times will select the object behind the previously selected object, clicking again will select the one behind it etc. That means you can select any object even if another is blocking your view.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TJTWA0G-XAI/AAAAAAAABBg/KrkTsWRVgiU/s1600/layered_objectselection.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TJTWA0G-XAI/AAAAAAAABBg/KrkTsWRVgiU/s400/layered_objectselection.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5518270752911940610" style="cursor: pointer; width: 400px; height: 179px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Each click will pass through another "layer" and select the object occluded by the one in front.&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-1286384290300736581?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/1286384290300736581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/09/engine-update-sketching-in-3d.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1286384290300736581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1286384290300736581'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/09/engine-update-sketching-in-3d.html' title='Engine Update: Sketching in 3D'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/TJTWBnx-zCI/AAAAAAAABBo/d-8cBJhRhPw/s72-c/image_sketching3d.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-1163108390814372189</id><published>2010-09-07T17:38:00.010+02:00</published><updated>2010-09-07T19:21:19.461+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><category scheme='http://www.blogger.com/atom/ns#' term='Content'/><title type='text'>Level &amp; Content management [Part 3]</title><content type='html'>&lt;p class="MsoNormal"&gt;I got a question about my level and object management recently and was asked if I could talk about it. So in this post I'll explain my old and current method of dealing with (level) serialization and how I combined it with my game editor.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;A few months ago I created my levels using a hybrid implementation of a level editor and code to create and connect objects. A game would have several "Scene" classes to be filled with Entities and later set at the correct position in 3D space using the level editor. This worked pretty well, especially since our team had limited time to work on our projects (8 weeks) so I wasn't able to create a fully featured editor at the time. One advantage was the ease of setting up connections and events between objects in a level, because everything is available in the Scene class. An obvious disadvantage was the inability of adding objects on the fly (in runtime) it required some planning to work efficiently. With the game Needle Juice there was only a limited about of objects that required the use of the editor, so again, a fully featured editor wasn't necessary. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;However, after completing &lt;i&gt;Over Night&lt;/i&gt; I set aside some time to work on a more complex editor to aid in the upcoming project(s). This meant a new way of serializing the Scene to store any data. This new method will be explained below, with some code snippets. On a side-note I strongly recommend looking at existing editors (like &lt;a href="http://developer.nvidia.com/object/udk.html"&gt;UDK&lt;/a&gt;) Fool around with it, learn its basics and see what fits your needs and what doesn't. I occasionally opened up an existing Unreal Tournament 3 map and messed around with it to hunt for new features. If you're the only developer to use that tool you can mold it to your exact specifications and preferences very easily.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Before I go on, the following is in no way the only or the best way of doing it. It worked for me and should be easy to implement for yourself. It will hopefully give you a clear idea of you can combine your own requirements with the examples shown.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;i&gt;First off,&lt;/i&gt; &lt;/b&gt;any object that exists in my level is an &lt;i&gt;ISceneEntity &lt;/i&gt;(interface) with a Position, Rotation, Scale etc. The interface holds data that is necessary for any object in the world. Any class that derives from this interface or any other subclass may have its own properties that need to be serialized as well. That means a flexible serializer is required. Luckily Shawn was so kind to explain&lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2008/08/12/everything-you-ever-wanted-to-know-about-intermediateserializer.aspx"&gt; everything you ever wanted to know about IntermediateSerializer&lt;/a&gt;. I recommend you read through his article.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;To store all data in your level your engine needs to know what to serialize and what to ignore. I use a fairly simple Level class to keep track of any objects currently in the world (and part of the serialization list) You add your Entity to a  &lt;i&gt;List&lt;t&gt;&lt;/i&gt; in your Level class. The &lt;i&gt;&lt;b&gt;IntermediateSerializer&lt;/b&gt; &lt;/i&gt;will go through the list and store all Entities in an Xml level file.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TIZfa-r9mbI/AAAAAAAABAk/ADYiQ4huyFg/s1600/image_level.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/TIZfa-r9mbI/AAAAAAAABAk/ADYiQ4huyFg/s400/image_level.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5514199710870378930" style="cursor: pointer; width: 400px; height: 193px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;To actually store your level you need to call the &lt;b&gt;&lt;i&gt;IntermediateSerializer.Serialize&lt;/i&gt;&lt;/b&gt;&lt;t&gt;&lt;b&gt;&lt;i&gt;()&lt;/i&gt;&lt;/b&gt; to write all of the level data to your disk. &lt;/t&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/TIZgD6pmvII/AAAAAAAABAs/EbxtMtBZQ-0/s1600/image_serialize.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/TIZgD6pmvII/AAAAAAAABAs/EbxtMtBZQ-0/s400/image_serialize.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5514200414161386626" style="cursor: pointer; width: 400px; height: 133px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;The above method is part of the Level.cs class.&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;If you're following along, don't forget to add the &lt;i&gt;Microsoft.Xna.Framework.Content&lt;/i&gt; reference to your project folder. By default its already part of your Content project, when referencing in code, you need to add it to your game project as well. The &lt;i&gt;IntermediateSerializer&lt;/i&gt; class is part of the &lt;i&gt;Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate&lt;/i&gt; namespace.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Your level is now stored on disk. Some class will require setting some Attributes in order to be stored properly. Use the &lt;i&gt;[ContentSerializerIgnore]&lt;/i&gt; Attribute over any public property that you want excluded. Use the &lt;i&gt;[ContentSerializer]&lt;/i&gt; Attribute to include private or protected variables.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TIZg13uQgWI/AAAAAAAABA8/N9NcBdT0KPk/s1600/image_actor.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TIZg13uQgWI/AAAAAAAABA8/N9NcBdT0KPk/s400/image_actor.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5514201272369054050" style="cursor: pointer; width: 400px; height: 150px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Finally to load all of your previously stored data you need to call &lt;b&gt;&lt;i&gt;IntermediateSerializer.Deserialize&lt;t&gt;&lt;/i&gt;&lt;/b&gt;&lt;t&gt;&lt;b&gt;&lt;i&gt;()&lt;/i&gt;&lt;/b&gt;. For more info I recommend reading through some of &lt;a href="http://blogs.msdn.com/b/shawnhar/archive/2008/08/26/customizing-intermediateserializer-part-1.aspx"&gt;Shawn's articles&lt;/a&gt; about it.&lt;/t&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I was going to talk about a new feature (mentioned in my previous post) that allows preloading of assets, reducing overall idle-time. This post is already long enough so I'll keep it in mind for some other time.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I hope this helps anyone looking to create his own editor. Level serialization isn't a complex operation, the most important thing is properly structured component system. If you have any questions you can post your comments in the comment section below.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-1163108390814372189?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/1163108390814372189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/09/level-content-management-part-3.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1163108390814372189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1163108390814372189'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/09/level-content-management-part-3.html' title='Level &amp; Content management [Part 3]'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/TIZfa-r9mbI/AAAAAAAABAk/ADYiQ4huyFg/s72-c/image_level.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-2300114003441108814</id><published>2010-08-29T17:52:00.007+02:00</published><updated>2010-08-29T19:08:34.228+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Engine Update: New Features &amp; Tools!</title><content type='html'>It's been a while since my last post. That means I had a lot of time to add new features and spend more time on existing features as well. I'd like to include them in a video soon, for now I'll do a quick rundown of the most important new additions to the engine.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Preloading of Assets&lt;/b&gt;&lt;br /&gt;&lt;div&gt;Load Models, Textures, Video, SoundEffects in the background (Separate Thread) before the complete level is setup. The engine reads part of the level file and pulls out all the required assets for the upcoming level and load them before the game initiates a level transition.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/THqQFXMVuVI/AAAAAAAAA_0/H3Jqds3g0PA/s1600/img_preload.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/THqQFXMVuVI/AAAAAAAAA_0/H3Jqds3g0PA/s400/img_preload.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5510875515840739666" style="cursor: pointer; width: 400px; height: 72px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-weight: bold; "&gt;Undo/Redo system&lt;/span&gt;&lt;br /&gt;I Finally took the time to integrate this into the editor. For now it works primarily on SceneEntities (anything part of the level) and can undo translation/rotation/scale.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/THqQGkxsIlI/AAAAAAAABAE/O-OPT8DWYgM/s1600/img_undo.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/THqQGkxsIlI/AAAAAAAABAE/O-OPT8DWYgM/s400/img_undo.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5510875536666927698" style="cursor: pointer; width: 400px; height: 118px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;System messages&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The system will "ping" important messages and warnings to the top-left corner of the screen, warning you of possible errors. (See above)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Game Properties Window &lt;/b&gt;&lt;/div&gt;&lt;div&gt;Allows you to set Engine properties as well as user-defined game properties, very useful when debugging.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/THqQFyBuEqI/AAAAAAAAA_8/P9ZNo_woQqo/s1600/img_props.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/THqQFyBuEqI/AAAAAAAAA_8/P9ZNo_woQqo/s400/img_props.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5510875523043955362" style="cursor: pointer; width: 318px; height: 400px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/THqQFyBuEqI/AAAAAAAAA_8/P9ZNo_woQqo/s1600/img_props.png"&gt;&lt;/a&gt;&lt;div&gt;&lt;b&gt;3D Text Buttons&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Selectable by mouse, useful for either ingame activators or 3D menus. Text is baked into a texture at runtime and stored on disk.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/THqQEhBjIII/AAAAAAAAA_s/89I1_XxKnPw/s1600/img_button.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/THqQEhBjIII/AAAAAAAAA_s/89I1_XxKnPw/s400/img_button.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5510875501299966082" style="cursor: pointer; width: 400px; height: 129px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Improved Object placement&lt;/b&gt;&lt;div&gt;It's now possible to add objects using the Quick-menu (right-click popup) objects will be placed on the position the mouse is pointing in 3D.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Maya style navigation/orbit camera &lt;/b&gt;&lt;/div&gt;&lt;div&gt;Holding down "L"-key will orbit the currently selected object, scroll-wheel will zoom in/out.&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;VisualScript &amp;amp; AnimationEditor improvements&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Added a lot of new Node-types and added the ability to directly add an animation to a new script.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/THqSOzKOK0I/AAAAAAAABAU/ITD--K1Tb2I/s1600/img_anim.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/THqSOzKOK0I/AAAAAAAABAU/ITD--K1Tb2I/s400/img_anim.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5510877876990126914" style="cursor: pointer; width: 343px; height: 129px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Material editing inside VisualScript&lt;/b&gt; &lt;/div&gt;&lt;div&gt;All (Sunburn) material effects are stored and can be accessed using Script Nodes. Useful to dynamically set textures and other shader properties etc.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;File browsing inside VisualScript&lt;/b&gt;&lt;/div&gt;&lt;div&gt;to easily attach files (Textures, Models, Levels etc.) to a Script Node.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/THqRpj7rMaI/AAAAAAAABAM/r91aUwqJFO0/s1600/img_script.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/THqRpj7rMaI/AAAAAAAABAM/r91aUwqJFO0/s400/img_script.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5510877237247422882" style="cursor: pointer; width: 400px; height: 177px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;I consider these the most significant changes/additions to the engine. Other things will show up in the next video.&lt;br /&gt;&lt;br /&gt;Soon a new project will launch, lasting 4 months in total (instead of the previous 8 weeks we were given when building OverNight &amp;amp; Needle Juice) It's targeted towards XBLIG (Xbox Live Indie) and should be the first game to be fully developed (previous projects were prototypes, not full games) and released on that channel. I'm looking forward to get started, and will of course update on the progression of the game...&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/2942877753097296913-2300114003441108814?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/2300114003441108814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/08/engine-update-new-features-tools.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2300114003441108814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2300114003441108814'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/08/engine-update-new-features-tools.html' title='Engine Update: New Features &amp; Tools!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/THqQFXMVuVI/AAAAAAAAA_0/H3Jqds3g0PA/s72-c/img_preload.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8825177782687182140</id><published>2010-07-28T03:14:00.007+02:00</published><updated>2010-07-28T03:25:09.488+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Shaders'/><category scheme='http://www.blogger.com/atom/ns#' term='Winforms'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Engine Update: Shaders &amp; Editor Additions</title><content type='html'>&lt;div&gt;It has been a while since my last update. The image below shows some of the things I've worked on these past few days...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TE-Edd4EbMI/AAAAAAAAA_k/fx-txN_yO50/s1600/progress28-07-2010.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TE-Edd4EbMI/AAAAAAAAA_k/fx-txN_yO50/s400/progress28-07-2010.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5498759311813536962" style="cursor: pointer; width: 400px; height: 226px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what's new? First off, the shaders might have caught your attention, the lava is flowing and the arrows are flashing which you can't see in the still image unfortunately, I'll make sure to include them in the next video. They were really just experiments to get some practice with shaders and was hoping to use it for a material editor I was working on (had to put it on hold for now) Still, I think they look pretty cool (especially when you see them in motion)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The next thing you can see on the image is the ContextMenu (pop-up menu that appears when you right-click) Its part of the Editor and is rendered inside of the XNA Game window. XNA is still running as it is used to, winforms is added to the XNA window not the other way around.&lt;/div&gt;&lt;div&gt;As you can see there are several useful options inside this pop-up window. You can quickly add new Entities, add selected entities to your current script and continue playing or restart the level using the changes you made in edit-mode.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hopefully I'm able create another video soon, showcasing some other additions that were added over the past couple of weeks. In the meanwhile I'm working on a game prototype, this directly aids in build the engine as well...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-8825177782687182140?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8825177782687182140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/07/engine-update-shaders-editor-additions.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8825177782687182140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8825177782687182140'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/07/engine-update-shaders-editor-additions.html' title='Engine Update: Shaders &amp; Editor Additions'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/TE-Edd4EbMI/AAAAAAAAA_k/fx-txN_yO50/s72-c/progress28-07-2010.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-6024103869986181985</id><published>2010-07-11T00:25:00.004+02:00</published><updated>2010-07-11T01:08:18.290+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='PostProcess'/><category scheme='http://www.blogger.com/atom/ns#' term='Particles'/><category scheme='http://www.blogger.com/atom/ns#' term='Winforms'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Core Engine: Creating a simple level (Video)</title><content type='html'>I'm back with another video, this time I'll show you the creation of a (very) simple level. With The purpose of demonstrating some of the new additions, including the Animation Editor and the updated Visual Scripter. The video playback speed is set to x2 to reduce the overall length. Hopefully you'll enjoy watching and get a bit of insight in the engine's development capabilities.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="250"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_nNBwUUUx2w&amp;amp;hl=en_US&amp;amp;fs=1?rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/_nNBwUUUx2w&amp;amp;hl=en_US&amp;amp;fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The menu system shown in the video above is a WIP, originally all level objects were added at build-time. It's a big change in overall engine design to get these things working flawlessly with the new system. The core is aimed at rapid development and tweaking of the game/level while playing. It's been like that since day one and the new system should compliment that, increasing flexibility of the engine and speeding up the overall process of creating games.&lt;i&gt; &lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-6024103869986181985?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/6024103869986181985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/07/core-engine-creating-simple-level-video.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6024103869986181985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6024103869986181985'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/07/core-engine-creating-simple-level-video.html' title='Core Engine: Creating a simple level (Video)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3981961087515419799</id><published>2010-07-08T06:44:00.003+02:00</published><updated>2010-07-08T06:54:13.159+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Winforms'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Visual Scripting Editor (Video)</title><content type='html'>It's 6:45 in the morning and the scripting editor is finally ready for a short demonstration. Spend most of the time cleaning up the node-system and made it a LOT easier to add additional node types in the future. The scripts are now directly stored inside the level file and can be stored separately if desired (for re-use in other levels) &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the video you will see two simple scripts, one animating a box and the other toggling a point light on and off. You'll also see the new Level Manager window, more on that later.&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 width="400" height="250"&gt;&lt;param name="movie" value="http://www.youtube.com/v/XybS11B4Nqc&amp;amp;hl=en_US&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/XybS11B4Nqc&amp;amp;hl=en_US&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="250"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=XybS11B4Nqc"&gt;(Watch in HD &amp;amp; Fullscreen!)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-3981961087515419799?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3981961087515419799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/07/visual-scripting-editor-video.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3981961087515419799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3981961087515419799'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/07/visual-scripting-editor-video.html' title='Visual Scripting Editor (Video)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-5172592811809018841</id><published>2010-07-05T00:51:00.003+02:00</published><updated>2010-07-05T01:09:10.640+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Winforms'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Scripting for Artists (and programmers)</title><content type='html'>My last entry was over a week ago, but I've been very busy with C# nonetheless. The most interesting (to me at least...) is a visual scripter I've worked on for the past 4 days. It's supposed to work very similar to UE3/UDK's "&lt;a href="http://www.unrealtechnology.com/features.php?ref=kismet"&gt;Kismet&lt;/a&gt;". If you don't know what Kismet is, don't worry it is explained a little further in this entry. Although the visual scripter or artist-scripter (as it would be most useful to non-programmers) is not the only thing I've worked on (Animation Editor is another thing that is currently WIP), but I'll only talk about scripting for now.&lt;br /&gt;&lt;br /&gt;The past couple of days I used MEL (scripting in maya) Unity Scripting and Dragon Age scripting. They all are terrible to get into. They are probably great if you spend a lot of time learning them, but I usually spend only a very limited about of time on any of those scripting languages. Now for "us" programmers it's not that hard to learn a scripting language if you take the time, but for artists and level designers whom only occasionally need to write a script it's very helpful to have a tool like Kismet. &lt;i&gt;See below...&lt;/i&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/TDESW5KnFnI/AAAAAAAAA_U/DiMQr70K-4w/s1600/kismet_scriptexample.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/TDESW5KnFnI/AAAAAAAAA_U/DiMQr70K-4w/s400/kismet_scriptexample.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5490189605253092978" style="cursor: pointer; width: 400px; height: 231px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/TDESW5KnFnI/AAAAAAAAA_U/DiMQr70K-4w/s1600/kismet_scriptexample.png"&gt;&lt;/a&gt;&lt;i&gt;Example script made in Kismet.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Kismet is not designed to replace the regular scripting language in UE3...it's a tool to help create simple (and sometimes more complex) scripts for level specific behavior. &lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;The more complex and game wide scripting can only be done with the regular scripting language. Even though I'm a programmer and can probably live without this tool, I still decided to create something similar, as a challenge, a cool new feature and because it could prove to be very useful when working on our next game...&lt;br /&gt;&lt;br /&gt;So far, the basic system is in place and working properly. I hadn't really worked with Winforms nor Event driven programming before, so this was a great way to get into that.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TDESX8BEdKI/AAAAAAAAA_c/j0ziGNUzhMU/s1600/visualscripting_scriptexample.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TDESX8BEdKI/AAAAAAAAA_c/j0ziGNUzhMU/s400/visualscripting_scriptexample.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5490189623198250146" style="cursor: pointer; width: 400px; height: 269px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TDESX8BEdKI/AAAAAAAAA_c/j0ziGNUzhMU/s1600/visualscripting_scriptexample.png"&gt;&lt;/a&gt;&lt;i&gt;My own visual scripter implementation (visually still very unpolished)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Progress so far: A new script can be created at runtime, nodes can be dragged around, connections between nodes can be created and the whole script can be saved and reloaded to and from the hard drive. A few simple scripts have been created so far (ea. playing an elevator animation when the player enters a volume)&lt;br /&gt;&lt;br /&gt;Similar to Kismet, you can load an animation file (previously created in the Animation Editor, more on that later) and play it when the assigned trigger is fired (Can be something like a level has completed loading or the player entered a trigger volume). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I should be able to demonstrate all this in a video shortly, first I'll continue working on essential usability features...&lt;/div&gt;&lt;div&gt;Be sure to keep an eye on my &lt;a href="http://www.youtube.com/user/TLXNA"&gt;YouTube Channel&lt;/a&gt; if you'd like to get an early glimpse of the Scripter in action (I'll upload a video as soon as I feel it's ready to be recorded)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-5172592811809018841?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/5172592811809018841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/07/scripting-for-artists-and-programmers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5172592811809018841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5172592811809018841'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/07/scripting-for-artists-and-programmers.html' title='Scripting for Artists (and programmers)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AoqEZhXDIS4/TDESW5KnFnI/AAAAAAAAA_U/DiMQr70K-4w/s72-c/kismet_scriptexample.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-888147452110098820</id><published>2010-06-28T04:27:00.005+02:00</published><updated>2010-06-28T04:45:11.009+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='PostProcess'/><category scheme='http://www.blogger.com/atom/ns#' term='Shaders'/><title type='text'>Post-Processing Volumes</title><content type='html'>This time I'll keep the words to a minimum and let the images speak for themselves...(more info below)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TCgKGhKjsFI/AAAAAAAAA-0/gTPK7ZLpdrg/s1600/Test+Environment+2010-06-28+04-22-20-55.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TCgKGhKjsFI/AAAAAAAAA-0/gTPK7ZLpdrg/s400/Test+Environment+2010-06-28+04-22-20-55.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5487647253049094226" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Base Image&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TCgKG_jbmNI/AAAAAAAAA-8/E38gsX2zL30/s1600/Test+Environment+2010-06-28+04-22-37-51.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/TCgKG_jbmNI/AAAAAAAAA-8/E38gsX2zL30/s400/Test+Environment+2010-06-28+04-22-37-51.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5487647261206485202" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Increased black-point&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TCgKHZRr8eI/AAAAAAAAA_E/3jxlK82WqH8/s1600/Test+Environment+2010-06-28+04-23-28-36.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TCgKHZRr8eI/AAAAAAAAA_E/3jxlK82WqH8/s400/Test+Environment+2010-06-28+04-23-28-36.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5487647268111380962" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Cold tint&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TCgKHlgzIBI/AAAAAAAAA_M/6_AMTVq6X6w/s1600/Test+Environment+2010-06-28+04-23-43-30.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TCgKHlgzIBI/AAAAAAAAA_M/6_AMTVq6X6w/s400/Test+Environment+2010-06-28+04-23-43-30.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5487647271395991570" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Warm tint&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you've ever tried Post-Process Volumes inside of UDK/UE3 then you'll be familiar with the concept. I've tried to replicate a lot of its features. You can affect highlights, midtones and shadows (as seen in the images above) as well as bloomscale, blur, noise etc. They all react to the position of the player (inside or outside of the volume) and will transistion between the values when you enter/leave the associated volume. I'll upload a video of that later on...On a sidenote, I've made a lot of progress with the animation editor, more info on that will be available later on just like the video :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-888147452110098820?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/888147452110098820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/post-processing-volumes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/888147452110098820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/888147452110098820'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/post-processing-volumes.html' title='Post-Processing Volumes'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AoqEZhXDIS4/TCgKGhKjsFI/AAAAAAAAA-0/gTPK7ZLpdrg/s72-c/Test+Environment+2010-06-28+04-22-20-55.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8151077129687026227</id><published>2010-06-26T00:17:00.006+02:00</published><updated>2010-06-26T00:59:41.764+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Winforms'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Engine Update: (Finally?) Switching to Winforms</title><content type='html'>You might argue it's about time the engine got a proper interface, I agree :) I was trying to avoid using winforms (to keep compatibility with Xbox easy and maintainable to name a reason) and using the console for most if not ALL runtime actions (except for the Gizmo) I had my reasons for not using winforms, but after rethinking the overall design of the engine, its time to do things a little bit different...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the reasons that got me doubting the usability of the current interface is a new (and still WIP) feature for creating animations at runtime. The goal of the Animation Editor is not to create complex character animations, but rather allow the creation of quick and dynamic animations for rigid objects such as doors and elevators. At first I made it compatible with the Console like any feature prior to this one...It works, but is definitely not the best way to do animations. It's hard to know what keyframes are used, and what the timelines looks like...I made a very simple elevator animation (with acceleration and deceleration) and it does work...however it's not very flexible, at all. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That got me thinking and finally got me to try winforms...After an hour of experimenting, it finally worked. I'm pretty new to winforms, but it surprised me how easy most things can be achieved with very little effort. For starters I made a "Search Actors" window as well as a "Object Properties" window. Both are shown below. &lt;i&gt;(Click on image for full-size)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TCUvzHKE3OI/AAAAAAAAA-U/HWC6RHsCkxU/s1600/NewEditorUI.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TCUvzHKE3OI/AAAAAAAAA-U/HWC6RHsCkxU/s400/NewEditorUI.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5486844276161961186" style="cursor: pointer; width: 400px; height: 234px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Search window can be activated using "Ctrl-F" like many other applications, clicking the "properties" button with an object selected will show its...properties.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have a few other browsers/windows I'd like to get working on in the next couple of days (Tracker window, Content Browser, Animation Editor) I'm currently looking at UDK (Unreal Development Kit) for inspiration on browsers/windows. Their Content Browser is pretty great, and would really help with game development if Core Engine had something similar. &lt;/div&gt;&lt;div&gt;During development of "Over Night" we did lack a proper naming convention and both the asset naming and asset count quickly got out of hand. In the end it took a lot of time to find the proper texture file or locate a specific model.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think I've talked enough about winforms for now :) I've got a few other features lined up, most of them are already working properly, but are still in early alpha stage...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-8151077129687026227?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8151077129687026227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/engine-update-finally-switching-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8151077129687026227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8151077129687026227'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/engine-update-finally-switching-to.html' title='Engine Update: (Finally?) Switching to Winforms'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AoqEZhXDIS4/TCUvzHKE3OI/AAAAAAAAA-U/HWC6RHsCkxU/s72-c/NewEditorUI.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4920332614342336573</id><published>2010-06-20T05:37:00.003+02:00</published><updated>2010-06-20T05:48:03.695+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Engine Update: Scripting, ReverbVolume &amp; Tracking Window</title><content type='html'>The first one is the &lt;b&gt;ReverbVolume &lt;/b&gt;as seen in other game engines like Unreal Engine 3. The volume is very useful when defining rooms,allowing you to alter sound properties when either inside or outside of the volume. The volume alternation is already working when inside or outside of the volume, ironically the only thing that is not yet in place is the Reverb effect itself. I'll explain ReverbVolumes a little more in-depth later on once I've completed finished it, hopefully including the actual Reverb effect instead of just the volume/pitch modifiers. In the video on the bottom you can see/hear it for yourself. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TB2NjhMFPvI/AAAAAAAAA-E/4wCmo7dichY/s1600/ambientsounds_reverbvolume.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TB2NjhMFPvI/AAAAAAAAA-E/4wCmo7dichY/s400/ambientsounds_reverbvolume.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5484695562551115506" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TB2NjhMFPvI/AAAAAAAAA-E/4wCmo7dichY/s1600/ambientsounds_reverbvolume.png"&gt;&lt;/a&gt;&lt;i&gt;The white box is the reverb volume, the blue circles are ambient sounds emitters (or actually the radius of the emitter)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Another concept I've been experimenting with is a sort of &lt;b&gt;Tracking Window&lt;/b&gt; (or output/clipboard window) It's an additional (and optional) window that you can use to print out useful information. You can choose to print it as a static string. As a sort of clipboard/memory aid to help with Vector positions or pretty much any piece of info you may need to remember in runtime. If it were nothing more than that, it would pretty much be an in-editor notepad...So I added something I like to call "live-tracking" (or real-time tracking, or just tracking...) You can use the tracking feature to keep track of any property an object may have (positions, rotations, scale, volume, pitch, visbility etc.) the window uses a series of Slots that can be filled with one traceable object each. Most of it is already working, I'll have to spend some more time on it to add every little detail. Eventually I'd like to have each slot assessable and allow user input to change any of the properties that is being tracked by the window. You can see a sneak preview of it in the video below.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TB2Nj9sl4tI/AAAAAAAAA-M/DMBh43wkbBY/s1600/trackerwindow_scripteddoors.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TB2Nj9sl4tI/AAAAAAAAA-M/DMBh43wkbBY/s400/trackerwindow_scripteddoors.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5484695570203665106" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TB2Nj9sl4tI/AAAAAAAAA-M/DMBh43wkbBY/s1600/trackerwindow_scripteddoors.png"&gt;&lt;/a&gt;&lt;i&gt;The tracker window is tracking the positions of 3 objects in the scene.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The last thing I worked on today was a &lt;b&gt;basic scripting/event system&lt;/b&gt;. In both "Needle Juice" &amp;amp; "Over Night" the event code got really messy over time, requiring a lot more time to find anything...which is a complete waste of time, especially when you're nearing the end of a project. In order to prevent this from happening again I need to have a solid and clean system to handle events and scripts. So far I redesigned the TriggerVolume class used for any positional triggers and added support for Enter/Leave Volume events. To test the new system I made a (simple) script that opens and closes a door when the player approaches.&lt;br /&gt;&lt;br /&gt;All of the described features above are shown in the short video below. Make sure to turn on your sound, because the reverbvolume can only explain itself with sound ;)&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 width="400" height="300"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UiVqWwzyiNk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/UiVqWwzyiNk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The first sound you hear is that of a bar, the second is a bit more difficult to hear, it represents the streets just outside of that same bar. when you move through the door, the indoor sound will fade to a lower volume while the street ambient becomes more noticeable. &lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4920332614342336573?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4920332614342336573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/first-one-is-reverbvolume-as-seen-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4920332614342336573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4920332614342336573'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/first-one-is-reverbvolume-as-seen-in.html' title='Engine Update: Scripting, ReverbVolume &amp; Tracking Window'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/TB2NjhMFPvI/AAAAAAAAA-E/4wCmo7dichY/s72-c/ambientsounds_reverbvolume.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3393724800661199312</id><published>2010-06-12T23:00:00.007+02:00</published><updated>2010-06-12T23:06:56.461+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='Over Night'/><title type='text'>Over Night: In-game screenshots</title><content type='html'>&lt;div&gt;A collection of in-game screenshots taken during development of our project "Over Night".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP1nQ2cEiI/AAAAAAAAA8c/63eiBEc4QCg/s1600/overigeshots02.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP1nQ2cEiI/AAAAAAAAA8c/63eiBEc4QCg/s400/overigeshots02.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481995226327028258" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP1nQ2cEiI/AAAAAAAAA8c/63eiBEc4QCg/s1600/overigeshots02.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP1nQ2cEiI/AAAAAAAAA8c/63eiBEc4QCg/s1600/overigeshots02.png"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP2OqPXzSI/AAAAAAAAA9k/ODeP-U4K160/s1600/overview04.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP2OqPXzSI/AAAAAAAAA9k/ODeP-U4K160/s400/overview04.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481995903157390626" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP2OqPXzSI/AAAAAAAAA9k/ODeP-U4K160/s1600/overview04.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TBP2NzCcT2I/AAAAAAAAA9c/4Zi4WnH4-mA/s1600/overview03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/TBP2NzCcT2I/AAAAAAAAA9c/4Zi4WnH4-mA/s400/overview03.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481995888339210082" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TBP2NzCcT2I/AAAAAAAAA9c/4Zi4WnH4-mA/s1600/overview03.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP2NUo8cKI/AAAAAAAAA9U/irQEzO-7Pos/s1600/overview02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP2NUo8cKI/AAAAAAAAA9U/irQEzO-7Pos/s400/overview02.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481995880179200162" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP2NUo8cKI/AAAAAAAAA9U/irQEzO-7Pos/s1600/overview02.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TBP2MzHIjUI/AAAAAAAAA9M/2Kk3-As2jJ8/s1600/overview01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/TBP2MzHIjUI/AAAAAAAAA9M/2Kk3-As2jJ8/s400/overview01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481995871179017538" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/TBP2MzHIjUI/AAAAAAAAA9M/2Kk3-As2jJ8/s1600/overview01.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP2MnL7DwI/AAAAAAAAA9E/VtbIsKALNYc/s1600/ingameshots03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP2MnL7DwI/AAAAAAAAA9E/VtbIsKALNYc/s400/ingameshots03.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481995867977879298" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP2MnL7DwI/AAAAAAAAA9E/VtbIsKALNYc/s1600/ingameshots03.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TBP2CBpuZhI/AAAAAAAAA88/xE-XLFdIgwU/s1600/ingameshots02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TBP2CBpuZhI/AAAAAAAAA88/xE-XLFdIgwU/s400/ingameshots02.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481995686103639570" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TBP2CBpuZhI/AAAAAAAAA88/xE-XLFdIgwU/s1600/ingameshots02.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TBP19zNvSvI/AAAAAAAAA80/E0sCIPVI3NI/s1600/ingameshots01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TBP19zNvSvI/AAAAAAAAA80/E0sCIPVI3NI/s400/ingameshots01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481995613508684530" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TBP19zNvSvI/AAAAAAAAA80/E0sCIPVI3NI/s1600/ingameshots01.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP145sCMsI/AAAAAAAAA8s/zjNJQowqGUg/s1600/overigeshots03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP145sCMsI/AAAAAAAAA8s/zjNJQowqGUg/s400/overigeshots03.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481995529347019458" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP145sCMsI/AAAAAAAAA8s/zjNJQowqGUg/s1600/overigeshots03.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TBP1zi5EZ5I/AAAAAAAAA8k/3t3QqpTZOBA/s1600/overigeshots01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://4.bp.blogspot.com/_AoqEZhXDIS4/TBP1zi5EZ5I/AAAAAAAAA8k/3t3QqpTZOBA/s400/overigeshots01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481995437328328594" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/TBP1zi5EZ5I/AAAAAAAAA8k/3t3QqpTZOBA/s1600/overigeshots01.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&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/2942877753097296913-3393724800661199312?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3393724800661199312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/over-night-in-game-screenshots.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3393724800661199312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3393724800661199312'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/over-night-in-game-screenshots.html' title='Over Night: In-game screenshots'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/TBP1nQ2cEiI/AAAAAAAAA8c/63eiBEc4QCg/s72-c/overigeshots02.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3071450719576397144</id><published>2010-06-12T14:25:00.003+02:00</published><updated>2010-06-12T14:31:37.356+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='Over Night'/><title type='text'>Over Night: Official Trailer Released!</title><content type='html'>&lt;div&gt;The first official gameplay trailer of "Over Night" a game made in XNA. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The game was created within 8 weeks with a team of 4 students (and some additional outside help, see below for the full team setup)&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 width="400" height="300"&gt;&lt;param name="movie" value="http://www.youtube.com/v/oxqepcjOz4k&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;hd=1"&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/oxqepcjOz4k&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=oxqepcjOz4k"&gt;&lt;i&gt;direct link&lt;/i&gt;&lt;/a&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;b&gt;The Team:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mitch Manders (Design &amp;amp; Modeling)&lt;/div&gt;&lt;div&gt;Jorry Rosman (Concept Art &amp;amp; Textures)&lt;/div&gt;&lt;div&gt;Bas Babroek (Game Programming)&lt;/div&gt;&lt;div&gt;Tom Looman (Engine/Tech Programming)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Special Thanks to:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Paul van Gent (Audio)&lt;/div&gt;&lt;div&gt;Marvin Nooitgedacht (Video Editing)&lt;/div&gt;&lt;div&gt;Davy Jacobs (Animation)&lt;/div&gt;&lt;div&gt;Bo van Oord (Desert Eagle modeling, textures &amp;amp; animation)&lt;/div&gt;&lt;div&gt;Jeffrey van der Heul (Modeling)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-3071450719576397144?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3071450719576397144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/over-night-official-trailer-released.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3071450719576397144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3071450719576397144'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/over-night-official-trailer-released.html' title='Over Night: Official Trailer Released!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4242193480895519799</id><published>2010-06-11T15:30:00.002+02:00</published><updated>2010-06-11T15:39:15.371+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Over Night'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Over Night: Deadline reached!</title><content type='html'>We have finally reached the deadline of our project "Over Night". We had our final presentation (10min long trailer &amp;amp; making-of) yesterday with some time for others to actually step in and play the game themselves. We're very pleased with the results with only 8 weeks development. Below is a first (dev) video of the game, the trailer will be uploaded tonight...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Video: (Be sure you watch it in HD)&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="300"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qiP9qsv5bX8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&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/qiP9qsv5bX8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Direct link: &lt;/i&gt;&lt;i&gt;&lt;a href="http://www.youtube.com/watch?v=qiP9qsv5bX8"&gt;http://www.youtube.com/watch?v=qiP9qsv5bX8&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More development videos will be online once I get home.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4242193480895519799?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4242193480895519799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/over-night-deadline-reached.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4242193480895519799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4242193480895519799'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/06/over-night-deadline-reached.html' title='Over Night: Deadline reached!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-6855003076874297054</id><published>2010-05-31T02:21:00.002+02:00</published><updated>2010-05-31T02:38:46.070+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Console'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Engine Update: Major Editor/Gizmo Updates</title><content type='html'>I've spend some time adding new features to the editor and gizmo to increase overall usability and development speed. The lack of (gizmo)precision among other things started to bother me and was slowing down development of our prototype (only 10 days left!) I've compiled a short list of the most significant changes and additions and turned it into a small video. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="280"&gt;&lt;param name="movie" value="http://www.youtube.com/v/AUDntOX51IA&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&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/AUDntOX51IA&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="280"&gt;&lt;/embed&gt;&lt;/object&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&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/2942877753097296913-6855003076874297054?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/6855003076874297054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/engine-update-major-editorgizmo-updates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6855003076874297054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6855003076874297054'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/engine-update-major-editorgizmo-updates.html' title='Engine Update: Major Editor/Gizmo Updates'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3961152533706556991</id><published>2010-05-28T03:21:00.005+02:00</published><updated>2010-05-28T03:32:09.881+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='DPSF'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='Particles'/><title type='text'>Dust Particles with Lights &amp; Shadows [WIP]</title><content type='html'>About time for another video, isn't it? We thought it would be cool to have some kind of dust particles floating around near the windows in our game, so I started experimenting with dust + lit particle effects. Unfortunately the DPSF particles won't receive any of the Sunburn lighting calculations, so I made a basic particle system specifically for the dust trails. Currently they receive light and can cast shadows etc. The effect is a bit exaggerated to create a lightbeam effect.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="280"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FrxV0S9q1Qc&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&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/FrxV0S9q1Qc&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="280"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;Be sure to watch it in HD if you'd like to see any dust at all! :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-3961152533706556991?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3961152533706556991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/dust-particles-with-lights-shadows-wip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3961152533706556991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3961152533706556991'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/dust-particles-with-lights-shadows-wip.html' title='Dust Particles with Lights &amp; Shadows [WIP]'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-5092752011151265143</id><published>2010-05-27T04:20:00.004+02:00</published><updated>2010-05-27T20:49:10.702+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='BEPU'/><title type='text'>Video: Reflection &amp; Refraction + FluidVolumes</title><content type='html'>I just finished a short sample video that demonstrates another combination of Sunburn + BEPU. The video contains both the Reflection/Refraction sample from &lt;a href="http://www.synapsegaming.com/"&gt;Sunburn &lt;/a&gt;and the FluidVolume feature that's part of &lt;a href="http://www.bepu-games.com/BEPUphysics/index.html"&gt;BEPUphysics&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;object width="400" height="280"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2PJzfXcXmsk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/2PJzfXcXmsk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="280"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(Sorry for the first glitched second of the video, it happend when Youtube converted the video)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On a side note, we've made some amazing progress with our upcoming game "Over Night" all footage/development videos will be released in about 2 weeks. We have been invited by Microsoft (NL) to pitch a demo once we have finished our prototype! We're very excited about that of course :)&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/2942877753097296913-5092752011151265143?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/5092752011151265143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/video-reflection-refraction.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5092752011151265143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5092752011151265143'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/video-reflection-refraction.html' title='Video: Reflection &amp; Refraction + FluidVolumes'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3002073781690001526</id><published>2010-05-16T01:02:00.006+02:00</published><updated>2010-05-16T01:26:26.897+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='character'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='collision'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='BEPU'/><title type='text'>BEPU with Sunburn integration Source Available!</title><content type='html'>The sample project is finished! :) The source download link is available below. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A quick rundown of todays progress. Multi-threading got added (very easy thanks to BEPU) Cleaned up the code to hopefully help you quickly understand one of the possible ways to fix and maintain a relationship between your physics &amp;amp; your visuals. Spacebar will spawn a lot of spheres into the scene and left/right button will shoot sphere(s) from your current location. Leave your Feedback, Questions or just your thoughts in the comments section below ;)&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;Image:&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S-8pDiw5M8I/AAAAAAAAA8U/dxF5GX7uGD0/s1600/Sunburn_BEPUphysics+2010-05-16+00-59-11-29.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/S-8pDiw5M8I/AAAAAAAAA8U/dxF5GX7uGD0/s400/Sunburn_BEPUphysics+2010-05-16+00-59-11-29.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5471637213126669250" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;b&gt;What's inside?&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;* One of the possible ways to combine your physics with your visuals.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;* Commented lines explaining the code required to setup BEPU in your Sunburn project&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;* A basic scene (default start kit from Sunburn) with some additional dynamic objects&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;* Multi-threaded physics&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;* A ragdoll&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;* DebugDrawer to visualize boundingboxes&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;* Actor class that combines Entity &amp;amp; SceneObject&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;The "Blades" mesh isn't using his own dynamic collision yet. May be something for a future release ;) &lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;Don't hesitate to report any bugs or other suggestions...&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Source link &lt;/b&gt;&lt;a href="http://dl.dropbox.com/u/3322271/BEPUphysics_Sunburn%28v1.0%29.rar"&gt;&lt;b&gt;HERE&lt;/b&gt;&lt;/a&gt;&lt;b&gt;. Enjoy!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(&lt;a href="http://www.synapsegaming.com/"&gt;Sunburn &lt;/a&gt;is required to run the sample) &lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;i&gt;More info on &lt;a href="http://bepu-games.com/BEPUphysics/index.html"&gt;BEPUphysics here.&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&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/2942877753097296913-3002073781690001526?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3002073781690001526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/bepu-with-sunburn-integration-source.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3002073781690001526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3002073781690001526'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/bepu-with-sunburn-integration-source.html' title='BEPU with Sunburn integration Source Available!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/S-8pDiw5M8I/AAAAAAAAA8U/dxF5GX7uGD0/s72-c/Sunburn_BEPUphysics+2010-05-16+00-59-11-29.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-11949105307943887</id><published>2010-05-15T02:55:00.004+02:00</published><updated>2010-05-15T03:59:07.470+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='collision'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='BEPU'/><title type='text'>Sunburn with BEPU physics: Day 1.</title><content type='html'>&lt;div&gt;I've started working on a sample combining BEPU physics with the visuals of Sunburn. Almost everything is working so far, the code will need some minor cleanups before I'll release it. The purpose of this sample is demonstrating one of the possible techniques you can use to combine the physics with the visuals. The source is not yet available. I hope to have it ready &amp;amp; uploaded before the end of the weekend.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For now here are some images &amp;amp; a video :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S-34mJx_oYI/AAAAAAAAA8E/vNda1GxmKWU/s1600/Sunburn_BEPUphysics+2010-05-15+00-51-50-71.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S-34mJx_oYI/AAAAAAAAA8E/vNda1GxmKWU/s400/Sunburn_BEPUphysics+2010-05-15+00-51-50-71.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5471302456669348226" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S-34r7lUF-I/AAAAAAAAA8M/Qd1BHYnluWQ/s1600/Sunburn_BEPUphysics+2010-05-15+01-31-13-60.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S-34r7lUF-I/AAAAAAAAA8M/Qd1BHYnluWQ/s400/Sunburn_BEPUphysics+2010-05-15+01-31-13-60.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5471302555937282018" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The video is using the default Sunburn sample LightRig.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="280"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7mVbvoGbElk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&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/7mVbvoGbElk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="280"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-11949105307943887?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/11949105307943887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/sunburn-with-bepu-physics-day-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/11949105307943887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/11949105307943887'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/sunburn-with-bepu-physics-day-1.html' title='Sunburn with BEPU physics: Day 1.'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/S-34mJx_oYI/AAAAAAAAA8E/vNda1GxmKWU/s72-c/Sunburn_BEPUphysics+2010-05-15+00-51-50-71.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-5106582131919640412</id><published>2010-05-05T15:06:00.003+02:00</published><updated>2010-05-05T15:12:14.230+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Sample'/><title type='text'>3D XNA Gizmo v0.2.0 Released!</title><content type='html'>A new update has arrived. You can download the latest release &lt;a href="http://xnagizmo.codeplex.com/"&gt;HERE&lt;/a&gt;. The most notable addition is &lt;b&gt;rotation&lt;/b&gt; and &lt;b&gt;scale &lt;/b&gt;functionality that's been added to the gizmo. Switching between the different modes is done using the keys 1,2,3 on your keyboard. &lt;a href="http://xnagizmo.codeplex.com/"&gt;Download &lt;/a&gt;the sample and get started!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S-FuZAhHwOI/AAAAAAAAA78/As37rvajXiU/s1600/XNAGizmoSample+2010-05-05+15-11-35-80.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S-FuZAhHwOI/AAAAAAAAA78/As37rvajXiU/s400/XNAGizmoSample+2010-05-05+15-11-35-80.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5467772798519197922" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&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/2942877753097296913-5106582131919640412?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/5106582131919640412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/3d-xna-gizmo-v020-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5106582131919640412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5106582131919640412'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/3d-xna-gizmo-v020-released.html' title='3D XNA Gizmo v0.2.0 Released!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/S-FuZAhHwOI/AAAAAAAAA78/As37rvajXiU/s72-c/XNAGizmoSample+2010-05-05+15-11-35-80.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-2718776213705186391</id><published>2010-05-02T20:43:00.003+02:00</published><updated>2010-05-02T21:16:13.457+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><title type='text'>Game Update: Storage Room Video!</title><content type='html'>Storage Room WIP video is done! You can see most of the (textured) storage room models we have so far (without the desk etc. the artist is currently working on it) &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will have more in-game footage tomorrow (TV, updated phone camera etc.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For now here's the video:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="285"&gt;&lt;param name="movie" value="http://www.youtube.com/v/83mLsbXwk9U&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/83mLsbXwk9U&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="285"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&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/2942877753097296913-2718776213705186391?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/2718776213705186391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/game-update-storage-room-video.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2718776213705186391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2718776213705186391'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/05/game-update-storage-room-video.html' title='Game Update: Storage Room Video!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3038175202132480488</id><published>2010-04-30T20:36:00.005+02:00</published><updated>2010-04-30T20:48:10.684+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Camera'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Game Update: Dual scene feature working!</title><content type='html'>&lt;div&gt;Hi,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;One of our most important mechanics is now finally working! It's the smartphone camera that can see a different world/dimension. By using the phone's built-in camera the player can uncover hidden objects and hints throughout the world. In addition, the camera can see ghostly appearances that are invisible to the naked eye. You can see why it's a big part of our game. So I'm glad that we got it working today!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The phone will see some things that the player normally can't. A player might wonder why a certain light isn't working, if he pulls out his camera he will soon find out that the wires have been cut, which is only visible on his phone's screen. This is just an example of the differences between the two worlds. With the current implementation the scenes can use different models and textures we can use this to keep the player engaged and wondering what has happened and how he can get out...(story will be explained later on) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S9skdj8p2uI/AAAAAAAAA7c/UxEDAHmh-OE/s1600/TechDemos+2010-04-30+20-24-36-94.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/S9skdj8p2uI/AAAAAAAAA7c/UxEDAHmh-OE/s400/TechDemos+2010-04-30+20-24-36-94.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5466002663028677346" style="cursor: pointer; width: 400px; height: 224px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;For the time being I rendered the camera footage to a spritebatch (for debugging), but it's already working on a 3d mesh (as texture) You can clearly notice that the phone (topleft) can see something that the player can't normally see with his own eyes.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S9slIc3gZDI/AAAAAAAAA7k/vsM0xYyHj7o/s1600/TechDemos+2010-04-30+20-24-41-49.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S9slIc3gZDI/AAAAAAAAA7k/vsM0xYyHj7o/s400/TechDemos+2010-04-30+20-24-41-49.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5466003399862412338" style="cursor: pointer; width: 400px; height: 224px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Somethings can only be seen with your own eyes...&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S9slfybaMZI/AAAAAAAAA7s/g1e9CYTTXHY/s1600/TechDemos+2010-04-30+20-24-52-06.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S9slfybaMZI/AAAAAAAAA7s/g1e9CYTTXHY/s400/TechDemos+2010-04-30+20-24-52-06.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5466003800787136914" style="cursor: pointer; width: 400px; height: 224px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;All objects visible while in Editmode to place objects and debug a lot easier.&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-3038175202132480488?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3038175202132480488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/04/game-update-dual-scene-feature-working.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3038175202132480488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3038175202132480488'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/04/game-update-dual-scene-feature-working.html' title='Game Update: Dual scene feature working!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/S9skdj8p2uI/AAAAAAAAA7c/UxEDAHmh-OE/s72-c/TechDemos+2010-04-30+20-24-36-94.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3688036935961820191</id><published>2010-04-25T16:32:00.008+02:00</published><updated>2010-04-25T21:00:08.754+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Update: Game &amp; Engine features</title><content type='html'>&lt;div&gt;&lt;div&gt;It's time for another update. Got a lot of work done yesterday, and I'd like to share it with you guys. First off, the Gizmo finally got the features it deserved. Rotation/Scale feature are now working properly (images below)&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S9SNladsc_I/AAAAAAAAA7U/7z6xa8OIojc/s1600/TechDemos+2010-04-25+01-38-18-41.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/S9SNladsc_I/AAAAAAAAA7U/7z6xa8OIojc/s400/TechDemos+2010-04-25+01-38-18-41.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5464147921805800434" style="cursor: pointer; width: 400px; height: 224px; " /&gt;&lt;/a&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S9SNladsc_I/AAAAAAAAA7U/7z6xa8OIojc/s1600/TechDemos+2010-04-25+01-38-18-41.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S9SNiMKQ-yI/AAAAAAAAA7M/gpkW8AhncPg/s1600/TechDemos+2010-04-25+01-36-09-03.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S9SNiMKQ-yI/AAAAAAAAA7M/gpkW8AhncPg/s400/TechDemos+2010-04-25+01-36-09-03.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5464147866426604322" style="cursor: pointer; width: 400px; height: 224px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next up is a long overdue issue that wasn't bothering the frame-rate at all so I post-pone'ed it for quite a while. When loading a scene and reading all object-data stored inside Xml, a copy was hidden and maintained in the background (while it shouldn't even exist) In a case of 500 objects/components this would mean another 500 hidden in the background. I redesigned the loading/saving of Xml data and will no longer keep unwanted objects in the background.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Game Update&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As I mentioned earlier, we're working on a new project called "Over Night". My role is Engine programmer, so I make sure everything we need for our game is there for the Game programmer to work with. A few features that I added last week are listed below and are shown in the video...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Character (movement etc, thanks to BEPU for their base character class)&lt;/div&gt;&lt;div&gt;- Scene switching&lt;/div&gt;&lt;div&gt;- Monitor (ingame security camera footage shown on a TV monitor)&lt;/div&gt;&lt;div&gt;- Story notes (story driven notes and hints on the wall, helping the player with solving the story puzzle)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="285"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UddNHR3I5D0&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/UddNHR3I5D0&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="285"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&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/2942877753097296913-3688036935961820191?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3688036935961820191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/04/its-time-for-another-update.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3688036935961820191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3688036935961820191'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/04/its-time-for-another-update.html' title='Update: Game &amp; Engine features'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AoqEZhXDIS4/S9SNladsc_I/AAAAAAAAA7U/7z6xa8OIojc/s72-c/TechDemos+2010-04-25+01-38-18-41.png' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7802659445595077281</id><published>2010-04-17T03:24:00.005+02:00</published><updated>2010-04-17T03:30:09.116+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Game Update: Scenes &amp; 3D Audio</title><content type='html'>Finally some (two) screenshots of the scenes. Shown below are the storage and security room both part of our upcoming game. In the meanwhile I've implemented 3D audio for positional sound effects throughout the scenes, screenshot included.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S8kOXQ-J66I/AAAAAAAAA60/E7uZFdVuB1Q/s1600/storageroom01.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S8kOXQ-J66I/AAAAAAAAA60/E7uZFdVuB1Q/s400/storageroom01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5460911816018881442" style="cursor: pointer; width: 400px; height: 224px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S8kOaAeWGoI/AAAAAAAAA68/RvzapoYYE0w/s1600/securityroom01.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S8kOaAeWGoI/AAAAAAAAA68/RvzapoYYE0w/s400/securityroom01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5460911863130102402" style="cursor: pointer; width: 400px; height: 224px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S8kOchWRAoI/AAAAAAAAA7E/eIu5sjneBxk/s1600/positional_audio01.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S8kOchWRAoI/AAAAAAAAA7E/eIu5sjneBxk/s400/positional_audio01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5460911906314322562" style="cursor: pointer; width: 400px; height: 224px; " /&gt;&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/2942877753097296913-7802659445595077281?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7802659445595077281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/04/game-update-scenes-3d-audio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7802659445595077281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7802659445595077281'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/04/game-update-scenes-3d-audio.html' title='Game Update: Scenes &amp; 3D Audio'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AoqEZhXDIS4/S8kOXQ-J66I/AAAAAAAAA60/E7uZFdVuB1Q/s72-c/storageroom01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-334405766755438990</id><published>2010-04-09T22:54:00.002+02:00</published><updated>2010-04-09T23:10:44.414+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>On The Horizon: "Over Night"</title><content type='html'>&lt;div&gt;We've started our new project this week. It's going to be a horror game. And like last time, I took on the role of programmer. Luckily I now have a fellow programmer in my team, so we can split most of the programming load. My role will consist primarily of Engine programming and profiling to optimize the game's performance, he will take care of the game programming for the next 8 weeks. Like last time I'll try to post regular updates about the game/engine. Mostly programming related of course, with some images &amp;amp; video as usual.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A short summary of the roadmap:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- &lt;b&gt;Managers&lt;/b&gt;, &lt;i&gt;single purpose managers for tasks like physics, audio, content etc.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;- &lt;b&gt;Multi-threading&lt;/b&gt;,&lt;i&gt; a low-priority task. Will only be implemented if the need for more processer power arises.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;- &lt;b&gt;Additional Editor features&lt;/b&gt;. &lt;i&gt;The current editor is pretty basic, and I'll be adding some additional features to aid rapid development.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;- &lt;b&gt;Destruction&lt;/b&gt;.&lt;i&gt; Although it's not a feature for our current project, I do have some plans for creating a basic destruction engine in the near future.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;- &lt;b&gt;XML Tweaking&lt;/b&gt;,&lt;i&gt; a feature currently in the fridge. It might proof very useful for quick tweaking of values.&lt;/i&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, this is not all I'll be doing over the next 8 weeks. We have some pretty ambitious plans for this project, and I'm afraid I'll be spending a lot of time profiling and optimizing our game to make it run on an acceptable framerate...   &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;b&gt;SgMotion v1.1 released&lt;/b&gt; last week. Most notable change is the Deferred modelprocessor. Download link and more info can be found at the &lt;a href="http://www.synapsegaming.com/blogs/community_blogs/archive/2010/03/31/sgmotion-v1-1-released.aspx"&gt;Community Blogpost&lt;/a&gt; I've made over at &lt;a href="http://www.synapsegaming.com/"&gt;SynapseGaming.com&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/2942877753097296913-334405766755438990?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/334405766755438990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/04/on-horizon-over-night.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/334405766755438990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/334405766755438990'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/04/on-horizon-over-night.html' title='On The Horizon: &quot;Over Night&quot;'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-2046344561932299652</id><published>2010-03-26T23:19:00.010+01:00</published><updated>2010-03-27T02:33:20.267+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><title type='text'>Game Update: Deadline Today! Final Screenshots &amp; Video</title><content type='html'>We've finally reached the project deadline. We've presented our game to the teachers and fellow students today. We can be pleased with the results :) As a (probably) last update of this game for now, I've included some additional screenshots for your viewing pleasure. A video will be compiled and added later on...&lt;b&gt;(Update: As promised, the video can be found at the bottom)&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S60ztIv_wcI/AAAAAAAAA5s/xWYdFPsEtXU/s1600/Test+Environment+2010-03-26+03-19-50-55.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S60ztIv_wcI/AAAAAAAAA5s/xWYdFPsEtXU/s400/Test+Environment+2010-03-26+03-19-50-55.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5453071574351462850" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S60z0OtxQqI/AAAAAAAAA50/QlntFYoiPcw/s1600/Test+Environment+2010-03-26+03-20-40-83.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/S60z0OtxQqI/AAAAAAAAA50/QlntFYoiPcw/s400/Test+Environment+2010-03-26+03-20-40-83.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5453071696211821218" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S60z7b0EozI/AAAAAAAAA58/BfD7DUUTyOA/s1600/Apartment+(5).png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/S60z7b0EozI/AAAAAAAAA58/BfD7DUUTyOA/s400/Apartment+(5).png" border="0" alt="" id="BLOGGER_PHOTO_ID_5453071819987002162" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S600Fma0ENI/AAAAAAAAA6E/2s3HRjCrTw4/s1600/Apartment+(9).png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S600Fma0ENI/AAAAAAAAA6E/2s3HRjCrTw4/s400/Apartment+(9).png" border="0" alt="" id="BLOGGER_PHOTO_ID_5453071994632540370" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S600ZLHFj6I/AAAAAAAAA6M/KV_y-OfmTu0/s1600/Apartment+(11).png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/S600ZLHFj6I/AAAAAAAAA6M/KV_y-OfmTu0/s400/Apartment+(11).png" border="0" alt="" id="BLOGGER_PHOTO_ID_5453072330899427234" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update: Video Added!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="285"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7fAlxt4nUyU&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;hd=1"&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/7fAlxt4nUyU&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="285"&gt;&lt;/embed&gt;&lt;/object&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/2942877753097296913-2046344561932299652?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/2046344561932299652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-deadline-today-final.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2046344561932299652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2046344561932299652'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-deadline-today-final.html' title='Game Update: Deadline Today! Final Screenshots &amp; Video'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/S60ztIv_wcI/AAAAAAAAA5s/xWYdFPsEtXU/s72-c/Test+Environment+2010-03-26+03-19-50-55.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-2625087183318493151</id><published>2010-03-23T02:48:00.005+01:00</published><updated>2010-03-23T03:04:58.627+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><title type='text'>Game Update: Bedroom + Reflection!</title><content type='html'>&lt;div&gt;Another game update. Not much to say, just watch... :)&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://4.bp.blogspot.com/_AoqEZhXDIS4/S6geemfzsBI/AAAAAAAAA4w/DIwFgNIh2Jg/s1600-h/bedroom01.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/S6geemfzsBI/AAAAAAAAA4w/DIwFgNIh2Jg/s400/bedroom01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5451640860010852370" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;updated models and diffuse added. Normal + specular available soon ;) The lights use emmissive coloring.&lt;/i&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/_AoqEZhXDIS4/S6ge1W6nOVI/AAAAAAAAA44/RkDBGqkmlWM/s1600-h/bedroom02.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S6ge1W6nOVI/AAAAAAAAA44/RkDBGqkmlWM/s400/bedroom02.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5451641250965305682" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Closet used for one of our story events...&lt;/i&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://2.bp.blogspot.com/_AoqEZhXDIS4/S6gfAmZdGII/AAAAAAAAA5A/5QcVAnsRHi4/s1600-h/reflection02.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6gfAmZdGII/AAAAAAAAA5A/5QcVAnsRHi4/s400/reflection02.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5451641444099758210" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6gfAmZdGII/AAAAAAAAA5A/5QcVAnsRHi4/s1600-h/reflection02.png"&gt;&lt;/a&gt;&lt;i&gt;Reflection! It won't be used for any gameplay/storytelling aspects. It's really just a graphical gimmick...it caused no performance issues so far (game running on 40 fps on laptop) &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;That's it for now. We still have till Friday to complete this project. Maybe I can compile a short video of gameplay somewhere this week. &lt;/span&gt;&lt;/i&gt;&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 class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-2625087183318493151?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/2625087183318493151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-bedroom-reflection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2625087183318493151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2625087183318493151'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-bedroom-reflection.html' title='Game Update: Bedroom + Reflection!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AoqEZhXDIS4/S6geemfzsBI/AAAAAAAAA4w/DIwFgNIh2Jg/s72-c/bedroom01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7040703651962953121</id><published>2010-03-21T22:47:00.006+01:00</published><updated>2010-03-21T22:58:37.492+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><title type='text'>Game Update: Apartment Textures!</title><content type='html'>&lt;div&gt;The artist did a great job with the apartment textures. They look pretty sweet... :)&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://1.bp.blogspot.com/_AoqEZhXDIS4/S6aUxGHka5I/AAAAAAAAA4o/NojdQGFOGlc/s1600-h/walkthrough_textured+(4).png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/S6aUxGHka5I/AAAAAAAAA4o/NojdQGFOGlc/s400/walkthrough_textured+(4).png" border="0" alt="" id="BLOGGER_PHOTO_ID_5451207970155424658" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S6aUxGHka5I/AAAAAAAAA4o/NojdQGFOGlc/s1600-h/walkthrough_textured+(4).png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6aUtIPBWrI/AAAAAAAAA4g/8rMjq-2zflE/s1600-h/walkthrough_textured+(3).png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6aUtIPBWrI/AAAAAAAAA4g/8rMjq-2zflE/s400/walkthrough_textured+(3).png" border="0" alt="" id="BLOGGER_PHOTO_ID_5451207902004075186" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6aUtIPBWrI/AAAAAAAAA4g/8rMjq-2zflE/s1600-h/walkthrough_textured+(3).png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6aUenG_iTI/AAAAAAAAA4Y/bMDQuAbOafo/s1600-h/walkthrough_textured+(2).png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6aUenG_iTI/AAAAAAAAA4Y/bMDQuAbOafo/s400/walkthrough_textured+(2).png" border="0" alt="" id="BLOGGER_PHOTO_ID_5451207652593862962" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6aUenG_iTI/AAAAAAAAA4Y/bMDQuAbOafo/s1600-h/walkthrough_textured+(2).png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6aUa09iYUI/AAAAAAAAA4Q/kWbdVP_DpGc/s1600-h/walkthrough_textured+(1).png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6aUa09iYUI/AAAAAAAAA4Q/kWbdVP_DpGc/s400/walkthrough_textured+(1).png" border="0" alt="" id="BLOGGER_PHOTO_ID_5451207587592823106" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6aUa09iYUI/AAAAAAAAA4Q/kWbdVP_DpGc/s1600-h/walkthrough_textured+(1).png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6aUa09iYUI/AAAAAAAAA4Q/kWbdVP_DpGc/s1600-h/walkthrough_textured+(1).png"&gt;&lt;/a&gt;We have till Friday to deliver a good 'Serious Game'. We have a very busy week ahead of us, I'll try to update the Blog with screenshots &amp;amp; videos when new assets/mechanics are completed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Currently my laptop can run the game with 30-50 FPS (1024x576, AAx2) but has the tendency to overheat (100c+) when running GPU intense applications...So final recordings will have to take place on my PC. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&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/2942877753097296913-7040703651962953121?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7040703651962953121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-apartment-textures.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7040703651962953121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7040703651962953121'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-apartment-textures.html' title='Game Update: Apartment Textures!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/S6aUxGHka5I/AAAAAAAAA4o/NojdQGFOGlc/s72-c/walkthrough_textured+(4).png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4083282007983923026</id><published>2010-03-17T21:39:00.007+01:00</published><updated>2010-03-17T21:55:20.512+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Camera'/><title type='text'>Game Update: Models</title><content type='html'>The models arrived about an hour ago :) They look pretty cool. Quickly imported them into the scene and setup some basic lighting. Textures should be ready by the end of the week...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Recorded some footage of our game intro. The video is on the bottom of this post. On a side note, most of the voice acting is completed (thanks to Dutchtraveller for his voice-acting work as "The junkie") &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Images:&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/_AoqEZhXDIS4/S6E-kVASfKI/AAAAAAAAA4A/ttf0zY1R_cg/s1600-h/Test+Environment+2010-03-17+21-20-01-27.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S6E-kVASfKI/AAAAAAAAA4A/ttf0zY1R_cg/s400/Test+Environment+2010-03-17+21-20-01-27.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5449705817929579682" style="cursor: pointer; width: 400px; height: 225px; " /&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://2.bp.blogspot.com/_AoqEZhXDIS4/S6E-rMQmYDI/AAAAAAAAA4I/OPQuqqdVcKU/s1600-h/Test+Environment+2010-03-17+21-20-45-49.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S6E-rMQmYDI/AAAAAAAAA4I/OPQuqqdVcKU/s400/Test+Environment+2010-03-17+21-20-45-49.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5449705935841157170" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The white text is part of the intro and is not visible once the game is actually playing.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;Video:&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ouwJc28a44o&amp;amp;hl=en&amp;amp;fs=1"&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/ouwJc28a44o&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4083282007983923026?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4083282007983923026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-models.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4083282007983923026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4083282007983923026'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-models.html' title='Game Update: Models'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/S6E-kVASfKI/AAAAAAAAA4A/ttf0zY1R_cg/s72-c/Test+Environment+2010-03-17+21-20-01-27.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-53546731947454789</id><published>2010-03-14T20:07:00.007+01:00</published><updated>2010-03-14T20:18:34.188+01:00</updated><title type='text'>Game Update: Apartment (Level)</title><content type='html'>&lt;div&gt;As promised, the first images of our work in progress apartment ( like last time, models are done by our awesome artist ) Images are taken inside of Max. In-game renders should be ready by tomorrow. &lt;/div&gt;&lt;div&gt;In the meanwhile I've been doing some work for our intro and menu. I'll wait till the models arrive (most likely tomorrow) before creating a video that I'll release to the public...So stay tuned!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S501fXNvxeI/AAAAAAAAA3w/0H7z4ZRTnew/s1600-h/Knipsel2.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 184px;" src="http://4.bp.blogspot.com/_AoqEZhXDIS4/S501fXNvxeI/AAAAAAAAA3w/0H7z4ZRTnew/s400/Knipsel2.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5448569937112057314" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Part of the livingroom...&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S501fXNvxeI/AAAAAAAAA3w/0H7z4ZRTnew/s1600-h/Knipsel2.PNG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S501bokz34I/AAAAAAAAA3o/BGoTckxQHa8/s1600-h/keuken_afzuiger_kookplaat_kookeiland.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 233px;" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/S501bokz34I/AAAAAAAAA3o/BGoTckxQHa8/s400/keuken_afzuiger_kookplaat_kookeiland.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5448569873052721026" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Part of the kitchen...&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S501bokz34I/AAAAAAAAA3o/BGoTckxQHa8/s1600-h/keuken_afzuiger_kookplaat_kookeiland.PNG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S501Vy6M2QI/AAAAAAAAA3g/eCTw7ZqMtKM/s1600-h/kast_slaapkamer.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 288px;" src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S501Vy6M2QI/AAAAAAAAA3g/eCTw7ZqMtKM/s400/kast_slaapkamer.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5448569772747577602" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Closet for the bedroom...&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S501Vy6M2QI/AAAAAAAAA3g/eCTw7ZqMtKM/s1600-h/kast_slaapkamer.PNG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S501N519a-I/AAAAAAAAA3Y/rQQY-Xf0GvI/s1600-h/keuken_achterzijde.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 218px;" src="http://4.bp.blogspot.com/_AoqEZhXDIS4/S501N519a-I/AAAAAAAAA3Y/rQQY-Xf0GvI/s400/keuken_achterzijde.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5448569637169884130" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S501N519a-I/AAAAAAAAA3Y/rQQY-Xf0GvI/s1600-h/keuken_achterzijde.PNG"&gt;&lt;/a&gt;&lt;i&gt;Kitchen...&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S501ib_RBzI/AAAAAAAAA34/qn13sA2hj7g/s1600-h/badkamer_smooth.PNG"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S501ib_RBzI/AAAAAAAAA34/qn13sA2hj7g/s400/badkamer_smooth.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5448569989933106994" style="cursor: pointer; width: 400px; height: 274px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Bathroom...&lt;/i&gt;&lt;/div&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/2942877753097296913-53546731947454789?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/53546731947454789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-apartment-level.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/53546731947454789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/53546731947454789'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-apartment-level.html' title='Game Update: Apartment (Level)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AoqEZhXDIS4/S501fXNvxeI/AAAAAAAAA3w/0H7z4ZRTnew/s72-c/Knipsel2.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8586180871526793390</id><published>2010-03-14T01:22:00.006+01:00</published><updated>2010-03-14T01:42:36.782+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Game'/><category scheme='http://www.blogger.com/atom/ns#' term='character'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><title type='text'>Game Update: Character</title><content type='html'>Finally some screens from our upcoming (serious) game. Starting with our character. Model is created by one of the artists in my team (Bo) The apartment is merely a placeholder ;) More screens and a video will follow very soon (We're in the last week of development already!) &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S5wt_wEcJbI/AAAAAAAAA3A/lPD52sze2vQ/s1600-h/Test+Environment+2010-03-14+01-21-08-92.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S5wt_wEcJbI/AAAAAAAAA3A/lPD52sze2vQ/s400/Test+Environment+2010-03-14+01-21-08-92.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5448280222469989810" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Character inside the editor...&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S5wuX5_GP7I/AAAAAAAAA3I/P9vDuAFBw_Q/s1600-h/Test+Environment+2010-03-14+00-45-02-21.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/S5wuX5_GP7I/AAAAAAAAA3I/P9vDuAFBw_Q/s400/Test+Environment+2010-03-14+00-45-02-21.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5448280637448798130" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Shadows... :)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S5wu7STLMHI/AAAAAAAAA3Q/gyIU0NHJ-KE/s1600-h/Test+Environment+2010-03-14+01-32-53-35.png"&gt;&lt;img src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S5wu7STLMHI/AAAAAAAAA3Q/gyIU0NHJ-KE/s400/Test+Environment+2010-03-14+01-32-53-35.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5448281245270880370" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;camera position...&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-8586180871526793390?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8586180871526793390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-character.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8586180871526793390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8586180871526793390'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/game-update-character.html' title='Game Update: Character'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AoqEZhXDIS4/S5wt_wEcJbI/AAAAAAAAA3A/lPD52sze2vQ/s72-c/Test+Environment+2010-03-14+01-21-08-92.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-6213407540437079345</id><published>2010-03-06T02:02:00.005+01:00</published><updated>2010-03-06T02:36:36.975+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tweaking'/><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Edit/Play'/><category scheme='http://www.blogger.com/atom/ns#' term='Camera'/><title type='text'>Engine Update: Cinematic Controls</title><content type='html'>...Another feature for the Edit/Play-mode. Cinematic controls can manipulate camera behavior. Our next game will feature some cinematic moments (more on that later) so having a tool to tweak positions and  movement speed quickly and visually can be really helpful. Most of it is already working, additional features will be implemented only if the need arises. To demonstrate I recorded a short demo: &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=p6sf_obSBgw"&gt;(Watch full-screen!)&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="400" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/p6sf_obSBgw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/p6sf_obSBgw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Note: The controllers are saved and maintained like any other object in the scene.&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-6213407540437079345?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/6213407540437079345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/cinematic-controls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6213407540437079345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6213407540437079345'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/cinematic-controls.html' title='Engine Update: Cinematic Controls'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8287432792141181744</id><published>2010-03-04T03:06:00.006+01:00</published><updated>2010-03-04T03:14:42.135+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><title type='text'>Engine Update: Materials in Sunburn</title><content type='html'>More screenshots!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S48V-MjyegI/AAAAAAAAA2g/YCzng-ZG9kg/s1600-h/Test+Environment+2010-03-04+02-41-35-92.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://4.bp.blogspot.com/_AoqEZhXDIS4/S48V-MjyegI/AAAAAAAAA2g/YCzng-ZG9kg/s400/Test+Environment+2010-03-04+02-41-35-92.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5444594632781625858" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S48V-MjyegI/AAAAAAAAA2g/YCzng-ZG9kg/s1600-h/Test+Environment+2010-03-04+02-41-35-92.png"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S48V-MjyegI/AAAAAAAAA2g/YCzng-ZG9kg/s1600-h/Test+Environment+2010-03-04+02-41-35-92.png"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S48WDIP8ONI/AAAAAAAAA2o/kVjY9vPprTA/s1600-h/Test+Environment+2010-03-04+02-45-31-72.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S48WDIP8ONI/AAAAAAAAA2o/kVjY9vPprTA/s400/Test+Environment+2010-03-04+02-45-31-72.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5444594717523982546" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S48WDIP8ONI/AAAAAAAAA2o/kVjY9vPprTA/s1600-h/Test+Environment+2010-03-04+02-45-31-72.png"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/S48WI7SXx5I/AAAAAAAAA2w/ODlmE-9JGgs/s1600-h/Test+Environment+2010-03-04+02-49-03-88.png"&gt;&lt;img src="http://4.bp.blogspot.com/_AoqEZhXDIS4/S48WI7SXx5I/AAAAAAAAA2w/ODlmE-9JGgs/s400/Test+Environment+2010-03-04+02-49-03-88.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5444594817123731346" style="cursor: pointer; width: 400px; height: 225px; " /&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://4.bp.blogspot.com/_AoqEZhXDIS4/S48WI7SXx5I/AAAAAAAAA2w/ODlmE-9JGgs/s1600-h/Test+Environment+2010-03-04+02-49-03-88.png"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S48WM3GEfWI/AAAAAAAAA24/sLJnbK6cruY/s1600-h/Test+Environment+2010-03-04+02-49-15-86.png"&gt;&lt;img src="http://1.bp.blogspot.com/_AoqEZhXDIS4/S48WM3GEfWI/AAAAAAAAA24/sLJnbK6cruY/s400/Test+Environment+2010-03-04+02-49-15-86.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5444594884717870434" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;The diffuse textures are in fact the Sunburn textures that ship with the default project. Normal/Specular/Displacement maps are generated with Crazybump. Crazybump did all the generation work, and with Sunburn it was simply drag&amp;amp;drop in order to get the current results. A lot of material tweaking can be done with the Sunburn Editor. I might show more about that later, as its only a small test for now.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Note: The floor is very stretched. It probably makes the cubes look better by comparison ;)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&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/2942877753097296913-8287432792141181744?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8287432792141181744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/engine-update-materials-in-sunburn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8287432792141181744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8287432792141181744'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/engine-update-materials-in-sunburn.html' title='Engine Update: Materials in Sunburn'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AoqEZhXDIS4/S48V-MjyegI/AAAAAAAAA2g/YCzng-ZG9kg/s72-c/Test+Environment+2010-03-04+02-41-35-92.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3636537697162080589</id><published>2010-03-04T01:31:00.007+01:00</published><updated>2010-03-04T03:06:25.633+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='DPSF'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Engine Update: HDR/Bloom &amp; Particles</title><content type='html'>&lt;div&gt;Two screenshots taken from the demo scene. Features the DPSF particle system (Smoke + Snow) with Sunburn's HDR/Bloom Post-Processor. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S48AIlJ9w1I/AAAAAAAAA2Q/ow-hZs1gNco/s1600-h/Test+Environment+2010-03-04+01-33-25-81.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/S48AIlJ9w1I/AAAAAAAAA2Q/ow-hZs1gNco/s400/Test+Environment+2010-03-04+01-33-25-81.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5444570621927080786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/S48ADaVc-4I/AAAAAAAAA2I/Law4H0mbebw/s1600-h/Test+Environment+2010-03-04+01-33-07-16.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_AoqEZhXDIS4/S48ADaVc-4I/AAAAAAAAA2I/Law4H0mbebw/s400/Test+Environment+2010-03-04+01-33-07-16.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5444570533123128194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will be focusing on features required for our game the next couple of weeks. So less messing around and more focused building :) The editor will finally be used by one of the designers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More screenshots and videos will be posted the next couple of weeks (the deadline is at the end of this month already) you can expect some footage of animations, cinematic camera controls, triggers &amp;amp; events and audio. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update&lt;/b&gt;: Another Bloom screenshot (combined with an emmissive map)&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S48K8tFWeKI/AAAAAAAAA2Y/_xPt7rOCw1M/s1600-h/SunBurn-HDRExample+2010-03-01+23-48-39-77.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S48K8tFWeKI/AAAAAAAAA2Y/_xPt7rOCw1M/s400/SunBurn-HDRExample+2010-03-01+23-48-39-77.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5444582512524687522" style="cursor: pointer; width: 400px; height: 225px; " /&gt;&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/2942877753097296913-3636537697162080589?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3636537697162080589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/hdrbloom-particles.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3636537697162080589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3636537697162080589'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/hdrbloom-particles.html' title='Engine Update: HDR/Bloom &amp; Particles'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/S48AIlJ9w1I/AAAAAAAAA2Q/ow-hZs1gNco/s72-c/Test+Environment+2010-03-04+01-33-25-81.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-406651859340079285</id><published>2010-03-01T21:32:00.003+01:00</published><updated>2010-03-01T21:46:48.224+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Edit/Play'/><category scheme='http://www.blogger.com/atom/ns#' term='Camera'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Engine Update: Particles, Performance &amp; Profiling</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;Since my last update over a week ago, a lot of progress has been made. First steps for Full-Screen&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;b&gt; post processing&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; (&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;HDR, Bloom, Gaussian&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;) &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;b&gt;DPSF Particle system&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; is integrated and works perfectly with Sunburn out-of-the-box. Progress has been made with the level &amp;amp; content management classes, loading/saving works great and a new method &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;.CombineScenePart()&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; is currently WIP to combine scenes or scene parts into a single level.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;Other features like the &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;b&gt;CameraManager&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; is coming along nicely and should be ready very soon. The manager allows you or the engine to add/remove and set a certain camera type and modify its properties. Dynamic actors have been updated, they now return to their original position when returning to &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;EditMode (original being the last assigned position by either Xml or the Editor)&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;. Moving the dynamic objects while in &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;PlayMode&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; does not affect the &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;EditMode &lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;position of that object. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;Finally got some time to work with &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;b&gt;CLR Profiler&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;. I wasn't sure how to use this little tool to my advantage, but after some hours of fiddling with the engine code and running it through the profiler I got the hang of it. Some silly code errors were altered/removed (Like an old and unused &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;Matrix-array&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; being called every draw-call for my game objects, the &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;Matrix-array&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; had no actual purpose it was merely a left-over from a previous XNA draw method. As a final optimization I had a better look at the xml files that were created when serializing my level data. The demo scene (screen in previous post) required &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;43.000 lines of xml data&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; (The demo scene had about 350 objects) worth a &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;total of 900 KB&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;. It took me less than 15 minutes to get this down to &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;7.000 lines&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; without losing any necessary data (A easy way was serializing only the &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;b&gt;Euler&lt;/b&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; rotation property (of type Vector3) instead of a complete rotation Matrix (Thanks to &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.innovativegames.net/blog/"&gt;Sean James&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;)) The final Xml file only requires &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;i&gt;150KB of disk space&lt;/i&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;. The overall memory allocation have been decreased, it may be a bit early for memory optimizations, but it was good practice for later stages of development...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Unfortunately I have no new video/screenshots right now. I'll try to get some interesting footage later this week!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-406651859340079285?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/406651859340079285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/engine-update-particles-performance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/406651859340079285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/406651859340079285'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/03/engine-update-particles-performance.html' title='Engine Update: Particles, Performance &amp; Profiling'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7974566873691686378</id><published>2010-02-20T01:12:00.005+01:00</published><updated>2010-02-20T01:32:51.281+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collision'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='BEPU'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Engine Update: Multi-threading &amp; BEPU</title><content type='html'>Integrated BEPU's method for easy physics &lt;b&gt;Multi-Threading&lt;/b&gt;. The Physics class has the following code for Multi-Threading the physics.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;;mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:#2B91AF;"&gt;Environment&lt;/span&gt;.ProcessorCount &gt; 1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;;mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;;mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;for&lt;/span&gt; (&lt;span style="color:blue;"&gt;int&lt;/span&gt; i = 0; i &lt; &lt;span style="color:#2B91AF;"&gt;Environment&lt;/span&gt;.ProcessorCount; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;;mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;                &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;;mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;                    &lt;/span&gt;Space.threadManager.add();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;;mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;                &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;;mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;                &lt;/span&gt;Space.useMultithreadedUpdate = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;; mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="Courier New&amp;quot;;mso-no-proof:yesfont-family:&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;What this does is run through all the processors available on your machine and add it to the thread-manager to spread load across all available CPUs. Thanks to &lt;b&gt;BEPU &lt;/b&gt;the integration is VERY easy. A &lt;b&gt;pdf + sample&lt;/b&gt; is available on &lt;a href="http://www.bepu-games.com/BEPUphysics/documentation.htm"&gt;their site.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Multi-threading on the Xbox is slightly different, however it shouldn't be a problem considering the available documentation and sample by BEPU.&lt;div&gt;&lt;br /&gt;I still had some time left to test the performance gains using a small demo scene I made yesterday. It's basically a dominos scene with &lt;b&gt;350+ domino bricks&lt;/b&gt; in 3 lines getting knocked over by three boxes slinging through the air. With the debugger still attached the performance drops to&lt;b&gt; &lt;span class="Apple-style-span" style="font-weight: normal; "&gt;2 FPS at its lowest. Activating Multi-threading on two cores (my laptop has a Core2Duo (T9400) CPU, without Hyper-Threading) the lowest FPS recorded is 31. That is an amazing difference in performance. Another test without the debugger attached didn't get the demo-scene below 60.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Another thing I worked on today are &lt;b&gt;trigger-volumes&lt;/b&gt;. These can be used for a number of tasks (audio triggers, portals, level events etc.) BEPU has a very nice EventManager attached to every Entity. With this manager you can easily add events to your game objects. There is not much to see so far, but I hope to have some cool demo scene ready very soon...I'd like to get rid of the boring cubes and show some actual cool stuff :)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;; mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;Entity.eventManager.addEventHook(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2B91AF;"&gt;EventHandlerInitialCollisionDetected&lt;/span&gt;(initialCollision));&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;; mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;This will fire the attached method only once when the Entity is colliding with another Entity...The fired method could be something like this:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;; mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;; mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;;mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; initialCollision(&lt;span style="color:#2B91AF;"&gt;Entity&lt;/span&gt; sender, &lt;span style="color:#2B91AF;"&gt;Entity&lt;/span&gt; other, &lt;span style="color:#2B91AF;"&gt;CollisionPair&lt;/span&gt; pair)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span lang="EN-US"  style="Courier New&amp;quot;;mso-ansi-language:EN-US;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="Courier New&amp;quot;; mso-no-proof:yesfont-family:&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;            &lt;/span&gt;other.moveTo(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2B91AF;"&gt;Vector3&lt;/span&gt;(0, 10, 0));&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="Courier New&amp;quot;;mso-no-proof:yesfont-family:&amp;quot;;"&gt;&lt;span style="mso-spacerun:yes"&gt;        &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;This will move the colliding Entity to the Vector3 position...More on this in a later video ;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Image of the current demo scene:&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S38qQvU-fdI/AAAAAAAAA1c/DJqTUQ5xmRs/s1600-h/demoscene01.png"&gt;&lt;img src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S38qQvU-fdI/AAAAAAAAA1c/DJqTUQ5xmRs/s400/demoscene01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5440113341957570002" style="cursor: pointer; width: 400px; height: 239px; " /&gt;&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/2942877753097296913-7974566873691686378?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7974566873691686378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/engine-update-multi-threading-bepu.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7974566873691686378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7974566873691686378'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/engine-update-multi-threading-bepu.html' title='Engine Update: Multi-threading &amp; BEPU'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AoqEZhXDIS4/S38qQvU-fdI/AAAAAAAAA1c/DJqTUQ5xmRs/s72-c/demoscene01.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-9156225864846675215</id><published>2010-02-15T04:48:00.008+01:00</published><updated>2010-02-15T05:22:18.917+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tweaking'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Edit/Play'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Console'/><title type='text'>Level &amp; Content management [Part 2]</title><content type='html'>Another succesful coding day... :)&lt;br /&gt;&lt;br /&gt;Loading object data (position, rotation, scale) with XML is now (finally) complete...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What does this mean?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Every level has his own .xml file containing &lt;span style="font-style:italic;"&gt;position, rotation and scale&lt;/span&gt; data for each object of that particular level. When loading a level, the appropriate xml file is loaded, assigning any stored data to the correct objects in the current level regardless of the Vector positions inside your C# code. This allows for persistence when building your levels. You no longer have to tweak Vector positions inside your code files, you can easily re-position your game objects while playing...Saving and later reloading when you're ready to play.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Video&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="380" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/eHzda-jVWYY&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/eHzda-jVWYY&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="380" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Watch video in Fullscreen! Or check out &lt;a href="http://www.youtube.com/watch?v=eHzda-jVWYY"&gt;Youtube&lt;/a&gt;.&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-9156225864846675215?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/9156225864846675215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/level-content-management-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/9156225864846675215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/9156225864846675215'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/level-content-management-part-2.html' title='Level &amp; Content management [Part 2]'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7645645724144237711</id><published>2010-02-14T02:12:00.007+01:00</published><updated>2010-02-17T15:30:52.289+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tweaking'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Edit/Play'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>Level &amp; Content management</title><content type='html'>I've been prototyping several design concepts on how to manage my &lt;span style="font-weight:bold;"&gt;content &lt;/span&gt;and &lt;span style="font-weight:bold;"&gt;level data&lt;/span&gt; efficiently and easy. After a good day's work this is where I'm at:&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-style:italic;"&gt;LevelCollection &lt;/span&gt;class manages a single &lt;span style="font-style:italic;"&gt;LevelData &lt;/span&gt;class.&lt;br /&gt;- &lt;span style="font-style:italic;"&gt;LevelData &lt;/span&gt;class can hold all the game objects in the current scene.&lt;br /&gt;- &lt;span style="font-style:italic;"&gt;LevelCollection &lt;/span&gt;has control over Loading/Unloading (a particular scene) and XML LoadFromFile/SaveToFile methods (managing positions, rotations and scaling)&lt;br /&gt;&lt;br /&gt;All the content is now being managed using &lt;span style="font-weight:bold;"&gt;Dictionaries&lt;/span&gt;. This provides great control over used and unused assets. In the current implementation a method is fired containing all the data of a particular scene. The current assets are compared with the assets required for the next scene. Unused data is unloaded. The remaining asset data is assigned to the proper game object.&lt;br /&gt;&lt;br /&gt;That may sound either very straightforward or maybe you've completely lost it by now... Here's a &lt;span style="font-weight:bold;"&gt;quick summar&lt;/span&gt;y:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;LevelCollection.Load(*levelnametoload*)&lt;/span&gt; will know which scene you want to load, and will clear all current data present in the scene and loads all the new scene data as well as comparing current with new assets (models, textures etc.) to check if any new assets need to be loaded and if unused assets need to be unloaded to free memory.&lt;br /&gt;&lt;br /&gt;When you're scene is loaded and visible on screen, you can either play it or start messing around with the positions. Changing a Position or Rotation will require &lt;span style="font-style:italic;"&gt;LevelCollection.SaveToFile(*filename*)&lt;/span&gt; to persist after quiting the game.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;I'd like to show a video about this very soon...So stay tuned!&lt;/span&gt;&lt;div&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-weight:bold;"&gt;Update: Video available &lt;a href="http://coreenginedev.blogspot.com/2010/02/level-content-management-part-2.html"&gt;HERE&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-7645645724144237711?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7645645724144237711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/level-content-management.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7645645724144237711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7645645724144237711'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/level-content-management.html' title='Level &amp; Content management'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7655660412579604723</id><published>2010-02-06T13:58:00.004+01:00</published><updated>2010-02-06T17:51:57.659+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sample'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='XNAnimation'/><title type='text'>sgMotion v1.0.0 Released!</title><content type='html'>sgMotion is an animation library (based on &lt;span style="font-weight:bold;"&gt;XNAnimation&lt;/span&gt; by Bruno Evangelista) and provides full integration with both the &lt;span style="font-weight:bold;"&gt;Sunburn Engine&lt;/span&gt; and the &lt;span style="font-weight:bold;"&gt;Sunburn Framework&lt;/span&gt;. The project is available for download on Codeplex:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sgmotion.codeplex.com/"&gt;http://sgmotion.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The library source + Sunburn sample code is provided to get you started! Current release supports Sunburn 1.3.x for both &lt;span style="font-weight:bold;"&gt;PC &amp; Xbox&lt;/span&gt;. For the older 1.2.x release &lt;a href="http://coreenginedev.blogspot.com/2010/02/xnanimation-library-for-sunburn-126.html"&gt;click here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;object width="380" height="260"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Jtwk1E4dhZU&amp;hl=en_US&amp;fs=1&amp;hd=1"&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/Jtwk1E4dhZU&amp;hl=en_US&amp;fs=1&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="380" height="260"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: The previous releases will be maintained for some time using my Dropbox public space. For new releases check out the Codeplex page above.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-7655660412579604723?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7655660412579604723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/sgmotion-v100-released.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7655660412579604723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7655660412579604723'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/sgmotion-v100-released.html' title='sgMotion v1.0.0 Released!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-1713725428137104331</id><published>2010-02-06T02:36:00.004+01:00</published><updated>2010-02-10T00:03:06.110+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gizmo'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Sample'/><category scheme='http://www.blogger.com/atom/ns#' term='Codeplex'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>XNA Gizmo Released!</title><content type='html'>Finally got the time to create a sample with simplified classes of the current Gizmo used in Core Engine. It was quite a bit more than anticipated, with all engine utilities and tools used by the Gizmo and EditorComponent (the two main-classes for object movement) some parts had to be rewritten or completely removed.&lt;br /&gt;&lt;br /&gt;The project has been published on CodePlex:&lt;br /&gt;&lt;a href="http://xnagizmo.codeplex.com/"&gt;http://xnagizmo.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The project status is set to Beta. Everything should work out of the box. If you run into any issues using the code/sample, leave your comment here or use the Discussions tab on the CodePlex project page.&lt;br /&gt;&lt;br /&gt;I hope you enjoy!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/S3HpiksU33I/AAAAAAAAA08/oEx7pSTohCM/s1600-h/3DGizmoImage.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://2.bp.blogspot.com/_AoqEZhXDIS4/S3HpiksU33I/AAAAAAAAA08/oEx7pSTohCM/s400/3DGizmoImage.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5436383005387317106" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-1713725428137104331?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/1713725428137104331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/xna-gizmo-released.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1713725428137104331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1713725428137104331'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/xna-gizmo-released.html' title='XNA Gizmo Released!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AoqEZhXDIS4/S3HpiksU33I/AAAAAAAAA08/oEx7pSTohCM/s72-c/3DGizmoImage.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7095902965625757116</id><published>2010-02-01T15:10:00.005+01:00</published><updated>2010-02-08T16:44:29.363+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sample'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='XNAnimation'/><title type='text'>XNAnimation Library for Sunburn 1.3.1</title><content type='html'>OK, so I finished it a lot sooner then expected. The sample and library is now running on the latest &lt;span style="font-weight:bold;"&gt;(1.3.1)&lt;/span&gt; Sunburn release. If you have any trouble running the sample or DLLs, don't hesitate to ask...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/3322271/XNAnimation_Sunburn%281.3.1%29_Source.rar"&gt;XNAnimation Sunburn 1.3.1 Source &amp; Sample&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/3322271/XNAnimation_Sunburn%281.3.1%29_DLLs.rar"&gt;XNAnimation Sunburn 1.3.1 DLLs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update: For new releases check out my post about &lt;a href="http://coreenginedev.blogspot.com/2010/02/sgmotion-v100-released.html"&gt;sgMotion Release&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-7095902965625757116?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7095902965625757116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/xnanimation-library-for-sunburn-131.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7095902965625757116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7095902965625757116'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/xnanimation-library-for-sunburn-131.html' title='XNAnimation Library for Sunburn 1.3.1'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3323890331637982818</id><published>2010-02-01T14:00:00.003+01:00</published><updated>2010-02-01T14:05:11.320+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sample'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='XNAnimation'/><title type='text'>XNAnimation Library for Sunburn 1.2.6</title><content type='html'>Hi, today I decided to update a library I had modified some time ago to use with &lt;span style="font-weight:bold;"&gt;Sunburn 1.2.6&lt;/span&gt;. Only slight modifications were needed to get &lt;span style="font-weight:bold;"&gt;XNAnimation &lt;/span&gt;running alongside Sunburn (Thanks to John Kabus at Synapse Gaming) Updated the original sample as well, making it a bit easier to browse through, while demonstrating how to render a skinned model with Sunburn.&lt;br /&gt;&lt;br /&gt;I provided two links at the bottom of this post, one with the source code and sample project, and another with only the required .DLL files to get started with your own animations. If you have any questions regarding the integration of the XNAnimation library, please leave your comment below.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/3322271/XNAnimation_Sunburn%281.2.6%29_Source.rar"&gt;XNAnimation for Sunburn 1.2.6 Source &amp; Sample&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/3322271/XNAnimation_Sunburn%281.2.6%29_DLLs.rar"&gt;XNAnimation for Sunburn 1.2.6 DLLs only&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: XNAnimation .DLL's for the newly released Sunburn 1.3.1 should soon be available...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-3323890331637982818?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3323890331637982818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/xnanimation-library-for-sunburn-126.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3323890331637982818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3323890331637982818'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/02/xnanimation-library-for-sunburn-126.html' title='XNAnimation Library for Sunburn 1.2.6'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-1879320356314848246</id><published>2010-01-31T13:47:00.007+01:00</published><updated>2010-02-01T14:05:51.173+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='character'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='collision'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='BEPU'/><title type='text'>Engine Update and the future...</title><content type='html'>Yesterday I did some work on the engine and added some functionality. &lt;br /&gt;&lt;br /&gt;The first one is '&lt;span style="font-weight:bold;"&gt;BlockingVolumes&lt;/span&gt;' it's now possible to add blocking volumes to the scene, this can be used to efficiently create collisions for high poly scenery where trianglemesh collision might wreck the performance.&lt;br /&gt;&lt;br /&gt;Finally added the &lt;span style="font-weight:bold;"&gt;character controller&lt;/span&gt; from BEPU Physics library. Out of the box it can: Walk, turn (look), jump, step (onto stairs and other objects) much like you would expect :P Luckily a camera toggle type was already implemented, so it's now possible to toggle between play mode (= camera fixed to player view) and edit mode (camera in free roam) very easily.  &lt;br /&gt;&lt;br /&gt;I did some work with &lt;span style="font-weight:bold;"&gt;custom Sunburn Light&lt;/span&gt;s. First off, a candle light. So far it's a fairly basis class that will simulate a lit candle. I hope to include this in a video tomorrow.&lt;br /&gt;&lt;br /&gt;On Tuesday, my school will &lt;span style="font-weight:bold;"&gt;kick-off a new project&lt;/span&gt;. We might be required to use &lt;span style="font-weight:bold;"&gt;Unity &lt;/span&gt;instead of XNA. This would pretty much ruin a lot of my plans (to use this engine for my school projects) While Unity is really not a bad tool, I do prefer to stay with XNA. If I do not get permission to use XNA, that does not mean the end of the engine development. However, I will have to cut down on the time I can spend developing it. I just hope they will allows use to keep using XNA (That's what they've been teaching us the last couple of months anyway) If they don't, I'll have to rethink my plans.&lt;br /&gt;&lt;br /&gt;On a brighter note, there are some cool ideas to be announced in the near future... It involves &lt;span style="font-weight:bold;"&gt;Synapse Gaming&lt;/span&gt; (creators of Sunburn) and should really help XNA developers with their awesome ideas. I'm not sure how much I can say about it, as it's still only a concept. Hopefully I can give you more information, soon ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-1879320356314848246?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/1879320356314848246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/engine-update-and-future.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1879320356314848246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1879320356314848246'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/engine-update-and-future.html' title='Engine Update and the future...'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-6937658197769517215</id><published>2010-01-24T02:43:00.006+01:00</published><updated>2010-02-01T05:30:11.500+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='BEPU'/><title type='text'>Editor Update: Physics Rotation</title><content type='html'>Just a quick video update. Implemented rotation of Dynamic and Static actors in editmode. For now, rotation is done using the Arrow-keys. This will soon be changed (most likely using a rotation gizmo)&lt;br /&gt;&lt;br /&gt;&lt;object width="380" height="260"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6vrk_BukAN8&amp;hl=nl_NL&amp;fs=1&amp;hd=1"&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/6vrk_BukAN8&amp;hl=nl_NL&amp;fs=1&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="380" height="260"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-6937658197769517215?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/6937658197769517215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/editor-update-physics-rotation.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6937658197769517215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6937658197769517215'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/editor-update-physics-rotation.html' title='Editor Update: Physics Rotation'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-5584252920471907629</id><published>2010-01-19T03:43:00.008+01:00</published><updated>2010-02-01T05:29:52.770+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Edit/Play'/><title type='text'>First footage: Edit/Play feature demo</title><content type='html'>I've put together a short video, demonstrating the first iteration of the Edit/Play feature. There is yet a lot(!) of coding and design to be done on this feature, but I have a clear vision of what it should look like within a few months of development. Uploaded the first video footage. I hope you enjoy watching! :)&lt;br /&gt;&lt;br /&gt;&lt;object width="380" height="260"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hpEaGBT-3ww&amp;hl=nl_NL&amp;fs=1&amp;hd=1"&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/hpEaGBT-3ww&amp;hl=nl_NL&amp;fs=1&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="380" height="260"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-5584252920471907629?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/5584252920471907629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/first-footage-editplay-feature-demo.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5584252920471907629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/5584252920471907629'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/first-footage-editplay-feature-demo.html' title='First footage: Edit/Play feature demo'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-2169204825692766701</id><published>2010-01-16T04:24:00.004+01:00</published><updated>2010-02-01T05:31:02.873+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Concept'/><category scheme='http://www.blogger.com/atom/ns#' term='Edit/Play'/><category scheme='http://www.blogger.com/atom/ns#' term='Console'/><category scheme='http://www.blogger.com/atom/ns#' term='Engine'/><title type='text'>Creating your game while playing!</title><content type='html'>It's 4:30 in the morning and I've just finished a good chunck of engine work. Some progress has been made on the console (XNA Console Component) and support for switching 'modes' while playing the game.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The concept:&lt;/span&gt; The idea is to allow quick access to any editing tool while playing the game. This may have some pitfalls, but for the purpose of the engine (concept prototyping and school projects) it should be fine. To quickly gain access to these tools, you only need to open the console and type '&lt;span style="font-style:italic;"&gt;editmode&lt;/span&gt;' and the editor will change its ControlScheme, Camera and load all editor tools. The gameplay will be pauzed and all AI, physics etc. will not be updated while in editor mode. To continue playing, all you do is enter '&lt;span style="font-style:italic;"&gt;playmode&lt;/span&gt;' and gameplay will continue with all changes in effect.&lt;br /&gt;&lt;br /&gt;This concept should greatly &lt;span style="font-weight:bold;"&gt;reduce developing time&lt;/span&gt; and will allows other teammates to build levels and tweak values without coding knowledge.&lt;br /&gt;&lt;br /&gt;If you have any questions, please leave your comment below...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-2169204825692766701?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/2169204825692766701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/creating-your-game-while-playing.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2169204825692766701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/2169204825692766701'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/creating-your-game-while-playing.html' title='Creating your game while playing!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4168939616323372082</id><published>2010-01-12T03:17:00.006+01:00</published><updated>2010-02-01T05:31:39.895+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='BEPU'/><title type='text'>First BEPU Integration Steps...</title><content type='html'>Just a small update this time...&lt;br /&gt;&lt;br /&gt;Added some BEPU (Physics) functionality. 'StaticMeshActor' used as the static ground mesh in the video. 'DynamicMeshActor' the movable boxes. And of course the vehicle that can be driven around. Currently BEPU is not a priority milestone for the engine, messing around with physics is always fun however :)&lt;br /&gt;&lt;br /&gt;The vehicle is a great starting point to demonstrate XML tweaking in a live scenario. All I have to do is convert all hardcoded values (like grip, torque etc.) into variables and add some XML functionality to the VehicleActor class. I hope to have a video about it by the end of the week. For now, I'll leave you with this:&lt;br /&gt;&lt;br /&gt;&lt;object width="380" height="260"&gt;&lt;param name="movie" value="http://www.youtube.com/v/lR0NjIAmyVI&amp;hl=nl_NL&amp;fs=1&amp;hd=1"&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/lR0NjIAmyVI&amp;hl=nl_NL&amp;fs=1&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="380" height="260"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4168939616323372082?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4168939616323372082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/first-bepu-integration-steps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4168939616323372082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4168939616323372082'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/first-bepu-integration-steps.html' title='First BEPU Integration Steps...'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-1551258061103674674</id><published>2010-01-09T20:14:00.007+01:00</published><updated>2010-02-01T05:32:17.309+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tweaking'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>Tweaking variables using XML (Part 2)</title><content type='html'>In my &lt;a href="http://coreenginedev.blogspot.com/2010/01/tweaking-variables-using-xml.html"&gt;previous post&lt;/a&gt; I talked about the method I'll be using to tweak values in runtime. Today, I created some code to demonstrate this method. It's an iterative process, so improvements will follow.&lt;br /&gt; &lt;br /&gt;In the provided &lt;a href="http://dl.dropbox.com/u/3322271/XMLTweakables_Sample.rar"&gt;sample&lt;/a&gt; the method is explained using a Vehicle class, with two instances of that class. the static 'FrictionDef' variable will declare the value that every instance of the class should use. a private 'frictionDef' variable will allow an instance to set this static value using the XMLSerializer. You as a developer can manually change the value of 'frictionDef' in the XML file (called 'SuperCar.xml' in this sample) and reload the file to set all instances to the new assigned values in the xml file. You can use this method to quickly change values in runtime on PC. For Xbox, the 'XNA console component' could help us out setting values in the xml file (of course, you will need a  'chatpad' to properly use the console on Xbox) so other solutions are still being explored. I've yet to implement this feature into the engine so I'll save it for a later blog entry.&lt;br /&gt;&lt;br /&gt;For PC developers: keeping this type of gameplay specific data in easily readable XML format, will allow for easy cheating by players. You might want to consider running it through the content pipeline (as binary) when you're done tweaking. Alternatively, you might simply remove the whole code used to tweak, and assign the values to the variables in your source code. Doing so, will still safe you a lot of time compared to rebuilding your project for every slightly changed variable while tweaking your game.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Some articles of interest:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/shawnhar/archive/2009/05/01/motogp-tweakables.aspx"&gt;Shawn Hargreaves Blog: MotoGP Tweakables&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.luminance.org/gruedorf/2009/03/30/changing-constants-at-runtime"&gt;Luminance: Changing constants at runtime&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Link to sample code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/3322271/XMLTweakables_Sample.rar"&gt;XML Tweaking Sample&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Video&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="380" height="315"&gt;&lt;param name="movie" value="http://www.youtube.com/v/IZ_n4G9vw7Q&amp;hl=nl_NL&amp;fs=1&amp;hd=1"&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/IZ_n4G9vw7Q&amp;hl=nl_NL&amp;fs=1&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="380" height="315"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-1551258061103674674?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/1551258061103674674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/tweaking-variables-using-xml-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1551258061103674674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1551258061103674674'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/tweaking-variables-using-xml-part-2.html' title='Tweaking variables using XML (Part 2)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7888744362693437649</id><published>2010-01-09T03:59:00.002+01:00</published><updated>2010-02-01T05:32:59.128+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tweaking'/><category scheme='http://www.blogger.com/atom/ns#' term='Vehicle'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>Tweaking variables using XML</title><content type='html'>A few months ago, I was tasked to tweak a car to behave like an actual vehicle (using XNA). Nothing close to a simulator, but a task like this can take up weeks of your time if you don't have proper tools. I did not have proper tools...&lt;br /&gt;&lt;br /&gt;With a fresh project coming up (got till about April to work on the engine, before I can put it to use for another school project) I can take some time to develop tools like the one mentioned before. I've no current plans to develop these tools for a wide audience, this makes it somewhat easier to code them. I do of course release snippets and full source when applicable. Most of my current code works, but is not qualified to be released without a proper cleanup. Releasing something to a wide audience of programmers without fully debugging or tweaking your code is not in anyone's best interest.&lt;br /&gt;&lt;br /&gt;Like a lot of other previous posts, this one will be cut into two parts. The first part I will talk about a possible method that you can implement into your project/engine when trying to save time tweaking. The next part will show an example (with snippets etc.) using this method.&lt;br /&gt; &lt;br /&gt;If you've ever made a game before, you will know how much time fine-tuning or tweaking any object in your game can consume of your total development cycle. To help reducing the amount of time spend building and rebuilding your game with only slight changes in your character's run speed, you need a tool. I use &lt;span style="font-weight:bold;"&gt;XML&lt;/span&gt; to help save time. It's still a work in progress, but tests have shown good results so far. I'll explain the concept below...&lt;br /&gt;&lt;br /&gt;Every class that uses constant values that should not change during runtime (i.e. default run speed or friction in a spring) can be tweaked using this XML method. The tweakable value is not a '&lt;span style="font-style:italic;"&gt;const&lt;/span&gt;' as this would not allow us to change its value in runtime. Instead we will use a '&lt;span style="font-style:italic;"&gt;public static&lt;/span&gt;', which holds the value that is used for every instance of the class. to Get/Set this value with XML (explained in more detail in the second part) we will need a '&lt;span style="font-style:italic;"&gt;private (non-static)&lt;/span&gt;' value.&lt;br /&gt; &lt;br /&gt;&lt;span style="font-style:italic;"&gt;            public static float FrictionDef;&lt;br /&gt;            private float frictionDef&lt;br /&gt;            {&lt;br /&gt;                get { return FrictionDef; }&lt;br /&gt;                set { FrictionDef = value; }&lt;br /&gt;            }&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;In its current implementation you will have to manually open the XML file created for the class (one XML file for every class that uses tweakables) in a text-editor and change the value to anything you'd like in runtime, saving the file and reloading it using a simple key command in-game will load your new values to the 'public static' variables. Any instance will now use the new values and you get direct feedback on any changes made.&lt;br /&gt;&lt;br /&gt;I will go more in-depth of the coding required to achieve this in part two. And provide a video with the implementation in effect (if time permits)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-7888744362693437649?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7888744362693437649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/tweaking-variables-using-xml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7888744362693437649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7888744362693437649'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2010/01/tweaking-variables-using-xml.html' title='Tweaking variables using XML'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8057727716287185004</id><published>2009-12-30T22:28:00.003+01:00</published><updated>2009-12-30T22:41:47.605+01:00</updated><title type='text'>End of the Year...</title><content type='html'>So, it's been a pretty good year and all, but I won't talk about all that...&lt;br /&gt;&lt;br /&gt;Since my last blog post I've mostly been doing non-programming related things. To give you a bit of an insight in things to come I made a very small list of topics that I'm going to talk about in the coming weeks.&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;XML Tweaking&lt;/span&gt; (tweaking 'constant' values like player runspeed in runtime using XML)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;- XNA Console Component&lt;/span&gt; (I've used the XNA Console Component (by Kevin) and I will talk about integration of numerical values to set things like gridsize, as seen in a previous video on this blog)&lt;br /&gt;&lt;br /&gt;- Tutorial about the &lt;span style="font-weight:bold;"&gt;3D Gizmo&lt;/span&gt;. People have been asking me to release the source/snippets of the gizmo code, so I'll think about creating a tutorial or simply releasing it as full source project.&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;More lighting and texturing with Sunburn&lt;/span&gt;.&lt;br /&gt; &lt;br /&gt;- Possible beginners guide to &lt;span style="font-weight:bold;"&gt;integrating sunburn&lt;/span&gt; into your new/existing game. &lt;br /&gt;&lt;br /&gt;...And of course there is many more that will follow. These topics are just a few things I have in mind for early 2010. I hope you will enjoy them. If you have any suggestions, please leave your comment below.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-8057727716287185004?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8057727716287185004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/end-of-year.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8057727716287185004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8057727716287185004'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/end-of-year.html' title='End of the Year...'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-3572860150604886839</id><published>2009-12-25T00:28:00.002+01:00</published><updated>2009-12-25T02:23:09.941+01:00</updated><title type='text'>Line rendering part 2.</title><content type='html'>&lt;div class="MsoNormal"&gt;Mostly just some screen caps and a video to showcase the grid. It’s basically centered, re-colored and two special lines are added that indicate the exact middle of the scene.&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/_AoqEZhXDIS4/SzPosgdtJNI/AAAAAAAAAzY/9bVWQnl5TEE/s1600-h/bluegrid_overview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/SzPosgdtJNI/AAAAAAAAAzY/9bVWQnl5TEE/s400/bluegrid_overview.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;The further you get away from the lines, the more constrast you will notice between the two colors.&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/_AoqEZhXDIS4/SzPoqhwR2BI/AAAAAAAAAzQ/_d6-occTSeI/s1600-h/bluegrid_closeup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/SzPoqhwR2BI/AAAAAAAAAzQ/_d6-occTSeI/s400/bluegrid_closeup.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Close-up view of the grid, not much more to say :)&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: center;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-size: 10px; white-space: pre;"&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/d_79tqwF5jo&amp;amp;hl=nl_NL&amp;amp;fs=1&amp;amp;rel=0"&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/d_79tqwF5jo&amp;amp;hl=nl_NL&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Lines are very difficult to see in the video...&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/2942877753097296913-3572860150604886839?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/3572860150604886839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/line-rendering-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3572860150604886839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/3572860150604886839'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/line-rendering-part-2.html' title='Line rendering part 2.'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/SzPosgdtJNI/AAAAAAAAAzY/9bVWQnl5TEE/s72-c/bluegrid_overview.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4472759935222474529</id><published>2009-12-24T15:16:00.000+01:00</published><updated>2009-12-24T15:18:27.434+01:00</updated><title type='text'>How to render a Grid...</title><content type='html'>As I previously mentioned. I’ve been working on a grid for my game. So far the grid has been working, but was not visually present in the game. There is a good MSDN tutorial explaining how to render a line in your scene. &lt;a href="http://msdn.microsoft.com/en-us/library/bb196414.aspx"&gt;MSDN Points, Lines and Primitives&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It’s a good starting point if you’re trying to implement your own line renderer for your game. Luckily for some of us (Sunburn owners) this has been done for us by Synapse Gaming. It’s called the LineRenderHelper() and can be utilized for easy line rendering. Below is the result of a quick setup with the line renderer.&lt;br /&gt;&lt;br /&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: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/SzN4CYeWX0I/AAAAAAAAAzI/U71EV30h0Mw/s1600-h/small_grid.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/SzN4CYeWX0I/AAAAAAAAAzI/U71EV30h0Mw/s400/small_grid.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;How it works…&lt;br /&gt;&lt;br /&gt;You simply create a new LineRenderHelper() and pass it the maximum amount of points your grid will contain. Every line has a start and end point, so it’s 2 vertices for each line.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;LineRenderHelper line = new LineRenderHelper(100); // This will create the helper with a maximum capacity of 100 vertices, or 50 lines.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Method for setting up the array of lines to be drawn.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;public void SetGridLines(int grid, int lines, Color color)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;{&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; lines; i++)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; line.Submit(Vector3.Left * grid * i, (Vector3.Left * grid * i) + Vector3.Forward * (grid *&amp;nbsp;(lines - 1)), color);&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; line.Submit(Vector3.Forward * grid * i, (Vector3.Forward * grid * i) + Vector3.Left * (grid &amp;nbsp;* (lines - 1)), color);&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/i&gt;&lt;br /&gt;&lt;i&gt;}&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;This code will set up the array of lines. I pass a grid (empty space between the parallel lines) , lines (amount of lines that should be drawn) and the color.&lt;br /&gt;To submit a line, all you need to do is call the Submit method.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;line.Submit(*start_vector3*, *end_vector3*, *color*);&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This will add a single line to your renderer. If you try to execute your code, nothing will show on screen. This is because the helper is not automatically drawn. You need a BasicEffect to do this.&lt;br /&gt;&lt;br /&gt;Draw Code:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;// Setup your basicEffect&lt;/i&gt;&lt;br /&gt;&lt;i&gt;basicEffect.World = Matrix.Identity;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;basicEffect.View = camera.View;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;basicEffect.Projection = camera.Projection;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;basicEffect.VertexColorEnabled = true;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;//Start the effect&lt;/i&gt;&lt;br /&gt;&lt;i&gt;basicEffect.Begin();&lt;/i&gt;&lt;br /&gt;&lt;i&gt;foreach (EffectPass pass in basicEffect.CurrentTechnique.Passes)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;{&lt;/i&gt;&lt;br /&gt;&lt;i&gt;pass.Begin();&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;//render all lines stored inside the helper class&lt;/i&gt;&lt;br /&gt;&lt;i&gt;line.Render(Engine.GraphicsDevice);&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;pass.End();&lt;/i&gt;&lt;br /&gt;&lt;i&gt;}&lt;/i&gt;&lt;br /&gt;&lt;i&gt;basicEffect.End();&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This is pretty basic, and should not need much explanation if you’ve ever worked with BasicEffect. If you’ve placed this correctly in your draw code, you should now see the lines on screen.&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/_AoqEZhXDIS4/SzN0z2H5SOI/AAAAAAAAAy4/sMjV6d0GgCA/s1600-h/grid_overview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_AoqEZhXDIS4/SzN0z2H5SOI/AAAAAAAAAy4/sMjV6d0GgCA/s400/grid_overview.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Of course, like mentioned before…You need Sunburn to use this helper class. &lt;br /&gt;Sunburn Framework is currently in Beta. If you’re interested in using Sunburn, you should definitely sign-up and start using Sunburn.&amp;nbsp;&lt;a href="http://www.synapsegaming.com/forums/"&gt;Sunburn Community Forums&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Results of a quick stress-test:&lt;br /&gt;&lt;br /&gt;Up to 200k vertices the scene would run fairly smoothly (on my laptop Asus M50VN) stressing it up to &lt;b&gt;1.000.000 vertice&lt;/b&gt;&lt;b&gt;s&lt;/b&gt; (making 500k lines) got my FPS down to 5. But it was still very possible to navigate around the scene. You only need a few dozen lines for your scene at any given time. So should not ever run into trouble with your FPS because of your Grid, which in the end, will most likely not even be rendered in your final game.&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/_AoqEZhXDIS4/SzN01fNVVMI/AAAAAAAAAzA/5ch5p7J_F4o/s1600-h/grid_1000k.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_AoqEZhXDIS4/SzN01fNVVMI/AAAAAAAAAzA/5ch5p7J_F4o/s400/grid_1000k.png" /&gt;&lt;/a&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/2942877753097296913-4472759935222474529?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4472759935222474529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/how-to-render-grid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4472759935222474529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4472759935222474529'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/how-to-render-grid.html' title='How to render a Grid...'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/SzN4CYeWX0I/AAAAAAAAAzI/U71EV30h0Mw/s72-c/small_grid.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-52991146001808521</id><published>2009-12-22T20:18:00.002+01:00</published><updated>2011-11-05T06:09:28.913+01:00</updated><title type='text'>Game State Management with Sunburn</title><content type='html'>&lt;a href="http://dl.dropbox.com/u/3322271/GameStateManagementSample_Sunburn.rar"&gt;GameStateManagement_Sunburn.rar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A quick post, about the infamous GameStateManagement sample from XNA Creators Club combined with Sunburn Lighting en Rendering System. &lt;br /&gt;&lt;br /&gt;I made this in reply of a forum post made on the sunburn forums. You obviously need Sunburn to use this sample.&lt;br /&gt;&lt;br /&gt;What it does...&lt;br /&gt;&lt;br /&gt;I simply used the 'Sunburn Simple Integration' code provided with Sunburn 1.2.6. and combined it with the GSM sample from XNA CC. The code is provided 'as-is' and all credit should to go the XNA creators and Synapse Gaming.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_AoqEZhXDIS4/S1tdQdVSACI/AAAAAAAAA0E/Ltvu2l-w3-Q/s1600-h/gsm_sunburnsample.png"&gt;&lt;img alt="" border="0" height="380" id="BLOGGER_PHOTO_ID_5430036313058443298" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/S1tdQdVSACI/AAAAAAAAA0E/Ltvu2l-w3-Q/s640/gsm_sunburnsample.png" width="640" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-52991146001808521?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/52991146001808521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/game-state-management-with-sunburn.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/52991146001808521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/52991146001808521'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/game-state-management-with-sunburn.html' title='Game State Management with Sunburn'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/S1tdQdVSACI/AAAAAAAAA0E/Ltvu2l-w3-Q/s72-c/gsm_sunburnsample.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-8368296938341658895</id><published>2009-12-22T02:17:00.001+01:00</published><updated>2009-12-22T02:27:58.058+01:00</updated><title type='text'>Holidays and upcoming changes</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;First of all, happy holidays everybody! It's (most likely) going to be the first white christmas in the netherlands since 1981 (I wasn't even born at the time!) &lt;br /&gt;&lt;br /&gt;Altho, it's not all as well this time a year. Someone broke into my Gmail account and probably did some things. So far, the damage isn't so bad, it mostly feels weird when someone is trying to steal your identity. So I'm trying to get all my things back together and make sure it won't happen again...&lt;br /&gt;&lt;br /&gt;For now tho, I've been enjoying the holidays and haven't spend a lot of time on the development project (not much since my last post) But, I have plans...I'm going to draw out a complete overview of the engine's structure (and will most likely post it here) to get myself back on track. I was working on so many features at the same time that I lost myself in all the work. So taking some time this holiday to slowly get back on the right track, aswell as taking some time to finally design some games. &lt;br /&gt;&lt;br /&gt;I have some homemade challenges that I'd like to complete, to get my mind of engine programming for a bit (in the end, I'm building this engine for game design, not to become a world class programmer)&lt;br /&gt;&lt;br /&gt;So to all who's reading this (and everyone else!) MERRY CHRISTMAS!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-8368296938341658895?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/8368296938341658895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/holidays-and-upcoming-changes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8368296938341658895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/8368296938341658895'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/holidays-and-upcoming-changes.html' title='Holidays and upcoming changes'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4789140686523929138</id><published>2009-12-20T02:43:00.000+01:00</published><updated>2009-12-20T03:01:02.805+01:00</updated><title type='text'>Using Transparency with Sunburn</title><content type='html'>After using my old-timer model in the previous demo (with physics) I noticed the wheels were not as transparent as they should be. The problem was pretty easily solved. I set the Transparancy to ‘Clip’ and it was fixed. As I was already prepared to spend a lot more time on transparency, I decided to test the alpha quality and shadow map when using alpha’s.&lt;br /&gt;&lt;br /&gt;To spare you the boredom of reading. I compiled a few images and a video to demonstrate my first night of playing with Alpha/Transparency.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/Sy2BiskDwYI/AAAAAAAAAyQ/0hlWxa7sGUg/s1600-h/alpha_spokes.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/Sy2BiskDwYI/AAAAAAAAAyQ/0hlWxa7sGUg/s400/alpha_spokes.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5417128359874511234"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Result of changing transparency mode to ‘Clip’&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/Sy2BxZEAAaI/AAAAAAAAAyY/I88UQ3-kZwY/s1600-h/alpha_closeup.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/Sy2BxZEAAaI/AAAAAAAAAyY/I88UQ3-kZwY/s400/alpha_closeup.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5417128612337811874"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Close up shows black lines around the spokes, this is due to my (bad) texture skills :P&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/Sy2CDtVYt0I/AAAAAAAAAyg/AZA21iyYDQY/s1600-h/alpha_opt_closeup.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 195px;" src="http://2.bp.blogspot.com/_AoqEZhXDIS4/Sy2CDtVYt0I/AAAAAAAAAyg/AZA21iyYDQY/s400/alpha_opt_closeup.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5417128927017088834"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Quick patch-up in Photoshop, adjusted the texture file (removed most of the blackness)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/Sy2CVrEWAGI/AAAAAAAAAyo/XhnmLX5mgpY/s1600-h/wheel_alpha_transistion.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 106px;" src="http://4.bp.blogspot.com/_AoqEZhXDIS4/Sy2CVrEWAGI/AAAAAAAAAyo/XhnmLX5mgpY/s400/wheel_alpha_transistion.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5417129235646382178"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Quick overview of the effect when changing Transparency value.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="333" class="BLOG_video_class" id="BLOG_video-f500f811b6b11906" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v9.nonxt7.googlevideo.com/videoplayback?id%3Df500f811b6b11906%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330152978%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6B6249CCA9C305CFE6A729518301E6043DC80F7B.F3E4AC4A96292B57C498C38979F362EC86D5D52%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Df500f811b6b11906%26offsetms%3D5000%26itag%3Dw160%26sigh%3D1gt0omdnMOhP4wwrc-8uzy_Nu4I&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="400" height="333" bgcolor="#FFFFFF"flashvars="flvurl=http://v9.nonxt7.googlevideo.com/videoplayback?id%3Df500f811b6b11906%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330152978%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6B6249CCA9C305CFE6A729518301E6043DC80F7B.F3E4AC4A96292B57C498C38979F362EC86D5D52%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Df500f811b6b11906%26offsetms%3D5000%26itag%3Dw160%26sigh%3D1gt0omdnMOhP4wwrc-8uzy_Nu4I&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;Video: Some fun with lighting and shadows using Alpha Textures.&lt;br /&gt;&lt;br /&gt;That's it for today, if you have any questions or comments, please post them below...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4789140686523929138?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4789140686523929138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/using-transparency-with-sunburn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4789140686523929138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4789140686523929138'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/using-transparency-with-sunburn.html' title='Using Transparency with Sunburn'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/Sy2BiskDwYI/AAAAAAAAAyQ/0hlWxa7sGUg/s72-c/alpha_spokes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-4769256944824681786</id><published>2009-12-19T23:15:00.000+01:00</published><updated>2009-12-19T23:34:59.857+01:00</updated><title type='text'>BEPU Integrated...Today!</title><content type='html'>There is not much to show today, unfortunately. Most of my work today involved removing the old JigLibX code and replacing it with &lt;a href="http://bepu-games.com/BEPUphysics/index.html"&gt;BEPU Physics&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;I did some basic primitive collision tests, dynamic vs. kinematic and a triangleMesh test (done with a 1100 poly car model) So far, no real problems occured. I have to create a new and solid system to add (and save) collision models to later reload into my game.&lt;br /&gt;&lt;br /&gt;So, next on my list is to finish the StaticMeshActor class I've been working on. It's not very complex, but should form a solid base for all static meshes in the game.&lt;br /&gt;&lt;br /&gt;I hope to have more to show by tomorrow...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AoqEZhXDIS4/Sy1UNRezYlI/AAAAAAAAAyI/uqndJWQT8sM/s1600-h/BEPU_firstday.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 238px;" src="http://4.bp.blogspot.com/_AoqEZhXDIS4/Sy1UNRezYlI/AAAAAAAAAyI/uqndJWQT8sM/s400/BEPU_firstday.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5417078513804206674" /&gt;&lt;/a&gt;&lt;br /&gt;Note: the vehicle collision is a ConvexHull, and the Box is made of a...Box.&lt;br /&gt;&lt;br /&gt;If you're interested in BEPUphysics, check out their site:&lt;br /&gt;&lt;a href="http://bepu-games.com/BEPUphysics/index.html"&gt;BEPU Physics&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-4769256944824681786?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/4769256944824681786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/bepu-integratedtoday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4769256944824681786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/4769256944824681786'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/bepu-integratedtoday.html' title='BEPU Integrated...Today!'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AoqEZhXDIS4/Sy1UNRezYlI/AAAAAAAAAyI/uqndJWQT8sM/s72-c/BEPU_firstday.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7953848911972566532</id><published>2009-12-18T14:19:00.000+01:00</published><updated>2009-12-18T14:25:14.412+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Render'/><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunburn'/><category scheme='http://www.blogger.com/atom/ns#' term='Camera'/><category scheme='http://www.blogger.com/atom/ns#' term='Viewport'/><title type='text'>Editor Basics (Viewports)</title><content type='html'>Yesterday I got to work on the viewports for the stand-alone editor. It will be using the same layout as most other 3D applications (UnrealEd, 3Dsmax and Maya) so it needs orthographic and perspective viewports.&lt;br /&gt;&lt;br /&gt;To set this up, not much work is needed. First I created a new camera class called ‘&lt;span style="font-style:italic;"&gt;OrthographicCamera&lt;/span&gt;’ inheriting from Camera.cs (that’s is my base class for any camera) To create an orthographic view you will need &lt;span style="font-weight:bold;"&gt;Matrix.CreateOrthographic()&lt;/span&gt;to create your Projection. This is fairly straight forward and should not be too much of a hassle to do. To add ‘Zoom’ functionality all you need is a value that can change the width/height of the orthographic projection. I used my viewport width and divided it by a zoom value that could be increased/decreased using the zoom keys.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/SyuBo-icZlI/AAAAAAAAAxw/6Rib-SNUtg4/s1600-h/Viewports.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 239px;" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/SyuBo-icZlI/AAAAAAAAAxw/6Rib-SNUtg4/s400/Viewports.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5416565517825369682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next on the list was a system that allows 4 viewports to be rendered on the screen. This aswell is pretty easy to do. If you’ve ever created a split screen option for one of your games, this won’t need much further explanation. If you haven’t, I suggest you read &lt;a href="http://msdn.microsoft.com/en-us/library/bb313965.aspx"&gt;MSDN Splitscreen&lt;/a&gt; It’s a great example of how to implement split screen into your game. The editor viewports work pretty much the same way.&lt;br /&gt;&lt;br /&gt;Most 3D applications have the ability to either render Solid geometry or change to a Wireframe rendertype. It can be very helpful to allow your Orthographic views to render wireframes instead of solid geometry. It’s very straightforward to do in Sunburn. For every rendercall (you call it once for each viewport) add a Fillmode enumerator (Microsoft.Xna.Framework.Graphics.Fillmode) and set it to either Fillmode.Solid or Fillmode.Wireframe. With Sunburn you will simply call your &lt;span style="font-weight:bold;"&gt;‘RenderManager.RenderFillMode = Fillmode.Wireframe&lt;/span&gt;’ and you’re done. This can be optimized (I try to avoid setting renderstates as much as possible) so I will get back on this later on.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/SyuBzqOGRfI/AAAAAAAAAx4/ZlvpwBkjw8g/s1600-h/ViewportsWireFrame.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 239px;" src="http://2.bp.blogspot.com/_AoqEZhXDIS4/SyuBzqOGRfI/AAAAAAAAAx4/ZlvpwBkjw8g/s400/ViewportsWireFrame.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5416565701349885426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you do not own a copy of Sunburn, you can use the following line to create the same result.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;GraphicsDevice.RenderState.FillMode = Fillmode.Wireframe;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The picture below is a quick draft of the editor layout. It’s nothing special and looks like any other editor you can find on the internet. My main goal is to make it intuitive and quick. A recognizable UI will help achieving this.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/SyuCCbCLBnI/AAAAAAAAAyA/DCAQWus6xpc/s1600-h/EditorLayout+copy.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_AoqEZhXDIS4/SyuCCbCLBnI/AAAAAAAAAyA/DCAQWus6xpc/s400/EditorLayout+copy.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5416565954971371122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: The engine will not only feature a stand-alone editor, but will accompanied by an special in-game editor. This editor will make heavy use of the integrated Console, Gizmo’s and XML. More on this in a future blog…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-7953848911972566532?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7953848911972566532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/editor-basics-viewports.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7953848911972566532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7953848911972566532'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/editor-basics-viewports.html' title='Editor Basics (Viewports)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AoqEZhXDIS4/SyuBo-icZlI/AAAAAAAAAxw/6Rib-SNUtg4/s72-c/Viewports.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-6560818083795979493</id><published>2009-12-16T14:54:00.000+01:00</published><updated>2009-12-16T15:29:41.530+01:00</updated><title type='text'>Gizmo...[Continued]</title><content type='html'>As Matt requested in his comment, I'll go a little more in-depth with the Gizmo system described earlier.&lt;br /&gt;&lt;br /&gt;First off, it's not a very complex system. I use the .fbx mesh (three arrows) simply for the visual representation of the axis. The actual magic happens in an invisible level, using &lt;span style="font-weight:bold;"&gt;Rays &lt;/span&gt;and &lt;span style="font-weight:bold;"&gt;BoundingBoxes&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AoqEZhXDIS4/SyjtPP4LQcI/AAAAAAAAAxg/awYPjdDU4Fg/s1600-h/GizmoTransform.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_AoqEZhXDIS4/SyjtPP4LQcI/AAAAAAAAAxg/awYPjdDU4Fg/s400/GizmoTransform.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5415839398128992706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Every axis (arrow) has a boundingbox roughly the size of the arrow itself. Called something like "BoundingBoxY" or just anything that would make sense for an upward pointing boundingbox.&lt;br /&gt;&lt;br /&gt;Whenever I try to select the gizmo with my mouse (left-button) it will check whether it's active, if that's true, it will cast a ray to see which BB is hit, if any.&lt;br /&gt;&lt;br /&gt;At this point you will probably see where I am going...Holding the mouse down and calculating the &lt;span style="font-weight:bold;"&gt;Delta &lt;/span&gt;of the X and/or Y mouse axis, you simply add these values to the position of you selected object (Don't forget to update the position of your gizmo)&lt;br /&gt;&lt;br /&gt;I really hope this will help you towards creating your own Gizmo. If you remain with any questions, please ask in the comments below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AoqEZhXDIS4/SyjtZI0CYxI/AAAAAAAAAxo/VU2wsVOZEOc/s1600-h/GizmoSelection.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 244px;" src="http://1.bp.blogspot.com/_AoqEZhXDIS4/SyjtZI0CYxI/AAAAAAAAAxo/VU2wsVOZEOc/s400/GizmoSelection.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5415839568031277842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I can't give any particular Code Snippets yet, as it's a WIP. It's still unoptimized(but working) code. If I happen to finish the code completely I will post a sample somewhere so people can use/learn from it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-6560818083795979493?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/6560818083795979493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/gizmocontinued.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6560818083795979493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6560818083795979493'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/gizmocontinued.html' title='Gizmo...[Continued]'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AoqEZhXDIS4/SyjtPP4LQcI/AAAAAAAAAxg/awYPjdDU4Fg/s72-c/GizmoTransform.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-7959437231355382226</id><published>2009-12-15T16:06:00.000+01:00</published><updated>2009-12-22T20:55:09.239+01:00</updated><title type='text'>Gizmo...</title><content type='html'>You may notice the console in the top halve when I'm changing the grid size...&lt;br /&gt;This is the XNA Console Component by Kevin Jurkowski. Modified by me to allow numerical values for use like the grid size. It's the same for the Gizmo, it will need some cleaning up before I can call it final (I will probably upload the source later on, but not before I feel it's clean enough to do so)&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="244"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FsuNn-NwPcA&amp;hl=nl_NL&amp;fs=1&amp;rel=0"&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/FsuNn-NwPcA&amp;hl=nl_NL&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="244"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;If you're interested in any of these techniques, leave a comment below.&lt;br /&gt;&lt;br /&gt;(Update: I noticed that the console is unreadable due to the small size of the video on blogger, I will try to find a fix for this)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-7959437231355382226?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/7959437231355382226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/gizmo.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7959437231355382226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/7959437231355382226'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/gizmo.html' title='Gizmo...'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-6695002481496992526</id><published>2009-12-15T01:37:00.000+01:00</published><updated>2009-12-15T15:51:43.119+01:00</updated><title type='text'>Submerged (School Project)</title><content type='html'>Unfortunately the game could never reach a 'final' state, so we haven't spend much time tweaking of...anything. Player model was supposed to be just a placeholder, but was kept ingame till the deadline.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AoqEZhXDIS4/SybcL-l_0UI/AAAAAAAAAw4/lMJYeJNeRsE/s1600-h/ingame_level1_03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 239px;" src="http://3.bp.blogspot.com/_AoqEZhXDIS4/SybcL-l_0UI/AAAAAAAAAw4/lMJYeJNeRsE/s400/ingame_level1_03.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5415257700298641730"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fortunately we all learned a lot in the proces of creating this game. And I can re-use a lot of the technology added into the engine during development. Such as animation and sunburn rendering.&lt;br /&gt;&lt;br /&gt;If time permits I will add a gameplay video later on...&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-c17c8f55277bc1f1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v12.nonxt8.googlevideo.com/videoplayback?id%3Dc17c8f55277bc1f1%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330152978%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D55D75993811B078137163CB8E252F3D7AA82D06F.769109A2E6FF48FDD6B8110B562E9E48B29E5104%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dc17c8f55277bc1f1%26offsetms%3D5000%26itag%3Dw160%26sigh%3D0zFaXJYV4cL7ZhGF8otB8iAqKQQ&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v12.nonxt8.googlevideo.com/videoplayback?id%3Dc17c8f55277bc1f1%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330152978%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D55D75993811B078137163CB8E252F3D7AA82D06F.769109A2E6FF48FDD6B8110B562E9E48B29E5104%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dc17c8f55277bc1f1%26offsetms%3D5000%26itag%3Dw160%26sigh%3D0zFaXJYV4cL7ZhGF8otB8iAqKQQ&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-6695002481496992526?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/6695002481496992526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/submerged-school-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6695002481496992526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6695002481496992526'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/submerged-school-project.html' title='Submerged (School Project)'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AoqEZhXDIS4/SybcL-l_0UI/AAAAAAAAAw4/lMJYeJNeRsE/s72-c/ingame_level1_03.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-6056284628198316694</id><published>2009-12-14T21:22:00.000+01:00</published><updated>2009-12-14T21:36:46.565+01:00</updated><title type='text'>Using the Engine</title><content type='html'>My latest school project was built-upon the CoreEngine. A lot has changed during the development of that project. &lt;br /&gt;&lt;br /&gt;Animation support was added (Video features XNAnimation and their PlayerMarine)&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-6563553daf8a3e58" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v3.nonxt7.googlevideo.com/videoplayback?id%3D6563553daf8a3e58%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330152978%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D165D533195CA6D9BBDB5225291C7F6CFE3BDF209.5AF2D2155F4D8C20D56A6242F8DF62C2BB940D7%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D6563553daf8a3e58%26offsetms%3D5000%26itag%3Dw160%26sigh%3D4BZgZduCEQzjdMW1IJxtzNEdujk&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v3.nonxt7.googlevideo.com/videoplayback?id%3D6563553daf8a3e58%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330152978%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D165D533195CA6D9BBDB5225291C7F6CFE3BDF209.5AF2D2155F4D8C20D56A6242F8DF62C2BB940D7%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D6563553daf8a3e58%26offsetms%3D5000%26itag%3Dw160%26sigh%3D4BZgZduCEQzjdMW1IJxtzNEdujk&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Sunburn Lightning &amp;amp; Rendering was added to the engine...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.synapsegaming.com/external/old-images/sunburn-main.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://www.synapsegaming.com/external/old-images/sunburn-main.jpg" border="0" alt=""&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More integration with JigLibX and NPC pathnodes...&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-a81ae64e1b558f4c" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v24.nonxt8.googlevideo.com/videoplayback?id%3Da81ae64e1b558f4c%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330152978%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D23A036F37160F5884D3EF59CFFF4B07366DF9760.84D632FD7F6BAE55D2911774672A9A144014B18E%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da81ae64e1b558f4c%26offsetms%3D5000%26itag%3Dw160%26sigh%3DO9rZQ8WyfTSf4MNq4A1E-Ncpq9k&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v24.nonxt8.googlevideo.com/videoplayback?id%3Da81ae64e1b558f4c%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330152978%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D23A036F37160F5884D3EF59CFFF4B07366DF9760.84D632FD7F6BAE55D2911774672A9A144014B18E%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da81ae64e1b558f4c%26offsetms%3D5000%26itag%3Dw160%26sigh%3DO9rZQ8WyfTSf4MNq4A1E-Ncpq9k&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;And ofcourse a lot of bugfixing :)&lt;br /&gt;&lt;br /&gt;I will post some screenshots of our final product, called Submerged (as far as we could finish it during our 4 weeks of development) &lt;br /&gt;&lt;br /&gt;More of this in a later Blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-6056284628198316694?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/6056284628198316694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/using-engine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6056284628198316694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/6056284628198316694'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/using-engine.html' title='Using the Engine'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2942877753097296913.post-1542200970894031097</id><published>2009-12-14T20:54:00.000+01:00</published><updated>2009-12-14T20:56:56.109+01:00</updated><title type='text'>Welcome</title><content type='html'>Welcome to the Core Engine's Development Blog. Here you can read about the development proces of my 3D XNA Engine. Based upon the Innovative Engine by Sean James. &lt;br /&gt;&lt;br /&gt;In my blogs I will talk about newly added features and give some basic examples to work on yourself.&lt;br /&gt;&lt;br /&gt;I hope you will enjoy reading this blog. If you have any questions or comments, just add a comment below the blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2942877753097296913-1542200970894031097?l=coreenginedev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coreenginedev.blogspot.com/feeds/1542200970894031097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/welcome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1542200970894031097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2942877753097296913/posts/default/1542200970894031097'/><link rel='alternate' type='text/html' href='http://coreenginedev.blogspot.com/2009/12/welcome.html' title='Welcome'/><author><name>Tom</name><uri>http://www.blogger.com/profile/03144304858050762127</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_AoqEZhXDIS4/Syf7AONzbcI/AAAAAAAAAxA/sFL6jImCLoM/s1600-R/avatarpic-l.png'/></author><thr:total>0</thr:total></entry></feed>
