Digital Ethics in virtual worlds

 

Sharma, S., Lomash, H., & Bawa, S. (2015). Who Regulates Ethics in the Virtual World? Science and Engineering Ethics, (1), 19. https://doi-org.library.esc.edu/10.1007/s11948-014-9516-1

Kitely.com. (2013, August 27). Privacy policy. Retrieved at

https://www.kitely.com/privacy (secure server).

Kitely.com. (2015, June 1). Terms of service. Retrieved at https://www.kitely.com/terms (secure server).

 

 

 

Multiverse Simulation Masters: Ability in Open-Simulator project proposal

Multiverse Simulation Masters: Ability in Open-Simulator

Salie Davis

Advanced Design Seminar: Portfolio Project (2018FA1-EDET-6030-01)

Dr. Nicola Marae Allain

Empire State College

September 15, 2018

Multiverse Simulation Masters will consist of 3d simulation and curriculum, based in a virtually immersive learning environment. Simulations are intended to help the user experience through immersive technology an event, a place, or an identity that they are not able to in a real-world scenario. (Nelson, 2013). It will be designed for age groups with flexibility based on student level and ability, With the recommended age group being over twelve. This is based on evolving curriculum for goal-based learning that can be changed and adapted by other instructors to serve there individual needs.. Often in virtual worlds, through an avatar, people can take on another identity. This is often used in role play games, where characters become fantasy figures and creatures (Nelson, 2013). My idea would take the “identity” aspect and expand on it. In an “ability simulation” a real-world identity is brought in and experienced in an immersive way that many people would not willingly seek out.

The specific simulations for this course will be “Ability in Open-Sim”. The aim of this simulation is to help the participant experience what it is like to move about with assistive devices in confined spaces. I will use avatar assistive devices like wheel chairs and crutches and build spaces that a normal avatar could easily navigate however with the added devices, these may be an issue. This is unlike the traditional goal of virtual world design with areas that are over-sized and easily navigated, with open room designs and smooth uncluttered landscapes. In the real-world obstacles are multiplied for those individuals who rely on assistive devices.

In addition to the environment the simulation can also touch on ignorance, and resentment such as common responses from society that people with these challenges face daily. This can be experienced through interacting with scripted NPCs (non-player characters) The participants also interact through the receipt of note-cards in-world to learn a role play “back story”, become a specific character, act out assigned tasks, record a reaction using screen capture, blog about what they experienced and react to other participants experiences. Resources will be provided and grading would be based on participation.  Essentially, through the use of story, the students must complete daily tasks (quests) within the created environment and interact with scripted non-player characters while recording their experiences and ideas either in writing or screen capture. Additional online support materials and links can be accomplished with my WordPress site WOPOLI.COM .

To make sure this simulation stays within the bounds of the course and time frame, I will be using a re-purposed open source build. This re-purposed world includes a virtual orientation center that will teach movement controls and other aspects of the technology needed for success. I will also be focusing solely on the introduction section of the virtual world and within the simulation room itself, a single structure, two-story home and the inhabitants thereof. The back story will be setting up a scenario of a foster situation in which the participant is limited in mobility. For group participation other simulation scenarios may use the caregiver character with a different set of goals.

Within the aspect of educational design research, the goal of this simulation example is to add to the knowledge base of how students can be supported to learn using virtual world technology. This simulation example will give theoretical insight into how virtual worlds can be used for teaching and learning (Bakker, 2018).

Resources

Bakker, A. (2018). Design research in education: A practical guide for early career researchers. London: Routledge.
Nelson, B. C. & Erlandson, B. E. (2012). Design for learning in virtual worlds: Interdisciplinary approaches to educational technology). New York, NY: Routledge

 

Testimonial: Our God who can move mountains…

