The practical is based on the
"World-Wide-Mind" research project.
You will use the new prototype server:
You upload problems ("Worlds"). You or other people upload solutions to these problems ("Minds").
Run a Mind in a World
Anyone can "run" a Mind in a World
without registering or logging in.
When we run a Mind in a World,
ask the World to describe itself by sending it a
"Get State" message,
then we ask the Mind what to do by sending it a
"Get Action" message,
then we execute the action by sending the World server
a "Take Action" message.
Writing new Minds and Worlds
Anyone can write and upload new Minds and Worlds.
and log in.
For this practical, please use your proper name in the "Name" field (no nicknames), or your work may not be properly credited to you.
You write Minds and Worlds
by "cloning" existing Minds and Worlds
and modifying them.
Try it out
Try it out:
Clone the sample
and try out:
- New values of the basic constants.
2D world v. 3D world.
World controlled by a Mind
v. World controlled by the user.
The ca318 practical
The ca318 practical is to write an interesting World
- Make an interesting 2D or 3D world.
e.g. Try to implement
chess, or pac man,
or a first-person shooter, or something else.
Use your imagination.
- Read about how to use Three.js
at the links above.
- Tell me if there are any features of Three.js that cannot be used on my server.
- You can make a World that is
controlled by a Mind (i.e. an AI problem),
or one that is just controlled by the user (i.e. a game).
If you want a challenge, these things should be possible:
Like a 3rd year project, marks will be awarded for many things.
- Marks for creative or beautiful Worlds.
- Marks for proving your World is a difficult problem.
e.g. Show how naive Mind solutions would fail on this World.
- Marks for a creative Mind solution to your World.
- Marks for use of AI in the sample Mind.
- If your World is human-controlled, marks for showing it is hard for humans
/ humans enjoyed playing it.
- Marks for proving your World is a good copy of a known problem.
- Marks for showing aspects of Three.js that do not work on our server.
- Marks for showing bugs and flaws in our server.
(Note the server is only a prototype and is not fully debugged yet.
It is fairly well debugged on Chrome on Windows.
Not sure about other browsers.
Might be some issues.
Let me know.)
Obfuscate your JS
By definition anyone can see your JS.
Our server allows you to save your public JS as obfuscated code.
When you edit it, the non-obfuscated version is shown to you.
For this practical, I want you to obfuscate your JS
so other students cannot use it.
See the "obfuscate" option when editing.
Submission is entirely done through the server.
By the deadline:
- Your World is online, along with at least one Mind that runs in it.
Uploading multiple Worlds and Minds is fine, though do indicate which are the most important for me to look at.
Submit a maximum of 2 Worlds and 4 Minds.
(This is a maximum, not a guide.)
- All the extra things you want to tell me
(discussion of how hard the World is, how it is designed, how the Mind solves it, discussion of bugs, etc. etc.)
should be in comments in the World JS.
- Your comments
will not be visible to other users, who only see obfuscated code with comments gone.
But I will be able to see them.
I expect to see some beautiful Worlds
and interesting AI problems!
After you get your mark
I plan to develop this server further, and use it with new audiences.
After you get your mark, you can do the following:
- Delete your work.
- Leave your work on the server, in case others want to use it.
- Leave your work up, and unobfuscate it,
to make it easy for others to build on it.
This is what I hope you do, but: (1) it is optional,
and: (2) wait until you are marked.