Board index FlightGear Development Tutorials and missions

Achievements: New Motivator and Feature Introduction Method

Interactive in-sim tutorials and missions

Achievements: New Motivator and Feature Introduction Method

Postby kyokoyama » Wed Dec 21, 2011 8:42 pm

If you have played any video games on the Xbox 360 or on the iPod Touch/iPad, you may have heard of the word "Achievements".
These are special credits and recognition that players of these games can obtain while playing a game by performing certain tasks and reaching set goals.


This is an example of an Achievement on Crysis 2, obtained by crushing an enemy with a giant doughnut. (Skip to 0:49)

After reading such a suggestion in an earlier thread that proposed presenting FlightGear on videogame distribution website Steam, I figured that using these achievements for FlightGear could not only be feasible, but also act as a good way to motivate new FG users to explore new features, aircrafts and locations outside their comfort zone.

What I'm imagining is that, once the achievement feature is turned on through FGrun or the console, FlightGear will start tracking your flight and display some sort of image or text when the pilot does a task that is designated in a separate Nasal or XML file. (or whatever type of file corresponds to this) Contributions to FG such as additions in the Wiki, scenery repository, official hangar and development of new aircraft could also be achievements that are (somehow) credited to the user manually.
Once an achievement is made, it will be added onto a list of achievements that the user has accomplished. Here, the user may also view what achievements are still incomplete, and can attempt to complete it.
Additional achievements could be downloaded by installing additional scenery, add-ons or aircraft to the base FG package.

Each achievement will consist of a name and a simple description for the action needed to obtain it. For example, they could look like the following:

  • Out of Noobville: Start up or fly out of the San Francisco Bay default scenery area for the first time
  • Crippled Miracle: Perform a successful landing from an altitude of at least 5000ft AGL with all engines failed
  • First Words: Connect to FGCom for the first time
  • Wannabe Architect: Publish 5 scenery models to the FG Scenery Repository
  • The Flying Ballerina: Recover from a downwash or mid-air spin in a helicopter without crashing
  • Dirty Hands, Dirty Gears: Successfully make dirt runway landings at five different airfields
  • Icarus on Fire: Fly at least 100nm in one flight with the Jetman
  • Flying among Aliens: Perform one planned flight filed and tracked by VATSIM
  • Clipped: Survive a landing with an F-14B with one wing launched off
  • Pyromaniac: Make a wildfire with the Bombable feature

Each achievement can be viewed multiple times, but it will only be recorded in the achievements list once.

I understand that this may sound more like a videogame than a serious flight simulator; for this reason, I specifically suggested earlier that this is an optional feature which may be turned off. Also, I believe that this could act as a gateway for casual pilots to be involved in serious flying, or even developing for FG.

-How does this sound?
Look for "B-BIRD" "N127KY" or "AVA0004" -that's me.

Despite having over 1700 posts here, I am not even close to being the most skilled guy here... I'm just words and bad drawing, not experience. :P
kyokoyama
 
Posts: 1988
Joined: Sun May 03, 2009 2:16 am
Location: Earth
Callsign: B-BIRD, N127KY
Version: 2.12.1
OS: Windows Vista

Re: Achievements: New Motivator and Feature Introduction Met

Postby Hooray » Wed Dec 21, 2011 9:04 pm

Many more ideas were mentioned here already: viewtopic.php?f=18&t=14702#p145417

Most of this should be fine to implement in scripting space. The tutorial system is an excellent example actually.
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11340
Joined: Tue Mar 25, 2008 8:40 am

Re: Achievements: New Motivator and Feature Introduction Met

Postby kyokoyama » Wed Dec 21, 2011 9:28 pm

Hooray wrote in Wed Dec 21, 2011 9:04 pm:Many more ideas were mentioned here already

Actually... That's kind of my post, and I'm echoing and suggesting this as a separate feature independent from the Steam thing.

But back to this -how exactly could this be implemented? (even though I don't really know any of FG's scripting languages)
Look for "B-BIRD" "N127KY" or "AVA0004" -that's me.

Despite having over 1700 posts here, I am not even close to being the most skilled guy here... I'm just words and bad drawing, not experience. :P
kyokoyama
 
