{"id":468,"date":"2020-11-12T00:00:16","date_gmt":"2020-11-12T08:00:16","guid":{"rendered":"https:\/\/lithier.com\/w\/?p=468"},"modified":"2020-11-12T00:00:16","modified_gmt":"2020-11-12T08:00:16","slug":"dev-journal-a-wild-ride","status":"publish","type":"post","link":"https:\/\/lithier.com\/w\/2020\/11\/dev-journal-a-wild-ride\/","title":{"rendered":"Dev Journal: A Wild Ride"},"content":{"rendered":"<p>Overall, I&#8217;d say things are going well right now! I do wish I was getting things done faster, but that&#8217;s always going to be true. The important thing is that I&#8217;ve kept working pretty steadily, and I&#8217;ve been getting better at minimizing downtime, making sure to take care of myself emotionally and not try to overwork myself. Development for the prototype of Project Wild One has been immensely challenging, but it&#8217;s mainly been challenges I expected, and most of it I&#8217;ve enjoyed, even when it brought things grinding to halt for a day or two.<\/p>\n<p>For my last public Dev Journal I talked a lot about the math I was tackling. It forced me to really think in depth about matters of anatomy (or more accurately, the fantasy anatomy of supernatural sex fiends like furries) and try to turn really vague ideas of how things should be into a precision-engineered set of rules to interpret, store, and express the consequences of just about any possible action across a huge spectrum. It was tough! And a lot of it is still placeholders I&#8217;ll be coming back to later. But I got all of that to a place where I think it&#8217;ll work for now!<\/p>\n<p>And since then&#8230; pretty much exactly what I described above has been what I&#8217;ve been doing, over and over, for a dozen different aspects of the game. I&#8217;m trying to make it future-compatible within reason, and sometimes that means that in the process of mentally building a system, I have to basically reinvent how it&#8217;ll work half a dozen times before I come to a system that should &#8220;work&#8221; for all the foreseeable possibilities&#8211; or at least, can be altered and expanded to meet them without breaking.<\/p>\n<p>So it&#8217;s been a lot of mental gymnastics, and probably the sort of thing real programmers have to tackle all the time. When I first put MVOL together it was <em>very<\/em> &#8220;throw together whatever works, however it makes sense at the time,&#8221; and the code behind the scenes turned into quite a mess. Thankfully the game wasn&#8217;t too complicated for the most part, but I did commit a lot of &#8220;sins&#8221; of poor programming&#8211; and that&#8217;s just the ones I know about by now.<\/p>\n<p>I&#8217;ve been trying to be better about that with Project Wild One since it&#8217;s going to be much more complicated and gameplay-focused, and sure enough, that&#8217;s forced me to learn a lot about how to build things. I&#8217;ve already started circling back to things I built early on and saying &#8220;what was I thinking when I wrote this? I can throw out two-thirds of this, I&#8217;ve built much more elegant solutions elsewhere for that by now.&#8221; And really, I&#8217;ll probably keep having moments like that as development moves forward. I like to think that&#8217;s partially an indication that I&#8217;ve already become a better programmer than I was, but it also means there was a lot in terms of design needs and features to meet them that I hadn&#8217;t foreseen when I was laying the groundwork. Some of that is unavoidable I think, but it does tell me I&#8217;ve still got a lot to learn about planning things out from the very start to work well.<\/p>\n<p>Well. It&#8217;s been a ton of strange mental challenges, and it&#8217;s been pretty fun, but it&#8217;s taking a long time. I knew it&#8217;d be tough to get the game to a presentable state in two months, and I knew this project would have pretty much the most front-loaded work out of all my plans, but it&#8217;s turned out to be more work and take longer than I&#8217;d hoped. It&#8217;s been more than two months now since I shipped Project Matchmaker v0.01 to supporters, and that means I&#8217;ve already gone past the deadline I&#8217;ve set for myself. On my last supporter Dev Journal on <a href=\"https:\/\/www.patreon.com\/posts\/43275686\">Patreon<\/a> and <a href=\"https:\/\/subscribestar.adult\/posts\/189293\">SubscribeStar<\/a>, I explained that things were going long, and that it&#8217;d take at least a few more weeks to get the game to a playable state. There was only one possible shortcut I could see to take, so I put the question to them.<\/p>\n<p>Project Wild One is all about interaction between characters, and I think it&#8217;ll be an important part of getting a feel for that to have some basic AI behind the NPCs. But that&#8217;s going to be loads more work even once everything else is running&#8211; I have some pretty ambitious long-term goals there, but even the &#8220;starter AI&#8221; is going to have so many options available it&#8217;ll need to be pretty robust. So my question was, would you guys prefer to just get the basics to play around with ASAP, but just control both of the characters yourself; would you like a painfully simple, one-track AI I can slap together quickly; or would you like me to build a &#8220;proper&#8221; starter AI for v0.01, even if it delays things by another month? I put that to a vote for the supporters.<\/p>\n<p>I tried to present it impartially, but I have to admit, I&#8217;ve been having so much fun building all this craziness that I was pretty happy when I saw a resounding call for the full AI from you guys! I&#8217;m hoping to give a good first impression of Project Wild One&#8217;s potential before I shelve it for other projects again, so I&#8217;m also really glad to have the chance to present a more complete picture of at least the very basics of the gameplay. I feel like a lot of the subtleties will only really come out when you&#8217;re playing &#8220;with&#8221; or &#8220;against&#8221; someone.<\/p>\n<p>So I&#8217;m glad for the decision, but I do feel a little crappy delivering the news that it&#8217;s going to be at least another month before Project Wild One is ready to go out to supporters. A big part of the transition to this new production phase was supposed to be shipping new releases every &#8220;one to two months,&#8221; and so far I haven&#8217;t delivered on the one month idea&#8211; and this is the first time in years I haven&#8217;t released <em>some<\/em> kind of playable update in over two months.<\/p>\n<p>The best excuse I can offer there is that this is a pretty unique situation, so hopefully it shouldn&#8217;t come up again anytime soon. Once the basics are in place for a game it should be much more practical to bundle additions\/improvements into lumps of work I can accomplish in two months or less, but building this engine from the ground up just doesn&#8217;t have any good stopping point in it partway. Hell, I already feel like what you&#8217;re going to get to play is going to be <em>such<\/em> a tiny, shallow reflection of what this game <em>could<\/em> be, what I <em>want<\/em> it to be, it hurts putting in all these placeholders just to get things &#8220;working in the most basic way possible.&#8221;<\/p>\n<p>But the fact remains that this is supposed to be a Side Project, and Project Matchmaker is my Main Project right now! I don&#8217;t really know how people will like Wild One, and I still don&#8217;t know if it will really &#8220;work&#8221; in the end as a game experience. I have a lot of plans, ideas, and hopes, but sometimes these things just don&#8217;t work, so it&#8217;s important to keep things stripped down to their core for early testing, moreso with gameplay than anything else.<\/p>\n<p>Right now&#8230; Hmmm. So much of the work has been purely abstract engine stuff that I only recently came back to expand the GUI to more than the most basic &#8220;does this run at all&#8221; functionality. Most of the framework is in place for all the elements in the gameplay to &#8220;exist,&#8221; and I&#8217;ve been building all the stuff for how things &#8220;interact,&#8221; which I think I&#8217;m just about putting a cap on now. I still need to build out some stuff for &#8220;consequences&#8221; so you don&#8217;t just keep losing HP forever or building arousal forever and so on, and I still need to flesh out the system for tracking everything that&#8217;s happened, both to present it properly as text and to refer to for new events. Once all that&#8217;s done, I can get the GUI into a semi-final state for basic gameplay.<\/p>\n<p>After that, it&#8217;ll finally be time to get cracking on the AI. Since the vote I&#8217;ve started laying the groundwork for that more extensively, so I&#8217;m hoping it won&#8217;t be too terrible, but since this may well be the most complicated piece of the whole prototype, it&#8217;s pretty dang hard to predict how much work it&#8217;ll turn into.<\/p>\n<p>Once all of that is done, it&#8217;ll just be a question of how to turn &#8220;the bare, beating heart of a game to be&#8221; into something that&#8217;s actually fun to play. Ideally I&#8217;ll throw together a real basic progression system where you&#8217;ll get rewards like experience and be able to choose upgrades, with some kind of system for randomly encountering characters and choosing what to do between encounters. A <em>lot<\/em> of that will be pure placeholder for what&#8217;s coming later, though, so it&#8217;s going to be a tough call between making the prototype <em>fun<\/em> vs. throwing away too much time on stuff I won&#8217;t use in the long term.<\/p>\n<p>Then I just need to build the secondary GUI for stuff like choosing what content you want to see and configuring your character (unless I awkwardly reuse the regular GUI for it I guess) and build some super basic save functionality, and I <em>think<\/em> the prototype will be ready to put in you guys&#8217; hands. It&#8217;s still a ton of work left to do, but it&#8217;s exciting just to have this much behind me and this little left before I can hopefully have something to actually <em>show<\/em> people instead of just some really vague descriptions.<\/p>\n<p>Honestly, I let this journal delay because I kept working until I was just fried and needed to get my mind off it altogether, then as soon as I was ready to work again I couldn&#8217;t resist diving back in to tackle the next problem. I do really hope that when I can finally share this all with you guys, it&#8217;ll be fun and worthwhile. But either way, it&#8217;s a project that&#8217;s been gnawing away at the back of my head for years now, and it just feels great to finally make something out of it.<\/p>\n<p>Thank you, sincerely, for letting me make games for a living, and for letting me make things that I can be passionate about, and excited about, even when they&#8217;re kicking my butt. It&#8217;s thanks to your support that I can be here today, doing something as crazy as this. I often feel like I don&#8217;t deserve this much trust and support, but as long as you guys are backing me up, I&#8217;ll keep doing my best. Thank you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overall, I&#8217;d say things are going well right now! I do wish I was getting things done faster, but that&#8217;s always going to be true. The important thing is that I&#8217;ve kept working pretty steadily, and I&#8217;ve been getting better at minimizing downtime, making sure to take care of myself emotionally and not try to overwork myself. Development for the prototype of Project Wild One has been immensely challenging, but it&#8217;s mainly been challenges I expected, and most of it I&#8217;ve enjoyed, even when it brought things grinding to halt for a day or two.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[12],"tags":[],"class_list":["post-468","post","type-post","status-publish","format-standard","hentry","category-dev-journal"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/paRhev-7y","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lithier.com\/w\/wp-json\/wp\/v2\/posts\/468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lithier.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lithier.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lithier.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lithier.com\/w\/wp-json\/wp\/v2\/comments?post=468"}],"version-history":[{"count":2,"href":"https:\/\/lithier.com\/w\/wp-json\/wp\/v2\/posts\/468\/revisions"}],"predecessor-version":[{"id":470,"href":"https:\/\/lithier.com\/w\/wp-json\/wp\/v2\/posts\/468\/revisions\/470"}],"wp:attachment":[{"href":"https:\/\/lithier.com\/w\/wp-json\/wp\/v2\/media?parent=468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lithier.com\/w\/wp-json\/wp\/v2\/categories?post=468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lithier.com\/w\/wp-json\/wp\/v2\/tags?post=468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}