HTML Project Top Secret (PTS) (Dev Blog)

PTSdev

Member
Oct 21, 2019
111
371
Hi there F95,

after months of work it's finally time to go public with this dev blog. I'm developing an RPG/management game called "Project Top Secret" (PTS) which will be released mid 2022. It's going to be an HTML game using the Sugarcube engine.

What is this game about?
You run a company with one clear goal: Customer satisfaction. The twist? The company specializes in the naughty business. Your clients come to you with all sorts of problems, but you decide on how to solve them. You can be a knight in shining armor... or a complete perv. But beware: Somebody is watching you.

Tags?
I don't want to make false promises. Due to the game's story, Maledom / BDSM does play a role at some point. There is the possiblity to use mind control, but it's entirely optional. You can finish every client's storyline without using MC - the only exception being the tutorial girl. Your playstyle highly influences the amount of sex scenes you'll see. There will NEVER be incest content.

Here's the list of features I've already completed:
- customized Sugarcube CSS/JS (lots of thanks to all the people providing code and help on the Sugarcube forums)
- core data structure
- time management system
- handling of quests and events
- dialogue screen (layout and decisions - linked to player / client stats, see screenshot)
- core elements of the management part (finances, facility addons, staff management, upgrades, research)
- "the agency": hire / fire staff, acquire new clients, negotiate contracts, take "one-off" jobs, e-mails)
- phone: messaging and lots of little fluff apps
- unlocks and progression (trigger based system)
- in-game tutorials
- achievements
- sidebar menus: player info, client / staff info, quest overview
- customization options (menus, character avatars, fetishes)
- main storyline up to chapter 3 (of 5)
- client storylines: planning complete, writing @ 75%.

As you can see, this is quite the extensive list. All core features are implemented, I'm currently working on the management part.

ON "REAL PORN" AND MONETIZATION:
I am using RP images in development, but will release the game and the third party content separately. PTS will be freeware. There will never be a Patreon. This is a passion project. I've got a steady full-time job in RL. Furthermore, Patreon will not tolerate a game like mine, because it includes hard BDSM content and other pretty weird fetishes.

PLEASE NOTE:
None of these images represent the game in its final state. This is a work in progress. I will NOT release sth like version 0.2, because I want the game to be feature complete and as bug-free as possible when it goes live.
 
Last edited:

PTSdev

Member
Oct 21, 2019
111
371
Time for an update! I know that it's hard to judge a game that hasn't been released yet, but I post here just to stay motivated, as my game is quite large.

Current version number: 0.31
Number of passages: 1211
Word count: 250000

Completed features since the last post:
  • Tweaks to the CSS (mostly flex stuff)
  • Streamlining of the UI (new controls during scenes)
  • Revision of the options menu (Ui customization, custom avatars for characters, MC customization, video/audio options)
  • Lots of adjustments to the quest/event system. The goal is to make the game as modular as possible, because I want to use it as framework to make more games later.
  • Finalized the core stats & ability system. No further changes planned.
  • Negotiations (mini game)
  • Writing: about 50 new scenes, but it's still a long way to go...
Furthermore, lots of work has been done regarding the management part.

Remember that nothing you see on these screenshots is final. The game will be released for a beta test in the summer. Stay tuned.
 

PTSdev

Member
Oct 21, 2019
111
371
Phew, the last few weeks have been rough. Got sick two weeks ago. But I'm back on track. Here's another update!

Current version number: 0.33
Number of passages: 1302
Word count: 255000

Progress:
  • Lots of minor code tweaks to speed up the workflow
  • Settings API integrated
  • Expanded the character trait system
  • Added more depth to the staff hiring process
  • Achievement system expanded
  • Management part: Let's just say that a lot of math had to be done.
  • Wrote quite a few new scenes, but there's A LOT left to do.
  • and much more...
As always:
None of these screenshots represent the game in its final state. The beta version will most like have a version number in the 0.80s. I still aim for a release in the summer and hope I can keep pushing.

It's funny, really. This all started as a little side project, now it's consuming me. But I'm loving it. Stay tuned.
 

Alcahest

Engaged Member
Donor
Game Developer
Jul 28, 2017
3,486
4,331
Phew, the last few weeks have been rough. Got sick two weeks ago. But I'm back on track. Here's another update!

Current version number: 0.33
Number of passages: 1302
Word count: 255000

Progress:
  • Lots of minor code tweaks to speed up the workflow
  • Settings API integrated
  • Expanded the character trait system
  • Added more depth to the staff hiring process
  • Achievement system expanded
  • Management part: Let's just say that a lot of math had to be done.
  • Wrote quite a few new scenes, but there's A LOT left to do.
  • and much more...
As always:
None of these screenshots represent the game in its final state. The beta version will most like have a version number in the 0.80s. I still aim for a release in the summer and hope I can keep pushing.

It's funny, really. This all started as a little side project, now it's consuming me. But I'm loving it. Stay tuned.
That's a lot of passages. Wouldn't it be more managable to reuse passages more to keep the number down?
 

PTSdev

Member
Oct 21, 2019
111
371
That's a lot of passages. Wouldn't it be more managable to reuse passages more to keep the number down?
The number is not a problem, as I've developed a system to handle events / scenes. Managing complex / branching dialogue trees in a single passage gets tedious very fast. It also creates problems with the story history.

Let me try to explain how my system works:
Events and their properties are stored in an object / array. There are several different types of events, i.e. major, minor, radiant and manually activated events. The first three are activated by a widget which scans if conditions for the activation have been met. NPC portraits get a green border if new events are available. Manual events are activated...manually. These are mostly main story events which override everything else.

There is a single passage for "TALK" events, the passages from each dialogue event are included there on the fly. As lots of scenes come with different branches, event passages follow a strict naming convention, e.g. "bella_start_1-3-2".

This is important, because it's linked to player choices. Due to all events being included in the "TALK" passage, SugarCube's <<choice>> macro doesn't work, because it creates single-use links. I wanted to have a flexible, stylable choice system of my own, which is why I built stuff around the core functionalities of <<choice>>. An example for "stuff" would be skill checks.

Once an event is completed it gets a "done" flag. The game has a system which checks for completed events and other conditions to advance quests. Think of the whole thing like an onion with many different layers.

My game is not a visual novel, it's more like an actual video game. It's a mix between choice driven narrative and management / simulation. I'm using VSCode / tweego, so managing everything isn't too hard. I've attached a screenshot of my folder structure. (NPC events are in folders below the shown area, but I don't wanna post these rn, because it would spoil all the available characters :D)
 
  • Like
Reactions: AnotherAnonGuy

Rafster

Bear chaser
Game Developer
Mar 23, 2019
2,099
4,087
I'm using VSCode / tweego
Then I guess you'll be fine. I'm also working on VSCode/Tweego, to not have a limit on passages (unlike twine that begin to slow down after a certain number of passages). I don't need as many passages as you, since mine is a...weird hybrid between sandbox and VN, but I guess I'll get there in time. In fact, in some missions I had to split it on several passages, since it was a multiple choice on every passage, and fit it on one passage was...not manageable.

You have to tell me how you got those statistics on tweego/vscode, I was looking to do something like that and I couldn't. (Hey, I'm a newbie on VSCode, I've been using it since december)
 

hiya02

Member
Oct 14, 2019
171
98
Can you tell us more about how the events work, i.e. what kind of conditions are being checked before an event may be activated etc? Was it necessary to implement it in a certain way so that it can scale up to handle potentially a huge number of events? Are you using a DB or custom objects for storing the events and conditions?
 

Alcahest