God has brought to mind a specific memory, repeatedly, that he calls to be shared.  It is the day that Jesus gave me a hug. It started weeks before the actual event…. In a time when euthanasia was being pushed in the medical field and legal arena in our country, I went to a seminar, back when I specialized with the elderly and those impacted by Alzheimer disease. In this seminar the speakers were pro ending the life of elderly patients in nursing homes. The social worker from our site also joined me and sat with me in the audience. She casually glanced over as I wrote notes and thoughts on the conversation. At the end of the presentation I stood up and countered with the risks and ethical implications, not religion based, very respectful. I was proud to have offered the counter aspect. It wasn’t easy and was not received well however I thought it to be my ethical responsibility to offer another perspective on a one sided seminar discussion. The next day at work I was called into the social workers office. I was reprimanded for speaking publicly at the conference in opposition to euthanasia. I was told I was “suffering from belief system syndrome” as if I had a mental illness. The social worker convinced the administration I needed additional exposure to alternative beliefs and I was required to attend an 8 hour seminar on spirituality in the health care field. Out of all the presenters that day only one was “christian” but it focused on the power of prayer as the power positivity and belief has on healing, not the power of God to heal. The others were about other religions, meditations, and controversial beliefs and practices. Driving home that day I felt I had just left a war zone and would be expected to report back “what i had learned” All the way home I spoke with God, my faith had not been shaken, I knew what i believed, I understood and accepted others have different views, but it was still upsetting realizing that I was expected not to have an open discussion and to condone all beliefs and practices, even euthanasia, in the least by simply remaining silent and that my own professional concerns and personal ethical beliefs were not respected. This was something I did not feel I should be asked to do ethically. Morality is a much deeper level, however even on the surface of professional ethics I felt this was not appropriate. As I neared my village I was no longer talking to God I was yelling. Tears streaming down my face. (I really should not have been driving at this point.) I wasn’t yelling at God. I was not angry at God. I was just hurt and wanted God to take the pain away. He spoke in soft thoughts in my mind and I snapped back. That wasn’t good enough. I needed more. I could envision Jesus in my mind sitting in the car with me. I knew God was with me and listening and I felt his love but I yelled back still…. No! I need more. I don’t want thoughts in my mind to sooth me, I do not want visions in my mind to comfort… I want a hug. I said to Jesus directly, you are God and nothing is impossible for you. I know it is not reasonable for me to expect you to appear in the flesh and give me a hug but that is what I need. I need a hug NOW. My God who can move mountains and bring nations to their knees. My God who loves me as a daughter, I needed a hug from my father. It didn’t matter how ridiculous my request sounded. I was like an inconsolable child. I was hurt. At this point I was driving into my home village. The village was empty on a Tuesday evening with everyone at supper. Then I saw them at the little church that was only occupied a few hours a week on Sunday morning and occasionally on a Wednesday evening. There was no reason for them to be there, on the sidewalk with their car doors open, about to get in and drive away, at the exact moment as I approached…. If the car had been there without seeing them, I would not have stopped, and a moment later they would have been on their way home, far outside of the village…. but there they were, on the sidewalk. I pulled over to the side of the road and literally jumped out of my car, I didn’t even have time to think about it. It was automatic. I think, by the looks on their faces I scared the dickens out of them with tears on my cheeks and stuttering as I approached them. I don’t even remember what I said but I told them I was there for hug and I got one. They offered to speak with me, they hadn’t even eaten supper yet, I tried to decline but they insisted. They had only stopped by the church on chance, a last minute thought as they were driving home, past the village church for some quick cleaning… I don’t even remember what we talked about. What I do remember is that I asked God for a miracle of a Hug that day. That is all I wanted but everything I needed and God moved a mountain just for me…..

Treasure hunt scripts

 

This is the script for a wearable hud that works with other game features as well. For this example we will use it just to collect tokens for finding gems. You would put this in a wearable object like jewelry,  a badge or a hat etc.

// The actual HUD //
// ——————————————–
// ——————————————–
// declare / define global variables //

integer pCoins = 0;
integer pGems = 0;
integer pScore = 0;
string vhCustomTitle = “Tresure Hunt”;
string vhTitleOffset = ” \n \nThanks for trying the Game Kit.\nBegin by collecting gem.”;
string vhMessageLine = “\n \n “;
string vhCoinString = “”;
string vhGemString = “”;
string vhScoreString = “”;
integer vhAccessCost = 0;
list pPuzzleList = [];
integer pHUDworn = 0;
string gsCardOneName = “config”;
string g_sNoteCardName;
list gOneCard;
list g_lTempLines;
integer g_iLine;
key g_kQuery;

initialize(string _action) {
if (_action == “”) {
loadNoteCard(gsCardOneName);
} else if (_action == “finish”) {
integer i;
for (i = 0; i< 7; ++i)
{
string tLineText = llList2String(gOneCard,i);
if (i == 0)
{
vhAccessCost = (integer)right(tLineText,”:”);
}
if (i == 1)
{
vhCustomTitle = right(tLineText,”:”);
vhCustomTitle = vhCustomTitle + “\n “;
}
if (i == 2)
{
vhTitleOffset = right(tLineText,”:”);
vhTitleOffset = vhTitleOffset + “\n \n “;
}
llListen(999,””, “”,””);
//llListen(reset_channel, “”, “”, “”); // RESET channel

}
}
}

loadNoteCard( string _notecard ) {
g_lTempLines = [];
g_sNoteCardName = _notecard;
g_iLine = 0;
g_kQuery = llGetNotecardLine(g_sNoteCardName, g_iLine);

}

notecardFinished(string _notecard){
if (_notecard == gsCardOneName) {
gOneCard = g_lTempLines;
initialize(“finish”);
}
}

// ——————————————–
// ——————————————–
// define global custom functions //
// these are from the lsl tutorials //

string left(string src, string divider) {
//llSubStringIndex
// find the first appearance of the divider
integer indexLF1 = llSubStringIndex( src, divider );
if(~indexLF1)
// check to see that the appearance falls in a positive number position
//string llDeleteSubString(string src, integer start, integer end)
// remove all of the text that falls to the right of the first divider
return llDeleteSubString( src, indexLF1 + llStringLength(divider)-1, -1);
return src;

}

string right(string src, string divider) {
integer index = llSubStringIndex( src, divider );
string tString = “”;
if (~index)
{
// this fetches the string to the right of the first marker
tString = llDeleteSubString( src, 0, index + llStringLength(divider) – 1);
//llSay(0,”whats left ” + src);
// now we need to get the right half of that
integer indexSR1 = llSubStringIndex(tString, divider);
if (~indexSR1)
{
// here’s the far right side of a 3 part list
tString = llDeleteSubString(tString, 0, indexSR1 + llStringLength(divider) – 1);
}
}
return tString;
}

string center(string src, string divider) {
integer index = llSubStringIndex( src, divider );
string tString2 = “”;
if(~index)
{
tString2 = llDeleteSubString( src, 0, index + llStringLength(divider) – 1);
integer indexC1 = llSubStringIndex(tString2, divider);
if (~indexC1)
{
return llDeleteSubString( tString2, indexC1 + llStringLength(divider)-1, -1);
}
}
return tString2;
}

