Entities

Entities include:

  • Models (any regular Blender mesh)

  • Sprites (can be made from the PogoBlend Add menu)

  • Blocks (can be made from the PogoBlend Add menu)

All entities are just meshes. Models are regular meshes as you know them. Sprites are just a flat plane with a texture on it, and blocks are also flat planes with some pre defined settings.

See also

Modeling page for more information on how to make the meshes that entities use.

Entities have materials, actions, and flags.

Materials

The material on an entity determines how it will look in-game. It currently has not effect on how it is displayed inside Blender. Some materials allows changing the brightness (technically it’s “ambient”, how much sunlight the material should reflect), and some other value (greyscale, transparency).

Below is an in-game image of the available materials, aswell as a list of their names and descriptions which is also available in the add-on by hovering your mouse over each material.

../_images/materials.png

In-game image of the available materials with a gradient texture applied. Note: the ‘Sap’, ‘Pink Sap’ and ‘Boost Juice’ materials have a bubbles texture instead. Also, the ‘Normal Mapping’ material is using a second texture, a normal map, and it will look different depedning on the normal map you are using. ‘Moss’ has a second UV Map that determines the location of the moss.

Name

Description

No Material

Geometry

The default material for regular geometry

Fruit Tex

Like ‘Geometry’ but… fruit? Works well with textured entities

Fruit Tex Reflective

Like ‘Fruit Tex’ but more reflective

Fruit

“Fruity” material

Unlit

Unlit material

Pixelated

Shows the texture with no modificaitons. Specifically texture filtering, so this material is good for showing pixel art

Character

Bright and high contrast material

Wood

Wood material

Gold

Gold material

Metal

Glossy metal material

Ice

Looks like ice

Bee

Looks like the hair on the bees

Moss

Uses a second UV Map to add moss to the entity. Any UV-cordinate on the second UV Map, that has an X-value greater than 1 becomes mossy

XRay Geometry

Hiddes the entity when the players comes too close. Otherwise same as ‘Geometry’ material

Toggle Block

Should be used with the ‘Toggle Block’ action. Dithers the entity

Sap

Used for regular sap. Scrolls the texture. Use the ‘Slime Bubbles’ texture to get the regular sap look

Pink Sap

Used for the pink sap. Scrolls the texture. Use the ‘Slime Bubbles’ texture to get the regular pink sap look

Boost Juice

Used for boost juice. Looks like gold. Scrolls the texture. Use the ‘Slime Bubbles’ texture to get the regular boost juice look

Falling

Scrolls multiple copies of the texture downwards. Can be used to make snow fall or other particles

Normal Mapping

Uses the second texture on the entity as a normal map.

Fruit1

Main material used in Map 1

Fruit Tex Mirrored

Same as ‘Fruit Tex’ but mirrors tiling textures

Egg

Looks like the egg

Anvil

Used for the anvil. Has a cast iron look

Cloud

Used for the clouds. White material, with grey parts

Custom Material 1

A Custom Material

Custom Material 2

A Custom Material

Custom Material 3

A Custom Material

Custom Material 4

A Custom Material

Custom Material 5

A Custom Material

Custom Materials

You can make Custom Materials using HLSL and .fx files. There is 5 different slots for Custom Materials. When an entity has a Custom Material applied, there will be a button that will open a text editor where you can edit the shader. The first time you do this the file will be filled in with a template that you can delete or build out from. If you would like to edit the shader with an external editor simply save the text block in Blender to an external file, or create a file called ‘customMaterialX.fx’ (X is the custom material slot) in the same folder as your Blender file.

When you edit/add a Custom Material, you might need to restart Pogostuck so it can setup auto reloading of that material. When that is setup, you just need to export the map and the shader will be updated instantly, you won’t even have to reload the map! Once you are done mapping and editing Custom Materials, you might also want to restart Pogostuck again, because otherwise other Custom Maps using Custom Materials will use the ones you’ve made instead of theirs.

In order to use the alpha value in your pixel shader, you should set the ‘alphaBlendEnable’ value in the technique to true.

Caution

If you make a mistake in the shader, a default shader will be used instead.

Help Wanted

