<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0UHSXYzcCp7ImA9WhRQF0s.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103</id><updated>2011-12-13T00:33:58.888-08:00</updated><category term="l2j" /><category term="How-To" /><category term="open source" /><category term="java" /><category term="game engine" /><category term="3d modelling tools" /><category term="Irrlicht Tutorial" /><category term="C/C++" /><category term="programming" /><category term="Irrlicht" /><title>Game Dev Fan</title><subtitle type="html">Everything about game development, links to free resources, articles and my stupid opinion on anything :)
Just have fun talking about this.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://gamedevfan.blogspot.com/" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/GameDevFan" /><feedburner:info uri="gamedevfan" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DEcBRnc4fCp7ImA9WxBSFks.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-484090080636553576</id><published>2009-12-24T06:47:00.000-08:00</published><updated>2009-12-24T06:47:37.934-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-24T06:47:37.934-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="3d modelling tools" /><title>Learning Blender</title><content type="html">I spent some time trying to learn Blender. I have no previous experience with 3D modeling tools and Blender looks very complicated and confusing for me. It has many key combinations and buttons, even your actions can lead to something unexpected. &lt;br /&gt;
&lt;br /&gt;
At first I spent some time reading &lt;a href="http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro"&gt;Blender – Noob to Pro&lt;/a&gt; and doing the examples. I managed to get the basics – grab, rotate, scale, extrude, etc. &lt;br /&gt;
&lt;br /&gt;
I haven’t made any decent model so I start to read Introduction to Character Animation by Ryan Dale. It is a really great document, if you need to learn Blender, this book can help you a lot. &lt;br /&gt;
&lt;br /&gt;
Here are my first attempts, don’t laugh much:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qfg-tuDgxAc/SzN-fusgAaI/AAAAAAAABps/012QZpmMLkk/s1600-h/bcharacter+1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qfg-tuDgxAc/SzN-fusgAaI/AAAAAAAABps/012QZpmMLkk/s320/bcharacter+1.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt; Shaping the mouth.&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/_qfg-tuDgxAc/SzN-hXhwQrI/AAAAAAAABp0/UOskYN_KkTs/s1600-h/bcharacter+2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qfg-tuDgxAc/SzN-hXhwQrI/AAAAAAAABp0/UOskYN_KkTs/s320/bcharacter+2.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;The head. It looks creepy.&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt; &lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_qfg-tuDgxAc/SzN-iMdBptI/AAAAAAAABp8/2GZgpx9NoNY/s1600-h/bcharacter+3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qfg-tuDgxAc/SzN-iMdBptI/AAAAAAAABp8/2GZgpx9NoNY/s320/bcharacter+3.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://3.bp.blogspot.com/_qfg-tuDgxAc/SzN-kLk16EI/AAAAAAAABqE/YNvQ89GwKPo/s1600-h/bcharacter+4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qfg-tuDgxAc/SzN-kLk16EI/AAAAAAAABqE/YNvQ89GwKPo/s320/bcharacter+4.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;I made some mistakes.&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt; &lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_qfg-tuDgxAc/SzN-lOdhkpI/AAAAAAAABqM/zRKfKZa3f1o/s1600-h/bcharacter+5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qfg-tuDgxAc/SzN-lOdhkpI/AAAAAAAABqM/zRKfKZa3f1o/s320/bcharacter+5.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Yey, almost done! &lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-484090080636553576?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/EUNxknvRni4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/484090080636553576/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=484090080636553576" title="36 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/484090080636553576?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/484090080636553576?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/EUNxknvRni4/learning-blender.html" title="Learning Blender" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_qfg-tuDgxAc/SzN-fusgAaI/AAAAAAAABps/012QZpmMLkk/s72-c/bcharacter+1.jpg" height="72" width="72" /><thr:total>36</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2009/12/learning-blender.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYFSXk-eCp7ImA9WxBSEEg.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-8110998004189821284</id><published>2009-12-17T05:21:00.000-08:00</published><updated>2009-12-17T05:21:58.750-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-17T05:21:58.750-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Irrlicht Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Irrlicht" /><category scheme="http://www.blogger.com/atom/ns#" term="C/C++" /><category scheme="http://www.blogger.com/atom/ns#" term="How-To" /><title>Irrlicht – my third person camera</title><content type="html">Currently I work on my own RPG game and I hope after gaining enough experience with it I’ll try to make my own MMORPG. Am I humble enough? &lt;br /&gt;
&lt;br /&gt;
There are many MMORPG games on the market and all of them can work as an inspiration. My first task was to make a third person camera or more precisely third person camera animator. You don’t need to make an animator to use this logic. Creating an animator leads to some complications that I won’t discuss here. &lt;br /&gt;
&lt;br /&gt;
We will use the right mouse button to orbit around the object and the scroller to zoom in and out. You need to add something like this in your event receiver or in OnEvent function of the animator:&lt;br /&gt;
&lt;pre&gt; &lt;strong&gt;case&lt;/strong&gt; &lt;font color="#2040a0"&gt;EMIE_RMOUSE_PRESSED_DOWN&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;
  &lt;font color="#2040a0"&gt;MouseKeys&lt;/font&gt;&lt;font color="4444FF"&gt;[&lt;/font&gt;&lt;font color="#FF0000"&gt;2&lt;/font&gt;&lt;font color="4444FF"&gt;]&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;strong&gt;true&lt;/strong&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;strong&gt;break&lt;/strong&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
 &lt;strong&gt;case&lt;/strong&gt; &lt;font color="#2040a0"&gt;EMIE_RMOUSE_LEFT_UP&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;
  &lt;font color="#2040a0"&gt;MouseKeys&lt;/font&gt;&lt;font color="4444FF"&gt;[&lt;/font&gt;&lt;font color="#FF0000"&gt;2&lt;/font&gt;&lt;font color="4444FF"&gt;]&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;strong&gt;break&lt;/strong&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
 &lt;strong&gt;case&lt;/strong&gt; &lt;font color="#2040a0"&gt;EMIE_MOUSE_MOVED&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;
  &lt;font color="#2040a0"&gt;MousePos&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;CursorControl&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getRelativePosition&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;strong&gt;break&lt;/strong&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
 &lt;strong&gt;case&lt;/strong&gt; &lt;font color="#2040a0"&gt;EMIE_MOUSE_WHEEL&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;
  &lt;font color="#2040a0"&gt;Zoom&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;Zoom&lt;/font&gt; &lt;font color="4444FF"&gt;+&lt;/font&gt; &lt;font color="#2040a0"&gt;event&lt;/font&gt;.&lt;font color="#2040a0"&gt;MouseInput&lt;/font&gt;.&lt;font color="#2040a0"&gt;Wheel&lt;/font&gt;&lt;font color="4444FF"&gt;*&lt;/font&gt;&lt;font color="#2040a0"&gt;ZoomSpeed&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;strong&gt;if&lt;/strong&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;Zoom&lt;/font&gt; &lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt; &lt;font color="#2040a0"&gt;TargetMinDistance&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;
   &lt;font color="#2040a0"&gt;Zoom&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;TargetMinDistance&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;strong&gt;if&lt;/strong&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;Zoom&lt;/font&gt; &lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#2040a0"&gt;TargetMaxDistance&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;
      &lt;font color="#2040a0"&gt;Zoom&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;TargetMaxDistance&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
