panmig / chemistry-lab Goto Github PK
View Code? Open in Web Editor NEWA 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
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
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());
We have to check why there is an error when receiving a strategy at the beginning.
This could have to causes:
I noticed that the 3D model of the room has changes. Can you make a list here what has changed ? (apart from the microscope, textbook into laptops).
Thanks,
D.
Check if APP and API key are removed from the repository
Adding for the standalone version the APP and API from Lastpass
Check if we receive the analytics data at the GIO backend
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;
}
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.
It seems irrelevant to me
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.
We have to check if the passing of the APP and API key which is requested from the authoring tool works correctly.
Test
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.
Pano,
This CORS popup again. It makes really slow to load the game. About 5 minutes.
https://stream.goedle.io/track
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://stream.goedle.io/track. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
The tracking for drag and release element should be removed. One tracking call is sufficient for both.
For example in SodiumChloride is:
m_LocalPosition: {x: -0.8456907, y: 1.4136605, z: 6.951027}
m_LocalScale: {x: 2, y: 2, z: 2}
Can you make a script (not inside molecule) to place the molecule to the center and in correct scaling?
if the a strategy from the gio API is received, this should be tracked.
Eg.
event: received.strategy
event_id: strategy_id
This should also be added to the tracking definition spreadsheet.
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.
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.
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.
ZZZ
as molecule formula: `[{"molecule_formulas": ["H2O", "ZZZ"]}]'[{"garbage": ["H2O"]}]
Error handling should be the following:
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.