Currrently there is no deeper guide on how to write Custom Materials. If you have some knowledge about it, consider contributing a guide! There might also be some useful information on the Gamestudio A8 Manual under the “MATERIAL” section, or have a look at appAGeoDefault.fx, the ‘Geometry’ material, in the BaseMap.

Actions

Actions change the behavior of the entity. Some actions might have additional options that allow you to change the specifics of how the action should behave. An option is either a flag, an on or off option, or a ‘skill’ which is just a decimal number.

An entity can have a maximum of two actions. If you are using two actions please note that some of the options might overlap and that using two actions might give inconsistent behavior.

Below is a list of the avaiable actions. The descriptions for the actions will be available in the add-on, but unfortunately the descriptions for the options are currently not.

Warning

Some flags in the action options might overlap with the ‘Bonk’ and ‘Ice’ flags.

Name

Description

Mushroom

Makes the entity bounce like a mushroom

Parallax

Moves the entity based on the players position. Normally used to move background entities

Flags

  • Stay on bottom: Fixes the entity to the bottom of the screen

  • Fixed X-axis: Fixes the entity to it’s X-axis

  • Fixed Z-axis: Fixes the entity to it’s Z-axis

Skills

  • X-axis factor: How much the entity should parallax on the X-axis

  • Z-axis factor: How much the entity should parallax on the Y-axis

POI

Makes the player look at this entity

Flags

  • Scary: Make the Pogo Dude make a scared face when looking at the POI

  • Mega Eyes: Make the Pogo Dude make a face with large eyes when looking at the POI. Takes priority over ‘Scary’

Thorn

Knocks the player over on contact, or sends them to the nearest point on the attached path

Sap

Knocks the player over on contact. Yellow particles

Pink Sap

Knocks the player over on contact. Pink particles

Coconut

Knocks the player over on contact. White particles

Boost Juice

Gives the player a boost when jumping off this entity

Break

Breaks the entity when the player jumps off it. Plays an animation of a cube breaking at the origin of the entity. The entity only reappears after breaking when the map is reloaded, and not when resetting. Does not work with Auto Collision

Wheel

Spins the entity around it’s origin

Flags

  • Continuous Rotation: Rotate the entity continously without being affected by the player

  • Sine Rotation: Rotate the back and forth based on a sine wave without being affected by the player. Takes priority over ‘Continous Rotation’

Skills

  • Rotate Speed: How fast the entity should spin

  • Sine Base: The base of the sine wave. Aka the offset

  • Sine Amount: How much the sine wave rotation should rotate (in degrees)

Move Sine

Move the entity along its axes following a Sine Wave

Flags

  • Y-axis changes brightness: If movement on the Y-axis should change the brightness of the object

Skills

  • X-axis distance: How much the entity should be moved on the X-axis

  • Z-axis distance: How much the entity should be moved on the Z-axis

  • X-axis speed: How fast the entity should be moved on the X-axis

  • Z-axis speed: How fast the entity should be moved on the Z-axis

  • X-axis offset: How much the movement on the X-axis should be offset

  • Z-axis offset: How much the movement on the Z-axis should be offset

  • Y-axis distance: How much the entity should be moved on the Y-axis

  • Y-axis speed: How fast the entity should be moved on the Y-axis

  • Y-axis offset: How much the movement on the Y-axis should be offset

  • Y-axis brightness factor: How much the movement on the Y-axis should affect the brightness. Negative values reverses the effect

Move Loop

Moves the entity a certain distance and then resets it’s position. Like Map 2 bees

Skills

  • X-axis distance: How much the entity should be moved on the X-axis

  • Z-axis distance: How much the entity should be moved on the Z-axis

  • Speed: The speed of the movement

  • Offset: The offset of the movement

Toggle Block

Toggle the entities state/collision everytime the player jumps/boosts. Can be used with the ‘Toggle Block’ material

Flags

  • Toggle only on boost: If the entity should only be toggled on boost, or on any jump

  • Group 2: If the entity is part of group 1 or 2. Changes which “cycle” it is on

  • Turn invisible: If the entity should turn invisible when it is toggled off