&lt;/pre&gt;&lt;br /&gt;
Now, when we have the input data, we must implement the logic. You must add this in animateNode function of your animator, or in some update method if you don’t use an animator.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt; &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;vector3df&lt;/font&gt; &lt;font color="#2040a0"&gt;target&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;targetNode&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getPosition&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;f32&lt;/font&gt; &lt;font color="#2040a0"&gt;nRotX&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;RotX&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
 &lt;font color="#2040a0"&gt;f32&lt;/font&gt; &lt;font color="#2040a0"&gt;nRotY&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;RotY&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;strong&gt;if&lt;/strong&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;isMouseKeyDown&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;2&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;
 &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
  &lt;strong&gt;if&lt;/strong&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;!&lt;/font&gt;&lt;font color="#2040a0"&gt;Rotating&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;

  &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
   &lt;font color="#2040a0"&gt;RotateStart&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;MousePos&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
   &lt;font color="#2040a0"&gt;Rotating&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;strong&gt;true&lt;/strong&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

   &lt;font color="#2040a0"&gt;nRotX&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;RotX&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
   &lt;font color="#2040a0"&gt;nRotY&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;RotY&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
  &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;

  &lt;strong&gt;else&lt;/strong&gt;
  &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
   &lt;font color="#2040a0"&gt;nRotX&lt;/font&gt; &lt;font color="4444FF"&gt;+&lt;/font&gt;&lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;RotateStart&lt;/font&gt;.&lt;font color="#2040a0"&gt;X&lt;/font&gt; &lt;font color="4444FF"&gt;-&lt;/font&gt; &lt;font color="#2040a0"&gt;MousePos&lt;/font&gt;.&lt;font color="#2040a0"&gt;X&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt; &lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;RotateSpeed&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

   &lt;font color="#2040a0"&gt;nRotY&lt;/font&gt; &lt;font color="4444FF"&gt;+&lt;/font&gt;&lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;RotateStart&lt;/font&gt;.&lt;font color="#2040a0"&gt;Y&lt;/font&gt; &lt;font color="4444FF"&gt;-&lt;/font&gt; &lt;font color="#2040a0"&gt;MousePos&lt;/font&gt;.&lt;font color="#2040a0"&gt;Y&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt; &lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;RotateSpeed&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
 &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
 &lt;strong&gt;else&lt;/strong&gt; &lt;strong&gt;if&lt;/strong&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;Rotating&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;
 &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;

  &lt;font color="#2040a0"&gt;RotX&lt;/font&gt; &lt;font color="4444FF"&gt;+&lt;/font&gt;&lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;RotateStart&lt;/font&gt;.&lt;font color="#2040a0"&gt;X&lt;/font&gt; &lt;font color="4444FF"&gt;-&lt;/font&gt; &lt;font color="#2040a0"&gt;MousePos&lt;/font&gt;.&lt;font color="#2040a0"&gt;X&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt; &lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;RotateSpeed&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;font color="#2040a0"&gt;RotY&lt;/font&gt; &lt;font color="4444FF"&gt;+&lt;/font&gt;&lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;RotateStart&lt;/font&gt;.&lt;font color="#2040a0"&gt;Y&lt;/font&gt; &lt;font color="4444FF"&gt;-&lt;/font&gt; &lt;font color="#2040a0"&gt;MousePos&lt;/font&gt;.&lt;font color="#2040a0"&gt;Y&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt; &lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;RotateSpeed&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;font color="#2040a0"&gt;nRotX&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;RotX&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;nRotY&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;RotY&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;Rotating&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;strong&gt;false&lt;/strong&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;target&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;targetNode&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getPosition&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;Pos&lt;/font&gt;.&lt;font color="#2040a0"&gt;X&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;Zoom&lt;/font&gt; &lt;font color="4444FF"&gt;+&lt;/font&gt; &lt;font color="#2040a0"&gt;target&lt;/font&gt;.&lt;font color="#2040a0"&gt;X&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
 &lt;font color="#2040a0"&gt;Pos&lt;/font&gt;.&lt;font color="#2040a0"&gt;Y&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;Zoom&lt;/font&gt; &lt;font color="4444FF"&gt;+&lt;/font&gt; &lt;font color="#2040a0"&gt;target&lt;/font&gt;.&lt;font color="#2040a0"&gt;Y&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;Pos&lt;/font&gt;.&lt;font color="#2040a0"&gt;Z&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;target&lt;/font&gt;.&lt;font color="#2040a0"&gt;Z&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;Pos&lt;/font&gt;.&lt;font color="#2040a0"&gt;rotateXYBy&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;nRotY&lt;/font&gt;, &lt;font color="#2040a0"&gt;target&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;Pos&lt;/font&gt;.&lt;font color="#2040a0"&gt;rotateXZBy&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="#2040a0"&gt;nRotX&lt;/font&gt;, &lt;font color="#2040a0"&gt;target&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;camera&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;setPosition&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;Pos&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;camera&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;setTarget&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;target&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt; 

&lt;/pre&gt;This is very basic functionality but you will grasp the logic. I’ve used the Maya animator the get the idea. My code have a nasty flip on the top and the bottom, you can fix it if you want with restricting the camera movement or changing the up vector. And don’t make the camera parent or child of the target.&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-8110998004189821284?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/YnuitgPzrfA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/8110998004189821284/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=8110998004189821284" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8110998004189821284?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8110998004189821284?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/YnuitgPzrfA/irrlicht-my-third-person-camera.html" title="Irrlicht – my third person camera" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2009/12/irrlicht-my-third-person-camera.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMCQXY4eip7ImA9WxNUFkw.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-7858702828436465040</id><published>2009-11-07T08:13:00.000-08:00</published><updated>2009-11-07T08:14:20.832-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-07T08:14:20.832-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="3d modelling tools" /><title>Blender – more than 3D</title><content type="html">Blender is quite popular, open-source, graphics software released under the GNU General Public License. It is used in many projects – commercial or other, and can be a good choice for resource creation.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qfg-tuDgxAc/SvWcdePA2GI/AAAAAAAABO4/-J__8_hT6gs/s1600-h/blender.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qfg-tuDgxAc/SvWcdePA2GI/AAAAAAAABO4/-J__8_hT6gs/s400/blender.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Blender has many nice features for modeling, rendering and animation of 3D characters and scenes.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qfg-tuDgxAc/SvWcfAlrf-I/AAAAAAAABPA/ERTESuj-a-o/s1600-h/blender+model.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qfg-tuDgxAc/SvWcfAlrf-I/AAAAAAAABPA/ERTESuj-a-o/s400/blender+model.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Blender is relatively complex and difficult for newbies. If you intent to learn blender you need to equip yourself with some patience.&lt;br /&gt;
&lt;br /&gt;
Animation with Blender - Best Character Animation for Suzanne Awards 2009.&lt;br /&gt;
&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/fNEU1WF73CA&amp;hl=en&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6"&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/fNEU1WF73CA&amp;hl=en&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-7858702828436465040?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/wQ3ovPIezFY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/7858702828436465040/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=7858702828436465040" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/7858702828436465040?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/7858702828436465040?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/wQ3ovPIezFY/blender-more-than-3d.html" title="Blender – more than 3D" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_qfg-tuDgxAc/SvWcdePA2GI/AAAAAAAABO4/-J__8_hT6gs/s72-c/blender.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2009/11/blender-more-than-3d.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cFRHg8fCp7ImA9WxNVGUQ.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-5214185018308891410</id><published>2009-10-31T06:58:00.000-07:00</published><updated>2009-10-31T07:23:35.674-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-31T07:23:35.674-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="Irrlicht Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Irrlicht" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Irrlicht Engine - Easy Tutorial – Basics</title><content type="html">This post is part of my tutorial on how to use Irrlicht Engine and a continuation to the article &lt;a href="http://gamedevfan.blogspot.com/2009/10/irrlicht-engine-easy-tutorial-intro.html"&gt;Irrlicht Engine - Easy Tutorial – Intro&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Let’s view the example I used in the previous post. Here is the code:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;#include &lt;span style="color: green;"&gt;&amp;lt;irrlicht.h&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;

&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;irr&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;core&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;scene&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;video&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;io&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;gui&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

&lt;b&gt;int&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;main&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;

