<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Maratis forum - Tutorials/Examples]]></title>
		<link>http://forum.maratis3d.com/index.php</link>
		<description><![CDATA[The most recent topics at Maratis forum.]]></description>
		<lastBuildDate>Tue, 12 Dec 2017 21:43:49 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[I created a save system with Lua's file functions! Get it here!]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=1280&amp;action=new</link>
			<description><![CDATA[<p>I was inspired to create a save system when I read the idea from the creator of this thread:<br /><a href="http://forum.maratis3d.com/viewtopic.php?id=893">http://forum.maratis3d.com/viewtopic.php?id=893</a></p><p>I tried to use the &quot;<strong>dofile()</strong>&quot; function to load a new &quot;Lua&quot; file that was in the directory of my game, but that didn&#039;t work for published games, so I studied the File functions of Lua to build upon the idea from that guy&#039;s post.</p><p>I&#039;ve been searching the internet for snippets of code during my whole day.</p><p>I&#039;ll write the solution here for future generations that discover Maratis:</p><p>1. Create a new Project, and place a 3D object on the screen. Use &quot;<strong>Player</strong>&quot; as the object&#039;s name.</p><p>2. Create an empty script file called &quot;<strong>GameScript.lua</strong>&quot; and attach it to your Scene.</p><p>3. Then, paste this script into the empty file:</p><div class="codebox"><pre><code>Player = getObject(&quot;Player&quot;)

function onSceneUpdate()


    --  When the Z button is pressed, we will create the content of the file,
    --  to simulate what happens when a player saves the game for the first time.


    if isKeyPressed(&quot;Z&quot;) then
    file = io.open(&quot;save_data.ini&quot;, &quot;w+&quot;)
    file:write(&quot;1\n2\n3\nturn right&quot;)
    file:flush()
    file:close()
    end

    function checkLine(lineNumber, lineContent)

    -- Search for whatever you want by checking for a line number and then checking for the content of the line.
    -- You can copy and paste the next section to search for text in multiple lines.

        if lineNumber == 4 then
            if lineContent == &quot;turn right&quot; then
                rotate(Player, {10, 0, 0}, 1, &quot;local&quot;)
            end
            if lineContent == &quot;Maratis is my closest friend&quot; then
                rotate(Player, {-10, 0, 0}, 1, &quot;local&quot;)
            end
        end
    end



--  Pressing the X button on your keyboard will start the search by calling the function that&#039;s listed above.

    if isKeyPressed(&quot;X&quot;) then
        f = io.open(&quot;save_data.ini&quot;, &quot;r&quot;)
        count = 0

        for line in f:lines() do
            count = count + 1
            checkLine(count, line)
        end

        f:close()
    end




-- When the C button is pressed, you can modify a single line, like when your player unlocks more content.


    if isKeyPressed(&quot;C&quot;) then

        local hFile = io.open(&quot;save_data.ini&quot;, &quot;r&quot;) --Reading.
        local lines = {}
        local restOfFile
        local lineCt = 1
        for line in hFile:lines() do
            if(lineCt == 4) then -- This number is the line that you will modify.
                lines[#lines + 1] = &quot;Maratis is my closest friend&quot; --  Change the content of that line here.
                restOfFile = hFile:read(&quot;*a&quot;)
                break
            else
                lineCt = lineCt + 1
                lines[#lines + 1] = line
            end
        end
        hFile:close()

        hFile = io.open(&quot;save_data.ini&quot;, &quot;w&quot;) -- Write the file.
            for i, line in ipairs(lines) do
                hFile:write(line, &quot;\n&quot;)
            end
        hFile:write(restOfFile)
        hFile:close()

    end

end</code></pre></div><p>4. Now, press &quot;File&quot; to open the menu and click &quot;Save&quot;, and then press &quot;File&quot; and click &quot;Publish Project&quot;.</p><p>5. Find your project&#039;s directory, and then enter the &quot;published&quot; directory.</p><p>6. Create an empty file called &quot;<strong>save_data.ini</strong>&quot; in that directory.</p><p>7. Now, double-click the &quot;exe&quot; file to try the game.</p><p>8. When you hold the &quot;X&quot; button on your keyboard, the code will search line 4 of the text file for the text &quot;<strong>turn right</strong>&quot;. Since the file is empty, it will not find the text, so your character won&#039;t rotate. When you press the &quot;Z&quot; button, four lines will be created in the text file, like this:</p><div class="codebox"><pre><code>1
2
3
turn right</code></pre></div><p>That&#039;s an example of what happens when a player starts a new game and doesn&#039;t have saved data yet.</p><p>Now that the words &quot;turn right&quot; have been saved in line 4, you can press the &quot;X&quot; button again, and your character will rotate while it&#039;s pressed!</p><p>You can use this to create a saving system. For example, when the game is first opened, you can make it search for a piece of text on line 27 that says &quot;100&quot;, which can mean that all levels have been unlocked. If that text is different, you can choose to only unlock a few levels for your players.</p><p>After you do all of that, you should press the &quot;C&quot; button. That will change the text of line 4 from &quot;turn right&quot; to &quot;Maratis is my closest friend&quot;. Now, when you press the X button, your character will rotate left instead of right. Study the code to see if you can understand how the rotation changed.</p><p>Note: I don&#039;t know if your characters will rotate in the directions that I&#039;ve mentioned because this might depend on how your 3D models are created, but they should still rotate. If they rotate in different directions than the ones I mentioned, you shouldn&#039;t think it&#039;s because of a glitch.</p><br /><p>Important idea about people who are worried about people cheating by changing the text of the file:</p><p>If you&#039;re worried about people changing the text to unlock the whole game immediately, you can just encrypt it in your head. For example, don&#039;t use messages like &quot;All-Weapons-Are-Unlocked&quot;. Create random gibberish and track it in a journal while you create your game, so &quot;tztz47sda&quot; on line 27 might mean that all weapons are unlocked. That means that at least one person will have to fully complete your game without cheating before the functions of your gibberish phrases are known. He can share his perfect save file with all other people later, but that happens will all games. Even with games created by professional companies, one guy can finish a whole game without cheating and share that save file with everyone, so don&#039;t be scared by this.</p>]]></description>
			<author><![CDATA[dummy@example.com (anael)]]></author>
			<pubDate>Tue, 12 Dec 2017 21:43:49 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=1280&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Blender Animation Help]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=1120&amp;action=new</link>
			<description><![CDATA[<p>I ask&nbsp; for your help what is the right way making and&nbsp; exporting animated model from Blender for Maratis3d.<br />So my way:<br />1. I Made a model<br />2. I Added materials and texture<br />3. IAdded armature<br />4. I Attached armature to the model (Control -P &quot;Automatic weight...&quot;)<br />5. I changed to Posing view and I made animation.</p><p>So far the animation works in blender, but when I exported it, the Maratis imported the bones and the models ( Mesh directory contains .maa, and .mesh files), but model isn&#039;t animating.</p><p>What am I doing wrong?</p><p>Thanks:<br /> Tibor</p>]]></description>
			<author><![CDATA[dummy@example.com (Tibi)]]></author>
			<pubDate>Tue, 21 Apr 2015 20:47:08 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=1120&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Better way to do Jumping.]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=1028&amp;action=new</link>
			<description><![CDATA[<p>Just created an example demonstrating a better way to do jumping than the method used for the sponza level. Instead of using a dummy object that is connected to the player to detect collision with the floor, I used a dummy object as a floor, and detect collision of the object with it. I made it a ghost also. </p><p>Download (9mb):<br /><a href="https://sites.google.com/site/maratisfiles/files/Puller.zip">https://sites.google.com/site/maratisfi &#133; Puller.zip</a></p><p>A sample of the script:</p><div class="codebox"><pre><code>if onKeyDown(&quot;ENTER&quot;) and isCollisionBetween(box,ground) then
        addCentralForce(box,{0,0,force},&quot;local&quot;)
    end</code></pre></div><p>The method I use to play a sound once is just a quick and dirty (very dirty) method.</p>]]></description>
			<author><![CDATA[dummy@example.com (Tutorial Doctor)]]></author>
			<pubDate>Sat, 19 Jul 2014 12:43:44 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=1028&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Blender Animation Tutorial (6 Walk Cycle,s and 1 Run Cycle) Easy (WIP)]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=851&amp;action=new</link>
			<description><![CDATA[<p>We are going to learn how to use the &quot;Pose to Pose Animation Technique&quot; in Blender to animate our characters. I am including 7 different reference pose images we will use to accomplish 6 different types of Walk Cycle&#039;s and 1 Run cycle.</p><p>After the tutorial you should be able to use this technique, to edit your 7 existing poses and create new variations and find other &quot;Pose Sequence&#039;s&quot; to accomplish other types of animation.</p><p><strong>Basic Walk Cycle</strong><br /><span class="postimg"><img src="https://lh5.googleusercontent.com/-nOCNABun5yk/UmaMrNb940I/AAAAAAAABu4/Dh383eJY9mc/w465-h258-no/walkcycle03.jpeg" alt="https://lh5.googleusercontent.com/-nOCNABun5yk/UmaMrNb940I/AAAAAAAABu4/Dh383eJY9mc/w465-h258-no/walkcycle03.jpeg" /></span></p><p><strong>Happy Walk</strong><br /><span class="postimg"><img src="https://lh5.googleusercontent.com/-j4UOtMIWwYY/UmaMpml4x6I/AAAAAAAABuY/LmUr_L-YieI/w702-h392-no/happywalk.jpg" alt="https://lh5.googleusercontent.com/-j4UOtMIWwYY/UmaMpml4x6I/AAAAAAAABuY/LmUr_L-YieI/w702-h392-no/happywalk.jpg" /></span></p><p><span class="postimg"><img src="http://www.cgarena.com/freestuff/tutorials/max/walk-cycles/happywalk.gif" alt="http://www.cgarena.com/freestuff/tutorials/max/walk-cycles/happywalk.gif" /></span></p><br /><br /><p><strong>Sneaky Walk</strong><br /><span class="postimg"><img src="https://lh4.googleusercontent.com/-c4gJY7VJ_fA/UmaMqUNIYdI/AAAAAAAABus/h81SNvIUQEw/w780-h235-no/sneack.jpg" alt="https://lh4.googleusercontent.com/-c4gJY7VJ_fA/UmaMqUNIYdI/AAAAAAAABus/h81SNvIUQEw/w780-h235-no/sneack.jpg" /></span></p><p><span class="postimg"><img src="http://www.cgarena.com/freestuff/tutorials/max/walk-cycles/sneakwalk.gif" alt="http://www.cgarena.com/freestuff/tutorials/max/walk-cycles/sneakwalk.gif" /></span></p><br /><br /><p><strong>Double Bounce Walk</strong><br /><span class="postimg"><img src="https://lh5.googleusercontent.com/-1CXT5fNXRws/UmaMpvxY3SI/AAAAAAAABuU/BdVrKNDG1fQ/w780-h231-no/doublebounce.jpg" alt="https://lh5.googleusercontent.com/-1CXT5fNXRws/UmaMpvxY3SI/AAAAAAAABuU/BdVrKNDG1fQ/w780-h231-no/doublebounce.jpg" /></span></p><p><span class="postimg"><img src="http://www.cgarena.com/freestuff/tutorials/max/walk-cycles/doublebounce.gif" alt="http://www.cgarena.com/freestuff/tutorials/max/walk-cycles/doublebounce.gif" /></span></p><br /><br /><p><strong>Angry Walk</strong><br /><span class="postimg"><img src="https://lh5.googleusercontent.com/-coDHQ1W_bQE/UmaMppiZe8I/AAAAAAAABuQ/YIghqY-1vIQ/w780-h243-no/angrywalk.jpg" alt="https://lh5.googleusercontent.com/-coDHQ1W_bQE/UmaMppiZe8I/AAAAAAAABuQ/YIghqY-1vIQ/w780-h243-no/angrywalk.jpg" /></span></p><p><span class="postimg"><img src="http://www.cgarena.com/freestuff/tutorials/max/walk-cycles/angrywalk.gif" alt="http://www.cgarena.com/freestuff/tutorials/max/walk-cycles/angrywalk.gif" /></span></p><br /><br /><p><strong>Proud Man Walk </strong><br /><span class="postimg"><img src="https://lh4.googleusercontent.com/-dpW_KgzqfSQ/UmaMqbKn6RI/AAAAAAAABu0/_0zub1EJDlE/w780-h276-no/proudmwalk.jpg" alt="https://lh4.googleusercontent.com/-dpW_KgzqfSQ/UmaMqbKn6RI/AAAAAAAABu0/_0zub1EJDlE/w780-h276-no/proudmwalk.jpg" /></span></p><p><span class="postimg"><img src="http://www.cgarena.com/freestuff/tutorials/max/walk-cycles/proudwalk.gif" alt="http://www.cgarena.com/freestuff/tutorials/max/walk-cycles/proudwalk.gif" /></span></p><br /><br /><p><strong>Basic Run Cycle</strong><br /><span class="postimg"><img src="https://lh5.googleusercontent.com/-_Lhr7VmbBR4/UmaMqapj_zI/AAAAAAAABuo/kJlI53JbmeE/w465-h233-no/runCycle.jpg" alt="https://lh5.googleusercontent.com/-_Lhr7VmbBR4/UmaMqapj_zI/AAAAAAAABuo/kJlI53JbmeE/w465-h233-no/runCycle.jpg" /></span></p><br /><p>This method of animating from one pose to the next, hence the term &#039;pose to pose&#039; animation, allows the animator to map out the action in advance. It is a particularly useful animation method when a character must perform certain tasks within a predetermined time or where a series of actions must synchronize accurately with a recorded sound track. The technique helps ensure that characters arrive at a particular place on screen at a precise point in time.</p><p>The ‘key pose’ technique is still the most widely used method of animating. Sequences can be tested and individual poses can be re-worked and the animation progressively improved. The timeline is continually revised to provide an accurate record of how the animation is to be photographed or rendered. This production method also provides a logical way of breaking down work so that it can be handed on to other people in the production chain.</p><br /><br /><p><strong>How its done in Blender</strong></p><p>The idea is to open one of these &quot;Pose Sequence&#039;s&quot; up as a &quot;Background&quot; in Blender, Then you would create a &quot;Rig&quot; and in &quot;Pose Mode&quot; &quot;Select our position in the Timeline&quot;, place our rig over the &quot;First Pose in the Sequence&quot; and &quot;Move the Bones into position&quot;, once that is done you then hit the A key to select all the Bones then the&nbsp; &quot;I&quot; Key and &quot;Select LocRotScale&quot; from the menu. We would do this for each pose in the Pose Sequence Sheet, Advancing our Timeline slider position as we go.</p><p>Once Completed you should have your Animation.</p><p>When you are happy with your Animated Rig you can then in &quot;Pose Mode | Position the Timeline Slider&quot; over each Keyframe and &quot;Clear&quot; its X,Y,Z Location to 0,0,0 and hit the A key to select all the Bones and then hit the I Key and choose &quot;LocRotScale&quot; to adjust the current keyframe. We do this to have our Rig perform its &quot;Animation in Place&quot; ie &quot;Walk in Place&quot;.</p><p>Note: I always!!!&nbsp; Select all my bones first(A key in Pose Mode) before inserting or modifying a keyframe(I Key in Pose Mode) this insures that all the bones positions are saved. You would do this every time you insert or modify a keyframe.</p><p><strong>Screenshots and Example to come</strong></p>]]></description>
			<author><![CDATA[dummy@example.com (MaratisFan)]]></author>
			<pubDate>Wed, 16 Jul 2014 05:22:53 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=851&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Distance examples]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=1004&amp;action=new</link>
			<description><![CDATA[<p>here&#039;s 1 project with 3 levels about distance, pretty bad explained (or not at all) i&#039;m afraid !<br />but if it can give you some ideas it&#039;s all good </p><p>• <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/DistanceExamples/DistanceExamples.rar">Project</a></p><p>1) Calculate distance between meshes in percent<br /><span class="postimg"><img src="https://dl.dropboxusercontent.com/u/19970067/Maratis/DistanceExamples/DistancePercent.jpg" alt="PunBB bbcode test" /></span></p><br /><p>2) Radius collision detection, based on anael&#039;s method over here : <a href="http://forum.maratis3d.com/viewtopic.php?pid=6296#p6296">http://forum.maratis3d.com/viewtopic.php?pid=6296#p6296</a><br /><span class="postimg"><img src="https://dl.dropboxusercontent.com/u/19970067/Maratis/DistanceExamples/RadiusCollision.jpg" alt="PunBB bbcode test" /></span></p> <br /><p>3) Spawn multiple clones in a given object perimeter<br /><span class="postimg"><img src="https://dl.dropboxusercontent.com/u/19970067/Maratis/DistanceExamples/SpawnInRadius.jpg" alt="PunBB bbcode test" /></span></p><p>4) Spawn in Radius v2, will spawn animated texture at random positions on a controllable radius<br /><span class="postimg"><img src="https://dl.dropboxusercontent.com/u/19970067/Maratis/DistanceExamples/SpawnInRadius_v2.jpg" alt="PunBB bbcode test" /></span></p><br /><br /><p>Notes : I removed the object parenting in example 2, and use follow behavior instead</p>]]></description>
			<author><![CDATA[dummy@example.com (Vegas)]]></author>
			<pubDate>Mon, 16 Jun 2014 19:01:14 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=1004&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Making a game with Maratis]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=873&amp;action=new</link>
			<description><![CDATA[<p>I am on a mission to make a small but complete game with Maratis. I guess the process would serve as a good tutorial on how I will make it. So I will post the process here. I will also be updating my other posts with content also (like the bvh animation page and the game assets page) as I create content for this game. </p><p>I will be making a basic dress up game using my character select demo as a base:<br /><a href="http://forum.maratis3d.com/viewtopic.php?id=775.">http://forum.maratis3d.com/viewtopic.php?id=775.</a> <br />And now for my first step:</p><h5>STEP 1: TIME TO PLAY!</h5><p>So, I&#039;m off to play some dress up games. This way I can collect some ideas, and get some inspiration for how I want my game to be. Along the way I will sketch some ideas down.<br />2013-11-10</p><p>TIME TO PLAY Resources:</p><p>-Toca Hair salon<br /><a href="https://itunes.apple.com/us/app/toca-hair-salon-2/id569632660?mt=8">https://itunes.apple.com/us/app/toca-ha &#133; 32660?mt=8</a></p><p>-Fashion Star<br /><a href="https://itunes.apple.com/us/app/fashion-star-boutique/id503000503?mt=8">https://itunes.apple.com/us/app/fashion &#133; 00503?mt=8</a></p><p>-Design it Princess Fashion<br /><a href="https://itunes.apple.com/us/app/design-it!-princess-fashion/id677616499?mt=8">https://itunes.apple.com/us/app/design- &#133; 16499?mt=8</a></p><p>-Style me Girl<br /><a href="https://itunes.apple.com/us/app/style-me-girl-free-3d-fashion/id521514229?mt=8">https://itunes.apple.com/us/app/style-m &#133; 14229?mt=8</a></p><h5>STEP 2: DESIGN PROTOTYPING:</h5><p>So, I want to prototype the design of the game. I won&#039;t be using models I made, just models I could find for free to fill in space. I just want to get the impression of the setup of the game. I could even use basic primitive, but that isn&#039;t fun. I am going to upload several photos of this phase. </p><p><span class="postimg"><img src="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28860%29.png" alt="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28860%29.png" /></span><br /><span class="postimg"><img src="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28861%29.png" alt="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28861%29.png" /></span><br /><span class="postimg"><img src="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28866%29.png" alt="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28866%29.png" /></span></p><h5>STEP 3: OORRWEDO</h5><p>If you haven&#039;t checked out my tutorial on &quot;How to Game&quot; You can here:<br /><a href="http://forum.maratis3d.com/viewtopic.php?id=811">http://forum.maratis3d.com/viewtopic.php?id=811</a></p><p>I am going to turn it into a game following the OORRWEDO process:</p><h5>1) Objectives:</h5><p>Walk through the store choosing your wardrobe.<br />Apply your wardrobe to the mannequin to see how it looks. <br />When satisfied, apply your wardrobe to a runway model.</p><h5>2) Obstacles:</h5><h5>3) Reward:</h5><p>You get to see your wardrobe on your model as they walk the runway. You also get money if your wardrobe is successful. </p><h5>4) Rules:</h5><p>Points are given based on how pieces are paired. Each article of clothing has an initial point value attached to it. The maximum score for a complete wardrobe is 10 points. However, certain articles of clothing conflict with other articles of clothing, taking away from the overall point value of the wardrobe. </p><p>For instance, if you have a brown top which has +2 points, and khaki colored slacks +6 then you get 10 points. However, if you have a brown top (+2) and purple slacks, you get no points for the purple slacks unless they work in a way (accessories).</p><p>(I will be working out the rules as I continue the project, for now, I am going to start on the next step.)<br />2013-11-12</p><h5>STEP 4: GATHERING THE TOOLS</h5><p>I have been doing some testing to see what tools I can use to make this game. This is the list of tools I will be using:</p><p>Google Sketchup 8(level design)<br />Quidam(character creation)<br />Makehuman(character creation)<br />Blender(rigging, animation, and exporting)<br />Poser(cloth simulation)<br />Gimp(photo editing and normal map creation)</p><h5>STEP 5: BLOCKING</h5><p>Okay, I am going to start blocking in some stuff. I am not focused on details or fine tuning. Just blocking in place holders. First I am going to work on the level (this game will only have one level. Then I will work on some basic coding. Perhaps I will use my customizable game script to get started.</p><p>I also added a background sound to the mall level to set the mood of the level. I might try to block in some walking people.<br /></p><h5>Level</h5><p><span class="postimg"><img src="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28881%29.png" alt="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28881%29.png" /></span><br /></p><h5>Menu</h5><p><span class="postimg"><img src="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28883%29.png" alt="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28883%29.png" /></span><br />For now the menu doesn&#039;t work when you click it. I will apply the unprojected point function as was used in my State level to make it work.<br /></p><h5>Better Menu</h5><p><span class="postimg"><img src="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28889%29.png" alt="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28889%29.png" /></span><br />Using unrpojected point (Thanks Vegas)</p><h5>Crowd</h5><p><span class="postimg"><img src="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28885%29.png" alt="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28885%29.png" /></span><br />I used &quot;One Bone Animation&quot; to slide these billboard people around (check my posts)<br /></p><h5>Text Box</h5><p><span class="postimg"><img src="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28888%29.png" alt="https://sites.google.com/site/maratisfiles/files/Screenshot%20%28888%29.png" /></span><br />The graphic for this text box is easy to change. The rectangle is just a place holder. </p><h5>STEP 6: GAMEPLAY &amp; GAME MECHANICS</h5><p>Now to figure out the gameplay (that is what makes a game interesting after all). </p><p>Thinking...</p>]]></description>
			<author><![CDATA[dummy@example.com (Tutorial Doctor)]]></author>
			<pubDate>Tue, 13 May 2014 15:45:05 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=873&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Simple Level Tool In Maratis]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=985&amp;action=new</link>
			<description><![CDATA[<p>Hello!<br />I&#039; ve just started with Maratis Engine and the first question I took was about levels - ye, I have Blender, but it&#039;s not really easy to creat simple level geometry with textures, etc.<br />So I found a great solution - a tool called Runtime World Editor. It exports to .obj with textures.<br /><a href="http://yadi.sk/d/KWq_s9dOP3j8y">http://yadi.sk/d/KWq_s9dOP3j8y</a> - this version with obj export<br />You can read more about it here <a href="http://runtimelegend.com/rep/rtworld/index">http://runtimelegend.com/rep/rtworld/index</a><br /><span class="postimg"><img src="http://s6.hostingkartinok.com/uploads/thumbs/2014/05/ec70a2a26f6689cc301a09d4b46c867f.png" alt="http://s6.hostingkartinok.com/uploads/thumbs/2014/05/ec70a2a26f6689cc301a09d4b46c867f.png" /></span><br />Ok, I think I can give you my test-room, it took me 5 mins to build it with RWE<br /><a href="http://yadi.sk/d/8I66DznFP3mTL">http://yadi.sk/d/8I66DznFP3mTL</a><br />hmm, and about Maratis...<br />I&#039;m not really good at programming, I worked before with Unity3d(C#/JS), so what&#039;s about little tour to maratis c++ basics?<br />And I have an idea, can we do an in-editor-plugin system for maratis? so that everyone can make mini-plugins to improve engine&#039;s work.</p>]]></description>
			<author><![CDATA[dummy@example.com (hog)]]></author>
			<pubDate>Mon, 05 May 2014 11:49:37 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=985&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[HP bar/Hearts example]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=154&amp;action=new</link>
			<description><![CDATA[<p>------------------------------------------------------------------------------------------------------------------------------------------------------<br /><strong>Example 1 : Scaled health bar + percent</strong><br />------------------------------------------------------------------------------------------------------------------------------------------------------<br /><span class="postimg"><img src="https://dl.dropboxusercontent.com/u/19970067/Maratis/HPHearts/Percent.png" alt="PunBB bbcode test" /></span></p><p>- Press 1 to decrease hp, 2 to increase</p><p>HPclip is exported in very small scale in blender :<br /><span class="postimg"><img src="https://dl.dropboxusercontent.com/u/19970067/Maratis/HPHearts/PercentClips.png" alt="PunBB bbcode test" /></span></p><p>I included the blend file anyway</p><p>• Project : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/HPHearts/Percents.rar">Percents</a><br />• Lua script alone : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/HPHearts/Percentage.lua">Percentage</a></p><p>------------------------------------------------------------------------------------------------------------------------------------------------------<br /><strong>Example 2 : Object oriented hearts</strong><br />------------------------------------------------------------------------------------------------------------------------------------------------------<br /><span class="postimg"><img src="https://dl.dropboxusercontent.com/u/19970067/Maratis/HPHearts/Hearts.png" alt="PunBB bbcode test" /></span></p><p>Can manually add or remove hearths, plus automatic filling/removing. details are displayed on the main screen</p><p><strong>Note : Not recommended to use this because it&#039;s only usable on the main scene</strong></p><p>• Project : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/HPHearts/Hearts.rar">Hearts</a><br />• Lua script alone : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/HPHearts/Hearts.lua">Hearts</a></p>]]></description>
			<author><![CDATA[dummy@example.com (Tutorial Doctor)]]></author>
			<pubDate>Wed, 26 Mar 2014 00:25:17 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=154&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Ortho Parallax Scrolling]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=967&amp;action=new</link>
			<description><![CDATA[<p><span class="postimg"><img src="https://dl.dropboxusercontent.com/u/19970067/Maratis/OrthoParallaxScrolling/OrthoParallaxScrolling.jpg" alt="PunBB bbcode test" /></span></p><p>Here&#039;s two example for parallax scrolling in 2d mode (ortho camera)</p><p>Two examples, one with only 1 layer cloned 5 times,<br />and another one with 4 layer already placed on the scene.</p><p>You can only move left/right and no physics are used</p><p>Blender files included</p><p>• Project : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/OrthoParallaxScrolling/OrthoParallaxScrolling.rar">OrthoParallaxScrolling</a><br />• Lua script only : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/OrthoParallaxScrolling/1Layer.lua">1Layer</a><br />• Lua Script only : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/OrthoParallaxScrolling/4Layers.lua">4Layers</a></p><br /><p>Graphics used from OGA :<br /><a href="http://opengameart.org/content/tutorial-creating-depth">Depth tutorial</a><br /><a href="http://opengameart.org/content/castle-platformer">Castle Platformer</a></p>]]></description>
			<author><![CDATA[dummy@example.com (Tutorial Doctor)]]></author>
			<pubDate>Tue, 25 Mar 2014 20:11:47 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=967&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Automatic Text Display]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=909&amp;action=new</link>
			<description><![CDATA[<p><span class="postimg"><img src="https://dl.dropboxusercontent.com/u/19970067/Maratis/AutomaticTextDisplay/TextTyping.png" alt="PunBB bbcode test" /></span></p><p>Here&#039;s an example for automatic text displaying, there&#039;s <strong>three levels</strong> :</p><p><strong>1)</strong> Simple text typing<br />It will start displaying text when you launch the scene, nothing fancy</p><p><strong>2)</strong> IOread example<br />Will read text in an external text file when you press 1 or 2 or 3 or 4<br /><strong><span style="color: #FF0000">WARNING</span></strong>, you must edit the script IOread.lua and set the correct path for the .txt file</p><p><strong>3)</strong> Text Input<br />Press any keyboard letter to write text (only letters, space, backspace and delete)<br />It will switch to a new line when you entered 15 characters</p><p>• Project : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/AutomaticTextDisplay/TextTyping.rar">TextDisplay</a><br />• Lua script only (Simple) : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/AutomaticTextDisplay/SimpleTextType.lua">SimpleText</a><br />• Lua script only (IOread) : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/AutomaticTextDisplay/IOread.lua">IOread</a><br />• Lua script only (Text Input) : <a href="https://dl.dropboxusercontent.com/u/19970067/Maratis/AutomaticTextDisplay/TextInput.lua">TextInput</a></p><p>ps. the text displayed doesnt make sense, i was just on a chiptune site then copied random lines</p><p>Feel free to edit/improve <img src="http://forum.maratis3d.com/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[dummy@example.com (Vegas)]]></author>
			<pubDate>Tue, 25 Mar 2014 08:59:37 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=909&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Exporting From Blender (Tips)]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=962&amp;action=new</link>
			<description><![CDATA[<p>Okay, so here are some tips when exporting from blender so that you won&#039;t keep running into issues (textures not showing up or scaling incorrectly. </p><p>First check out this page on the wiki:</p><p><a href="http://wiki.maratis3d.org/index.php?title=Exporting_from_Blender">http://wiki.maratis3d.org/index.php?tit &#133; om_Blender</a></p><p>0) Make sure the maps are in the right order</p><p>1) I usually use the GLSL shading mode found in the navigation menu in Blender (Press &quot;N&quot; to bring it up. It will be under &quot;shading&quot;)</p><p>2) Make sure all of your textures are using the same UV map. If you are using a texture atlas, be sure to check a specific UV map from the drop down menu instead of just selecting UV for the map type. </p><p>3) If you have scaled any of your UV maps, make sure every UV map has the same scale. </p><p>4) If you created your map in Blender via projection painting or selecting a photo, make sure you save your map by selecting &quot;Image&quot; and then &quot;Save as image.&quot; It is best to create your project folder and save all images in the maps folder before you export the maratis mesh. </p><p>5) If you have to change the location that the mesh file references, you can edit the .mesh file with notepad. I prefer notepad ++. For tips on how to change the reference check out this post:</p><p><a href="http://forum.maratis3d.com/viewtopic.php?id=795">http://forum.maratis3d.com/viewtopic.php?id=795</a></p><p>6) Sometimes when importing from other software like Google Sketchup, the vertex normals will be messy. Using an &quot;Edge Split&quot; modifier on the mesh before exporting will help most issues.</p><p>7) I have a tutorial also in PDF format that will give you a more visual idea of what to do:</p><p><a href="http://forum.maratis3d.com/viewtopic.php?id=859">http://forum.maratis3d.com/viewtopic.php?id=859</a></p>]]></description>
			<author><![CDATA[dummy@example.com (Tutorial Doctor)]]></author>
			<pubDate>Tue, 18 Mar 2014 02:53:16 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=962&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Object Oriented Programming in Maratis(LUA)(Tutorial)]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=839&amp;action=new</link>
			<description><![CDATA[<p>I have been trying to make some sense of object oriented programming in LUA (since lua doesn&#039;t really have object oriented programming).</p><h5>WHAT IS OBJECT ORIENTED PROGRAMMING?</h5><p>Object Oriented Programming(OOP) is taking variables and turning them into Objects. An Object is a variable that has TRAITS and ABILITIES. OOP is used to simulate real life objects. If we had a variable named:<br /></p><div class="codebox"><pre><code>apple =</code></pre></div><p>An apple can have several traits. It has a TYPE and a COLOR and a TASTE. Apples don&#039;t have very many abilities except BeEaten().<br />OOP allows us to assign traits and abilities to your apple and can be used like this:<br /></p><div class="codebox"><pre><code>print (apple.type)
print (apple.color)
print (apple.taste)
apple:BeEaten()</code></pre></div><p>Apples belong to the class of FRUIT, and that is why apples can have a taste and a color and a type. All objects can be CLASSFIED this way. All of the traits of an apple are inherited from the general traits of a fruit. </p><p>This is how you create a class and object in LUA:</p><div class="codebox"><pre><code>--New Player Class
        function Player(name)
            local object = {}

            --Traits
            object.name = name
            object.hit= false

            txt_score = getObject(&quot;ScoreText&quot;)

            --Abilities
            function object:ShowHitStatus()
                setText (txt_score,object.name .. &quot; got hit!&quot;)
            end    
                
            return object
        end

--Create Joe
local joe = Player(&quot;Joe&quot;)

--Create Bill
local bill = Player(&quot;Bill&quot;)

--Print Joe&#039;s name
print (joe.name)

--Show Bill&#039;s hit status
bill:ShowHitStatus()</code></pre></div><p>The PLAYER CLASS is just a function named Player(). What this function does is creates a table named OBJECT and then it returns the table.</p><h5>HOW DOES RETURN WORK?</h5><p>Well, when you put an apple into a Blend() function, the blender returns a chopped up apple. But you don&#039;t have to always make a function return something. You can just have the blender Blend() and not give you back a chopped up apple. But most of the time when you put some fruit into a Blender, you want to be able to get the result (a nice smoothie perhaps?)</p><p>So what is actually occuring is that we are making the Player() function EQUAL TO &quot;object&quot; When you put an apple into the blender you get a chopped apple. <br /></p><div class="codebox"><pre><code>regular apple + Blend() function = chopped apple</code></pre></div><p>(That isn&#039;t real code. hehe)</p><p>So, if Player() = object then when we type:<br /></p><div class="codebox"><pre><code>local joe = Player()</code></pre></div><p>We are saying that joe = object</p><p>and if joe = object, then joe.name = object.name</p><p>And inside of the Player() funtion we made object.name = name</p><p>Then we took that &quot;name&quot; variable and made it an ARGUMENT of the Player() Function</p><h5>WHAT IS AN ARGUMENT?</h5><p> </p><p>Going back the Blend() function, we can Blend() an apple like this:<br /></p><div class="codebox"><pre><code>Blend(apple)</code></pre></div><p>Or we can blend an orange:<br /></p><div class="codebox"><pre><code>Blend(orange)</code></pre></div><p>Or we can blend paper:<br /></p><div class="codebox"><pre><code>Blend(paper)</code></pre></div><p>The things we swtich in and out of the Blend() function are called arguments. </p><p>When you put an argument in the parentheisis of the function, it gets plugged in everywhere the argument is found in the function</p><p>Example:<br /></p><div class="codebox"><pre><code>function Add(x,y)    
        result = x+y    
        return result
end

Add(1,2)</code></pre></div><p>The 1 get&#039;s plugged in where the x is. The 2 get&#039;s plugged in where the y is.<br /></p><div class="codebox"><pre><code>Add(1,2)</code></pre></div><p>should return 3</p><div class="codebox"><pre><code>Add(978,562)</code></pre></div><p>should return 1540</p><p>So, in our example of the Player() function, &quot;name&quot; is an argument, and whatever we plug in <br /></p><div class="codebox"><pre><code>Player(_here_) </code></pre></div><p>gets put:<br /></p><div class="codebox"><pre><code>function Player(_here_)
        print(_here_)
        setText(Text0,_here_)
end</code></pre></div><p>and whatever/wherever else.</p><p>Here is the Class again:</p><div class="codebox"><pre><code>--New Player Class
        function Player(name)
            local object = {}
            
            object.name = name
            object.hit= false
            txt_score = getObject(&quot;ScoreText&quot;)
            
            function object:ShowHitStatus()
                setText (txt_score,object.name .. &quot; got hit!&quot;)
            end    
                
            return object
        end

--Create Joe
local joe = Player(&quot;Joe&quot;)

--Create Bill
local bill = Player(&quot;Bill&quot;)

--Print Joe&#039;s name
print (joe.name)

--Show Bill&#039;s hit status
bill:ShowHitStatus()</code></pre></div><p>Functions work the same way. If bill = Player() and Player() = object (returns object) then object:ShowHitStatus = bill:ShowHitStatus.</p><p>Now that we have a PLAYER CLASS we can make any variable a PLAYER. And just by making them a PLAYER they will obtain the TRAITS and ABILITIES that every other PLAYER OBJECT has. </p><div class="codebox"><pre><code>sarah= Player(&quot;Sarah Williams&quot;)
francais = Player(&quot;Francais Smith&quot;)
margret = Player(&quot;Margret Sachel&quot;)</code></pre></div><div class="codebox"><pre><code>sarah:ShowHitStatus()
francais:ShowHitStatus()
margret:ShowHitStatus()</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (Tutorial Doctor)]]></author>
			<pubDate>Sun, 09 Mar 2014 17:44:23 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=839&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Parts of Speech in Programming]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=868&amp;action=new</link>
			<description><![CDATA[<p>The english language has many words. Each word has a designated part of speech. When these words are combined in special ways, you get a sentence. </p><p>I want to share a standard I have for translating these parts of speech into lua programming so that your code will be more readable. </p><h5>NOUNS</h5><p>A noun is a Person, Place, Thing, or Idea. <br />Variables should be named like nouns. Meet Joe:<br /></p><div class="codebox"><pre><code>joe =</code></pre></div><p>Joe is a person, so he is a noun. We could put joe in a Person Class to make him more of a person:<br /></p><div class="codebox"><pre><code>joe = Person()</code></pre></div><h5>VERBS</h5><p>Verbs are Action Words. Joe can walk and talk!<br />Functions should be named like verbs.<br /></p><div class="codebox"><pre><code>joe:Walk()
joe:Talk()</code></pre></div><h5>ADJECTIVES</h5><p>Adjectives Describe Nouns! Joe is pale!<br />Use Booleans to denote adjectives.<br /></p><div class="codebox"><pre><code>pale = true</code></pre></div><h5>ADVERBS</h5><p>Adverbs Describe Verbs. Joey can walk Quickly:<br />Once again, use Booleans to denote adverbs. If you use them as arguments for functions, it reads better. <br /></p><div class="codebox"><pre><code>joe:Walk(quickly)

walk = true
quickly = true</code></pre></div><h5>PARTICIPLES</h5><p>A participle is a tense of a verb. Is Joe biking? Or has joe biked? Usually past or present tense.<br />Once again, Booleans.<br /></p><div class="codebox"><pre><code>biking = true
biked = false</code></pre></div><h5>PREPOSITIONS</h5><p>A preposition is a Location Word. Is joe Under the shed or In the shed? Is he Around the corner or Along the corner?<br />Booleans again.<br /></p><div class="codebox"><pre><code>under = false
around = true</code></pre></div><h5>CONJUNCTIONS</h5><p>Conjunctions JOIN sentences (statements).<br />Usually Conditional Statements are the conjunctions in programming. Words like &quot;but,&quot; &quot;and,&quot; !because,&quot; are conjunctions. <br /></p><div class="codebox"><pre><code>if joe.isWalking and joe.isWalkingQuickly then
    joe.isAfraid
end</code></pre></div><p>Above, isWalking is a boolean, as well as isWalkingQuickly. Also isAfraid is a boolean. So all we are doing is setting boolean values. Starting to look like an English sentence. </p><h5>INTERJECTIONS</h5><p>Interjections are used to express emotion or sentiment. Uh, er, bye, hi, cheers! Horray! Wow! Sup! Oh! Well! Sorry! Oh dear!<br />One way to do interjections is to use Loops. Most of the time these statments stand for other things. &quot;Wow&quot; means that you are surprised and don&#039;t know what to say. <br /></p><div class="codebox"><pre><code>surprised = true
speecheless = true

while speechless and surprised do
    LookInAmazement()
end</code></pre></div><p>We could make a function called Wow() that would set these boolean variables:<br /></p><div class="codebox"><pre><code>function Wow()
    wowed = true
    surprised = true
    speecheless = true
    LookInAmazement()
end

joe:Wow()</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (Tutorial Doctor)]]></author>
			<pubDate>Tue, 05 Nov 2013 15:45:32 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=868&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Applying (Visual Effects used in Movie) concepts to Maratis for Games.]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=853&amp;action=new</link>
			<description><![CDATA[<p>Note: work in progress.</p><br /><p>Here we will be looking at some, &quot;Visual Effects&quot; concepts/techniques used in the production of movies that we could also use in Maratis. Somethings may be dependent on the current state of the Maratis roadmap, but still relevant to you as a game developer.</p><br /><p><strong>Introduction</strong></p><p>You might have seen films with heavy visual effects and heard people say “The visual effects were amazing!”, but what exactly are visual effects and how do they work?&nbsp; Visual effects (commonly shortened to Visual FX or VFX) is the term used to describe any imagery created, altered, or enhanced for a film or other moving media that cannot be accomplished during live-action shooting. </p><p>One of the single biggest misconceptions about movies is that the content in them is hard to produce or expensive, nothing could be further from the truth. The majority of money spent on a movie is on actors and rendering time. The movie Shrek took 5 years to render on 2000+ computers at the time of its creation. Imagine running 2000+ Amazon EC2 instances&nbsp; 24/7 for the next 5 years and that&#039;s not even counting storage for all your pre and post rendered files. Then you have your actors and the big names are not cheap.</p><p>But actually creating the content its self, doesn&#039;t cost anything other than time, and its all fairly easy to do. The VFX industry loves fast and easy, because 5-6 years of production isn&#039;t fun and it cost to much. </p><br /><p>What we want to do is merge both VFX Production Concepts and Game Development Concepts into a single entity that is a great looking game. Some of the things you will see, might cause you to doubt your own ability and question my sanity <img src="http://forum.maratis3d.com/img/smilies/wink.png" width="15" height="15" alt="wink" /> but I guarantee you with a little practice regardless if your an artist or a programmer or neither you will be able to produce everything here at a speed and quality, that has others thinking your a professional. </p><br /><p><strong>Table of Contents</strong><br /></p><ul><li><p><strong>Matte Painting</strong></p></li><li><p><strong>Camera Mapping</strong></p></li><li><p><strong>Destructible Buildings</strong></p></li><li><p><strong>Ground Breaks and Earth Quakes</strong></p></li><li><p><strong>Animated Planes and Explosions</strong></p></li></ul><br /><br /><p><strong>Matte Painting</strong><br />A matte painting is a painted representation of a landscape, set, or distant location that allows filmmakers to create the illusion of an environment that is nonexistent in real life or would otherwise be too expensive or impossible to build or visit. Historically, matte painters and film technicians have used various techniques to combine a matte-painted image with live-action footage. At its best, depending on the skill levels of the artists and technicians, the effect is &quot;seamless&quot; and creates environments that would otherwise be impossible to film.</p><p>The following is a &quot;Matte Painting In Progress&quot;.&nbsp; Matte Painting&#039;s are normally made up of various images that are layered and blended in a image editor in order to create something new. In the second screenshot you can see the different images on seperate layers.</p><p><strong>Start</strong><br /><span class="postimg"><img src="http://moon245.3dtotal.com/admin/new_cropper/tutorial_content_images/474_tid_28_step3_groundstart.jpg" alt="http://moon245.3dtotal.com/admin/new_cropper/tutorial_content_images/474_tid_28_step3_groundstart.jpg" /></span></p><p><strong>Halfway Completed</strong><br /><span class="postimg"><img src="http://moon245.3dtotal.com/admin/new_cropper/tutorial_content_images/474_tid_37_step3_firstiyi=.jpg" alt="http://moon245.3dtotal.com/admin/new_cropper/tutorial_content_images/474_tid_37_step3_firstiyi=.jpg" /></span></p><p><strong>Completed</strong><br /><span class="postimg"><img src="http://www.3dtotal.com/admin/new_cropper/tutorial_content_images/474_tid_47_step3_imagesadjustments=.jpg" alt="http://www.3dtotal.com/admin/new_cropper/tutorial_content_images/474_tid_47_step3_imagesadjustments=.jpg" /></span></p><br /><br /><p><strong>Camera Mapping</strong><br />Camera Mapping, also known as camera projection, is a quick and easy technique to apply a quick ’3d’ look to a scene with the camera moving while minimizing the amount of actual modelling.</p><p>When combined with Matte Painting you can combine 3D and 2D objects in-order creating the illusion that your 2D Matte Painting is in fact a 3D Object.</p><p><span class="postimg"><img src="http://1.bp.blogspot.com/-UWOczz1yPwU/Tk_A8zCqLTI/AAAAAAAAJn4/DDE_-bkxOPE/s1600/Mattingly_Digital_Matte_Painting_Handbook.jpg" alt="http://1.bp.blogspot.com/-UWOczz1yPwU/Tk_A8zCqLTI/AAAAAAAAJn4/DDE_-bkxOPE/s1600/Mattingly_Digital_Matte_Painting_Handbook.jpg" /></span></p><br /><p><strong>How to apply to Maratis</strong><br />Matte Painting and Camera Mapping could be used several different ways, below you will see a screenshot the idea was to use these two methods to fill in parts of a scene that might not be accessible to the player, like passing by a window or looking out a window and you see the ruins below. </p><p>Another idea would be to use this method on the outer-bounds of your world to create the illusion that your scene is much larger than it is.</p><p>You could also use this to prototype a scene you like but have trouble creating. </p><p>You could use matte painting to create really cool custom pieces of art work, like paintings hanging on a wall in your scene/game.</p><p>And finally we might eventually have support for video textures and knowing the above will allow you to build really cool intros and cut scenes.&nbsp; </p><p>Note: Normaly you would slice your source image up and use those to texture several different planes, or 3d objects, for more depth and less stretching.<br /><span class="postimg"><img src="https://lh5.googleusercontent.com/-8IVpJOMCf14/Umf56RJoEoI/AAAAAAAABwo/WWSbrZ_UI1w/w987-h537-no/Screenshot28.png" alt="https://lh5.googleusercontent.com/-8IVpJOMCf14/Umf56RJoEoI/AAAAAAAABwo/WWSbrZ_UI1w/w987-h537-no/Screenshot28.png" /></span></p><br /><p><strong>Animated Planes and Explosions</strong><br />The idea here is to create a realistic explosion or similar particle effect, render out each frame to an image with a transparent background. Combine those rendered frames to a single image and create an Animated Plane. We would normally use these <br />at a distance but honestly I am sure even at close range they should be convincing enough.</p><p><span class="postimg"><img src="http://www.fxguide.com/wp-content/uploads/2012/07/DMM_MPC_ships.jpg" alt="http://www.fxguide.com/wp-content/uploads/2012/07/DMM_MPC_ships.jpg" /></span></p>]]></description>
			<author><![CDATA[dummy@example.com (Tutorial Doctor)]]></author>
			<pubDate>Wed, 30 Oct 2013 18:17:12 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=853&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[A few Programming Standards]]></title>
			<link>http://forum.maratis3d.com/viewtopic.php?id=860&amp;action=new</link>
			<description><![CDATA[<p>Programming is not a school subject you have to pass in order to graduate, but if we treat it as one and learn it the way a high school education system would teach it, we could get better standards for programming. It is good to have standards. </p><p>People have different conventions for naming variables or plain structuring code. I am a layman so I try to keep it simple. </p><p>An APPLE is a FRUIT. Therefore an apple belongs to the class of FRUIT:<br /></p><div class="codebox"><pre><code>class Fruit()

apple = Fruit()</code></pre></div><p>One way to name a class is as a TYPE of something. An apple is a TYPE of fruit. Apple is the instance. Fruit is the class. </p><p>Another way to name a class is as a SUBJECT. </p><p>In Math class you learn math.<br /></p><div class="codebox"><pre><code>class Math()

calculus = Math()</code></pre></div><p>But this is incomplete if you don&#039;t have a good convention for naming variables and functions so as to distinguish them from class names or one another without checking the camel&#039;s back. </p><p>Variables are nouns<br />Functions are verbs.</p><p>Functions should be names as ACTIONS. If you want to quit a game:<br /></p><div class="codebox"><pre><code>function QuitGame()</code></pre></div><p>If you want to start a game:<br /></p><div class="codebox"><pre><code>function StartGame() </code></pre></div><p>I also have a standard for booleans. I name booleans as PARTICIPLES and as ADVERBS:<br /></p><div class="codebox"><pre><code>walking = false

if walking then
end

quickly = false

if walking and quickly then

end</code></pre></div><p>For people who name variables with underscores it is best to put NOUNS BEFORE ADJECTIVES as it makes similar variables easier to spot in the code:<br /></p><div class="codebox"><pre><code>apple_red =
apple_green =

boy_mexican =
boy_african_american =
boy_caucasian =
boy_indian =
boy_chinese =</code></pre></div><p>If I want to find a &quot;boy&quot; I can find it easier this way.</p><p>Underscores also make things easier to read for me (I used to not understand why people did it). </p><p>Anyhow, having standards like these will make code flow better, and keep variable names or class names or function names from getting mixed up.</p><p>One more thing, It is good to be SPECIFIC yet BRIEF in your naming. For example if you have a person class:<br /></p><div class="codebox"><pre><code>class Person()</code></pre></div><p>And you create an instance:<br /></p><div class="codebox"><pre><code>joey = Person()</code></pre></div><p>Then you make joey do &quot;Person&quot; stuff:<br /></p><div class="codebox"><pre><code>joey:Speak()
joey:Walk(quickly)</code></pre></div><p>This is already specific to JOEY since it uses classes, so your wording shouldn&#039;t get mixed up.</p><p>However, if it were just a function outside of a class:<br /></p><div class="codebox"><pre><code>Walk()</code></pre></div><p>Then it leaves the questions:</p><p>Who or what is walking?<br />Walk where?<br />Walking how?</p><p>You could do this instead:<br /></p><div class="codebox"><pre><code>WalkFast()
WalkSlow()
WalkLikeYouBrokeYourLeg()</code></pre></div><p>Functions should start with a captical letter and camel-case for each new word<br />variables start with a lower case letter and camel-case for each new word. </p><p>Whether you use underscores or not is up to you. But the two standards above are general for every programming language (at least how schools would teach you). </p><p>Writers can write however they want in their journals, but when it comes to writing a research paper, there are standards. Hopefully this helps.</p>]]></description>
			<author><![CDATA[dummy@example.com (255)]]></author>
			<pubDate>Wed, 30 Oct 2013 01:03:45 +0000</pubDate>
			<guid>http://forum.maratis3d.com/viewtopic.php?id=860&amp;action=new</guid>
		</item>
	</channel>
</rss>