default
{
on_rez(integer start_param)
{

if (llGetAttached() > 30)
{
pHUDworn = 1;
initialize(“”);
llSetText(vhCustomTitle + vhTitleOffset + “\n \n “, <0,0,0>, 1);
}else{
llSetText(“”, <0,0,0>, 1);
llSay(0, (string)llGetAttached());
}

}
state_entry()
{
initialize(“”);
integer messageInt = llListen(1717, “”, NULL_KEY, “” );
integer messageInt2 = llListen(1718, “”, NULL_KEY, “” );
integer messageInt3 = llListen(1719, “”, NULL_KEY, “”);
integer messageInt4 = llListen(1791, “”, NULL_KEY, “”);
integer messageInt5 = llListen(1616, “”, NULL_KEY, “”);
integer messageInt6 = llListen(2654, “”, NULL_KEY, “” );
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;
}

touch_start(integer total_number)
{
// if they touch the scorekeeping object – readout the scores
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;
if (pHUDworn == 1)
{
llSetText(vhCustomTitle+vhMessageLine+vhCoinString+vhGemString+vhScoreString, <0,0,0>, 1);
}else{
llInstantMessage(llGetOwner(),vhCustomTitle+vhMessageLine+vhCoinString+vhGemString+vhScoreString);
}
}

listen( integer channel, string name, key id, string message )
{
if (channel == 1717)
//llSay(0, (string)channel + ” ” + name + ” ” + (string)id + ” ” + message);
{
string mesR = right(message, “:”);
string mesL = left(message, “:”);
string mesC = center(message, “:”);
integer tValue = (integer)mesR; // convert the coin string to a number
//llSay(0, (string)llGetOwner());
//llSay(0, mesL);
if (mesL == (string)llGetOwner())

// this is the parse for hud owner messages only
{
//llSay(0, “LINE 110: ” +(string)tValue);
pCoins = pCoins + tValue;
// fix according to positive v negative values
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;
if (pHUDworn == 1)
{
llSetText(vhCustomTitle+vhMessageLine+mesC+vhCoinString+vhGemString+vhScoreString, <0,0,0>, 1);
}else{
llInstantMessage(llGetOwner(), vhCustomTitle+vhMessageLine+mesC+vhCoinString+vhGemString+vhScoreString);
}
}
// llSay(0, (string)pCoins);
}

if (channel == 1718)
{
string mesR = right(message, “:”);
string mesL = left(message, “:”);
string mesC = center(message, “:”);
integer tValue = (integer)mesR; // convert the coin string to a number
//llSay(0, mesL);
//llSay(0, (string)llGetOwner());
if (mesL == (string)llGetOwner())
{
if (tValue > 0)
{
if (pCoins >= tValue)
{
//llSay(0, “LINE 132: ” +(string)tValue);
pCoins = pCoins – tValue;
}else{
pCoins = 0;
}
}
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;

if (pHUDworn == 1)
{
llSetText(vhCustomTitle+vhMessageLine+mesC+vhCoinString+vhGemString+vhScoreString, <0,0,0>, 1);
}else{
llInstantMessage(llGetOwner(), vhCustomTitle+vhMessageLine+mesC+vhCoinString+vhGemString+vhScoreString);
}
}
}

if (channel ==1719)
{
if (message == (string)llGetOwner())
{

if (pCoins >= vhAccessCost)
{
pCoins = pCoins – vhAccessCost;
llSay(1720, “Y”);
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;
if (pHUDworn == 1)
{
llSetText(vhCustomTitle+vhMessageLine+”You spent “+ (string)vhAccessCost+ ” tokens to use this object.” +vhCoinString+vhGemString+vhScoreString, <0,0,0>, 1);
}else{
llSay(0, vhCustomTitle+vhMessageLine+”You spent “+ (string)vhAccessCost+ ” tokens to use this object.” +vhCoinString+vhGemString+vhScoreString);
}
}else{
llSay(1720, “N”);
}
}
}

if (channel == 1791)
{
if (message == (string)llGetOwner())
{
// here we should add a list to hold which objects have been acquired. We can do it by storing a list of the
// puzzle boards that awarded gems – and simply ignoring repeat awards – (you could add a message to that effect as well.
list tTest = [id]; // the uuid of the puzzle board
integer foundIndex = llListFindList(pPuzzleList, tTest);
if (foundIndex == -1)
{
pGems = pGems+1;
list insertNameList = [id];
pPuzzleList = llListInsertList(pPuzzleList, insertNameList, 0);
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;
if (pHUDworn == 1)
{
llSetText(vhCustomTitle+vhMessageLine+”You earned a prize.”+vhCoinString+vhGemString+vhScoreString, <0,0,0>, 1);
}else{
llInstantMessage(llGetOwner(), vhCustomTitle+vhMessageLine+”You earned a prize.”+vhCoinString+vhGemString+vhScoreString);
}
}else{
llInstantMessage(llGetOwner(), “You have already earned this prize.”);
}
}else{

//llSay(0, message);
key tKeyMes = (key)message;
list tTest = [tKeyMes];
//llSay(0, (string)pPuzzleList);
//llSay(0, (string)tTest);
integer foundIndex = llListFindList(pPuzzleList, tTest);
//llSay(0, (string)foundIndex);
llSay(3719, (string)foundIndex);
}

}
if (channel == 1616)
{
string whoCalled = right(message, “:”);
if (whoCalled == “board”)
{
llSay(1617, ((string)pCoins + “:” + (string)pGems));
}else{
llSay(1417, ((string)pCoins + “:” + (string)pGems));
}
}

if (channel == 2654)
{
llSay(2655, “ScorekeeperReply”);
}

}
dataserver(key _query_id, string _data)
{
if (_query_id == g_kQuery) {
if (_data != EOF) {
g_lTempLines += [_data];
g_iLine++;
g_kQuery = llGetNotecardLine(g_sNoteCardName, g_iLine);
} else {
notecardFinished(g_sNoteCardName);
}
}
}

}


 

