Before the changelog, a note from Gedan:
If you’re wondering why there seem to be so many issues lurking around every corner, here is a little insight into what has been happening:
Actionscript3 (The language the game was originally built in) and Javascript are very similar – so similar in fact, that the code almost works entirely with some simple find & replace action to remove Type data. The problem is the bits that don’t work look almost like completely normal Javascript work, so it can be difficult to pick them out without executing them and making them blow up. A couple of months ago I dug into building out an actual automated testing system, and I have a couple of tests written and working but they cover virtually none of the game considering its size – and with so much core functionality to still get working right, it’s difficult to justify spending the time on extending these tests to do much of anything right now. I have a couple ideas that maybe I can pull off over the course of a day or two, but they’d be coming after core systems are done no matter.
What doesn’t work though is “Cyclic Dependencies”, essentially when two different files in our codebase reference each other either directly, or through a chain of other files. In AS3 this didn’t matter, and over time, a lot of functionality was built around the fact that it didn’t matter – we have a lot of system manager classes that manage unique descendent processors, but those descedent processors sometimes need to reach back up to the system manager to execute defaults or shared functions. Whilst this would just work under AS3, now we need to fix it, either through dependency injection or removing the cyclic calls, or crushing all of the cyclic calls into the same file.
Fixing cyclic dependencies lead me down the garden path and resulted in me completely reorganizing all of the game content files. Doing this has allowed me to slice up the games content into blocks, called modules, that can be compiled and loaded independently from each other – the idea here is if we don’t make changes to the Tarkus module during an update, then the Tarkus module doesn’t need to be changed at all, then if you browser has a cached version of that module from the last time you played then it’ll be pulled from there…. There are caveats to the caching, but that’s a conversation for another day! What’s important is the fact that we have modules, not all the modules will be available, and we spent a long time implementing things assuming it just ended up as one fat bundle of code. With modules I’ve been able to turn off the ones that aren’t stable enough yet for play, which in turn hides those planets from the Fly menu – but there may be support functions of various types that are in those modules that needs to be moved around. A lot of them have been caught and shifted, but not all of them.
Javascript has moved on a lot from the days when AS3 was first conceived and it’s added some nice features along the way, things we couldn’t code – or would be extremely annoying to code – under AS3. As an example, the way we handled buttons under AS3 looked a lot like this:
addButton(index, "Button Name", functionToExecute, argumentsWeMightWant, "Tooltip Title", "The bulk body of the tooltip we want displayed.");
Now, most functions didn’t need an argument passed to them, but if we wanted to specify a tooltip on a button like this, we’d have to remember to stuff a none-value in that position. And if we wanted more arguments, we had to stuff things into an array and pass that, which made remembering where things were in the array an annoying task on the recieving end. The solution would have been to use “closures”, but the syntax for doing it in AS3 was unwieldy at best. The same could be said about Javascript, at least, until the Fat Arrow was added:
addButton(index, "Button Name", () => functionToExecute(arguments, we, want), "Tooltip Title", "The bulk body of the tooltip we want displayed.");
A subtle change, but this was a decision I made early. I think in the long run that it’s going to be beneficial to building future content but it means changing EVERY existing addButton call across the entire game, and sometimes the functions on the recieving end to change them from expecting an array stuffed full of arguments to seperate parameters.
The way our map data was structured has bugged me for a long, long time. It was already set in stone pretty much by the time I came on board and I didn’t want to rock the boat without a good reason. The good reasons have been found over time, and whilst the task was going to be monumental to fix the structure that we had used for a couple thousand rooms so far… I bit the bullet and went for it; so much of the games code is already having to be retouched anyway, that throwing the map structure on the pile is just a bit more work again. This has afforded us the ability to performantly display much larger areas of the map – in the past, our little limited 7×5 view was purely constrained by the processing time of updating the display, but now things are fast enough that we could render the whole planet map and use it as an interface to move around if we so desired. I did a little test to satisfy my own curiosity this week and, well…
Made it through all that? Good. This is Fen, and this is the changelog my exhausted brain barfed out.
TiTS-JS Changelog (#1131):
- Several fixes were applied to how child/birth data is stored. As a result, children stored at the nursery previously had to be reset.
- The javascript version now has the ability to override what gender the game uses for you, just like the flash one.
- Work on a “click-to-move” system for the map has been started by Geddy. It’s not available in these releases yet, but a lot of under the hood work was done toward that possible goal.
- Aliss’s sex menu is no longer automatically unlocked. The tooltip for the disabled button now shows a useful hint for how to unlock it. Aliss’s lust gain when trying on outfits will also be displayed (as well as her current lust). Additionally, after unlocking sex with Aliss, she no longer has a minimum lust requirement.
- Corrected the formatting on ~80 of Siegwulfe’s button prompts that could potentially cause crashes, though I am aware more bugs remain…
- Fixed a crash with lapinara pregnancy.
- Various small UI fixes for inventory systems.
- Fixed a crash in Bianca’s fingering the PC scene.
- Fixed a crash in the combat menu with the sense menu.
- Fixed possible goo armor crash.
- Fixed possible Ardia crash.
- Lots of updates and fixes for Amber.
- Lots of updates and fixes for Mitzi.
- Corrected “hasCockSock” having its arguments set up in the wrong order.
- Milk thief crash fixes.
- Zaika hydra crash fix.
- Gastigoth crash fix.
- Two Syri crash fixes.
- Cleaned up bonus menus in Myrellion so they don’t crash when we release it.
- Fixed a crash with Erika.
- A ton of buttons that use the various bodypart routing utility functions have been updated & fixed (58 changed files)
- Starchild crash fix.
- [pc.goin] -> [pc.groin]
- Several fixes for the dong designer.
- Fixed a duplication issue with strange eggs.
- Fixes for the maxOutLust utility function.
- Getting throbb from crew Penny should now unlock the Codex entry for it.
- Fixed many calls to “loadInCunt” having their arguments in the wrong order.
- Fixed an Anno crash.
- Fixed some inventory-related bugs.
- A bunch more fixes.
- Even more fixes for unreleased content (Uveto, Myrellion, etc).
As always, if you like the game and like what weβre doing, you can always support us on Patreon or SubscribeStar! And if not, well, the free builds will still be here (eventually)!
The knot transformation mod crashed my game. I was sad. ;.;
loaded a save from 1130 to 1131 and got this
Version: 0.69.420 -PUBLIC#1131
Message:
pc is not defined
Stack:
ReferenceError: pc is not defined
at e.Z.eastLockedCondition (https://www.fenoxo.com/play/TiTS/release/content_tavros.cc0bef0f.js:1:6873597)
at Function.value (https://www.fenoxo.com/play/TiTS/release/main.b33966df.js:1:10717773)
at a.value (https://www.fenoxo.com/play/TiTS/release/main.b33966df.js:1:10712041)
at a.value (https://www.fenoxo.com/play/TiTS/release/main.b33966df.js:1:10710615)
at Ha (https://www.fenoxo.com/play/TiTS/release/vendors.6eddb424.js:1:354513)
at Ua (https://www.fenoxo.com/play/TiTS/release/vendors.6eddb424.js:1:354308)
at _u (https://www.fenoxo.com/play/TiTS/release/vendors.6eddb424.js:1:389922)
at yl (https://www.fenoxo.com/play/TiTS/release/vendors.6eddb424.js:1:381363)
at vl (https://www.fenoxo.com/play/TiTS/release/vendors.6eddb424.js:1:381288)
at ul (https://www.fenoxo.com/play/TiTS/release/vendors.6eddb424.js:1:378318)
I’m impressed noticed the lap bug like an hour ago, then it’s in the patch right after I posed the bug report. Did someone post it before me?
nvm now it’s broken in a different way lmao.
Fen why not categorize your some of these update posts?
hey there, don’t know if it’s been addressed or how to properly bring it up, but I found a few crashes when:
Bottoming or giving oral to kase
He’s my favorite character so I found out immediately lol
How to bring it up: go to the forum, the TiTS forum, the Bug Reports sub-forum, and post the error log and what you were doing to cause it there.
“so similar in fact, that the code almost works entirely with some simple find & replace action to remove Type data.”
I’m surprised that you wouldn’t use TypeScript to keep that information intact.
The first couple weeks were trying out Typescript, feeling it out to see if it was gonna work well for us; it became clear that we do enough bullshit that fighting Typescript to make things work was going to take much more effort over the whole process.
If I was actually starting from scratch I’d absolutely have gone with TS.
[Backers & Public], Huh?
Is that going to be a trend now?
I sure hope so, after all, the was at some point a promise that all releases would be public for a year after X planets were finished, and I don’t think this ever ended up happening.
Now that they have a way to easily separate content between the public and backer versions of the same release, it wouldn’t surprise me if bugfixes get applied to the public version every time there is an update. As for actual content updates for the public version, who knows?
A benefit of modules which I don’t know if you considered: Mods. With “content modules” (E.g., planet modules, location modules, character modules etc) people could create their own content for the game.
The benefits of this are twofold. Not only does it allow people to enjoy content which you may not have thought to include (Or couldn’t include because you can only make so much content), it means that contributors could potentially make modules to give you instead of only text files, making the job of including contributor content far easier (Only needing to check them for errors and correct, not make from scratch). Especially if modules work how I think they would work, where no code is involved for the module itself, but rather it is a data storage system like JSON files.
To note: This is already somewhat possible, as (Like was done with CoC) anyone can take the downloaded version and mod it directly. But module files would be a more user-friendly way to do this, where users can simply choose custom modules to load.
I miss the swf versions I got a flash player and I prefer playing those trials in tainted space plus they had more content
They’re probably speaking of either NPM modules or ES6 modules. Both of which involve source code.
Even with source code, as long as they do their API properly mods and easier content is still possible.
Nah, it’s higher level than that; they’re basically webpack chunks. In theory I guess I could make the loader check for some kinda additional manifest of files to load and you could then produce a chunk that would overwrite stuff across other modules to inject new or changed content, but you’d be fighting webpack to do a lot of things to make it happen without us doing something crazy to make it easier.
like i thought what works in one language breaks in another π also if your gonna add a clippy-type assistant and chance of a lewd-version option ;p
Honestly, I more or less expected there to be a metric ton of bugs when this finally launched. You can plan as much as you’d like, but nothing breaks something quite like releasing it to the general public. Still, learning the details was a lot of fun and fairly humorous beside, so thank you for sharing.
Hey i have notice that only the 2 starting stations and the first planet are travel-able but there are a lot of patch notes referencing content on other planets. are those planets suppose to be closed or s my save bugged?
Public build has less planets enabled than backer build right now.
As a 4k monitor user, is there any possibility in future to rescale certain UI elements, since they’re quite small in higher resolutions?
Version: 0.69.420 -BACKER#1130
Message:
window.shizzySpezzOdysseyEncounter is not a function
Stack:
WE@https://www.fenoxo.com/play/TiTS/backer/main.5ba4bb88.js:1:11637488
VE/<@https://www.fenoxo.com/play/TiTS/backer/main.5ba4bb88.js:1:11632328
value@https://www.fenoxo.com/play/TiTS/backer/main.5ba4bb88.js:1:11230223
47349/A
i hope the cheats will still be apart of the game
they are already
i get this message after defeating captain khorgan on tarkus
Version: 0.69.420 -BACKER#1130
Message:
Cannot read properties of undefined (reading ‘vaginalCapacity’)
Stack:
TypeError: Cannot read properties of undefined (reading ‘vaginalCapacity’)
at av [as victoryFunction] (https://www.fenoxo.com/play/TiTS/backer/content_tarkus.a94ca4e4.js:1:4081489)
at a (https://www.fenoxo.com/play/TiTS/backer/main.5ba4bb88.js:1:6881109)
at Object.func (https://www.fenoxo.com/play/TiTS/backer/main.5ba4bb88.js:1:6881508)
at Object.doClick (https://www.fenoxo.com/play/TiTS/backer/main.5ba4bb88.js:1:11068741)
at https://www.fenoxo.com/play/TiTS/backer/main.5ba4bb88.js:1:10730420
at s (https://www.fenoxo.com/play/TiTS/backer/main.5ba4bb88.js:1:7488649)
It looks like there’s a problem with the Offbeatr tracking. I pledged $100 way back when, though it says $0 on my profile.
Well, I have a little problem, I just didn’t received the messages from New Texas that unlock the location, also, the message that Unlock the Love Stars I didn’t received as well.
I’m from the public patch and I don’t know if this is for the backers
I must admit that I thought I was just being dumb when I waded around the menus last update looking for the force gender option and couldn’t find it. I gave up assuming I’d find it later, and just went back to playing because my Steele was being auto-recognized right presently anyway. π I am glad to see it make a return though, it is occasionally very useful.
Hello i didnt play the game in a while now i have to go to the setion of play? since i dont see an imagepack like in the past?
I dontk now anything of the past year xDD
You could use TypeScript?
It’s JavaScript, and valid JavaScript files are valid TypeScript files, but TypeScript supports explicit types, incremental compilation, and better IDE features.
Google internally soft-bans writing new JavaScript code in favor of TypeScript, and it looks like more of the internet might be going the same way. JavaScript is a scripting language, TypeScript is an application development language.