&lt;span style="color: #4444ff;"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;
 &lt;span style="color: #2040a0;"&gt;IrrlichtDevice&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;*&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;device&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;createDevice&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;
   &lt;span style="color: #2040a0;"&gt;video&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;EDT_OPENGL&lt;/span&gt;,
   &lt;span style="color: #2040a0;"&gt;dimension2d&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;u32&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;800&lt;/span&gt;, &lt;span style="color: red;"&gt;600&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;,
   &lt;span style="color: red;"&gt;16&lt;/span&gt;, &lt;b&gt;false&lt;/b&gt;, &lt;b&gt;false&lt;/b&gt;, &lt;b&gt;false&lt;/b&gt;, &lt;span style="color: red;"&gt;0&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;b&gt;if&lt;/b&gt; &lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;!&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;
  &lt;b&gt;return&lt;/b&gt; &lt;span style="color: red;"&gt;1&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;IVideoDriver&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;*&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;driver&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;getVideoDriver&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;ISceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;*&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt;
   &lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;getSceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;addCameraSceneNode&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;b&gt;while&lt;/b&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;run&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;

 &lt;span style="color: #4444ff;"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;
  &lt;span style="color: #2040a0;"&gt;driver&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;beginScene&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;
    &lt;b&gt;true&lt;/b&gt;, &lt;b&gt;true&lt;/b&gt;, &lt;span style="color: #2040a0;"&gt;SColor&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;255&lt;/span&gt;,&lt;span style="color: red;"&gt;50&lt;/span&gt;,&lt;span style="color: red;"&gt;130&lt;/span&gt;,&lt;span style="color: red;"&gt;50&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

  &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;drawAll&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
  &lt;span style="color: #2040a0;"&gt;driver&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;endScene&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
 &lt;span style="color: #4444ff;"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;drop&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
 &lt;b&gt;return&lt;/b&gt; &lt;span style="color: red;"&gt;0&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;span style="color: #4444ff;"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;

&lt;/pre&gt;&lt;br /&gt;
This is a very basic application. First thing we need to do is to create Irrlicht device with the createDevice function. The first parameter is video::E_DRIVER_TYPE type and can be video::EDT_DIRECT3D9, video::EDT_DIRECT3D8, video::EDT_OPENGL, video::EDT_NULL, video::EDT_SOFTWARE, video::EDT_BURNINGSVIDEO. I’ll use video::EDT_OPENGL because my Irrlicht binaries are from the official site and they are not built with DirectX. (And I am lazy.)&lt;br /&gt;
&lt;br /&gt;
Next parameter as you can assume is the window size. I won’t discuss the other parameters now as they are not important for my tutorial. In fact I can call createDevice this way:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="color: #2040a0;"&gt;IrrlichtDevice&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;*&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;device&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;createDevice&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;

   &lt;span style="color: #2040a0;"&gt;video&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;EDT_OPENGL&lt;/span&gt;,
   &lt;span style="color: #2040a0;"&gt;dimension2d&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;u32&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;800&lt;/span&gt;, &lt;span style="color: red;"&gt;600&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;br /&gt;
When you finish using the device don’t forget to call:&lt;br /&gt;
&lt;pre&gt;&lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;drop&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt; 
&lt;/pre&gt;You can learn more for the Irrlicht device class here - http://irrlicht.sourceforge.net/docu/classirr_1_1_irrlicht_device.html.&lt;br /&gt;
&lt;br /&gt;
And now the cool part – the scene manager object. It manages the scene nodes, meshes, cameras, lights and so on. Your scene is represented as a hierarchical scene graph.&lt;br /&gt;
You obtain a reference to the scene manager object through the call:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;getSceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;br /&gt;
Let’s do something fun with our example. I’ll change our camera to FPS mode – FPS camera in Irrlicht is a camera node suited for a first person shooter. It moves with the arrows and rotates with the mouse. &lt;br /&gt;
I’ll add some simple scene nodes as cube and sphere. &lt;br /&gt;
&lt;br /&gt;
To add a FPS camera we must call:&lt;br /&gt;
&lt;pre&gt;&lt;span style="color: #2040a0;"&gt;ICameraSceneNode&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;*&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;camera&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;addCameraSceneNodeFPS&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;br /&gt;
Our cube:&lt;br /&gt;
&lt;pre&gt;&lt;span style="color: #2040a0;"&gt;ISceneNode&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;*&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;cube&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;

        &lt;span style="color: #2040a0;"&gt;addCubeSceneNode&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;15.0f&lt;/span&gt;, &lt;span style="color: red;"&gt;0&lt;/span&gt;, &lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: red;"&gt;1&lt;/span&gt;, &lt;span style="color: #2040a0;"&gt;core&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;vector3df&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;150&lt;/span&gt;,&lt;span style="color: red;"&gt;10&lt;/span&gt;,&lt;span style="color: red;"&gt;10&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;br /&gt;
To make the camera look at the cube:&lt;br /&gt;
&lt;pre&gt;&lt;span style="color: #2040a0;"&gt;camera&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;setTarget&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;cube&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;getAbsolutePosition&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;br /&gt;
I’ll add a light source with the default parameters. Without it our objects will look ugly and black. Now they will be ugly but with some light on the front side. &lt;br /&gt;
&lt;br /&gt;
Here is the full code:&lt;br /&gt;
&lt;pre&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;#include &lt;span style="color: green;"&gt;&amp;lt;irrlicht.h&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;

&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;irr&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;core&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;scene&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;video&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;io&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;b&gt;using&lt;/b&gt; &lt;b&gt;namespace&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;gui&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

&lt;b&gt;int&lt;/b&gt; &lt;span style="color: #2040a0;"&gt;main&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;

&lt;span style="color: #4444ff;"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;
 &lt;span style="color: #2040a0;"&gt;IrrlichtDevice&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;*&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;device&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;createDevice&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;
   &lt;span style="color: #2040a0;"&gt;video&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;EDT_OPENGL&lt;/span&gt;,
   &lt;span style="color: #2040a0;"&gt;dimension2d&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;u32&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;800&lt;/span&gt;, &lt;span style="color: red;"&gt;600&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;b&gt;if&lt;/b&gt; &lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;!&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;
  &lt;b&gt;return&lt;/b&gt; &lt;span style="color: red;"&gt;1&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;IVideoDriver&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;*&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;driver&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;getVideoDriver&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;ISceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;*&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt;
   &lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;getSceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;ICameraSceneNode&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;*&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;camera&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt;
   &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;addCameraSceneNodeFPS&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;ISceneNode&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;*&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;cube&lt;/span&gt; &lt;span style="color: #4444ff;"&gt;=&lt;/span&gt; &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;
   &lt;span style="color: #2040a0;"&gt;addCubeSceneNode&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;15.0f&lt;/span&gt;, &lt;span style="color: red;"&gt;0&lt;/span&gt;, &lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: red;"&gt;1&lt;/span&gt;,
     &lt;span style="color: #2040a0;"&gt;core&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;vector3df&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;150&lt;/span&gt;,&lt;span style="color: red;"&gt;10&lt;/span&gt;,&lt;span style="color: red;"&gt;10&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;addSphereSceneNode&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;
   &lt;span style="color: red;"&gt;5.0f&lt;/span&gt;, &lt;span style="color: red;"&gt;16&lt;/span&gt;, &lt;span style="color: red;"&gt;0&lt;/span&gt;, &lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: red;"&gt;1&lt;/span&gt;,
   &lt;span style="color: #2040a0;"&gt;core&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;:&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;vector3df&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;100&lt;/span&gt;,&lt;span style="color: red;"&gt;30&lt;/span&gt;,&lt;span style="color: red;"&gt;10&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;addLightSceneNode&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;camera&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;setTarget&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;cube&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;getAbsolutePosition&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

 &lt;b&gt;while&lt;/b&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;run&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;
 &lt;span style="color: #4444ff;"&gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;
  &lt;span style="color: #2040a0;"&gt;driver&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;beginScene&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;

    &lt;b&gt;true&lt;/b&gt;, &lt;b&gt;true&lt;/b&gt;, &lt;span style="color: #2040a0;"&gt;SColor&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;255&lt;/span&gt;,&lt;span style="color: red;"&gt;50&lt;/span&gt;,&lt;span style="color: red;"&gt;130&lt;/span&gt;,&lt;span style="color: red;"&gt;50&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;

  &lt;span style="color: #2040a0;"&gt;sceneManager&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;drawAll&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
  &lt;span style="color: #2040a0;"&gt;driver&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;endScene&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
 &lt;span style="color: #4444ff;"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;

 &lt;span style="color: #2040a0;"&gt;device&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;-&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #2040a0;"&gt;drop&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;(&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;)&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
 &lt;b&gt;return&lt;/b&gt; &lt;span style="color: red;"&gt;0&lt;/span&gt;&lt;span style="color: #4444ff;"&gt;;&lt;/span&gt;
