Recent Blogposts of Product Release

Global Game Jam 2017 - E.M. Wave Jammer: Release Announcement and Post Mortem

Jan. 22, 2017, 1:42 a.m. Behind the Scenes Gamedev Product Release

This year, I've developed the game E. M. Wave Jammer. It is the world's first telephone game in Global Game Jam, which is playable by dialing a telephone number.

I FUBAR'd in last year's game jam. Fortunately, I did much better this year.

This game is for entertainment only, no political message intended.

Play Now

For Hong Kong SAR phone numbers, dial 54839953. For non-Hong Kong SAR phone numbers, dial +85254839953 with skype. We do not accept international non-skype calls to save our operational cost. This game has Cantonese(Press 1), Mandarin(Press 2) and English(Press 3) version. Please notice that this phone number is temporary. It will be changed after I've finished setting up my phonesite.

Rules

The game happens in Japan during Cold War era. In the game, North Korea is using advance electromagnetic waves technology for sending signals to Cuba. They are plotting to attack Japan. In the game, the player plays as the role of the commander of telecommunication department. The player is responsible for jamming the signals between them.

For the ease of command, Japan is divided into 6 zones. The electromagnetic waves from North Korea will propagate via zone 1, zone 2, zone 3, zone 4, zone 5, zone 6, all the way to Cuba.

The player is required to use limited amount of electricity to build jammers. Electricity are consumed for building the jammers. No electricity is required to operate the jammers. The more electricity you spend to build a jammer, the more powerful it is. For example, a 5W jammer can attenuate the signal by 5W.

The remaining non-attenuated signal will become military information end up on enemy's hand. When the information level reaches 100%, you lose. The information level is increased by the Wattage of signal received divided by the Wattage of signal sent. There is no way to reduce the information level.

The player starts with 20W of electricity. To generate electricity, generators have to be built. They generate electricity when signal pass thru its zone. For example, a 5W generator will cost 5W to build, and generates 5W of electricity.

Each zone can only have one structure(e.g jammer, generator). New structure building on a zone with existing structure will demolish the existing one. Structures cannot be sold.

After wave 6, there will be Accelerated E.M. Wave signal. It is able to bypass Zone 2, 4, 6. It is sent via Zone 1, 3, 5 to Cuba.

After wave 11, there will be Narrow-band E.M. Wave signal, which includes low frequency E.M. Wave Signal and high frequency E.M. Wave Signal. Ordinary jammers are half as effective against these signal compared with other signals. Therefore, the player is able to build LF Jammers and HF Jammers to defend against these signals. A 10W LF Jammer can attenuate LF Signal by 20W, Ordinary Signal by 5W, and cannot attenuate HF signal. A 10W HF Jammer can attenuate HF Signal by 20W, Ordinary Signal by 5W, and cannot attenuate LF signal.

After wave 16, there will be E.M. Wave from Cuba to North Korea, which propagates via Zone 6, 5, 4, 3, 2, 1 to North Korea. Accelerated E.M. Wave from Cuba propagates via Zone 6, 4, 2 to North Korea.

After wave 21, there will be FM Signal. FM Signals is immune to Ordinary Jammers. It makes non-LF, non-HF FM waves very troublesome to be dealt with because they couldn't be attenuated by ordinary jammers. Yet, HF and LF jammers are only half as efficient to deal with non-LF, non-HF waves.

Pre-Jam

Before the Jam, I've developed the hardware Dinbo Prototype B as well as its library libdinbo. I've also made a template for developing any telephone system based on this library.

In addition of the telephone system, I have also practiced using LMMS, Labchrip, Audacity, SoX, just all of the software that I planned to use. I also planned to practice Aegisub for making video subtitles. Unfortunately, I didn't have enough time and the Jam day had come. :(

First Day

Just like the last year, the 48 hours game jam spanned across three days.

In the first day, I've arrived at the venue, before the event started, I've found a bug on the library of Dinbo Prototype B that made it failed to detect DTMF touch keys properly. Fortunately, I fixed it right before it started.

After that, I've listened to the briefing. After the theme Waves was announced, I came up with this game design quickly. Since I was working solo in this jam, this process went way quicker than the jam of previous year. :)

Here is a photo of my game design document. As you see below, it is only one A4 page. It is poorly-organized because I'm the only intended audience of this document. :P

Design Document of E.M. Wave Jammer

Some of the features are strike'd out at the design stage because I foresaw that it couldn't be completed within 48 hours.

Here is a photo taken from day 1 of the event. Sorry for phone camera quality:

Day 1 of Global Game Jam 2017 in Hong Kong Jam site

There were many jammers in our Jam site, and the Hong Kong SAR was the 8th largest out of 700+ jam sites all over the world in 2017!

