This post is copied from my Facebook page, but I think I should move it here just in case if I need to review it again or if this might help any lost souls who stranded here, or just for archive. Enjoy.

So, I was once had an argument with my friend about the most difficult language on Earth someone can learn, and he said that Chinese / Mandarin is the hardest, partly because we have to know how to pronounce it in correct intonation or phonology, and they consist of thousands of pictograms or kanji, in which each “word” have specific stroke orders.

I have learn and be interested in many natural languages and constructed languages for so long, but started to take this seriously just recently, about one year ago when I started to learn Japanese. I even can’t decide which one is the hardest language for me. Some languages take time to be learn because they’re a bit more complicated, but it doesn’t mean the language is difficult. It looks difficult because some people just looking at specific language but not trying to understand and learn other languages, usually they compare it just with their native language or L2 (secondary language) like English. If you say Chinese is hard, try learn Japanese or European language like German or Spanish for a while.

If I have to give my honest opinion, the most difficult language if you’re an Indonesian should be Bahasa Indonesia. We have used it daily for whole of your lifetime, but some of us may still have difficulty to manage which words we need to be used when writing a formal email to our boss or client, or when you have to write a scientific paper or formal reports or letters. Even some of us perhaps don’t know when to use “di” as a preposition or as a prefix, like “di rumah” and “dirumahkan”, comparable with some native English speaker who have difficulty to use “you’re” and “your”, Or something like when to use space in “tanggung jawab” and ignore them in “pertanggungjawaban”. Why? Simply because it’s not in our interest to learn and use native language properly.

How many of us got more than 90 out of 100 when we took an exam in our high school? I myself as far as I remember got only 80-ish in my final standardized test (or 90, perhaps? Not sure, clouded memory). Perhaps nowadays children tend to have higher score in English and Mandarin than in Bahasa Indonesia. If this happens, can we take a conclusion that Bahasa Indonesia is harder than Mandarin and English, or vice versa? If Mandarin is the most difficult, it should have lower number of users since lower number of people will be able to acquire it, but in fact it’s one of the most used language in the world, and it keeps growing nowadays. On the other side, Esperanto which is deemed as the most easiest language have only 2 million users worldwide.

In the end, it’s just a matter of interest, right? For now I have learned L2 language like Esperanto for about 100 hours, German for 20 hours, Spanish for 20 hours, Japanese since about 1 year ago (not noting my learning hours because I learn it a bit randomly), English for roughly 15 years since I was in middle school. and some minor languages As I have read in some polyglots’ blog, acquiring new language is easier if you have already known some L2 languages, but honestly Japanese is the most challenging so far. Not the most difficult, but the most challenging, SO FAR. Anyway, here is the list of challenges I found in each language I have learned:

Japanese: it has a different structure compared to Bahasa Indonesia other language I’ve learn which is subject – object – verbs sequence. Have different writing system (katakana, hiragana, kanji) and multiple forms of word according to formality and time, and multiple reading for each Kanji character (kunyomi and onyomi) . But something make it easier because it pronounce consistently with it’s writing in kana.

Esperanto: almost no difficulty in this language, just a bit problem with the vocabulary, a bit different alphabets, and some prefixes. Mainly it’s a bit weird to speak in a constructed language that is so consistent in structure and grammar. If you have a basic in European language, this will boost your speed in learning Esperanto. Also Esperanto is from the word “esperi” which means to hope, which added with suffix -ant which basically means “someone who did the <verb>”, so it means “the one of hope” perhaps?

Spanish: Language with gender, like France and German. So, the cat can be “la data” (feminine) or “el gate” (masculine), and a sofa is masculine, no, seriously. Every verb has it’s own form depends on the subject, e.g, I eat: = yo como; she eats = ella come; we eat: nosotros (masculine) / nosotras (feminine) comemos; you eat = usted come (formal) / tu comes (informal); you (plural) eat = ustedes comes. LOL… And also “j” pronounced as “h”, so rojo (red) will be read as “roho”, just need to get used to this unique pronunciation. Also there is many more mysteries in it that I need to know since I’m a beginner.