&lt;span style="color: #4444ff;"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;
And the result&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/_qfg-tuDgxAc/SuxB_B_k4OI/AAAAAAAABLo/LRjG57G9Moc/s1600-h/example.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qfg-tuDgxAc/SuxB_B_k4OI/AAAAAAAABLo/LRjG57G9Moc/s400/example.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-5214185018308891410?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/RldaUFeWiZc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/5214185018308891410/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=5214185018308891410" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/5214185018308891410?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/5214185018308891410?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/RldaUFeWiZc/irrlicht-engine-easy-tutorial-basics.html" title="Irrlicht Engine - Easy Tutorial – Basics" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_qfg-tuDgxAc/SuxB_B_k4OI/AAAAAAAABLo/LRjG57G9Moc/s72-c/example.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2009/10/irrlicht-engine-easy-tutorial-basics.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAHSHo6eip7ImA9WxNVF08.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-8980075937738463834</id><published>2009-10-28T04:02:00.000-07:00</published><updated>2009-10-28T04:02:19.412-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-28T04:02:19.412-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Irrlicht Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Irrlicht" /><category scheme="http://www.blogger.com/atom/ns#" term="C/C++" /><category scheme="http://www.blogger.com/atom/ns#" term="How-To" /><title>Irrlicht - How to get mouse pointer coordinates on a terrain?</title><content type="html">You may need the coordinates where a user clicked on your terrain for many reasons. For example many MMORPG games use the mouse to move the character. Using point-and-click system is relatively easy for the players and not hard to implement as a code. &lt;br /&gt;
&lt;br /&gt;
How to get mouse coordinates from a 3D place with Irrlicht? You need to use getCollisionPoint member function of the irr::scene::ISceneCollisionManager class. The current documentation at the official site is for version 1.5.1 but the current Irrlicht version is 1.6. getCollisionPoint function has one more parameter in the current version.&lt;br /&gt;
If you try to compile the project with only four parameters you’ll get an error message:&lt;br /&gt;
&lt;br /&gt;
**** Build of configuration Debug for project GameNext ****&lt;br /&gt;
&lt;br /&gt;
**** Internal Builder is used for build               ****&lt;br /&gt;
g++ -ID:\irrlicht-1.6\include -O0 -g3 -Wall -c -fmessage-length=0 -osrc\GameNext.o ..\src\GameNext.cpp&lt;br /&gt;
..\src\GameNext.cpp: In function `int main()':&lt;br /&gt;
..\src\GameNext.cpp:59: error: no matching function for call to `irr::scene::ISceneCollisionManager::getCollisionPoint(const irr::core::line3d&lt;font color="#2040a0"&gt;&lt;strong&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;irr::f32&lt;/font&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="ff0000"&gt;&amp;amp;&lt;/font&gt;, irr::scene::ITriangleSelector*&lt;font color="ff0000"&gt;&amp;amp;&lt;/font&gt;, irr::core::vector3df&lt;font color="ff0000"&gt;&amp;amp;&lt;/font&gt;, irr::core::triangle3df&lt;font color="ff0000"&gt;&amp;amp;&lt;/font&gt;)'&lt;br /&gt;
D:/irrlicht-1.6/include/ISceneCollisionManager.h:43: note: candidates are: virtual bool irr::scene::ISceneCollisionManager::getCollisionPoint(const irr::core::line3d&lt;font color="#2040a0"&gt;&lt;strong&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;irr::f32&lt;/font&gt;&lt;font color="4444FF"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="ff0000"&gt;&amp;amp;&lt;/font&gt;, irr::scene::ITriangleSelector*, irr::core::vector3df&lt;font color="ff0000"&gt;&amp;amp;&lt;/font&gt;, irr::core::triangle3df&lt;font color="ff0000"&gt;&amp;amp;&lt;/font&gt;, const irr::scene::ISceneNode*&lt;font color="ff0000"&gt;&amp;amp;&lt;/font&gt;)&lt;br /&gt;
..\src\GameNext.cpp:57: warning: unused variable 'node'&lt;br /&gt;
Build error occurred, build is stopped&lt;br /&gt;
Time consumed: 1873  ms.  &lt;br /&gt;
&lt;br /&gt;
The right syntax is:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;strong&gt;bool&lt;/strong&gt; &lt;font color="#2040a0"&gt;getCollisionPoint&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;strong&gt;const&lt;/strong&gt; &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;line3d&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#2040a0"&gt;f32&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;amp;&lt;/font&gt; &lt;font color="#2040a0"&gt;ray&lt;/font&gt;,
        &lt;font color="#2040a0"&gt;ITriangleSelector&lt;/font&gt;&lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;selector&lt;/font&gt;, &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;vector3df&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;amp;&lt;/font&gt; &lt;font color="#2040a0"&gt;outCollisionPoint&lt;/font&gt;,
        &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;triangle3df&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;amp;&lt;/font&gt; &lt;font color="#2040a0"&gt;outTriangle&lt;/font&gt;, &lt;strong&gt;const&lt;/strong&gt; &lt;font color="#2040a0"&gt;ISceneNode&lt;/font&gt;&lt;font color="4444FF"&gt;*&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;amp;&lt;/font&gt; &lt;font color="#2040a0"&gt;outNode&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;

&lt;/pre&gt;&lt;br /&gt;
So how would our code look like? &lt;br /&gt;
&lt;br /&gt;
First we need to get the cursor position in the 2D space.&lt;br /&gt;
&lt;pre&gt;&lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;position2d&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt; &lt;font color="#2040a0"&gt;s32&lt;/font&gt; &lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#2040a0"&gt;pos&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;cursor&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getPosition&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
&lt;/pre&gt;Now, we need to get the 3D vector from it.&lt;br /&gt;
&lt;pre&gt;&lt;strong&gt;const&lt;/strong&gt; &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;line3d&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#2040a0"&gt;f32&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#2040a0"&gt;ray&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; 
        &lt;font color="#2040a0"&gt;collisionManager&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getRayFromScreenCoordinates&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;pos&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
&lt;/pre&gt;And check if our line intersects with the terrain.&lt;br /&gt;
&lt;pre&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;collisionManager&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getCollisionPoint&lt;/font&gt;
        &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;ray&lt;/font&gt;, &lt;font color="#2040a0"&gt;selector&lt;/font&gt;, &lt;font color="#2040a0"&gt;point&lt;/font&gt;, &lt;font color="#2040a0"&gt;triangle&lt;/font&gt;, &lt;font color="#2040a0"&gt;node&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;

&lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
 &lt;font color="#444444"&gt;// do something&lt;/font&gt;
&lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;/pre&gt;&lt;br /&gt;
Here is the full demo code:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;font color="0000ff"&gt;&lt;strong&gt;#include &lt;font color="#008000"&gt;&amp;lt;irrlicht.h&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;

&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;irr&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;scene&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;video&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;io&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;gui&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