With the experience of last year, I won't sleep on-site because I couldn't. At the end of the day, I went to home and took a rest.

Second Day

Although I slept much better than last year, I still didn't sleep enough. Therefore, I woke up late. I started programming. Feeling dizzy, I took a nap after an hour of development. Then I woke up again and continue. To save some traveling time, I decide to jam at home this day because I was solo and I didn't need to go to the site to collaborate with my teammates.

With software emulation feature of the libdinbo, I was able to develop the game without dialing the phone number. It saved me some cost of calling the number.

With existing code base, the development went smoothly. I managed to implement the game play. After midnight, I started translating the game into Mandarin as well as English. I have also synthesized and recorded some sfx. Originally I also planned to make music and recording the Cantonese voice myself. Considered that I need to prepare for the presentation, I decided to drop these features and went to bed. All of the development works ended here. However, I still haven't deployed it on the Dinbo Prototype B hardware.

Third Day

I (almost) dedicated this day for preparing for the presentation. I decided to prepare for the presentation before deploying it to the hardware. That is because the deadline of submitting the presentation was very tight. And preparing presentation before the deployment can buy me a bit extra time.

I started with recording the gameplay audio using the voice log function of the libdinbo in its software emulation mode. It went quite well and I've recorded a 9 minutes audio. I had cut down the audio to 4.5 minutes.

Then I asked the volunteers about the time limit of presentation. Turned out that each team would only be given two minutes to present their game. Well, I thought that I had 5~10 minutes. :/

After that, I further cut down the audio to 1.5 minutes. Even the gameplay instruction were removed.

So how did I explain the gameplay? Simple. I used Libreoffice Impress to make some presentation slides to visualize the game play frame by frame. Then I played the gameplay audio and used vokoscreen record the voice and the presentation slides. I clicks as I record and play the gameplay audio. After that, I used ffmpeg to trim beginning and the end of the video. Then convert the video format to webm. Here is the demonstration video in Cantonese.

After that, I prepared another powerpoint file. I planned to use the powerpoint before playing the demonstration video.

Everything went well, except that the deadline was very tight. I had to do everything I said above within like 3~4 hours. Then I uploaded my video to the website of Global Game Jam and sent the powerpoint to the staffs. After that, I have deployed my program to the Dinbo Prototype B hardware.

Here is the presentation session(the guy who is presenting in the photo is not me):

Day 3 of Global Game Jam 2017 in Hong Kong Jam site

It didn't went very well when it was my turn. I thought that I could access a presenter's mouse so that I could show my powerpoint with animation. I thought that I could click the powerpoint myself. Unfortunately, the presenter's mouse wasn't working somehow. Then the staff of my jam site just random clicked his mouse, causing the slides shown up earlier than it was supposed to be shown. After that, the staff was trying to click on the gameplay demonstration video link inside the last slide of my powerpoint. But he forgot to enter presentation mode and couldn't click on the link. It looked very bad for the audience. :/

Nevertheless, the gameplay video was found to be funny by many fellow jammers. I enjoyed their laugh and applause at the end, and I earned a certificate of participation. :)

After that, I have introduced my final year project to my fellow jammers. Then I have interviewed some of them about my project. That is helpful for me to improve my final year project. :)

Finally, it was the closing ceremony of the event. As I have expected, I got no award because I'm solo. Apparently the sponsors of our site is reluctant to give out awards to solo teams. :P

Anyway, I have completed the game during the 48 hours. I have proven that libdinbo is working and I have shown my final year project to others. It is a great success compared with the previous jam.

Post-Jam

After the jam, I have talked about the event with people from other jam sites via the Internet. Someone who joined the site of Tokyo University of Technology shared an interesting photo of the site(photo used with permission by the copyright holder of the photo):

Unity Ramen, Salt Flavor with No Bug

Right. That's "Unity Ramen, Salt Flavor with No Bug". Here is the blogpost of the guy who have taken this photo. He leaded the development of the game Super Smash Tokyo in this event.

Apparently the jammers in Tokyo University of Technology site had more fun than we do. Instead of giving out awards to well-performing teams, they had a pizza party! And the award was the game itself that the jammers developed. It is a better match to the sprite of Game Jam.

What Went Well

I'm performing much better in this game jam than the last one. And this year is much more fun for me. Here is what went well:

  • Developed the first telephone game in Global Game Jam in the world! :D
  • Well-practiced before the Jam, making rapid development possible
  • Good time management
  • Being healthy after the jam
  • Completion of game within 48 hours
  • Did some public relation stuffs for my Final Year Project

