Busty Barrister - Day 44
By Angus Cheng
Christmas Day is my birthday, so please say “Happy birthday Angus” to yourself as you read this blog post. I had a pretty good Christmas. Spent a lot of time with my girlfriend’s family. Interestingly my Dad’s side of the family did not meet up for Christmas this year. My Mum’s side of the family live in Australia, so yeah, didn’t see those guys either. I spent a lot of time working on Busty Barrister Barabara actually. In the last post I put together a list of high level tasks that need to be done to complete the first level of the game. I smashed through a lot of them so let’s go through the ones I did one by one.
✅ Create a cost document
The costs are there as well, but I don’t want to share that data with you guys. I don’t mind you knowing how much money I’m spending making this game, but I think the artists might not want their rates to be shared out publicly. In a way I don’t care how much I spend on this game, I’m making a lot of money with Bank Statement Converter and I’m happy to dump money into this game. It’s still good to keep track of how much I’ve paid artists, so I don’t accidentally overpay/underpay someone. I like to pay people I work with pretty quickly, it’s a good way to show them I’m not a dipshit and can be trusted. Although truth be told, I am a dipshit. But I will pay on time!
✅ Specify background art
✅ Specify character art
Pretty easy, I went through the script and figured out what background and character images I need. I probably missed some, but that’s okay, once I have a background artist working I can keep sending him stuff to do.
✅ Code links between scenes
else if (eventType == CHANGE_LEVEL) {
ChangeLevel event = eventData->changeLevels[eventIndex];
gameData->levelName = event.levelName;
memset(&gameData->gamePlayData, 0, sizeof(GamePlayData));
load_level(gameData);
eventType = eventData->eventTypes[eventData->eventIndex];
continue;
}
This was pretty easy to implement. Originally I had the line
gameData->gamePlayData = (GamePlayData){0};
that worked fine on MacOS and WASM but it silently crashed on Windows. I never really figured out why, and got it to work with a memset, so that’s how it is. As a dipshit, I cannot be bothered to figure out every little weird thing that happens. If a bank was paying me to write this code then yes I would waste some time figuring this out to satisfy my intellectual curiosity.
✅ Code press testimony function
// Line 1
add_label(data, "LINE_1");
add_show_text(data, JARED, GREEN, LEFT, "It was a beautiful clear day, I was admiring the view.", TYPE_FAST);
add_testimony_point(data, ITEM_TYPE_NONE, NULL, "EVIDENCE_FAIL", "LINE_1_PRESS");
add_wait_for_user(data);
// Line 2
add_label(data, "LINE_2");
add_show_text(data, JARED, GREEN, LEFT, "I was about to get back to my work. When I heard a dispute from the street.", TYPE_FAST);
add_testimony_point(data, ITEM_TYPE_NONE, NULL, "EVIDENCE_FAIL", "LINE_2_PRESS");
add_wait_for_user(data);
// Line 3
add_label(data, "LINE_3");
add_show_text(data, JARED, GREEN, LEFT, "Then I saw Korshal strike the victim in the face with his fist!", TYPE_FAST);
add_testimony_point(data, EVIDENCE_AUDREY_AUTOPSY, "EVIDENCE_AUTOPSY", "EVIDENCE_FAIL", "LINE_3_PRESS");
add_wait_for_user(data);
This was also not too hard to implement. I created a TestimonyPoint event. At this point in the script you can “Press” the witness and the game will jump to the label specified, e.g. “LINE_1_PRESS”.
✅ Code present evidence function
This was also handled using the TestimonyPoint event. If you present the item specified, it’ll jump to the evidenceSuccess label otherwise if you present some other item it’ll jump to the evidenceFail label. There’s two problems.
- What if you want a point in the script where the player can present multiple pieces of evidence?
- I’m planning to use the EVIDENCE_FAIL label section as a catch all. It doesn’t know where to jump back to once it’s done.
At the moment problem #2 is more of a pressing issue, so I’ll fix that first. I’ll let the back of my mind slowly think of a solution to problem #1.
Background Art Update
I paid two artists to do background art tests for me. Here’s the resulting work.
Artist #1
Artist #2
I like Artist #2’s work a lot better, so I’ve decided to hire him for the rest of the backgrounds in the game.
Character Art Update
Artist #1
Artist #2
Artist #3
They’re all good, but I like Artist #2’s work the best. So I’ve given them the spec for the rest of the characters.
More High Level Tasks
[ ] Hire someone to make music and sfx
[ ] Hire someone to make evidence/profile icons
[ ] Spec out crime storyboard images
[ ] Hire someone to make crime storyboard images
[ ] Cut up voice acting
[ ] Put voice acting into game
Priority
As much as I’d like to just sit down and code or write the story. The priority really needs to be sending specs to artists, replying to their questions and paying them. Project management shit. Stuff I don’t really want to do, but I don’t want these people to be ‘blocked’ while I sit in a corner coding away like a dork. I am considering hiring someone to do this project management stuff for me.
High Level Tasks
[x] Hire a background artist
[x] Hire a character artist
[x] Finish writing level one
[x] Specify background art
[x] Specify character art
[x] Code links between scenes
[x] Code press testimony function
[x] Code present evidence function
[x] Create a cost document
[ ] Hire character animators
[ ] Hire voice actors
[ ] Enter data for level one
[ ] Hire someone to make music and sfx
[ ] Hire someone to make evidence/profile icons
[ ] Spec out crime storyboard images
[ ] Hire someone to make crime storyboard images
[ ] Cut up voice acting
[ ] Put voice acting into game