German: Almost same with Spanish, a gender language, so a cat is feminine “eine Katze”, and a dog is masculine “ein Hund”. So what if they it’s a female dog or male cat? Screw you, because the grammatical gender is not a biological gender, so deal with it. Oh, did I said there are also gender neutral nouns? HAHA… Also verb-form depends on the subject (I drink = Ich trinke, you drink = Du/Sie trinkst, he/she drinks = Er/Sie trinkt, they drink = Sie trinken; and yeah, Sie can be used as she, you in formal, or they), and inconsistent pronunciation like English (perhaps since English is actually rooted from Germanic). Also am a beginner so I need to learn more before I can write down more challenges in this list but I think this should have make you think twice before learning this German, yes? No? Good, try it then, don’t let me discourage you.

Mandarin: Nah, this one is as challenging as Japanese, but should be easier since the structure is consistent and you only need to learn the Kanji, just have to learn the intonation or phonology of word when speaking and listening. See? Now I say it’s easy right? At least Hakka is my mother’s language so I have spoke it naturally as my L1 when I was a child, though I’m not used it as much when I was grown up, so intonation should not be a problem to learn.

Arabic: actually I learned it in high-school but not really into it that time. But why did I learn this in HS? Because it’s part of “curriculum” from my Bahasa Indonesia teacher who said we have to learn Malay-Arabic (Arab Melayu). Mainly the difficulty is the right-to-left system so far, but I will take time to learn this more in the future.

Elvish (Sindarin + Tengwar script): Yeah, this is from LOTR… Learned the writing system but have forgotten about it. This is a low priority language since it’s for fun. grin emoticon

Basically, every language is easy or hard depends on your interest in learning the language, but no language is the most difficult language in the world. Arguing about this matter is the same as to say which is the most delicious food in the world, you will not know until you taste it all, which practically impossible to do (considering for one language usually there are different accents, like food which use different spices). So if you’re really interested in a language. go learn for it. Even if the language you are interested in is used by minority of people, or specific group of people, don’t afraid to learn it because you have nothing to lose when it comes to acquire a new usable language. Take the course online, or from the language learning center in your place.

Just recently, one of my friend visited me and like always we had a chat about the gaming industry in Indonesia and IT problem in general. The topic mainly about the future of Indonesian gaming industry and some problems related to the studio. So let’s discuss about it.

I was once a server programmer in a game studio for more than 1 year. A friend (not the one who came recently) easily convinced me to join with this studio as a server programmer since I was really curious about how to build a server for multiplayer game, also I have interest in network programming since I was in the college but never had the chance to do the implementation until he asked me to join to help him build a server for the game he developed. Honestly I learned a lot from there, technically and also the background of Indonesian game development.

We know that Indonesia started to produce many games that have good quality, primarily in mobile. Several years ago, Indonesia’s video game company are just limited and dominated as outsourced from the big company overseas, as far as I know this happened when I was still a student in the college, c.a 2006. After the booming of smartphone in 2008-2009, the gaming industry was also grown with many development platform that developers can use. Android, iOS, BlackBerry and even Windows Phone. Many game engines — open source or commercial — appeared such as Unity3D, Unreal Engine, UDK (derived from Unreal Engine), MonoGame (open source version of Microsoft XNA). The number of developer grown because the easiness of using all those matured game engines, with no exception of Indonesia developers.

However, something is bothering me. Although the number of Indonesian developers grown, the prominent development choice are mobile game and some Adobe Flash based games. Now I wonder, where is the legendary MMORPG game that used to be in the news in early 2010, Nusantara Online? I just searched it in Google before write this post, and found almost nothing about that project anymore. Did the developer has been disbanded? Why did the project stopped after that much of publication?

I done some research on network based game in Indonesia, perhaps a game with real-time multiplayer feature that are developed for mobile or PC, but found nothing. Many games that are developed and using network feature mainly use it only to submit the score or progress, which can be easily made using web services API which many web developer without much knowledge of game development can made in relatively short time.

