Rainbow-tinted games

Progress report #5: 3/4 done + scripting struggles

2018-03-16 16:35:15

About 75% of the development of Rose Seed Replica is done now, so I guess it's about time for another progress report.

For starters, here's the usual estimate about how each area of development is progressing:

  • Writing: 100% (103669 words)
  • Code: 90%
  • Sprites: 70%
  • Maps: 65%
  • Scripting: 35%
  • CGs: 30%
  • Audio: 10%

So, most of the things are progressing smoothly. Writing and coding are pretty much done, and sprites are getting there quite nicely too. A few maps are still missing and a couple others need more polish, but it's something I can just do on and off at this point. CGs and audio will be done last as originally planned.

However, something that could be going more smoothly is scripting. Like, it's not going abysmally badly exactly, but certainly slower than I was hoping. Anyway, since it's something that has been on my mind a lot lately, I decided to detail the scripting process of the game and the stuggles I have been having a bit more closely in the rest of the article.

What's scripting?

Basically, by scripting I mean making events likes chats, dates and such trigger at the right times and flow in the right ways. In practive, scripting Rose Seed Replica involves scheduling the events in various ways and controlling the characters appropriately during the events.

Simply put, without scripting, the story would never progress since no events would not trigger. Hence, getting most of the scripting work done is essential before the game can be beta tested in any meaningful sense. For the reasons I'll detail next, scripting will also take, like, the vast majority of the remaining development time.

Why am I stuggling with it?

So, well, scripting is a huge stuggle. There's just so much of it to begin with, and it's slow and really tedious work for the most part. I guess the worst part really is that the tedious parts tedious stuff actually requires really deep concentration to subtle details. Like, it's both super boring and super serious, and thats a really stressful combo.

The problems mostly stem from the fact that the events of the game are just awfully fragmented, and making the little pieces work together is tough for reasons that I'll detail in a bit. Like, scripting the actual date and kiss scene parts is actually fun, but that's such a small portion of the total work that it doesn't help much.

Anyway, to illustrate a problem a bit more clearly, let's have a look at a practical example of what a typical event looks like in the game. So, like, going to a date with Bryn could require the player to complete steps like these:

  • Talk to Bryn
  • Find items
  • Talk to Bryn again
  • Go to bed
  • Wait until the evening
  • Go to Bryn's room
  • Enjoy the date

Setting up each of these steps is already pretty laborous because you typically can't make any assumptions about Sophie's or NPCs' positions on the map when the player clicks something. So, basically, just setting up a chat with Bryn would typically involve the characters looking at each other, saying some greetings, walking closer to each other and then having the chat itself.

In addition to the individual steps being a pain to set up, the player can also basically do whatever between the step. Like, in the example above, you could talk to any NPC at any point, go to bed at any point, do quests for other NPCs, waste time playing minigames, go to Bryn's room too early, not go to Bryn's room in time and whatnot. That also complicates things in many cases, so it's easy get overwhelmed by the details while scripting.

So, yeah, all that freedom makes the game really fun to play, but that comes at the cost of making scripting a huge pain. Regardless, it's such a huge boost to the gameplay that I don't regret making the game like this at all. I don't mind a little suffering for making the game better.

Will things stay on schedule?

Well, the reality really is that I can't script the game as quickly as I'd like. It's already as stressful as I can tolerate, and trying to go for more would probably just burn out me, and that'd be far worse than just working at a slower pace. There really isn't a whole lot I can do to make it happen faster.

So, I really am a bit worried about the release date slipping. It's still too early to say if it will actually slip because the May/June estimate already contains a little bit of extra to account for some problems. However, whether that's enough depends on how major the scripting issues turn out to actually be and how big issues beta testing and such will uncover.

Anyway, if the release date really slips way past the beginning of June, I'll probably delay the release until July because of E3 and Steam summer sale getting on the way. But, really, it's too early to speculate about that yet. I'll write a separate post about the release date once I'm more certain about how it'll be affected.