Mercurial > cortex
comparison thesis/cortex.org @ 463:6d55ac73bc6f
moar text.
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Thu, 27 Mar 2014 20:46:36 -0400 |
parents | bb81cef09ad7 |
children | 8bf4bb02ed05 |
comparison
equal
deleted
inserted
replaced
462:bb81cef09ad7 | 463:6d55ac73bc6f |
---|---|
431 build =CORTEX=. Doing so would lead to a system that is impossible | 431 build =CORTEX=. Doing so would lead to a system that is impossible |
432 for anyone but myself to use anyway. Instead, I use a video game | 432 for anyone but myself to use anyway. Instead, I use a video game |
433 engine as a base and modify it to accomodate the additional needs | 433 engine as a base and modify it to accomodate the additional needs |
434 of =CORTEX=. Video game engines are an ideal starting point to | 434 of =CORTEX=. Video game engines are an ideal starting point to |
435 build =CORTEX=, because they are not far from being creature | 435 build =CORTEX=, because they are not far from being creature |
436 building systems themselves. | 436 building systems themselves. |
437 | 437 |
438 First off, general purpose video game engines come with a physics | 438 First off, general purpose video game engines come with a physics |
439 engine and lighting / sound system. The physics system provides | 439 engine and lighting / sound system. The physics system provides |
440 tools that can be co-opted to serve as touch, proprioception, and | 440 tools that can be co-opted to serve as touch, proprioception, and |
441 muscles. Since some games support split screen views, a good video | 441 muscles. Since some games support split screen views, a good video |
442 game engine will allow you to efficiently create multiple cameras | 442 game engine will allow you to efficiently create multiple cameras |
443 in the simulated world that can be used as eyes. | 443 in the simulated world that can be used as eyes. Video game systems |
444 offer integrated asset management for things like textures and | |
445 creatures models, providing an avenue for defining creatures. | |
446 Finally, because video game engines support a large number of | |
447 users, if I don't stray too far from the base system, other | |
448 researchers can turn to this community for help when doing their | |
449 research. | |
450 | |
451 ** =CORTEX= is based on jMonkeyEngine3 | |
452 | |
453 While preparing to build =CORTEX= I studied several video game | |
454 engines to see which would best serve as a base. The top contenders | |
455 were: | |
456 | |
457 - [[http://www.idsoftware.com][Quake II]]/[[http://www.bytonic.de/html/jake2.html][Jake2]] :: The Quake II engine was designed by ID | |
458 software in 1997. All the source code was released by ID | |
459 software into the Public Domain several years ago, and as a | |
460 result it has been ported to many different languages. This | |
461 engine was famous for its advanced use of realistic shading | |
462 and had decent and fast physics simulation. The main advantage | |
463 of the Quake II engine is its simplicity, but I ultimately | |
464 rejected it because the engine is too tied to the concept of a | |
465 first-person shooter game. One of the problems I had was that | |
466 there does not seem to be any easy way to attach multiple | |
467 cameras to a single character. There are also several physics | |
468 clipping issues that are corrected in a way that only applies | |
469 to the main character and do not apply to arbitrary objects. | |
470 | |
471 - [[http://source.valvesoftware.com/][Source Engine]] :: The Source Engine evolved from the Quake II | |
472 and Quake I engines and is used by Valve in the Half-Life | |
473 series of games. The physics simulation in the Source Engine | |
474 is quite accurate and probably the best out of all the engines | |
475 I investigated. There is also an extensive community actively | |
476 working with the engine. However, applications that use the | |
477 Source Engine must be written in C++, the code is not open, it | |
478 only runs on Windows, and the tools that come with the SDK to | |
479 handle models and textures are complicated and awkward to use. | |
480 | |
481 - [[http://jmonkeyengine.com/][jMonkeyEngine3]] :: jMonkeyEngine3 is a new library for creating | |
482 games in Java. It uses OpenGL to render to the screen and uses | |
483 screengraphs to avoid drawing things that do not appear on the | |
484 screen. It has an active community and several games in the | |
485 pipeline. The engine was not built to serve any particular | |
486 game but is instead meant to be used for any 3D game. | |
487 | |
488 | |
489 I chose jMonkeyEngine3 because it because it had the most features | |
490 out of all the open projects I looked at, and because I could then | |
491 write my code in clojure, an implementation of =LISP= that runs on | |
492 the JVM. | |
444 | 493 |
445 ** Bodies are composed of segments connected by joints | 494 ** Bodies are composed of segments connected by joints |
446 | 495 |
447 ** Eyes reuse standard video game components | 496 ** Eyes reuse standard video game components |
448 | 497 |