Skills

  • Red/Blue tint: How much the entity should be tinted either red or blue. Entities in group 1 will be tinted red, and group 2 will be tinted blue

  • Dither amount: How many dithers the entity should have. Only works with the ‘Toggle Block’ material

  • Dither factor: How much the entity should be dithered. In a range of 0-1, a value of 0.5 gives half dithered look, for lower values the dither is the parts where the entity is omitted, for higher values the dither is the parts where the entity is shown. Only works with the ‘Toggle Block’ material

Toggle Sine

Toggle the entites state/collision based on time passed

Flags

  • Toggle background: If the entity should be put in the background when toggled off

  • Toggle invisible: If the entity should be invisible when toggled off

Skills

  • Speed: How often the entity should be toggled

  • Offset: The offset of which the entity is toggled

  • Brightness shift: How much the brightness should be shifted when toggled off

Run State Toggle

Show or hide the entity depending on the state of the current run

Flags

  • Show before run: If the entity should be shown before the run

  • Show during run: If the entity should be shown during the run

  • Show after run: If the entity should be shown after the run

  • Only collide if shown: If the entities colliders should only be enabled if it is shown

  • Fade in: Fades in the entity by scaling it up from 0

Skills

  • Fade in speed: How fast the fade in should be

  • Do fade alpha: Fades in using transparency if the value of this skills is not 0. Only works on materials that support transparency

  • Do smooth step: Uses smooth step instead of linear fading if the value of this skills is not 0

  • Do overshoot: Overshoots the fade in if the value of this skills is not 0. Does not work with smooth step

  • Overshoot factor: How much the fade in should overshoot.

Water Visual

Adds a flowing water visual to the entity. The entity should have a texture (any texture) applied, otherwise it looks weird. Changing the UVs will change how the water flows (speed, angle, width, wobbliness)

Skill set

Used to pass skills as variables to shaders. Not documented at all, so don’t expect this to do anything with most normal materials

Skills

  • vecSkill41.x

  • vecSkill41.y

  • vecSkill41.z

  • vecSkill41.w

  • vecSkill45.x

  • vecSkill45.y

  • vecSkill45.z

  • vecSkill45.w

Mushroom Bones

Makes the player bounce on the object. Used for mushrooms. Only works if the entity has bones

Flags

  • Light Bounce: Produces a lighter bounce

Skills

  • Power: The power of the bounce. A value of 0 or lower gives default power. Any other value takes priority over the ‘Light Bounce’ flag. Only works if the ‘Mushroom Power’ mode is enabled

Flags

Flags are on or off values, and change certain things about the entity.

Invisible makes the entity invisible.

Shadow gives a glow shadow around the entity. It does this by just adding a blurry version of it in the background, so this doesn’t work if the background is blocked or the background flag is on.

Background places the entity in the background and blurs it.

Collision makes the entity collideable. See Collisions.

The following flags only has an effect if the entity is collideable:

Auto Collision generates a collision that matches the entities sideview. See Collisions.

Kill kills the player on contact with the entity.

Ice makes the player glide on the entity like ice.

Bonk makes the player bonk on contact with the entity, even if it’s the pogostick that makes contact.

Collisions

You can enable collision on any entity. When collisions is enabled the player will collide with the entity. The collision happens where the Y-position is equal to 0, so make sure that you position collideable entities on the XZ-plane.

In case you just want the player to collide with an entity as it appears on it’s sideview you can enable Auto Collision which will auto-generate a collider for the entity and place it correctly. If you want to preview or modify this collision you can generate the collision yourself by selecting the entity that you want to create a collider for and under the ‘Object’ panel you can select PogoBlend -> Create a Pogostuck Collider.

Note

Automatic colliders are not guarenteed correct so if your collisions are acting funky, try generating the collider manually and inspect it to look for any problems.

Warning

Sometimes when colliding with a rotated entity, the player might fall straight through it. If this is the case, just rotate the mesh and not the entity, or use Auto Collision as that won’t have any rotation on it.

Overrides

The auto-generated assets from Pogostuck will have some overrides applied to them. Overrides just tells the add-on to build the entity in a certain way. For these assets it is the filename that is overriden, and that means that the mesh will not be exported to a model and the entity will instead use the file with the name given by the override. The same goes for just about any field on an entity, like materials. For normal use cases you won’t have to set these overrides manually, but it’s good to know what they are. You can enable viewing all overrides in the preferences. If a field is overridden it will be shown no matter the option in your preferences.