Extra property JSON file plagiarism check

I’m a highschool teacher and teach GDevelop to about 150 students each year. The JSON-file that we can obtain by saving the game is great since it’s provides different options to programatically check the student’s homework and grade them.

However, we don’t want students to take one of the example games and build on top of that, since that would be cheating/plagiarism. They should create their own logic, behaviours, etc. On the other hand, it is okay when they only take assets (packs) from the asset store, since these are mostly just images.

It would be great if we had a property in the JSON file that informs if the game is made from scratch, or based on something else, like an example game or a game of their older sibling years before.

It would make a huge difference in grading. Maybe someone has an idea on how this could be done and is willing to implement it? I look forward to see your responses!

1 Like

additionally, with the outlook of grading entire projects automatically, it would be great if the property could also be compared to other projects, so we can check for example if they used the project of one of their classmates.

The propery could be some sort of Id that’s only assigned when building a project from scratch, and never changed after that, not even when the game of imported or copied. Maybe it can be a static part of the json file and be copied along to any other.

I don’t know how hard this is to implement, but it’s a suggestion :slight_smile:

For other teachers dealing with the same issue: right now I’m checking for the property ‘templateSlug’ and ‘packageName’.

If templateSlug is an empty string and packageName is ‘com.example.gamename’, then the game is most likely not based of an existing game in GDevelop.

This still does not check for students that:

  • copied events from an existing game to their own game
  • students that use game from other students or students from earlier years.

For the latter, some sort of similarity check should be applied.

I’m not a teacher, but personally I think that using code from tutorials or examples is a smart way to learn when it’s done with curiosity (and not just to get ride of homework). I guess a good check could be to ask a small explanation of the logic they used in 10 lines or so.

If they used existing material but mastered it, it’s a win in my opinion.

Using the implementation I have now with ‘templateSlug’ en ‘PackagenName’, I would say this is already quite a good solution. I could close the feature request, but don’t know how.

That being said, checking for plagiarism is definitely nescessary in the setting of a high school. Indeed, during homework, students should learn in whatever way works best for them. However, once we have to test them, they should be able to reproduce certain things on their own. Letting students explain their work is indeed a part of that, but not completely sufficient in practice :slight_smile:

Thank you!

I rip code constantly. Am I being gatekept by an academic? :kissing_heart: The professional world rewards merit. Even if somone ripped code, did they make something original with it? Then they have been successful. Those who cheat only cheat themselves and life will teach them the error of their ways.

Anyone can edit a JSON file. Anyone can copy-paste events. Anyone can refactor or move some lines around. Anyone can download project files, without security systems, which are already in the wild. There is no feasible or efficient way to make this work.