Skip to content

What I Planed to Do

A Word of Caution (2024)

This was a very old draft post I polished and published for the completeness sake. It is interesting to see what I think was a good projects to do 10 years ago. (Added 2024-10-01)

It is great to have some plan, right? Over next few years, I planed to challenge my skills by various independent projects, which I will list here in no particular order. Some of these projects are very hard, yes, and I am not even sure if I can complete them all (some may very well over my skill), but all of them will be a very good challenge.

Game Development

  • OpenTTD-like game – I don’t know about other, but while OpenTTD itself is already very good, I find it lack a lot of things that is essential if you aim for realistic gameplay. Mainly, the scale isn’t realistic at all. (C++ or Java project, 3D Graphics)
  • Harvest Moon Fan Game – Okay, it is actually just farming simulation game. For computer nonetheless. The closest game to what I have in mind is probably Stardew Valley. (C++/Emscripten project, 3D Graphics, Sounds)

2024 Status

In 2017, I contributed a feature called “Scheduled Dispatch” to OpenTTD JGR Patch Pack. I got the idea and did the initial implementation. Once people realized how to use it, it has been a hit and has matured a lot. I cannot really claim credit beyond coming up with the initial idea and initial implementation.

I have several drafts and plans for the farming simulation game, but I don’t know when I will be able to find time to actually do it.

Web-based Game

  • TypingMania – okay, this is already probably done, but I am migrating it to either Canvas or WebGL. (Canvas/WebGL/Web Audio fundamental)
  • osu!/DJMax/O2Jam-like game – but with dynamically generated beatmap using Javascript Web Audio API (WebGL/WebAudio intermediate)
  • ASCII-art based game – probably Airport game or some silly RPG like CandyBox/CookieClicker. (DOM?)

2024 Status

TypingMania was rewritten in 2020, but still with DOM, as it is easier to deal with HiDPI than using Canvas/WebGL and I want crisp text for the game.

Programming

  • Lite IDE – basic IDE written from scratch. Aimed at beginner. But this may as well evolve into sophisticated editors, who knows? (node-webkit/HTML5/nw-gyp)
  • Heavy IDE – no need to say more (Java/IntelliJ Platform)
  • Perhaps some compiler? (Assembly among other things)

2024 Status

Seems silly to do any of those things when VSCode is available now. Back then there were still a battle between Atom and Sublime Text.

Web Platform

  • irccloud-like clone – because IRC is freaking important. And it doesn’t look hard. (Javascript, perhaps Node.js)
  • BitTorrent tracker – again, this look interesting (Node.js, perhaps)
  • Otaku-culture based
    • Manga reader – look easy enough to learn AngularJS (Javascript/AngularJS)
    • Javascript Subtitle Renderer – not probably really related only to otaku-culture though (Javascript/Canvas)
    • Streaming system – Again, not probably related to just otaku-culture. (C++/x264/ffmpeg)
  • Online Programming System (all-in-one system) (C++/Javascript/low-level/GUI/etc)
    • ACM-like
    • Online Judge System
    • Learning System – Basic: Khan Academy CS/CodeAcademy; Advanced: Specialised Topics
    • Online evaluation/Online IDE

2024 Status

  • IRC is dead. Long live IRC. It’s discord now.
  • I no longer really use BitTorrent so…
  • Manga reader: I forgot I did HTML version of this before. But now I just use CBZ app. Way easier. Also, AngularJS is dead.
  • JS Subtitle Renderer: Still interesting from a technical point of view. But I no longer really do subtitling as a hobby, and there are several implementation of web ASS subtitle renderer.
  • Streaming system: why bother now?
  • Online Programming System: still on my roadmap, but the low-level is kinda all using isolate now.

Productivity

  • Avisynth+ – well, I am actually already doing this. (Assembly/C++/etc.)
  • Avs-based Video NLE GUI – one that doesn’t suck. When I do editing, I actually find that a lot of things are easier done with script, and vice versa. So Avisynth-based editor should be ideal. (C++/GUI/Video)
  • Audio Program – might or might not do, whether I can find other application I am satisfied with before (C++/GUI/Media)
  • Image Manipulation – because it looks interesting after doing video processing (C++/GUI/Image Processing)

2024 Status

I no longer really dabble with video processing and Avisynth+ is dead. Other app kinda has decent free/OSS app now.

Yes, that’s a lot. Yes, I doubt I will complete them all. But it is always good to have roadmaps for yourselves, especially if you are young and still learning. If you look closely at what I plan to write these applications in, you can see the patterns:

  • Javascript: It is undeniable now that Javascript will not ever die. It is standard of web client-side programming, and that’s unlikely to change anytime in foreseeable future.
  • Node.js: While I am still not sure if this will actually get mainstream like Python, the technology and innovation itself is outstanding. The only thing I find lacking in Node.js is probably Threading. IMO, its only competitor are JVM-based languages.
  • C++: Ultimate language. You can do everything possible in this language. I personally find well-written C++ the most elegant code of them all.
  • Image/Audio/Video processing: These are actually quite math heavy topics, but if done correctly I find result really rewarding.

Of course, everything combined ultimately land to “Online Programming System”.

Let see how many I can finish. Bet welcomed (but won’t be honored).