Well, it was a good run, but I’ve decided to give up on trying to texture this model and sell it to InXile for use in Wasteland 2. I’m actually pretty proud of the model to be honest, but I don’t have the time or dedication right now to texture this thing properly.
Instead I’m going to go back to work on Pivot and try to work on some gameplay programming, yay!
I’m going to package up everything I’ve done so far and release it into the wild for someone else to learn from. I guess I still retain the rights to this model or something, but I want people to use it and learn from it if they can. I’ve never really published anything on the interwebs before, so uh, go nuts I guess?
Here’s the URL to the blend project complete with my current texture map.
Wasteland 2 Blend File
Here’s a quick in blender shot of what I’ve done so far.
If anyone has questions, feel free to ask!
I’ve been away from the blog for some time now [6 months!], so I thought it was time to at least provide an update to show I do have a pulse.
HexDev has taken the back burner to these other projects, although I’m not giving up on it yet.
HexTactics never really saw much more than the weekend prototype I threw together, so I don’t know if that’s going to go very far.
The Wizard Apprentice series might make a come back in the future, I’ve entirely rebuilt the starting tower’s model, but haven’t revised any of it’s puzzles yet. I think it still does have some potential, and I get a kick out of it every time I play it.
In the last 6 months, I’ve really just been prototyping some new ideas.
Project CurioSense – I’ve been working on a prototype project we currently call CurioSense with Alex Eisenhart [of former No Dice Required fame], who is busy working on his own projects as well. I’m actually still a little excited about this one and you may see some news about in the future. Neither of us are ready to commit the time to make this take off yet, but if you like web comics, interactive media, and satire, you might find this project amusing some day.
Project Kingdom Puzzle - I’ve prototyped several levels for a project I call Kingdom Puzzle which plays a lot like Chip’s Challenge in 3D with crafting/building. Again, I’m not sure if this one will see the light of day, but the concept was fun and really drove me into my current project.
And the reason I wrote this post was really just to say that I’m working on a fairly top-secret puzzle game I am calling Invert. I won’t be giving away many details about the game on the interwebs yet, so keep my blog in your RSS feed and wait for the bomb shell to drop. My plan for Invert is to actually release a complete game by the end of 2012, which gives me roughly 6 months of nights and weekends work to finish it. I hope that’s not too ambitious, but if it’s not ready, it won’t be released. This post is my commitment to the internet to FINISH A GAME, and that’s what I intend to do with this one. Stand by for a trailer video, there probably won’t be any public gameplay until it is near completion.
Thanks for your support! See you later this year!
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?
No new build posted, but I worked on the Library Town Tile tonight.
The Library is a Town tile, which spawns a Librarian who gives quests! This is the primary way to add objectives to a Tile Set in HexDev. My current thought process is that each different town tile may have an NPC which wants different types of objectives.
Library – Rare artifacts
Taxidermist - Rare/Epic monster parts
Lumber Mill – Crafting materials
Personally, I think this is a place where a system like StoryBricks could shine. The behaviour of the NPCs that spawn in the Town Tiles could use their system to drive their desires and the players actions could affect how they feel. Come on guys, where’s my Unity API! :)
What do you think? Like the idea or do you have an idea for an objective tile?
I’ve been working on the play controls for HexDev since I started looking deeper into the combat system. After talking to some people about it, I went forward with the initiative to change the control style over to a Spiral Knights style instead of traditional Mouse Click RPG. I think it feels better so far, but I’d like to get the community’s opinion!
Here’s your task, as a dedicated pre-alpha tester on HexDev: I created a new page HexDevWADS on the blog with a new build that has these new controls (and Bomb Tower Tiles!) So…
- Go play it -> HexDevWADS. I recommend creating lots of Grass Tiles (they spawn Blue Cube Enemies) if you want to see combat.
- Add comments to the page about the game in general, things you want to see, things you hate, particularly about the control style within the context of this game. Bugs are expected, but you can report those too.
- Answer this poll so I can see at a glance what you think!
- Subscribe to my RSS feed or follow me on Twitter for updates!
New HexDev build posted.
- Hold Right mouse button to move instead of clicking ALL THE TIME
- Tree Collision (sorry if you spawn in a forest ring)
- Blue Cube Slimes are invading the grasslands!! (right click them to auto attack)
Go ahead, slay those blue cube slimes, I dare ya!
I’ve been thinking of a slightly new direction for HexDev, which led me to thinking it would be appropriate to generate a hexagonal canvas instead of a rectangular one for creating HexWorlds. I also decided to document the process of where it is today and how to get there for fun and for others to learn from.
So first a little background. Let’s start with generating a rectangular grid of hexagons as HexDev already does. To do this, we need a little bit of math (or you can ignore the math and use magic numbers). I chose to orient the hexagons with their left and right side being vertically aligned, points facing up and down. If you choose to orient them a different way, the math may look a little different.
From http://mathworld.wolfram.com/Hexagon.html, we learn the following properties which are very useful for this kind of grid generation:
Given a regular hexagon with side length a:
The inradius: r = 0.5 * sqrt(3) * a
The circumradius: R = a.
The inradius r is important because it tells us how much horizontal distance we need to shift between each tile and how much horizontal space we need to shift every other row.
The circumradius R is useful because we can calculate how much vertical distance we need to shift for every row. Fortunately for us, R = a, so that keeps the math easy.
The horizontal and vertical space between the center of each tile is then calculated by the following formulas:
horizontalSpace = 2.0 * inradius
verticalSpace = 1.5 * R = 1.5 * a
So, given these fomula, here’s the code to tile a Prefab in a rectangular grid in Unity3D:
public class HexGrid : MonoBehaviour
public int Width = 10;
public int Height = 10;
public float HexSideLength = 1.0f;
public GameObject HexTilePrefab = null;
public void GenerateGrid()
float inradius = (float)(0.5 * Mathf.Sqrt(3) * HexSideLength);
float spaceBetweenTilesHorizontal = 2.0f * inradius;
float spaceBetweenTilesVertical = 1.5f * HexSideLength;
if (HexTilePrefab != null)
for (int x = 0; x < Width; x++)
for (int y = 0; y < Height; y++)
GameObject tile = (GameObject)Instantiate(HexTilePrefab, Vector3.zero, Quaternion.identity);
tile.transform.parent = gameObject.transform;
tile.transform.localPosition = new Vector3(x * spaceBetweenTilesHorizontal + (y & 1) * inradius, 0, y * spaceBetweenTilesVertical);
// Center the Grid
gameObject.transform.Translate(new Vector3(-spaceBetweenTilesHorizontal * Width / 2.0f + inradius, 0, -spaceBetweenTilesVertical * Height / 2.0f - HexSideLength));
Using this code will produce a visually “tight” grid of hexagons, if HexSideLength equals the visual length of the hexagon. If you want some space in between your hexagons, you can set HexSideLength to a value > the actual side length of the hexagon, producing an even space around each hexagon.
Here we show HexSideLength = 1 and HexSideLength = 1.05 for a hexagon whose actual side length = 1.
So with a little background out of the way, we can now attempt to generate hexagonal grids. Using HexDev’s Free Tile Builder, I generated the hexagonal grids that I want to automatically generate. I started with 1×1 and worked up to 5×5 to determine the pattern and here’s what we end up with:
So what we have here are forests that represent the tiles that I actually want to generate and water to represent the empty spaces in the rectangular grid space. My planned input is a single value a that represents the number of tiles per side.
To figure out how we are going to generate this grid, some observable stats are useful. If we can find general equations for these values in terms of a, we’ve got enough information to render the grid, so let’s do that.
Here are some stats for every grid:
Let’s break down a = 5 to some even further stats:
So here are some equations that we can derive from these tables:
rowCount = 2a – 1
distanceFromMid[row] = abs(a – row)
tileCount[row] = rowCount – distanceFromMid[row]
The hardest one to derive I think is the leadingSpaces variable, because it changes depending on even/odd a values, but I’ve found this to be true:
For even values of a: leadingSpaces[row] = Floor(distanceFromMid[row] / 2 )
For odd values of a: leadingSpaces[row] = Floor((distanceFromMid[row] + 1) / 2)
At the moment, I’m not going to share my code for this, because it’s getting late and it needs to be cleaned up… but if there is enough interest, I don’t have any qualms against posting it. For now, I leave you with a screenshot of HexDev using a hexagonal canvas. HexDev’s Free Tile Builder mode has been updated to also generate Hexagonal boards in 4, 5, and 8 length sizes. Enjoy!
Game design can be stressful on your life! Especially when you try to cram it in between the nooks and crannies of your daily activities. It starts to consume me in some ways… when I’m sleeping I’m dreaming of hexagons. Nearly every time I get a break, I’m thinking of player progression, tile design, adventure objectives, design mode, exploration, and how to please all of the Bartle Test cases. Apologies go out to my wife and kids for that, because I probably look and act like a zombie when I get like this.
Suffice it to say: this “sprint” is not going well. It’s more like a mental sprint for me than anything. Or… I guess you could picture me sprinting across a corn field with a blindfold on (which means I’ll walk in a circle and never get where I want to go). To put it quite frankly, I don’t have a solid direction for this game.
But then again, maybe I need to come to the realization that I don’t HAVE to have a solid direction. Many great designers that I read about often find that through making and playing the game, they discover new and creative ways to play the game. ”Find the fun”. This is a difficult thing for me to accept, because I hate being “wasteful”. I don’t want to implement something if I’m not sure about which direction it will go. I don’t have an enormous amount of time to pour into this initiative because of my family and my job. Not saying I want to invest more time, because I’m happy with where my time is allocated right now, I wish I could spend more time with my kids. But more to the point, I feel that with my limited amount of time, I need to make it count. In reality, my “making it count” ends up being a nearly complete waste, because I stare at my computer screen (running HexDev) and think.
One of my primary goals for HexDev is to avoid “hand-crafted” levels for a couple of reasons. Lost Garden has a fantastic post about making the game Steambirds that points out many of the reasons I want to move in this direction.
- I don’t have time to invest in hand-crafted content.
- To keep things more interesting, I would rather develop new “mechanics” that players can experience than “churn” out new content.
- The 1/99 rule of the internet. 1% of users will invest heavily in your product for the other 99% to enjoy
I want community and sharing to be a fundamental aspect of the game, so I think it’s important for me to keep to the roots of the initial design in tact and keep going with a “tile building” style. Or at least, leave it there as an avenue for people to generate the content.
That being said, here are some design sketches I’ve been doodling over the past few days with ideas for HexDev… I’m not sure if any of them will come to fruition or not, but it’s fun to see them anyway.
(This post left intentionally blank.)