WARMACHINE

New game we made for Kenney Jam 2021.

LOVE ME NOW

A game about shyness! Made for #MixAndGameJam 2020. The theme was “Mixing Genres” and we’ve tried mixing platformers with super old school text adventures.

Propagating Events in Unity

By default, events are “consumed” by receivers so they would not “propagate” or “bubble” to other objects, in those cases you can attach this code to any object you want to pass events to others. (Make sure you change events you want to bubble in the handlers)

private void Bubble<T>(PointerEventData eventData, ExecuteEvents.EventFunction<T> eventFunction) where T : IEventSystemHandler
        {
            var allRaycasted = new List<RaycastResult>();
            EventSystem.current.RaycastAll(eventData, allRaycasted);
            foreach (var raycasted in allRaycasted)
            {
                if (raycasted.gameObject == gameObject)
                {
                    continue;
                }
                ExecuteEvents.Execute(raycasted.gameObject, eventData, eventFunction);
            }
        }

        void IDragHandler.OnDrag(PointerEventData eventData)
        {
            Bubble(eventData, ExecuteEvents.dragHandler);
        }

        void IPointerDownHandler.OnPointerDown(PointerEventData eventData)
        {
            m_startPos = joystick.transform.position;
            joystick.transform.position = eventData.position;

            Bubble(eventData, ExecuteEvents.pointerDownHandler);
        }

        void IPointerUpHandler.OnPointerUp(PointerEventData eventData)
        {
            print("up in Mover");
            Bubble(eventData, ExecuteEvents.pointerUpHandler);
            joystick.transform.position = m_startPos;
        }

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

Serious Uplifting

One of the sources of energetic music that I find myself enjoying is Trance. And thankfully there are numerous bands/individuals doing it so there is no lack of it. And due to this great amount of generated tracks each week, there are several radio shows that select and promote “selec-chin” of these in their programs. You can listen to them online when they broadcast or download them from their websites or download them.

The main one I’m following is A State of Trance by Armin van Burren but there are others as well like Group Therapy Radio by Above & Beyond, Ori Uplift, just to name a few.

I can’t listen to them for a long time and I need a break after a few months of them but they are very positive and energetic and sometimes I find awesome tunes in them.

Due to their genre, they are very emotional as well which I like and not harsh like Drum & Bass and doesn’t mess with your brain as is with sub-genres like Dubstep.

Don’t get me wrong, I love D ‘n B and Dubstep, but I can’t work while listening to them since they need me consciously listening to them and also lose their “favor” after a few hours.

Hope you enjoy them as well.

A little bit of Automation

One of the great features of the eternally loved Winamp that I cherished is being able to delete current song and go to next track. It’s especially useful to me since I tend to listen to a lot of new materials and since most of them are trash, I prefer to delete the songs that I come by via shuffle the right instant that I get to not to like them.

Finally I found a way to do that for iTunes in OS X via Applescript:

Continue reading “A little bit of Automation”

My game design course at Iran’s Game Development Institute.

I’ll be teaching Game Design along with my dear friend Hossein Hosseinian in next semester of Iran Game Development Institute. We will cover game design basics and put those theory in action with current game engine. Each session will be 4 hours and will be held in a workshop manner.

My [p]review for SecureSWF 4.0

I’m honored to be a beta tester for world’s best SWF encryption software, SecureSWF. And when I say, best, I don’t exaggerate by any means as for our latest flash game, Rot Gut, I tested almost all possible ways and with some best decompilers around  I tested output of each encyption software and SecureSWF proved to be best, that’s not mean that it can’t get even better though.

With having beta version of 4.0, the full release is just on the horizon and I hope we can use it for our next game, which with the good experience I had with the 3.6, I’ll surely do.

4.o introduced 100 new features (listed here). I don’t want to kid myself or anyone, no one will use all features of any software but some of the additions are very good and most of them meets the eye of the experiences users of 3.6.

One of the good changes is redesigned UI. I wasn’t really a big fan of 3.6’s UI and first time I fired up 4.0 that was what I liked in first blink. UI is better organized and new features are better placed as well. Even though it’s not still following standards of most common Windows softwares, and there are valid reasons for that, but I like it nevertheless because it’s mostly targeted towards developers rather than everyone.

One of the things I was eager to see in the newer version was ability to have multiple encryption options for various things. As most advanced encryption algorithms are slow inherently, it’s good to have multiple options for encryption for different parts.  For example now you can choose your encryption algorithm of choice for String Literal Encryption (At the time of writing this preview, there are RC4 and AES available which are keys available from 32-bit to 288-bit !) which is good enough for me.

The renaming engine, which is heart and soul of such encryption software, is improved greatly. In previous major release I had to do some stuff to hint SecureSWF on finding some identifiers but there is no need to do those things anymore, which is a huge help for me.

The renaming tree is improved as well, now you can have rules applied to nodes of identifier trees to apply it to children which is very helpful and time saving.

There are some other additions as well such as being able to automate encryption with Ant but I’m yet to use them.

There is a compression feature there as well which is allegedly improved which helps to remove assets that your final SWF is not actually using but is bundled in it.

So I think that’s it for now, I’ll try to update this review once the final version is released and I’ll be using it more for my next game.