This is the notecard you would include in the object as well. Title in config

 

// PAY BOARDS TO PLAY // :5
// HUD GAME TITLE // :Treasure Hunt Game
// INSTRUCTIONS // : Collect gems.


 

And now for the treasure token script put this inside any object you want to award tokens for finding.

 

string pCoinValue = “30”; // um, change the number to make it worth more or less
string pAcquireMessage = “Follow the gems.”; // change the text inside quotes to make it say something different
string CONTROLLER_ID = “A”;
float tAlpha = 0.8; // set this to 1.0 if you want your object to be fully opaque.
// for the adventurous, you could make a random list and choose different things to say
string gsCardOneName = “config”;
list gOneCard;
list g_lTempLines;
string g_sNoteCardName;
integer g_iLine;
string g_kQuery;
integer resetChannel = 3;
integer respawnDelay = 30;
string vhUseParticles = “TRUE”;
float vhTargetOmega = 0.3;

 

//—————– PRIVATE —————————–
string left(string src, string divider) {
integer index = llSubStringIndex( src, divider );
if(~index)
{
return llDeleteSubString( src, index + llStringLength(divider)-1, -1);
}
return src;
}

string right(string src, string divider) {
integer index = llSubStringIndex( src, divider );
string tString = “”;
if (~index)
{
return llDeleteSubString( src, 0, index + llStringLength(divider) – 1);
}
return tString;
}

initialize(string _action) {
if (_action == “”) {
//llSay(0, “1”);
loadNoteCard(gsCardOneName);
} else if (_action == “finish”) {
//llSay(0, “2”);
integer i;
for (i = 0; i< 7; ++i)
{
string tLineText = llList2String(gOneCard,i);
if (i == 0)
{
pCoinValue = right(tLineText,”:”);
}
if (i == 1)
{
pAcquireMessage = right(tLineText,”:”);
}
if (i == 2)
{
string tAlphaString = right(tLineText,”:”);
tAlpha = (float)tAlphaString;
}
if (i == 3)
{
string stresetChannel = right(tLineText, “:”);
resetChannel = (integer)stresetChannel;
integer lHandle5 = llListen(resetChannel, “”,””,””);
}
if (i == 4)
{
string stRespawnDelay = right(tLineText, “:”);
respawnDelay = (integer)stRespawnDelay;
//llSay(0, stRespawnDelay);
}
if (i == 5)
{
vhUseParticles = right(tLineText, “:”);
if (vhUseParticles == “TRUE”)
{
llMessageLinked( LINK_SET, TRUE, CONTROLLER_ID, NULL_KEY );
}else{
llMessageLinked( LINK_SET, FALSE, CONTROLLER_ID, NULL_KEY );
}
}
if (i == 6)
{
string stvhTargetOmega = right(tLineText, “:”);
vhTargetOmega = (float)stvhTargetOmega;
llTargetOmega(<0,0,vhTargetOmega>, 10, 10);
}
}
}
}

loadNoteCard( string _notecard ) {
g_lTempLines = [];
g_sNoteCardName = _notecard;
g_iLine = 0;
g_kQuery = llGetNotecardLine(g_sNoteCardName, g_iLine);
}

notecardFinished(string _notecard){
if (_notecard == gsCardOneName) {
gOneCard = g_lTempLines;
initialize(“finish”);
}
}
//——————————————–

 

default
{
state_entry()
//
{
initialize(“”);
// on stateChange do stuff
//integer lHandle5 = llListen(resetChannel, “”,””,””);
llSetLinkAlpha(LINK_SET, tAlpha, ALL_SIDES);
// set entire prim 100% visible.
//llTargetOmega(<0,0,vhTargetOmega>, 10, 10);
llSetStatus(STATUS_PHANTOM, TRUE);
llSetStatus(STATUS_ROTATE_Z, TRUE);
llTargetOmega(<0,0,vhTargetOmega>, 10, 10);
llVolumeDetect(TRUE);
}
touch_start(integer total_number)

{
float tAlpha = (llGetAlpha(ALL_SIDES/llGetNumberOfSides()));
//llSay(0,(string)tAlpha);
if (tAlpha>0.0)
{
//llInstantMessage(llDetectedKey(0), “You picked up a Spanish Doubloon!”);
// make it invisible
llSetAlpha(0.0, ALL_SIDES);llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);
// set entire prim 100% invisible.
llSetStatus(STATUS_ROTATE_Z, FALSE);
llSetStatus(STATUS_PHANTOM, TRUE);
// make it non-physical
// start a timer
// make it reappear after n seconds (n=60)
if (respawnDelay > 0)
{
llSetTimerEvent(respawnDelay);
}
// send a message to the gatherer’s HUD to add 1 coin
llSay(1717, ((string) llDetectedKey(0) + “:” + pAcquireMessage + “:” + pCoinValue));
llMessageLinked( LINK_SET, FALSE, CONTROLLER_ID, NULL_KEY );
//llSay(0, ((string) llDetectedKey(0) + “:” + pAcquireMessage + “:” + pCoinValue));
// llSay(1717, ((string) llDetectedKey(0) + “: 100”)); // would also work now or any integer positive or negative for that matter.
}

}
collision_start(integer num_detected)
{
float tAlpha = (llGetAlpha(ALL_SIDES/llGetNumberOfSides()));
if (tAlpha>0.0)
{
//llInstantMessage(llDetectedKey(0), “You picked up a Spanish Doubloon!”);
// make it invisible
llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);
// set entire prim 100% invisible.
llSetStatus(STATUS_ROTATE_Z, FALSE);
llSetStatus(STATUS_PHANTOM, TRUE);

if (respawnDelay > 0)
{
llSetTimerEvent(respawnDelay);
}
llSay(1717, ((string) llDetectedKey(0) + “:” + pAcquireMessage + “:” + pCoinValue));
llVolumeDetect(FALSE);

llMessageLinked( LINK_SET, FALSE, CONTROLLER_ID, NULL_KEY );
}
}
//////
listen(integer channel, string name, key id, string mes)
{

if (channel == resetChannel)
{
initialize(“”);
llSay(0, “Okay, I reset the token”);
llSetLinkAlpha(LINK_SET, 1.0, ALL_SIDES);
if (vhUseParticles == “TRUE”)
{
llMessageLinked( LINK_SET, TRUE, CONTROLLER_ID, NULL_KEY );
}else{
llMessageLinked( LINK_SET, FALSE, CONTROLLER_ID, NULL_KEY );
}
llSetStatus(STATUS_PHANTOM, TRUE);
llVolumeDetect(TRUE);
//llSetTimerEvent(0);

}
}
//////////

