Parris Studios

Posts Tagged ‘Flash’

First of, sorry for not posting a ton lately everyone. Been busy with letswoosh.com, rockin with Doomsday Machines, and making cool stuff at NetApp. In any case, if you are on this page, you have probably been searching endlessly for a way to get flash on your iP[ad|hone]. At work, we had a request straight from the VP of our department that ended up on my desk. “We would like to get about 200+ sales people to view training through mobile devices, namely the iPad,” was essentially the gist of the request. Well it just so happens that all of our training is done in Flash, and around here they don’t seem to be big fans of going back to javascript. They asked me to come up with solutions.

There are essentially three ways I found that differ vastly from on another.

Jailbreak, then “un-jailbreak” once you install flash (I am not going to go into all of that)

Use smokescreen (source), a javascript version of the flash plugin, but it does not seem to work for interactive flash apps.

Provide a browser through a “VM”. That is host an app through some software server in the cloud.

Jailbreaking is out. We are not about to go to war with apple (although someone should). Smokescreen won’t really work out, plus it is not very “corporate ready,” which leaves us with the VM/cloud/SaaS solution. So via iPhone/iTouch I found an app called Cloud Browse. This is pretty nifty it is essentially Firefox hosted up in the cloud. It works, but there are some pitfalls. First of all, its unsupportable. If one of our clients says “ITS NOT WORKING” angrily all we can say is try again later? Also, it could potentially cost a ton, and its not a fixed cost. That is we need to buy subscriptions for each person who wants to use the app so they don’t end up on the generic/anonymous connection pool that may or may not get a connection depending on popularity at that moment in time. Do I need to mention that if you are going through some VPN service you are essentially exposing all your delicious corporate secrets? Lastly, it looks like crap on the iPad.

I mentioned the VM solution to my manager, and he said “OH, that kinda sounds like something Citrix probably does.” I did some research and found 2 must have apps and a pretty rockin video that explains a few things.

Step One (setup a server that doesn’t quite work yet for practice and experimentation):

Time to take down a fighter jet... Credits to: http://www.graphicsdb.com/img77239.htm

First thing you should do is follow the steps in the video below to get your Amazon cloud account all setup with XenApp 5.0. The AMI mentioned in the video doesn’t work with the iP[hone|ad]. I believe the AMI mentioned in the last link will work out though.

Next, log in and open up your “desktop” app, which may take up to 10 minutes even if it says “running” in amazon, server error means its still starting up. You will see all sorts of warnings about XenApp not having licenses, logins failing, terminal services needing licenses, but this is all normal and if you can open internet explorer you are doing just fine. At this point you may want to try adding apps into Citrix Access Manager, which is extremely easy (if you have a question about it feel free to ask in the comment section). I installed Firefox, Adobe Reader, Flash and AIR. I then installed an AIR application and was able to create apps in the manager tool. I used Firefox, the air application, and adobe reader.

Step Two (configure apps and reconfigure iP[ad|hone] and try it out):

You may want to add a new user. We will use this user to connect to the server via the iPad. The cool thing about having individual accounts is the same as doing so on a normal machine. Users can save their own settings and preferences. The same is applicable here.

Now go through App Store on the iPad. You can just download the Citrix Receiver for free. Go ahead and use your IP address as both the address and domain. You need have your username in the format: ComputerName\Username. If you are now able to open your web browser and launch it. Everything is working fine. Go to youtube.com and open up a video. There should be some choppiness as is expected, but hell it works. It may not be 24->30fps, but it gets the job done, and its supportable/secure.

Pricing:

At an enterprise level. This is extremely affordable. You only pay for XenApp once. The receiver is free. You may need to purchase Windows Server 2008 if you are doing this internally. Then for about 60 concurrent users we are looking at around 5 grand total. This is much more affordable than redeveloping a ton of software. One thing to note though. You should assess how much interest there actually is around all of this. The last thing you want to do is have a person dedicate about a week of their time trying to set this thing up and have no one ever use it.

