Wednesday, April 22, 2015

Manifest Kickstarter Preview!

It's been a long time once again, but with good reason. We buckled down and completed Manifest's engine and UI. Yesterday night we finished setting up our kickstarter, which we sent in for community management review. This is SO exciting to me. I feel like my whole life is beginning with this day. I finally get to start showing off the game and working on stories regularly, I can even do a little artwork :). Bob has been instrumental in accomplishing this, his models look incredible, and his texture work is so detailed! I was blown away by the final result of our visuals, here's a preview! You can also check out the demo at www.tikihubgames.com, which we will begin adding content to *today*.

Kickstarter Preview:
https://www.kickstarter.com/projects/1137395854/1786273707?token=dda8c481

The flame lights up and you see a place to enter your name and age. After doing so, you are presented with a number of choices based on your age which represent your time-developed personality. You are then given a choice of item and two roles within a world that fits your created personality. From here, you choose options to direct the story.

I want to say we spent about six months developing this game so far. Maybe less. I did spend a good chunk of that doing retail work in season, at which point I was hardly able to work on it for weeks. I invested a few weeks myself in bringing Inventorium to a near-complete status (it's still coming I swear, just like the dragons!). So all-in-all we probably spent something more like 4 to 5 months of development in our spare time. It was fun, hard, and the end is becoming pretty stressful, but it's worth every second and penny of it. This is the life I want to live, working on products like this, producing something that everyone can enjoy or benefit from. I don't think I've ever done something that's felt more rewarding than this project, and I look forward to topping it in the future!

Kickstarter Preview:
https://www.kickstarter.com/projects/1137395854/1786273707?token=dda8c481

Our Website:
http://www.tikihubgames.com

Thursday, March 26, 2015

Inventorium Update



We've been working incredibly hard at a number of things over the last several months. Game Design is a lot of fun, but it can also be frustrating. Coding bugs, compatibility errors and the fast-paced change of the industry can all leave you feeling a little down sometimes. Some people might just hunker down and get through it, it's a part of the job to them. For me this is such a passion, that I find I thrive on it, even if my body doesn't :p. Sometimes the stress of this job can be something that makes you feel exasperated, but it's also a sign of innovation and creativity. When you are at your most frustrated and angered, it is (for me) always when the turning point is just around the corner. The last few weeks I've been working at our new Asset Store product - Inventorium, which is just about done, but the last few days have been torture.

Sifting through code for one-off bugs I'd overlooked when overhauling a local declaration system, sheesh, they seem like they never end sometimes. There is this moment though, and it's always just as surprising. After try and try and try, fix and fix and fix, you grow accustomed to the pattern of creating bugs by squashing them. You start to feel like the bugs are multiplying, like they're alive, when in reality, you're just trudging through them one by one. Sometimes you lose scope of the fact that there will be an end. It applies to everything, but lately it's applied quite often to programming for me - you have to remember that feeling of victory when everything works as it should. That relief, and shed of burden, when your work is complete, is the reward. You have learned, accomplished, created, and are ready to move on to newer, bigger things - a better coder, a better artist, a better designer, a better you :).

Inventorium Web Player Demo (Temporary Link)

Press E to pick up and put down objects physically. Click to move items through inventory management. R to rotate. I (i) for inventory list. Cylinders are three different items I set up, a sword, an axe, and an apple. The blocks are containers, there are two, the double up arrow is a large "backpack", the other is a small "satchel".

Saturday, March 14, 2015

What a ride!

I don't even remember the last time I posted here! I feel bad actually, this is a nice outlet with all the work we've been getting done. Our Procedural Story-Telling Game: Manifest, will be out soon, and the demo even sooner (2-3 weeks). We can't wait to start showing it off! The response from the previewers we've had has been amazing, and we're growing quite confident in the product :).

http://www.twitch.tv/tikihubtony/c/6222946 for a preview!

In the next few days I'll be wrapping up "Inventorium", a Unity Asset Store tool that allows you to easily set up containers and items with multiple slots of any configuration (like Diablo's inventory system, or Path of Exile's), and rotate them. The UI and tool is done, all that is left is the logic for storing items in containers, then pretty it up with some custom models for examples and package it up for the store!

We also stream that at our twitch, but you can find a WebPlayer demo here:

http://tikitemp.netii.net/Players.html
E to pick up objects, and to place items back down. R to rotate, I to show your inventory master list.

Finally, we of course set have updated CityScaper several times, and have some new features planned. Check out the feature list on the official thread:

http://forum.unity3d.com/threads/released-cityscaper-procedural-city-generator.247856/

In the next patch we are planning a new Saveable Settings Editor Window for setting up multiple city generation types, run-time functionality, a WebPlayer demo, and multiple material slots per building by request! It will be like a completely new program in 1.1.0. That update will take some time, but we will be able to focus on it shortly.

Thanks for reading our update!

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: