RSSAmplifier

Blog

Angus Cheng

Recent content on Angus Cheng

anguscheng.comRSS feed ↗26 posts

Latest posts

Calling Their Bluff

Lately countries have started requiring eVisas even for countries that used to allow visa free travel. It’s very annoying. A month ago I signed up for an eVisa to get into Canada. Someone sent me the link, and after doing it I realised I didn’t use the official Canadian government website.. Instead I used signed up with evisatravel.org , they seem to sit in front of the real eVisa…

My App Ideas Volume 1

I wrote a book about how I created Bank Statement Converter. You can read it here . At the end of the book I wrote this: A lot of people have emailed me asking for my ideas. This is kind of funny I think, when someone comes to me and says they have an app idea I think “oh man please go away and leave me alone”. I guess it’s different because I’ve actually made apps that…

Maximising Enjoyment of a StarCraft: Brood War Bug

Midway through 2007 I was playing StarCraft and someone nuked my base from his base. This shouldn’t have been possible because StarCraft requires you use a ghost (an infantry unit) to target the nuke. The ghost can target the nuke a maximum of few inches in front of itself. The targeting phase lasts about 10 seconds and if the ghost is killed in this phase the nuke does not land. Obviously…

Fixing a Chrome + Windows Game Bug

A few weeks ago I added voice acting into Busty Barrister Barbara. It worked fine, until I tested out a Web build on my Windows PC. The audio sounded terrible, it sounded like it had gaps in it. Interestingly the bug only occured on Google Chrome for Windows. Windows Chrome ❌ Windows Firefox ✅ MacOS Chrome ✅ MacOS Firefox ✅ MacOS Safari ✅ Sadly about 3.22 billion people use Google Chrome for…

Busty Barrister - Day 53

Happy new year to you all, hopefully Busty Barrister Barbara will sells billions of copies in 2024. I can’t believe it has been over a week since I’ve written a blog post. ✅ Hire someone to make music and SFX I placed a job ad on Upwork. A lot of people applied. I hired three of them for paid trials. They should all be done by Friday this week. I’ll share their work here. ✅ Enter…

Busty Barrister - Day 44

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…

Busty Barrister - Day 36

The main character of this game is loosely based off my Aunt who is a barrister. She’s going to be mad if she ever finds out. I saw her for lunch today, and asked her a bunch of questions about the various courts in Hong Kong. She told me the district courts have open galleries so I can just go in and watch a case. She also told me that The High Court is used only when the penatly for a…

Busty Barrister - Finishing Level One

Try out the latest build . I started working on Busty Barrister Barbara on November 17 2023. Just over one month ago. The game not done, and it probably wont be done for at least another three months. Game development is very different to business application development. When I made BankStatementConverter I coded it for a week, and got it into production. I spent the next three years improving…

Implementing Branches

Try out the latest build . The development of the engine for Busty Barrister Barbara has been going well. A few days ago I figured out how to deal with branching which was one of the last missing features. I’ve done this before in plenty of other games. What I normally do is: Make sure every event has an identifier. Chain events together with a nextEventId Create Decision events with…

Building a Web Game in C

Christmas is coming up. When I used to work at a bank the entire month of December and a bit of January we were placed under “Change Freeze”. We weren’t allowed to deploy updates to our applications during this period. The thinking was: A lot of people are away over Christmas Application changes can lead to crashes People who know how to fix those crashes might be away To prevent…

Simple Feature Gross Code

