Nudoru\Udon

flash, elearning, random thoughts

Archive for the ‘Work’ Category

Thanks to a wonderful confluence of events and great timing, I’m able to turn this in to a project for work – there are a handful of solutions in the queue that can use this starting next month – so I’m working full time on it over the month of Feburay.

After a few days, this is what I’ve got: click. It’s a pretty straight forward scenario, but it demonstrates all of the features that I’ve got working.

I’ve been able to keep up with my “play” metaphor and it’s working out great by providing many more opportunities for gaming rather than typical multiple choice branching.

One of the projects brought up a requirement that started a new idea – an inventory system. All I really need to do is allow the learner to reference a screen shot to get some data, but I think it can be taken farther. But more on that later.

  • 0 Comments
  • Filed under: Flash, Work
  • Well, done that!

    Multiple Sliders

    I had a requirement to for an interaction for learners to rate up to six criteria for a given scenario. I thought of 3 different ways to do it: 1) that, 2) text entry and 3) drop down menus.

    Text entry was the first idea. But that’s commonplace – can you call that an idea? I had a slider component that I’d coded for a project a year ago that was never used – so why not? The result, while interesting, fails miserably on many levels with visual clutter being the main one. I still think that it would work for up to 3 or 4 items, but it just doesn’t for this many.

    So go back and do something more simple – with drop downs. I’d coded the slider to use the same basic properties as the native AS3 ones so, there wasn’t that much more effort to make this change. It’s much easier for the learner to use and saves a lot of space – so much that the scenario can be on the same screen as the question.

  • 2 Comments
  • Filed under: Flash, Work
  • When I started Ramen, one of the goals was to allow the page templates/interactions to be used outside of the system – in a Lectora course for example. This has even become more important as my day job standardizes on Lectora as the shell for any tracked learning content. Over the past year, I’ve been able to write a whole lot of really easy to use APIs for creating learning interactions. Creating a new interaction takes just a few hours using the Ramen page template API and borrowing functionality from existing templates.

    The biggest benefit of this is quick and easy reusability. Just change the XML file and it’s a new page. I don’t want to even think about how hard  some of these would be to pull of in Lectora. It gets really confusing when the action icons start to pile up.

    I’m helping out on a project now that needs a few learning interactions developed – quickly. So I spent today working on these. Here they are in the Ramen player:

    These aren’t the fanciest interactions ever created, but not bad for a few hours work.

  • 6 Comments
  • Filed under: Flash, Work
  • Rethinking the Social Simulation

    So far, I’ve gotten a basic schema defined for the structure file and a good start on most of the base data classes.

    I’ve been planning to go down the most familiar path: a page-branch-page-branch-etc. architecture/flow. It’s the one that any elearning developer would be most familiar with. Each page contains pictures of the people and if it’s an interaction a few choices to click on. Just repeat that over and over and you have it. It’s a fairly “dumb” system.

    But then I had a new idea on how to make this thing operate … had to dig out my Moleskine and start taking notes (for the first time in nearly 2 years).

    What’s a better metaphor for this thing? How about a play? In this case my characters are actors. And what about all of the text? It’s generated from the actors! What about logic – is it in the page interaction or the controller? No – it comes from the actors reacting to a spoken line from another character.

    Probably a small thing – but in the scope of what I want to do – it’s ground breaking. Now we have persistent actors on the stage (which now really is a stage) who drive the dialog and their reaction to it. Pages are now the “script” that is fed to the actors and look/feel of each page is the “set.” We don’t have a dumb template system we have a set of intelligent programmable avatars.

    In code, each actor will be a component in the library following a MVC model. The sim. engine controller will handle the event listening and dispatch it to the correct actor. The logic will be part XML defined and part variable driven and will be in the actor’s controller. The look of the actor will be driven by logic (change based on emotion/score!) and the appearance of the dialog will come from the actor. Any narrative text (instructions, etc.) would be narration driven by the engine/narrator character. Interaction on a spoken line will cause a reaction in the targeted actor (you could speak to the mentor!) and will direct the play to a new page in the script. The page script will control the actor’s position, the look of the set, and feed new dialog to the actors.

    This tips the possibilities towards the complex end of the scale – more complicated scenarios will be easier to play out while a linear scenario would be more difficult. It also opens the door towards making it more of a game. Actors can have different personalities by tweaking their logic and their automatic reactions. Point modifiers for certain actors and certain lines. Maybe you could flirt with the other actor. Maybe you could ask the mentor for help – or earn a “smooth talking” bonus? I’m thinking of a lot of new ideas here …

  • 0 Comments
  • Filed under: Flash, Work
  • So this topic has come up off an on at work for nearly a year now. We need a good reusable player to create engaging social simulations for training employees on customer interaction. People have looked around and the best off the shelf solution seems to be Nexlearn’s SimWriter. I’ve taken a quick look at it and it does seem like it has a lot of features, but has the same problem most other “learning development” tools have – the look/feel of the output leaves a lot to be desired. And from what I’ve heard it’s a pretty expensive product.

    I spent way too much time thinking about this today, and have some free time, so … I’ll build one and document the process on this blog. Not an overly complex one, and I’m not going to be posting all of the source but it’ll be a nice thought experiment.

    So what are my requirements?

    • Produce 3 levels of simulation: 1) Linear/low, 2) Branching and 3) “Dynamic State”/complex based on previous branches or other data.
    • Minimum of 3 characters: antagonist (customer), protagonist (you) and a coach/mentor/guide
    • Learner character choice – pick the protagonist who you identify with (age, race, sex, etc.)
    • Scoring – possibly represented as antagonist “mood”
    • History states – go back and review/change past choices
    • Possible branching to other tasks – system/mechanical sim?
    • Basic flow: Introduction, protagonist selection, conversation tree, resolution, summary
    • Tie learning objectives/goals to places in the scenario to measure success/failure.
    • Photos of the characters in different states
    • Audio?
    • Video?
    • Fully Flash based (rich media, etc.)
    • Easy to edit by moderately technical people (XML driven)
    • Possible SCORM tracking: score, answers, performance, time

    Not a small list! Not quite sure how long it’ll take me and it will definitely be a phased solution. And I don’t know if  it’ll every be used for anything in production, but it’ll be a nice little way to keep busy in the evenings.

    So, let’s get started …

  • 1 Comment
  • Filed under: Flash, Work
  • Articulate headaches, pt. 1

    So, I had a really time with Articulate today. Something that should have taken 15 minutes stretched into hours due to a few mistakes. Here’s what went wrong and how I fixed it. I received a lot of help from Twitter – links below.

    Problem: I needed to update a few Flash movies embedded in a straightforward Articulate ’09 course, then publish and upload. Simple enough, right?

    Updating Flash movies embedded in an Articulate course

    When you update a Flash movie that’s embedded in an Articulate course, Articulate picks up the new file since has a link to it on the hard drive.  But it wasn’t doing this with the Flash movies that I had. And I couldn’t figure out why – I didn’t want to reimport them all.

    So, I tweeted the problem and Dave Anderson replied with a Screenr showing how this is supposed to work. Well, ok – I had the right idea. But I’d forgotten that when I installed Windows 7, I’d moved all of my working files – so the project was in a completely different location than it had been when I created it. Doh! Articulate stores absolute references to embedded Flash, not relative. Moved the files back to where I had them and that problem was fixed.

    Dave later directed me to a Screenr by James Kingsley showing good Flash/Articulate workflow techniques.

    Presenter locking up when publishing

    So, next problem that I had was presenter stopped publishing the deck. It always stopped on the “Saving files to disk” operation. At first it seemed random as to which slide it got stuck on, and then finally settled on slide 18. It just would not go past this point. I rebooted, which has resolved this issue in the past, but no luck.

    Back to Twitter. Brian Batt offered to help and directed me to download and run the Articulate debug tracer, and then send the results back to him. With this running I could see that the SWF on that slide was causing the freeze. I republished the SWF. Not fixed. Reinserted the SWF. Not fixed. Deleted the slide and rebuilt it. Still no luck.

    Out of ideas, I uninstalled Articulate, rebooted and reinstalled it. I’d seen that anti virus programs can also interfere with this so I turned it off while I was at it. One of these fixed it. Not sure which since I didn’t follow good troubleshooting procedures, but it publishes just fine now. Which is all I cared about.

    The trace window is pretty cool – they should include something like this in the tool under a “More Details” button  - I’m not a fan of processes that take >10 minutes to run with little information. This fixes that for me.

    Uploading to a FTP site

    I uploaded it to my site and went to preview it. I got the dreaded “Slide 100 of 160″ blank screen error. This means that either I’m using Articulate 4 with Flash 10 (which I’m not) or something didn’t upload correctly. I deleted the files and tried again. Same issue. Articulate has a built in FTP option, so I used that. It failed twice saying “Cannot upload file, unknown error.”

    I’m just a little mad at this point </sarcasm>.

    I started looking at options in my FTP program. I noticed that the file transfer type was set to “auto.” I’d seen problems in the past where binary files has been uploaded as ASCII, so I changed it to binary. Re-uploaded and viola!

    Lessons learned

    So here’s what I got out of this:

    1. Articulate doesn’t use relative paths to imported Flash movies. Don’t move things around!
    2. Turn off your virus scanner if you have problems publishing
    3. Always upload Articulate courses in binary mode
    4. Articulate has awesome support via Twitter

    Part 2 coming the next time I have to go through something like this!

  • 4 Comments
  • Filed under: Flash, Work
  • Ok, break’s over. Time to start working again. Of course, if Gabe was sleeping better, it might be easier to stay up late and do something. (Would also help if I wasn’t being lazy.)

    I haven’t created anything new in AS3 in a few months now. That’s not good.

  • 6 Comments
  • Filed under: Family, Random, Work
  • SCOMaster – Gameplay

    I was finally able to record a round of my SCOMaster game! Recap – It’s a multiplayer WiiFlash game designed to be played with teams in an instructor lead classroom setting. The object is to assemble a learning program structure the fastest – but watch out, because your opponent can take one of your SCOs and reuse them in their own program. Developed in Flash CS3 in about 150 hours.

    SCOMaster Gameplay

  • 2 Comments
  • Filed under: Flash, WiiFlash, Work
  • Casey’s gone back to school and things are settling down with the new baby, so I’m finding myself with a little free time again. When I posed the Creating a Flash WBT Framework post, I had planned to follow it up shortly with a few learning interactions, but I never found the time. Now I have some of that time. And being inspired by this conversation on the Pipweks board, I think that it’s something that would help out a lot of people.

    I don’t plan to make them drop dead simple to use, like the old ones that were included with Flash, but I’d like to ask my (very few) readers: “What would you like me to do?” Are there interactions that you’d like to see?

    I plan on making them class based, following the MVC pattern, with the data stored in an XML file. Should make it easy enough to modify, but the AS3 code would be intermediate level so it would require some effort there.

    If I don’t receive any comments, I’ll just start wandering in a random direction and post what I come up with.

    Update, 1/21/09: Well, things didn’t go as easily as I’d planned. Work was crazy and then I took a break for the holidays and just couldn’t get motivated to start on these. Excuses. But I’ve finally gotten around to turning the computer back on in the evenings, so I’ll be picking up on a few odds and ends soon.

    Also – thanks for all of the comments!

  • 13 Comments
  • Filed under: Flash, Work
  • Useless little Photoshops

    I don’t get to use Photoshop for illustrations very often anymore, so it’s fun when I do. I created this little thing to replace some uglier images on the same theme in a WBT we’re working on. Origional is here.

  • 2 Comments
  • Filed under: Random, Work
  • SCOMaster screen shot

    After a week and a half I finally finished my first real WiiFlash game – SCOMaster. It’s a competative, 2 player learning game designed to be played in a group setting. It illustrates the concepts of assembling a course in an LMS system. Bonus points are awarded for content reuse – they are SCOs after all! Unneeded objects and faulty objects can be sent back to the development team to be reworked – but at a cost.First one to build a completed activity tree wins.

    Ben Hutchens, our graphic designer, created the art work for it. It took about 60 hours to program it using the WiiFlash classes that I had developed earlier in the year.

  • 6 Comments
  • Filed under: Flash, WiiFlash, Work
  • I’m presenting to the Bank’s Flash Community of Practice this Thursday on how to create a basic Flash WBT that includes SCORM  tracking. Below is the PPT deck that I’ll be using and below that is the sample file.

    SCORM and Flash WBT Overview

    This is an example file of a Flash WBT on the timeline, where my previous example was pure script. SCORM 1.2 compliant using my wrapper and Pipwerks SCORM API.

    Timeline Based WBT Demo

  • 0 Comments
  • Filed under: Flash, Work
  • Flash Template “2″ release

    I’m releasing the source code to the 2nd WBT framework that I created for Wachovia in mid-2004. Essentially, it works just like the example demo that I posed a few days ago: 1) an array of page IDs and 2) pages are movie clips in the library attached as the learner progressed though.

    This version is pretty complicated, so it’ll be a challenge to figure out how it all works. But there is value in seeing the code for the individual page interactions. It’s not SCORM or AICC compliant – but it did track as a Docent Outliner module – those files aren’t included.

    The framework file is the main file for a course. It loads an structure XML file (xml\framework.xml) that defines the list of modules for the course. The blank file what each lesson is built from. It contains all of the templates and is capable of running a course from an XML document.

    These are Flash 7 FLAs. The code is Flash 6/MX level Actionscript. There aren’t really many comments in the code since I coded it for myself. But I did train a few coworkers how to use it. I haven’t worked in the code for over 3 years, so if you ask a question about it, I probably won’t remember what I did.

    Here’s a preview of the interactions in the blank file:

    http://www.nudoru.com/assets/portfolio/experimentalflash/ft2_samp.htm

    Here’s the code:

    Flash Template 2 Code

  • 2 Comments
  • Filed under: Flash, Work
  • I put together part 1 of what I plan on being a multi-part series documeting the creation of a Flash WBT framework for creating SCORM compliant courses. This first once starts with an interface created in Flash CS3 and goes though the steps of adding the code to make it all work – and track on a SCORM 1.2 LMS. I’m using a custom wrapper class that I made for Pipwerks’ SCORM class. You need to know a bit about programming in Actionscript 3 – nothing advanced, but this isn’t in a tutoral format.

    I’m hoping to fill a void with this – I know that there are a lot of people trying to develop WBTs in Flash and they have no idea where to start. I’ve been doing this for 4 years, and I know that I would have loved something like this when I started.

    Example Documentation

    Example Source Files

    Please let me know if you find a bug, have a question, or have a comment or suggestion on what to cover next or how to make this better.

  • 18 Comments
  • Filed under: Flash, Work
  • Scientia

    A few months ago, I made a comment about spinning off my ramen player for use at work and turning it into a player for learning content. Well, my first project with it is about to go live, so it’s worth another mention.

    I’m calling this player “Scientia.”  I’ve added a lot of code for progress, tracking and completion. I’ve also integrated Pipwerks excellent SCORM wrapper into it.

    The project is a system walk-though that’s presented to the learner with an avatar character. I’ve written up a short explanation of how the avatar SWF and audio player SWF work together. It’s pretty brief – post a comment if you want more information on it and I’ll see what more I can write.

    Using XML events in a Flash player system

    Also, I’m presenting at this month’s Bank of America Flash CoP meeting on Flash and SCORM communication. I’m going to create a very simple WBT/SCORM framework using Pipwerk’s wrapper. I’ll post the files and how-to when I get it written.

  • 2 Comments
  • Filed under: Flash, Work
  • Mapping out a process of fun

    Off to the Ballantyne satellite offices to be locked in a room for 2 whole days of process mapping fun!

  • 0 Comments
  • Filed under: Work
  • Reorg’d!

    Crap. I hate it when that happens. BAC EL merged the instructional designers, developers and quality management into one design team. And we got 2 levels of new management.

    I should be more upset about it. But after being outsourced once, this “chage wave” just doesn’t seem as big. Roll with it.

  • 0 Comments
  • Filed under: Work
  • Wii’re done

    The BAC Wii project has come to an end for now – we delivered our final report yesterday. Hopefully word of what we’ve done will spread and we’ll be ask to share it with more groups. It was a really cool project to be on – the potential of the Wii and kinesthetic learning is an interesting area – and I don’t think that many people are doing much with it yet. Replacing the mouse with a Wii remote is a great way to increase engagement – I wonder if I could find a way to apply to compliance training? Would make for an interesting course assessment.

    Anyway, I’m posting my outline of the Wii controller class that I spent all of January developing. It makes programming for WiiFlash super simple – just instantiate it and boom – Wii support in any Flash app. Works with all typical mouse events.

    Wii Controller Engine

    • Is an interface between Wii controllers (Remote and Nunchuk) WiiFlash and the application or game
    • Enables quick ramp up for a developer without having to learn the intricacies of the Wii controllers or their data
      • Can add simple Wii controller to an app in as little as 3 lines of code
      • Contains about 1000 lines of code (not including virtual mouse or WiiFlash itself)
      • WiiFlash returns raw data – engine normalizes it up to make it useful for a developer
      • The Wii controllers return small, but long numbers – 0.000000007199879823173
      • “Smoothing” out the data – eliminates the hand jitter by throwing out small changes and/or averaging data over time
      • Accesses the cursor’s X and Y position – WiiFlash gives you the location of the IR points (prefers 2 of them) as the Remote sees them on a scale from 0-1 – not in relation to your screen area.  Engine handles switching from 2 IR points visible to 1 IR point and convert the data to exact X and Y coordinates of where you’re pointing
    • Creates a secondary “virtual mouse” that allows the Wii mote to act as your normal mouse (separate from WiiFlash’s built-in “mouse control” mode) within the boundaries of your Flash movie
      • Uses Senocluar’s VirtualMouse class
      • A button is single click, B is double click
      • Makes it simple to add Wii capabilities to your app since it works with the mouse controls that you’re used to developing for
      • Allows for custom mouse cursors and the ability to switch between them with 1 line of code
      • Mouse cursors are contained in an external SWF
    • Creates a standard way to getbutton press and release state information for the Remote and the Nunchuk.Provides “isDown” data for major buttons on the Remote and Nunchuk: A, B,C and Z
    • Controls rumble – set the duration
    • Provides Nunchuk data in the same way as the Remote: rotation, acceleration, etc.
    • Nunchuk thumb stick – returns the position of the nub from -100 to +100
      • Also can use the 8 corners as buttons, names represent a compass: N, E, S and W
    • Created (but not tested) with multiple Wii motes in mind – should easily scale to up to 4 Wii motes
  • 5 Comments
  • Filed under: Flash, WiiFlash, Work
  • WiiFlash 0.4 released!

    WiiFlash 0.4 has been released today! New features include: 4 IR points on the sensor bar, tracking the size of the IR points (for determining depth), and battery information from the Wii remote.

    Since Jason has been busy trying to get a good depth (z-axis) reading with the 0.3.2 release – this is very welcome news. I’d wondered how Nintendo managed to get this information and it never occured to me that the size of the IR point would be it – but it makes perfect sense.

    Sadly our Wii research project ends tomorrow – we give our final presentation to the sponsors at 1pm. I hope that we get to keep the Wii motes and sensor bars – there are a few minigames that I’d like to make. It would be cool to make some WiiFlash games that Sophie could play.

  • 2 Comments
  • Filed under: Flash, WiiFlash, Work
  • This is a short presentation that I gave to the Bank’s Flash Platform Developer Community group 2 weeks about. Its about the event bubbling system in AS3 and includes an example of how I’m using it to trigger events in ramen Player. Also includes a screen shot of my current project at work – a demo for the new LMS system using an avatar character.

    AS3 Event Bubbling Deck

    The more I learn about events the better they get and more possibilities appear. I’ve added an audio player page object type that can control the avatar SWF by events. The whole thing is setup using XML – so it’s completely customizable.  You can do so much more than was ever possible in AS2 and with much less code. Probably doesn’t sound impressive, but they fact that they are all separate SWFs running though a player SWF with XML defined event data responding to custom events being passed from SWF to SWF, blah, blah, blah makes it sound more way more exciting. :)

  • 0 Comments
  • Filed under: Flash, Work