homestead

Mid-October Update

Hey guys,

Apologies for missing the last update, I was laid up with an inner ear problem (BPPV for those curious) and there wasn’t much I could do aside from sleep. I’m all fine now though, thankfully, but I’ve had to focus on other things: namely the last commission on my list. Here’s what it looks like so far. It wasn’t as monumental a task when I took it on; I only have 4-6 hours a day I can really work with these days. After it’s done though, I’ll be entirely without artistic obligations for the first time in basically ever, which will be a decent load off my mind. As we all know, I’m obligated to deliver more than that.

Speaking of which, I think CS: Homestead is about halfway there to something playable. It’ll of course be an alpha, but there’s only a few more core pieces needed. It’s not going to blow anyone’s mind or socks off, but it will be something released; the first of many, I hope. I’ll be working on this picture a little while yet but once that’s done my time, such as it is, will be spent on this.

Until next time!

Mid-September Update

Hey guys,

I’m gradually figuring out the character generator for Homestead. My prototype had some problems built into it which required some rethinking, but I believe I’ve come to a good solution. The less wordful version is that I’ve managed a good chunk of progress by sitting down and having a good ponder, and I think all that remains is to finish up the rest of it before building something I can use to test it.

The more wordful version is how I’ve been thinking of resolving nationality, languages, and ethnicity. It’s not something that can be added later without (as I have discovered) a lot of code rewriting, so it’s a good thing to get it in early. I also think it’s a good thing to track that adds depth; teaching staff to read and write in the native language is a strong character facet and a good potential area to bond with them. A fox girl that you’ve taught to read and write will have a lot to be thankful for, as an example.

The problem: Determining where a person is from in order to simulate their name, ethnicity, whether they can speak the local language (which I’ll call Common here), and how well. The logical thing, at least I thought so at first, is to look at gender, then ethnicity, native language, then from those choose suitable name and figure out the probability from there how well that person can speak Common. The trouble is that with this approach is that its unecessarily concerned with race as it relates to their birthplace and how that translates to nationality, as well as adding a lot of extra steps.

The solution: Infer everything in reverse order by accent. During generation, give a character a gender and an ethnicity, be it skin colour or species, and from that give them an accent based on likelihood. Everyone has an accent, and from it we can infer everything else: the likelihood they speak Common, to what degree, and pick from a tidy list of workable names for them. This makes things cleaner to program as well as putting nationality on the sidelines, because ultimately it means nothing. For instance, an American might speak with a Nigerian accent since they could have been born in America and raised by parents who spoke Hausa. The fact that they’re American tells us nothing. Rather than needing an enormous number of varying name lists to cover every possible name for an American, I can work from their accent and determine more easily what their name could be, and how probable it is that they speak a certain language. For clarity, this game’s not set on Earth, obviously, but this makes it a much simpler way to generate a character’s biography.

It seems simple enough, but it was a problem that baked my brain a bit. As I’m learning, and have been talking to my programming betters, learning the shortest path through inference to the desired result is a good skill to have. Anyway, I know it’s hardly horny stuff but pretty much all the sexual things are done already as far as character generation goes.

Until next time!

September Update

Hey guys,

Past weeks have been focused mostly on the conceptual side. Before building the large system that creates characters in all their complexity, I want to be as sure as I can that it’s building them how I’ll need them to in the future. Some time investment now means time saved later that might have to be spent rebuilding it. That still might happen, I’m kinda flying by the seat of my pants, but hopefully I can minimise that with some forethought.

One thing I’m sure about is that characters, the people you meet and hire in the game, are the stars of the show. Who they are and what they want is important beyond what they look like or how hot they are. The goal isn’t some kind of dating sim but as the game weeks tick on and your homestead grows, I’d like it to be possible for the player to form bonds with the staff, or at least remember them.

That aside, I’ve also had to devote more time to doing some commission work here and there to help keep the lights on. Grateful I have friends that make this easy for me to do.

So yeah, lots written in my design journals/notebooks, but hopefully by next update I’ll have some fun character generation stuff to show off.

Mid-August Update

Hey guys,

Progress notes:

  • A facility’s amenity list is now functional. Did some code cleanup with this, too.
  • The basics of NPC generation are working, now using externally-read JSONs as recipes. This should mean that users can tweak these settings as they like, if they desire to change how NPC’s are generated. A JSON file is essentially just a text file with formatting, so you won’t need any additional software to do so.
  • Did some reading on game saving techniques. Had to refactor a bit of how characters were built in-game, but the game now outputs a working save file containing all character data and their attached parts (like horns, breasts, etc.).
  • Similarly also managed to get it to load that data properly, avoiding object duplication and other weirdness, and attaches parts where they should be with the correct data on them. This isn’t too complex right now, but now that I have the basic idea it’ll mean I can build new systems with it in mind.
  • Spent a lot of time doing conceptual work and experimenting with stats and skills before I implement them onto NPC’s. I have big ideas for things to implement later, and getting this part right means the groundwork is there ready to expand upon.

