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:
- The cannon on the island is lifeless because it is inactive.
- Placing the blue crystal in the socket on the island spreads the blue energy to island and activates the cannon.
- 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.
- 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).
- 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!
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:
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!
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.
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.
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!
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:
- 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!
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:
- Bow & Arrow
- Mineable Copper Ore
- Edit: Treasure Chests (with nothing in them and very cool audio)
Coming soon: Banjos and Penguin mounts?
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:
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:
- A Prefab with a TextMesh component attached.
- A Unit object with a MonoBehaviour attached that calls: SendMessage(“DamageTaken”, x); where x is the number to be displayed.
- 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
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
// Update is called once per frame
// 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 >= initialHeight + RiseHeight)
foreach (GameObject objectToDelete in objectsToDelete)
At the moment, one of the biggest struggles I am having as a game designer is giving players objectives. I have the power to give people an objective to achieve, so what do I want people to do? When I ask myself that, I realize that I am potentially putting a lot of power into my own hands (along with a tremendous amount of responsibility!) Think about some of these questions: “What do I want people to do?”, “How do I want people to behave?”, “What do I want people to take away from this experience?” This makes me think about other games that I’ve played [and enjoyed] and the thoughts or answers to those questions that game designers must have made while designing some games.
For a game like Grand Theft Auto, someone sat in a room and answered some of those questions: “I want players to [virtually] kill other virtual characters with weapons.” or “I want players to steal cars [because you're not allowed to in real life!]” or “I want players to steal money to buy drugs.” Maybe they didn’t say it out loud and they probably didn’t say it in those exact phrases, but someone had to think of the concept, convey it to a team, and test it out to see how fun it was. And it must have been fun and people must have liked it because it sold like crazy!
I struggle internally with the idea of pushing content that is “unethical”. If I make a game with violence in it, am I condoning that action? If I put my brand logo on food that is bad for people’s health does that mean I want people to die? Do I really want me kids and people playing my game to learn about violence or stealing or death like this?
I recently discovered an indie game called Catapult For Hire by Tyrone Henrie. There was an interview conducted by Indie Games Channel where they ask him about his motivations and I really think I can relate to this guy [aside from the fact that I don't have the guts to quit my day job to program games full time since I'm supporting a family of 5]. In that article, he tells why he started developing Catapult for Hire:
Originally, I wanted to enter a game into a competition and so I decided to do something involving catapults. [...] I didn’t want to do just another game where you throw stuff and hit stuff.
So from that, we can imply that his primary objective was to “do something different”. Reading on a little bit, I found a more concrete example of his game design goal:
From a gameplay standpoint, my goal is to create a sense of childlike wonder where the world is your little plaything.
So there is a very abstract goal for his desire to make a video game, in which many game developers (including myself) share. I do enjoy exploration and fulfilling curiosity, giving people an avenue to “play” things they cannot in real life.
Build A Better Mousetrap
In a recent interview with Raph Koster, he talks about developers being inspired by those that came before them. The developers of EQ wanted to build something better than MUDs, the developers of WoW wanted to build something better than EQ, etc… etc… So, I guess that could be viewed as an inspiration. When we see something and experience something, I think it’s natural that we want to point out the flaws and try to fix them and make it better.
So should I just try to build something better? Take the latest trend, fix a few things and tweak it? Or is that shallow? Personally I can’t see myself just creating another game like game X. I feel like I need to make a difference and do something unique.
The Gamification Reality
Raph Koster also talks about the gamification of things in the real world and how the lines between gaming and reality are becoming blurred, in a totally whimsical but seriously awesome presentation at GDC Online this year. Game design is no longer focused on your basement dweller, soda drinking, couch potato persona, it’s getting “serious” and “popular” and “social”, GASP!
Will Wright takes it 1 step further with a new start-up company called Hivemind, who will be developing games of the genre “personal gaming”. In this article, Will Wright explains his concept of “personal gaming”:
The idea is that the game will be designed to provide a personal experience to each individual player by taking into account aspects from the player’s real life….If we can learn enough about the player, we can create games about their real life. How do we get you more engaged in reality rather than distract you from it?”
So, Will Wright is suggesting here that the objectives of these “personal gaming” game designs are to engage you more in reality rather than create a distraction. I mean, right there he flat out calls games a “distraction”… which really makes a lot of sense. So as a game designer am I really just building a “distraction”, something pointless to pass the time? In some ways, I can’t help but feel that yeah, that’s what every game I’ve ever played is doing.
However, I am also reminded of Mojang and Minecraft and how they are inspiring communities to design their neighborhood. Through this sandbox “game”, people are going to share their ideas about the community and construction companies are going to use these “virtual blueprints” to help design real. life. places! How cool! The game becomes a tool!
Speaking of tools, our bodies are wonderful tools too. Bret Victor of WorryDream.com, wrote an article that discusses the Future of Interaction Design. What do I take from this? Well, I think that consoles like the Wii [and Kinect] are already showing us the potential that our bodies have in the gaming world. The idea and effort that went into designing this system was not merely an extrapolation of existing designs (add 1 more button, use 1 less finger), where we continue to use a controller. Instead, they utilized the human potential to interact with the game worlds and created something that changed the world of gaming! So, some game designer was inspired to give more meaning and value to gaming by creating this, which I think is great.
Then there is Foldit. The concept is that by playing a protein folding “game”, you are helping contribute to important medical research, which can help real people!
My children play lots of education based games right now that teach them numbers, counting, shapes, letters, logic, colors, and many other fundamental life skills that we also teach them by way of reading, talking, drawing, discussion, tangible toys, playing games, etc… But I guess the point here is that some game designs are built with the intention to teach somebody something of value. Knowing that golems are weak against fire and the only way to kill a 1 eyed tree frog with blue skin is to fire a poison dart into belly doesn’t really provide a whole lot of tangible takeaways. That’s rather useless information really, but it’s fun! Education game design takes the idea that we can convey important facts to people through fun activities. Personally, I was always more motivated by labs than reading from a book in Science class. I thought it was great to see stuff in action and learn that way.
As a game designer, our fundamental goal is to give our players something to do…
So now that I wrote this blog post, I guess I am still asking myself: What do I want people to do?
I’m having too much fun playing with Cube Slimes and Burning Trees!
Desining emergent gameplay is awesome!
Attention loyal supporters of HexDev!
Ahem, ok, so I made the link to HexDev at the top point directly to the game on Kongregate. This will help me save some web space and generate a bit of revenue (hahahaha), ahem… as I keep developing. At some point, if Kongregate supports the Shared Content API for Unity, I’m ready to integrate it into the game so people can share custom maps. Someday I may have to write my own content sharing API if they don’t deliver.
Here’s where you come in! If you have a Kongregate account, I need a few more votes on the game to see how people like it so far. The problem with Kongregate is that once games fall off the “new” list, they never get seen again, unless they are 5/5 star games which make the front page. But at the same time, that makes sense for their business because a lot of garbage and prototype stuff gets put there, so they have to.
So, long story short:
- Go vote for HexDev on Kongregate! (so I can see the score)
- If you dislike this change for any reason, comment below so I can reconsider the change.