Engaged Member
Donor
Game Developer
Jul 28, 2017
3,486
4,331
I'm using VSCode / tweego, so managing everything isn't too hard.
That was gonna be my next question, because back when I still used Twine (I'm also using VSCode and Tweego now), I checked out some other games in Twine with... well didn't count, but with a lot of passages being obviously managed in Twine.

Still though, I wouldn't wanna juggle thousands of passages. I want all my passages in one folder for quick access, so I've made an event system which can reuse "event passages" any number of times. Basically, I just call the passage with the event nr and event step (event step is only required if there are branching choices). History and everything works without problem. So for every location I have a "main" passage, and an event passage. If the player goes to the bathroom, he is sent to bathroom passage. There he gets choices. Selecting a choice starts an event that is in bathroom1. Then I just keep calling bathroom1 with the next step following the choices he makes. If I think bathroom1 is getting too big, I just make bathroom2 and put new events there.

Right now I have about 50 passages (79 if counting special passages or js files etc), ie about 25 locations, which is easily displayed in one folder for quick access. And I don't expect the number to grow very much. Mainly depends on how many new locations I will add. Your game seems pretty different than mine, so not saying my system is better or more suitable in your case. Just wanted to get the word out there to other potential devs that there are ways to reduce the number of passages by reusing them.

I don't need as many passages as you, since mine is a...weird hybrid between sandbox and VN, but I guess I'll get there in time. In fact, in some missions I had to split it on several passages, since it was a multiple choice on every passage, and fit it on one passage was...not manageable.
Sounds like my game. I wanted to make it more free roaming, sandboxy, maybe I will succeed later, but for the first release I found it necessary to keep stuff together more as I need to set up everything in the story to get things where I want it before going forward.
 

PTSdev

Member
Oct 21, 2019
111
371
Thanks for the replies!

Rafster: I get these stats with the Twee3 extension for VSCode and a CLOC tool. The Twee3 extension is super helpful in many ways, I recommend using it.

Alcahest: Your system is fine if you have a classic free roam sandbox. My game is a bit different as NPC interactions and rooms are not directly linked to each other. You talk to clients and staff members by clicking on their character portraits in the "HUB" area. See the attached screenshots to get a better understanding. (My real name is not "Peter", it's the name I always use in VNs. Don't ask me why.) The interface is a WIP, but it's slowly getting better. I have a "three click rule" regarding UI design, i.e. a player should never need more than three clicks to perform a certain action.

hiya02: The event check routine works as follows:

1. Loop through event object (the loop is used when the player has spent an "action point", action points equal a day - so you have 7 AP each week.)
2. check event class (story, girl, staff, manual)
2.1. story: checks if conditions for a main story event have been met, if yes it sets the event to active. Main story events override passage navigation, i.e. if a main story event has been actived, the player gets forwarded to it.
2.2. girl: check if a girl is an active client
2.2.1. check prerequisites (example: a major event unlocks, if the event type property is "major" and a girl is on "route a" and her level is x.)
2.2.1.1. check the event's "delay" (time system stuff) and if it has a done flag
-> delay = 0, done = false: activate event
-> delay > 0, done = false: delay -= 1
2.3. staff: pretty much the same as girl events, but with some differences when it comes to prerequisites.
2.4. manual: these are activated by unique triggers outside the event loop, the loop itself only manages the "hasevent" flag for stuff like the green portrait borders.

I'm using custom objects to store the events. The system scales well, it's pretty much possible to have thousands of events.
 

PTSdev

Member
Oct 21, 2019
111
371
Update!

Current version number: 0.54
Passage count: 1887

The game finally is taking shape! I've been coding / writing like crazy in the last months. Sorry for the long radio silence, but I decided that it's better to put in some work first before going public again.

CHANGELOG:

Events & Quests:
- Further simplifcation and unification of the event handling system. This is by far the most important change to the code. The old system was decent, but the new one allows...
- Mod support: With the game's infrastructure being completed it should be fairly easy to add custom girls. I'm currently running some tests, but it's looking really promising.
- The quest system has also been reworked for this reason.
- Lots of special event templates (room specific, item specific, stat unlocks, tech unlocks... the list goes on.)
- Contracts: These are basically mini quests - they have always been a feature, but now they're actually working as intended.
- Random events: Unlocked over time. They add some fluff to the game, but don't impact the main story. Moddable as well.

Scenes & RPG systems:
- Streamlined stat progression
- Special abilities & items can be used during certain events now
- Better dialogue controls
- Deeper staff interactions
- Client traits: better integration
- Relationship system expanded
- Completed the design work on the game's SCORE system. This system keeps track of your playstyle: There are four different basic ways to play the game (duty, ego, emotion, professionalism). Your playstyle greatly impacts the main story.

Agency:
- The final new features: Public relations, Terminal
- Deeper negotiations: You have "competitors" now which are unlocked over time. Overall, the negotiation minigame got more complex and (hopefully) more rewarding.

Facility:
- Apartments: Added upgrades.
- Coaching room: Added special assignments for your most important staff members.
- Lab: Better UI, more depth. Special research projects for the late game added.
- Spa: Added upgrades.
- Bar & Strip Club: Fine-tuned the upgrades, but there's still work to be done.
- Studio: Special actions (photoshoot, create movie) added.
- Dungeon: Fully integrated tech unlocks.

Management:
- Improvements to staff calculations (fit, wages, performance)
- Tuning of the guest attendance formulas (still not perfect)
- Lots of little tweaks

Shop & Inventory:
- Better interface
- Wardrobe system added (The MC has to wear certain clothes for some choices to be available.)

Phone:
- Achievement tracker added
- Improved some of the phone's apps, e.g. the newspaper app.

UI:
- Redesign (see screenshots below), it's getting close to what I have in mind.

Settings:
- Added a few settings (UI customization, audio / video, fetishes, autosaves)

Story:
- Reworked intro sequence
- Laid out the plan for the entire game (all main / side quests)
- Chapters 1 to 3 are 100%.
- Chapters 4 to 7 are @50%.

Misc:
- Performance improvements
- Bug fixes
- A myriad of tiny adjustments...


Some info on how the game actually works:
The game mainly consists of two parts: Client storylines and company management. You progress through a client's story by completing events and quests. The success of the company is tied to story progression, but generally, you don't have to micromanage too many things to stay afloat. Over time, managing everything does get quite complex, but there are staff members who will assist you greatly.

The main story is divided into seven chapters. With each new chapter, you unlock new clients and company addons. Your choices matter. Actually, they matter A LOT. While the main story does follow a straight plot line, there are hundreds of different choices you can make along the way. The game is designed for multiple playthroughs, you will NOT see all content on your first run.

The game's release has to be delayed, I think that summer 2023 is somewhat realistic right now. There will be a beta test when the game reaches version 0.9. Stay tuned.

I'm planning on posting here more frequently in the next few months. I'll also think about the monetization aspect, but it's too soon to make any calls.

As always, here are some new screenshots. Remember: Work in progress, nothing you see here is in its final state.
 

PTSdev

Member
Oct 21, 2019
111
371
Jesus, I totally forgot about this thread. :D

The game is not dead. Here's an update.

Current version: 0.74

Feature status:
Achievements (the NG+ element): 80%
Basic company management (hiring/firing staff, staff training, finances, advertisement): 95%
Client design (stats, skills / perks, jobs): 90%
Client rewards (portraits, sex scenes, special wardrobe options): 100%
City (unique locations for story purposes, but don't worry: there never will be any kind of HTML free roam jank): 50%
Dialogue system (choice driven, each unique client comes with a short storyline): 100%
Item system (clothing for MC, different wardrobe options for clients): 100%
Negotiation mini game & competitors: 100%
Phone (mostly for fluff, not that important for the overall game): 90%
Progression (company departments, skill / item unlocks): 80%
Scheduled training (= passive training): 100%
Staff interactions (short scenes, special training, services): 70%
UI / UX: 90%

Story status:
This is where development grinded to a halt due to some unforeseen problems. My initial approach led to an insane amount of branching which negatively affected the narrative flow. So I decided to get rid of many overcomplicated systems and went for a much simpler solution.

A client's storyline always consists of two things:
1. Hand-crafted scenes and quests, unlocked by completing goals (in-game guide available)
2. Procedurally generated training events

I'm trying to avoid grind at all costs. Repeating events to incrementally increase stats is boring imho. The more you progress in the game, the more powerful your training options get which reduces repetition greatly.

Issues:
I have a full time job which doesn't allow me to work on the game consistently. Basically, I've got around 2 months of actual dev time per year which sucks. But it is what it is. This game has become a passion project for me and I'm going to complete it. It'll just take time. And I simply dislike going into EA when the game's at a version number below 0.9, i.e. not at 90% completion.

Mod support:
It will be possible to create NPCs with the built-in editor. It looks terrible right now (see below), but it works. Adding the possibility to create custom storylines is WIP. Auto-generated quests & events are already implemented. I've not created a story editor yet, because it's very low on the priority list.

The real porn / Patreon issue:
The game will be released as a pure HTML file, but I'll provide a basic content pack. There will never be a Patreon, because this game is a walking copyright infringement.

On AI art:
I've thought about using AI generated models, but they all look so samey and kinda dead. Maybe I'll create a simple AI pack for those who dislike the real porn aspect. And remember: The NPC editor allows you to easily change a girl's name. Image files follow a strict naming convention, so it's also quite simple to switch sth like portraits and wardrobe images.

Thanks for reminding me of this thread!
 
Last edited:

Richius

Newbie
Jun 15, 2021
33
12
Great to see you're still working on it!
Just out of curiosity: some people would argue that user feedback would be helpful during the development of the game, so why wait until it's almost finished? Feedback could help make the game better right? This is not meant as critique, I'm just genuinly interested in your take on this, and the question of when to publish a game (also working on a (very slow) passion project).
 

PTSdev

Member
Oct 21, 2019
111
371
Thanks for the reply. The game is designed in a fairly open way, so reacting to user feedback should be no problem. Actually, I'm really looking forward to finally going into public beta and I'm sure there'll be lots of problems I haven't even thought about. That's what a beta test / early access is for. And I don't wanna be one of those "Here's version number 0.024, support me on Patreon to get version 0.025 next year." devs. I'm not doing this for the money. It's a fun exercise and if some people like what I've created, I'm happy. And if it's a shitty game... well, then I've learned a lot during the development process.
 

Richius

Newbie
Jun 15, 2021
33
12
And I don't wanna be one of those "Here's version number 0.024, support me on Patreon to get version 0.025 next year." devs.
I can get behind that. Good to hear you thought about feedback. I'm looking forward to the beta. Good luck!