My prototyped NPC generation script was roughly 500 lines and worked fairly well, able to produce 100 generated NPC’s on a click with only a little delay. My next task is to rewrite that, which shouldn’t be a difficult job, just a big one. The main goal of it is to be able to create random NPC’s but ones that are sanely put together. More ‘give me a blonde woman in her late twenties who’s got experience handling horses’ and not like hitting the random button in any character creation.

Once characters are being generated more completely, I can work on making them hireable and continue to flesh out facilities and how they work. I had to pause them for the time being since a lot of what they do is so dependent on the people working there, especially their skills.

Until next time!

August Update

Hey guys,

Past couple weeks I got stuck on trying to figure out how to get amenity inputs working, as well as the tricky custom interface it would need. I think I’ve managed to rethink it not only for ease of implementation but ease of use. Instead of just selecting an input material, it now displays a list of possible recipes and their outputs. I’m ensuring that you’ll be able to tell a place to work on a recipe even if you don’t have the requisite resources yet, it’ll produce a subtle warning that there’s something up but it won’t stop you from doing it. This is to prevent facilities automatically shutting down and forgetting what they were set to if you should run out at a later date, as well as making it easier to set up multiple facilities at once. I don’t intend for production chains to be very complex, but I think it’d be neat to grow your own crops, distill it yourself, then prepare it into various drinks at a bar, for instance.

Also, since I like to be transparent as possible, and not because I expect or desire, in the least, pity or sympathy, I didn’t get far these past two weeks on account of having pretty bad pain days. It flares up on occasion and like it or not, it slows me down. It seems to be improving as of today, though.

I think I’ve gotten a handle on how to proceed, so with some luck I’ll have better progress to report next time.

Mid-July Update

Hey guys,

I’ll start off with what I’ve been working on, and save any rambling for after. Hopefully with Homestead going I’ll be able to introduce a new format of actual progress then follow with words.

  • Organised and renamed about a hundred GUI nodes.
  • Split up the Facility Browser script into three smaller scripts to avoid overburdening it. This was a smarter choice than I intially realised, as I’ll soon be adding a third tab to the window and possibly a sub-tabbed view to one of those. Each of these scripts are much tidier.
  • Renamed all instances of the rather clinical ‘Facility Modules’ to ‘Amenities’ instead.
  • Created a functioning Card Lister class script to handle all instances of ordered lists of GUI elements, e.g facilities, staff, amenities. This was an issue I ran into during my practice project, needing to make a new series of functions to populate and present ‘cards’ – graphic items on a list – every time I needed one. This has been simplified greatly and standardised for use anywhere I need it with just a couple lines of code, as opposed to about 70.
  • Also programmed the Card Lister script to be able to hook up signals from buttons on those cards to their parent tab’s controlling tabcontainer. Generated cards now have functioning buttons that automatically know what to do when clicked.
  • Created a P_Resource class and a loader function which loads a directory of resources at startup, creating a new instance of P_Resource for each one. Things like wood, seeds, raw food, so on. Plan later to make the loader script work from a JSON so it’s possible to edit client-side.

Not listed but also important things, I set up a private git repo for homestead (thank you Goldie for that advice). I wasn’t clear on the benefits of solo development using one but I am now, so I have one. I also have my own Trello I’m using to keep track of what goes where and the order in which to do things, and in a profound bit of novelty, things that are completed.

I wanted to get more done but had a run of bad pain days. They’re easing off so I’ll be back to it tomorrow. Next steps are to create a more detailed browser of a facility’s amenities. Once that’s done I’ll flesh out amenities a little more, create a display for resources, and see if I can get amenities to accept a resource as an input. A herb garden accepting thyme seeds, for instance. Then it’ll be to build the week end system to calculate changes and start advancing time. I have a couple ideas of the scripts I’ll need to do that, so we’ll see what works.

July Update

Hey guys,

I hope everyone is keeping okay. I said last time I’d be talking about something new this week, there’s a lot to cover so I’ll get right to it. My main goal since late last year has been to make a real effort to learn programming so that I can contribute more than design and direction to Carnal Souls. I think I’ve made some good progress. In fact, the things I’ve been able to put together in practice projects have worked well enough that I think with some more study and exercises I could make something functional. Not pretty, but functional.

My idea is this: On my own, make some small, Carnal Souls spinoff type game. Secondary in all priorities to CS itself, which comes first. By doing so I can continue to learn to program and, Gods willing, give you guys something to play. Let me say very clearly that this won’t replace CS. It’s just something I want to make that will give me a goal to work towards in my study and also serve to have some sort of game you guys can play. I’m aware it isn’t what people paid for, it’s not supposed to be, but I figure some game is better than no game. And if people do like it, maybe it’s a way we can gather more support for the full project.

(more…)