Wednesday, 10 July 2019

Teaching Goals vs Personal Goals

In my previous post, after weeks of trying to get something to work, I engaged in some critical reflection, and in sharing that post with some colleagues around the world, summarising the main points of that post, led myself to the idea that I had 'disconnected' from the learning goals and was instead pursuing my personal achievement goals in that project.

I wanted to map a complete genetic inheritance pattern in Minecraft, and use that to support the teaching of genetics to students. However, when I ran into technical difficulties that prevented me from achieving my personal goal, I stopped to think about the learning goals, and realised that I had focused too hard on my own desires, rather than the needs of the learning goals.

Which really intrigued me, as someone who has always tried to focus on the practicalities required for the teaching and learning I want in Minecraft, rather than the fun, or the pretty, it is quite jarring to realise that I had lost that focus on the learning requirements, but had instead pursued a personal technical challenge. Which, in itself is fine in my current circumstance, as a volunteer, creating this for my own fun, and to develop my own technical knowledge on this new aspect of Minecraft, but....

When isn't it OK, when is it inappropriate? A very quick reflection says that if what I was doing impacted on student learning, or if I was letting students do the same. Letting someone in my classroom, myself, or my students, in class time, when we are supposed to be reaching our learning targets, get bogged down into these kinds of 'rabbit holes' of personal goals that have become disconnected from the learning goals is when.

So, if I had managed to achieve my goal of a complete inheritance pattern mapped in Minecraft, and that was used by teachers and because of the complexities involved, and the possibilities for confusion due to my work were as likely as I think they could have been, that would have been a very disappointing outcome for me, the teachers, and most importantly for the students.

