Status update

It’s been a while since my last post here, about 3 months. Worth noting that the lack of a message is a message itself.

First of all, Rot Gut’s status.

We’ve developed a multiplayer version of Rot Gut (lost the count, is it 4th time?) and tested with a lot of peers and feedbacks have been great. It has game modes, destructible environments and all that cool stuff that I wanted to do for so long and could not do in previous games. So that’s great there.

Then we’ve decided to add online multiplayer and it’s been my worst nightmare so far. I’ve dabbled with a lot of networking techs from UNet, to Photon, to Forge, to uLink, to etc just to find out none of these work out for us.

Each of them has a problem in it’s core that prevents us to develop our game on it.

This project introduces challenge after challenge from it’s start and this online networking has been the hardest that I’ve faced my whole life. Truly a beast that doesn’t want to get tamed, no matter how hard I try.

On the bright side, if there is any, I’ve learned much about networking and multiplayer and it’s been adventurous on that side.

Personally speaking, my depression got worse and I’ve been changing meds and none of them worked out so far. It’s very hard to be alone, deal with depression (among other things) and face a project that is hardest you’ve faced so far and there is no guarantee that would even make a single buck.

I find myself more and more trying to escape this craziness called “Indie Game Dev” and before it gets even more late to find a “job” that pays. But I can’t. I simply love it so much and spent so much time to just be able to leave it be. Maybe it’s the right choice.

I’ve used to thinking of quitting before but the frequency has gotten so much higher than before. And it’s not good.

That’s all for now I think.

Lost Highway

Can’t find my way
Can’t find any ray of hope
No matter how hard I search
And how much pain I take

The demons inside,
The demons inside,
They are celebrating,
They can almost see their triumph,
Finally.

Global Git Ignore file for Unity projects

This can be used as a base as of Git Ignore file for Unity projects:

/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/

# Autogenerated VS/MD solution and project files
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj

If you have lots of Unity projects, you can add/use it as Global Git Ignore file instead.

لطفا به یکدیگر فرصتِ بودن بدهیم

این متن رو مرتب معتمدی نوشته و به نظرم خوندنش به صورت روزانه و دوره ای خیلی برای ما واجب هستش. پیشنهاد جدی میکنم این متن رو٬ حداقل یک بار٬ بخونید.


به یکدیگر فرصت «بودن» بدهیم

بعد از سفر ۳۶ روزه به خارج و مشاهده‌ی داخل سر فرصت، این نتیجه به من رسید که ما در ایران، شایدم جهان، اسیر یکدیگر هستیم. از خانواده گرفته تا دوست و ملت و دولت.
ما به معنای واقعی کلمه «درگیر» همه هستیم جز خودمان. رونق فیس‌بوک و وایبر و اینستاگرام هم گواه بر همین است.
ما با نظر‌ها، توجه‌ها، کمک‌ها، هم‌دردی‌ها، قضاوت‌ها و فضولی‌ها و انواع سیخونک‌ها، یکدیگر را در این مملکت زندانی کرده‌ایم و نه به هم و نه به خود، اجازه‌ی بودن نمی‌دهیم.
اجازه‌ی آزاد بودن، بی‌دین‌بودن، کسخل‌بودن، گیاه‌خواربودن، عجیب‌لباس‌بودن، همجنس‌گرابودن، تپل‌بودن، کچل‌بودن و هر کوفتی بودن.
ما حتی اجازه نمی‌دهیم پارتنر سابق‌مان که دیگر با ما نیست، با کس دیگری وارد رابطه شود. یعنی او حتی بعد از رهایی از بند ما، آزاد نیست؟
به کره‌ی زمین قسم که او آزاد است.
ما اسیریم، که حتی چیزهای تمام شده را ول نمی‌کنیم.

ول کنیم تا ول شویم
می‌دانم که تقریبا در این خاک، امری‌ نشدنی‌ست. ولی حداقل سعی که می‌شود کرد. از نظر ندادن و نظر نخواستن شروع کنیم و تمرکز خود را به سمت «داخل» معطوف کنیم تا «خارج». موتور مقایسه‌گر و فضولی‌گر و قضاوت‌گر را خاموش کنیم و به خودمان و دیگران «فضا» بدهیم.
جا برای همه هست.

