goguelike:baised 진행사항
By SeukWon Kang
딱히 외적으로 변화한 부분이 없는 관계로 포스팅이 뜸했습니다만..
내부적으로는 격변이라고 할 만큼의 수정이 있었습니다. ( 거의 모든 코드가 수정된 듯. )
기본적으로는 기존의 코드를 모두 refactoring해서 30여개의 모듈로 분리하는 작업이 완료 되었습니다.
그리고 client AI 를 위한 a-star 모듈과 이를 사용한 client AI 작업이 진행되었고 또 이를 이용한 loadtester 역시 만들었습니다.
클라이언트 쪽 변경사항이라면 서버와 같이 모듈화 작업이 진행되면서 다양한 형태의 클라이언트를 만들기 위한 clientbase 모듈을 만들고 이를 sdlclient 와 loadtester에 적욯하였습니다.
그리고 지난 주말부터 작업한 go 언어용 sdl GUI library 작업이 진행중입니다.
기존 sdlclient는 거의 sdl 기본 기능 ( 선긋고 , bitmap 복사하고 )만을 사용해서 만든 관계로 코드도 복잡하고 또 모듈화를 하거나 mouse를 지원 하는데 어려움이 있었습니다.
본격적으로 쓸만한 client를 만드려고 하니 mouse 지원이나 각종 GUI control들이 아쉬워서 이리 저리 찾아 봐도 정말 없기에 결국 만들게 되었습니다. ;;;
오늘 작업 까지 해서 기존 sdlclient에 필요한 control들이 모두 만들어 졌으며 이를 적용한 sdlclient2 작업까지 끝났습니다.
사실 고민하는데 3일 기본 작업하는데 2일 버그잡고 성능 개선 하는데 1일 정도 걸렸으니 대단한 작업은 아닙니다.
( AI path finding을 위한 a-star 작업은 고민이 1주 , 검색및 구현이 3시간 , 디버그가 1일 정도 걸리더군요. -작업에 가장 시간이 많이 소요되는 것은 고민(==설계) 인게 맞습니다. ^^ )
그래서 현재 까지의 작업양을 확인해보니 드디어 총 코드의 양이 10000 라인이 넘었습니다.
134 399 2794 ./lru/lru.go 110 299 2322 ./room/room.go 707 2023 17148 ./floor/floor.go 742 2036 17418 ./floor/floorao.go 137 389 2788 ./log/log.go 253 711 6296 ./towermaker/theme.go 474 1730 14631 ./towermaker/mapeditutil.go 304 912 5524 ./bias/bias.go 130 456 3076 ./astar/astar.go 327 994 8284 ./clientai/clientai.go 175 540 3623 ./rect/rect.go 77 173 1633 ./passiveobj/passiveobj.go 285 1281 10185 ./config/config.go 70 199 1380 ./dice/dice.go 80 273 1850 ./ivector2d/ivector2d.go 63 144 1061 ./terrain/terraintile.go 520 1933 12817 ./terrain/terrain.go 70 207 1222 ./util/util.go 35 76 720 ./server/server.go 268 613 5564 ./server/webinfo.go 17 33 277 ./version/version.go 199 573 3963 ./quadtree/quadtree.go 519 1513 11820 ./clientgui/clientgui.go 33 81 462 ./prime/prime.go 412 1101 10298 ./tower/tower.go 299 754 8080 ./clientbase/clientbase.go 497 1402 11974 ./activeobj/activeobj.go 61 172 1090 ./maze/maze.go 242 611 4992 ./clientpacket/clientpacket.go 48 120 692 ./id/id.go 77 191 1517 ./fieldobjs/fieldobjs.go 84 209 1800 ./actionstat/actionstat.go 234 718 4420 ./action/action.go 234 710 5396 ./floorfield/floorfield.go 83 242 1784 ./floorfield/ftpather.go 24 42 408 ./play/servicetower.go 892 2681 27685 ./play/sdlclient2.go 950 3044 28668 ./play/oldsdlclient.go 291 670 7087 ./play/edittower.go 21 34 333 ./play/newtower.go 22 34 327 ./play/maketower.go 73 201 1787 ./play/loadtester.go 145 381 2946 ./tcpconn/tcpconn.go 74 177 1329 ./frametask/frametask.go 10492 31082 259471 total
이제 더 이상 사용하지 않을 oldsdlclient.go 를 제외하면 9600라인 정도군요.