So, I am certainly very glad I realised this now, relatively early on in the project development, but still am a little disappointed in myself. I also wonder what I would have done if I had been able to achieve it (and I am probably still going to try 'on the side) and had been trying to map my lessons to it.

It is really odd, I had already decided I would have 'specific' flies in place for students to perform breeding tests on, and I was going to genetically 'choose' these flies (or adjust them in external editors) so they would have only had a small chance to have alterations to my desired outcomes, but even with those thoughts floating around in my head, I still hadn't the wherewithal to pull myself up and refocus on what I needed, rather than what I wanted.

Having multiple entities will actually make this world and lesson(s) so much easier for me to create and have finished and ready as a learning task for the pending Minecraft: EE update. Now I just have to find the time, and desire to do this 'version' so that I can release it into the wild! Thanks, as always for reading, feel free to leave a comment below.

Monday, 8 July 2019

Genetics Development - Day 7 - Genes to Family, Family to Variants than Variants to Game

This was my brilliant plan to fix the fly rendering in Minecraft from where we left it in day 6. I am essentially trying to assign the fly, upon birth, or spawn, a 'family' for each trait they have, and then use the family data each has to explicitly assign the variant and mark_variant flags that allow Minecraft to render the correct model and texture.

Only thing wrong with my brilliant plan, it doesn't work... yet... I can feel the solution is very close, there is something wrong in the way I have coded it causing it not to work, I am pretty sure the theory is correct. However I am stuck in a 'loop' of the genetics assigning only one 'birth event' and that birth event is the sex. Which assigns the correct family (which is nowhere 'in' the entity in external editors that I can find) and it gets the first layer of component groups, but this will not translate across into the second layer, and assign the variant and mark variant as expected.

I have spent a few hours looking carefully at the data the flies have in-game, and what I expect them to have, and it just doesn't align for some reason. So, I am going to try swapping the 'is family' test point for 'has component' and see if that changes things. If it doesn't work, it is because Minecraft doesn't support this 'double dip' through data and I will need to go back to the drawing board and test one of the other solutions from the previous post.

(some weeks later)

After swapping the 'is family' test for 'has component' there is no difference, however, what is interesting is the flies always get their sex component added, but never the other traits. I feel like I am very close, because it does seem to loop the data I want in, for only half of it, so now to try and work out why!!!

After a few (more) weeks of trying to nut this out, I am pretty sure I cannot get Minecraft to 'collate' multiple 'chromosomes' into the one birth event. At least I think that is the issue. It appears that it works in 'sequence' until it finds a birth event whose requirements are met, and then it stops looking at the other genetics.

It is really quite odd, because the entities 'get' the right chromosomes/genetics/alleles applied to them, but only get the 'tag' of the first birth event. Which means I can then not 'give them other tags' and render them appropriately based on their different genetics.

So, this leads me to be thinking about what it is I actually want to achieve. While having a completely mapped genetic inheritance pattern on the one entity is a really, really cool 'technical challenge' for me, is it really required to do the educational activities I want to do?

The simple answer is, no it certainly is not. If I can have as many custom entities as I want, then I can have different entities for each genetic trait we want to explore. This is 'normal' operating procedure in labs all over the world, they know exactly what genotype their breedstock is, and use the appropriate ones for the testing they want to do.

So why should I make Minecraft the exception? I am thinking that I should have multiple different 'fly types' and set up specific inheritance tests for students to explore. Again, this is normal, and supports students in understanding the inheritance pattern we want them to grasp, without causing undue confusion with multiple inheritance patterns impacting on the results. If we can give students specific genetic traits to explore, and interpret, then I am most certainly achieving the educational goals of this project, if not my own, possibly silly, technical goal of having a (mostly) 'true to life' genetic inheritance pattern all in the one entity.

So, there you have it, I have been mulling over this for ages, and thank you for your patience while I have been absent. I will have more to share on the 'why' I have been a bit quieter of late soon, but know that I am still here, working in the background. Thanks, as always, for reading, and if you have any comments, please feel free to leave them below or touch base on twitter @EduElfie.

Thursday, 27 June 2019

Genetics Development - Day 6 - Adding to the Genetics and Breaking IT ALL!

So, after ending Day 5 with the basics of inheritance of both sex, and wing type figured out, the models displaying correctly and everything working exactly as I would like, it is now time to try and expand it to include a 'sex-linked' inheritance pattern, white eyes.

Of course, doing this breaks EVERYTHING!!! OK, well not everything, but the basic premise of the whole system I have in place is now untenable. I believe this is because I have the sex type calling a particular geometry by using 'minecraft:variant', and wing type calling a particular texture by using 'minecraft:mark_variant', which leaves me no way to call another texture 'automatically' through this entity.

I can get the white eyes to appear on the fly through external editing, and the inheritance appears to work find on the genotypes of the offspring, but I cannot get it to display the correct phenotype, because it gets 'normal wings' texture before it gets the 'white eyes' texture. Basically it get's a 'mark_variant' for normal wings, because that is what it has, and that doesn't then get overwritten by the white eyes 'mark_variant'.

Now I have figured out the issue, what is the resolution? After quite a few hours fiddling around and trying to understand, I think I need to, somehow, give particular variants, and mark_variants based on the multiple separate genes I have. Each gene marks a 'birth_event' which I then use to add component groups to the flies, which in the past was assigning the variants and mark_variant data.

The first step I have taken is to make all 'geometry' alterations, so that is sex, and vestigial wing type (and later curly wings too) based on variant, and all textures based on mark_variant. This means quite a bit of explicitness in the entity definition and a whole heap of individual textures for each possible phenotype, which I was trying to avoid in some respects, but looks like the entity definition file in the behaviour pack is going to be as large as it needs to be!

Next steps? I have quite a a few options to explore for day 7 and beyond, and they are as follows;

  • Use scripts and custom variables to control and assign the appropriate data to the flies.
  • Use family tags at birth, to then assign the specific variant and mark variants.
  • Use 'materials' as the third 'data change' in the render controller.
  • Use a 'villager' style system to assign different geometries and textures as they assign different professions in the vanilla game.
  • Use 'masked' textures (again as they do in villagers) to 'overlay' multiple parts of the flies.
I think the most likely option for me to initially explore is the 'materials' method, and making the eyes a 'material' that I can alter based on genetics. Second to that will likely be a combination of the masked textures and the villager professions.

There are of course pros and cons in each, and in reality what I want to do may be more readily accessible in the API, so when I have some brain power, I am going to head down the path of exploring that, but I am also really enjoying exploring and I am learning a lot about how entities work in Minecraft, which I am thinking will be beneficial in a lot of future projects too.

But, that is where I finish day 6, a little further along, but also taking a significant step backwards. One thing that has crossed my mind, is to completely separate the different inheritance patterns, and realistically that would work quite well, as in have a "drosophila v" for vestigial, and "drosophila we" for white eyes, which would definitely work, but I am interested in seeing whether I can combine multiple inheritance patterns and weave them into some semblance of correct genetics for this organism.

Monday, 24 June 2019

Genetics Development - Day 5 - Testing the Genetics

Testing! Testing! Testing was the goal here. The main aim was to check whether the inheritance pattern of both sex and wing type were correct. I tested 160 offspring from the same parents (after confirming the parents genotypes using external editors) and the results were pretty amazing.

I nailed the wing type inheritance pattern, with an expected ratio of 3 normal : 1 vestigial coming out at 3.21 normal : 1 vestigial.

However the sex inheritance was out, with double the amount of females coming out than males. It should have been 50/50 but was more like 66/34. So this meant some exploring of the genetics of the flies to try and work out why. It took me an hour or so to figure it out, but essentially I had 3/4 of the alleles in the population as female, and only 1/4 male and was only looking at 'one' allele to determine sex.

So my parents were XX and XY (as expected) however I had it set to test only the 'main_allele' and thought that would make it 50/50, however for that to be the case the male would need to essentially be YY, which is so incorrect I could not have it! So, back to the drawing board, to try and work out exactly how these patterns are read by Minecraft.

I ended up doing what I 'should' have done from the start, and females are those with 'both_alleles' as X and males 'either_allele' as Y. This of course creates an issue if you breed two males together (which I still haven't figured a way to prevent) and get a YY... I actually don't know what Minecraft is going to do in this case, but figure, for the purposes of the lessons in and around this, it doesn't really matter.

So, now that I have both the sex, and the vestigial wing inheritance patterns correctly working it is time to try and throw more patterns into the mix, specifically the sex linked inheritance pattern of white eyes. A job for day 6!

Thanks as always for reading! Feel free to leave a comment below.


Thursday, 20 June 2019

Is Minecraft Only a Creative Solution for Schools?

This has been on my mind more and more lately as I see the global social media and feeds on what is happening in schools around the world. Admittedly, I am only seeing those using the #MinecraftEdu or @PlayCraftLearn tags and mostly on Twitter, but it is more and more 'only' about students creating to demonstrate learning.

Which I am not suggesting by any means is necessarily a bad thing, but what happened to the teaching lessons, those things we used to have where learning goals were embedded in the game? It seems that the vast majority of uses out there at the moment are students creating something as a demonstration of learning.

So I began to wonder, what happened? When did Minecraft only become a creativity platform for schools, and I think it is since Microsoft took the helm. I also think it has a great deal to do with the 'surface' level of understanding of "Minecraft the game" that trainers, and therefore those they have trained have. The number of users with access to M:EE continues to grow as more and more districts, regions and states (however it is broken up in your area of the globe) begin to license it, and as such there is a high level of 'inexperienced' Minecraft educators out there, who are looking for support. Microsoft holds the training, and uses their trainers, and while those trainers are great at getting people 'on board' and understanding what Minecraft is, and how it can be used at this base level, there is not enough knowledge out there in the majority of trainers about "Minecraft the game" to help people go beyond this low level usage.

I look back at the maps available 6 years ago, before Microsoft took MinecraftEdu off the shelves, and the 'hallmark' map and learning activity was really Eric Walker's World of Humanities. It was an immersive world that took students through masses of learning content, involved gameplay, quests, information and really used the best of what Minecraft has to offer for educational purposes. I would link you to the original page for that, but that is yet another thing that Microsoft have recently pulled off the shelves, and despite multiple community requests, and myself asking repeatedly for further information, we still have no visibility on the reasoning of that decision, or whether they will ever be made available again. That grump aside, here is an archived copy of the page with an outline of the world: https://web.archive.org/web/20160319171629/http://services.minecraftedu.com/wiki/Wonderful_World_of_Humanities

Second to that was probably Joel Levin's Escape from Everest map. One which I have been 'in the process' of updating to work with EE for about 12 months now, at the request of a community member, and sadly I just have not had the time to get that project over the line. I cannot get you an archived link to that one unfortunately, as I have been unable to access the old world library pages at all.

Of course I rank most of my original maps up there as 'learning tasks' in Minecraft, but they are also available for M:EE right now. Alongside mine, there were Shane Asselstine's maps where the tasks were always gameplay based, but tied tightly to learning outcomes, and many other user generated maps as well, all of very high quality, and using Minecraft explicitly for educational outcomes, not as a creativity tool alone.

I think the main difference between back then and now, which is by no means a fault of anyone, even though this post seems directed at Microsoft and their trainers by what you have read thus far, but back then, those integrating Minecraft into their classrooms knew the game, today to put it simply, the majority of teachers using this platform don't know "Minecraft the game" at all. What they do know is that it is loved by kids, and that they can join students together in multiplayer sessions, and that kids can create in it, but they know nothing about the gameplay, the mechanics, which of course means they cannot map learning into worlds or tasks beyond allowing students to be creative in this space. Alongside that, the majority don't have the time (or possibly the desire) to go and play, which is one key stepping stone to going beyond the basics in any learning tool, making the time to explore deeply to better be able to incorporate into lessons.

This is limiting the growth of learning tasks in Minecraft hugely in my opinion. Giving students the opportunity to demonstrate their learning of a topic in Minecraft is low hanging fruit, and while the end product may be far more interesting than writing an essay, or drawing a picture, is it really any different? I don't often 'call down' the SAMR model, but in this case it is quite literally using Minecraft as a substitute for a pencil and some paper, or perhaps a replacement for LEGO or making a diorama or poster.

Now look at the lessons that used to be available. Fully immersive worlds, with learning embedded throughout in gameful tasks. That is a redefinition of how education works, and that is the power that Minecraft CAN have in classrooms. It CAN go fluidly across all the different 'levels' of SAMR. However currently the larger community is stuck at only the basest understanding of this power and as such there are millions of students using Minecraft as a pen and paper creative tool, rather than an immersive learning environment.

So, what can we do to fix it? Well, here goes a bit more of a rant, I have been trying for years to get Microsoft and more specifically the M:EE team to see that the 'Mentor' community is not actually mentoring, a large portion of the members in that community in the past have been new to Minecraft. There is a greater portion of people within that community now that have game knowledge, but it is not enough of a ratio to tip the community over the edge. The community is a community of people from all over the globe, with knowledge ranging from absolute base understanding (or lower) through to very high level understanding about gameplay, and how to manipulate it to create immersive learning experiences.

All of that 'beyond the basics' knowledge is 'wasted' within that community. Sometimes I feel that Microsoft has misnamed the community, they don't seem interested in driving or supporting pedagogical discussions in that space or in community members discussing things and building lessons and worlds together, but are very interested in the community amplifying the message that Minecraft is good in classrooms for students. Which, it is, but there is so much more a true 'Mentor' community could do. Spreading the word is only part of mentoring, and in my mind is more of an ambassadorial type role. I think, in the end, until Microsoft and the M:EE team begin to value immersive lessons and starts producing content or challenges, or even supporting the production of resources, that go beyond the paper and pen substitute level, then we, as a broader community are stuck, and here is why.

I was told, when someone from the M:EE team saw Mini Melbourne a few months before release, that they didn't want students just exploring, which of course, in this case has massive inherent value for rural students and planning of trips. I also have some in-depth lessons available with many more planned, but to hear that from someone on the team that regularly brings us surface level worlds, with no embedded learning within them, was a bit confronting, and really, in my mind, showed that they can talk the talk, but perhaps cannot yet walk the walk. I say this because they still regularly release things at the basest level for all those teachers that are looking for, and need, the low hanging fruit, yet still, after many years of this platform being theirs, they do nothing to support those who are ready to go deeper, or looking for more than allowing creativity from their students in this platform.

So, as a community, what is next, other than waiting for Microsoft or the M:EE team to realise there is a need in the community for more than the low hanging fruit? I think we need keep building a community, I am still trying my best to share everything I learn, how I work, and why I make the decisions I do, and it is pleasing that there is a growing community of those interested in taking things further, beyond the basics. If that sounds like you, join the Discord (https://discord.gg/7fSQBdx) and start chatting to others about your outcomes and plans and see if, as a community, we can create something truly amazing.

Also, don't let my opinions of the Mentor community dissuade you from joining that community either, regardless of your experience in Minecraft in educational spaces, you will get something from that community, and as I have said in the past, the more educators that join that space looking to grow their practice, and willing to be open, share thoughts and honest feelings and collaborate with others, the better off the global Minecraft in education community will be.

That's it from me, I KNOW Minecraft is so much more than a creative platform, and I understand that all community members are on their own journey and need to start in a place of comfort, but some community members have been on a journey longer than M:EE has been around, and there is very little supported growth opportunity for them. Which also means there is little to available to support those beginning who want to go further, and I find that very disheartening. I hold hope that at some stage in the near future Microsoft and the M:EE team will begin to move beyond only supporting the low hanging fruit, and start supporting a wider range of embedded learning in this platform. If you have any comments, feel free to leave them below, thanks for reading.

Wednesday, 19 June 2019

Genetics Development - Day 4 - Starting the Genetics

I should say, as this is the last post I am writing in bulk since starting the project, and I hope to do these 'one at a time' from here on, that while I am listing days, sometimes there were multiple days between these 'major days' where thinking happened and some minor testing, but I am trying, at this stage, to do 'goals' for each day I am developing this project.

So on day 4, having gotten absolutely nowhere with the male/female breeding thing, it was time to turn to the genetics side of things and try and wrap my head around that. Boy it was a productive few hours, again a 1am finish, but a happy 1am finish!

So, with the genetics, I had the Panda to refer to, but it turns out it is quite easy to do, I must admit I spent a few hours mapping the traits I wanted a particular way, and I am still only doing a small component of the genetics I want, essentially sex and two varieties of wing type. It took a few hours, but by the end of it, I had flies inheriting traits from parents.

Basically they inherit their sex from one of their parents (normally in it is from the male passing on either an x or y chromosome at a 50/50 ratio, and I think I have that happening already. They also can inherit wing type, and this should be a dominant/recessive pattern of inheritance. Where by if I breed a pure bred wild fly with a vestigial fly all should 'look' wild type, but their genetics should all be heterozygous for wing type.

If I then take 2 of the first generation, and breed them I should get one quarter of the offspring being vestigial and the remaining three quarters looking wild type. I have also started thinking about 'lethal' genes, as that is an important thing to discuss.

At this stage I still don't fully understand what I can, and cannot do in the entity definition, with regards to using tags that I create, I am still using the 'inbuilt' variant and mark_variant tags. Variant is the sex of the fly, and the mark_variant is the skin that overlays that. I have some work to do on the textures, and the models, because I think I may need 3 variables to use in the render controller, which is certainly possible, but I am not ready yet.

I haven't done any solid testing on the current inheritance pattern, probabilities or anything yet. That is actually the plan for day 5, create a few entities, see if I can 'edit their genetics' externally so I know exactly what they are, and breed them multiple times and record lots of data about what happens.

In the intervening days between where I finished on day 4 and am writing this post, I have remembered an experiment I did on these flies at university, that took a whole term to do, because of the life cycles of these flies in the real world, and in theory, if I can get this working. I can replicate that whole experiment, and get the exact same data out of it in Minecraft within about an hour.

So, I am really excited to see how far I can go, how in-depth it can be, and how authentic I can make it. That's it for now, thanks for reading, and if you have any comments feel free to leave them below.

Tuesday, 18 June 2019

Genetics Development - Day 3 - Restricting Mates? Nope!

On day 3, I literally achieved nothing new. I ended the day in exactly the same spot as where I started it. I did however do a lot of testing and experimenting and learning. The goal was to try and make it, since I had clearly defined male and female entities, that only viable offspring were produced when a male and female mated. This is a genetics resource after all.

I was trying to use filters in places that apparently do not support them, double and triple checking syntax, trying to figure out what I could do to make it so that only males and females bred together. I tried all kinds of tags, like "self", "other" and "target" in the filters, but to absolutely no avail.

I went to bed at 1am (again) and woke up at 6am with what I thought was the answer.... but nope, sadly I was mistaken. In fact, as of writing these posts, I still have not solved this issue completely, although I have made a little bit more progress on it.

A very short post today, and that is fine, it was many hours, with a lot of no result at the end, but a lot of learning along the way! :D Feel free to leave a comment below.