• Subcribe to Our RSS Feed
Browsing "Games"

Pivot Change Log

Jun 18, 2013   //   by Josh   //   Games  //  No Comments

Look at all of the new and exciting changes being made to Pivot since the last public Alpha!  [Note: lots of changes from multi-note revisions are missing].

revisions1

Stand by for awesome… :)

 

Pivot Alpha Build r158

May 31, 2013   //   by Josh   //   Games, Uncategorized  //  1 Comment

Hey everyone!  Thought I’d share a new alpha build with Level Editor support!

Alpha Build r158: http://www.redclovergames.com/projects/pivot/alpha/Pivot_win32_alpha_r158.zip

Update: Controls:

  • WADS – Move
  • L – Action (pickup/drop objects when facing them)
  • Spacebar – Jump
  • R – Reset current level
  • Esc – Quit/Menu

Release Notes:

  • Menu system
  • Level Timing for speed runs!
  • A level select menu with 23 levels (currently working on more)
  • A fully featured Level Editor
  • Save states for tracking high scores and level progression
  • Several graphic tweaks
  • Lots of mechanic polish

The best part about this release is the built in level editor.  I build all of the in-game levels using this editor.  It needs usability improvements, but it works.  If you enjoy the mechanics of the game, go ahead and make/share your levels.  I am interested in crowd sourcing player generated content for the release version of the game.  So if you see a creative way to use a mechanic that exists today, send me your levels and I’d be happy to give credit to the level design when the game ships (and even plug your own projects/website if you’d like).  If not, go nuts, have fun with it, let me know what you think.

The levels you create in the editor are all stored in Pivot_Data\Levels.  You can share these files with friends by dropping new text files in that directory.

Your feedback is invaluable, if you’d like to see a new mechanic, a new crystal, a new block, or something else, let me know.  Feel free to share this build with friends, it’s a DRM-free alpha build right now, lots will probably change.

Also, I like the name Pivot for the game, but I feel like it’s perhaps too generic and there are other similarly named products out there.  I’m open to more suggestions that capture the essence.

Hit me up on Twitter (@Ralkarin) or e-mail me (Ralkarin@gmail.com) for direct questions or to send me your awesome levels. Smiley

-Josh

Pivot – Energizing Objects

Feb 12, 2013   //   by Josh   //   Game Design, Games  //  2 Comments

Today I’ve been playing with the idea of activating elements in the world with colors/crystals, giving more meaning to spreading colors.

The idea is that the world is colorless and lifeless because the crystals have been removed from their sockets.  When you socket a crystal, the crystal’s energy(color) is spread to nearby colorless blocks.  By spreading color to colorless blocks, these blocks can now energize nearby devices like cannons in the example below.

From left to right:

  1. The cannon on the island is lifeless because it is inactive.
  2. Placing the blue crystal in the socket on the island spreads the blue energy to island and activates the cannon.
  3. The cannon is not located at the correct position to break the blocks, so the avatar can carry the cannon to a new location.  Picking up the cannon deactivates the cannon because it is no longer connected to an energy source.
  4. Placing the cannon in the correct spot reactivates the cannon, breaking the blocks, allowing access to the socket on the other island (astute observers will know that the socket is already accessible using the pivot mechanic, but this is just a sample).
  5. Placing the green crystal on the other island activates the exit portal, colorifying the entire world, making everyone happy.  Yay!

This mechanic will probably be refined, but I like the idea of bringing color to everything in the world, giving it life again.

Those brown cracked blocks need to be white too…See ya next time!

Pivot!

Feb 6, 2013   //   by Josh   //   Games  //  2 Comments

So it’s been in development for a long time, but I thought it was maybe time to officially announce my current project, Pivot!

Latest Prototype Links:
Web: http://www.redclovergames.com/blog/projects/pivot/playtest/egw/
Win32: http://www.redclovergames.com/blog/projects/pivot/playtest/egw/pivot_win32.zip


Pivot is an experimental 3D action-platform-puzzle game where the player must restore “color” to a fragmented world by rotating around the world’s edges, finding gems and putting them back where they belong.

The experimental mechanic in Pivot is the navigational world rotation and local gravity mechanics that allow the player to explore all sides of 3D environment, inside and out. Rather than controlling gravity via switches or buttons, the player can only change their local gravity by “pivoting” around edges of the world. Furthermore, every object in the world maintains their own local gravity and only by pivoting with an object does that object’s local gravity change.

I can’t recall any particular inspiration for the project, although games like Fez, Minecraft, Offspring Fling, Zelda, and Super Mario Galaxy have all contributed in some way. I had been working on a project code named HexDev, an emergent map making/rpg experimental project and I felt like I needed something slightly different to look at. I sat down one night and built a prototype of a core mechanic where the player can walk on all sides of a cube in a maze/labyrinth by walking off the edge, sent it to my friends, and they loved the concept. One of these friends said: “Seriously, of all the prototypes you’ve made over the years, I want to play this game the most.”

