Browse by Tags

All Tags » Plug-In Framework (RSS)

Implementing AI wars where code is the primary asset. (focus on Terrarium)

The one thing I've taken away from the .NET Terrarium in terms of AI development is that players value their code over everything else. Protecting code from being viewed by other users is extremely difficult and hard to implement. After all, the focus...

Multi-cast delegates are potential trojan horses for protected eventing...

I posted on some security options for eventing when you are using custom storage. While I stopped short of full examining the potential of the various systems, I also stopped short on pointing out some additional security concerns. Here is the previous...

Some security considerations for systems with events.

For just a moment, relax your guard and don't think about the common usages of eventing that occur every day. The quick answer to solving any security concerns is to do a code review, run your application in a debugger to find offending code, and claim...

Terrarium: Did we do the right thing with the creature event model?

History Why did we use the eventing model? Well, because it made sense that creatures only needed to spend processing time on things they were curious about. It seemed like it might make things easier because a basic creature could hook only one event...

.NET Immutability Tip #3: Protect your properties AND your methods.

A common immutability practice is to simply protect the property setter with an immutability flag. Take a simple class that has a single integer field for to back our property and a single boolean flag to mark it immutable. using System; public class...

[Terrarium] How do we pass creature assemblies around?

This is the primary feature of the .NET Terrarium. The ability to safely and easily pass around creature assemblies and run them on end user machines. There are several considerations for this process including security, transport, loading, and storage...

[Plug-in Framework] Adendum to the goals document

I've added the Terrarium model and World Builder model definitions. The Terrarium model is based on the hardships in implementing the code hosting technology for the .NET Terrarium and the World Builder model is focused on slightly improving on the Terrarium...
Posted by Justin Rogers | with no comments
Filed under:

.NET Immutability Tip #2: Be careful of unprotected types in the executable.

I've seen this happen quite often. When developers create their immutable types, they assume the only view the user will ever have is of the type through some interface. Normally the interfaces are defined before-hand and included in some library that...

Joel's Lightweight Code Gen spells SUWEET for small scripting languages in games.

Reading Joel's blog and having lunch with him are two different things. You never really see all of the possibilities of a technology until you see the twinkle in someone's eye and realize that the technology might be slightly more powerful than you originally...

.NET Immutability Tip #1: Nothing is immutable.

I figured I'd start with the obvious. You can never control a machine 100%, so there is always the opportunity that whatever systems of protection you have in place, they can be overcome. This same principle applies to security and cheating systems as...
More Posts Next page »