&lt;strong&gt;int&lt;/strong&gt; &lt;font color="#2040a0"&gt;main&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt; &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;IrrlichtDevice&lt;/font&gt; &lt;font color="4444FF"&gt;*&lt;/font&gt;&lt;font color="#2040a0"&gt;device&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;createDevice&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;video&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;EDT_OPENGL&lt;/font&gt;,
   &lt;font color="#2040a0"&gt;dimension2d&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#2040a0"&gt;u32&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;800&lt;/font&gt;, &lt;font color="#FF0000"&gt;600&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;,
   &lt;font color="#FF0000"&gt;16&lt;/font&gt;, &lt;strong&gt;false&lt;/strong&gt;, &lt;strong&gt;false&lt;/strong&gt;, &lt;strong&gt;false&lt;/strong&gt;, &lt;font color="#FF0000"&gt;0&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;strong&gt;if&lt;/strong&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;!&lt;/font&gt;&lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;
  &lt;strong&gt;return&lt;/strong&gt; &lt;font color="#FF0000"&gt;1&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;IVideoDriver&lt;/font&gt;&lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;driver&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getVideoDriver&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;ISceneManager&lt;/font&gt;&lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;sceneManager&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getSceneManager&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
 &lt;font color="#2040a0"&gt;IGUIEnvironment&lt;/font&gt;&lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;guiEnvironment&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getGUIEnvironment&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#444444"&gt;// -------&lt;/font&gt;
 &lt;font color="#2040a0"&gt;scene&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;ITerrainSceneNode&lt;/font&gt;&lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;currentTerrain&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt;
   &lt;font color="#2040a0"&gt;sceneManager&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;addTerrainSceneNode&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;

     &lt;font color="#008000"&gt;&amp;quot;media/poiheightmap.bmp&amp;quot;&lt;/font&gt;, &lt;font color="#444444"&gt;// height map&lt;/font&gt;
     &lt;font color="#FF0000"&gt;0&lt;/font&gt;, &lt;font color="#444444"&gt;// parent node&lt;/font&gt;
     &lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="#FF0000"&gt;1&lt;/font&gt;, &lt;font color="#444444"&gt;// node id&lt;/font&gt;
     &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;vector3df&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;0.f&lt;/font&gt;, &lt;font color="#FF0000"&gt;0.f&lt;/font&gt;, &lt;font color="#FF0000"&gt;0.f&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;, &lt;font color="#444444"&gt;// position&lt;/font&gt;

     &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;vector3df&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;0.f&lt;/font&gt;, &lt;font color="#FF0000"&gt;0.f&lt;/font&gt;, &lt;font color="#FF0000"&gt;0.f&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;, &lt;font color="#444444"&gt;// rotation&lt;/font&gt;
     &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;vector3df&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;100.f&lt;/font&gt;, &lt;font color="#FF0000"&gt;1.f&lt;/font&gt;, &lt;font color="#FF0000"&gt;100.f&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;, &lt;font color="#444444"&gt;// scale&lt;/font&gt;

     &lt;font color="#2040a0"&gt;video&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;SColor&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;255&lt;/font&gt;, &lt;font color="#FF0000"&gt;255&lt;/font&gt;, &lt;font color="#FF0000"&gt;255&lt;/font&gt;, &lt;font color="#FF0000"&gt;255&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;, &lt;font color="#444444"&gt;// vertexColor&lt;/font&gt;

     &lt;font color="#FF0000"&gt;5&lt;/font&gt;, &lt;font color="#444444"&gt;// maxLOD&lt;/font&gt;
     &lt;font color="#2040a0"&gt;scene&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;ETPS_17&lt;/font&gt;, &lt;font color="#444444"&gt;// patchSize&lt;/font&gt;
     &lt;font color="#FF0000"&gt;4&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;currentTerrain&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;setMaterialFlag&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;video&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;EMF_LIGHTING&lt;/font&gt;, &lt;strong&gt;false&lt;/strong&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
 &lt;font color="#2040a0"&gt;currentTerrain&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;setMaterialTexture&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;0&lt;/font&gt;,
   &lt;font color="#2040a0"&gt;driver&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getTexture&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#008000"&gt;&amp;quot;media/terrain-texture.jpg&amp;quot;&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;currentTerrain&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;setMaterialTexture&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;1&lt;/font&gt;,
   &lt;font color="#2040a0"&gt;driver&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getTexture&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#008000"&gt;&amp;quot;media/detailmap3.jpg&amp;quot;&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
 &lt;font color="#2040a0"&gt;currentTerrain&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;scaleTexture&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;1.0f&lt;/font&gt;, &lt;font color="#FF0000"&gt;20.0f&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;ITriangleSelector&lt;/font&gt;&lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;selector&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;sceneManager&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;
   &lt;font color="#2040a0"&gt;createTerrainTriangleSelector&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;currentTerrain&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;currentTerrain&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;setTriangleSelector&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;selector&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#444444"&gt;// retrieve the SceneCollisionManager object&lt;/font&gt;
 &lt;font color="#2040a0"&gt;ISceneCollisionManager&lt;/font&gt;&lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;collisionManager&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt;

   &lt;font color="#2040a0"&gt;sceneManager&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getSceneCollisionManager&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#444444"&gt;// get cursor&lt;/font&gt;
 &lt;font color="#2040a0"&gt;ICursorControl&lt;/font&gt; &lt;font color="4444FF"&gt;*&lt;/font&gt;&lt;font color="#2040a0"&gt;cursor&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getCursorControl&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#444444"&gt;// simple camera with position and target&lt;/font&gt;
 &lt;font color="#2040a0"&gt;sceneManager&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;addCameraSceneNode&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;0&lt;/font&gt;,
   &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;vector3df&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;100.f&lt;/font&gt;, &lt;font color="#FF0000"&gt;60.f&lt;/font&gt;, &lt;font color="#FF0000"&gt;100.f&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;,
   &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;vector3df&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;900.f&lt;/font&gt;, &lt;font color="#FF0000"&gt;0.f&lt;/font&gt;, &lt;font color="#FF0000"&gt;900.f&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#444444"&gt;// this sphere will mark our collision point&lt;/font&gt;
 &lt;font color="#2040a0"&gt;ISceneNode&lt;/font&gt;&lt;font color="4444FF"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;sphere&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;sceneManager&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;addSphereSceneNode&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;strong&gt;while&lt;/strong&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;run&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt; &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;position2d&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#2040a0"&gt;s32&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#2040a0"&gt;pos&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;cursor&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getPosition&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;vector3df&lt;/font&gt; &lt;font color="#2040a0"&gt;point&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;triangle3df&lt;/font&gt; &lt;font color="#2040a0"&gt;triangle&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;strong&gt;const&lt;/strong&gt; &lt;font color="#2040a0"&gt;ISceneNode&lt;/font&gt; &lt;font color="4444FF"&gt;*&lt;/font&gt;&lt;font color="#2040a0"&gt;node&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#FF0000"&gt;0&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
  &lt;strong&gt;const&lt;/strong&gt; &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="4444FF"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;line3d&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#2040a0"&gt;f32&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#2040a0"&gt;ray&lt;/font&gt; &lt;font color="4444FF"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;collisionManager&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;

    &lt;font color="#2040a0"&gt;getRayFromScreenCoordinates&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;pos&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
  &lt;strong&gt;if&lt;/strong&gt; &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;collisionManager&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getCollisionPoint&lt;/font&gt;
    &lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;ray&lt;/font&gt;, &lt;font color="#2040a0"&gt;selector&lt;/font&gt;, &lt;font color="#2040a0"&gt;point&lt;/font&gt;, &lt;font color="#2040a0"&gt;triangle&lt;/font&gt;, &lt;font color="#2040a0"&gt;node&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;

  &lt;font color="4444FF"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
   &lt;font color="#2040a0"&gt;sphere&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;setPosition&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;point&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
  &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;

  &lt;font color="#2040a0"&gt;driver&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;beginScene&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;strong&gt;true&lt;/strong&gt;, &lt;strong&gt;true&lt;/strong&gt;, &lt;font color="#2040a0"&gt;SColor&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;255&lt;/font&gt;, &lt;font color="#FF0000"&gt;50&lt;/font&gt;, &lt;font color="#FF0000"&gt;130&lt;/font&gt;, &lt;font color="#FF0000"&gt;50&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

  &lt;font color="#2040a0"&gt;sceneManager&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;drawAll&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;guiEnvironment&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;drawAll&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;driver&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;endScene&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;selector&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;drop&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="4444FF"&gt;-&lt;/font&gt;&lt;font color="4444FF"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;drop&lt;/font&gt;&lt;font color="4444FF"&gt;(&lt;/font&gt;&lt;font color="4444FF"&gt;)&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;

 &lt;strong&gt;return&lt;/strong&gt; &lt;font color="#FF0000"&gt;0&lt;/font&gt;&lt;font color="4444FF"&gt;;&lt;/font&gt;
