Usk Productions Blog

State of things 2024-04-03

Posted by Usk Productions on .

Art practice

I've been doing a TON of drawing lately, and I feel like I've really been improving. I've found a coloring workflow that I enjoy and gets good results in about two hours. Here's a few of my recent pieces:

New project underway

I've started work on a visual novel! It features the pizza delivery woman from the first drawing I posted in the previous section. Her name is "Gina".

The premise of the story is that you order pizza, hit it off with the woman delivering it, and invite her inside for a movie. Things get hot and heavy. There are four endings focusing on different fetishes:

  • Vore with digestion
  • Soft vore with regurgitation
  • Feeding and weight gain
  • Insatiability and cumflation

The ending you get is based on several decisions you make throughout the night. There are also bad endings if you don't win Gina's affections, and a vanilla good ending if you don't meet any of the fetish ending requirements.

The first draft of all the writing is done, although I may go back and add more foreshadowing and buildup so that the vore options don't seem to come out of nowhere right at the end.

I've also been waffling a lot about the requirements to unlock each ending. The way it works right now is that there are two missable opportunities for sex during the date. You must get at least one of them to get any of the good endings. If that's all you do, you get the vanilla ending. If you're also hungry at the end of the date, you can get any of the eating-related endings. If you get both of the sex scenes, you can get the insatiable ending.

Now that the text is in a good place, I've been filling in the whole story with placeholder art. Here's a sneak peek at what it looks like so far:

I composed the story using a custom VN scripting language I designed and implemented on top of Godot. The syntax is lightweight and looks like this:

? noc Take pizza
@ gina_gave_pizza_smiling
sfx:
*Flump*

You:
(Uh oh, why do I feel a breeze?)

@ gina_gave_pizza_surprised

Gina:
Um...

Your...

Your towel fell down.

You:
Oh my god. I'm so sorry.

Gina:
Ha ha! No, it's okay!

Let me get that for you, I don't want you to trip with that pizza.

@ gina_left

? if currently_erect
    $ set saw_erection true
    You:
    (Shit, shit, shit.)

    (She can totally see my hard-on.)
? else
    You:
    (This is so embarrassing.)
? end 

The most important feature, in my opinion, is that no extra syntax is required to declare lines of text. Ren'Py makes you mark every line with the name of the speaker and wrap the text in quotes. That sucks, and I refuse to do it.

Commands to the VN interpreter itself start with '?'. Currently some start with '$' instead because I wanted to separate "flow control" commands from other commands, but now I'm thinking of just making them all the same.

Commands to the particular scene start with '@'. The simple generic fallback scene simply uses that command to decide what full-screen image to load. But you can also write a custom handler in gdscript if you need to do something complicated.

The engine keeps track of the all the text you've read so far, creating checkpoints automatically whenever a branch (if-statement or player choice) starts or ends. You can fast-forward through any checkpoints you've already completed.

I haven't implemented saving and loading yet. I might not bother since this story has less than 7000 words. I have some ideas on how to do it though.