When I worked in that game studio, the game I worked on are a Flash based game. The first concept of this game are MMORPG where many people can interact each other, however in the middle of development, the concept was changed into simple online RPG (not massively) simply because the story itself doesn’t suit to be build into a MMORPG. The change actually can be handled with simple web service like the one I told above, however I insist to use network or socket programming so I can learn something from this project and also benchmark the performance when this system is connected by many players at once. Then it was prematurely halted in the middle of development without any good reasons. Although I believe the main problem was management and development process, I will not talk about it since the topic in this article is about the network game.

Since that day, I still have the urge to develop a MMORPG until now. I was once read an online discussion about Nusantara Online, there were too many bugs and the game itself lagged when being played. From what I read, it was primarily the problem in the client graphic engine. They used engine which are not primarily developed for video game, also since the game itself developed for so long it might also cause the engine outdated. Moving to the newest engine should be problematic especially when the API has been changed too much. Perhaps the other factor for the game performance are the server side.

Based on my experience, I can tell that developing the real-time server application for MMORPG is difficult technically. Here are some of the factors that I can tell:

The server developer must have knowledge not just in programming language, but also in tweaking the application so it can run smoothly when are being connected by many players.

The server developer also need to have a good patience and ready to be placed in development environment that basically just consists of console windows and text file for debugging the problems in the server side.

Server testing usually depends on the client. Even though if we can create automated test script, user testing still must be done from the client. Imagine when the developer need to recompile the application each time he found errors and execute the client binary.

Scripting language usually causing performance degradation, so the primary options for the server development are compiled language which dominated by C or C++ (and C# as I developed the application). As for as I know, C and C++ are not popular languages for development, especially in Indonesia, and the university never teach past the basic when I was in college. Currently many of scripting languages can be alternatives because they employ Just-in-time (JIT) compilation so the performance should be better, although it’s still fall far behind the compiled application.

Another resource is needed when you’re dealing with server and network. If the server developer has this knowledge, it even better since it will support it’s tweaking and testing effort.

Communication skill with front-end developers must be really good, and the willingness to document the server API because the server will surely getting complex from time to time.

Other indirect factor is the font-end developers, are they understand the concept behind socket programming or not?

Beside of all those factor, the teamwork and communication of the team as a whole are also important. The server programmer must know the design of the game so he can decide what is the best way to implement the functions, the project manager and game designer also must try find out the difficulty that might be happened when implementing something with the server programmer. So, that’s developing a real-time network game is really hard and challenging, and perhaps that’s why not much people or game companies want to try doing this.
I also had a chance to search a network game engine from Google. I found some of this so called “network engine”, however many of them are focusing in the client side, not the server side. Even if there are engines that promised to have server side one, I believe it’s hard to develop with, due to the complexity and performance limitation because you add another layer of processing with an engine. You also will have problem in tweaking since you don’t know the core process of the engine unless you learn the source code by yourself. In the end, one of the viable solution is designing and developing the server engine from scratch. If I have plenty of spare time (and good partners), I will try to continue my effort in creating one simple MMORPG, perhaps a web-based one because currently you can implement socket programming (not fully) with WebSocket protocol. I’ve done a little experiment with WebSocket and NodeJS but they’re still to early to be published. And well, the basic problem in WebSocket is latency since the WebSocket is TCP based where usually a real-time game uses UDP protocol. I also have a plan to open source it, perhaps it might be a good contribution for people who want to try to be a server developer.

It’s my dream to build a game by myself or by my team. Yup, as one commenters in one of my previous post, “keep dreaming”, then I shall. And I’m going to do it, and realize it! Hey, perhaps I will be the one who successfully create an MMORPG in Indonesia.

When I was 10, I always had that imagination that I was in a war and piloting an aircraft, which usually an F22 Raptor, then firing missiles to the enemy’s aircraft, then it exploded on the air and flew away to pursue another enemy which will end up with the same fate as the previous one. I usually modeled the aircraft with my left hand which flew around my house, and the missile with my right hand index finger. The fact was that I played much of the flight simulator named F22 Lightning when I was that age.

During mid and high school, I also has imagination that my school going to be a magic ground where some of my friends were magician with their own distinguish magic power, and the enemy usually some other people from other schools or just random people or creatures that appears from nowhere. I’m not really sure why I got that imagination, however I never told anyone around me when I was that age, or show anyone what my imaginations are like. Just now I find it’s funny that I can write about it in this blog without being too embarrassed, but well, that was what happened in my head.

Even today, I still has some wild imagination about this world, especially when it comes about magic and technology. I love how many medias describe what the magic is and how to manipulate it to do many good things and bad things around the world. With that so called magic, many people can protect other people around them, but still many people will use it for bad things, which cause many problems all around the world, and in the end there are many rebellion using technology. Actually, this topic around magic and technology has been produced in many movies, novels and even video games, however all of them usually represent the background story, concept and the mechanism around them differently.

I’ve always have that wild and vivid imagination that sometimes I wonder if I will start to make a new universe inside my head, and then start creating my own franchise, from just short essay, perhaps then growing into a short story, then into a full novel, perhaps in the end it will grow into movies and games. However, write out what is on my head is difficult since usually I’m busy with my work, and my imagination and thought will change immediately when it happened. Also, I’m not a novel reader, which may cause me to have difficult to chose words and writing style since I don’t have any reference for them. I even don’t know when I should do the dialogue or just narrative.

Well, it’s one of my dream that I can create my own universe and let people enjoy to “live” inside of it, like me myself enjoy to live in many of different universes like Final Fantasy 13’s Ivalice, Lords of the Ring’s Middle Earth, or Star Wars universe. What I need now is just time to write all what’s on my head, and learn how to write properly with good English rather than writing gibberish like this one.

Umm, I also need someone who can help me and encourage me to write properly, or to represent my writing into a drawing. Well, somehow I think to get a girlfriend who excels at literature or art so she can help me with this, but it’s just too idealistic and unrealistic to think about relationship for this matter. It’s also part of my life imagination actually. Hahaha. Nevermind.

Imagination is limitless, truly. What I need is just a little push and chance to show it to the world. Perhaps it’s embarrassing now, but someone who think the right things should not be embarrassed, right? Someday, when that time comes, I will not just stand still for sure, but not for now. Soon.

Today, when I was browsing the Facebook, I found an image that are posted by one of my friend. An image that’s so simple, it contains only several words in a simple white background:

An image that contains simply some words in simple background. You got my attention.

It was not the first time I read this sentence in the internet. Many people had posted it already, and usually it was posted by new employee in a company that have simple way of thinking, or perhaps I could say it’s too simple that it may make you look so silly.

The first thing to notice, by supporting this sentence, people simply blame other people that has been trusted by the higher-ups to manage his company, and the fact that you’re just a lower ranked staff in the company just make you think that every wrong decision that are made by these managers cannot be tolerated. If you really can do better to fix what’s wrong, why don’t you try harder to take the position and try to manage the staffs by yourself. Perhaps you’re the perfect manager that the company seeks, right? In fact, when you’re in that position, you will have to accept the reality that people will say the same things to you.

For me, people leave the company, not the managers. It’s just silly when people resign from their job because of several “incompetent” managers. Many other factors can affect someone to leave the company, which usually the workloads and salary, which I believe the primary reasons to leave a company. So what? It’s still the fault of your manager that you don’t get raise even after doing the work for several months? Hey, hey, just look around you, and be jealous to people around you who work harder and smarter than you so they get the raise in the salary, and perhaps also promoted to the higher position. The next thing you will do is blaming that person for being too diligent and smarter than you, and also the manager that can only see one person effort rather than you.

I don’t understand, why people use this excuse to give up their hope in a company. If you really don’t like the managers, be smarter, work harder, take their place, and rule the company in your idealistic dream. If you cannot, just leave it already, and find other workplace who you think is far more enjoyable and have perfect, nice, high tolerance managers that perfectly match your work style without any pressure and dynamic. It’s that simple.

Actually, I never work for a company, but I have work with many “managers” temporarily. I never find a really “bad manager” so far, just managers that have different way of doing things than me. I have also had some misunderstanding with some of those “managers”, but I always believe those misunderstanding can be fixed if I communicate properly to the managers. Every manager that have matured enough to do their work will accept the harshest critique even from their subordinates and try to improve their own behavior. Only the most stubborn and selfish ones that rejects any suggestion from the subordinates, and I have to admit it I have that one manager that qualified as an “asshole”, but still not convince me enough to leave the “company” or project just because that one unimportant person.

No matter how hateful you’re to your managers, they will not try to improve when they don’t know what’s wrong with themselves as long as you never told them. People are unique, some of them are sensitive enough to feel the change in their surroundings, some are insensitive that they don’t care anything at all as long as no one tell them their mistakes, some are really just “assholes” who take the authority to abuse their worker. However, if you think properly, how many companies that willing to hire and keep the later type of managers in their company?

So, before you judge that everything wrong is just your manager, take the time to think, have you do something to improve your manager’s quality? Or do you just like to blame your manager and hopefully they have telepathic skill to read your mind and fix the problems without you telling them? Or is it just you that are too weak and too easily depressed only by slight pressure on your workplace, and in the end you just feeling not worthy to be in a company that have managers who want many things finished faster than your current expected work pace? Or perhaps you’re the one that are too spoiled and too sensitive so you are not ready to receive any critique from people around you?

Sigh… People these day, blaming people too much without realizing what’s happen around them, or even within them.

Lately, if you read my blog entries, you will find that I struggle with my work project that seems like never-ending project. The project that began about a year ago and should be completed in about 4-5 months is postponed until now. Though I know the main issues that caused the project was delayed were management and personal relation, I still wonder if there were still other factors that involved.

The main problem might be my skills and my own thought. I must admit that I have higher technical skills than my teammates, also with more experiences rather than them. Having skills don’t always mean you are at the advantage, unless your skills are not too far from your teammates skills. When you have much better skills, everyone will find you can handle everything for them and even the hardest problems will be able to be solved by your superior skills. In the end, they just do what they think they can do, even far before they hit the limit.

Sometimes, you have to take the blame from your teammates when something goes wrong. Take the example, you are a senior engineer in your team, and all your teammates are a newbie in the industry, with zero skills. Even when they have skills, the skill just limited in simulation which happened when they take the course in college. The first responsibilities as a senior in your teams is to teach them, from just the bottom of the sea a.k.a. the basics, to the peak of mountain a.k.a advanced. This should be easy if you teach them once, and they get all the things you teach them before. The problems happen when everybody have different processing speed, the ones who are smart enough can learn fast, but the unlucky ones will have to stay behind. And usually it will be your fault if you leave your teammates behind.

You have better experience to them, so with better experience you are the perfect figure for them, and should not be fail when doing anything. Fail is for the newbie, success is for professional. Yeah, as if experience assures your success 100% of times. I can give you that 100% if you give the logic problems that I can always control, however when it comes to projects which have to deal with humans and their activities, even the most experienced people might still meet failure. Of course, they tend to have strategy to prevent and to mitigate the risk, but risks are still risks, which might or might not happens.

Well, that’s what I feel as a senior, but there is similar matter with worse condition: someone who doesn’t have experience and no skill, but still confident enough to blame you for everything without looking at the other factors that may cause the project fail, when at the same time place a blame to him / her self because he/she doesn’t push the teammates enough to do the best they can. Hey, you are not the one who should responsible and now after placing blame to other people, you blame yourself too? If you really want to take blame that much after blaming other people, why don’t you try to position yourself in that people place before blaming those people???

Okay, I need to calm my self or I might write bad things here. Sometimes I done the exact same things though, blaming people, and then feel guilty, sooooo… nevermind, it doesn’t matter.

Sure being skillful is nice, you can be proud by your skill, you can tell everyone that you are awesome, you can mock other people that they’re sucks at doing things (if you are cruel enough), you can sell your skills in the career life, and the list goes on and on and on… Even in the life-or-death condition, your skills may keep you alive when other people will say “good bye” first in this world, just imagine the zombie apocalypse. In reality, there is disadvantage when people have super high expectation about you, or perhaps some people might just use you for your high skills.

One more things that worth to note is that sometimes I believe I have all my skills simply because I’m a prodigy in this and that. Ughh, I must admit that this thought is the worst thought I always have. I’m in my mid 20 and still think I’m a prodigy? Being skillful is somehow burdening for your social life, and now to think myself is a prodigy, it’s like I take challenge myself far deeper.