timer()
{
//llResetScript();
llSetLinkAlpha(LINK_SET, tAlpha, ALL_SIDES);
if (vhUseParticles == “TRUE”)
{
llMessageLinked( LINK_SET, TRUE, CONTROLLER_ID, NULL_KEY );
}else{
llMessageLinked( LINK_SET, FALSE, CONTROLLER_ID, NULL_KEY );
}
llVolumeDetect(TRUE);
llSetStatus(STATUS_PHANTOM, TRUE);
llSleep(1);
llSetTimerEvent(0);
}
dataserver(key _query_id, string _data)
{
if (_query_id == g_kQuery) {
if (_data != EOF) {
g_lTempLines += [_data];
g_iLine++;
g_kQuery = llGetNotecardLine(g_sNoteCardName, g_iLine);
} else {
notecardFinished(g_sNoteCardName);
}
}
}
}

 

———————————————————————————————————————————————————————————————————————————————————————————-and the notecard for the token is also titled config

How many credits is this token worth? :30
What message should this token say? :Nice find! These Gems will help you on your path.
How opaque is this token?(range is 0.0-1.0) :1.0
What channel number should be used for reset? :3
How many seconds delay before respawning? :30
The token should use particles? (TRUE or FALSE) :TRUE
Speed / direction of spin? (range -1.000 – 1.000) :0.0
// never delete a colon
// Spin speed can be set to 0.0 for no spin
// If you use a HUD, message length should not be longer than about 60 characters.
// resetting any value above is entirely optional.
// Set respawn delay to a negative integer to prevent respawning
// You can reset any token using the channel defined above (if for example you left it channel 3, type ‘/3 ‘ and enter

 

Multiverse Masters Moon Base Proof of concept

 

Slide Show Presented at the CUNY gaming conference in New York City via distance with the assistance of Professor Mark Lewis.

The Best Practices discussion will include an educational game-play prototype  and educator resources as well as content examples to demonstrate how socially-networked learning environments in a three dimensional virtual world and gamification in the virtual world can be beneficial for distance learners and education applications. The main focus for this paper will be a “Best Practices” discussion with a question and answer session in world. During live events technical issues are always a possibility. This is especially true with participants who have never interacted with the technology before. Back up systems can be put in place that allow for participation through other means. This could be a simultaneous meeting in Skype or zoom to combat any sound or access issues. Even live streaming on Youtube may be an option.

The short discussion on Best Practices can be proceeded or followed by individual exploration. The independent walk about will consist of game features and curriculum examples. Guidance may be provided through live in-world chat and voice if pre-scheduled. The participants will likely be educators who are exploring virtual worlds and looking for resources and best practices. Participants may enter the virtual world via a pre-made avatar through a virtual world viewer such as Firestorm or use their own avatar. They can also customize their avatar with freebies offered on site.The participants will need to have some experience in the virtual world and be comfortable with all basic movement and navigational tools.  For those who are not, resources will be made available to other virtual worlds designed with tutorials and tips on these functions.

Preparation for users who have never entered a virtual world is extensive. In a complete pilot program creating your own content to teach students how to use the technology and navigate the tool is ideal however lots of resources exist to help beginners learn how to navigate virtual worlds. Providing links and resources, even when created by others and giving the necessary credit is a viable option. An online resource to get started is the Virtual World Survival Guide (Marie, E. 2016) It is a course designed by another virtual world group. Also creating a support website and support documents or links to other support documents and websites created by third parties is beneficial in the preparation aspect of a a full pilot.  Even in considering an educator’s help guide, important information for educators were found in the actual kitely.com website under terms and conditions and privacy. Another important resource is the educators commons on OSGRID and social sites online by this and other groups. By making this information easily accessible within the learning environment I am reducing unnecessary duplication of resources.

The game design itself is very simple for teachers to implement with students of all ages. The goal is to have the student engage in the activities, be rewarded by tokens that can earn free objects in world, avoid obstacles and traps that will slow progress or remove tokens, and earn prizes or earn points by taking quizzes. Subject matter can be placed in-world in slideshows, text, displays, video and note-cards inside objects or spoken via voice files or text by NPCs. The tokens earned can then be redeemed to purchase special in world items, thus motivating the student to participate further. Added exploration, such as finding other freebies and surprises as you explore, (in the moon base example, finding aliens, avoiding spaceships etc), and interacting all add to the motivational factor.