&lt;font color="4444FF"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-8980075937738463834?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/qxCednLVT2M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/8980075937738463834/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=8980075937738463834" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8980075937738463834?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8980075937738463834?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/qxCednLVT2M/irrlicht-how-to-get-mouse-pointer.html" title="Irrlicht - How to get mouse pointer coordinates on a terrain?" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2009/10/irrlicht-how-to-get-mouse-pointer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8GRX48eSp7ImA9WxNVGUQ.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-8609488923214761945</id><published>2009-10-25T02:44:00.000-07:00</published><updated>2009-10-31T07:20:24.071-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-31T07:20:24.071-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Irrlicht Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Irrlicht" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Irrlicht Engine – Easy Tutorial - Intro</title><content type="html">Irrlicht Engine is a powerful way to make your own game even if you are not pro at game development. I decided to write a simple and easy tutorial for beginners on how to make games with Irrlicht. I’ll make it in several parts with a lot of examples.&lt;br /&gt;
&lt;b&gt;What do you need to know for this tutorial?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Basic programming&lt;/li&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;b&gt;What do you need for this tutorial?&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Irrlicht - http://irrlicht.sourceforge.net/&lt;/li&gt;
&lt;li&gt;C++ IDE – I use Eclipse - http://eclipse.org/ for many of my projects, I’ll use it here too.&lt;/li&gt;
&lt;li&gt;If you want to use Irrlicht with DirectX9 you must get DirectX SDK and build Irrlicht with it. I am lazy so I’ll use OpenGL.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Intro&lt;/b&gt;&lt;br /&gt;
How to make Eclipse build your project with Irrlicht support. Of course you don’t need to use Eclipse, if so skip this part. &lt;br /&gt;
&lt;br /&gt;
Create new Eclipse project – in my case I’ll call it IrrlichtTutorial.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qfg-tuDgxAc/SuQbTkc8TII/AAAAAAAABKQ/z005t0XyBtw/s1600-h/eclipse+new+project.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qfg-tuDgxAc/SuQbTkc8TII/AAAAAAAABKQ/z005t0XyBtw/s400/eclipse+new+project.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qfg-tuDgxAc/SuQbVa0yEhI/AAAAAAAABKY/F8mJ7A__ZyY/s1600-h/eclipse+new+project+next.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qfg-tuDgxAc/SuQbVa0yEhI/AAAAAAAABKY/F8mJ7A__ZyY/s400/eclipse+new+project+next.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
To add Irrlicht to your project you need to select it and go to Project-&amp;gt;Properties from the main menu tab.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qfg-tuDgxAc/SuQbjdt1HhI/AAAAAAAABKg/CDbl4Wc7mjo/s1600-h/eclipse+project+properties.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qfg-tuDgxAc/SuQbjdt1HhI/AAAAAAAABKg/CDbl4Wc7mjo/s400/eclipse+project+properties.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Then select C/C++ Build -&amp;gt; Settings. You will see something like this:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qfg-tuDgxAc/SuQbvOvvhII/AAAAAAAABKo/U1NMBzTy9hc/s1600-h/eclipse+project+settings.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qfg-tuDgxAc/SuQbvOvvhII/AAAAAAAABKo/U1NMBzTy9hc/s400/eclipse+project+settings.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Go to GCC C++ Compiler-&amp;gt;Directories and add the path to Irrlicht includes in my case D:\irrlicht-1.6\include.&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/_qfg-tuDgxAc/SuQb5bk2lII/AAAAAAAABKw/s4olXc3-Njg/s1600-h/inludes.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qfg-tuDgxAc/SuQb5bk2lII/AAAAAAAABKw/s4olXc3-Njg/s400/inludes.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qfg-tuDgxAc/SuQcAyvCXYI/AAAAAAAABK4/sEBsX6oA_x0/s1600-h/include.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qfg-tuDgxAc/SuQcAyvCXYI/AAAAAAAABK4/sEBsX6oA_x0/s400/include.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Then go to the C++ Linker part and select Libraries Tab. Add Irrlicht in the first field (Libraries) and the path to the appropriate Irrlicht lib subfolder in the second. In my case it would be D:\irrlicht-1.6\lib\Win32-gcc.&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/_qfg-tuDgxAc/SuQcIkQfNQI/AAAAAAAABLA/Cr1gl4dsy6c/s1600-h/lib.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qfg-tuDgxAc/SuQcIkQfNQI/AAAAAAAABLA/Cr1gl4dsy6c/s400/lib.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
That’s it. Let’s test if we can build a project. Of course to run an Irrlicht project you must have Irrlicht.dll in your path. If you use multiple Irrlicht versions you can add the correct dll in your project folder. &lt;br /&gt;
Now, lets build something simple yet useful. A simple window doing nothing is just fine. Here is the code:&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;pre&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;#include &lt;font color="#008000"&gt;&amp;lt;irrlicht.h&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;

&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;irr&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;core&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;scene&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;video&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;io&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
&lt;strong&gt;using&lt;/strong&gt; &lt;strong&gt;namespace&lt;/strong&gt; &lt;font color="#2040a0"&gt;gui&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;

&lt;strong&gt;int&lt;/strong&gt; &lt;font color="#2040a0"&gt;main&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;
&lt;font color="#4444ff"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
 &lt;font color="#2040a0"&gt;IrrlichtDevice&lt;/font&gt; &lt;font color="#4444ff"&gt;*&lt;/font&gt;&lt;font color="#2040a0"&gt;device&lt;/font&gt; &lt;font color="#4444ff"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;createDevice&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt; &lt;font color="#2040a0"&gt;video&lt;/font&gt;&lt;font color="#4444ff"&gt;:&lt;/font&gt;&lt;font color="#4444ff"&gt;:&lt;/font&gt;&lt;font color="#2040a0"&gt;EDT_OPENGL&lt;/font&gt;, &lt;font color="#2040a0"&gt;dimension2d&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#2040a0"&gt;u32&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#ff0000"&gt;800&lt;/font&gt;, &lt;font color="#ff0000"&gt;600&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;, &lt;font color="#ff0000"&gt;16&lt;/font&gt;,
   &lt;strong&gt;false&lt;/strong&gt;, &lt;strong&gt;false&lt;/strong&gt;, &lt;strong&gt;false&lt;/strong&gt;, &lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;

 &lt;strong&gt;if&lt;/strong&gt; &lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;!&lt;/font&gt;&lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;
  &lt;strong&gt;return&lt;/strong&gt; &lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;IVideoDriver&lt;/font&gt;&lt;font color="#4444ff"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;driver&lt;/font&gt; &lt;font color="#4444ff"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="#4444ff"&gt;-&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getVideoDriver&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
 &lt;font color="#2040a0"&gt;ISceneManager&lt;/font&gt;&lt;font color="#4444ff"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;sceneManager&lt;/font&gt; &lt;font color="#4444ff"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="#4444ff"&gt;-&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getSceneManager&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
 &lt;font color="#2040a0"&gt;IGUIEnvironment&lt;/font&gt;&lt;font color="#4444ff"&gt;*&lt;/font&gt; &lt;font color="#2040a0"&gt;guiEnvironment&lt;/font&gt; &lt;font color="#4444ff"&gt;=&lt;/font&gt; &lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="#4444ff"&gt;-&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;getGUIEnvironment&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;


 &lt;font color="#2040a0"&gt;sceneManager&lt;/font&gt;&lt;font color="#4444ff"&gt;-&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;addCameraSceneNode&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;

 &lt;strong&gt;while&lt;/strong&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="#4444ff"&gt;-&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;run&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;
 &lt;font color="#4444ff"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;driver&lt;/font&gt;&lt;font color="#4444ff"&gt;-&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;beginScene&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;strong&gt;true&lt;/strong&gt;, &lt;strong&gt;true&lt;/strong&gt;, &lt;font color="#2040a0"&gt;SColor&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#ff0000"&gt;255&lt;/font&gt;,&lt;font color="#ff0000"&gt;50&lt;/font&gt;,&lt;font color="#ff0000"&gt;130&lt;/font&gt;,&lt;font color="#ff0000"&gt;50&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;sceneManager&lt;/font&gt;&lt;font color="#4444ff"&gt;-&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;drawAll&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;guiEnvironment&lt;/font&gt;&lt;font color="#4444ff"&gt;-&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;drawAll&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
  &lt;font color="#2040a0"&gt;driver&lt;/font&gt;&lt;font color="#4444ff"&gt;-&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;endScene&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
 &lt;font color="#4444ff"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;

 &lt;font color="#2040a0"&gt;device&lt;/font&gt;&lt;font color="#4444ff"&gt;-&lt;/font&gt;&lt;font color="#4444ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#2040a0"&gt;drop&lt;/font&gt;&lt;font color="#4444ff"&gt;(&lt;/font&gt;&lt;font color="#4444ff"&gt;)&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
 &lt;strong&gt;return&lt;/strong&gt; &lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#4444ff"&gt;;&lt;/font&gt;