What Went Wrong

  • Feeling alone. It's kinda sad to see everyone were working together, while I was working alone. Dinbo Prototype B is a part of my individual final year project. I had no choice because if I worked with others, my professor might think that the Dinbo Prototype B was developed by my teammates. :(
  • Less time to socialize with others compared with last jam(because I am solo. I couldn't rotate with others. I was busy working on my game almost all of the time)
  • Presentation screw up - not my fault. But I was still the one who got blamed by the audience :(

Notes to Future Self(May not be true for everyone)

  • Do not jam alone. It feels sad. :(
  • (for Hong Kong site only)Do not use powerpoint for presentation. Just use a video.
  • Perhaps try other jam sites. Global Game Jam is about the experience. It may be interesting to try out the Macau SAR one, the Zhuhai, Shenzhen or the Guangzhou one. And I think I can reach these sites within a few hours.
  • Perhaps try to collaborate with some internet guys from other jam sites. That could be fun. :)

Overall, The Jam of this year went pretty well. And it was a quite memorable experience. :)

Beyond the Game Jam

The Game Jam of this year is very special for me. It has some strategical value. As you may have noticed in my previous blogpost, Dinbo Prototype B will be a successor of the existing telephone system, Dinbo Prototype A. Dinbo Prototype B will be used for the following purposes:

  • Main purpose: Final Year Project
  • Side purpose: Upgrading the whack-a-mole game into a phonesite(you might noticed that the whack-a-mole phone number is taken down for preparation of this upgrade)

This game jam helps improving the code base for Dinbo Prototype B, particularly, the internationalization functionality of the code base was enhanced during the jam. In addition, it's also a good way to test whether the entire system works. If a game can be developed for this system, then it would definitely be possible for me to develop my final year project using the same system.

That says, my mission of Global Game Jam 2017 is accomplished. Now I got to work on my final year project as well as my phonesite. :D

Want to read more? A parallel jammer in Japan had made a blogpost of his game - Super Smash Tokyo


Whack-a-mole over Telephone: Part 1 - Release Announcement, Gameplay and Rules | 扑傻瓜現身大氣電波

Aug. 9, 2016, 3:02 p.m. Product Release WhackAMole 廣東話

扑傻瓜現身大氣電波 Sorry for not updating for a while guys.

Spent almost $100 on hardware and stuffs, worked for more than a month, Whack-a-mole over telephone is finally completed!

各位! 好耐無打廣東話嘅blostpost. 耗資陸佰港元. 動工參拾陸夜. 小弟嘅電話扑傻瓜終於搞掂喇!

Behold the gameplay(Cantonese with English subtitle)!

快D黎聽下隻game嘅示範啦!

Rules | 遊戲規則

The gameplay is simple. First, dial the number 5517 6408 in Hong Kong(does not accept international call, Cantonese only). Then, when you hear certain sound, you'll have to press certain key. The sounds and the keys are randomly generated. If you press the correct one, you get a score. When it reaches the threshold, the difficulty will be increased as shown below:

Level 1: Score requirement: 0; Three random animal sounds. Each requires the player to press a key.

Level 2: Score requirement: 10; Three additional random synth'd wave sounds. Each requires the player to press a key.

Level 3: Score requirement: 30; Three additional random voice of numbers. Each requires the player to press another key that is usually inconsistent with the number that the player have heard.

Level 4: Score requirement: 60; After this level, the player has to press certain key for every 5 sounds, regardless what is the sound that the player has heard.

Level 5: Score requirement: 100; Upon hearing any of 5 random sounds, the players has to press a key. Upon hearing another 5 random sounds, the players has to press another key. Upon hearing yet another 3 random sounds, the player has to press yet another key.

遊戲玩法好簡單. 首先打5517 6408(唔收國際電話, 唔收133電話), 跟住佢就會叫你聽到某D聲就要撳某D制. D聲同D制係隨機嘅. 撳啱加分. 夠分就LEVEL UP:

LEVEL 1: 所需分數: 0; 三個隨機動物聲. 每個聲要撳一粒制.

LEVEL 2: 所需分數: 10; 三個隨機電腦合成聲. 每個聲要撳一粒制.

LEVEL 3: 所需分數: 30; 三個隨機數字聲. 每個聲要撳一粒制, 而嗰粒制通常唔係你聽到嗰個數字嘅聲.

LEVEL 4: 所需分數: 60; 每聽到五個聲就要撳某一粒制.

LEVEL 5: 所需分數: 100; 聽到某五種聲要撳一粒制. 聽到另外某五種聲要撳另一粒制. 聽到另外某三種聲又要撳另一粒制.

If you press the wrong key, or if you're too slow, then you lose. If your score is the highest among everyone else, the score will be recorded.

如果你撳錯制或者撳得太慢就會輸. 如果你嘅分數係最高嘅話, 個分將會被記錄.

Alright! That's it for the first part of the blogpost. The second part will be about the technical details of this project. See you! :)

下一個blogpost會講解隻game嘅技術細節(只提供英文版本).


Now on Google Play! Poopie: Making Kim Jong Un Cry

Nov. 8, 2015, 1:09 p.m. Gamedev Poopie Product Release

Previously, I've released the web version of Poopie: Making Kim Jong Un Cry.

Today, I bring Poopie to Google Play! Behold feature graphic for the listing:

Feature Graphic of the game

Let's make Kim cry. Go pooping with your Android phone today!

The game is now available here


Poopie: Making Kim Jong Un Cry

Nov. 3, 2015, 3:20 p.m. Gamedev Poopie Product Release

Hey guys! I've just released a new game. Poopie: Making Kim Jong Un Cry!

It is an enhanced version of my Ludum Dare 33 Entry.

What's new:

  • More upgrades
  • Better graphic
  • Faster start off

Screenshot of the game

The graphic isn't very good. But it's already a big improvement compared with its preceder. Well, my art indeed sucks. But it's getting improved over time. :D So don't complain about it. :P

Rules(New)

  • Move you mouse to control the position of the bird/owl/whatever you call it
  • Click/touch to poop
  • Avoid lightning
  • Poop on people to make money
  • Upgrade with what you've earned
  • Poop on Kim Jong Un to win the game(For entertainment purpose only. No political message intended)
  • Stop pooping when police car is passing by. :P

FAQ: Why does this game has something to do with Kim?

A: Win the game to figure it out! :D

Play

HTML5 version is released. Android version coming soon is now available!


[WIP]Koloniigo - Early Access Version

Oct. 10, 2015, 6:08 a.m. Gamedev Koloniigo Product Release WIP

After two months of work, early access version of Koloniigo is finally available!

[NEW]Tutorial Instruction

A few users has reported that this game is confusing. Therefore, I add a tutorial instruction section here.

  1. Click a red building
  2. Click the attack button on the top-left corner
  3. Click a blue building to send population to it.
  4. You'll see that a red ball is spawn. With the bar changing color
    • The red ball is the population to be sent
    • The bar shows the amount of population inside a building/moving population
  5. Click the next turn button
  6. Repeat until you take control of all buildings

Rules

  • Objective: turn all the building into your color(tutorial: red; random map: red; networked game: either red or blue)
  • Turn based game. It's your turn, enemy's turn, your turn, enemy's turn and so on.
  • In each turn, send population from your building(s) to other building(s). When the population a enemy's building drops to 0, it's yours.
  • Each building has special function shown in speech bubble, e.g. double defense, triple attack, etc.

Mini FAQ

  • Q: What are the color bar above the buildings?
    • A: They're the amount of population inside a building. white~red = 0~10; red~orange = 10~20 and so on. Double thickness means 100+, triple thickness means 200+ and so on.
  • Q: What does the icons in the speech bubbles do?
    • A: It tells you the special function of the building. You can't click on them
  • Q: I've controlled all of the buildings. Why I still can't win?
    • A: It takes time for population to move from a building to other building. The moving population of opponent is hidden by default(unless you got a beacon). If it happen, it means that there're still moving enemy population in the map. Those moving population might be able to take back the control to your building. That's why you aren't regarded as winning until all moving enemy's population is died out..
  • Q: How do I beat tutorial 3?
    • A: First, you need to take control of blacksmith(the thing that looks like an oven). Then make use of the blacksmith for attack because it has 3x attack compared with other buildings.
  • Q: The game freezes in networked game. Is the game broken?
    • A: No. If you can do nothing in networked game, it means that your opponent is making decision on his turn. You have to wait for your opponent to click the next turn button. So just wait.
  • Q: I can't send population in networked game.
    • A: First, ensure that it's your turn. There should be a green check button on the left-bottom. If not, just wait for your opponent to pass the turn to you. Second, in networked game, it may be possible that you're blue instead of red. So click some blue building to check whether you're blue
  • Q: I've more question!
    • A: Ask wherever you can see me. e.g. reddit or freenode

TODOs

  • Change the graphic. The current graphic looks ugly. I'll probably find an artist for help
  • Networked game
    • lobby
    • Multiplayer vs multiplayer
    • Network disconnection handling
    • Tell whether you're red or blue at the beginning of the game
    • Display something interesting when it's opponent's turn
  • Bugfixes :P
  • More gameplay elements

Before doing these, I think I'm going to update this website first. I'm planning to merge this blog with my homepage. and I got tests and exams to do recently. I think I can't work on this game for a month or two. :( Anyway, don't worry. I will complete this game eventually. My project completion rate is pretty high. :)

Click here! to play!