Being supervised if the student is younger also aids in reducing the complexity of having to learn the tools. For the actual project and pilot, those choosing to participate with no prior virtual world experience will need to prepare in advance or be willing to have an online virtual meeting within the world to gain the one to one support needed for beginners and be directed to the vast resources available from other educators and world owners from around the OpenSim community.

Virtual worlds allow for  synchronous and asynchronous learning activities as demonstrated by Dr. Kay McLennon through the Educators Commons and the Open Simulator Community Conference (OSCC), which I hope to demonstrate in the Best Practices discussion by engaging with those who participate. The Best Practices discussion is a first step in the process when introducing the environment or its potential to educators. This can be done through voice or text and once the technological aspect is learned the participants can then explore independently.

The pilot is built in the virtual world using opensource objects not for commercial use and open source scripts not for commercial use. Also used is objects built from scratch by me, and a few objects built by a 9 year old. Objects built in the virtual word can be used for commercial use and even sold for virtual money to be used in the open sim community or actual money. For these purposes I have chosen to keep my creations CC (Creative Commons) BA (Attribution) NC (Non Commercial)SA (Share Alike) Discussing choices like this and educating the participants is an example of some of the topics that can be discussed in the Best Practices discussion. Prepared slide shows on various example topics can be placed in-world and used as needed depending on the participants interests.

The Space maze is a simple game where you enter a maze of moving stars, navigate to quizzes to win cool space themed prizes, stop along the way for a dance party, find aliens, avoid spaceships, take a 3d photo of yourself, and other surprises. At the end of the maze players will find space craft rides, obstacle courses and scavenger hunts for more aliens. The avatars used in game play are able to be customized and with the space theme you can win space suits and accessories to further customize your avatar. You can even become an alien or robot with other space themed avatars as prizes. These rewards can be won through short quizzes or trivia. An example of an adapted open source quiz/trivia script is provided. Video walk through of the area will also be provided for independent viewing. It can be visited online in Kitely as it is an open world by opening a compatible viewer and entering the world through the website https://www.kitely.com/virtual-world/Salie-Davis/Multiverse-Masters . Though the Space Math Maze and quiz boards are currently set up with math questions it can be tailored for general trivia or any subject matter, or just for fun.

The benefit of interactive virtual world learning is situated cognition, simply stated that knowing is not able to be separated from doing. One theory I connect this with is the concept and application of backwards design in education. Backwards design is goal driven learning, essentially project based learning where you have a final goal in mind. In backwards design you start with the end result, the goal, and then explain to the participants the steps they need to take to achieve this goal. This is in line with gamification and game-based learning and can be used as a motivational tool that will bring them a personal sense of achievement and deeper understanding of the value of knowledge in accomplishing a goal. Research has shown that “…games show higher learning gains than simulations…” (Merchant et al 2014).

