Coder Social home page Coder Social logo

panmig / chemistry-lab Goto Github PK

View Code? Open in Web Editor NEW
33.0 7.0 10.0 301.52 MB

A 3D first person serious game, aiming to teach player about molecules through an immersive and fun way.

Home Page: http://www.envisage-h2020.eu/

License: Apache License 2.0

C# 84.43% ShaderLab 13.61% HLSL 1.96%
unity3d serious-game molecules chemistry-lab game

chemistry-lab's People

Contributors

jimver04 avatar panmig avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

chemistry-lab's Issues

user Id creation are not unique (Important)

The creation of the user id does not work, in the pilot there were all user_ids equal.
The error has to be in the class UserIdentification in the Start() function:

@PanMig please check if this receives the right values, when adding a name, class and school
string[] user_ids = inputFields.OfType<InputField>().Select(o => o.ToString()).ToArray();

In the SDK we have to check if this function is working correctly:
@marc please check if the hashing is working correctly
string hashed_user_id = GoedleUtils.userHash(user_ids.ToString());

Checking the debugging for the chemistry lab

  • Check if in case of API problems the HTTP error is displayed
  • Check if in case of Network problems the Network error is displayed
  • Check if in case of a successful strategy request the JSON of strategy is displayed

Construction list problem

While the naming list loads the molecules correctly the construction list always fails and loads the default strategy.

This can be identified in :

if (_gio_strategy["config"][0]["construction"] != null)
            {
                _construction_strategy = transformJSONArray(_gio_strategy["config"][0]["construction"]);
            }else{
                _construction_strategy = standard_strategy;
            }

Creating a Molecule list from the prefabs (low priority)

We have to dynamically create a list that is able to resolve the prefabs of the molecules.

This is needed so we have a list with all valid molecules.

Therefore we need a helping function when initializing the Molecule Manager.

The function should get all molecule in a list. For example:

List<GameObject> prefabs = new List<GameObject>();

    public void getPrefabList()
    {
        var resourcesPath = Application.dataPath;
        var absolutePaths = System.IO.Directory.GetFiles(resourcesPath, "*.prefab", System.IO.SearchOption.AllDirectories);
        foreach (var absolutePath in absolutePaths)
        {
            var prefab = Path.GetFileName(absolutePath);
            prefabs.Add(prefab);
        }
    }

Now we should be able to access the names and formulas in the prefabs. These could than be used to validate a strategy for example.

Tracking end score

Add a tracking point for the score of completed molecules. E.g if a student solved 5 out of 10 molecules, we send a tracking call with

event: submit.score
event_id: naming
event_value:

also adding the tracking to the spreadsheet as a definition.

Lab Scene - Lab folder with lightmaps

I see a Lab folder inside Scenes folder that has lightmaps

Are the lights baked ? Is it important ? It is inducing complexity. Can we skip it? Is it for performance reasons ?

image

Checking the passing of APP and API key

We have to check if the passing of the APP and API key which is requested from the authoring tool works correctly.

Test

  • create a chemistry lab
  • compile the lab
  • check if analytics works out of the box
  • check if the APP and API is the same as the created ones at the GIO backend

Strike line??

I went from naming to construction and back to naming the molecule name is striked:
image

Alcohols are written correct now :)

MouseTranslate.cs Line 2 script bug

Pano,

I 've tried to compile the game chemtestUnity (the one I have sent you on Friday for compiling) with Unity 2018.1 and it was not recognizing UnityEngine.Collections in MouseTranslate.cs. When I changed it to System.Collections it was ok, it compiled successfully :). Can you check if System.Collections is working with 2017.3?

The spot is in Line 2

using UnityEngine;
using UnityEngine.Collections;

public class MouseTranslate : MonoBehaviour
{
...

I will change the asset in github in wordpressunity3deditor also.

Have fun in Creta,
D.

Check analytics in a Windows version

  • Check if the SDK throws errors in a windows version
  • Check if the SDK is initialized in a windows version
  • Check if the GIO backend receives tracking calls from a windows version

Final scores in percentage when leaving the game

After entering the exit door, the percentage of the solved elements should be shown. E.g if we have 10 molecules, and the student finished 5 of them, the ratio should be accessible to track in the resulting scene.

Can not insert the carbon in CH4

Pano

I can not insert the carbon in CH4. Also it is buggy in other molecules. It seems that the raycasting is not working properly. Raycasting returns a vector of how many meshes were intersected. Cylinders are also raycasted? Meshes that have normals pointed to the same direction with the beam are usually neglected in raycasting.
Also if I press multiple times a button of an atom, it puts multiple atoms one behind the other. Make it to place it below one each other.

Handling is much better.

image

Error Handling Strategy (low priority)

We have to add an error handling for the strategies. This includes work in the molecule Manage and also a list of in the game existing molecules. There are different use cases we have to cover.

  • strategy is null
  • strategy has not existing formulas like ZZZ as molecule formula: `[{"molecule_formulas": ["H2O", "ZZZ"]}]'
  • strategy has proper JSON but no "config" that can be parsed [{"garbage": ["H2O"]}]

Error handling should be the following:

  • if molecule not exist skip it
  • if no valid molecule exist load default strategy
  • if strategy is null load default strategy
  • if JSON cannot be parsed load default strategy

Change to loading new scenes.

The main architecture of the project will change from one whole scene to many loaded scenes.
There will be one main 3d scene with the lab and two 2d scenes(kind of) on for the notebook and one for the microscope.

Obsolete scripts

  • Camera Manager (not needed anymore cause only one camera exists in every scene).

  • Stage Display Manager (every scene will have it's one behavior script to display things to be cleaner. The use of a master class will be avoided).

Scenes

  • Notebook scene: A 2d scene with ONE canvas.

  • Microscope scene: A 3d scene with a perspective main camera.

Template

  • Concerning the Game guide, feauture should it stay or dropped?
  • The box homologous series feature?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.