Sunday, April 7, 2013

PreBeta Updates

Oops. Late post again this week. Sorry. Progress has been slow going, but I've been working really hard. It's hard to think of what to post about... This has been mostly about implementing and debugging what I've already talked about (and debugging, and debugging). I'm finally (finally) getting the hang of Unity GUI. I've been focusing pretty heavily on the "playable" version of the code, which isn't a full game yet but will allow the scope of what I'm doing to be visualized (hopefully). It's a bit frustrating, because it's all a bit tangential to the focus of my project (creating dynamic story) and yet has been taking up the majority of my time (since all of this is really new to me). Even so, I can see why it's necessary - when I show off what my code does to friends and family (despite the fact that it's not actually doing much more with story than it was when it was text based), they seem to grasp the concept and get excited about it much quicker. It's a much better vehicle for proving my thesis: dynamically generated story is possible, even if this won't be the most sophisticated implementation of it.

I'm taking a break the night before my Beta Review to fill you in on my current progress. I've been fleshing out the "game world" a lot in the last few weeks - little tweaks to make the world nicer as I learn Unity. The direction you move your character in with the keypad is now based on the camera position rather than world coordinates. You can "run" by holding down shift (the rate the characters walked at was maddeningly slow). More importantly, other characters now recognize the main character and try to interact with it/you. There's been a lot of tweaking, since the character you control needs to share certain behaviors with NPCs even as you control it.

I've finally got in game pop up menus working (took a while to figure them out). I've got one working, but I'm going to pull an all-nighter trying to get the second one done in time for the beta review. The one that is working works like this: after you get close enough to an in game character that he/she notices you, you freeze and a pop up window appears asking if you want to talk to them (they keep walking up to you while you're frozen). If you say no, the window disappears and they walk away. If you accept, you walk up to them and engage them in conversation. This seems small, but it took forever to implement and I'm hugely proud of it. The conversation right now is one-sided, but what I'm trying to do for tomorrow is take turns in which you pick an action from a popup window (trickier, since the number of potential actions is arbitrary and established by the config file) and then the other character reacts. The real trick is that I want the other conversations that other characters are engaging in to continue in the background, so if you took 5 minutes to decide what course of action to take an entire story could have unfolded in the background.

I don't think I'll have "tell me your story" ready for the beta review (an action in which the other character actually puts into effect the storytelling algorithm I devised and shares with you their personal story) since there's a lot of work I need to do just in terms of testing what the best way of getting the character to remember the story will be. But I'm confident this will be done in time for the final presentation.

Finally, I'm pretty sure once I'm done with this framework that turning this into a demoable game should be fairly easy. I've been working on the concept of "story design" - since the game no longer needs writing, the game now needs a designer to determine what actions/emotions will be prevalent in the game and therefore define it, how common each will be and what their effect will be. By building up dark actions/emotions, light ones, funny ones, etc., radically different kinds of experiences can be had within the same framework. I hope to show that in my final presentation. Since everything is config file based, I don't foresee this being a problem - I just need to make sure my framework works and then do some emotion/action rewriting.

Next update will have video!

No comments:

Post a Comment