Cognitive learning that is interdisciplinary and project based can also enhance the engagement of participants. “The assumption underlying the rapid rise in the use of desktop-based virtual reality technology in instruction is the unique affordance that it offers in enhancing learners’ cognitive skills” (Merchant et al (2014). Beyond simply teaching a subject, through immersion experiences applicable concepts are learned that deepen understanding. Students experience situated learning when they learn through actual application of skills to achieve the set goals. It is more than just having a full understanding of the material presented in the discussion; it also requires knowing the techniques needed to apply the concepts in their own designs. The reason project based learning is effective in the cognitive modeling process is that the learner is able to see the end goal and then through the process of and steps presented in order to create the project, the student comes to a cognitive understanding of how the knowledge learned is applied in a real world scenario. The reason this works is because each project can be tailored to the learning level of the audience in order to teach the learning standards required for their level.  With online virtual world customization, the benefit exists to tailor the world for specific participant needs.

During the event, the primary gauge of successful implementation will be the questions and answer session’s level of participation. This is observational evaluation by the presenter. After the event feedback or return visits from participants to explore the content discussed can be monitored and evaluated. The event can be recorded through the use of screencastomatic or Zoom with the permission of participants for individual evaluation of content effectiveness or sharing on social media to expand the reach of the content and goals. Contact information and follow up surveys can be provided to encourage self evaluation, for example asking the participant if they were able to apply the concepts and best practices discussed to their own projects. It is also possible to “poll” participants through messaging them via the kitely messaging system. Reaching out to participants for feedback will help determine if they were able to navigate the virtual world and find all the resources available when visiting before or after the discussion, and if the signage and NPC directions were adequately designed to guide participants to the different areas. Separate tracking monitors will show which areas of the virtual world is most visited. This will help determine if the majority of visitors prefer the educators resources, the gaming environment or the sandbox area. Three separate message devices, two drop boxes for “mail” and one for text message recording will allow for feedback from participants and also signify which areas attract the most participants.

The Best Practices discussion will serve as an overview for educators who have not yet considered the use of virtual worlds for educational games. The focus will be on expanding the participants knowledge to move beyond the concept of the virtual world as a simulated environment alone, into an interactive game-based space using scripting in objects and gaming concepts to engage students and encourage active learning. I will be using examples in virtual world game play that are designed to instruct the educator on possible uses of the virtual world environment to enrich the learning experience of students. This will incorporate educator resources, examples and game play prototypes. The goal will be to encouraging transactional discussion with a short overview and “Best Practices” and a question and answer session. Independent exploration of resources and the examples will be done before or after the Best Practices discussion at the participants leisure.

The virtual world environment is an under utilized resource by educators in the creation, exploration, and effective use of Game-Based Learning (GBL) in distance and education. The research has shown “… a significant gap between teachers’ perceptions of the importance of integrating technology and their classroom use of these skills.” (p.  111, Carver, 2016) The virtual world can be designed to be an immersive environment requiring movement and social interaction with the instructor and other participants to encourage active learning. The incorporation of games and gamification through prototype exploration and testing will demonstrate the benefit of incorporating game-based learning in higher education to engage students.  Game play in simulated environments encourage active learning in the three step phase of observation, doing and reflection and has proven to be more effective in knowledge retention. Game-based learning activities can create authentic experiences which have been proven to shorten the time requirement and increase the retention of material. Virtual worlds can be designed to create immersive and authentic environments in ways that commercial games can’t.

Educators have the ability to customize the game to better serve student needs. In addition avatar interaction in a three dimensional world increases the level of attentiveness and participant engagement.  Virtual worlds are identified as supporting collaborative learning and social interaction increases productive learning. Research overwhelmingly supports the benefits of learning in immersive virtual worlds for students of all ages. “The contemporary notion of learning environments recognizes that meaningful, active learning takes place in complex, multi-model environments in which the learner plays an active role in constructing knowledge” (p. 2, Dickey, 2010). Research shows that 3D virtual worlds supported “…exploration of identity, community and personal representation.” (p. 3 Dickey, 2010) In addition, though not fully immersive compared to virtual reality rooms and glasses, “… desktop-based 3D virtual environments … (are) shown to enhance learners’ engagement” (Merchant 2014).  “Research has indicated that technology can increase student motivation, attitude, engagement and self-confidence, while improving organization and study skills.” (p. 110, Carver, 2016)

Especially for distance learners in education, the virtual world environment offers a viable solution to facilitate and enhance active participation through game-based learning. The inexpensive solution that virtual environments offer educators is a concept that needs to be explored, understood by participants and then shared with colleagues.

References

Carver, L. B. (2016). Teacher Perception of Barriers and Benefits in K-12 Technology Usage. Turkish Online Journal Of Educational Technology – TOJET, 15(1), 110-116. Retrieved on April 15, 2017, from https://eric.ed.gov/?id=EJ1086185

Dickey, M. D. (2011). The pragmatics of virtual worlds for K-12 educators: investigating the affordances and constraints of Active Worlds and Second Life with K-12 in-service teachers. Educational Technology Research And Development, (1), 1.  Retrieved on Dec, 2017, from http://eds.a.ebscohost.com.library.esc.edu/eds/pdfviewer/pdfviewer?vid=2&sid=701fa5b8-b55b-4784-9597-e3a821c56084%40sessionmgr4009

McLennan, K.  founder of the Educators Commons. (2017). Help guide for educational virtual open source. OSgrid Wright Plaza. Retrieved on Dec, 2017 from and accessible through Virtual World Viewer at https://OSgrid/region/Wright%20Plaza/207/30/21

McLennan, K. , Opensimulator Conference (2017) Presentation and talk. Dec 10, 2017 at http://conference.opensimulator.org/2017/  Slides accessible at https://tulane.app.box.com/s/hev3iverk9zcs7jiooa5fcbhyet4pxoi

Marie, Evie, Virtual World Survival Guide, (2016) retrieved from, http://inspiration-island.com/educational-projects/virtual-world-survival-guide/

Merchant, Z., Goetz, E. T., Cifuentes, L., Keeney-Kennicutt, W., & Davis, T. J. (2014). Effectiveness of virtual reality-based instruction on students’ learning outcomes in K-12 and higher education: A meta-analysis. Computers & Education, 7029-40. doi:10.1016/j.compedu.2013.07.033. Retrieved on Dec, 2017, from http://resolver.ebscohost.com.library.esc.edu/openurl?sid=EBSCO%3aedselp&genre=article&issn=03601315&ISBN=&volume=70&issue=&date=20140101&spage=29&pages=29-40&title=Computers+&atitle=Effectiveness+of+virtual+reality-based+instruction+on+students%27+learning+outcomes+in+K-12+and+higher+education%3a+A+meta-analysis&aulast=Merchant%2c+Zahira&id=DOI%3a10.1016%2fj.compedu.2013.07.033&site=ftf-live

Game Play Example provided as an online resource.

The second presentation and live discussion segment.

 

 

 

Game theory, dynamics and elements for Minecraft analysis

Minecraft can be played on a console or a pc but for this version I used minecraft PE (pocket edition) and played it on a tablet. Minecraft has different modes which change the structure of the app. Creative mode is a simulation mode. Survival is a game mode and adventure is a developers mode that can be either simulation or game based. The important difference with adventure mode is that it protects the structure of the game from players purposefully or inadvertently destroying the build. Tne app features the ability for customization in building your own world, or computer generated builds and even the option for purchased elaborate builds. In creative mode the goal is to explore and build. In survival mode the goal is to survive, collect trophies and level up. In adventure mode specific games can be played that others have built or that you build yourself with command blocks and other tool features in the game.

The Game play aspect of minecraft in survival mode is very difficult. It doesn’t come with a tutorial, at least not in the PE version. Basically you play in creative and discover what all the tools do then when you enter survival you start from scratch and have to find and build everything you need to survive. The good thing is you re-spawn when you die. The bad thing is, unless you put your resources in a chest which you have to make or find, or buy mods and add-ons you lose everything you have gathered. I wasn’t very good at it.I like the different modes and levels because it is like scaffolding. Beginner uses creative, then you can adjust the level in creative from peaceful to easy to hard. Then you can go into survival and again you can adjust the level. You can also start with small worlds so you don’t get lost.

It also follows the Self Determination Theory in being able to customize your avatar, cause and effect of your actions and the ability to join others via the internet in game play. This last option I have not tried but I have watched my daughter play with her nephews on their gaming system in two person mode. There is Intrinsic Motivation in being able to create your own environment. This is what appealed to me the most, however when not in peaceful mode I was very upset when “creepers” blew up my creations- the creeps. Extrinsic Motivation is involved in survival mode because you can earn trophies that you can then display and if playing online others can see. Ther is no distributed learning per say in Minecraft. It can be developed and used for learning, in fact there is an educational publication, “Unofficial Minecraft Lab for Kids: Family-Friendly Projects for Exploring and Teaching Math, Science, History, and Culture Through Creative Building (Hands-On Family)” that offers plans for lessons designed by educators. It also explore gamification and game design. Yes it is on my Christmas list but I may not wait till Christmas.

Since the game doesn’t have a “how to guide built in it does improve a students Testing/Spaced Retrieval skills. Otherwise you have to buy books, watch other peoples videos they have made on youtube, search the internet or just learn by doing and exploring. It does have a set goal which is named in one of its modes, to survive. The rules are not as clear as to how you survive, maintain health and what goals you need to achieve to succeed at survival unless you invest in guides or are guided by other players. This cooperation aspect of the game is very popular among many players. I appreciate that you have choices to play independently, privately with a friend on a console or in a large social setting online as the game is adaptable to different preferences and needs.

The aspect of survival gives minecraft the escape theme but with the ability to develop games in adventure mode and work with other online players the race theme is also possible. This increases the opportunity for competition themed play. Collecting, acquiring, and allocating resources in minecraft survival mode is really the core of the game, from mining to farming, logging down trees and using all these resources gathered to build tools, homes and keep yourself alive is all part of the core of minecraft. There is Mystery and discovery in the villages and mansions and strongholds and temples that the game can randomly generate. Defined parameters, such as creatures spawning at night or in dark spaces, allow for strategy where you can predict outcomes, prepare and plan for timed events and allocate resources. The ability to create new and unique structures is what appeals to me most in the game. It is very visual based but to tell you the truth it took awhile for me to recognize the block colors and symbolism and I appreciated the text based descriptions.

Game theory, elements and design for ClassCraft analysis

Classcraft also has many platforms that it can be used on. I used this on my PC. Classcraft is a gamification app. Instead of a game platform it adds game features to real life activities. It has clearly define rules that can be customized by the teacher with video game features like customization of avatars, powers that are symbolic with real life reward, challenges and tasks with real life consequences, and a game themed story line implementing story telling through random events and goals created by the teacher. Classcraft is also able to be customized with villains and random events to add excitement. The avatars can gain and lose points and level up. The can compete on an individual level and as a team.

Classcraft uses scaffolding to move students from one level of knowledge to the next through class based goals, such as helping another student, or passing in homework on time, or fulfilling an academic goal, by rewarding them with experience points that help them level up. When challenges are not met then students can lose health points. In the paid version of the game you can award gold pieces. This is based on Extrinsic Motivation in game theory.When a student levels up they gain “powers” which essentially is a real life privilege determined by the teacher. Each small goal achieved adds up to larger and larger rewards. In this scaffolding is achieved. The Self Determination Theory is applied in the ability to customize the students avatar, giving them a sense of autonomy and control. Because the teacher can customize the goals and activities they can make them achievable and challenge the student encouraging success and competency. In addition students can work together on teams which connects the students to one another thus achieving this goal in the self determination theory.

Because all the activities are based on real life performance throughout the academic year. This achieves Distributed Learning/Spaced Practice. The rewards, privileges, team goals and penalties are continued and spaced rather than a being centered on one specific win/lose goal. The rewards are based on measured achievements rather than completion achievements. Testing/Spaced Retrieval is achieved through repeat rewards or consequences based on specific goals, behaviors and events determined by the teacher. The game does feature set goals and suggestions for activities, challenges, rewards and consequences that can be used, changed or adapted for ease of implementation.

The camaraderie of the team environment helps achieve Episodic Memory. The game enhances this by creating random events. These are fun or challenging story based events that can be randomly generated with surprise goals and consequences, one example being that a specific person, team or the whole class has to talk like a pirate for the day.

Game based dynamics need to be implemented by the teacher using real life activities. IE if the teacher wanted to implement Race and escape they would need to design it into the class craft program through a random event or a team/individual goal/challenge. Collecting, acquiring, and allocating resources is achieved during team play. If a team member falls in battle due to to many HP losses, there are consequences for the whole team. This can be prevented through the allocation of resources and powers that can rescue team mates, restore their HP and otherwise share goals to achieve success. In order to be able to rescue team mates, the individual players need to collect experience points themselves or acquire gold pieces to better protect the team as a whole. This also allows Strategy among team players who choose or are assigned different rolls such as Warrior, Healer, or Mage each with different level up powers to aid in the success of the team. By sharing HP or using powers, hence reducing resources the individual and team must decide if the trade offs or beneficial for the team and for the individuals. This also adds elements of Conflict, Cooperation, and Competition.

This gamification app has limited Constructing and creating in the avatar designs unless you purchase the full version. Other aspects of Constructing and creating would need to be built into the course by the teacher and the Classcraft used to enhance the activity. Over all Classcraft has Goals, Rules, and Objectives that are shared with students and parents and built into the app as well as allowing for customization features used by the teacher.