Monday, September 23, 2013

[HobbyRPG] tolua++ and menus!

This is turning into some sort of development blog, but from my perspective. Anyway, since LUA and UI were pretty big stuff we intend to add for this sprint, progress was seemingly slow due to time needed to research. I almost went into a huge hole of creating our own UI system but Dom managed to save me by just looking up cocos2d documentation -_-. I think when I figured that I could reinvent the wheel, I would just go ahead and do it without consulting Google or look for existing implementations.
Anyway, a not-so-glamorous progress to motivate ourselves!


For those who can't see the changes, I have neatly boxed them in red, since they are all code-based changes. Dom already told me a bit on how he intends me to use the UI, so I'll work on it once I can find better art. I'll try to follow his idea lol. 

LUA binding is a bitch. Well, it isn't once you know what's happening, but when you have no idea wtf is LUA, it's a bitch. cocos2d-x comes with tolua++ support, and I had no idea what that meant until I spent a couple of hours reading its online reference before I sneezed myself to bed on Saturday night. I felt super terrible yesterday, so terrible that I gave up on implementing it. Today I sneezed less, so I managed to get it working with a few good guesses. 

The documentation online for tolua++ is pretty heavy read for those who don't understand what's going on. Examples and tutorials are almost non-existent; in fact, the best tutorials I found were in Chinese or in Japanese. I totally gave up on the Chinese one. The Japanese one is easier to understand thanks to the existence of katakana. After seeing a few code snippets here and there, I finally figured it out. 

In a gist, tolua++ basically takes in a .pkg or .h file and generate a .cpp file with a function for you to call in your program. Then you just grab the lua state in your program (by right from tolua++.h, cocos2d-x has a wrapper around it) and throw it into the function that tolua++ gave you. I'm too lazy to explain in detail, but here's some poorly made step by step screenshots on how to expose a class to LUA:

First, get tolua++ to run on command line! Download the tolua++ executable and let adjust your Environment Settings' PATH variable to point to it. You know it's working when you open your command line and type "tolua++". The help page will appear:


Go to your project's root and create a .pkg file like so. Note that it looks almost like your .h file. These are the functions you want to expose. 


I must emphasize that the file included in the $cfile line MUST be accessible from the .pkg file's location. If not, tolua++ will complain.  Finally, just run tolua++: 


And voila, if there's no errors, you should magically have a file that looks something like below. If there are errors, well, just try to resolve them. Remember to Google for help (when in doubt, just Google the whole error message).


Add this to your IDE and pray that it works. If it doesn't, you screwed up somewhere in the .pkg file. If you have trouble, remember to Google, ask stackoverflow.com, attempt to find the answer in tolua++'s online documentation and/or actually try to figure out and guess how tolua++ binds your C++ code (it's not THAT magical). 

Moving on, the red box is the function you should be interested in. Simply call this function in your program and pass the lua_state in. The next screenshot is a cocos2d-x example since they have a wrapper: 

And now, when I run my script it works! (script is in first screenshot).

After you have successfully done this, the entire online tolua++ documentation will suddenly make sense! *gasp*





Wednesday, September 11, 2013

[HobbyRPG] And it has began!

Remember the RPG game I wanted to make?


It took some time, but finally Dominic and I have something visible up ^_^.

This is using the awesome cocos2d-x and my native language C++.  This project is probably going to be very slow since we agreed not to think about monetizing or selling it, and use it as a side project to create the RPG we want to make, which is great since there is no pressure. We can't guarantee if we will get burnt out at some point, but so far progress has been really fun for us!

Honestly, coming out of Digipen showed me how much I really wanted to make an RPG. After over 5 years in studying game development, I have only managed to create a simple text-based RPG game, which was a fun experience. Unfortunately, RPGs are extremely tedious to get it right, so it was not exactly a viable option as a school project, or even for a game you want to sell. Over the past decade, we have only seen the RPG genre decline and decline, leaving only a handful 'good' ones which were mostly cult hits. Hmm, not exactly a good genre to throw money into.

With this, hopefully when we go into design, I can attempt to return to my daydreaming story-writing days. I used to write tons of stories and other crap for fun, but that was easily a decade ago before I picked up programming and pursued to have a sciences foundation, easily obliterating my story-telling abilities and also my English. I can also go back to using Fruity Loops (which is now a full fledged...thing!) and fall onto my rusty music background to create sounds though I have much less hope of that succeeding. 

This project has sooooo much to be done, but it's so fun making each component work. Right now we are still working on the overworld system and already have animations, input and collision done. We also went to excel and write a macro to export stats into .csv files to reading into the game. 


What I like about this project is that it keeps my game development skills sharp, since I am not really doing development as much in my company.  We are also able to put into place what we have learn in our companies into this project, so it is a good learning experience so far.

Monday, August 26, 2013

MMO virginity

Here's a theory: There exist an MMO for each individual that is so magical that it stole from us something special that we could not replace. This special thing is dubbed as our 'MMO virginity'. I first heard of it one night many years ago while conversing with my good friend John. Here's a small history about how it came about.

Years ago, John and I were avid MMO hoppers. We would jump from MMO to MMO, playing and observing them. We were like nomads looking for a place to stay. In truth, we were not MMO hoppers by choice. We started off with a very infamous game known as 'Everquest'. Despite being younglings at 14 or 15, at we managed to get our hands on it and scrunch up money to fuel the monthly subscriptions. For those who do not know, Everquest was heralded by many to be dangerously addictive and is the cause back then for divorce cases, broken marriages and even death. This comic pretty much sums up our feelings.

Many probably viewed that comic as a joke, but it is exactly how we and, I believe, most 'Evercracks' felt after abandoning the game. Surfing the Fires of Heaven forums back then displayed numerous people who left Everquest desperately looking for a new MMO to feel their hearts of an empty void. After years of searching and searching and searching, these people including us gave up and accepted the fact that Everquest has broken their 'MMO virginity' and  'it's never coming back'. I sadly gave up too. I have ran from City of Heroes, to Final Fantasy 11, to Everquest 2, to Vanguard: Saga of Heroes, to World Of Warcraft, to Dungeons and Dragons Online, to Guild Wars, to a whole bunch of other random MMOs like Fly For Fun, DOFUS, 9Dragons, DC Online, Ragnarok Online...none came close. 

Here I am going to run through what I experienced as I jumped MMO to MMO for the past decade. Once your MMO virginity is broken, you start to view other MMOs very different and automatically become cynical of them. Below are just some observations about the 'ideal' MMO that breaks someone's 'MMO virginity', with real life examples.

You just want to exist in the game. The amount of WEEKS I spent in Everquest doing stupid almost non-progressive stuff is really astonishing. I remember camping a week at the entrance of Lower Guk for a stupid mask that can turn me into a Dark Elf. I remember running around my newbie area Kelethin (god I love that place) in my 40s doing nothing, chatting and leading newbies around like a tour guide. I remember going out of the way to help someone navigate around High Hold Pass. You just want to exist. It took me like 1.5 to 2 year to hit max level because there was simply no rush. Existing in the world is good enough.

And you want to spend every second in the game. I used to go to bed at 11pm and wake at 4am JUST to play Everquest till 6am before I have to go to school. Then I will return from school and play more Everquest until 11pm and wake at 4am again JUST to play Everquest...etc. It is a magical feeling to exist in the game. It's almost like a drug. No wait, it IS a drug. 

You will be overly defensive over that game. This is true for most games, but I believe it is stronger in the MMO genre. When people talk bad about it, you will start defending it. When someone claim some other MMO is the best, you will start attacking it. You are very likely to throw all logical thoughts out of the air if you are losing on the argument and eventually settle on 'don't diss it till you tried it'. I have done it before, and realized how dumb it is. It is as bad as forcing people to smoke or drink when they don't. 

"Want a cigarette?" 
"No thanks, it's bad for health"
"Don't diss it till you tried it!". 

Some facts are still facts. Smoking and drinking IS bad for health. The essence of raiding in WoW is the same as raiding in EQ1, and is the same as raiding in FF11, and it's going to be the same for all other MMOs that follow the raiding model. A person who has been through the raiding model can envision exactly what they are getting themselves into for a different MMO bearing the same model. This is probably why John and I settled on MMOs that do not strictly follow this model. For me, I'm just tired of raiding. (John eventually settled down on EVE while I continued searching and eventually settled on Guild Wars 2, both do not follow the raiding model).

When the game stops being the game you love, you will desperately look for a replacement. This might or might not happen depending on the game, but when it happens, it sucks. It's like something that you held dear for years is suddenly taken from you and you will go through all lengths to retrieve it back. You might attempt to return to the game, realize why you quit in the first place, and quit, only to return back again to get reminded again...until eventually, you demand to yourself that this mad cycle has to stop. That is, at least, how I dealt with it. 

Note that your chances of returning is increased by tenfold if your friend asks you to return. This is a trap 90% of the time. Unless something miraculous happens to the game like the developers turning it back into the game you loved, you are just going to quit again.  It is not a trap ONLY when you quit because of lack of community. This means that you love the game, but you have no friends to play with. It's NOT going to work if you quit because some developer decided to spearhead the game into a direction you do not want.

Just an example, I wanted WoW to be a PvP-centric game. The concept of PvE WoW seems retarded to me till this day. However, devs at my time decided to focus on PvE, turning our guild into a PvE guild, and thus causing some of us to leave the guild and eventually the game.

After quitting, you will be haunted by random good and bad memories. It is really easy to recollect all your experiences in your favourite MMO, because they are unique to you. Just saying that got my head searching for those memories, but I'm going to try my best and stop myself from doing all that. It's going to come haunting you and you will find yourself trying hard to bury it. I returned to Everquest last year because some game design lecturer of mine keeps mentioning HIS awesome Everquest memories and keeps bringing up examples of Everquest. Good thing the free server I found was dead at my timezone back here in Singapore. And luckily, not many people around me played Everquest, so I'm pretty safe from any more random attacks. 

I guess what I can take away from all this is that now I know why MMOs rise (like WoW) and what makes them fall (like Age of Conan). I know what it takes to enhance my online experience and keep me playing. I know what I want in an MMO, and what I do not want. Sadly, I do not have any more time to jump MMOs as I have started working and spend most of my free time developing, designing and playing single-player games (on top of practising the piano). Good thing is, Guild Wars 2 is good enough to keep me occupied for a long time unless something happens to my guild.

Anyway, this is just a random rant and my 2 copper. Take it with a pinch of salt. This applies to many other genre of games, but it feels especially important to note if you found an MMO you truly love to play. It is certainly a magical feeling that cannot be replaced and hopefully for you, it lasts forever.

Monday, August 12, 2013

August update!

Oh what? It's August already? Time really flies when you are working.

There's so many things to work on, so many games to try and play. Because I am mostly outside, I have been playing games that are more avaliable mobile like apps on my phone and my PS Vita.

There are lots of games I would like to talk about, but I trashed them because they are sometimes too boring to describe, even the good ones! I find it more and more pointless to describe games in words when it is much better to simply do a game demo, which would not be possible in the near future because of the money and time requirements. Due to all that, I doubt I will write that much reviews anymore unless it invoked some kind of interesting chemistry with me.

Aside from all that, I have been helping out and starting small projects on my free time. I intend to develop a small scale RPG game on mobile pretty soon now that I have finally decided to close my small HTML5 demo which I decided to turn into a small game but did not have time to polish. Hopefully it will kick off, but for now, it is mostly a hobby project.

It seems surreal to me that I really want to make an RPG game. After all, all the games I made in Digipen are hardly anything close to an RPG, which also means that my portfolio does not show my interest in RPG.

Still, I want to develop a RPG more than anything. It is the genre I grew up with, might as well do it now that I can actually do it.



Monday, July 15, 2013

Review: "Antichamber"




Antichamber. Hmm how do I start? When I was at PAX last year, a shooter puzzle indie game with really simplistic graphics caught my eye. I took a glance and saw Antichamber, and players screaming "WTF IS HAPPENING?!" while they play. I tried it and I felt the exact same "WTF" moments for each and every puzzle presented to me. I was hooked and looked forward to its purchase.

Fast forward to Steam Summer Sales today. I saw Antichamber and instantly bought it. From a very matter-of-fact perspective, I think it's at most a decent puzzle game. I was at first caught off guard as I did not know that the game focuses on exploration. You basically go room to room, arranged like a maze, and try to solve each puzzle. If you can't, either you are not trying hard enough, or your 'gun' does not have the ability to solve. Your 'gun' basically manipulate small coloured cubes, and its ability get stronger as you progress. That's it really. Very simple idea. Fantastic level design around that idea. 

But let's not sing too much praises for the game. When the game fools with your mind once, you'd think it's amazing. However, if it keeps using the same trick, it gets monotonous and you will eventually 'accept' the amazing as something norm. That, I feel, is the biggest problem I have with the game. After it screws my mind with disappearing walls, floors, exchanging entrances, exits, teleports, illusions, teleports with illusion...it gets old. I would say that it is more of a genre problem than a game problem though. Imagine playing Portal without narration or story. There is no motivation for me at all to complete all the puzzles. 


One thing I would definitely change is to put the 'hints' or 'words of advice' to the puzzle at the START, not at the END of it. As I complete each puzzle, seeing the 'words of advice' at the end felt like the game is mocking me. I understand the designer's perspective though. I'm assuming he wants us players to get through the puzzles with our own hands and conclude with 'sayings' so that we will learn more about life. A novel idea, but it is just not working out for me. This is because all these 'sayings' are common sense, like most 'sayings' of the world. 

"The world looks different from the other side."

"Old skills are useful after we have learned new ones."

To me, all these abstract sentences hold no purpose. It's like me telling you "The space is black" and people start explaining it like "Oh it's very true! Black symbolizes nothingness, which can be read as having unlimited possibilities...etc". It's abstract! Like for programming, abstract code means nothing on its own unless some other guy decides to use it and interpret it in his own words, giving it more meaning. By itself...well the space is fucking black. 

Anyway, Antichamber is still a game worth playing and buying. I know that not many are going to share my opinion, and I can totally understand why. If I were able to look past these small little things, maybe I would be able to complete the game in one run. The level design is fantasic. Did I mention that the level design is really good? Oh The level design is really good! 

However, for some reason, prolonged exposure to the game gave me motion sickness, which never happened to me before =(

Monday, June 24, 2013

SEA Majors 2013 afterthoughts


Okay this is going pretty much going to be a rather long post with not much direction, quite a bit of storytelling and possibly tagents. It's been forever since I blogged about fighting games, which is funny because fighting games are a big part of my life growing up, as compared to other genre of games. The thing is, I get really deep into fighting game technicalities but never tried to go far as a player. This is because I see really talented and smart players around me, who has better reaction, sharper wits, stronger fundamentals and sometimes plays the game more than I do. It developed a mental block telling me how weak I am that stemmed from the CVS2 days, to my Guilty Gear days and eventually the glorious SSF4 era. That's why I never blog about fighting games; because it won't be about the game, more of a constant whining about my incompetence, praising other players, and pointless 'maybe I should have' statements without much solid ground (If I think I should have done something, I should be hitting training mode instead of stating it over a blog).  

When SEA Majors 2013 was announced, I find myself wondering if there is a point for me to spend $40 to take part in UMVC3. It bugged me for a whole week before I signed up. Okay I'm going off to a tangent here. You see, I have not been serious about fighting games since at least 5 years ago. That was around the time when I started taking a relaxed mentally at fighting games and began to realize all the dumb crap I have been wasting my 50 cents to at the arcades. However, it was a little too late. National Service came to took 2+ years away. I signed up for the craziest program under SIT to study at Digipen and that also took 2+ years away. That was also the time when I discovered and fell in love with Games development, which took up a lot of my free time. During that time, Marvel appeared and I picked it up casually because I find the concept of team building incredibly interesting as a gamer and as a games developer. 

So Marvel sort of became my main fighting game which I don't practice often...on average once a week. However, the fact remains that I have spent months searching for a team which I am satisfied with, which is Taskmaster/Spencer/Akuma. People who played with me over the weekends know how often I switch teams, despite not having time to practice. I still spend some my free time practising and playing Marvel, even if it's just once a week. Unfortunately at that time, I was in the mentality that I have mostly 'moved on' from fighting games and concentrate on my passion that is game development. There was a need to improve, but there was not much of a 'burning desire' to improve like I had back in the Guilty Gear days when I would spent hours and hours doing Baiken's tatami FRCs straight (do 10 straight, if drop 1, restart from 0. If completed, raise it requirement by 10, repeat). Nowadays I just play to practice combos here and there, and look for any interesting synergies between characters. I still love doing combos, finding out things and showing off, which is why, I think, I still play fighting games.

Then the simple question had to be asked, "Do I think I am good enough to participate in SEA Majors 2013?" To be honest, I didn't think so. I have never considered myself as a strong player (jokes aside), and I believe many others have the same opinion about me. I have horrible clutch, bad reactions and do stupid things. On top of that, I have a history of playing badly in tournaments, mostly because my opponents are way more experienced than me (CVS2 Revival tournament), or I am simply too new to the game (Guilty Gear VS tournaments). Not to mention I was usually placed horribly in UMVC3 BFFs. Results are still results. No matter how good I think I am, I have nothing to fall back on but bad results. This feeds to the mental block I had. 

But I won't know unless I try again right? I have nothing to lose and everything to gain. If I lose twice in a row and get 3-0'ed, so be it. What I really want to know is whether my Task/Spencer/Akuma team can do anything in my hands. It has given me good results in casuals, but I haven't tried it in a tourney (BFFs were somehow organized on Fridays when I'm not free), so what better way to find out than to participate in a major? On top of that, I have never been to a major before so this is great timing for me, before UMVC3 phases out. So I signed up, telling myself that I'm just going to do what I always do, no pressure, try my best, no unneeded risks, do simple combos that I can definitely do and see how far I can go. 

When I went to SEA major on Saturday, it was officially the first time I am showing off what I know internationally. Usually all my techs were known only to a few individuals who play me on weekends.  I played casuals with some players, and as much as I was impressed by some of their techs (those who play teams I have never seen before, always props to those people), they were impressed by mine. That made me rather happy. I didn't get to show my Tron team much though T_T

Tournament time came and I saw my brackets. I would face Mike Ross if I beat my first opponent SLX. I know it's going to be a battle of two fraudulents if we meet. I don't play the game much (as much as it is my main game) and neither does he, but he is still an FGC celebrity with great fighting game sense. The good thing is, I know his team, and he doesn't know mine. The bad thing is, he's using Hulk backed by drones, one of the few combinations I feel that will rape my one trick pony team that is Shield Skills + Tatsu. But all that does not matter if I don't beat my first opponent, so as usual, I expect the expected (which is to lose). 

SLX came up to me with an X23 team, backed by Akuma and Strider. I gave away the first match because I was so blur that I only considered his whole team's composition only when I see X-factor 3 Strider in my face. I took a breather and reconsidered my strategy. His team is extremely mobile and covers a lot more space than mine. His strategy is obvious, but very very hard to find a good opening. I have to pin him down somehow. That was when I started playing seriously, like really seriously, because I really wanted to win and face Mike Ross. He made a critical mistake in the end, and I took the game. I felt relieved, because SLX is a  pretty strong player who knows what he's doing (you can tell when both players are playing seriously) and his mixups are ridiculous when you let him do his thing. 

I got to face Mike Ross on stream. Admittedly, I was a little nervous because it is on stream. I don't want to lose like a silly idiot who eat Hulk's standing H, obvious drones mixup and happy birthday ice storms. I was behind Mike when SLX's friend told him that SLX lost. Mike was like "what happened?" and was responded with "stupid shield skills, and that Spencer damage".  What a happy stalker I was. Truth be told though, SLX also talked to his friend IN FRONT OF ME that he died to Shield Skills and he made that critical error popping x-factor 3 on his Akuma. Either I am very unnoticeable, or people in majors really forget random players fast, even if they were beaten by him. I mean, it's understandable that you win and forget the person, but to lose and forget so fast seems strange and a bit disrespectful to me. 

So I fought Mike. I won't say much to discredit him, but his Storm and Sentinel has good fundamentals. I played to my most fraudulent of abilities and we went really close and down to the wire. I made one small little error on my calculations and Mike robbed me of what was supposed to be my win on the last round. Of course, I felt salty, but those 5 games I really felt that I didn't do anything particularly bad, or anything particularly wrong. I don't think I dropped any combos too (maybe 1 or 2 weird ones). I really felt that I played my best, and that gave me insight on what I'm lacking. You can't get this kind of insight when you play casually, when you theory-craft or when you play with the mentality that you are just going to get bodied. It's ridiculous that it took me almost 8 years to figure this out.

I went on to yet again beat someone in my loser's bracket (someone failed to give me his name but I remember his face...he was using Arthur/Doom/Wesker and does weird things like hard tagging Wesker in after giving Arthur gold armor). He plays a solid solid Arthur to the point where I felt that Arthor IS his real anchor not Wesker. Luckily, I play Arthur anchor and casuals so I wasn't that afraid to deal with Chinese New Year super into XF3 into 10000 overhead attempts as compared to dark Wesker. It was obvious, however, that I'm finding it hard to concentrate on my matches after playing seriously for the past 2 matches. Maybe because I'm not used to it? I don't know, maybe veteran major-goers can give me some insight to this. I managed to beat him though, but got to fight SLX again.

SLX came up against me with a vengeance. Despite feeling a bit fatigued, I played my best again. SLX was prepared though. I felt like his strategy changed to a more space-control gameplay. I couldn't pin him down at all. When I finally managed to catch him, I had to snap Strider, which is also very hard to catch with my team since it has no vertical coverage. That when I know he figured my team out; space-control and come in from the air with a safe move. On top of that, he locks me down with Tatsumaki and Vajra assist. I couldn't figure out his adapted gameplay in time and I ultimately lost. And boy he looked so happy defeating me! That made me happy too. I felt a bit like a villain then.

Some players might brand me silly or lousy for thinking that winning 2 games out of 4 games in pools an achievement. But to me, it is. It felt that I can actually do combos and clutch if I put my heart into it. In all 4 games, I didn't feel that I short-changed myself by screwing up badly (the last part against Mike was more of a knowledge problem...'okay I know air blocking Hard Drive is correct...but what next...oh crap'). Still, it feels a little surreal and upsetting that I was literally one right decision away from the alternate universe where I beat Mike Ross and get to fight Don as if it's just another weekend in Tough Cookie. 

I am really glad I joined SEA Major 2013. It was a memorable experience for me, going up on stream, people actually cheering for me, impressed by me, giving me encouragement, not dying for free, not dropping combos, and not making as many dumb decisions as I am notoriously known for, a little bit of playing the hero (almost beating Mike) and a little bit of playing the bad guy (denying SLX). It also gave me a lot of insight implicitly about the state of the community. Yes, I'm a bit upset because I felt that I really could have made it out of my pools, but that actually goes way way way over my initial expectation. This major really helped me a lot in overcoming the mental barrier that I had for the last decade of playing fighting games. I hope no one else had to wait this long for them to overcome theirs.

Anyway I am really grateful for all the people who made SEA possible: the organisers, the commentators, the participants, the stream... arg there's just a really long list that goes on and on. Shoutouts to all of them. Looking back 10 years ago, the FGC has really come a long long way and it will last for many years to come.

Sunday, June 9, 2013

Review: "Monaco"



Monaco is a top down 2D colorful pixel art stealth indie game, where players choose different criminals to perform heists. Players can choose to complete the heist by themselves or cooperate with up to 3 other friends.

Monaco's story tells of 4 specialized criminals who performed a prison break and plans to escape Monaco. Along the way, they enlisted help from 4 other criminals to aid their escape. These 8 different criminals are the Locksmith, Pickpocket, Cleaner, Lookout, Mole, Gentleman, Hacker and Redhead.

Line of sight leads to importance of positioning
Stealth games are an interesting genre to me. I think it is safe to say that it is difficult to design one that is 100%  about sneaking aroumd. Usually, stealth games incooperate NPC-disabling aspects in varying degrees, from basic knocking the lights off enemies to permenantly killing them with a stab to the back to plain manslaughter. Metal Gear, Thief, Splinter Cell and Hitman all have the same trend. One of the reasons is that designers would want to empower the players, and empowerment is one of the most powerful ways to provide fun to the players. Not allow players to disable enemies seems rather counter-productive (not saying that it is impossible to create a stealth game like that; I totally believe that it is doable). But one must remember that disabling an enemy will trivialize that area of the level the enemy is at. As an example, if you kill everyone on a level in the stealth games classic Thief, completing that level will be a walk in a park.

Monaco did not move away from the trend. However, Monaco has a very strict limitation on this topic on disabling enemies. Lets throw in some game facts so that we can get a better perspective. The tools players can carry is limited; one tool per player, and each tool's ammo is obtained by collecting every 10 coins which are littered throughout the map. On top of that, only half the tools are actually harmful to enemies (weapons). Also, enemies can revive each other. This makes weapons cost-ineffective for the heists, espacially when the other non-lethal tools are really good (like the Smoke Bomb which blocks enemy line of sight, or the EMP which disables all nearby electronic devices like alarms or cameras).

Information relayed to players is clear and concise

This bring us to the next feature of the game. Monaco features 8 unique professions the players can choose to play. For a new player, I found that I have the most ease completing most of the levels with The Cleaner. Like I mentioned before, disabling enemies in stealth games can trivialize the level. It so happens that The Cleaner does this very well. He is able to disable anyone he touches as long as they are not alerted. After using him for the first time, I could never stop. Only on very specific scenarios will The Cleaner have trouble. In a nutshell, The Cleaner is generally useful in all maps because he can potentially get rid of the greatest threats that is common in them. The other classes are quite the opposite; they are useful on specific maps and can suffer badly if the map does not cater to their abilities.

The Locksmith, who opens locks faster, is good at levels where you have memorized the map and going for speed runs in places with a lot of locks. I do not have much of a problem with him as locks are one of the most common things you encounter.

The Pickpocket, who has a monkey that collects coins, is probably as powerful to me as the Cleaner as he has the potential to avoid the need to interact with enemies. He is easily my second choice to clear a level, should the Cleaner face difficulties. 

The Lookout, who climbs vents and stairs faster and can detect NPCs while sneaking or standing still, is useful in co-op matches because she can help other players detect enemies from hidden places. I do not use her much as her ability is really only good for escaping, and I try not to get myself spotted most of the time.

The Mole, who can destroy walls, might perform really well in levels with lots of walls to break as he can bypass certain obstacles. The only problem is that very few levels give The Mole this chance. Some levels can just simply shut his abilities down with good placement of NPCs and giving very few walls for him to break through without screwing himself.

The Gentleman, who wears disguises (a shield for enemies detecting you), is probably only good for running across security cameras. I have not found a security camera which I have problems bypassing with other characters though.  In my opinion, his ability is the most boring.

The Redhead, who will charm the first person who spot her (you will have to go out of sight to lose them), is very good or very bad depending on the level's NPC placement. I find her really annoying to use because if I charmed the wrong person, I would have to get rid of him as if I was being chased, in which case it is almost no different from getting chased in the first place. 

The Hacker, who hacks computers faster and can hack through power socket, is also very dependant on the level. This is because all characters can inherently hack through computers, so using the hacking mechanic is a common ability. The only difference is the The Hacker can hack faster and hack in more places, and again the extra places the Hacker can hack is dependant on the level (like if some wise-ass designer decides not to give you sockets to hack through). 

I have already mentioned about The Cleaner. So of course, the Cleaner has areas where it is problematic for him, like when there are too many enemies together in one spot. However, that situation is just as problematic for other professions, save maybe the Pickpocket. 

Hector is his monkey
But I must stop myself from going into a tangent about stealth games and its design. The problems I faced with each profession are just my opinions and I can see how each of them cater to different players (maybe people find unlocking doors fast better than disabling enemies, since if they can unlock doors fast, they have less problems running into patrols for example). In the end, because of its limitations of disabling enemies, I find myself sneaking and hiding, bidding myself time as an enemy walks by, more than actually trying to disable enemies (even for The Cleaner). 

Monaco is essentially a very well-executed stealth game. It has interesting mechanics, features and rather well-written scripts and dialogues before each heist (although it sort of went downhill after they met the Hacker). On top of that, it has a really good soundtrack! I would definitely recommend this game for everyone to play, casual or not.