اول اشتباه خود را درست کنیم، بعد دوباره اشتباه خودمان را
وقتی به آموختن یوگا یا هر راه و روشِ «درست‌کن» مشغول می‌شویم. اول از همه می‌فهمیم که در هر ثانیه از بودن حداقل یک اشتباه داریم که باید درستش کنیم. یا طرز نشستن و ایستادنمان است، یا تنفس، یا نگاه یا طرز «تفکر». که معمولا همه‌ی این‌ اشتباه‌ها را در لحظه داریم. پس چطور انقدر «به‌کار» دیگرانیم؟ چطور انقدر مشغول «نقد و نظر» هستیم؟ گیریم «سازنده» هم باشد. نخواستیم. خودمان را اگر بسازیم، سازنده‌ترین کار است. خیلی هم وقت و انرژی می‌برد. شش دنگ حواس را هم می‌بلعد.

حواسمان به خودمان باشد
از اره، اوره و شمسی‌کوره بکشیم بیرون و بکنیم در خودمان. خیلی سفت!
در نهایت و در همین لحظه، همه‌ی ما تنها هستیم. این‌را بفهمیم و به دیزاین و «طراحی تنهایی» بپردازیم. از محکم کردن چارچوب بدنمان تا شل‌کردن و رهاساختن سیالِ فکر و ذهنمان. مطمئن باشیم که عزیزانمان بدون آنکه بگوییم، چون داریم «انجام» می‌دهیم، از ما یاد می‌گیرند و ما خواهی‌نخواهی تاثیر سازنده‌مان را به اطراف منتقل می‌کنیم.

سفر خارج برویم
نه حتما خارج از کشور، ولی به خارج از خانه، خارج از شهر، خارج از مغز، عقیده، تعصب، باور و خارج از هر چارچوبی که درون‌ آنیم برویم. با این کار، فرصت سفر به داخل را از طریق دور شدن و مسلط شدن و مشاهده کردن پیدا می‌کنیم. البته اگر باز در آن خارج حواسمان به دیگران نباشد.


لطفا به یکدیگر فرصتِ بودن بدهیم.
تا به خودمان اجازه‌ی بودن بدهیم.

Better Debugging Android Unity Games When Deployed

There is something called the logcat, which is a combined message pipe from all applications. To read it you first need to locate the adb tool that comes with the Android SDK. Depending on which version you have of the SDK the adb is located either under <sdk>/tools or<sdk>/platform-tools.

Simply start it like this:

$ adb logcat

and it will start printing out everything that is going on on the device. To limit it to only show the output from inside Unity, you can try this:

$ adb logcat -s Unity

or, to get a little bit more info about what’s going on:

$ adb logcat -s Unity ActivityManager PackageManager dalvikvm DEBUG

If you wish to report a bug or otherwise ‘quote’ the logcat, you can dump the complete logcat to a file like this:

$ adb logcat -d > logcat.txt

A blog, a post (and few other stories)

Some big stuff happened like Rot Gut getting Greenlit and some other things and wrote a big draft on all this but I rather talk about this rather than brag on.

There are several sources of wisdom that are not “single-use”, meaning that you can read and re-read them after some time and they will fruit deeper and more valuable each time (Replaybility value?). I’m sure, or at least hope, each of us has at least one in each category that is important to one self and I like to share one of mine with you.

The source of wisdom that I’m about to share is nothing but Dead Mage studio’s lead Amir H. Fassihi‘s personal blog, cleverly called “thought++“.

I find myself getting back to this blog for several years now and after reading new blog posts, I get back to the old ones and re-read them and even though I know some of them by heart, I find a lot of wisdom hardened into them and it’s always been a mesmerizing experience.

I strongly suggest you do the same, especially if you are into game development or similar fields but there are enough content for everyone and any discipline, IMHO.

If you “do not have time” to do that ( *sighs* ), I suggest you to at least read this particular blog post, “The Rare Breed“. There are 20 mandatory and 3 optional attributes listed by the man of the hour that is essential to any candidate for the project they were head hunting at the time but it’s a good measure on where you are in your life, no matter whether you are into programming or not.

I’ve printed the list and pasted on my wall in my room and read it everyday to my shame, just to realize how far I am from the person I should be, and clearly am not.

Useful ADB Logcat parameter for Unity developers

When logging device logs with ADB’s logcat, it’s hard to see your app’s logs between seas of device’s logs, so it’s better to filter out whatever is interested to you when debugging an app. So in case of Unity, you can use this switch to filter out everything but Unity’s Debug.Log commands:

adb logcat -s Unity

Painfree way to add a PATH to Mavericks

With the new Mavericks, the traditional ways that mostly one will find out via Googling in order to add a PATH to environment list of OS X, won’t work. Apple secretly moved to a folder called “path” in “etc” folder to store system paths but there is a folder called “path.d” that you can store your paths there and it will work like a charm.

So, simply create a text file, add your path inside it, save and move it to “/etc/path.d” and reboot/relogin and you are good to go.

I’ve used it to access platform tools of Android SDK but it can be used for anything.