426

(15 replies, posted in Showcase)

2 Level rooms!

427

(3 replies, posted in Gossip)

zester wrote:

0.0 I am working as fast as I can!!!!!!!! lol

Hahaha!

428

(3 replies, posted in Gossip)

The main reason I have been trying to flood this site with content is that what I find is that people who might be interested in Maratis come here and find a community that is almost non-existent. But the main thing is that they go to the showcase area and don't see any CONTENT. People want to know what is possible with the engine. So people kinda say Maratis? Yeah right!

Or they might see some cool things, but don't know how the engine works, and might need some downloadable examples to test and play with to see how things work, and again, what is possible.

For instance, one person was able to download the Jules N Funland example I made, and change the terrain and edit the code and add other features. This makes a person comfortable working in Maratis.
http://forum.maratis3d.com/viewtopic.php?id=775

It is part of the reason I put up the TEST LEVELS:
http://forum.maratis3d.com/viewtopic.php?id=797

We really need more CONTENT. Even if it may not be the best, you will learn from what you DO. And also let other people test it and make suggestions also.

Pictures are cool, but I know I am a hands on person.

If I can get this Normal Map thing down, I will make some nice looking levels that prove Maratis can really compete.

But I think the key advantage that Maratis has over some others is EASE OF USE and SPEED.

Anael, keep it FAST. Unity is very sluggish. Optimization is key also, and I know you work like that already.

LET'S STICK IT TO EM

429

(42 replies, posted in Showcase)

Nice! You should bake some ambient occlusion into your level as well. I like how you used the water and made the apples re-spawn like jumping beans, hahaha

430

(42 replies, posted in Showcase)

ant0n wrote:

Tutorial Doctor, HI!
I have changed your lua script for Jules N' Funland. Used object oriented features, lua. I hope you enjoy it smile
http://savepic.su/3451502m.jpg

Jules.lua

Thank you!! I have been getting around to making it all object oriented (see my post on customizable game script).

I will definitely check it out!

431

(0 replies, posted in Showcase)

I want to create a bunch of tools that aid me in making a game. I will post them on this page:

START AND FINISH LINE:
In the file are two meshes, a start line mesh and a finish line mesh. Also there is a very basic script on how you could use them. The start line script sets an object of your choice at the location of the start line. The finish line checks for a collision between itself and the object of your choice and then performs an action of your choice.
Note: The SpawnAtStart() function should have "object" as an argument. I changed it here, but it needs to be done in the script.

--Variables
start_line = getObject("StartLine")
finish_line = getObject("FinishLine")
start_location = getPosition(start_line)

--Functions
function SpawnAtStart(object)
    setPosition(object,start_location)
end

function GoToNextLevel()
    if isCollisionBetween(finish_line,object) then
        --loadLevel("levelName")
    end
end


function GoToMenu()
    if isCollisionBetween(finish_line,object) then
        --scene = getScene("nextScene")
        --changeScene(scene)
    end
end


PunBB bbcode test
Download:
https://sites.google.com/site/aasfsfasa … Finish.zip

More to come...

432

(1 replies, posted in Off-Topic)

I haven't been a part of a forum community in a while, but I got to thinking about the word COMMUNITY (feeling a little mushy).

I don't know everything, and I am learning just like the next guy, even if he might be at a higher level than me. Now, I do wish I could do it all by myself, and make a game all by myself. I wish I could promote it all by myself etc.

I have learned a lot. But every time I think I am ready, I find there is more to learn. Every venture I have taken it ends up like this, so I find myself getting overwhelmed and usually quitting.

The next guy always seems to be on some higher level, and RARELY does the next guy take the time out to help someone who just is not on their level.

Then I thought, ''THAT'S THE REASON FOR COMMUNITY! DUH!" hahaha.

I went on one website. New guy asked a simple question and got shot down. Sorta rude really. Question not answered. I know the feeling. So I at least attempted, because I am new myself.

Thanks Zester for taking time out to help the other guy. In all facets of life, that is honorable. As long as Maratis maintains a good community, people will just want to help out any way they can.

You too anael. You help a lot.
-TD

433

(17 replies, posted in Showcase)

That's it! One of my first posts on this forum was that I like to make BASE MODELS. A base model is a model that is a base for a character that can be edited a little to become unique.

It is sorta like that proxy mesh of makehuman. Not too much detail to be complicated to adjust, but not too much to be unique already.

I like your style! haha.

434

(15 replies, posted in Showcase)

zester wrote:
Tutorial Doctor wrote:

Added another test level HALLWAY

