I wish I could pose more specific questions on this topic, but what I'm really looking for is a bird's eye view - a blog post, something from Adobe, documentation or even a book that outlines an approach, because I've had a tough time finding something comprehensive.
I've primarily been developing in a 2 man team with Flash Pro for years - an artist and developer. I've also worked in larger teams, using the same workflow:
AS code written as class files using Flash Pro editor, with minimal code on the timeline (only stops and an occasional function call when the timeline hits a certain frame).
Library assets are linked to AS3 classes where needed
Assets are placed on the main stage & main timeline, for maximum convenience of the designer.
Apps are published and built by exporting to swf with Flash Pro
No source control whatsoever except telling each other if we are going to change the fla.
Our shop is on the verge of bringing in more coders to develop a series of Flash browser games, and I'm thinking it's time to bring this workflow into the current reality. We'll want to have something that suits both artists and coders (minimizing complaints from either camp), as well as git support for source control.
Finally, my questions:
How are most developers authoring games currently? I've read a popular approach is to create art assets in a fla using Flash pro, link them to classes and export to a SWC. Code is then developed in Flash Builder, where assets are embedded.
If I take the SWC approach, is all code stripped from the timeline of MovieClip assets?
I'm aware that Flash Builder has an option to create a 'Flash professional' project which integrates the two and seems ideal, but going back and forth between Builder and Pro seemed to be crash prone. Does anyone use this approach reliably?
Will CS6 give us any advantages over CS5.5 to make it more developer friendly; ie. code-completion, etc.
Is there a way to set up workflow so the artist could make changes and then build/run the game from Flash Pro, and the developers could do it from Flash Builder - or would everyone need Flash Builder to run?
Are there any good 3rd party tools that provide code completion and an all around better development environment then the flash IDE (as an alternative to Flash Builder)?
Do people see Flash Builder as a 'must have' when working in teams or in general Flash dev?
Thanks for answering any part of these questions, or just simply sharing your experiences, opinions, and personal preferences. Any knowledge will be a big help at this point!
That is a lot of questions for one question. I'll try to somewhat cover the main topic of workflow.
The approach you describe with a pure ActionScript project with swc:s linked in is probably the most common approach (at least when it comes to more complex projects) as you want to separate code from content as much as possible. Usually I work with one artist so we sync up on functional design and then I define how the scene objects should be structured (i.e. a container clip, with XYZ child clips, naming, linkage and everything) to make it fit in with current framework or new supporting code.
You do not want any code in the flash pro timeline whatsoever, you want it all in your ActionScript files. Ideally as a programmer you shouldn't have to go into the flash scene project. However, in reality you probably will. I usually try to keep this to my own placeholder scene so I don't contaminate the production files with test and placeholders. You also really don't want several people editing in the same scene at once. One approach is to split up into several different scene projects. If you make a card game you could have something like this: card.swc, mainScene.swc, opponents.swc. That also allows for some concurrency if you are working with multiple artists.
Keeping the flash pro files in xfl format makes it a bit more source control friendly and you could actually merge two versions of the same scene but it can be a bit complex at times.
I usually solve this by making quick functional placeholder graphics that can later on is replaced by an artist (or render graphics from code).
When it comes to IDE:s, I think the most popular ones are FlashDevelop, Flash Builder and IntelliJ IDEA (With Flash Builder as my personal favourite). Get started with one and try some of the others in due time. Make sure the functions you use all day long are really good. However, if you have only been working with the flash professional environment before anything will be a drastic improvement on productivity.
I for one prioritize searching, refactoring and ease to follow the program flow, which simplifies debugging and getting into other peoples code quickly. But it all really comes down to finding a tool that runs on a frequency you can tune your mind into.
I hope that answered some of your thoughts and questions. Do not hesitate to follow up with more of them.
Related
I know that is possible export Unity projects to WebGL, but is there a way to use code from a ImpactJS project on Unity?
I checked the web for converter and found none, so unless I missed something, what you are trying to do is impossible.
There is always a way to convert. Sometimes it may require some manual fixing. Generally most languages are similar enough that you can automate many parts. The art assets are often re-usable, for example.
No. Unity converts it's own framework and system of gameobjects and c# code that you write into WebGL code.
However, if you have computing and business code that does not do much with the canvas/UI then that code can be copied over somewhat. For code that is purely computational or business logic, you can use any online tool to convert javascript into C# code with some success.
My guess is that if most of your code dealt with the canvas and UI and interaction, that none of that code will be able to be reused.
I want to show my designer something so he ccan build it for my iPhone app.
Is there any website or tool in which I can easilie draw something with iPhone patterns or something and show him what I want to have?
some easy and free tool I have been using in the past: http://mokk.me/
But beware - it's still in beta, but compared to other tools which require either Adobe AIR ( http://www.balsamiq.com/ ) or are bound to a single platform (Mac, Win) and somewhat expensive this is a really good way to draw mockups for an iPhone App.
These are some of the tools for iOS. But most of them are at a cost. you can try whichever is convenient for you.
http://www.omnigroup.com/products/omnigraffle/
http://graffletopia.com/
http://www.teehanlax.com/blog/iphone-gui-psd-v4/
http://balsamiq.com/download
http://keynotopia.com/
https://gomockingbird.com/
Another approach would be to use the "Storyboard" feature within newer versions of Xcode. Even though it's designed to produce actual interfaces for programs, it also works well as a high-level design tool for describing a sequence of screens and how they relate to each other.
In my current project, I'm not using a storyboard for the actual UI (because I need a little more control over view logic than it allows) but I do use it to sketch out how the visual portions of the application should appear and how they should interact with each other.
It's very slick and cross browser/platform at the click of a button, which is leading non-technical types to conclude the entire engine is intrinsically better than what we use now. Is it simply that they've taken the time to implement all the per-browser/OS plugin versions of Unity WebPlayer and polish it, or is there anything deeper in the way the engine architecture is set up?
Unity takes scripts written in C#, UnityScript (based on JavaScript), or Boo (based on Python), and compiles them into mono assemblies. Those assemblies + the 3d models, sounds, and textures required by your game are compressed into a .unity3d file that is loaded by their browser plugin. Since almost all of the game's logic is in managed mono assemblies it runs cross platform with very few platform specific quirks.
They've recently rewritten their plugin detection and installation code so that it is very easy to drop a block of javascript into a web page that shows Unity content if the user has the plugin, or other content (image, flash, video) if they don't. I believe their plugin supports all A-class browsers on Mac and Windows, and the plugin can be installed without restarting the browser.
One advantage of the Unity engine is that you can take a lot of off-the-shelf managed assemblies and include them in your project and call them from Unity code. But you have to be aware that these assemblies can really bloat the size of the .unity3d file.
Another advantage is that you can easily write components that expose tunable parameters that can be modified by non-technical people.
And yet another advantage is that a well written project can be ported to/from iPhone, Standalone, Android, Web, etc. in under a day. I've personally done iPhone to Web by just modifying my input handler and changing texture compression.
One big disadvantage is that since the application is running managed code it is not too difficult for a curious or malicious person to decompile the assemblies into completely readable code. So you need to think about what someone could do with that info (cheat in multiplayer, write bots, falsify high scores, etc.). It is possible to obfuscate your assemblies, but it isn't trivial to add this step to your build process.
I am looking to speed up time to develop website layouts. So I am wondering if using DreamWeaver for layouts is useful - efficient. I am looking at purchasing this software, so, I had a few questions.
I am very comfortable coding HTML, CSS and JavaScript(jQuery) by hand in either PHPDesigner or Notepad++. Most of the time for layouts I use FireFox and Firebug to see results in real time, and then check if it works across different browsers.
I want to know the opinion of people who have worked on the front-end:
I feel code validation is important but not the end of the world(as my priorities) - I do however like to change my code often by hand. Does the output from this software let you do this?(compare to the html/css that micorsoft word vomits - Does this software do a similar thing?)
Is this software used as a primary design tool by people who can code by hand and does it actually improve efficiency? or is it just for newbies?
I understand the Adobe family of products work really well with each other but I am trying to understand is if DreamWeaver really deserves to be in the front-end workflow(if you are proficient coding by hand).
Once you work with HTML/CSS/Javascript enough, it isn't difficult to "code by hand" but it is important to remember that front-end developers also code with their eyes, as well. There is a lot going on up front that depends entirely on the code that runs on the client and you want to use an editor that helps you organize your code and, more importantly, gives you visibility into the challenges presented by complicated CSS and adhering to web standards.
If front-end coding was nothing more than pushing around angle brackets then notepad and repeatedly pressing F5 would be enough. A great web editor will present the structure of your code in a meaningful way and all of your HTML, CSS, and Javascript takes on a complete feel.
You want a professional editor that will allow you to:
Understand CSS inheritance
Run visual diagnostics
Debug across different browsers
Create modern layouts/designs that are faithfully represented
I haven't used Dreamweaver in a few years but, these days, I'm really enjoying Microsoft Expression Web. It is not the FrontPage mess of yesteryears - it is a serious tool for web design and I urge you to take a close look. The code is clean and smart and it certainly gives you the option of using its tools to build a site or you can code everything 100% by hand. Don't forget, the key is not deciding which editor is best for coding by hand. The thing you should be looking for is which editor makes you a better developer.
Regardless of whether or not you're a Microsoft, LAMP, or other platform person, Expression Web is a great tool for front-end developers.
I've been using Dreamweaver for a few years now. While I initially used some of it's code generators, these days I pretty much spend my time in the code widow coding by hand and viewing the output in the browser. The design window is nice for simple coding as it will build the html for you. However, I did have problems getting the right insertion point to edit it. For example, it might place my update before and end tag when I wanted it to be after it. That led my to switch to the coding window to be sure.
I do like the fact that it opens all included files specified in the file you originally opened. I also use it's site views to synchronize my changes to the production server. I'm sure I could take advantage of other features if I bother to learn them. I haven't used any tools besides FrontPage so I can't compare.
Best thing that happened to me was learing about Eclipse and then after about Aptana. I was using notepad++ for everything, but now im doing everything with eclipse and aptana as plugin for eclipse. Just my 2 cents. Oh and its free.
Primarily I do use Adobe Dreamweaver when working on websites. It is a pretty nice tool to use along with Adobe Photoshop for any graphic designs that I create.
Also, I use Microsoft Visual Studio 2010 for Web Application Development (i.e Console apps, Web Apps, Silverlight, etc.). VS is a little different from DW but its still a nice tool for development projects.
Alison, I looked a preview of Expression Web and may check it out. It may aid as an impressive tool for my front-end dvelopment work. I also tried Microsoft Expression Blend when designing Silverlight applications. It does remind you of how Expression Web looks and feels
Say a development team includes (or makes use of) graphic artists who create all the images that go into a product. Such things include icons, bitmaps, window backgrounds, button images, animations, etc.
Obviously, everything needed to build a piece of software should be under some form of version control. But most version control systems for developers are designed primarily for text-based information. Should the graphics people use the same version-control system and repository that the coders do? If not, what should they use, and what is the best way to keep everything synchronized?
Yes, having art assets in version control is very useful. You get the ability to track history, roll back changes, and you have a single source to do backups with. Keep in mind that art assets are MUCH larger so your server needs to have lots of disk space & network bandwidth.
I've had success with using perforce on very large projects (+100 GB), however we had to wrap access to the version control server with something a little more artist friendly.
I've heard some good things about Alienbrain as well, it does seem to have a very slick UI.
GitHub recently introduced "image view modes", take a look: https://github.com/blog/817-behold-image-view-modes.
We, too, just put the binaries in source control. We use Git, but it would apply just as well to Subversion.
One suggestion I have is to use SVGs where possible, because you can see actual differences. With binaries (most other image formats), the best you can get is a version history.
A lot of the graphics type people will want something more sophisticated than subversion. While it's good for version control, they will want a content management system that allows cross-referencing of assets, tagging, thumbnails and that sort of thing (as well as versioning).
TortoiseSVN can show image revisions side-by-side, which is really useful. I've used it with different teams with a great degree of success. The artists loved having the ability to roll back things (after they got used to the concepts). It does take a lot of space, though.
Interesting question. I don't have a bunch of experience working directly with designers on a project. When I have, it's been through a contractual sort of agreement where they "delivered" a design. I have done some of my own design work for both web sites and desktop applications, and though I have not used source control in the past, I am in the process of implementing SVN for my own use as I am starting to do some paid freelance work. I intend to utilize version/source control precisely the way I would with source code. It just becomes another folder in the project trunk. The way I have worked without source control is to create an assets folder in which all media files that are equivalents of source code reside. I like to think of Photoshop PSD's as graphics source code while the JPEG output for a web site or otherwise is the compiled version.
In the case of working with designers, which is a distinct possibility I face in the near future, I'd like to make an attempt to have them "check-in" their different versions of their source files on a regular basis. I'll be curious to read what others with some experience will say in response to this.
We use subversion. Just place a folder under /trunk/docs for comps and have designers check out and commit to that folder. Works like a champ.
#lomaxx TortoiseSVN includes a program called TortoiseIDiff which looks to be a diff for images. I haven't used it but looks intriguing.
I would definitely put the graphics under version control. The diff might not be very useful from within a diff tool like diffmerge, but you can still checkout two versions of the graphic and view them side by side to see the differences.
I don't see any reason why the resultant graphics shouldn't be kept in the same version control system that the coders use. However, when you're creating graphics using PSD files or PDN files you might want to create a seperate repository for those as they have a different context to the actual end jpeg or gif that is produced and deployed with the developed application.
In my opinion Pixelapse combined with a backup solution is the best version control software for graphics that I've found thus far. It supports adobe files and a bunch of normal raster images. It has version by version preview. It autosaves when the files update(on save). It works like dropbox but have a great web interface.
You can use it in teams and share projects to different people. It also support infinite reviewers which is great for design agencies. And if you want you can publicly collaborate on projects that are "open".
Unfortunately you can't have a local pixelapse server, so for backup my current setup is that I have the Pixelapse folder(like a dropbox folder) inside a git repo for snapshot creation.
With respect to diff and merging, I think the version control is more critical for graphics and media elements. If you think about it, most designers are going to be the sole owners of a file -- at least in the case of graphics -- or at least I would think that'd be the case. I'd be curious to hear from a designer.
#Damian - Good point about the tagging and cross referencing. That's true; while I haven't working with many designers on a software development project, I have worked for a company that had a design department and know that this is an issue. Designers are still (perpetually) looking for the perfect system to handle this sort of thing. I think this is more suited to a design department for shared access, searching and versioning, etc to all assets -- where there is a business incentive to not reinvent the wheel wherever/whenever possible. I don't think it would apply for a project-oriented manner as tagging and cross referencing wouldn't be quite as applicable.
We keep the binary files and images in revision control, using Perforce. It's great!
We keep a lot of art assets, and it scales well for lots of large files. It recognizes binary files, the ones that can't be diffed, and stores them as full file copies in the back end.
It has P4V (cross-platform visual browser), and a thumbnail system so image files can be seen in the browser.
You might want to take a look at Boar: "Simple version control and backup for photos, videos and other binary files". It can handle binary files of any size. http://code.google.com/p/boar/
A free and slightly wonky solution is Adobe version Cue its comes with the Adobe Suites up to CS4 and is easy to install and maintain. Offers user level control and is artist friendly. Adobe has discontinued support though for it which is a shame. Adobe Bridge acts as the client between the user and the Version Cue server. If used properly its an inexpensive solution to version control. I use CS3 version cue with CS3 Bridge. Works great for small teams.