The project went through many phases of iteration all revolving around the core mechanic of world rotation. It started as a rotational maze game. Then I decided I wanted it to have a world and be adventurous like Zelda, so I envisioned this giant cube world of smaller cubes that needed to be put back together using tools/items. This idea was really cool, but it felt extremely restrictive in level design and heavy on the story, so I threw away the idea of a unified world and favored isolated puzzles to capture the mechanic better. I wanted the game to have more of an action like feel, so I added the jump mechanic, which bumped up the gameplay by an order of magnitude, but completely changed all of the puzzles. Recently I did an analysis of game mechanics using abstract models and added an object to manipulate/carry. Finally I started adding gamey things to the game like progression and timers, which really improved the state of the game.

I’m not completely content with the state of the game and I am left wanting to add more mechanics that take advantage of the unique gravity/rotational properties. I haven’t completely nailed down the core mechanics that are present in every level. At some point I want to build out a complete set of levels and get the game released, but it’s been challenging for me to finalize the core until it hits a certain sweet spot between deep, simple, and innovative. As I build more content, I feel the need to make the core mechanics more interesting, but I feel like I’m not quite there yet.

More history of the project can be found on TIGSource: http://forums.tigsource.com/index.php?topic=27583.0
The original prototype that spawned the whole idea can be found here: http://www.redclovergames.com/blog/projects/pivot/playtest/egw/idea

I plan on making a dedicated page for the game as it grows, so stay tuned! This game is gonna get released 1 way or another, and with your help, it can be even more awesomer!

Let me know what you think! :)

HexTactics

Jan 28, 2012   //   by Josh   //   Games, Unity3D  //  No Comments

Alex and I decided to have a quick competition this weekend.  A mini game Jam between friends if you will, primarily involving physics based destruction in some way.  I didn’t think it was going to happen, but he decided to take the challenge, so I at least had to work on something. :)

So here’s what I came up with in the last 2 hours or so.  I may not have much time to work on it this weekend, but it’s fun anyway.  The concept is a Physics based Tactical RPG [turn based], played out on a hexagonal grid, with different types of units and interactive/dynamic terrain and obstacles.

The Wizard Apprentice Saga Begins!

Dec 22, 2011   //   by Josh   //   Games, Unity3D  //  No Comments

Ludum Dare was really an eye opening experience for me.  I had a ton of fun and I’m getting an amazing amount of feedback from the indie gamedev community, which is fantastic!  I think as a result of the experience, I’m going to continue developing “The Wizard Apprentice” prototype into a more feature-full game.  I love doing the level and puzzle design, and dropping the assets in and playing with them is really a blast!  I’m not going to abandon HexDev, but it’s currently sitting on my back burner.

I decided to run with the concept, and fix a lot of things, keeping some of the puzzles the same, rewriting some, and adding a lot more content.  I’m probably going to rename the game, because the name is too generic and I literally decided on the name in the last 10 minutes of the competition while I was submitting my entry. :D

I’ve done a couple of things so far, worth mentioning, so here’s a glimpse:

  • I’m revamping the way my modelling in Blender was done, so I have cleaner transitions and better control over connections like the stairwell.
  • Opened up the room depth, taking full advantage of the “octagonal space” on each floor.
  • Stairwells no longer require a turn halfway through (I’m not sure if this will make it harder or easier, but so far I like the new style better)
  • Adding Toon-Style shading where appropriate
  • Fixed some camera angle issues to give better depth perspective.  (may tweak this some more)

Lots more to come!  Stay tuned!

Ludum Dare 22: The Wizard Apprentice

Dec 19, 2011   //   by Josh   //   Games, Unity3D  //  No Comments

So this weekend, starting Saturday evening, I decided I was going to enter Ludum Dare 22 and try to hammer out a game in less than 48 hours!  Being a husband and father, I found it very difficult to actually get a lot of time spent on this, so I would say in total I had about 16 hours of committed time on this project, so all things considered, I think it was a pretty good run for it’s worth.  And it was fun!

Play: The Wizard Apprentice

Things I would have liked to do if I had the full 48 hours of dedication:

  • Sound!
  • Textured walls
  • Animated Avatar
  • Cleaner controls
  • Better GUI
  • More Magic (but he’s only an apprentice).

But hey, with such strict time limitations, not a whole lot you can do, so without further ado, go enjoy The Wizard Apprentice!

HexDev Alpha Build 14

