Flash against the world

Although I use to make a living from Flash since Flash 4 (learning time) and Flash 5 (real usage time, when AS 1 was born), I’ve never been in the mood to write about the goods and chimes of Flash, as most of times I’ve been forced to agree with the general sense which said that stuff made-in-Flash was crap. Who doesn’t hate Flash intros and banners and nonsensycal fireworks?

Today, in the mature age of Flash (and maybe myself’s professional mature age), I see the cake quite different.

  1. Flash is a plugin, just like the old Java plugin, QuickTime, Windows Media Player or VRML: a way to introduce rich content in a browser.
  2. Nobody demands for a plugin a bunch of features regarding navigability (integration with common browser’s features, such as history, bookmarking or accessibility), except for the Flash plugin.
  3. People in Macromedia (then) and Adobe (now) made a great effort of creativity and enthusiasm in order to introduce in the Flash plugin lots of features, including support for audio, video and 3D. Do you remember when you was forced to install a bunch of things only to hear audio in the mp3 format? Flash supported it. Do you remember when watching a video in the web was sort of chance if you had the codec installed, if available at all for your machine specs? Flash made possible a successful website such as Youtube. Do you remember when people needed something else, from the programming point of view, and AS 2 was born (and yet more AS 3), being a real alternative to today’s so called Web 2.0 and smelly things such as Ajax, which is today a very common technology?
  4. Flash, even being a plugin, offered a bridge to the user’s surfing experience from the beginnings. Wheter you like it or not, being more or less difficult for the developer, you can bookmark a page from Flash contents, access the history, make a Flash movie fully accessible and localizable, make practice of asynchronous communication with the server, get your contents indexed by major search engines and a long catalogue of things you would never expect from a plugin.
  5. Most probably, people who feels anger against Flash, feels anger as well against bad (or low-cost, if you prefer so) web developers. Me and my team can make a full blown rich app driven by Flash -in the client side- in a few days, supporting navigability, accessibility AAA and advanced features (such as databases in the backend). Today, 2010, you are told to make a website with A/V support. You have three days to make it live. Will you rely on WM, QT or Real? Or you will stick with the de-facto standard, codenamed Flash? What about 3D? Do you prefer Flash via Swift 3D, for example, or you will force your users to install whatever plugin?
  6. Bad and low-cost developers still can offer with Flash to their bad and low-cost customers much more than they can offer with their bad and low-cost web knowledge.
  7. Although Flash still offers usually much more features than other plugins (I won’t say “similar plugins”, as I don’t know similar ones), including a brand new OOP programming interface with AS 3 and integration with most if not all of modern technologies, along with the mentioned A/V capabilities, as well as support for 3D, bitmap and vector graphics, camera and micro input, etc… Although Flash offers more and still more, it still offers more again: Flash was exiled from major mobile platforms (specially iPhone, which is a point of reference), but Flash keeps trying and trying. The new betas, with an eye put over the mobile platforms, are performing so fine in the desktop in the first optimization. I believe they’ll keep improving. Stuff in the computer uses to require more and more resources (RAM, CPU, etc.). That’s because we all are forced to replace our computers, mobile phones (and now also TVs —in Spain, at least— with digital TV). And now Flash is in the business of downsampling: more features, less resources. It was time, anyway, and now begun the race. They’ll keep improving. Once more again, we demand from Flash a very high level of performance and optimization we don’t in fact demand to the own machines (nobody seems to blame Apple for creating a 4 GB iPhone or iPod, then very soon the 8GB one, then 16, 32GB, etc., making every new release feel oldies the previous ones). Adobe is making his homework in order to optimize CPU and RAM usage, support multitouch and a very long etcetera in the chain of the —oftenly stupid— needs of the market.
  8. SWF specs are free. We have now many tools —paid and free— to create and compile Flash movies. If you are freak enough, you can even create your own swf-based format and your swf-based flash player. In fact, they DO exist. You can even use your Flash knowledge to create robust cross-platform desktop apps based on SWF (Adobe’s AIR wasn’t the first to make it real, others did it first, creating environments similar to the RealBASIC or Revolution IDE’s and runtimes, such as mProjector, Zinc or the open-source HippoHX… And much more).
  9. Still waiting for others’ answers: universal, cross-platform, localizable, accessible, extensible and with the unlimited level of support of a huge and still-growing community of developers. And, as stated, with the enthusiasm required to make something new every day.
  10. Finally, the market rules. In my personal and tiny market, I never thought I was forced to learn AS 3, coming from AS 1 and 2, as well as I never thought the print shop would never accept as input a 5MB PDF document, instead of a Quark 3 document with a bunch of fonts and images enclosed in a ZIP disk. Today we have market for Flash, as well as yesterday, and a brighting future for the “newborn” AS 3 language, along with all the daily newcome features for us developers and end-users.

Collaborative development and flow diagrams

I find very useful working with flow diagrams when in the middle of complex development systems and it’s absolutely a must-have when you are part of a team. Nobody can access your mind, so nobody can be sure about your thots and the internal flow diagrams running and changing continuously in your brain. So, a flow diagram with read/write access is a great feature for all developers working together in the same cake.

flow diagram

Appart from that, you will find many times, when working in the graph, that you are missing something you must implement, something you forgot when you were in UI-mode fighting against fonts and colors.

