Sunday, June 8, 2014

Training and our Think-Tank

Tiki Hub Games is a little more than an Asset Store Publisher already. I've personally been training a small group of people down here in SouthWest Florida, with what experience I have, to make the things they've always wanted to create. We've already got a wide array of ideas we're working on, some particular ones among them that I think will really take off in the game design world, as it represents what seems like a natural evolution to me. I can't bring myself to say anymore, except maybe that I'm proud of the new Lord of the Ring "Wraith" game for taking the first baby steps towards what we're working on.

Hopefully we can get some basic demonstrations up soon and be able to kickstart, early access or otherwise crowd-source, but we're still setting up the base systems of our games at the moment and don't want to present our ideas until we feel we've appropriately portrayed them.

In the meanwhile, the game we're farthest in production on is the one we'll be using CityScaper in, and we have a couple of other assets planned to go with it as a result, both of which play into our game. So without giving away the game, I'll say we'll be releasing an engine that generates a single street in much, much more detail, and attach it to a CityScaper generated city during load times, which will be used for a sidescrolling city-to-city gameplay. The third asset is a "snow engine" that recognizes particle collisions and raises x points per frame on a terrain mesh after converting the texture to snow, each of those points being based on actual particle collisions, creating the illusion of slowly gathering snow.



We can't wait to get all of these other things out to you, but right now we're limited by the time we have to work on them.

Personally, I work a part-time retail job and am back living at home temporarily, so what time I'm not spending doing irrelevant retail work, I often spend trying to drum up extra funds or keeping an eye out for other job opportunities. My lead designer has 20 years of experience with USA Today as a graphics and 3d designer, but he's recently moved as the Newspapers make more and more budget cuts, and spends much of his time doing freelance work. My newest designer is fresh out of high school with lots of time on her hands, but very little experience, so the last couple of weeks I've spent 2 days each with her training her in Unity, C#, modeling techniques and more. Finally my coder is still in his higher education system taking programming lessons, and hasn't much time outside of classes and working to pay for it.

So unfortunately, the pace goes rather slow right now, and I try to push every hour I can into this work, but without the budget, I'm left without much choice most of the time. The sooner I can get a company budget going with these assets, the sooner I can get crowdsourcing from a solid demonstration, the sooner I can be doing this full time, and start giving others the chance to do this full time.

Another Week, Another Update

CityScaper has been coming along, though I spent some misdirected time. I guess to explain further, I have to talk a bit about how CityScaper works. It's not terribly complicated, but if you've never done concatenated programming before, it might be hard to put all the pieces together in one read-through. Spend some time looking through smooth voxel programming, as it's one of the most useful purposes for concatenations these days, among game design programmers at least.

So basically we have a cross formation:
   o                  o 2
o o o       16 o o o 4
   o               8 o

Running this cross formation through a noise algorithm, which we utilize the very versatile libnoise engine ported to C# in Libnoise.Net by Jason Bell, we can retrieve true and false values for each point in that cross in a coherent pattern. The total possibilities (permutations) comes out to 32. Each point represents a number, in this case ( starting from the center, then going to the top and finally clockwise all the way around ), 1, 2, 4, 8, 16. By doubling these numbers, you can then add together the ones that are true for their place in your 32 possibilities. When you reference an array of a size 32, each one of those indexes represents values for a possibility that represents a street mesh. If the center isn't true, there's no street there. If it is, we check the arrays and generate the correct piece with the correct rotation, and place and rotate buildings around it later on. That's the basics of it at least.

When trying to integrate diagonals, I had approached the permutations 6,12,18 and 24, which will be wonderful for recognizing larger curves, but represent a problem when trying to add diagonals, as they do not have a solid center, and thus can (among other things) generate two pieces for the same thing. While this can still be done with some more patter recognition, it's an unnecessary amount of time to add to the generation process IMO as the corner pieces can simply be swapped out with a variable chance for diagonals, also allowing us to smooth the city out around the edges.

So the end result looks something like this: