프로 안드로이드 게임 개발
- 출판사 상세 페이지 - 가격 검색 - 원서 페이지 - 예제 코드
관련 글
링크 모음
서문
- Eclipse http://www.eclipse.org/
- 기타 IDE http://developer.android.com/guide/developing/other-ide.html
- 이 책의 예제 코드 http://www.apress.com/downloadable/download/sample/sample_id/654/
- 안드로이드 SDK 1.6의 API 변경 사항 http://developer.android.com/sdk/RELEASENOTES.html
제1장
- 안드로이드 개발자 가이드 http://developer.android.com/guide/index.html
- 안드로이드 레퍼런스 http://developer.android.com/reference/packages.html
- 최신 SDK 및 NDK http://developer.android.com/sdk/index.html
- VMware Player http://www.vmware.com/products/player/
- VMware Virtual Appliance Marketplace http://www.vmware.com/appliances/
- VirtualBox http://www.virtualbox.org/
- BASH 한글 문서 http://wiki.kldp.org/wiki.php/BashProgIntroHowto
- SDK 내려받기 http://developer.android.com/sdk/
- Gittool http://git-scm.com/
- 안드로이드 소스 내려받기 http://source.android.com/source/downloading.html
- 우분투 sun-java5-jdk 설치 http://ekwang.tistory.com/26
- CodeSourcery G++ Lite Edition for ARM http://www.codesourcery.com/sgpp/lite/arm/portal/[email protected]=lite
- NDK 1.6 http://developer.android.com/sdk/ndk/1.6_r1/index.html
제2장
- 플랫폼 버전과 API 수준 http://developer.android.com/guide/appendix/api-levels.html
제3장
- 영문판 위키백과 안드로이드 항목 http://en.wikipedia.org/wiki/Android_(operating_system)
제5장
- Greg Sidelnikov의 OpenGL 좌표계 튜토리얼 http://www.falloutsoftware.com/tutorials/gl/gl0.htm
- OpenGL의 3D 투영 http://mathworld.wolfram.com/OrthographicProjection.html
- NeHe 튜토리얼 http://nehe.gamedev.net/
- 김형준(Dip2K) 님의 OpenGL 강좌 http://gisdeveloper.co.kr/ (프로그래밍-OpenGL 카테고리)
- Galexandria의 NeHe 튜토리얼 번역 http://www.galexandria.com/nehe-opengl-강좌
- OpenGL, GLU 명세서 http://www.opengl.org/documentation/specs/
제6장
- 광선 투사 튜토리얼 http://www.permadi.com/tutorial/raycast/index.html
- 영문판 위키백과 Wolf 3D 항목 http://en.wikipedia.org/wiki/Wolfenstein_3D
- GP32용 Wolfenstein 3D http://sourceforge.net/projects/gp32wolf3d/
- Nokia S60용 Wolf3D http://sourceforge.net/projects/wolf3d-s60/
- Odroid http://www.hardkernel.com/
제7장
- PrBoom 엔진 http://prboom.sourceforge.net/
- 영문판 위키백과 Doom 항목 http://en.wikipedia.org/wiki/Doom_(video_game)
- “안드로이드 게임기”를 표방한 Odroid http://www.hardkernel.com/
부록 A
- Android Developer Guide의 응용프로그램 서명 항목 http://developer.android.com/guide/publishing/app-signing.html#setup
- 안드로이드 플랫폼 버전별 기기 점유율 http://developer.android.com/resources/dashboard/platform-versions.html
- 안드로이드 NDK http://developer.android.com/sdk/ndk/에서 내려 받을 수 있다.
- Cygwin http://www.cygwin.com/
- NDK r3의 주요 변경 사항 http://android-developers.blogspot.com/2010/03/android-ndk-r3.html
예제 다운로드에 없거나 다른 코드
제6장 목록 6-19
CC = agcc
# 모든 경고 표시, 최적화 수준 2
CFLAGS = -Wall -O2
# 목적 파일들
OBJS = objs.o misc.o id_ca.o id_vh.o id_us.o \
wl_act1.o wl_act2.o wl_act3.o wl_agent.o wl_game.o \
wl_inter.o wl_menu.o wl_play.o wl_state.o wl_text.o wl_main.o \
wl_debug.o vi_comm.o sd_comm.o sd_null.o wl_draw.o
# JNI 파일들
JNIOBJS = jni_wolf.o vi_null.o
OBJS += $(JNIOBJS)
# 주 대상
all: lib
# 라이브러리
lib: $(OBJS) j
ald -shared -o libwolf_jni.so $(OBJS)
.c.o:
@echo
$(CC) -fpic -c $(CFLAGS) $(INCLUDES) $<
# JNI 헤더 생성
jni:
@echo "Creating JNI C headers..."
javah -jni -classpath ../../bin -d include wolf.jni.Natives
clean:
rm -rf *.o
부록 A Doom 예제
Application.mk(NDK 1.6, r3용):
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES := doom_jni
Android.mk(NDK 1.6, r3용) :
LOCAL_PATH := $(call my-dir)
# 변수들을 비운다.
include $(CLEAR_VARS)
# 모듈 이름
LOCAL_MODULE := doom_jni
LP := $(LOCAL_PATH)
# Doom 네이티브 코드 폴더
DOOM := apps/Doom/project/jni
# 헤더 위치
INC := -I$(DOOM) -I$(DOOM)/include
DOOM_FLAGS := -DNORMALUNIX -DLINUX -DHAVE_CONFIG_H
OPTS := -O3 -ffast-math -fexpensive-optimizations
LOCAL_CFLAGS := $(DOOM\_FLAGS) $(OPTS) $(INC)
# 소스 파일들
LOCAL_SRC_FILES := \
am_map.c m_cheat.c p_lights.c p_user.c sounds.c \
hu_lib.c md5.c p_map.c r_bsp.c s_sound.c \
d_deh.c hu_stuff.c m_menu.c p_maputl.c r_data.c st_lib.c \
d_items.c m_misc.c p_mobj.c r_demo.c st_stuff.c \
d_main.c info.c p_plats.c r_draw.c tables.c \
doomdef.c m_random.c p_pspr.c r_filter.c version.c \
doomstat.c p_ceilng.c p_saveg.c r_fps.c v_video.c \
p_checksum.c p_setup.c r_main.c wi_stuff.c \
dstrings.c p_doors.c p_sight.c r_patch.c w_memcache.c \
f_finale.c p_enemy.c p_spec.c r_plane.c w_mmap.c \
f_wipe.c lprintf.c p_floor.c p_switch.c r_segs.c w_wad.c \
g_game.c m_argv.c p_genlin.c p_telept.c r_sky.c z_bmalloc.c \
m_bbox.c p_inter.c p_tick.c r_things.c z_zone.c \
d_client.c d_server.c \
i_video.c i_network.c i_system.c i_main.c i_sound.c \
jni_doom.c
# libdoom_jni.so를 만든다
include $(BUILD_SHARED_LIBRARY)
부록 B OpenGL 입방체 예제
Application.mk(NDK 1.6, r3용)
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES := gltest-jni
Android.mk(NDK 1.6, r3용)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := gltest-jni
LOCAL_CFLAGS := -Wall -O2 -fpic
LOCAL_SRC_FILES := cuberenderer.c cube.c
LOCAL_LDLIBS := -lGLESv1_CM
include $(BUILD_SHARED_LIBRARY)
부록 B Wolf3D 예제
Application.mk(NDK 1.6, r3용)
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES := wolf_jni
Android.mk(NDK 1.6, r3용)
LOCAL_PATH := $(call my-dir)/gp2xwolf3d
include $(CLEAR_VARS)
LOCAL_MODULE := wolf_jni
INC := -Iinclude
OPTS := -O6 -ffast-math -fexpensive-optimizations \
-funroll-loops -fomit-frame-pointer
LOCAL_CFLAGS := $(OPTS) $(INC)
LOCAL_SRC_FILES := objs.c misc.c id_ca.c id_vh.c id_us.c \
wl_act1.c wl_act2.c wl_act3.c wl_agent.c wl_game.c \
wl_inter.c wl_menu.c wl_play.c wl_state.c wl_text.c wl_main.c \
wl_debug.c vi_comm.c sd_comm.c \
wl_draw.c jni_wolf.c vi_null.c sd_null.c
include $(BUILD_SHARED_LIBRARY)
comments powered by Disqus