Monday, December 2, 2013

Obfuscation for Unity Game Engine

Eazfuscator.NET 4.1 officially supports Unity applications. This is the great addition since Unity got a lot of traction during recent years.

How does it work?

Unity is a gaming engine that uses .NET for behavior definition and native code for fast rendering. And everything related to gaming is based on getting the things done. Often it doesn't even matter how.

It took me some time to enter the mindset. I read some historical articles from people who were in the gaming business during 1980s and 1990s decades just to find out that nothing had changed nowadays.

Artists and developers meet, create some stuff and then put it together. This is an artful and risky business as nobody can be 100% sure. Game is a vigorous fusion of story, art, action, culture and the current historical momentum.

Wednesday, September 11, 2013

Guncraft Is in the Wild. Powered by Eazfuscator.NET

Andy Dunn, a lead programmer from Exato Game Studios, contacted us in July 2012 and asked whether Eazfuscator.NET was the right choice for games.

It was a good question. Not only because the answer was Yes.

There is a lot of .NET obfuscators around. I tested almost all of them. I personally keep a close watch on every piece of software that claims to be a .NET obfuscator.

My thoughts about others? Well, most of them are not the right choice for games. But why? Two main reasons here:
  • Performance. The obfuscated code is slow and bloated with excessive instructions eating your CPU
  • Out of standard. The obfuscated code is non-verifiable or uses dirty, non-portable tricks. Well, such code will work for most users, but not for all of them. Imagine if you distribute it on Steam. 1/20 of users will be in the trouble of a sudden application crash
Eazfuscator.NET is different. Not only it generates fast, reliable and portable code but it does further optimizations on it. That's why it is so well suited for games where every CPU cycle counts.
I may sound old fashioned. "Hey look, he counts CPU cycles!".  But at the end, everybody loves fast software, right?

That is what I call a little detail that makes a big difference. Surely it is not evident to everybody. But everybody loves it at the end, without even noticing it.

I have a habit to find the details in every product I see. Guncraft (a game from Exato Game Studios powered by Eazfuscator.NET) is not an exception:

My first thought: "It is a Minecraft clone!". I must admit that I was pessimistic about it. A game that looks like a clone - that's insane.

I understood that I was wrong after hour or two of playing.

Do you remember "a little detail that makes a big difference"? Let's try to find out what's going on here.

A beautiful light makes you want to stop just to stare at the scene:

Destructive environment and thought-out maps made for shooting, chase and camping:

Building your own maps is a breeze thanks to construction mode:

The gameplay is characterized by one word: fun! Guncraft was greenlit on Steam and officially published there on August 9, 2013.

I hope this story gives you a bit of inspiration. If you are a game developer or just need a hardcore performance then you can rely on Eazfuscator.NET. It was built with performance in mind.

Friday, July 12, 2013

Eazfuscator.NET Meets Twitter

It took me a long time to understand whether Twitter is useful. I'm not that old fashioned, but just look at this:
  • "Rain"
  • "Amuse me somebody"
  • "Just posted a photo"
Twitter looks like a junk yard at first sight.

I shared my opinion with my friend and surprisingly his answer was: "You are right. There is a lot of noise on Twitter but that does not matter. The only thing that really matters is who you follow."

That was a key phrase for me. I hope it may be helpful for some of you too.

Actually Twitter is a perfect platform for news. You can broadcast, receive and interact. That's cool. The only problem of Twitter is noise. Luckily, it gets easily managed by carefully selecting the persons you follow. I just missed that one little pixel from the whole picture.

That's why we decided to use Twitter as a news channel for Eazfuscator.NET:

I personally promise to deliver quality content only, noise not allowed, just rare tweets about releases and sometimes headlines about new obfuscation technologies and blog articles. Some insight knowledges may be published too.

P.S.: Maybe you know some insights about Twitter that I still miss? I would appreciate your suggestions.

Friday, April 19, 2013

Code Optimizations Explained # Part 1

Eazfuscator.NET 3.7 brings new code optimizations: constant propagation and variable reordering. Sounds cool but what does it all mean?

We kept it in secret in the past. Now is the time to make it a public knowledge.

Every code optimization technique is marked with an identifier (like EFOPT-0001) for the sake of order and bookkeeping purposes.

Let's see what Eazfuscator.NET does with your code beyond the obfuscation.

EFOPT-0001: LINQ Any() substitution

LINQ (Language Integrated Query) is a .NET component that adds native data querying capabilities to .NET languages. LINQ syntax and operations are fluent and handy. Unfortunately they are not as fast as their imperative equivalents.

Eazfuscator.NET does its best to improve this. Let's see how it optimizes Any() operation:

Before optimization:

static void Main(string[] args)
    if (args.Any())
        Console.WriteLine("Program has arguments.");

After optimization:

static void Main(string[] args)
    if (args.Length != 0)
        Console.WriteLine("Program has arguments.");

Saturday, December 22, 2012

XAML Renaming for Everything

All recent .NET technologies for User Interface (UI) are based on XAML. WPF, Silverlight, Windows Phone and WinRT use XAML to define elements, events, data binding and other aspects of UI. Some of these technologies are new and inspirational...

Sometimes they are tasteless:

But still they all are based on XAML.

It depends on people who stand behind the technologies and applications. Perfect or mediocre, everything is created by people. So it is up to you how you would like to affect the situation.

Eazfuscator.NET 3.6 delivers XAML renaming for Silverlight, Windows Phone and WinRT applications. The feature is on by default but if you have a project that was previously obfuscated by an earlier version of Eazfuscator.NET and want to take the benefits of XAML renaming then please read a knowledge base article.

Merry Christmas!