Disclaimer:

Finally, let me put up a little disclaimer. I know nothing of these sorts of things. I just had a business need and tried my best to figure out how to get this to work. Questions shouldn’t necessarily be directed at me. Honestly I am not a subject matter expert for XenApp, Citrix, Windows Servers or iP[ad|hone]. Most of this stuff was pulled from best guesses and gleaned information. I will do my best to answer questions if I do receive them. In any case, I hope this was helpful to someone :)! Now I open the forum… Any other ideas?

I modified my platformer engine in a few ways. First I killed off the fisix engine. It was really a physics engine, but the lack of support kind of killed progress for me. I switched to APE and I couldn’t be happier. Next I made it more generic. I removed the idea that this was going to simply be a platformer, and I started to think about what the difference was between 2D games in different genres. The only thing I could think of that truly separated them was the action that occurred while walking or attacking and the perspective of the game. In other words an RPG is top down or at an angle (essentially the same just with different art) and a platformer is side scrolling. The only other game type not accounted for is a SHMUP (Raiden and other top down flying shooter types). So I took my level reader and stepped it up a notch. I now have 2 xml files. One to characterize the level and the other to characterize the player. I allow for many built in “actions” such as walking up, up-right, right, down-right, etc, and I am hoping to also include a way to add custom actions. These actions are tied into 1 swf file with multiple movie clips. Not only that you could also specify whether a certain movie clip should be flipped for a certain action which cuts down on the amount of animations or duplicates one needs to make.

Simply stated I could specify in xml that the right action is using the left movie clip and is flipped horizontally but not vertically.

Not only that a person could specify a game mode. Right now it supports walk (RPG style) or jump (platformer style, side scroller).

So the code doesn’t look to bad either. I’d say the messiest part is deciding what happens when these actions are selected. In specific when to flip and clip, when to flip it back, modifying velocity while jumping etc.

Once I get more work done with it I may post the source code, or I may just give out tools for making levels :-D, but for now imagine a world where making a game was this simple:

Then imagine a world that had a drag and drop interface that could generate the XML files above with all the art specified as pngs with supported transparencies! 🙂

The implications also include that one game could have several level “types” per game with no extra development needed. Perhaps at some point people would be creating plug ins to support additional game types as well! Ahhh now we are just dreaming :).

So a few months ago I made this game on facebook with Edgar called Grid[z]. It is a simple little board game, but we have a ranking and score system that is based off ELO. ELO is the ranking system that is used for Top Coder and Chess Leagues among other things.

We have some planned modifications also including a public lobby that would allow players to invite each other. Also more stringent security policies are also needed. I don’t see this game becoming popular or making tons of money so I am considering it my first foray into the facebook api + cakephp. I may eventually post my cakephp library for making games; however, trying to validate player interactions with the server in a way to cover all cases seems to be a hurdle. It may be a nice starting point though.

So as some of you know I work for NetApp right now! One of my charters is to create tons of game prototypes. Yes yes i know NetApp has nothing to do with creating games. They are primarily a storage company; however, I work for NetApp University. So I was basically told to research and pitch ideas about gaming mixed with learning. To show them that it does not need to take FOREVER to make games or require tons of resources I spent 2 days creating this AS3 based flash platformer. It reads an XML file and then places platforms (and in the future other objects). They idea I pitched was akin to the Little Big Planet 2008 E3 presentation (below). Everyone seemed to like it.

Here is the source code. It is short and sweet (200 lines)! There is not enough source code using the Fisix Engine out there. Also platformers are the first thing everyone wants to do when they start making flash games. I hope this helps…

I used Flash Develop with the Flex SDK to compile. If you want to mess with it and add just add more platforms just open bin>levels>testlevel.xml and just follow the format for the platforms… I think there is artificial barrier set for the level at some point. Linux and Mac users need to edit the path before compiling.