Tuesday, June 23, 2015

Recovering...

I don't talk much about my personal life, so let me talk about my day-job for a little bit. It's not the most exciting job, but I've been working there for three years now. It's a clothing company named Express, they're among the more reputable clothing "brands" though, honestly, they're still on the same ethical level as American Eagle or Child's Place as far as I'm concerned. There's only so big you can get as a company before hands get dirty. That's why at Tiki Hub Games we plan on keeping very small tight-knit branches that each act as their own company but pool resources like a corporation. I love the people I work with. While there is always a revolving door of associates that just don't do their job (literally, at some point, they just don't show up to work anymore, and the rest of us are caught covering their shifts). I've had three opportunities to work in management with them, but I've asked them to hold off on that sort of promotion while I continue to work towards building a full-time career at game design. Of course, not all Plan As work out, so I'm very grateful for that resting opportunity. If push came to shove, Manifest will continue to be developed while the time I'm able to work on it goes down due to higher responsibilities at Express. The 3 full-time managers at our store work a lot of hours. It's not uncommon to work a 12-13 hours shift once or twice a week. As a more valued associate, I've had to pull those shifts with them more than once as we set the floor and do inventory with short staff. Typically I am in the back room doing shipment on a regular day. It's my preference, even though I tend to be one of the better sales associates, I've never been a big people-person. So the last few days I've been up to close one night and open the next deal, on top of a 5am floorset. It was pretty rough trying to get work done on Manifest in between it all, but I did get a few things done. Here I am with 3 days off now (Which just doesn't happen for me, I work pretty much every monday and friday, and rarely don't work a day between them) and I'm looking forward to getting plenty of work done on the game :).

So... progress! In the last post I talked about what has been hindering us for the last few weeks. A silly, yet educational experience which has greatly improved my ability to manage Unity's C# willy wonkiness. After a few days of work with little time to use my computer, I did get the old story backup installed and update TextMeshPro. Today I spent some time recovering from the issues that came with these two actions. First was the story, which I had to reinstall an older but equivalent version, as the newest one had corrupted a couple of files when working with our "memory leak". Next was TextMeshPro, which I had to modify our page GameObjects to work with it's new format, then do a little troubleshoot with Stephen Bouchard, the author of Text Mesh Pro (his support is *really* fast, it's impressive, he must be working on this asset all day long, it's almost weird lol). He suggested I turn the "Perspective Filter" he built into the debug of his tool to 0 until further notice. Here's what it looked like before that:


Next on the list tonight is to unwind and have dinner, then write some stories!! Man, talk about overdue :)

Thursday, June 18, 2015

The Memory Leak Conundrum comes to an end :)


Over the course of the last month a few things have happened. Bob's world has quieted down, his house is now a little bit more empty and he's been producing some incredible model work for the walls of the study in Manifest. We've begun searching for new talent again, in particular a coder to help us speed up the production of our assets alongside Manifest. Finally, the coder search is spurred by a memory leak we began experiencing a few weeks ago.

After a long bout of research on the subject of Unity's automatic memory management, I had tried everything I could think of. Loading up the story tool, opening the dialogue editor, and then finally - opening the attribute editor, that's when it would crash. I'd offer a picture of this, but I couldn't have taken one, it was that bad. Particularly when trying to open the window, Unity would overload the stack and fill up RAM. It happened so quickly, that my computer would freeze instantly and I would have to hard kill it (or in this case, hard reset using a button on the front of my tower) and start again.

So after weeks of research and experimentation, I decided to step back and look at the problem with a different perspective. What had changed? My initial thoughts were nothing. I had done some updates to the in-game UI, but nothing that should affect the tool. My worst fear was that I had made such an unmanageable mess of the program that the last update had caused the stack to finally just barely overflow to the heap, and the heap was just not enjoying what I had set up. Then I thought, maybe it has to do with the age variable and modified value options I had added a couple updates before, but the error was simply only happening now.

The answer, of course, was it wasn't me or my code at all. At least not directly. At some point during a compile during the most recent update, I had a strange error occur. Just like vexe, I'd had a layout crash. Apparently, when a compile error happens in Unity, there is a slight chance it will corrupt your layout config? I'm not entirely sure how this error happens, but something along those lines. Anyway, the result was that a simple reinstall did not fix the problem. So I had passed off the concept that it was Unity early on, thinking I had already tested for this. Also like vexe, I had to remove every trace of it from my computer, where this thread came in handy for locating all those problems.

If you've had a layout crash in Unity or a custom editor window you've been working on randomly ceases to work, hard clear your installation and reinstall!! Registry and all! I suppose this is a bit of a pain, but it seems to be caused by user-error in the long run and a wipe isn't so hard to achieve. I just wish I hadn't spent so long trying to fix this error... At least I've become very well acquainted with manipulating Unity's GC :)


Monday, June 1, 2015

Memory Leak!

We've struck Gold!! Er... not quite actually. Black Gold? Not even, but we've sure dug a hole :p.

When creating an advanced program in c# there are always wonky problems to be expected from the auto memory management. In this case, it looks like Unity is using an older version of Mono to compile the code which still uses Boehm's Garbage Collector. There's a great article on this over here at Gamasutra which includes a lot of basic information and background on what memory leaks are :).

The line in particular we're having trouble with is a the Init (Initiation) function for our Attribute Editor, particularly when being used/referenced in the Dialogue Editor. You open the Dialogue Editor from the main story tool, and this uses the same memory referenced style as the Attribute Editor. Similarly, the code for this was working fine, and has not changed. This comes after a series of changes in the main UI one would think have nothing to do with our problem. I'm kind of at a loss. While I decide on how I want to approach setting up some discovery tools for memory leaks, me and Bob have decided this is an excellent time to reach out in our area and find another coder willing to step into the project.

Meanwhile, Bob is nearly done with a revised version of the desk, has already completed quite an amazing pocket watch we can include as an in-game clock...

I'm terrible about keeping social schedules, despite my work ethic, but I'm going to try and view this as a job, and make sure to get out a regular blog on here now that we've reached our Alpha release and put a little polish on it. Especially while we're searching for a coder and stuck behind this memory leak. For now, I've got to leave for work in a little over an hour (can't wait for *this* to the work I leave for !), and I'm going to do a little more research and experimentation before I get ready.

Unfortunately, because of the nature of this memory leak, it can take a while ( and often a restart ) to stabilize my machine after testing until the memory leak is fixed. So it has been taking quite a bit of time to achieve progress on it :(

Friday, May 1, 2015

Alpha Release, Advertising, Story Writing, and Work

All the things that make up my life right now :). Work is alright, we have the full-time sales lead from my old store working as the co-manager of my new store, that will be fun to have her back. Otherwise, we've put out our alpha demo at www.tikihubgames.com. Really! You can try it right now! It is a Procedural Story-Telling Game called Manifest. The concept puts you in the role of a writer developing a story through options in a notepad and a book which fills pages from beginning to end with a different story depending upon your choices.



I've been spending a lot of time trying to bring the demo to anywhere people invite playtesting, feedback and introductions. Twitter and facebook have been handy tools as I work through the process, but altogether, I think it comes down to a simple matter of time and effort. The more work I put into the game, update online for people to see, and repeat, the more exposure I seem to get. Seems like an honest way to find followers, customers, fans and just attract new eyes in general, so I'm full-speed ahead. The game itself has come a long way, with a full 3d GUI integrated, one we can use later on in a larger action RPG to write your own stories for lore... we'll get into that another time though. Fact is, this is what we've been waiting for, debugging, writing stories, making art, all the fun stuff! :)

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!