That’s the difference between conceptual and abstract design.

OpenSpace 2.0b2

Recently released.

http://www.smartfoxserver.com/forums/viewtopic.php?t=6734

I have the piece of gold in my inbox, but won’t take a look until it’s final or close to final, as we can’t use it in a production environment, specially when this environment is still in the middle of the development process.

This version contains lots of new features customers asked for in the past, such as centerViewOnCoords, getAllSkinsByName, getMyAvatarCurrentTile or setting some parameters at run time, such as animationTime at avatar creation time.

Hopefully the documentation and other details will be ready very soon and maybe we will be able to introduce some interesting hacks in the current version of Qilania.

Qilania in Facebook

For those interested, you can get here the latest news of Qilania from your Facebook account:

http://www.facebook.com/pages/qilania/285359340072

And you can also become a fan of Massina Sinsigins, the founder of Qilania, and follow her daily adventures in his ride to recruit people willing to save the world from the evil Lord Lord:

http://www.facebook.com/pages/Massi/270774826308

Spanish groups this time, sorry. We’ll open the ones for english speakers as soon as we have the english version in the pipeline!

Games: Individual versus Multiplayer versus Collaborative

Usually you can play two kind of games: single player and multiplayer. And there is a subclass we call “collaborative”. Most probably this has been discussed many times before, but here in qilania we are trying to figth against the blank paper, asking ourselves what the user wishes and needs, which are totally different things.

Talking about MMO games or virtual worlds, we have regular virtual worlds with minigames, which stands for the concept “fast fun”, kind-of tetris games, space invaders, etc. And we have RPG games, where the user adopts a role and a bunch of objectives to be achieved in a long or undefined amount of time.

We aspire in qilania to have both: fast fun for casual users and long-time objectives for regular ones.

But we feel that isn’t enough for our main goals. We need “collaborative” games where users meet each others and talk about common interests and objectives, because we believe this is the main objective of a MMO game, Internet and the life at all in a sense: sharing and communication.

Collaborative games can be single player, multiplayer and… No gaming! We don’t need strict rules code-driven in order to create the feeling that players can and should merge in the pursuit of a common interest.

There is today a line of products (games) embedded in social networks with a great amount of “sociability”. You can share with all your friends whatever (trivial) stuff you succeed in that particular game. Sharing is a very important factor in that games. After that, there is the vacuum (leave the game when friends of friends of your friends start playing the game) and you helped to get involved many people in that network. Maybe they are “social” games, but not “collaborative”, as you don’t “risk” and you don’t “share yourself”.

I remember when I played Imperia Online, a MMORPG with a UI very close to what you understand by “ascii game”. It is the classical strategy game where you train soldiers, build a fortress and so on. But alliances where very strong. You could play alone, of course, but you used to be part of an Alliance, consisting on a bunch of players like you, and your goals were to defeat other players and alliances, and rule the world. The most important parts of the game were communication (IM, chat and forum) and sacrifice (what I call “share yourself”). It was a very strategical game, so the collaboration of all the members of the Alliance was needed, and it required everyone to be online at fixed times and spend lots of time ellaborating tactics, taking into consideration everyone’s timetables, including enemy’s ones. There were “real” spies infiltrated in the enemy’s alliances (being game mates or paid mercenaries), volunteer suicides, peace treatments… And that all was out of the scope of the software driving the game and the game owners. All done via IM, chat rooms and other channel communications. Real collaboration in a MMORPG game. Maybe a frivolous amusement, but real collaboration after all.

That’s important for us people behind the screen and that’s important as well for a MMO game where “user A” makes something which affects directly to “user B”. Otherwise, the “massive multiplayer” part of the MMO legend is nonsense and the O standing for “online” just a fake for the sake of credibility.

Development of economics in virtual worlds

We are now developing the economics system for qilania and we find there are lots of considerations to be taken into account in order to create a stable economy in a virtual world.

Some of the basics rules are:

  • The more effort an user puts onto your virtual world, the more rewads he must earn.
  • The more easy the user can earn money (ie, an easy game), the less money he must win.
  • The more valuable are the goods and services, the more money the will be worth.
  • You must update all the time the goods and services the virtual world offers to the user (otherwise, the user will acquire all existing goods and services and will become a boring world for him in a few days/weeks/months).

Just as in the real world. 😉

One trick: the first step we used in order to create the system was creating a symbolic “monetary unit”, which can be any basic good or service in your virtual world: it can be bread, a gallon of beer or whatever you consider. After that, you can invent the name of your currency and apply a price to your “monetary unit”, then develop around that consideration what items and services cost and how much does it take the user to gather that money.

Appart from that, you can add some tweaks to the system to make it more interesting. For example, dynamic prices for items and services, depending on offer and demand or a monetary system based on goods owned by the virtual world (for example, if your virtual world produces less petroleum and your entire economy is based on petroleum, that will affect the value of basic products, such as bread or transportation).

I’d say that the development of a virtual world is as fun as complex.

Hello world!

Welcome to my personal blog about Qilania, the educational MMORPG for kids which will be born in 2010, where I act as product manager.

This will be a very interesting project, not only for its nature, but for the great amount of technologies used in it: SmartFox Pro Server and OpenSpace, PHP, MySQL, Flash and Flex, Java and AppleScript (in order to automate lots of tasks).

Stay tuned!