Posts: 1988
Joined: Sun May 03, 2009 2:16 am
Location: Earth
Callsign: B-BIRD, N127KY
Version: 2.12.1
OS: Windows Vista

Re: Achievements: New Motivator and Feature Introduction Met

Postby Hooray » Wed Dec 21, 2011 10:01 pm

It's just a matter of permanently watching the property tree, this can be done using polling or listeners - so that Nasal code can be invoked once certain events take place, these could in turn be combined to create completely new -more abstract- event types.

The tutorial system is documented here: http://wiki.flightgear.org/Tutorials
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11340
Joined: Tue Mar 25, 2008 8:40 am

Re: Achievements: New Motivator and Feature Introduction Met

Postby spitfirebruce21 » Thu Dec 22, 2011 12:22 am

The answer is atually steam, with its scripting its EASY to add, blusnowman should be able to explain, this is the full list, probobly a lot of duplications:

First Touchdown! When your wheels have left the ground and hit down again.
Crashist!- crash 5 times
First takeoff- when you take off (Wheels lift the ground)
First takedown (Bombable only)- shoot down something.
first prop ( a prop plane)
first jet (First jet flight)
First Flight (First running
large fan (FUll screen)
favourite flight (Add a airport and aircraft to favourites)
social Use MP.
Load- use FG-com
Naval (Land on a carrier)
Sleeping with the fishes (Crash in water)
Adding on (install a add on)
Helicopterist (Fly a helicopter)
Later… (save a flight)
Automatic (Use Autopilot)
Local (Use Local Weather)
Windy (Fly in strong winds 20+ knots)
Crosswind take off (Crosswind liftoff with winds 20+ kts pushing from either left or right no in front or back)
crosswind landing (Crosswind touchdown with winds 20+ kts pushing from either left or right no in front or back)
long flight (Fly for longer than 3 hours)
Super long flight (Fly for 10 hours or more)
Veterian (Fly over 500 HOurs
Out of Noobville: Start up or fly out of the San Francisco Bay default scenery area for the first time
Crippled Miracle: Perform a successful landing from an altitude of at least 5000ft AGL with all engines failed
First Words: Connect to FGCom for the first time
Wannabe Architect: Publish 5 scenery models to the FG Scenery Repository
The Flying Ballerina: Recover from a downwash or mid-air spin in a helicopter without crashing
Dirty Hands, Dirty Gears: Successfully make dirt runway landings at five different airfields
Icarus on Fire: Fly at least 100nm in one flight with the Jetman
Flying among Aliens: Perform one planned flight filed and tracked by VATSIM
Pyromaniac: Make a wildfire with the Bombable feature
Projects: YMBD, YJST
Horizon Flightgear Hangar!
Flightgear On Android
I may have a house on the ground, but my Home is in the sky.
User avatar
spitfirebruce21
 
Posts: 756
Joined: Thu Mar 03, 2011 6:39 am
Location: Adelaide outskirts (YMBD)
Callsign: ADL-FTW
Version: 2.6
OS: Windows 7 profesiona

Re: Achievements: New Motivator and Feature Introduction Met

Postby kyokoyama » Thu Dec 22, 2011 1:18 am

Hooray wrote in Wed Dec 21, 2011 10:01 pm:permanently watching the property tree, this can be done using polling or listeners

This is probably the more realistic answer. Thanks for the reference and idea, Hooray.

Spit: (Uhh... before I start, please note that for half of your ideas, you just plagiarized from my suggestions...)

Please realize that I said independently from Steam. If Steam will be used, just integrate that idea into this. If not, just use my idea.
Look for "B-BIRD" "N127KY" or "AVA0004" -that's me.

Despite having over 1700 posts here, I am not even close to being the most skilled guy here... I'm just words and bad drawing, not experience. :P
kyokoyama
 
Posts: 1988
Joined: Sun May 03, 2009 2:16 am
Location: Earth
Callsign: B-BIRD, N127KY
Version: 2.12.1
OS: Windows Vista

Re: Achievements: New Motivator and Feature Introduction Met

Postby Hooray » Thu Dec 22, 2011 8:54 am

spitfirebruce21 is actually still right - many of these "events" you are interested in, can be directly taken from the property tree, others would consist of combinations of lower level events, maybe including timers.

Many of these things are directly related to features of the tutorial system, which should conceptually also be able to "watch" a pilot, assess and evaluate the performance and dynamically provide feedback.

For instance, imagine a simple "student pilot scenario" - i.e. fixed climb rate climbs vs. fixed airspeed climbs.

This is something that would be VERY simple to check from scripting space using Nasal and polling. You would only watch a bunch of properties and see if the aircraft is climbing and if the objective (climb rate or airspeed) are met (within a certain tolerance).

Here, the feedback loop could either directly respond to the student pilot via on screen messages, text to speech or gather data in the background and use it for competition analysis (steam). This is really just a backend implementation issue and could be easily addressed by not hard coding a certain backend but instead provide a callback to be invoked for such events.

There are numerous other maneuvers that pilots could be expected to fly, while scripts (configured via the property tree/XML) are used to watch their performance. You could even implement this very generically, so that these "missions" would not be aircraft specific. Imagine flying a holding pattern: a Nasal script could obviously implement this mission without being too aircraft specific (beside speeds, altitudes - i.e. performance). So people could start different aircraft (c172, b1900d, 777) and still run the same "holding pattern mission".

You could even use Nasal to script AI/ATC interactions that pilots need to respond to properly.

For example, another simple idea to get you started might be a Nasal script to implement a GCA ("ground controlled approach") mission: http://de.wikipedia.org/wiki/Ground_Controlled_Approach

This would simulate an air traffic controller "talking you down", i.e. providing all the feedback an ILS would normally provide (vertical/horizontal deviation from the glide path). This could be very easily implemented in Nasal space. You would just need to configure the script (airport, runway, touchdown point, altitude, glide path) and the GCA script could vector you onto the right course and request you to change altitude as required.
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11340
Joined: Tue Mar 25, 2008 8:40 am

Re: Achievements: New Motivator and Feature Introduction Met

Postby kyokoyama » Thu Dec 22, 2011 7:21 pm

Hooray wrote in Thu Dec 22, 2011 8:54 am:many of these "events" you are interested in, can be directly taken from the property tree

I think we're in violent agreement on that... The technical aspect of implementing these Achievements, I have no objections.

spitfirebruce21 wrote in Thu Dec 22, 2011 12:22 am:The answer is atually steam

THIS sentence right here is what I was trying to refute, rather than the whole thing about simply adding extra code to allow this feature.
Look for "B-BIRD" "N127KY" or "AVA0004" -that's me.

Despite having over 1700 posts here, I am not even close to being the most skilled guy here... I'm just words and bad drawing, not experience. :P
kyokoyama
 
Posts: 1988
Joined: Sun May 03, 2009 2:16 am
Location: Earth
Callsign: B-BIRD, N127KY
Version: 2.12.1
OS: Windows Vista

Re: Achievements: New Motivator and Feature Introduction Met

Postby Hooray » Thu Dec 22, 2011 7:52 pm

I actually agree here, this could and certainly should be developed separately from anything related to steam.
That would be more flexible and more powerful from a design point of view, while still providing all the flexibility to also link it to networks like steam.

We've had many people asking for "missions" support for years, i.e. creating "game objectives" and allowing people to complete tasks. There are many things that are possible here. The tutorial system certainly is an excellent starting point, as is flug's bombable addon.


The question is, if you'd want to create a completely new system in scripting space (i.e. similar to the tutorial system or to bombable) or if you'd want to extend the tutorial system instead. The latter would have a number of advantages, i.e. being a very direct entry point and pretty accessible for end users, even without requiring rock solid Nasal knowledge.
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11340
Joined: Tue Mar 25, 2008 8:40 am

Re: Achievements: New Motivator and Feature Introduction Met

Postby kyokoyama » Thu Dec 22, 2011 7:56 pm

In that case, which would be more flexible and easier to integrate? Also, what would be the advantages of creating a new scripting space, and the disadvantages for both approaches?
Look for "B-BIRD" "N127KY" or "AVA0004" -that's me.

Despite having over 1700 posts here, I am not even close to being the most skilled guy here... I'm just words and bad drawing, not experience. :P
kyokoyama
 
Posts: 1988
Joined: Sun May 03, 2009 2:16 am
Location: Earth
Callsign: B-BIRD, N127KY
Version: 2.12.1
OS: Windows Vista

Re: Achievements: New Motivator and Feature Introduction Met

Postby Hooray » Thu Dec 22, 2011 9:12 pm

Starting completely from scratch will obviously require a fair amount of Nasal knowledge, because you need to come up with a design that works. That will be more powerful in the long run, because the system can be specifically crafted for this purpose in particular.

On the other hand, using the XML-configurable tutorial system will be very simple in the beginning, even people without significant Nasal knowledge could get started quickly. But you'll be more likely to hit road blocks eventually, because the tutorial system was never designed to be as interactive as required here.

On the other hand, extending the tutorial system to provide better support for interactive features would obviously be useful for many different tutorial-related aspects.

Starting from scratch, you'll have all the power you need, simply because you get to design your architecture right from the beginning. Borrowing concepts from others scripts (including the tutorial system!) might still be a good idea though. If this approach is pursued, you'd basically end up with another system entirely implemented in scripting space, like flug's bombable addon or Thorsten's local weather system. On the other hand, if you don't know Nasal yet, or if you have not yet done any programming before, then this is going to be the least gratifying pathway, because it's going to take you ages. Somebody already knowing Nasal or another scripting language could probably get started fairly quickly, though.

So the tutorial system is certainly easier to get started. Even if you should hit any road blocks, you won't need to write an entire system from scratch, but you could just augment it where necessary - either by patching the existing system, or forking the script and creating a mission-specific version of it.
Another advantage here might be that you might get some fellow Nasal coders here to implement some of the required infrastructure as part of the existing tutorial system.

Personally, I would recommend looking into creating a new system though. In its current form, the tutorial system doesn't really have any concept of "tasks" or job queues running in the background, but once you start assigning missions, you need some system running in the background to monitor the performance of the pilot, gather data, create statistics and populate a feedback loop.

This may sound much more complex than it really is. For instance, remember the "GCA" idea I mentioned: if you were to create such a system entirely in scripting space, it would certainly end up being less than 150 lines of Nasal code. The important thing here to keep in mind, is to "rinse and repeat": come up with similar ideas and then keep generalizing, unifying and refactoring the system, so that it becomes increasingly flexible for different scenarios/missions.
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11340
Joined: Tue Mar 25, 2008 8:40 am

Re: Achievements: New Motivator and Feature Introduction Met

Postby kyokoyama » Thu Dec 22, 2011 9:26 pm

Hooray wrote in Thu Dec 22, 2011 9:12 pm:On the other hand ... On the other hand...

Whoa.. You have three hands! :shock: (sorry, had to say that...)

But seriously...

Hooray wrote in Thu Dec 22, 2011 9:12 pm:Starting from scratch, you'll have all the power you need, simply because you get to design your architecture right from the beginning.

As you said, I suppose this would be the better approach since there's more power and flexibility in actions.

Hooray wrote in Thu Dec 22, 2011 9:12 pm:The important thing here to keep in mind, is to "rinse and repeat": come up with similar ideas and then keep generalizing, unifying and refactoring the system, so that it becomes increasingly flexible for different scenarios/missions.

I will try to remember this, if/when I get into making this system on my own.

In the meantime, I suppose I'll have to learn Nasal myself... (unless someone wants to take on this project with me? :D )
Look for "B-BIRD" "N127KY" or "AVA0004" -that's me.

Despite having over 1700 posts here, I am not even close to being the most skilled guy here... I'm just words and bad drawing, not experience. :P
kyokoyama
 
Posts: 1988
Joined: Sun May 03, 2009 2:16 am
Location: Earth
Callsign: B-BIRD, N127KY
Version: 2.12.1
OS: Windows Vista

Re: Achievements: New Motivator and Feature Introduction Met

Postby Hooray » Fri Dec 23, 2011 1:24 pm

If you are highly motivated to do this, it should be possible to learn Nasal "as you go", i.e. at the same time.
Thorsten apparently started out without any significant FG/Nasal knowledge and implemented his local weather prototype while still learning Nasal. But it seems he had some previous programming experience. So it's definitely possible. And even if you don't find anybody directly contributing, you can surely help enough people here to provide guidance and mentoring for Nasal related issues.
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11340
Joined: Tue Mar 25, 2008 8:40 am


Return to Tutorials and missions

Who is online

Users browsing this forum: No registered users and 1 guest