We should work together on assets and tutorials. You appear to be good at things I am not. I like your interior(indoors) models mine never turn out right.

That's sorta interesting. I was just thinking the same thing! haha. I was getting ready to start a topic on it.

One thing I am lacking is good animation skills (or at least I want to make the process faster). I am thinking of buying an xbox kinect and using it as a motion capture device.

I will make a tutorial on how I do these interiors. They are so simple and fast. Sort of like the way you do your characters. I will think of a format for that topic and create it soon.

Thanks.

435

(15 replies, posted in Showcase)

Added another test level HALLWAY

436

(9 replies, posted in External Tools)

Vegas wrote:

Oh, from the included in blender by default, here's the ones i'm using the most :

Material Utils
Inset Polygon
LoopTools
Import Images as planes (not so much because it's bugging alot)

also, the texture atlas plugin (2nd in the list) is now included by default in blender (from 2.68 if i'm correct)

THANK YOU! i needed that image as planes one!
LOOP TOOLS!

437

(17 replies, posted in Showcase)

Zester, you do some very clean modeling. I am trying to do some box modeling now, but I don't feel I can make anything. I mean I made an ottoman:
PunBB bbcode test

But I can only do it with rectilinear shapes. I was wondering if you have a specific workflow. I see that using mainly extrude with edge loops gives a neat look, but how would I do that for something like, say, your models?

438

(9 replies, posted in External Tools)

Just added a bunch more. And thanks for adding to the list!

439

(9 replies, posted in External Tools)

I will be posting here of cool Blender plugins to help you in making games in Maratis. Of course you know about the Maratis Exporter, and perhaps about the makehuman importer, but here are a few more:

Easy Rig animation: (BEPUIK)
http://blenderartists.org/forum/showthr … Kinematics

UV unwrap entire scene: (Texture Atlas)
http://www.blendernation.com/2012/09/13 … re-scenes/

UV unwrap box and planar easy!
http://blenderartists.org/forum/showthr … p-Modifier

Motion Capture(paid):
https://www.youtube.com/watch?v=u0Y9EAMlF8E

Projection Painting:
https://www.youtube.com/watch?v=JJgNCxtgSb4

Real Time Animation(Now Free!):
https://www.youtube.com/watch?v=JVIdlfNFlro

Easy Car Rig:
https://www.youtube.com/watch?v=xPSmmmuokgY

Automatic Face Rigging and Animation Blending:
https://www.youtube.com/watch?v=OuqYPJoBnT4
https://sites.google.com/site/khuuyjble … der/script

Faster poly modeling: (F2 Addon)
https://www.youtube.com/watch?v=ImSNOuvkKsw

Icon tools(I gotta get this one!):
https://www.youtube.com/watch?v=0YYsA7NvS48

Dynamic SpaceBar Menu(inluded already):
http://wiki.blender.org/index.php/Exten … cebar_Menu

Create HTML DOCUMENT from .blend file(Account needed):
https://www.youtube.com/watch?v=neN2esmQf50

Garment Maker:
http://blenderartists.org/forum/showthr … in-blender

Animate UVs:
http://www.blendernation.com/2011/11/12 … -textures/
(this is included but must be activated)

Model using grease pencil: (DrawMesh and BSurfaces
http://www.youtube.com/watch?v=YUOhCFrfeN8

Muscle animation:
https://www.youtube.com/watch?v=Ki4IVZFzLuA
(Will Update periodically)

440

(5 replies, posted in Tutorials/Examples)

I have been learning game theory for a few days, and it is very exhaustive. So I decided to put it in my own words and make it easy to jump into making GOOD games without having to understand all of game theory or game mechanics.

Game theory and game mechanics are what help you to establish a good "OORR WE DO":

http://snapguide.com/guides/game-1/

441

(0 replies, posted in Scripting)

In this post I want to explore DECISION TREES. If you have a very comprehensive example of a way to use decision trees, please post it here. Please make it easy to understand (clean and simple naming conventions).

-DECISION TREE EXPLORATION

--States
normal = true
happy = false
sad = false
worried = false
afraid = false

--Conditions
got_some_money = false
bump_your_head = false
loose_wallet = false
walk_into_dark_room = false

function GetEmotional(x)
    x = true
end

if got_some_money then
    GetEmotional(happy)
end

--What if we want an animation to play if they are happy:

if got_some_money then
    GetEmotional(happy)
    changeAnimation(object,animationID)
end

--Multiple conditions?

if bump_your_head and walk_into_dark_room then
    GetEmotional(sad)
    GetEmotional(afraid)
end

Certain CONDITIONS affect your current STATE.

442

(10 replies, posted in Scripting)

Heavily Commented it to show how the code works.

----CUSTOMIZABLE GAME SCRIPT----

----OBJECTS
--This is where you create all of the objects in your game
box=getObject("cube")
man=getObject("man")
monkey = getObject("monkey")
cone = getObject("cone")
person = getObject("person")
steps = getObject("steps")
Player = getObject("Player")
Set = getObject("Set")
Feet = getObject("Feet")
apple = getObject("apple")
snd_collect = getObject("collect")
apple_clone = getClone(apple)
----END OBJECTS

----MOTION (Self-Explanatory)
--MOVE VARIABLES
--Below, I commented out some of the Maratis functions I might want to use in my motion functions 
--[[translate(object,direction,"local")
onKeyDown(key)
onKeyUp(key)
setAnimationSpeed(object, speed)
playSound(object)
pauseSound(object)
stopSound(object)
getSoundGain(object)
setSoundGain(object, gain)]]

--These are all of the motion variables
move_object =         box
move_speed =        .1

--These are the various DIRECTIONS in which you can move. They are Vector3 variables. 
--A vector3(vec3) is just a spot in 3D space. 
--I used a variable inside of the vector3 so that I can change it outside of the vec3 function.
--[[
The reason that I made one negative and positive inside of the vec3 function is so that when
I change it outside of the function I don't have to make it negative (I can just use positive values)
]]
move_forward =        vec3(x, -move_speed, z) --[1]
move_backward =    vec3(x, move_speed, z) --[2]
move_left =        vec3(move_speed, y, z) --[3]
move_right =        vec3(-move_speed, y, z) --[4]
move_down=        vec3(x, y,-move_speed) --[5]
move_up=            vec3(x, y, move_speed) --[6]

--This table/array holds all of the directions so that I don't have to keep type out every direction. Instead of:
--[[
move_forward
move_backward
move_right
move_down
move_up
]]
--I can type:
--[[
move_direction[1]
move_direction[2]
etc
]]
move_direction =        {move_forward,move_backward,move_left,move_right,move_down,move_up}

--This is another table for choosing which buttons are used to move something
--I can quickly change what button moves an object up by switching out the "W" to "UP"
move_btn =         {move_btn_U,move_btn_D,move_btn_L,move_btn,R}
move_btn_U =        "W"
move_btn_D =        "S"
move_btn_L =        "LEFT"
move_btn_R =        "RIGHT" 

--These variables deterine animations that are played, as well as the speed at which they are played. 
-- I don't have to dig through functions to simply adjust the speed at whcih the animation plays
move_animation =    1
idle_animation =         0
move_animation_speed =  2
idle_animation_speed = .5
--The sound made when moving
move_sound = steps

--JUMP VARIABLES
--[[translate(object,direction,"local") ]]

--The Jump area works just like the Move area. 
col = getNumCollisions(jump_object)
jump_object =         box
jump_height =         3
jump_speed =         1
jump_btn =         "SPACE"
jump_animation =        changeAnimation(object, animationId)
jump_direction =         {jump_up,jump_down,jump,left,jump_right}
jump_up =            vec3(x, y, jump_speed*jump_height) 
jump_down =        vec3(x, y, jump_speed*jump_height) 
jump_left =            vec3(-jump_speed*jump_height, y, z) 
jump_right =        vec3(jump_speed*jump_height, y, z) 
collisions =             getNumCollisions(box)

--SPIN VARIABLES
--[[rotate(object,direction,angle,"local")]]

--Same as the Move area
spin_speed =        7
spin_object =         box
spin_direction =        {spin_left,spin_right}
spin_left =             vec3(x, y, spin_speed)
spin_right =        vec3(x, y, -spin_speed)
spin_btn =            {spin_btn_L,spin_btn_R}
spin_btn_L =        "A"
spin_btn_R    =        "D"
spin_animation =        changeAnimation(object, animationId)

--MOVE FUNCTION
--All of the variables above are substituted into their respective functions.
--The goals is to have NO VALUES inside of the function itself as it simply controls variables.
--This way we can adjust variables outside of the function and have easy access to them.
--Also, complete and descriptive naming conventions are a MUST for clarity
function Move(move_object,move_direction,move_btn,move_animation,idle_animation)
    if isKeyPressed(move_btn) then
        changeAnimation(move_object,move_animation)
        translate(move_object,move_direction,"local")
        playSound(move_sound)
        setAnimationSpeed(move_object, move_animation_speed)
        
    end    
    
    if onKeyDown(move_btn) then
        playSound(move_sound)
    end
    
    if onKeyUp(move_btn) then
        changeAnimation(move_object,idle_animation)
        setAnimationSpeed(move_object, idle_animation_speed)
        stopSound(move_sound)
    end
    
end

--JUMP FUNCTION
function Jump(jump_object,jump_direction,jump_btn--[[,jump_animation]])
    if isKeyPressed(jump_btn) then
        --changeAnimation(jump_object,jump_animation)
        addCentralForce(jump_object, jump_direction, "local")
    end
end


--SPIN FUNCTION
function Spin(spin_object,spin_direction,spin_btn)
    if isKeyPressed(spin_btn) then
        --changeAnimation(spin_object,spin_animation)
        rotate(spin_object,spin_direction,spin_speed,"local")
    end    
end
----END MOTION

----ARTIFICIAL INTELLIGENCE 
--This section works like the Motion section also.

--[[
So far I am trying to simulate the 5 senses. All of the senses are physics base and use basic collision to determine if something
is either SEEN or HEARD etc. 
]]

--SEE VARIABLES
--[[isCollisionTest(object)
isCollisionBetween(object1, object2)
getNumCollisions(object)
setScale(object, {x, y, z})
changeAnimation(object, animationId)
setAnimationSpeed(object, speed)]]

--The SEEING section is a COLLISION TEST. A cone is representive of the eyes. 

--object that can be seen
seen_object =        monkey

--object that is seeing     
seeing_object =         cone

--A boolean to see if something is seen (if there was a collision between the seen and seeing object)
seen =             isCollisionBetween(seeing_object,seen_object)--true or false

--Field of view. Basically the width of the cone
see_FOV =            0

--Length of the cone            
see_distance =        0

--Animation to be played when SEEN is TRUE
see_animation =        0--animatinoID

--SMELL VARIABLES

--The smelling section is also COLLISION BASED. However, it detects collisions with a particle system
smelled =             isCollisionTest(object)--true or false
smell_particle_system =
smell_animation =        0--animatinoID

--HEAR VARIABLES
--[[playSound(object)
--pauseSound(object)
--stopSound(object)
--getSoundGain(object)
--setSoundGain(object, gain)]]

--The hearing section is not physics based. It detects whether or not the volume of a sound is above a certain number. If it is, it is HEARD. 

heard =             false
hear_sound =        getSoundGain(object)
hear_proximity =        0
hear_pitch =        0
hear_animation =        0--animationID
hear_limit =         3 --limit at which sound can be heard

--TOUCH VARIABLES
--Phsycs based. 
touched =             isCollisionTest(object)
touch_object =         getObject("finish_line")
touch_animation =     0--animationID

--TASTE VARIABLES
--Physics based
tasted =             isCollisionTest(object)
taste_object =        getObject(« objectName »)
taste_proximity =        0
taste_animation =    0


--SEE FUNCTION
function See(seeing_object,seen_object)
    if isCollisionBetween(seeing_object,seen_object) then 
        quit()
    end
end

--HEAR FUNCTION
--the object in parenthesis is the object being heard (a sound object)
function Hear()
    if heard and hear_sound > hear_limit then
        changeAnimation(object,hear_animation)
    end
end

--TOUCH FUNCTION
function Touch()
    if touched then
        changeAnimation(object,touch_animation)
    end
end

--TASTE FUNCTION
function Taste()
    if tasted then
        changeAnimation(object,taste_animation)
        tasted=true
    end
end

--SMELL FUNCTION
function Smell()
    if smelled then
        changeAnimation(object,smell_animation)
        smelled=true
    end
end
----END ARTIFICIAL INTELLIGENCE

----DEFAULTS
changeAnimation(person,0)
stopSound(steps)
----END DEFAULTS

----ADDITIONAL FUNCTIONS
function GetText()
    --Apples
    --apples = {apple_clone,apple_clone,apple_clone,apple_clone}
    --apples_collected = 0
    --scale = vec3(2,2,2)

    GuiScene = getScene("Scene_name")
    Camera = getObject("Camera_name")
    enableCameraLayer(Camera, GuiScene)
    text = getObject(GuiScene,"Text_object")
    show_apples_collected = "Apples = " .. apples_collected
    setText(text,show_apples_collected)
    --Collect(apple)
    --Collect(apple_clone)
    
    --coll = getNumCollisions(Feet)
end


--[[COLLECTION FUNCTION
function Collect(object)
    if isCollisionBetween(Player,object) then
        deactivate(object)
        playSound(snd_collect)
        --Scale()
        apples_collected = apples_collected + 1
    end
end
]]
----END OF ADDITIONAL FUNCTIONS

----GAME
function onSceneUpdate()

    --Move Box
    Move(box,move_direction[1],move_btn_U)
    Move(box,move_direction[2],move_btn_D)
    Move(box,move_direction[3],move_btn_L)
    Move(box,move_direction[4],move_btn_R)
    
    --Jump Box
    Jump(box,jump_up,jump_btn)
    
    --Spin Box
    Spin(box,spin_left,spin_btn_L)
    Spin(box,spin_right,spin_btn_R)
----------------------------------------------------------------
    --Move Person
    Move(person,move_direction[1],move_btn_U,move_animation,idle_animation)
    Move(person,move_direction[2],move_btn_D,move_animation,idle_animation)
    Move(person,move_direction[3],move_btn_L,move_animation,idle_animation)
    Move(person,move_direction[4],move_btn_R,move_animation,idle_animation)
    
    --Jump Person
    Jump(person,jump_up,jump_btn)

    
    --Spin Person
    Spin(person,spin_left,spin_btn_L)
    Spin(person,spin_right,spin_btn_R)
    
    

end
----END GAME

The difference between the SEEING OBJECT and the TASTING OBJECT and the FEELING OBJECT is simply the SHAPE of the representative geometry. Seeing object is a cone. Tasting object can be a cube if you want. Feeling Object can be a cylinder etc. Whatever geometry best portrays the sense. Cone is best for sight.

These objects can also be parented to different objects and in various locations on the object so that the object itself will only be able to, for example, TOUCH something that has collided with it's RIGHT SHOE. hehe

443

(0 replies, posted in Off-Topic)

mars
mars
mars
mapson
white
mapson
marpson
mapson
white
mars
mars

Thanks for playing!

444

(2 replies, posted in Tutorials/Examples)

Thanks for uploading the lua script. I like to look at scripts and get ideas! I might try to work on some dynamic text object using  only lua. (really needed)

445

(2 replies, posted in Tutorials/Examples)

You want a tutorial on how bullet physics work? How to make a bullet physics library?

446

(4 replies, posted in Tutorials/Examples)

I just got finished watching 2 hours worth of videos on game mechanics at PAX.
Here is one of the videos:
http://www.youtube.com/watch?v=GXdfU2DoF8o

There is so much that goes into game mechanics that is sorta tires me. haha. I mean, the most popular games today (I understand now) use very basic game mechanics if any.

It seems that if a mechanic doesn't have a specific purpose or intended outcome, then it is useless, or it can create another mechanic in and of itself.

One thing I have deduced from it all is that before any work goes into any sort of mechanic or anything, the overall PURPOSE of the game has to be established. Everything else has to be designed to fit the purpose.

I really don't play games myself, except for games that help me learn some skill I can use in real life.

Most modern games use lazy mechanics to make you feel you have accomplished something, but meanwhile in your actual life you can't even cook your own food. But that is the purpose of those games, so that they can get your money and your time. Etc.

After learning about game mechanics, I think the only type of game i could get some sort of satisfaction out of is one that is educational.

As far as RANDOM goes, i stumbled across something called randomseed() a while ago, because math.random wasn't actually behaving random enough:

http://twolivesleft.com/Codea/Talk/disc … it-work/p1

447

(29 replies, posted in Showcase)

Sponk, was wondering if you might like this video:
http://www.youtube.com/watch?feature=pl … AvG2E7p_W8

I will be working on a similar environment soon.

448

(2 replies, posted in External Tools)

255 wrote:

As written in the Maratis website, 10 Blender units is equal to 1 meter in Maratis.
1 meter is 3.2808399 feet.
So 1 Blender unit is 0,32808399 feet in Maratis.
So if
1[SUU(ft)] = .30480[BU]
that means that
1[SUU(ft)] = ( .30480[BU] * 0,32808399[Maratis(ft)] ) [Maratis(ft)]
which is = 0.1

So 1[SUU(ft)] = 0.1[Maratis(ft)]

Thanks! So 1ft in Maratis is 10 feet in Sketchup!

That is a big difference! hehe. But I can always make the sketchup model at regular scale and then adjust the size of the entire model easily (multiply by 10?)

These factors all all over the place, but it is kinda neat now (glad they aren't too strange)

449

(11 replies, posted in Gossip)

Under SOUNDS I added the SPEAK IT app. It allows you to convert text to speech. The voices are very realistic and don't cost much for additional voices.

450

(16 replies, posted in Showcase)

Got a walking character now! (Image 19)