Hey Folks! I'm happy to report that today was more productive, and was mostly spent coding an alternative ship-building system. Namely, prefabs instead of tiles.
Prefabs, as mentioned yesterday, are basically items like the bed and fridge I showed in previous builds. The difference is that these are meant to be used to layout the ship itself, not just decorate it. For example, there might be a series of structural prefabs for things like struts and beams, others for straight and corner walls, and still more for floor panels.
Not a lot to show today. The NEO Scavenger sale on Steam is, of course, pretty big news. Especially if you still don't have the game. (Hint, hint.) But in terms of development, today was not as exciting.
For one thing, most of the morning was cratered by errands which had snuck up on us and were past due. So first order of business was to get the house in order.
Second order of business was to take care of some server maintenance. Again, necessary but boring.
Hey Folks! I managed to get a new tileset done in order to experiment more with lighting and layouts. This one uses 10x10 tiles instead of the last one's 32x32. Also, this one has a single, dedicated material type per tile, while the last one was "straddling" 2 or 3 materials per tile.
Hey Folks! Today was sort of a mixed-bag of work spread across NEO Scavenger, NEO Scavenger Tablet, and the space prototype.
First, Kaaven pointed out a pretty significant bug in NEO Scavenger's treasure code. (Thanks, Kaaven!) Looks like any time treasure was giving out a range of x-y copies of an item, the game would only give x-(y-1) copies. This turned out to be an integer-rounding error, and I've changed the code to correctly round-up when appropriate.
The batch of NEO Scavenger fixes is getting a bit longer, so a new build may be due soon.
Hey folks! Hope everyone had a good weekend. I sort of violated one of my rules this weekend and did some work in my brief free time. I had a real hankering to work on some pixel art spaceship stuff, so I couldn't help myself.
Up until now, I've been using a hacked-together, green ship layout tileset I made many years ago. It was a 10x10 grid tileset I bumped up to 32x32 crudely. Neither the art style nor the quality were my goal, so I set about working on some bespoke 32x32 tiles for this prototype.
So today was a bit of a wash. The library updates I downloaded yesterday played havoc with my prototype, and I spent most of the day installing, uninstalling, reinstalling, and reverting various pieces of software.
Today was sort of split into two parts. The first was coding, and the second was gamedev community.
The coding stuff was a continuation of yesterday's item work. As I was finishing up the item transfer code, I noticed a few things that would need fleshing-out. Things like retrieving nested items on a target (e.g. an item from within a container the crew was holding), and code to make sure items correctly updated parent/child relations.
Hey folks! Hope everyone had a good weekend. It was more or less a baby weekend, here, as we struggled to take care of normal life stuff while not making the baby cry. Saturday night was particularly rough. I managed to sneak in an hour of playing Brigador, though, which was a nice break. Still in early access, but already a fun romp reminiscent of Desert Strike, Mechwarrior, and Syndicate on the Sega Genesis.
After most of a day spent hooking-up the remaining Interaction fields and handlers, I managed to edit some things! Sort of.
Specifically, I was able to modify the SeekFood interaction chain to accommodate two paths: getting food stat directly vs. getting an item of food which can be used later. It involved editing an existing SeekFoodAllow interaction to only apply to things which are food (renaming it to be SeekFoodAllowDirect), and add a new SeekFoodAllowItem interaction that only applies if the party has a food item.
I finished hooking-up the Conditions UI to the data in the editor today. Now any field I change in the UI immediately changes the loaded game data, and I can choose to save that out to JSON files by pressing ctrl+s.
I had to add some special handling code to this latest UI to make sure it was adding/removing data in lists in the right way. I was originally assuming any time a user selected something it would be tacked-on at the end of a list. But in some cases, the user will be changing a listbox earlier in the stack, and the game data needs to update accordingly.
I managed to successfully convert all the prototype's XML data over to JSON, and update the game to read and write JSON. It simplified code quite a bit, in exchange for some extra JSON read/write handlers within each class. I also learned that typedefs are not available at runtime, so I had to do without some type checking in the JSON code. It's poor programming practice, but I chalked it up to "get it working first, and optimize later when there isn't time left and you can forget about it."
Hey Folks! Hope everyone had a good weekend. Our Canadian Thanksgiving was sort of a fizzle. Our dinner plans fell through, and our back-up plan was closed for the holidays. Rochelle at least made a pumpkin pie, but then the local store was out of whipping cream. So we just bought ice cream and went to town on pie and ice cream. Still kinda missed our turkey, but leftover chili and pie wasn't bad!
I think I've just about finished the interaction editor component. The last few things I added were the ability to add a new link to another interaction (i.e. continuing the chain), breaking a link, breaking all incoming links (i.e. orphan an interaction), and delete an interaction from the data entirely (unlinks all, then deletes the data permanently).
Compared to the past week and a half, today's progress was a serious leap. The editor is getting very near a point where I can author content in it, and it's already useful for showing data relationships. It's impressive how fast stuff gets done when you're not struggling against the tools!
Now that I've got a better handle on how to make UI stuff happen, I've been making pretty good progress on the editor.
By the end of the day, I was able to get an interaction to display on the screen, with arrows pointing to downstream interactions it can yield, and each of those pointing to their respective yields, et al. It was also able to loop back onto itself, if appropriate (e.g. sleep cycle). Clicking and dragging would update the interaction's position, as well as all connected arrows.
Ok, I think I'm better now. As usual, several hours away from the problem, a good night's sleep, and explaining the problem to my charitable wife, all seem to have calmed the feckless rage from yesterday. I was able to think of one or two more things to try, and we're getting some traction again:
Hey Folks! Hope everyone had a good weekend. More of the same here: baby stuff, chores, and brief snippets where I get to read "Leviathan Wakes" and play a bit of "Duskers." Enjoyable, both, but gone are the days where I can sit down for more than 30 minutes at a time, though :)