Emacsã§3Dãªãã«ããã¬ã¤ã¤ã¼ãªFPSãä½ã£ã¦ã¿ã
é¢è¥¿Emacsã§çºè¡¨ãããã¢ã§ãã
ã¾ãããFPSã㯠CoD MW ã®ãããªã·ã¥ã¼ãã£ã³ã°ã¨ãã§ã¯ãªãã¦ï¼ããã¯æ¯éããããã£ãã®ã§ããï¼ãä¸äººç§°æ£æ©(First Person Sanpo)ããã°ã©ã ã§ããFPSã¯é£ãã§ããããããªããã
(2011/05/06 追è¨: Vimã«ãåºæ¥ã¦ã¾ãã!! 3D in Vim — KaoriYa)
åä½é¢¨æ¯
æè©®ããã¹ãã¨ãã£ã¿ã®ãããã¨ã§ãã®ã§ãæå¾ ãããçæããç®ã§è¦ã¦ãã ããã
ä¸äººç¨ã®ã ã¼ãã¼
ãããã¡ã§æããè¿·è·¯ãæ©ãã¾ã
åããæ¹ï¼ã·ã³ã°ã«ãã¬ã¼ã¤ã¼
å¿ è¦ãªç©ï¼
- 64bitçEmacs23.x
- 22ã§ãåãããç¥ãã¾ãã
- 32bitã ã¨æ´æ°æ¡ããµãããããã§ã
- banner
- deferred.el, concurrent.el
- éåæã©ã¤ãã©ãª
- matrix.el
- ç°¡æè¡åè¨ç®
- 3dmaze.el ï¼æ¬ä½ï¼
åelispãã¡ã¤ã«ã¯ãauto-install.elã§ä»¥ä¸ã®å¼ãè©ä¾¡ãã¦å ¥ãããããã¦ã³ãã¼ããã¦load-pathã®å ´æã«ç½®ãã¦ãã ããããã¦ã³ãã¼ãããå ´åã¯ããªãã¹ãé«éã«åä½ãããããã«ãã¤ãã³ã³ãã¤ã«ãã¦ãã ãããï¼å¤åï¼åãããéããªãã¾ãï¼
;; auto-installã使ãå ´å (auto-install-from-url "https://github.com/kiwanami/emacs-deferred/raw/master/deferred.el") (auto-install-from-url "https://github.com/kiwanami/emacs-deferred/raw/master/concurrent.el") (auto-install-from-url "https://github.com/kiwanami/emacs-3d-demo/raw/master/matrix.el") (auto-install-from-url "https://github.com/kiwanami/emacs-3d-demo/raw/master/3dmaze.el")
- ãã¦ã³ãã¼ã
æºååºæ¥ããã以ä¸ã®ããã«æä½ãã¾ãã
- M-x load-library RET / 3dmaze RET
- Scratchãããã¡ã§ (require '3dmaze) ãè©ä¾¡ãã¦ãå¯
- è¿·è·¯ãé©å½ãªãããã¡ã«æã
- è¿·è·¯ãµã³ãã« https://github.com/kiwanami/emacs-3d-demo/raw/master/maze.txt
- è¿·è·¯ã®ãããã¡ã§ M-x d3m:open-maze-buffer
åæä½ç½®ã¯ã©ã³ãã ã§æ±ºã¾ãã¾ãã®ã§ãå£ã®æ¹ãåãã¦ãããçã£éããå§ã¾ãããç¥ãã¾ãããããã¦ã横ãåãã¦ãã ããã
ãã¨ãè¡é è¡æ«ã¹ãã¼ã¹å¼·èª¿ããã¦ãã人ã¯ãæ¢ãã¦ããã¦ãã ããã
ãã¼ãã¤ã³ã
ãã¼ | åä½ |
---|---|
ââ | å·¦å³ã«å転ãã |
ââ | åã«é²ããå¾ãã«é²ã |
a,s | å·¦å³ã«é²ã |
b | å¾ããåã |
m | 2Dããã表示ã®ãã°ã« |
çµäºã¯ kill-buffer (C-x k) ãã¦ãã ããã
è¿·è·¯ã«ã¤ãã¦
ã#ããã*ãã¯å£ã«ãªãã¾ããã¹ãã¼ã¹ã¯éã«ãªãã¾ãã
ã¢ã«ãã¡ããããæ¸ãã¨ãã¢ã«ãã¡ãããã®ãªãã¸ã§ã¯ãã«ãªãã¾ããè¿·è·¯ãããã¡ã¨ãã¦é©å½ãªã½ã¼ã¹ãã¡ã¤ã«ã¨ããæå®ã§ãã¾ããããªãã¸ã§ã¯ããå¤ãã¨éããªãã¾ãã®ã§æ³¨æãã¦ãã ããã
ã¢ã«ãã¡ããã以å¤ã®æåï¼æ£ç¢ºã«ã¯bannerã表示ã§ããªãæåï¼ãå«ãã¨ã¨ã©ã¼ã«ãªãããç¥ãã¾ããã
åããæ¹ï¼ãã«ããã¬ã¼ã¤ã¼
ã·ã³ã°ã«ãã¬ã¼ã¤ã¼çãåãã°ããã¡ããããã«åãã¨æãã¾ãããMacã®Emacs22ã ã¨IPv6ã®é¢ä¿ã§ãµã¼ãã¼ã«ãªããªãããã¨ããæ å ±ãããã¾ãã
ã·ã³ã°ã«ãã¬ã¼ã¤ã¼çã«å ãã¦ããµã¼ãã¼ã¯ server-maze.el ãã¤ã³ã¹ãã¼ã«ãã¦ãã ãããã¯ã©ã¤ã¢ã³ãå´ã¯ client-maze.el ãã¤ã³ã¹ãã¼ã«ãã¦ãã ããããã¡ããã両æ¹å ¥ãã¦èªä½èªæ¼ãå¯è½ã§ãã
;; auto-installã使ãå ´å (auto-install-from-url "https://github.com/kiwanami/emacs-3d-demo/raw/master/server-maze.el") (auto-install-from-url "https://github.com/kiwanami/emacs-3d-demo/raw/master/client-maze.el")
- ãã¦ã³ãã¼ã
ãµã¼ãã¼ã®èµ·å
ã«ã¬ã³ããã£ã¬ã¯ããªã®è¿·è·¯ãã¡ã¤ã«ï¼maze.txtï¼ãèªã¿è¾¼ã¿ã¾ãã®ã§ããã¼ã ãã£ã¬ã¯ããªã«è¿·è·¯ãã¡ã¤ã«ãç½®ãã¦ãã ããããã®å¾ãScratchãããã¡ã§ä»¥ä¸ãè©ä¾¡ããã¨èµ·åãã¾ãã
(require 'server-maze) (setq ssm:server-address "192.168.1.1") ; âèªåã®ãã·ã³ã®IPv4ã¢ãã¬ã¹ (ssm:server-start)
èµ·åããã¨ã以ä¸ã®ãããªç»é¢ã表示ããã¾ãã
ãµã¼ãã¼ã®ç»é¢
ãã¬ã¼ã¤ã¼ï¼ã¯ã©ã¤ã¢ã³ãï¼ã®èµ·å
ã¹ã¯ã©ãããããã¡ãã以ä¸ãè©ä¾¡ãã¦ãã ããã
(require 'client-maze) (csm:client-start)
ããããã¨ã以ä¸ã®ãããªç»é¢ãåºã¦ãã¾ãã
æ¥ç¶æ å ±ç»é¢
ãNameãã¯é©å½ãªã¢ã«ãã¡ãããããServer Addressãã¯ãµã¼ãã¼ã®IPã¢ãã¬ã¹ããã¹ãåããServer Portãã¯8765ï¼ããã©ã«ãã®å ´åï¼ãå ¥ãã¦ãã ããã
OKãæ¼ãã¦ããã¾ãããã¨è¿·è·¯ç»é¢ãåºã¦ãã¾ãã
æä½ã®ä»æ¹ã¯ã·ã³ã°ã«ãã¬ã¼ã¤ã¼ã¨å¤ããã¾ããã
ä»äººãã©ã£ã¡ãåãã¦ãããã¯è²ã§åããã¾ãã
- 赤ï¼ãã£ã¡ãåãã¦ããã¨ã
- é»ï¼æ¨ªãåãã¦ããã¨ã
- ç·ï¼åãããåãã¦ããã¨ã
æ£æ©ã²ã¼ãªã®ã§ãæã¤æ®´ããªã©ã®ã¤ã³ã¿ã©ã¯ã·ã§ã³ã¯åºæ¥ã¾ãããä»®æ³ç©ºéã§ã®Emacså士ã®ãªã¢ã«ãªã³ãã¯ã·ã§ã³ãæããªããåãã§ãã ããã
ãµã¼ãã¼ã®æä½
ç¹ã«ã¯ã©ã¤ã¢ã³ããåãåãã®ãè¦å®ããããããããã¾ããããä¸å¿ä»¥ä¸ã®ãããªãã¼ãã¤ã³ããããã¾ãã
ãã¼ | åä½ |
---|---|
g | ç»é¢åæç» |
b | IDã§æå®ãã¦ban |
q | ãµã¼ãã¼ã®çµäº |
ãããã³ã«
ãµã¼ãã¼ã¨ã¯ã©ã¤ã¢ã³ãéã®éä¿¡ã¯TCPã¹ããªã¼ã ä¸ãSå¼ãããã¨ããã¦ãã¾ãã
ãããã³ã«ã®æ¦è¦ã¯ server-maze.el ã®ä¸ã®æ¹ã®ã³ã¡ã³ãã«æ¸ãã¦ããã¾ãã®ã§ãtelnet ã§æ¥ç¶ãã¦ç´æ¥ãããã³ã«ãããã¨ããããã¨ãåºæ¥ã¾ãã
ãªãã ãã
ç®ç
- ã¢ããªã±ã¼ã·ã§ã³ãã©ãããã©ã¼ã ã¨ãã¦ã®æ½å¨è½åã®èª¿æ»
- Emacsã«ä½ãåãã¦ãã¦ãä½ãåãã¦ããªãããç¥ã
- Emacsã®éç
- è¨ç®è½å
- æç»ã表ç¾è½å
- ãªã¢ã«ã¿ã¤ã éä¿¡
ã¡ãã£ã¨Emacsã®æ¬æ°ã調ã¹ã¦ã¿ããã¨ãããã¨ã§ããã¾ããã
調ã¹ã¦ããéä¸ã§ãEmacsã®VMããã¤ãã³ã³ãã¤ã«ã®å 容ã¾ã§èå³ãåºã¦ããã®ã§ãVMインストラクション表ãä½ãã¾ãããä¸ã®äººã«ã¨ã£ã¦ããã£ãæ¹ã便å©ã ã¨æãã®ã§ãããä»å¾ãã¡ã³ããã³ã¹ãç¶ãã¨è¯ãã§ããã
çµæ
- Javaçã«æ¯ã¹ã¦éãã«é
ã
- Javaã§ã¬ã³ãã©ã¼ãæ¸ããçµé¨ãããæ¯è¼ãã¦ç¸å½é
ã
- ä½ã¨ãªã1000åãããé ããã
- æ°å¤è¨ç®ã¯ãã£ã±ãå¾æã§ãªã
- Javaã§ã¬ã³ãã©ã¼ãæ¸ããçµé¨ãããæ¯è¼ãã¦ç¸å½é
ã
- åç´ãªããããã£æ¸ãæãã¯ãããªã«é
ããªã
- å¹¾ä½è¨ç®ã¯ããªãé ãã£ãããããããã£æ¸ãæãã®å ¨ç»é¢æç»ã¯æå¾ ããã»ã©é ããªãã£ã
- ã·ã³ãã«ãªã¨ãã§ã¯ãã¢ãã¡ã¼ã·ã§ã³ã¯ãããã
- éåæéä¿¡ã¯concurrent.elã§ãµãã¼ãã§ããã
- ãããã¯ã¼ã¯éä¿¡ãã¡ãã»ã¼ã¸ããã·ã³ã°çãªä»çµã¿ã§æ¸ãã
- ããã°ã©ãã³ã°ã®ã¢ã¼ããã¯ãã£ã¨ãã¦ã¯ããªããããã
- åæ6æ¥ç¶ãããã§ã¯å ¨ç¶åé¡ãªãã£ãã®ã§ããªã¢ã«ã¿ã¤ã éä¿¡ã¯ä½¿ããã
- Emacsã§ãµã¼ãã¼ã¯ããããã
- ç¶æ³è¡¨ç¤ºãªã©è¦ãç®æ¥½ãã
- screenã§èµ·åãã¦æä½
- åä½ä¸ã®ãµã¼ãã¼ã®REPLã«æ¥ç¶ãã¦æ¸ãæã!!! (shiroããä¼èª¬ï¼)
æè¡ãããã
3D表ç¾æ¹æ³
å ãã¿ã¯ç±³ãã£æ°ã®åä½激走ラビリンスããã§ããMSXã§ã¯SCREEN1ã§ããããããã®ãå½æã®å¸¸å¥æ段ã§ããã
3Dã¯ããªã´ã³ãè¨ç®ãã¦ããããã§ã¯ãªãã¦ãã¬ã¤ãã¬ã¼ã·ã³ã°ã®ããã«ç»é¢ä¸ã®åç¹ããéè¦æ¹åã¸ã®ã¹ãã£ã³ãè¡ã£ã¦ãå£ãåºãæç»ãã¦ãã¾ãã
ç»é¢ã®æç»ã¯ãç»é¢å ¨ä½ãã¹ãã¼ã¹ã§åãã¦ãèæ¯è²ãä¸ã¤ä¸ã¤ã»ãããããã¨ã§è¡¨ç¾ãã¦ãã¾ããè£ç»é¢ã¨ãã¦vectorã§é åãæã£ã¦ããã3Dæç»ã¯ãã®vectorã«å¯¾ãã¦è¡ã£ã¦ãæå¾ã«ãããã¡ã«è»¢éãã¦ãã¾ãã
æå
ã³ãã³ãã©ã¤ã³ããbannerãå®è¡ãã¦ãã©ã³ãæ å ±ãåã£ã¦ãã¦ããããæ¡å¤§ç¸®å°ãããã¨ã§æåãæ¸ãã¦ãã¾ããè¨ç®ã«ä½è£ããªãã£ãã®ã§åãã«ããå¾ããªã©ã¯èæ ®ãã¦ãªãã§ãã
åå¾é¢ä¿ãå£ã®è£ã«é ãããããã¢ã«ã´ãªãºã ã¯ãZãããã¡ã使ã£ã¦ãã¾ããå ã®è£ç»é¢vectorã¨ä¸ç·ã«Zæ å ±ãæã£ã¦ãã¾ãã
éã«åãã°Twitterããã¢ã¤ã³ã³ãåã£ã¦ãã¦è¡¨ç¤ºãããã¨ãæã£ã¦ããã®ã§ãããæéãããã¾ããã§ãããæè¡çã«ã¯æ¤è¨¼ãã¦ãã¾ãã®ã§ã straightfoward ã«åºæ¥ãã¨æãã¾ãã
ãã¼æä½
æ®éã«ãã¼ãã¤ã³ãããæç»ããã¨Emacsãåºã¾ã£ã¦ãã¾ãã®ã§ããã¼å ¥åã¯ã¤ãã³ããéç¥ããã ãã«ãã¦ãæç»å´ã¯éåæã«ã¤ãã³ããæ¾ã£ã¦å¦çããããã«ãã¾ãããããã«ãããããç¨åº¦ãªããããªãã¼å ¥å移åãå®ç¾ã§ãã¾ããã
éä¿¡
éä¿¡ã¯TCPã¹ããªã¼ã ã¨Så¼ã®ããã¨ãã concurrent.el ã®ã¤ãã³ãéç¥ã§ã©ãããã¦ãã¡ãã»ã¼ã¸ããã·ã³ã°ã«ããéåæéä¿¡ã§è¡ã£ã¦ãã¾ããéä¿¡ãã©ã¼ããããSå¼ã ã¨ãã£ã±ã楽ã§ããã
ä»åã¯ãã®æ¹æ³ãããããã¾ãããããã¾ãããããã°ã©ã çã«ãã·ã³ãã«ã«ãªããéåæãªã®ã§åã¯ã©ã¤ã¢ã³ãã¨ãµã¼ãã¼ããäºããæ°ã«ããã«èªåã®ãã¼ã¹ã§å¦çãé²ãããã¨ãåºæ¥ãããã«ãªãã¾ããã
ããããå®é¨ãã¦ã¿ã¾ããããç¹å®ã®ã¯ã©ã¤ã¢ã³ããããã¤ãã¦ãå ¨ä½ã«å½±é¿ãåºãªãã¨ããããããããã£ãã§ããå ¨ç¶è¦æ¨¡ã¨ãæ¯è¼ã«ãªãã¾ããããMMOã¨ããããªé¢¨ã«ãªã£ã¦ããã®ããªã¨ãèããããã¾ããã
ãã³ãåã£ã¦æé©å
æé©åã¯å®ç³éããä¸åº¦å ¨ä½ãåãããã«ãªã£ã¦ããè¡ãã¾ããã大ä½ä»¥ä¸ã®ãããªãã¨ãããã¾ããã
- å¹¾ä½è¨ç®ã®ãã£ãã·ã¥ï¼vectorã¸ã®ã¢ã¯ã»ã¹ï¼
- Emacsä¸ã®è¨ç®ã¯é ãã®ã§ãåºæ¥ãã ãå ã«è¨ç®ãã¦ãã
- ã¤ã³ã¹ã¿ã³ã¹ï¼vectorï¼ãã£ãã·ã¥
- ã¤ã³ã¹ã¿ã³ã¹çæããã¨é ããã1.2åç¨åº¦ããéããªã
- ã»ã¨ãã©ã®è¨ç®ãåºå®å°æ°ç¹æ¼ç®ã§è¡ã
- æµ®åå°æ°ç¹æ¼ç®ããæ´æ°æ¼ç®ã®æ¹ã6åç¨åº¦æ©ãã£ããã
- faceã®è²æååã®ãã£ãã·ã¥
- ããç¨åº¦ç¨®é¡ãçµãè¾¼ãã§ããã¼ãã«ããæååãå¼ãã¦ãããç¡éã«è²ãããã¨è¾ãã
å¾ã¯ãã¤ãã³ã³ãã¤ã«çµæãè¦ã¦ãããç¨åº¦VMã®åããèããªããã³ã¼ããåã£ã¦ããã¾ããã
ã¾ã ã¾ã æé©åã»é«éåã®ä½å°ã¯ããã¨æãã¾ãããèªåã®ä¸ã§ããç¨åº¦ç®æ¨ãéæãããã®ã§ããããã以ä¸ã¯ããªãã¨æãã¾ãã
ã©ãã¸è¡ãã®ã
ããã¯ãã¿ã§ãã®ã§ãä»å¾Emacsã§ã²ã¼ã ãä½ããã¨ãæã£ã¦ããããã§ã¯ãªãã§ãã
èæ¯è²ã§çµµãæãã¨ãããã¯ããã¯ãçµæ§ä½¿ãããã ã¨åãã£ãã®ã§ãä»å¾ãã®æ¹æ³ã§è¡¨ç¾åãä¸ãããã¨ãåºæ¥ãããªã¨æã£ã¦ãã¾ãã
ãã¨ãEmacså士ã®éä¿¡ããã¾ãããæ¹æ³ãåãã£ãã®ã§ãããã¯ã°ã©ã¦ã³ãã§ã¹ã¬ããã®ããã«ç«ã¡ä¸ãã¦ä½ãä»ã®å¦çããããã¨ããå¥ã®ãµã¼ãã¼ã®Emacsã¨éä¿¡ããã¦Trampã®ãããªãã¨ãããã¨ããæ¢åã®Emacsã®å½¢ã«ã¨ããããªãé¢ç½ããã¨ãåºæ¥ãã®ã§ã¯ãªãããªã¨ãæã£ã¦ãã¾ãã