&lt;font color="#4444ff"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
And what we’ve done:&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/_qfg-tuDgxAc/SuQcU-Y5D-I/AAAAAAAABLI/kcdBqEVYeHk/s1600-h/Irrlicht+Window.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qfg-tuDgxAc/SuQcU-Y5D-I/AAAAAAAABLI/kcdBqEVYeHk/s400/Irrlicht+Window.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
An empty window. Cool! &lt;br /&gt;
&lt;br /&gt;
Next: &lt;a href="http://gamedevfan.blogspot.com/2009/10/irrlicht-engine-easy-tutorial-basics.html"&gt;Irrlicht Engine - Easy Tutorial - Basics&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-8609488923214761945?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/7cVsjn-mdIo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/8609488923214761945/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=8609488923214761945" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8609488923214761945?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8609488923214761945?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/7cVsjn-mdIo/irrlicht-engine-easy-tutorial-intro.html" title="Irrlicht Engine – Easy Tutorial - Intro" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_qfg-tuDgxAc/SuQbTkc8TII/AAAAAAAABKQ/z005t0XyBtw/s72-c/eclipse+new+project.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2009/10/irrlicht-engine-easy-tutorial-intro.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8HRX46fCp7ImA9WxNVF0g.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-3764448649213976211</id><published>2009-10-21T09:45:00.000-07:00</published><updated>2009-10-28T11:33:54.014-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-28T11:33:54.014-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="Irrlicht" /><category scheme="http://www.blogger.com/atom/ns#" term="game engine" /><title>Irrlicht</title><content type="html">Irrlicht Engine is a C++, 3D game engine. It is open-source, cross platform and relatively easy to work with especially for noob like me. The project has good documentation and tutorials and it is not hard to start with.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qfg-tuDgxAc/St86R90YHEI/AAAAAAAABJo/PIdOCkQGmb4/s1600-h/Irrlicht+examples.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qfg-tuDgxAc/St86R90YHEI/AAAAAAAABJo/PIdOCkQGmb4/s320/Irrlicht+examples.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;Running official examples.&lt;br /&gt;
&lt;/div&gt;&lt;div style="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/_qfg-tuDgxAc/St86TndZh9I/AAAAAAAABJw/q9cz46yEPGo/s1600-h/Irrlicht+example+3D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qfg-tuDgxAc/St86TndZh9I/AAAAAAAABJw/q9cz46yEPGo/s320/Irrlicht+example+3D.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
I found something annoying with the latest Irrlicht version. If you want to use it with DirectX you must build it and enable the DirectX support. The binaries from the distribution are not built with it. At first I didn’t understand the message:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #6aa84f;"&gt;&lt;span style="font-size: x-small;"&gt;Irrlicht Engine version 1.6&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #6aa84f;"&gt;&lt;span style="font-size: x-small;"&gt;Microsoft Windows XP Professional Service Pack 3 (Build 2600)&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #6aa84f;"&gt;&lt;span style="font-size: x-small;"&gt;DIRECT3D9 Driver was not compiled into this dll. Try another one.&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
I suppose the Irrlicht developers had a reason to make things this way but it is not very convenient. &lt;br /&gt;
So if you want to use it with DirectX you must build it from the source code. Fortunately it is not hard to do because Irrlicht comes with its project files. Just add the SDK and run a build. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information visit its official site - &lt;a href="http://irrlicht.sourceforge.net/"&gt;http://irrlicht.sourceforge.net/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-3764448649213976211?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/JWYOPaQYH3w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/3764448649213976211/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=3764448649213976211" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/3764448649213976211?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/3764448649213976211?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/JWYOPaQYH3w/irrlicht-engine-is-c-3d-game-engine.html" title="Irrlicht" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_qfg-tuDgxAc/St86R90YHEI/AAAAAAAABJo/PIdOCkQGmb4/s72-c/Irrlicht+examples.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2009/10/irrlicht-engine-is-c-3d-game-engine.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4FQnk7eSp7ImA9WxNXFUU.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-3909779257934952409</id><published>2008-05-03T09:37:00.000-07:00</published><updated>2009-10-03T08:15:13.701-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-03T08:15:13.701-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="l2j" /><title>Running l2j Kamael server  - somthing between tutorial and experiment</title><content type="html">L2j is an open source server emulator project for the popular MMORPG Lineage2.  Despite the fact that it is not the best idea for running a popular private server with over a thousand players it is a very good for home or a small community server.&lt;br /&gt;
&lt;br /&gt;
What do you need to run the server?&lt;br /&gt;
Java - http://java.sun.com/javase/downloads/index.jsp&lt;br /&gt;
MySQL - http://www.mysql.com/&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;L2JServer &lt;/span&gt;- http://l2jserver.com/&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;L2JDatapack &lt;/span&gt;- http://www.l2jdp.com/&lt;br /&gt;
&lt;br /&gt;
Install the latest Java Runtime Environment and the MySQL server. (I will not spend time on this, because it is not the topic of this article.) Get the L2J Server and Datapack archives and extract them in two separate folders. (For now I'll call them L2JServer and L2JDatapack) Then copy the content of the L2JDatapack/gameserver/data folder to the L2JServer/gameserver - it will override the current data folder. Also copy L2jDatapack/login/servername.xml to the L2JServer/login folder.&lt;br /&gt;
Run database_installer.bat or database_installer.sh according to your OS. They are located in the datapack/tools folder. The script is very well documented, so just follow the instructions.&lt;br /&gt;
&lt;br /&gt;
Now is the time for editing the property files. &lt;br /&gt;
First the login server properties - L2Jserver/login/config/loginserver.properties - set the correct database, host and port information. Also setting the ForceGGAuth=False will solve some future problems. When it is set to true the login server enforces the gameguard authorization from the client. &lt;br /&gt;
Next are the game server properties - gameserver/config/server.properties with again database, host and port information.&lt;br /&gt;
&lt;br /&gt;
Registering game servers. For every gameserver that you want to run start /login/RegisterGameServer.bat (/login/RegisterGameServer.sh) and select the number you wish to assign to the gameserver, then copy the hexid(server-x).txt file to the corresponding /gameserver/config/ directory and rename it to hexid.txt.&lt;br /&gt;
&lt;br /&gt;
It is time to fire it up! To run the login server start /login/startLoginServer.bat(sh). To run the gameserver start startGameServer.bat(sh).&lt;br /&gt;
The effect must be something like this:&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qfg-tuDgxAc/SByhP32BcMI/AAAAAAAAAsI/-drVR1BDJf4/s1600-h/l2jlogin.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qfg-tuDgxAc/SByhP32BcMI/AAAAAAAAAsI/-drVR1BDJf4/s200/l2jlogin.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196205364139356354" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qfg-tuDgxAc/SByhQH2BcNI/AAAAAAAAAsQ/7CJDZgGGtUU/s1600-h/l2jrunning.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qfg-tuDgxAc/SByhQH2BcNI/AAAAAAAAAsQ/7CJDZgGGtUU/s200/l2jrunning.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196205368434323666" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-3909779257934952409?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/CAkp21x2LJI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/3909779257934952409/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=3909779257934952409" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/3909779257934952409?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/3909779257934952409?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/CAkp21x2LJI/running-l2j-kamael-server-somthing.html" title="Running l2j Kamael server  - somthing between tutorial and experiment" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_qfg-tuDgxAc/SByhP32BcMI/AAAAAAAAAsI/-drVR1BDJf4/s72-c/l2jlogin.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2008/05/running-l2j-kamael-server-somthing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08DQHc5eSp7ImA9WxZVEk8.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-8069984560429930084</id><published>2008-03-22T16:38:00.000-07:00</published><updated>2008-03-22T16:51:11.921-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-22T16:51:11.921-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="3d modelling tools" /><title>Make a human with MakeHuman</title><content type="html">Makehuman is a free tool for 3d character modeling. I kind a don't like it and the rough features it creates but in more skillful hands it can be a very useful tool. &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qfg-tuDgxAc/R-WbDpJoEoI/AAAAAAAAAoc/efs1FWaXrkU/s1600-h/makehuman.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_qfg-tuDgxAc/R-WbDpJoEoI/AAAAAAAAAoc/efs1FWaXrkU/s200/makehuman.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5180717433247765122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dedalo-3d.com/"&gt;http://www.dedalo-3d.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-8069984560429930084?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/1oTBBiCJzkY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/8069984560429930084/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=8069984560429930084" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8069984560429930084?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8069984560429930084?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/1oTBBiCJzkY/make-human-with-makehuman.html" title="Make a human with MakeHuman" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_qfg-tuDgxAc/R-WbDpJoEoI/AAAAAAAAAoc/efs1FWaXrkU/s72-c/makehuman.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2008/03/make-human-with-makehuman.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcEQ34-cCp7ImA9WxNVFEs.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-3646396820909850965</id><published>2008-03-22T10:52:00.000-07:00</published><updated>2009-10-25T03:36:42.058-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-25T03:36:42.058-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Two online books for java game development</title><content type="html">&lt;div&gt;The first is &lt;span style="font-weight: bold;"&gt;Killer Game Programming in Java&lt;/span&gt; at http://fivedots.coe.psu.ac.th/~ad/jg/.&lt;br /&gt;
Really good book for 2d and 3d Java game development.&lt;br /&gt;
&lt;br /&gt;
The second is &lt;b&gt;Pro Java 6 3D Game Development&lt;/b&gt; at http://fivedots.coe.psu.ac.th/~ad/jg2/&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-3646396820909850965?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/TKv8wFNkhhE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/3646396820909850965/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=3646396820909850965" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/3646396820909850965?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/3646396820909850965?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/TKv8wFNkhhE/two-online-books-for-java-game.html" title="Two online books for java game development" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2008/03/two-online-books-for-java-game.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIMSHo-fCp7ImA9WxZaFks.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-8882377991838485216</id><published>2008-03-21T06:28:00.000-07:00</published><updated>2008-05-01T10:23:09.454-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-01T10:23:09.454-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="3d modelling tools" /><title>Art of Illusion – cute 3d modeling and rendering studio.</title><content type="html">When once I just randomly searched sourceforge for anything related to games I ran onto Art of Illusion. It is a free open-source project written in Java. It has very easy to understand interface and some really nice tutorials. It is unbelievable how fast someone can start work with it in contrast with almost all the other tools for 3d modeling. I recommend it to anyone even just for fun.&lt;br /&gt;&lt;a target="_blank" href="http://www.artofillusion.org/"&gt;http://www.artofillusion.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_qfg-tuDgxAc/R-O4RJJoEnI/AAAAAAAAAn4/mWM-Vb3ynik/s1600-h/aoi.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5180186601059783282" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_qfg-tuDgxAc/R-O4RJJoEnI/AAAAAAAAAn4/mWM-Vb3ynik/s320/aoi.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-8882377991838485216?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/pgkMzCPQ2zU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/8882377991838485216/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=8882377991838485216" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8882377991838485216?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8882377991838485216?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/pgkMzCPQ2zU/art-of-illusion-cute-3d-modeling-and.html" title="Art of Illusion – cute 3d modeling and rendering studio." /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_qfg-tuDgxAc/R-O4RJJoEnI/AAAAAAAAAn4/mWM-Vb3ynik/s72-c/aoi.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2008/03/art-of-illusion-cute-3d-modeling-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIBRXY7fCp7ImA9Wx5QF0Q.&quot;"><id>tag:blogger.com,1999:blog-616742922001306103.post-8487513001199398198</id><published>2007-10-22T05:40:00.000-07:00</published><updated>2010-09-06T10:02:34.804-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-06T10:02:34.804-07:00</app:edited><title>Privacy Policy</title><content type="html">&lt;span style="font-size: large;"&gt;&lt;b&gt;Privacy Policy for gamedevfan.blogspot.com&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The privacy of our visitors to gamedevfan.blogspot.com is important to us.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Log Files&lt;/b&gt;&lt;br /&gt;
We collect and use the data contained in log files. The information include your IP address, your ISP, your browser, the time you visited our site and which pages you visited throughout our site.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cookies, Web Beacons&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
gamedevfan.blogspot.com does use cookies to store information about visitors preferences and record user-specific information.&lt;br /&gt;
&lt;br /&gt;
We use third party advertisements on gamedevfan.blogspot.com. Some of these advertisers may use technology such as cookies and web beacons when they advertise on our site, which will also send these advertisers information including (but not restricted by) your IP address, your ISP , the browser you used to visit our site.&lt;br /&gt;
You can delete cookies by clearing the private data in your browser and changing your browser privacy settings to refuse all cookies or to indicate when a cookie is being sent. However, forbidding cookies can affect how you are able to interact with our and many other websites.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Third party vendors, including Google, use cookies to serve ads  based on a user's prior visits to this website and other sites on the  Internet. &lt;/li&gt;
&lt;li&gt;Google's use of the DART cookie enables it and its partners to serve  ads, based on your visit to this site and/or other sites on the  Internet. &lt;/li&gt;
&lt;li&gt;You may opt out of the use of the DART cookie by visiting the  advertising opt-out page.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
See: &lt;a href="http://www.google.com/privacypolicy.html"&gt;Google Adsense&lt;/a&gt;,  &lt;a href="http://www.google.com/privacy_ads.html"&gt;Google opt-out page&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
See: &lt;a href="http://www.networkadvertising.org/managing/opt_out.asp"&gt;Unified  Cookie Opt-Out System&lt;/a&gt; which includes some of our advertisers.&lt;div class="blogger-post-footer"&gt;The original post is located on &lt;a href="http://gamedevfan.blogspot.com/"&gt;Game Dev Fan - http://gamedevfan.blogspot.com/&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/616742922001306103-8487513001199398198?l=gamedevfan.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GameDevFan/~4/epao5MG8GLQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gamedevfan.blogspot.com/feeds/8487513001199398198/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=616742922001306103&amp;postID=8487513001199398198" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8487513001199398198?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/616742922001306103/posts/default/8487513001199398198?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GameDevFan/~3/epao5MG8GLQ/privacy-policy.html" title="Privacy Policy" /><author><name>web</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://gamedevfan.blogspot.com/2007/10/privacy-policy.html</feedburner:origLink></entry></feed>

