Feb 272015
 

To ease testing out maps — to avoid moving the player GO every time we want to start at a different part of the map — we have a player_start object. It teleports the player GO to itself on game start. However, if you could only have 1 such player_start on map, it would kinda defeat the purpose of easing the work, right?

vap_player_start

So, we allow to have multiple such GOs in the map. But how to determine at which player_start the player should start? Well, the player_start component has a boolean for that. That’s nice, but if you set that bool on a new player_start, the last player_start that was previously active will still have the bool set to true as well; so the player will be teleported twice, and you can hardly predict where he will end up.

So first you need to set off the currently active player start and then set on the new player start. Easy, right? No, it’s annoying and there’s a better solution! Let’s change those bools on player_starts right in the editor (in edit mode) whenever we change one player start.

For this, there is a nice unity attribute: [ExecuteInEditMode]. It will call the callbacks just as it would in play mode, but only when something changes in the scene; not per frame.

using UnityEngine;
using System.Collections;

[ExecuteInEditMode]
[AddComponentMenu("Vaporum Scripts/Player Start")]
public class VapPlayerStart : VapBehaviour
{
	[Tooltip("Tick this on to start gameplay here.")]
	public bool on = false;
	bool lastOn = false;
	
	void Start()
	{
		// Execute only in play mode.
		if (Application.isPlaying)
		{
			// First snap this GO to grid to correct any human mistakes in editing.
			VapGM.SnapToTileGrid(this.gameObject);
	
			// Teleport player here.
			if (on == true)
			{
				Transform p = VapGM.playerGO.transform;
				p.position = this.transform.position;
				p.rotation = this.transform.rotation;
				
				// Set TileObject if we're standing on one.
				VapTileObject t = VapGM.GetTileObject(p.position);
				if (t)
				{
					p.GetComponent().SetCurrentTile(t);
				}
			}
		}
	}
	
	void Update()
	{
		#if UNITY_EDITOR
		// In editor mode, check if 'on' was changed.
		if (Application.isEditor)
		{
			if (on != lastOn) SetPlayerStart();
		}
		#endif
	}
	
	#if UNITY_EDITOR
	// Sets this component as the only player start on map.
	void SetPlayerStart()
	{
		if (on)
		{
			VapPlayerStart[] list = FindObjectsOfType(typeof(VapPlayerStart)) as VapPlayerStart[];
			
			foreach (VapPlayerStart p in list)
			{
				if (p != this)
				{
					p.on = false;
					UnityEditor.EditorUtility.SetDirty(p);
				}
			}
		}
		
		lastOn = on;
	}
	#endif
}

I was previously doing this via OnValidate() callback, but that was unreliable. This new solution works like a charm!

Enjoy!

Dec 192014
 

Hey, guys.

Here’s a video, introducing the story in Vaporum. This is where your journey begins…

The art for this intro was created by Daniel Mihalik, an upcoming talented comic artist from Slovakia, the captivating voice-over was mused in by Sebastian Hernandez from the USA, and the music was orchestrated by Karel Antonín from the Czech Republic.

We’d love your feedback on the visuals, sound, voice, and the story itself!

Nov 202014
 

Hi, guys.

Here’s a short gameplay video, showing Vaporum’s action combat. You can see a few enemies, skills, and weapons used, as well as the puzzling forging press, one of many big steam-powered machines at work that you will have to figure out to progress further into the mysterious complex.

We will be releasing more such videos in the coming weeks, showing other level parts and aspects of the game.

Stay tuned, share, and discuss!

Jul 162014
 

Hello there.

Let me introduce the new environment tile set our lead 3D pixel-dragger has come up with lately. This is my personal favourite one so far – so industrial and cozy. Scripting these parts of our Vaporum world is already fun and feels good. Pushing crates around these halls, wrecking enemies, pulling levers, solving puzzles, wrecking more enemies and looking for secrets… yummy!

vaporum screen shot of an old brick wall style factory

vaporum screen shot of an old brick wall style factory

You can expect more in the coming weeks. Share the good word, good folks! :)

Thank you for your support!

May 282014
 

It’s been some time since the last post, but fear not, we’ve been hard at work on various game systems as well as physical assets. We’d like to share a few screenshots of what’s cooking in our artists’ pot.

Soon, we will share more of what we’ve been working on, what’s new and what’s planned. Stay tuned!

Apr 122014
 

We, FatBot Studio, are a group of experienced game industry veterans with background in PC and console video game titles who are working on an indie game project named Vaporum. We are fans and gamers in the first place, but skilled in making games as well. It is very important for us to work on projects that we like and are motivated for.

We are looking for equally minded people to join our ranks! :-) Continue reading »

Apr 032014
 

In today’s post, our AI & core programmer, Tomas Dzamko, will take you through the typical issue of any game, and that is teaching AI agents (enemies) to navigate the environment. Read on to delve into detailed and quite technical description on how this is done in Vaporum. Continue reading »