A few days ago I talked about supporting text events with multiple colours and multiple text speeds. I spent about eight hours writing the code. It took me a lot longer than I expected so I thought I’d share the details here. Example Data set_title(data, PHOENIX); set_text_color(data, SKYBLUE); add_show_text_V2(data, 'They're saying the jay walker was... ' ); set_text_color(data, RED);…

Busty Barrister - Week 4

A few weeks ago I talked about implementing a generic list of objects that conform to an interface in C. The code is not the nicest, but it’s working well enough and I think it’ll hold up until this game is done. This is what the EventData structure looks like at the moment. typedef struct EventData { int eventIndex; int eventCount; enum EventType eventTypes[ 1000 ]; int eventIndices[…

Kuala Lumpur Trip

Last Monday I went hiking and hung out with my friend Toby. He said he was going to Kuala Lumpur for a few days and asked me to join. I had a little think about it and decided yes I would go. The next day I booked a flight to be in KL Wednesday morning to Saturday night. Wednesday The flight was pretty good, I worked on Busty Barrister until I ran out of batteries then I read Number Go Up on my…

List<IEvent> using C

Yesterday I was in the mood to go for a hike. The weather is a lot cooler now so it&rsquo;s actually nice wandering around in the country parks of Hong Kong. I was originally going to go up to Sunset Peak , but then I felt a bit lazy, so I did a much easier flat hike that goes around sunset peak. Midway through the walk, I think this is Cheung Sha Beach. This is the way I came. On the slow ferry…

Coding a Browser Game in C

For the last few months I have been working on Bank Statement Converter and a Raylib game called &ldquo;Customer Support Sim&rdquo;. I coded &ldquo;Customer Support Sim&rdquo; using Raylib and Kotlin. Raylib is a really awesome game programming library and Kotlin is my favourite language. However sadly I&rsquo;ve hit a bit of a wall with the game, I&rsquo;m not really sure how to make it fun. I…

Customer Support Sim Dev Log #5

Saturday Added the ability for NPCs to send image messages Linked up level 2 and level 3 Linked up level 3 and level 4 Figured out how to build Jaylib https://github.com/electronstudio/jaylib Upgraded Jaylib from 4.2.0 to 4.5.0 Sunday It was a nice day so I went for a hike with Candice from Pak Kung Au to Mui Wo. Later that day I did a bunch of coding. Wasted a ton of time trying to get JPEGs to…

Customer Support Sim Dev Log #4

Monday Added sound effects for when messages come in, player actions are correct and when player actions are incorrect. Added functionality to randomly create users. The names all come from obscure F1 drivers. I found a list of all F1 drivers, sorted them by the number of races they attended from least to most. Conversation closes when the user gives out an incorrect password. Lowered the music…

Customer Support Sim Dev Log #3

// TODO: You can just use Delay // TODO: You can just use PlaySong // TODO: Does this need to be a MutableList? // TODO: Try wiping out these lateinit var declarations. Nicer if they can be vals // TODO: Consider adding a OnEnter and OnExit methods Delays on successEvents/failEvents don&rsquo;t seem to be working Level 2 call should change photos when different people are talking. Create a…

Customer Support Sim Dev Log #2

// TODO: You can just use Delay // TODO: You can just use PlaySong // TODO: Does this need to be a MutableList? // TODO: Try wiping out these lateinit var declarations. Nicer if they can be vals // TODO: Consider adding a OnEnter and OnExit methods Delays on successEvents/failEvents don&rsquo;t seem to be working Level 2 call should change photos when different people are talking. Create a…

Customer Support Sim Dev Log #1

Create an image for information.txt Put icons into GameState Create an event that makes the information icon appear Create &ldquo;Valued Behaviours&rdquo; Create the information window Clicking on the information icon opens the information window Data in information window comes from GameState Create LevelComplete Event Rename GameState -> GameData Create a IGameState interface Create a…

Mum and I look for a Heroin Cure

One day in January 2010 I was hanging out with my Mum in her study while she was drinking a coffee. She was reading the news, and found something interesting. &ldquo;Take a look at this story, apparently the police in Cambodia rounded up a bunch of heroin addicts and conducted a drug trial on them&rdquo;. The story she found only went for a paragraph or two. &ldquo;This is pretty interesting,…

San Francisco Job Search 2017

Saturday July 15 2017 On the plane, about to take off from HK to San Francisco, I get an email from Triplebyte saying that my email with Groupon has been cancelled. That&rsquo;s weird. I think about it, and realise I&rsquo;m staying in Palo Alto, even though I don&rsquo;t have any interviews there. The flight is pretty good, I&rsquo;m sitting next to a little kid and have lots of space. When I…

Bank Statement Converter - Revenue Numbers

I wrote a post sharing the latest revenue numbers for Bank Statement Converter.

Hacking Through the UI

Let me tell you the story of my first ever business meeting . Porting Hopsee at IC Studio Back in 2016 I worked at a start up called IC Studio. The company had a strange business model. We would partner with early stage start up and help build their products. In exchange for building their products, we would receive a bit of equity in the company. Instead of providing money to these companies, we…

Project Management Sim

Click here to try out Project Management Sim.

Hiking to Sea Ranch

Back in April 2021 me and some friends tried to hike from Mui Wo to The Sea Ranch. Sadly, we got 95% of the way there but couldn&rsquo;t figure out how to get from Tai Long Wan over to The Sea Ranch. Yesterday we decided to have another go at it with someone who has been there multiple times. The Sea Ranch Made up of 20 four story villas. Construction completed in 1979 and most of the apartments…