Dec 10, 2011   //   by Josh   //   Games  //  No Comments
Oh, and I posted a new HexDev Alpha Build tonight as well, because it’s been a while since I’ve updated it.
Quick feature list off the top of my head:
  • Ice
  • Penguins
  • Alligators
  • Bow & Arrow
  • Pickaxe
  • Mineable Copper Ore
  • Ash
  • Caves
  • Skeletons
  • Edit: Treasure Chests (with nothing in them and very cool audio)

Coming soon:  Banjos and Penguin mounts?

Simple Scrolling Combat Text with Unity3D

Dec 10, 2011   //   by Josh   //   Games, Tutorials, Unity3D  //  1 Comment

I found an interesting discussion on Eric Heimburg’s G+ page about “floaty numbers” in Unity, and offered to share my solution to this problem as seen in HexDev, so here it is! Maybe someone will come looking for Scrolling Combat Text in Unity and this code will help!

So to get things started, here’s a quick screenshot of the implementation in HexDev:

Concept

The basic concept is to display numbers above a unit whenever they take damage.  The number should rise for a certain height at a given speed and then poof away!  Nice and simple right?

So, to do this using my approach, we need a couple things:

  1. A Prefab with a TextMesh component attached.
  2. A Unit object with a MonoBehaviour attached that calls: SendMessage(“DamageTaken”, x);   where x is the number to be displayed.
  3. The ScrollingCombatText behaviour below attached to the GameObject that you want to display SCT numbers.

So, Step 1) In my projects, I have created a prefab called SCTText which looks like this:

Nothing fancy, again just a GameObject that has a TextMesh object on it.  The beauty of it is that you can change this prefab to have a mesh or particles or whatever you want on it.  The number will be updated by the ScrollingCombatText script below.

For step 2, all of my units have a special behaviour attached to them that manages their health.  Whenever they take damage, they simply use the Unity SendMessage API to notify other MonoBehaviour’s attached to the game object that the unit has taken damage.  This will probably need to be tailored to your project.

And for step 3, I just attach the script below to my GameObject, give it the Prefab we defined in step 1, configure some parameters and whenever the unit takes damge, voila!  Scrolling combat text!  Here’s what the configuration of the script looks like on my units (each unit can have their own values or we can use the default values):

Code – ScrollingCombatText

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
 
public class ScrollingCombatText : MonoBehaviour
{
	// How fast will the spawned text object rise
    public float RiseRate = 4.0f;
	// How high should the spawned text object rise
    public float RiseHeight = 10.0f;
 
	// Prefab with an attached TextMesh component that will be spawned when damage is taken
    public GameObject TextPrefab = null;
 
    private List floatingTextObjects = new List();
 
	// This will be the starting height of the floating numbers
	private float initialHeight = 0.0f;
 
	// Use this for initialization
	void Start ()
    {
		// If this component is attached to a CharacterController, use the CharacterController's height attribute to set the initial height
		CharacterController charController = gameObject.GetComponent();
		if (charController != null)
			initialHeight = charController.height;
	}
 
	// Requires the GameObject to have a method call to: SendMessage("DamageTaken", int)
    void DamageTaken(int damageAmount)
    {
		// Create a new text object and set the starting height and text
        GameObject textInstance = (GameObject)Instantiate(TextPrefab);
        textInstance.transform.parent = gameObject.transform;
        textInstance.transform.localPosition = new Vector3(0, initialHeight, 0);
 
        TextMesh mesh = textInstance.GetComponent<TextMesh>();
        mesh.text = damageAmount.ToString();
 
		// Add to the list of floating text objects to update every frame
        floatingTextObjects.Add(textInstance);
    }
 
	// Update is called once per frame
    void Update()
    {
		// Cache all text meshes to be deleted and later delete them
        List objectsToDelete = new List();
 
        foreach (GameObject floatingTextObject in floatingTextObjects)
        {
			float riseDelta = Time.deltaTime * RiseRate;
            Vector3 newPosition = new Vector3(floatingTextObject.transform.localPosition.x, floatingTextObject.transform.localPosition.y + riseDelta, floatingTextObject.transform.localPosition.z);
            floatingTextObject.transform.localPosition = newPosition;
            floatingTextObject.transform.LookAt(floatingTextObject.transform.position + Camera.mainCamera.transform.forward);
 
			// Delete this floating text object if it exceeds our RiseHeight property
            if (floatingTextObject.transform.localPosition.y &gt;= initialHeight + RiseHeight)
            {
                objectsToDelete.Add(floatingTextObject);
            }
        }
 
        foreach (GameObject objectToDelete in objectsToDelete)
        {
            floatingTextObjects.Remove(objectToDelete);
            Destroy(objectToDelete);
        }
    }
}
Pages:12345»