The next time I run this practical,
it will be based on my new site
Before that it ran on a prototype Java (server-side) site.
Click to run World: Collision World
at Ancient Brain
See the Introduction.
Run a World
Anyone can run Worlds without logging in.
How to run Worlds
Go to the site,
look at some of the list of Worlds,
and click to run them in the browser.
Writing new Minds and Worlds
To write and upload new Minds and Worlds,
and log in.
Authoring (How to write Worlds and Minds)
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 can write Minds and Worlds from scratch,
or by "cloning" existing Minds and Worlds
and modifying them.
- Editing is done in the browser using the Ace editor.
- The 2D and 3D graphics are done using Three.js.
- For intro to how to use Three.js, see:
Try it out
Try it out:
Clone the sample
JS 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.
Click to run Mind: Complex Mind
in World: Complex World
at Ancient Brain
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.
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
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.