Thursday, July 24, 2014

Tiki's Corner

Since this is my personal blog about the business, I'd like to post some things about myself, apart from the business once in a while. In the tradition of work, let's start with my newest job. While I'd been working the stock expert at a clothing store (I still work as an associate on the floor a day or two a week), I'm now working as an embroiderer. I'll post some pictures soon, but I made my first patch for a hat today. Sure, I redid their logo in photoshop and converted it, but I did it :). Hopefully there will be some print in the future as well with this job. For me, it's a great relief to have something that's not typical retail, and allows me to use my skills as a digital artist.

Talking about Talking

One of the more innovative ideas I've been working on is what I call procedural storytelling. To explain what this in more depth than I have elswhere:

Procedural Storytelling is the art of telling a story using multiple parts, to create a cohesive narrative that is still entirely unique to the player. Differing from branching story gameplay, procedural storytelling aims to play events based on requirements met by the world and it's actors/pieces. One of the biggest drawbacks of such an engine is Voice Acting is impractically expensive, and would require a highly sophisticated automatic voice algorithm to make it affordable and worth it. On the bright side, with it being such a new idea, there is plenty of fun to be had with nothing but text while the newest flash-based supercomputer prototypes are still being built. That's all I'm willing to release on it before we begin sending out demos to reviewers, which should be within the month. We haven't settled on a title for the first game, but we've finished the toolset, the base of the UI, and have only a small set of graphics and a large volume of stories to create to bring you an engaging and unique experience...

Meanwhile, I've made contact with our first feedback customer for CityScaper, who's already helped me largely prevent compatibility errors. If you've been getting LibNoise compatibility errors, they will be fixed in the next patch. Contact us at 'thetiki@gmail.com' with your order # if you've already purchased the asset and would like the updated version early. We are still looking for more feedback and errors, if you have another problem, don't hesitate to email us as well with your debug. No problem is too small for me too look at!

Finally, the Inventory System has been put back on the top of my priority list, withholding responses and patching for our CityScaper feedback. I've managed to fill in some of the holes I had left previously and now you can pick up the backpack and attach it to the character. All that's left now is to draw the GUI, and then I'll be spending a bit of time doing back and forth with the people who had requested this asset before releasing the *first* asset. From there I plan on releasing several small add-ons, as well as a final pack including all of them at a discounted price when finished.

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:


Saturday, May 24, 2014

CityScaper! - and about the blog.

So CityScaper is a big deal for me right now, this could be a big break, or a little one that's just as welcome, either way I'm breathing a little easier with it out now. I'm very anxious and excited to get to work on updating it and communicating with clients. It's a win-win situation really. I get QA and profit, they get a great tool and service to match. Check it out on the Asset Store now if you have need for procedural generated cities.

CityScaper on the Unity Asset Store
The Interface



Results of the CityScaper with only 7 models entered
This script only uses meshes you input, giving you freedom over the aesthetic outcome. Combine this with the libnoise variables that are exposed, and you can create city scenes on the fly that are incredibly varied in only a moment, just quick enough to squeeze it in your load sequences. Now all you have to do is model the buildings, place them in this script, and modify a few variables until you get the city you like. From there you can generate it directly into the scene during the game, or save it in Unity's editor and start detailing an already detailed and interesting city. The more buildings you add, the more interesting the city becomes, and you can keep making gameobjects with new city types. This is my baby right now, but I plan on having quite a few more ... bad metaphor?

Here's a little tutorial on using the CityScaper, don't watch if you aren't interested in picking it up, I'm afraid the sound quality is quite rough at the moment, we plan on replacing it asap.




As for the blog, I plan on taking this blog not only through my own experiences, but through the processes I learn along the way, so expect the next couple of entries might be tutorials for programs you've been dying to get the hang of. Unity, of course, will be central across that theme.

Some Ketchup

I'm starting up this blog to keep track of my own thoughts, but also to share my experiences with other developers and entrepreneurs alike. So here I am, months into production on a game by myself, and after several candidates, I've stumbled onto three I very much like. Of course, these things change with people's motives, and I know any of my current trainees may one day jump ship. Until then, we've got a great artist and coder, and some fresh blood with interest in learning everything she can. The hope is to turn all of them into game making machines, but for now, I'm turning them into developers.

So far:
I started on this path with the intention of creating a larger project, but have since settled for a number of smaller project as practice and funding for the goal project. The first release we're planning is a post-apocalyptic snow RPG, which we'll release more details of as we continue its production. It consists of about six main parts, which I've completed the three major coding pieces to an extent. My current goal is releasing the first three pieces as assets on the Unity Asset Store. Step 1 is already complete, check out CityScaper now! I'll do another post on this shortly to explain it in depth. Next is a front line for this city generator, which will be sold as a separate attachment capable of multiple uses, similar to CityScaper. I've already got them working together to recognize eachother :).

I chose Unity because it's an amazing platform as an indie developer to jump right into game development with the hassle of building a game from scratch. The Unity Asset Store also helps us drive a little bit of income as we go along as well. There are a lot of success stories on the Unity Asset Store, but time will tell if this is one of them. About 24 hours in, and we've sold two copies of CityScaper, it's promising, but not bedazzling. The bright side is the Asset Store provides me with a dedicated QA team who benefits as much as I do from our cooperation. You can see how that goes on our Support Thread here.

The big goal of this company is to build procedural games and develop them to their full potential. Look to projects like the new Wraith game for Lord of the Rings, or Dwarf Fortress's Adventurer mode to understand where we'd like to go with our content in the future. For now, we're content to experiment with some of our own concepts on a smaller scale.