View
1.277
Download
0
Category
Preview:
Citation preview
สรางเกมดวย Dark Basic Professional
จดทาโดย
วศน ภรมย
ปรญญาโท วศวกรรมคอมพวเตอร จฬาลงกรณมหาวทยาลย Webmaster (www.GamedevX.com)
Email : webmaster@GamedevX.com
Tel 081-400-5759
แกไขลาสดเมอป 2545
สรางเกมดวย Dark Basic Professional - หนาท 2
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
คมอการใชงานโปรแกรม DarkBASIC Professional
DarkBASIC Professional เปนเครองมอทสรางขนสาหรบชวยใหการสรางเกมสามมตเปนเรองงาย ไดอยางทคาดไมถง ดงคาขวญทวา “Write Increadible 3D Games, Applications and Presentations With Ease”
การตดตงโปรแกรม เมอใสแผนโปรแกรม DarkBASIC
Professional เขาไปใน CD-Drive จะพบกบ Setup Menu ปรากฏขนมา ใหคลกท Install
Dark Basic Professional เพอทาการตดตงโปรแกรม เมอตดตงเสรจจะพบกบไอคอนปรากฏบน Desktop ใหคลกทไอคอนเพอเขาใชโปรแกรม (Note : ถาเครองยงไมเคยลง DirectX หรอลงแลวแตเวอรชนตากวา 8.1 ขอใหทาการลง DirectX 8.1 โดยเลอก Install DirectX 8.1 กอน)
การใชงานโปรแกรม
เมอเขาสโปรแกรม จะพบกบหนาจอของโปรแกรม DarkBASIC Professioanl ซงมหน าตา เหมอนโปรแกรมบนวนโดวท วๆไป แต ส าห รบโปรแกรมน จะม Introduction การใชโปรแกรมอยางละเอยดอยทางดานขวามอของหนาจอ
สรางเกมดวย Dark Basic Professional - หนาท 3
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
เมนของโปรแกรมถกแบงออกเปน 8 หวขอดงตอไปน
FILE Menu : NEW PROJECT : Starts a new project OPEN PROJECT : Opens an existing project OPEN SOURCE : Opens an existing DBA file for current project REOPEN : Opens a project previously worked on SAVE PROJECT : Save the current project SAVE PROJECT AS : Save project under a new name SAVE SOURCE : Save currently edited source code SAVE SOURCE AS : Save current source code under a new name SAVE ALL : Save all source code of current project CLOSE : Close window holding current source code CLOSE ALL : Close all windows containing source code PRINT : Print current source code to printer EXIT : Exit the editor
EDIT Menu : UNDO : Restore source code to previous state REDO : Reapply state prior to UNDO being used CUT : Copy and cut currently selected text to clipboard COPY : Copy currently selected text to clipboard PASTE : Paste contents of clipboard to source code cursor DELETE BLOCK : Deletes all text currently highlighted SELECT ALL : Selects all text in current source code window TOGGLE BREAKPOINT : Toggles breakpoint within source code SET BOOKMARK : Sets a bookmark at the current cursor position
SEARCH Menu : FIND : Finds a text match within the current source code FIND AGAIN : Uses text from previous search to find again SEARCH/REPLACE : Finds text and replaces it with alternative GO TO LINE : Jumps to a specified line number GO TO BOOKMARK : Jumps to a specified bookmark position
สรางเกมดวย Dark Basic Professional - หนาท 4
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
VIEW Menu :
SHOW TOOL BAR : Shows/Hides the iconic shortcut toolbar SHOW PROJECT MANAGER : Shows/Hides the project settings TOOLBARS : Control toolbar visibility DISPLAY MODE : Controls editor mode FOLD ALL FUNCTIONS : Folds each function to a single line UNFOLD ALL FUNCTIONS : Unfolds all functions to normal
COMPILE Menu : CHECK SYNTAX/MAKE EXE : Compiles current project MAKE EXE/RUN : Compiles and runs current project RUN IN DEBUG MODE : Compiles and runs in debug mode RUN IN STEP-THROUGH MODE : Compiles and runs in step-through mode
TOOLS Menu SYSTEM OPTIONS : Shows system information
WINDOW Menu : CASCADE : Arranges windows in cascade order TILE HORIZONTALLY : Arranges windows in horizontal order TILE VERTICALLY : Arranges windows in vertical order
HELP Menu :
CONTENTS : Shows help at contents page LAST HELP FILE : Shows last help page viewed INDEX : Shows command index page CHECK FOR UPGRADES : Checks DarkBasic Website for Upgrades DARK BASIC PROFESSIONAL HOME : Go to Dark Basic Professional Website DARK BASIC DEVELOPER NETWORK : Go to DarkBASIC Developer Network Website DARK BASIC SOFTWARE HOME : Go to Dark Basic Software homepage ABOUT : Shows software about dialogue
สรางเกมดวย Dark Basic Professional - หนาท 5
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
Editing area ในโปรแกรม DarkBASIC Professional
พนทวางขนาดใหญ คอ Editing area ทใชสาหรบเขยนโปรแกรมเกม
เราสามารถใสตวเลขเพอบอกบรรทดได ดวยการ
เลอกเมน Tool -> Systems Options คลกเลอก Show Line
Numbers แลวคลก Ok
จะมตวเลขกากบอยขางหนา Editing area ทกบรรทด ทาใหสามารถเขยนโปรแกรมไดสะดวกขน
สรางเกมดวย Dark Basic Professional - หนาท 6
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
การ RUN โปรแกรม ใหคลกท Editing area แลวพมพคาสงดงตอไปน PRINT "HELLO WORLD" WAIT KEY เมอตองการรนโปรแกรมใหกด F5 หรอคลกทไอคอน ผลลพธของคาสงน คอการแสดงผลคาวา HELLO WORLD บนจอคอมพวเตอร การใช Debugger ใหคลกท Editing area แลวพมพคาสงดงตอไปน DO T=T+1 PRINT T LOOP
ถาตองการตรวจสอบการทางาน
ของชดคาสง หรอการทางานของโปรแกรม ใหทาการ RUN โปรแกรมในสวนของ Debug Mode โดยกด F6 หรอคลกทไอคอนรปแมลง
เมอรนโปรแกรมในสวนของ Debug Mode แลว ผลลพธของโปรแกรม กจะเหมอนกบการรนธรรมดา แตเมอกดปม ESCAPE จะมตว Debuger ขนมาใหเราทาการตรวจเชคโปรแกรม โดยทเราสามารถเลอก Step Through Mode สาหรบทดสอบการทางานของชดคาสง ซงสามารถเชคทละบรรทด หรอใหโปรแกรมเชคใหดอยางชาๆ หรอจะเชคดวยความเรวแบบทรนปกตกได
สรางเกมดวย Dark Basic Professional - หนาท 7
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
เมอทดสอบชดคาสงเสรจเรยบรอยแลว ถาตองการปดตว Debuger กใหคลกทไอคอน การศกษาวธการใชงานโปรแกรม โปรแกรม DarkBASIC Professional มระบบชวยเหลอทจดไดวาดเยยม เราสามารถเลอกระบบชวยเหลอดงกลาว ไดจากเมน Help ดงภาพ
ในส ว นขอ ง ร ะบบช ว ย เ ห ล อ จ ะประกอบไปดวย Introduction ทจะแนะนาใหรจกกบความสามารถ และความเปนมาของโปรแกรม, Getting Started จะบอกถงการลงโปรแกรม การใชงานโปรแกรมอยางละเอยด,
Principles จะบอกถงกฏเกณฑการใชงานคาสงในประเภทตางๆ
Command จะรวบรวมคาสงโดยแยกประเภทใหงายตอการคนหา, Examples จะเปนตวอยางการใชคาสงตางๆ ในการเขยนเปนโปรแกรมทมความซบซอนมากขน, Tutorials จะสอนการทาเกมแนว FPS อยางละเอยด, Index จะรวบรวมทกคาสงไวในหนาจอเดยว ใหงายตอการคนหา, Technical Documents จะแนะนาการใชงานโปรแกรมในระดบท Advance ยงขน
สรางเกมดวย Dark Basic Professional - หนาท 8
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
การใชงาน Project Panel เมอตองการจดการและควบคมหนาตาของโปรแกรมท เสรจสมบรณ เพอทจะเผยแพรหรอจะทาเปนสนคา ใหเราเลอก Project Panel ขนมาโดยเลอกเมน View -> Display Mode -> Use Project View Mode
ในสวนของ Project Summary เราสามารถทา Comment การเขยนโปรแกรม และสราง List งานทจะทาได ทาใหในครงตอไปเราสามารถเขยนโปรแกรมในสวนทเหลอตอได โดยทไมตองทบทวนวาไดทาไปถงไหนแลว นอกจากนยงมสวนอนๆอก เชน Functions จะลสชอฟงกชนทเราไดสรางขนมา และเมอเราดบเบลคลกทชอฟงกชน เรากจะไปยงบรรทดทฟงกชนนนอย, สวนของ Setting ใชสาหรบตงรปแบบการแสดงผล, Cursors ชวยใหเราสามารถใช Cursor ไดตามทตองการ, Icons ใชเปลยนรปไอคอนของโปรแกรมเราใหเปนไปตามทตองการ
สรางเกมดวย Dark Basic Professional - หนาท 9
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
Spinning Cube Program หลงจากเราไดเรยนรองคประกอบตางๆ ของโปรแกรม DarkBASIC Professional กนบางแลว เราลองมาเขยนโปรแกรมงายๆ เชน การควบคมใหลกบาศกสามมตหมนอยางชาๆ รอบแกน Y สาหรบการสรางโปรแกรมดงกลาว ใหพมพคาสงดงตอไปนใน Editing area MAKE OBJECT CUBE 1,100 DO YROTATE OBJECT 1,OBJECT ANGLE Y(1)+0.1 LOOP เมอเรารนโปรแกรมจะไดลกบาศกหมนชาๆ รอบแกน Y
การทางานของโปรแกรมน มรายละเอยดดงตอไปน
1. MAKE OBJECT CUBE 1,100 ทเปนคาสงสรางวตถทรงลกบาศก ซงตวเลข 1 คอการกาหนดหมายเลขอางองใหกบวตถ และ 100 คอขนาดทกาหนดใหวตถ
2. คาสง Do..Loop เปนคาสงวนรอบ เมอใชคาสงนครอบระหวางชดคาสงอนๆนน โปรแกรมจะทางานชดคาสงนนๆ ไมมวนจบ
DO YROTATE OBJECT 1,OBJECT ANGLE Y(1)+0.1 LOOP
จากชดคาสงน โปรแกรมจะวนลปเปลยนคาใหกลองหมนรอบแกน Y ทละนดๆ กฏเกณฑในการใชคาสงของโปรแกรม DarkBASIC Professional
สรางเกมดวย Dark Basic Professional - หนาท 10
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
จดประสงคของการนาเสนอกฏเกณฑการใชคาสงของโปรแกรม DarkBASIC Professional ทาขนเพอตองการใหผใชไดเรมตน และเขาใจถงกฏเกณฑตางๆ ไดอยางตรงกน การศกษาโครงสรางประโยคทถกตองตามหลกไวยากรณ หรอทเราเรยกกนวา Syntax เปนสงทสาคญมากในการเขยนโปรแกรม ดงนนเราจงควรเขาใจถงวธการเขยนโปรแกรมดวยภาษา BASIC และเมอเรารถงกฏเกณฑ และวธการเขยนโปรแกรมดวย DarkBASIC Professional ไดอยางถกตองแลว สงหนงทจะตามมา กคอ เราจะทราบไดเองวา จะเขยนและประยกตวธการเขยนโปรแกรมใหกบเกมของตวเองไดอยางไร - Data Types, Variables and Arrays DATA TYPES
ชนดของขอมล หรอทเรยกวา parameter(s). เปนสงทมความสาคญ เพราะในการใชคาสงตางๆ จะตองมการใหคาของขอมล ซงคาตางๆน จะมอยหลายแบบ แตสงทเราควรทราบนน คอ ขอมลชนดตวเลข ทเปนจานวนเตม (integer numbers), ขอมลชนดตวเลข ทเปนจานวนจรง (real
numbers), และขอมล ทเปนชดตวอกษร (String)
ขอมลชนดตวเลข ทเปนจานวนเตม (integer numbers) ขอมลประเภทน คอขอมลทเปนตวเลขจานวนเตม ทไมใชเศษสวน และสามารถมคาเปนลบ (negative) ได ซงสาหรบคาทเปนลบ เราสามารถใช เครองหมายลบ (hyphen symbol (-)) นาหนาขอมล เพอกาหนดใหเปนคาลบได ตวอยางตางๆ ของขอมลชนดตวเลข ทเปนจานวนเตม กเชน 45 12000 -243000 -150
ขอมลชนดตวเลข ทเปนจานวนจรง (real numbers)
สรางเกมดวย Dark Basic Professional - หนาท 11
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ขอมลประเภทน คอขอมลทเปนตวเลขจานวนจรง ทาใหใชคาทเปนเศษสวน และสามารถมคาเปนลบ (negative) ได ซงสาหรบคาทเปนลบ เราสามารถใช เครองหมายลบ (hyphen symbol (-)) นาหนาขอมล เพอกาหนดใหเปนคาลบได ตวอยางตางๆ ของขอมลชนดตวเลข ทเปนจานวนจรง กเชน 23.0005 99.9 -5100.12 -9999.9992 ขอมล ทเปนชดตวอกษร (Strings) ขอมลประเภทน คอขอมลทไมใชขอมลตวเลข (non-numerical) ซงจะถกใชสาหรบขอมลทเปนชดตวอกษร และในการใชชดตวอกษรน ยงสามารถใชตวเลข และตวอกษรอนๆไดทงหมด แตมนจะถกตความเปนตวอกษร (treated as text) ทไมสามารถนาไปใชปฎบตการในเชงคณตศาสตรได ตวอยางตางๆ ของขอมล ทเปนชดตวอกษร กเชน "A" "Hello World" "Telephone" "I am 99 years old" "1.2.3.4.5.6.7.8.9" สาหรบการกาหนดขอมลตางๆ ใหเปนขอมลประเภทน เราสามารถกาหนดได โดยใหอยภายใตเครองหมาย "…" (double quotation marks) DATA TYPE RANGES
สรางเกมดวย Dark Basic Professional - หนาท 12
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
แตละชนดขอมล จะมขนาดและขอบเขตของคาสงสด และคาตาสด (maximum and
minimum value) สาหรบใหใชงาน คอ INTEGER Range : –2,147,483,648 to 2,147,483,647 REAL Range : 3.4E +/- 38 (7 digits) BOOLEAN Range : 0 to 1 BYTE Range : 0 to 255 WORD Range : 0 to 65535 DWORD Range : 0 to 4,294,967,295 DOUBLE INTEGER Range : –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 DOUBLE FLOAT Range : 1.7E +/- 308 (15 digits) ในการใชงานชนดขอมล ควรเลอกใชเมอคาของขอมลเรา มขนาดเลกกวาชนดทเลอกใช VARIABLES ตวแปร(variable) คอสงทใชจดเกบคา (value) ตางๆ ทเราสามารถใชจดเกบขอมลชนดใดกได และสามารถใชไดมาก ตามทเราตองการ สาหรบตวอยางงายๆ ทจะใหเราเขาใจถงตวแปร เชน A = 3 + 4 PRINT A
ตว A คอตวแปรทจดเกบผลบวกระหวาง 3 กบ 4 สวนคาสง PRINT A กคอการแสดงคา A ใหออกบนจอ ซงกคอ 7 นนเอง ทนกจะมาทาความเขาใจกบตวแปร ทเราสามารถใชได เชน การกาหนดตวแปรทจดเกบคาขอมลทเปนจานวนเตม เราสามารถตงตวแปรไดโดยใชตวอกษร หรอคาทวไปมาเกบคาทเปนจานวนเตมไดเลย เชน A = 2 B = 8 C = A + B PRINT C ตว A คอตวแปรทจดเกบคา 2, ตว B คอตวแปรทจดเกบคา 8, ตว C คอผลบวกระหวางตวแปร A กบตวแปร B, สวนคาสง PRINT C คอการแสดงคา C ใหออกบนจอ ซงกคอ 10 การใชตวแปรจดเกบคาขอมลทเปนจานวนจรง เราจะใชเครองหมาย # ตามหลงตวแปร เชน mydata#=42.5
สรางเกมดวย Dark Basic Professional - หนาท 13
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
PRINY mydata# ตว mydata# คอตวแปรทจดเกบคาจานวนจรง 42.5 สวนคาสง PRINT mydata# คอการแสดงคา mydata# ใหออกบนจอ ซงกคอ 42.5
และการใชตวแปรจดเกบขอมลทเปนชดตวอกษร เราจะใชเครองหมาย $ ตามหลงตวแปร เชน myname$="Lee" PRINT myname$ ตว myname$ คอตวแปรทจดเกบชอ “Lee” สวนคาสง PRINT myname$ คอการแสดงขอมล myname$ ใหออกบนจอ ซงกคอ “Lee” ตวแปรทเกบเปนชดตวอกษร ยงสามารถใชเครองหมายบวกในการเชอมตอชดตวอกษรได เชน a$="Hello" b$="World" c$=a$+b$ print c$
เมอเรารนโปรแกรม จะพบคาวา “HelloWorld” ขนมาบนหนาจอ … ทนเมอเราไดลองทาตามตวอยางทผานมา เรากจะสามารถรไดเองวา จะทาอยางไรใหระหวางคาวา “Hello” และคาวา “World” มชองวางคนระหวางกลาง เมอแสดงผลออกบนจอ ? ARRAYS อารเรย (array) เปนสงสาคญสาหรบการเขยนโปรแกรม เพราะถาเราตองการจดเกบขอมลจานวนหลายชด ในตวแปรเดยวกน เราอาจจะตองประกาศซาๆ เชน lottery1$="43,76,12,34,12,11" lottery2$="76,12,34,12,11,44" lottery3$="12,34,12,02,05,07" etc..
เราควรใชอารเรยมาชวยในกรณน โดยประกาศเปน DIM lottery$(52) lottery$(1)="43,76,12,34,12,11" lottery$(2)="76,12,34,12,11,44" lottery$(3)="12,34,12,02,05,07"
สรางเกมดวย Dark Basic Professional - หนาท 14
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
etc.. คาสง DIM เปนคาสงทจะอนญาตให ตวแปรทตามหลงเปนอารเรย ซงจากคาสง DIM lottery$(52)เปนการประกาศใหตวแปร lottery$ ทเกบขอมลชดอกษร สามารถใชไดสงสด 52 ตว ดงนนจะเหนไดวา ถาขอมลเรามมากถง 52 ตว การทเราจะประกาศขอมลแบบธรรมดานน เวลาเราจะแสดงผล เราจะตองพมพคาสง PRINT lottery1$ PRINT lottery2$ PRINT lottery3$ etc..
โดยตองพมพ PRINT lottery52$ ถง 52 ครง หรอถาใชอารเรย เรากอาจพมพคาสง PRINT lottery$(1) PRINT lottery$(2) PRINT lottery$(3) etc.. กทาคลายกน โดยพมพถง PRINT lottery$(52) กได แตเรามวธทดกวาน ถาเราเขยนแบบวนลป เพอใหโปรแกรมพมพคา ออกทางหนาจอไดอยางอตโนมตจนครบ 52 ตว ดงน FOR T=1 TO 52 PRINT lottery$(T) NEXT T จะเหนไดวามนสะดวกกวาการใชตวแปรแบบธรรมดาเปนไหนๆ และเรายงสามารถประกาศใชอารเรยแบบสองมต เพอชวยสรางชดขอมล ทสามารถนาไปใชไดอยางสะดวกยงขน เชน DIM lottery(52,6) คาสง DIM lottery(52,6) ทประกาศขนเปนอารเรยแบบสองมต เพราะเราอาจตองการใชขอมลยอยในแตละชดขอมล เชน lottery(1,1)=43 lottery(1,2)=76 lottery(1,3)=12 lottery(1,4)=34 lottery(1,5)=12 lottery(1,6)=11 lottery(2,1)=76 lottery(2,2)=12
สรางเกมดวย Dark Basic Professional - หนาท 15
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
lottery(2,3)=34 lottery(2,4)=12 lottery(2,5)=11 lottery(2,6)=44 etc.. เพยงเทาน เรากสามารถใชขอมลไดอยางเตมประสทธภาพ เพราะเราสามารถอางถงขอมลตางๆ ไดอยางรวดเรว USER DEFINED TYPES ถารปแบบของขอมลทไดเคยกลาวมานน ยงไมตรงกบความตองการ เรากสามารถสรางรปแบบขนเพอใชเองได โดยสรางใหเปนขอมลแบบของเราเอง (user-defined-types) ซงในการสรางนน เราจะตองประกาศขอมลชนดใหมไวสวนบนของโปรแกรม จงจะสามารถนาขอมลแบบใหมทเปนของเราเองไปใชได
เชน
TYPE MyType Fieldname1 Fieldname2 Fieldname3 ENDTYPE
หรอจะประกาศไวบรรทดเดยว คอ TYPE MyType Fieldname1 Fieldname2 Fieldname3 ENDTYPE แบบนกไดเชนกน สาหรบการใชขอมลแบบของเราเองนน ใหใชตวเชอม AS เชน MyVariable AS MyType
เพยงเทานตวแปร MyVariable กจะเปนตวแปรทเปนชนดขอมลแบบของเรา และจะสามารถเกบคาตางๆ ไวในตวแปรได ดงน MyVariable.Fieldname1 = 41 MyVariable.Fieldname2 = 42
สรางเกมดวย Dark Basic Professional - หนาท 16
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
MyVariable.Fieldname3 = 43
ในทานองเดยวกน เราสามารถสรางรปแบบของเรา ทสามารถจดเกบชนดขอมลไดหลายแบบ
เชน TYPE AccountEntryType Number AS INTEGER Name AS STRING Amount AS FLOAT ENDTYPE
และสามารถนาไปใชได เชน DIM Accounts(100) AS AccountEntryType Accounts(1).Number=12345 Accounts(1).Name="Lee" Accounts(1).Amount=0.42
และทนาทงกวานน เราสามารถประกาศ ชนดซาซอนไดอยางซบซอนตามจนตนาการทเราคดเองได เพอสรางรปแบบขอมลทสามารถนาไปใชไดอยางมประสทธภาพสงสด เชน TYPE AmountsType CurrentBalance AS FLOAT SavingsBalance AS FLOAT CreditCardBalance AS FLOAT ENDTYPE TYPE AccountEntryType Number AS INTEGER Name AS STRING Amount AS AmountsType ENDTYPE DIM Accounts(100) AS AccountEntryType Accounts(1).Number=12345 Accounts(1).Name="Lee" Accounts(1).Amount.CurrentBalance=0.42 Accounts(1).Amount.SavingsBalance=100.0 Accounts(1).Amount.CreditCardBalance=-5000.0 ซงจะเหนไดวาใชงานงาย และทรงพลง และทสาคญ ชนดของขอมลรปแบบน ทาใหเราไมตองมนงง และอาจตองพบขอผดพลาด ถาใชชนดขอมลแบบธรรมดา มาจดเกบขอมลของเรา
สรางเกมดวย Dark Basic Professional - หนาท 17
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
- Arithmetic, Relational and Boolean Operators ARITHMETIC OPERATORS ตวปฏบตการทางคณตศาสตร สามารถแทนดวย การใชเครองหมาย ตางๆ คอ เครองหมาย plus(+) ใชแทนการบวก ดงน 3 + 4 equals 7 A + B equals the value of B added to the value of A เครองหมาย minus(-) ใชแทนการลบ ดงน 3 - 4 equals -1 A - B equals the value of B subtracted from the value of A เครองหมาย asterix(*) ใชแทนการคร ดงน 3 * 4 equals 12 A * B equals the value of B multiplied by the value of A
เครองหมาย slash(/) ใชแทนการหาร ดงน
10 / 2 equals 5 A / B equals the value of A divided by the value of B ยงมตวปฏบตการทางคณตศาสตร อกตว ทใชสาหรบการหาคาเศษของผลหาร คอคาสง MOD
ซงตองใชกบคาทเปนจานวนเตม (integer)
เครองหมาย MOD ใชแทนการหาคาเศษของผลหาร ดงน 11 MOD 2 equals 1 A MOD B equals the remainder of the division between A and B RELATIONAL OPERATORS
สรางเกมดวย Dark Basic Professional - หนาท 18
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ตวปฏบตการรปแบบน เปนการใชเครองหมาย เทากบ(=) มากกวา(>) นอยกวา(<) มากวาเทากบ(>=) นอยกวาเทากบ(<=) และไมเทากบ(<>) สาหรบตรวจเชควา คาทอยระหวางเครองหมายดงกลาว ถกตองตามทเครองหมายบงบอกรเปลา ถาไมถกจะสงคา 0 (ไมจรง) แตถาถกจะสงคา 1 (จรง)
ซงการใชตวปฏบตการน นยมใชในการตรวจสอบเงอนไข แตในทนเราจะมาดตวอยางความสมพนธของขอมลกน ดงน 10 = 9 results in 0 because 10 is not the same as 9 10 = 10 results in 1 because 10 is the same as 10 10 > 9 results in 1 because 10 is greater than 9 100 >= 100 results in 1 because 100 is greater or equal to 100 สาหรบการใชความสมพนธรปแบบน สามารถใชไดกบขอมลชนดจานวนจรง (real) และขอมลชนดชดขอมล (String) ไดเชนเดยวกน BOOLEAN OPERATORS โปรแกรม Dark Basic Professional นนสามารถใช AND, OR, XOR และ NOT จดการกบขอมลของเราได ซงการใชจะเปนดงตอไปน การใช AND ในการเปรยบเทยบขอเทจจรง จะมกฏทวไป ดงน 0 AND 0 = 0 (เทจ และ เทจ ได เทจ) 0 AND 1 = 0 (เทจ และ จรง ได เทจ) 1 AND 0 = 0 (จรง และ เทจ ได เทจ) 1 AND 1 = 1 (จรง และ จรง ได จรง)
คราวนกจะมาดตวอยางกนวา คาทไดจะเทากบเทาไร เชน A=5 B=25 (A > 10) AND (B > 20) so what is the resulting value?
ความสมพนธระหวาง (A > 10) เปน เทจ(0) และ (B > 20) เปน จรง(1) ทาให (A > 10) AND (B > 20) เปน เทจ (0)
ซงสามารถแสดงใหชดเจนยงขนไดดงน (A > 10) results in 0 because 5 is not greater than 10 (B > 20) results in 1 because 25 is greater than 20
สรางเกมดวย Dark Basic Professional - หนาท 19
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
และทาให (0) AND (1) results in 0 as our table shows 0 AND 1 = 0
การใช OR ในการเปรยบเทยบขอเทจจรง จะมกฏทวไป ดงน
0 OR 0 = 0 (เทจ หรอ เทจ ได เทจ) 0 OR 1 = 1 (เทจ หรอ จรง ได จรง) 1 OR 0 = 1 (จรง หรอ เทจ ได จรง) 1 OR 1 = 1 (จรง หรอ จรง ได จรง)
และการใช NOT จะมกฏทวไป ดงน
NOT 0 = 1 NOT 1 = 0 BITWISE OPERATORS จะใชแตกตางกบแบบ BOOLEAN OPERATORS ดงน BITWISE LEFT SHIFT signified by the symbol << will shift all bits one space to the left. %0111 << 1 becomes %1110. BITWISE RIGHT SHIFT signified by the symbol >> will shift all bits one space to the right. %0111 >> 1 becomes %0011. BITWISE AND signified by the symbol && will AND all bits of one value with another. %1111 && %0011 becomes %0011. BITWISE OR signified by the symbol || will OR all bits of one value with another. %1111 || %0011 becomes %1111. BITWISE XOR signified by the symbol ~~ will XOR all bits of one value with another. %1111 ~~ %0011 becomes %1100. BITWISE NOT signified by the symbol .. will NOT all bits of the right value. %1111 .. %1010 becomes %0101. เมอเราเขาใจในการใชตวปฏบตการตางๆ แลว เราจะมความเขาใจ และจะสามารถเขยนโปรแกรมทมความซบซอน ไดอยางมประสทธภาพยงขน - Common Statements
สรางเกมดวย Dark Basic Professional - หนาท 20
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ASSIGNMENT STATEMENTS การประกาศคาใหกบตวแปร สามารถทาไดโดยใชเครองหมาย เทากบ (Equal Symbol) =
ซงสามารถรบคาไดทงแบบ ตวแปร(variable) หรอ อารเรย(array) ดงตอไปน a=42 a#=99.9 a$="HELLO" lottery(1,1)=49 DATA AND READ STATEMENTS เราสามารถเกบขอมลเหตการณ ดวยการเกบไวเปนขอมล (data) ในโปรแกรม โดยใชคาสง DATA และ READ ดงเชน
DATA 9,"NINE",9.9 READ a,a$,a# การใชคาสง DATA เราสามารถใสขอมล โดยสามารถใช เครองหมายคอมมา ( , ) เปนการแบงขอมลออกเปนแตละตว ดงตวอยางขางบน เราจะเหนวา จานวนเตม 9 นนเปนขอมลตวแรก ขอความ “NINE” เปนขอมลตวทสอง และตวสดทาย เปนจานวนจรง 9.9 การใชคาสง READ เปนการเรยกขอมลจากคาสง DATA มาเกบไวในตวแปร ซงเราจะตองคานงถงชนดขอมลดวย เชน ตวแปร a เปนชนดจานวนเตม ไวเกบคา 9, ตวแปร a$ เปนชนดชดขอมล ไวเกบขอความ “NINE” และ ตวแปร a# เปนชนดจานวนจรง ไวเกบคา 9.9 RESTORE STATEMENTS ถาเรามกลมขอมลสองอน คอ lotterydata กบ ticketdata ซงเขยนไวทายโปรแกรม ดงน lotterydata: DATA 12,23,34,45,56,67 DATA 23,34,45,56,67,11 DATA 34,45,56,67,33,22 ticketdata: DATA 01,02,03,04,05,06 DATA 21,32,43,24,13,22 เราสามารถใชคาสง Restore ไปชกลมขอมลของเรา เพอนาขอมลดงกลาวมาใชงานได ดงเชนถาตองการนาขอมล lotterydata มาใช สามารถเขยนไดเปน
RESTORE lotterydata READ a,b,c,d,e,f
สรางเกมดวย Dark Basic Professional - หนาท 21
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
PRINT "LOTTERY ",a,b,c,d,e,f และถาตองการนาขอมล ticketdata มาใช กสามารถเขยนไดเปน RESTORE ticketdata READ a,b,c,d,e,f PRINT "TICKET ",a,b,c,d,e,f สาหรบการนาขอมลถดไปใน DATA มาใชแทน กใหวนลปงายๆ ในการเรยกใชขอมล BRANCH STATEMENTS เปนการขาม (Jump) ไปทางานในสวนยอยของโปรแกรม ท เราไดแบงสวนไว และในสวนยอยๆนน จะตองมคาสง RETURN เพอใหโปรแกรมกลบไปทางานตอในโปรแกรมหลก PRINT "Hello" GOSUB MySubroutine END MySubroutine: PRINT "World" RETURN คาสง GOTO ใชสาหรบควบคมการทางานของโปรแกรม ใหเปนไปในทศทางทเราตองการได เชน ถาเราใชคาสงน เรยกวนจดอางองของมนเอง MyLabel: PRINT "Hello World "; GOTO MyLabel จะมผลลพธเชนเดยวกบ การใชคาสง DO..LOOP ดงน DO PRINT "Hello World "; LOOP FOR NEXT Statements
สรางเกมดวย Dark Basic Professional - หนาท 22
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
คาสงนเปนการวนลป แบบทเรยกวา ลปจากด (a finite loop) ซงเราสามารถควบคมจานวนครงทจะใหมนทางานได เชน FOR T=1 TO 5 PRINT T;" "; NEXT T PRINT "Done" เมอรนแลวจะไดผลลพธ ออกทหนาจอ คอ 1 2 3 4 5
ทงนเรายงสามารถใชคาสงน ผสมกนได (nest loops) แบบลปซอนลป เชน FOR A=1 TO 5 PRINT "MAIN A=";A FOR B=1 TO 10 PRINT "LITTLE B=";B NEXT B NEXT A
และเรายงสามารถกาหนด การเพมคาในการวนลปได โดยใชคาสง STEP เชน FOR week=1 TO 52 STEP 4 PRINT "LOTTERY NUMBER FOR WEEK ";week; " ARE "; FOR index=1 to 6 PRINT lottery(week,index);" "; NEXT index NEXT week IF THEN Statements คาสงนใชสาหรบกาหนดเงอนไข ใหกบโปรแกรมของเรา เชน INPUT "Enter Your Age>",age IF age>=16 THEN PRINT "You can buy a lottery ticket"
สรางเกมดวย Dark Basic Professional - หนาท 23
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
คาสงขางตนน กาหนดเงอนไขวา ถาอายทปอนนน มากกวา หรอเทากบ 16 กสามารถซอ lottery ticket ได สาหรบการกาหนดเงอนไขทจะใชกบ คาสง IF..THEN นน จะตองเปนเงอนไขทเราดแลวรสกวาสามารถใชการได (make sense) เชน IF A THEN PRINT "ok" IF A = B THEN PRINT "ok" IF A > (B - 5) THEN PRINT "ok" IF A = (B + (A * 2)) THEN PRINT "ok" IF A=1 AND B=2 THEN PRINT "ok" IF NAME$="FRED" AND SURNAME$="BLOGGS" THEN PRINT "ok" IF A#=1.5 OR LOTTERY(10,2)=20 THEN PRINT "ok" สวนเงอนไขทดแลวไมสามารถใชการไดแนๆ (not make sense) เชน IF A = B = THEN PRINT "not ok" IF > A = B THEN PRINT "not ok" IF A B THEN PRINT "not ok" IF AND A THEN PRINT "not ok" IF B OR THEN PRINT "not ok" ในการใชคาสง IF..THEN นน สามารถเขยนได 2 ลกษณะ คอ IF A = B THEN PRINT "Hello A and B!" หรอ IF A = B PRINT "Hello A and B!" ENDIF
ซงในการเขยนแบบท 2 ทใช IF..ENDIF นจะมประโยชนมาก คอ เราสามารถทาหลายคาสงไดในเงอนไขเดยวกน เชน IF A = B PRINT "Hello A!" PRINT "Hello B!" PRINT "Hello A and B!" PRINT "Hello B and A!" PRINT "Hello Everything!" ENDIF
สรางเกมดวย Dark Basic Professional - หนาท 24
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
กรณสดทาย เราสามาถใชคาสง ELSE มากากบใหสามารถแสดงผล ถาเงอนไข เปน False
IF A = B PRINT "The values are the same! ELSE PRINT "The values are different!" ENDIF PRINT Statements คาสงนใชสาหรบแสดงผล ออกสจอภาพ เชน ถาตองการแสดงผลคาวา “Hello World” บนจอภาพ สามารถใชคาสงแสดงผลได ดงน PRINT "Hello World" เราสามารถแสดงผลคา และคาของตวแปรไปพรอมๆกนได โดยใชเครองหมาย ; และ , คนระหวางกนได เชน PRINT "My name is ";name$, " and I am ";age;" years old." จากคาสงขางบน เราอาจเขยนไดอก 2 แบบ คอ PRINT "My name is ",name$, " and I am ",age," years old." และ PRINT "My name is ";name$; " and I am ";age;" years old." จะเหนวาสามารถใช เครองหมาย ; และ , แทนกนได ซงกใหผลออกทางจอเหมอนกน ทงนยงสามารถกาหนดตาแหนงทจะแสดงผลทางหนาจอได โดยใชคาสง SET CURSOR เชน
SET CURSOR 20,20
สรางเกมดวย Dark Basic Professional - หนาท 25
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
PRINT "TEXT"
และยงสามารถใชคาสงสมการแสดงตาแหนงได เชน DO SET CURSOR RND(640),RND(480) PRINT "TEXT" LOOP INPUT Statements นานๆครง ถาเราตองการใหผใช (User) ใสคาใหกบโปรแกรมของเรา เราสามารถทาได โดยใชคาสง INPUT เชน INPUT a$ จากคาสงขางบน ผใชตองใสคาชดขอมล ใหกบตวแปร a$ ซงเปนตวแปรชนด String ทงนถาเราตองการใหผใชทราบวาจะตองใสคาอะไร เรากสามารถบอกใหผใชทราบวาจะตองกรอกขอมลอะไรลงไป เชน INPUT "What is your password? ",password$ END and BREAK Statements คาสง END นนใชสาหรบการสนสดโปรแกรม และกลบเขามาสวนโดว สวนคาสง BREAK จะไมทาใหเกดการสนสดโปรแกรม แตจะเปนการตดเขาส Command Line Interface (CLI) เมอเรารนในสวนของ debug Mode - Common and User Functions COMMON FUNCTIONS ในโปรแกรม Dark Basic Professional จะมฟงกชนพนฐานใหใชมากมาย เชน arithmetic
functions, string functions, command specific functions
สรางเกมดวย Dark Basic Professional - หนาท 26
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
สาหรบตวอยางของ arithmetic function เชน ฟงกชน ABS ใชทาใหคาลบ กลายเปนบวก เชน PRINT ABS(-100)
ทาใหผลลพธทแสดงทางหนาจอเปน 100 หรอจะนาไปใชกบการคานวณ
เชน A = B + ABS(-100)
หรอจะนาไปใชกบตวแปร เชน A = ABS( B )
หรอจะนาไปใชกบการตรวจสอบเงอนไขกได เชน IF ABS( A ) > 180 THEN PRINT "ok"
USER DEFINED FUNCTIONS เราสามารถสรางฟงกชนของตวเองขนมาใชงานได ซงคณสมบตของฟงกชนนน จะสามารถเรยกใชตวเอง (recursive) ได และเปนการทางานทอยตางหาก (isolated task) ไดดวย
การสรางฟงกชน นนจะใชคาสง FUNCTION…ENDFUNCTION เชน FUNCTION halfvalue(value) value=value/2 ENDFUNCTION value จากตวอยางขางบน เปนการสรางฟงกชนทใชหาคาทเปนจานวนครงหนง ของคาทใสไป ทนเราลองมาดตวอยางการใชฟงกชน เชน ถาเราตองการสรางคาสงทใชพมพขอความแสดงผลลพธออกทางจอภาพ โดยสามารถเซตคาตาแหนงได กสามารถทาไดดงตวอยางขางลาง REM Start of program BetterPrint(10, 10, "Hello world") END FUNCTION BetterPrint(x, y, t$) SET CURSOR x,y PRINT t$ ENDFUNCTION
สรางเกมดวย Dark Basic Professional - หนาท 27
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
พนฐานการทาโปรแกรมคอมพวเตอร
ขนตอนในการพฒนาโปรแกรม มดงน
1. ศกษาและกาหนดขอบเขตของปญหา (Problem and Requirement analysis)
2. ศกษาความเปนไปไดในการเลอกระบบคอมพวเตอรมาใช (Feasibility study) 3. กาหนดรปแบบของขอมลเขาและผลลพธ (Solution outlining) 4. กาหนดขนตอนของโปรแกรม 5. เขยนโปรแกรมตามกฎเกณฑของภาษานน 6. ตรวจสอบขอผดพลาดของโปรแกรมและการทางาน 7. การทดสอบโปรแกรม 8. การจดทาเอกสาร
การกาหนดขนตอนการทางานของโปรแกรม มดงน
1. ผงงาน (Flowchart) ซงใชสญลกษณในการแสดงขนตอนตางๆของโปรแกรม
สรางเกมดวย Dark Basic Professional - หนาท 28
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
2. คาสงเทยม (Pseudo code) เปนคาอธบายทเขยนโดยไมมรปแบบเฉพาะเจาะจง เพอบอกถงขนตอนของการเขยนโปรแกรมทออกแบบไว
สาหรบการทาความเขาใจหลกการเขยนโปรแกรม การเขยนฝงงาน (Flow Chart) เราจะไดทา Work Shop ภายในคอส 3D Game Developer
สรางเกมดวย Dark Basic Professional - หนาท 29
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
สญญลกษณของผงงาน (สาหรบเขยน Flow Chart)
Process
Star
]---
Terminal Start/Stop
Processing Operation
Manual of clerical operation
Predefined procedure
Decision
Output
Connector
Direction
Comment
สรางเกมดวย Dark Basic Professional - หนาท 30
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
เมอไดเรยนรการใชสญลกษณการเขยนผงงานแลว เราจะมาลองดตวอยางผงงานกน วาแตละผงงานนใชสาหรบทาโปรแกรมใดกนบาง
START
Output V
END
1. เรมการทางาน รบคารศม เกบในตวแปร r
2. รบคาความสง เกบในตวแปร h
3. คานวณปรมาตร เกบไวในตวแปร v
4. แสดงผลลพธปรมาตร นนคอคาของตวแปร v
5. จบการทางาน
Input r
Input h
hr pi v 2 ××=
สรางเกมดวย Dark Basic Professional - หนาท 31
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
Start
InputLastNumber
sum=0
Counter = 1
Counter<=LastNumber
sum=sum+counter
Counter=Counter+2
outputsum
Stop
รบขอมลคาสดทาย
กาหนดคาเรมตนของผลบวก = 0
กาหนดคาเรมตนตวนบ=1
ตรวจสอบวาตวนบมคานอยกวาหรอเทากบ คาสดทายหรอไม
ทาการบวกคา
เพมคาตวนบครงละ 2
แสดงผลลพธ
สรางเกมดวย Dark Basic Professional - หนาท 32
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
START
sum = 0
set I=1 to 100
sum = sum+1
I=100
Mean=sum/100
STOP
outputMean
N
Y
กาหนดคาเรมตนของผลบวก =0
กาหนดให I มคาตงแต 1 ถง100
ทาการบวกคาเพม
ตรวจสอบคา I วา เทากบ 100 หรอไม
คานวณคาเฉลย
แสดงคาเฉลย
สรางเกมดวย Dark Basic Professional - หนาท 33
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ขนตอนการพฒนาเกม
ขนตอนในการพฒนาเกม เปนเรองทมความยงยากซบซอนอยพอสมควร ดงนนจงควรทาความเขาใจลกษณะและวธการตางๆ ใหเขาใจเสยกอน ลกษณะทวไปของการพฒนาเกม มดงน
1. สรางทมงานสาหรบพฒนาเกม : Team (Development)
2. ชวยกนหาแนวคดสาหรบการทาเกม : Brainstorming 3. ออกแบบเนอเรอง และระบบของเกม : Design/Storyboard/System 4. ดเสยงตอบรบ สาหรบเนอเรองและระบบของเกมทออกแบบไว กอนทจะลงมอพฒนาจรง
: Feedback (Does the game sound fun?) 5. พฒนาเกมตามทไดออกแบบไว : Implementation (Development) 6. ทดสอบการทางาน และหาขอผดพลาดของโปรแกรม : DEBUGGING 7. ทดลองออกเปนเวอรชนอลฟา เบตา ใหผเลนทดลองเลนกน เพอตรวจสอบหาขอผดพลาด
ของโปรแกรมทยงคงหลงเหลออย และเมอแนใจวาไมมขอผดพลาด หรอม แตกนอยทสด จงคอยทาการออกเวอรชนสาหรบขายจรงตอไป : Testing
ในการพฒนาเกมจะตองมการศกษาเรองตอไปนควบคไปดวย คอ
1. ศกษาวธการวจยตลาด : Marketing Research
2. ศกษาการสราง และการบรหารทมงาน : Team Creation and Management
3. เขาใจการออกแบบ และรลาดบขนตอนการพฒนา : Design & Development 4. เรองอนๆ ทเกยวกบการบรหารธรกจ
4.1 การตลาด : Marketing 4.2 การบรหารงานบคคล : Team Management
4.3 การบรหารเวลา : Scheduling/Time Management 4.4 การบรหารการเงน : Budgeting 4.5 การโฆษณา : Publicity 4.6 ขอกฎหมายตางๆ : Legal Issues
สรางเกมดวย Dark Basic Professional - หนาท 34
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
นอกจากน การพฒนาเกม ยงตองใชความรทางดานคณตศาสตร และฟสกสอกดวย ซงกไมเปน
ปญหาสาหรบคนไทยอยางเรา เพราะในระบบการศกษากสอนใหคนเกงคณตศาสตร และฟสกสอยแลว ความรทางดานฟสกสทจาเปน คอ
1. เขาใจคาจากดความของสงเหลาน : Basic Terms
1.1 Mass (m) 1.2 Time (t) 1.3 Position (s) 1.4 Velocity (v) 1.5 Acceleration (a) 1.6 Force (f) 1.7 Momentum
2. เขาใจวธการของสงเหลาน : Concepts
2.1 Gravity 2.2 Collision/Bounce 2.3 Vector Reflection 2.4 Friction 2.5 Kinetics 2.6 Particle 2.7 Projectile
ความรทางดานคณตศาสตรทจาเปน คอ
1. Trigometry 2. Geometry 3. Matrix 4. Vectors 5. Discrete Structures/Boolean Operation
สรางเกมดวย Dark Basic Professional - หนาท 35
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
เมอทราบถงคยใหญๆ สาหรบการสรางเกมแลว ทนเราจะมาทาความเขาใจกบรายละเอยดปลกยอยของทาเกมกน ในการออกแบบเกม จะตองคานงถงเรองราว ดงตอไปน
1. การออกแบบเกม ถอเปนสงทมความสาคญมากทสดในการทาเกม 2. ถาเราออกแบบมาไมสนก กอยาหวงวาเกมนนจะสนกไปได 3. ไอเดยหลกสาหรบการทาเกม จะตองเปนสงททกคนในทมรวมกนแสดงความคดเหน
และเมอทกฝายรสกพอใจแลว กจะมอบหมายงานใหฝายออกแบบนาไปคดเพม และเมอฝายออกแบบไดงานออกมา (Game Design Document) กจะตองมการปรกษาหารอจนกระทงทกฝายเหนพองตองกน จงจะผานขนตอนการออกแบบไปสการพฒนาจรงได
ขนตอนและวธการในการออกแบบเกม มดงน
1. โครงการเกมทจะพฒนา ตองมบางแนวคดทใหม ไมเหมอนใคร : Planning something new
2. การทาใหเกดแนวความคดใหมๆ : having an idea
2.1 มแรงบนดาลใจ หรอสงดลใจททาใหคดได : Inspiration
2.2 สงเคราะหเปนความคดใหม จากการรวมตวกนของหลายๆ ความคด : Synthesis (combination of ideas)
2.3 การระดมความคดทคลายคลงกน : Synergy of Ideas
2.4 การหาจดรวมของแนวความคด : Convergence
3. Shaping the Idea
3.1 Dramatic Effect 3.2 Style 3.3 Plot 3.4 Character 3.5 Setting 3.6 Theme
สรางเกมดวย Dark Basic Professional - หนาท 36
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
การตรวจสอบและประเมนคาการออกแบบ มดงน
1. Analysis 2. Evaluation 3. Justification 4. Feasibility Study
4.1 Commercial 4.2 Technologicial
5. Documentation 6. Prototyping
ตองคนหาหวใจของเกมทจะพฒนา ดงน
1. อะไรเปนจดมงหมายของเกมทจะทา 2. ผเลนตองทาอยางไร ถงจะสามารถบรรลถงเปาหมายของเกมได 3. มเกมอะไรทเหมอนกบเกมของเรา และเกมนนเลนอยางไร 4. อะไรคอกฏทอยในเกมของเรา
ทมงานสาหรบทาเกมโดยทวไป มดงน
• Planning and Direction: • Producer • Director • Planner (Game Designer) • Writing (Scenario Writing)
• Design
• Background Designer • Character Designer • 3D Modeling Designer • Texture Designer • Motion Designer (Animator) • Effect Designer • Movie Designer
สรางเกมดวย Dark Basic Professional - หนาท 37
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
• Program • System Engineer (Analyst) • Chief Programmer • Assistant Programmer • Sound Programmer • Tool/Utility Programmer
• Sound
• Music Composer • Sound Effect Designer • Sound Engineer
• Other
• Test Player (Debugger) • Marketing • Etc.
สาหรบทานทตองการสรางเกมจรงๆ เราจะไดทา Work Shop ทาเกมกน ในหลกสตรการสรางเกมสามมต 3D Game Developer ทสถาบน NetDesign ครบ ตดตอสอบถามไดทโทร 02-642-1100 หรอท www.NetDesign.ac.th ครบ
สรางเกมดวย Dark Basic Professional - หนาท 38
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ตวอยางการดาเนนงานสรางเกมไทยสามมต “อจฉรยะปราบผ” เกมไทยสามมตอจฉรยะปราบผ ไดสรางขนในชวงปลายป พ.ศ. 2544 มรายละเอยดในการออกแบบและการสรางดงน การออกแบบเนอเรอง เนอเรองของเกมเปนหวใจหลกทจะทาใหเกมมความสนก ถาหากมการออกแบบเนอเรองใหมความนาสนใจ ชวนตดตาม กจะสงผลใหเกมเปนทถกใจของผเลน โดยในโครงงานเกมไทยสามมต "อจฉรยะปราบผ" ใชวธการออกแบบเนอเรองของเกมดงน การออกแบบเนอเรองโดยรวม การออกแบบเนอเรองโดยรวม เปนสงแรกทควรไดรบการออกแบบ เพราะจะทาใหการสรางเกมมเปาหมายทชดเจน ซงเมอทราบเปาหมายแลว จะทาใหการลาดบขนตอนการทางานในขนตอนอนๆ เปนไปไดงายและสะดวกรวดเรวขน โดยในสวนของเนอเรองโดยรวม ทโครงงานเกมไทยสามมต "อจฉรยะปราบผ" ไดทาการออกแบบไว แยกเปนสวนของสถานท ,สถานการณ ,เปาหมาย และอปสรรค เปนดงตารางท 1 ตารางท 1 การออกแบบเนอเรองโดยรวมของเกมไทยสามมต "อจฉรยะปราบผ" ฉากท สถานท สถานการณ เปาหมาย อปสรรค 1 หมบานไตรนมต
ณ สยามประเทศ เตรยมความพรอมกอนเดนทางไปปราบผ
อาวธวเศษ -
2 ปาชานอกเมอง เจดยอฐโกส ออนพลงในการควบคมอานาจผ
นาลกนมตทบทม ไปไวยงเจดยอฐ โกส เพอใหพลงในการควบคมผกลบมาเหมอนเดม
ผกระสอ / ผเดก / ผหวขาด / วญญาณเรรอน
สรางเกมดวย Dark Basic Professional - หนาท 39
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ตารางท 1 การออกแบบเนอเรองโดยรวมของเกมไทยสามมต "อจฉรยะปราบผ" (ตอ) ฉากท สถานท สถานการณ เปาหมาย อปสรรค 3 วดเกานอกเมอง เจดยทองโปส และเจดย
ปนโอส ออนพลงในการ ควบคมอานาจผ
นาลกนมตมรกต ไปไวยงเจดยทองโปส และนาลกนมตไพลนไปไวยงเจดยปนโอส เพอใหพลงในการควบคมผกลบมาเหมอนเดม
ผโครงกระดก / ผเดก / ผเปรต / ผตายโหง/ วญญาณเรรอน
การเพมรายละเอยดของเรอง
หลงจากทไดมการออกแบบเนอเรองโดยรวมแลว จะตองมการเพมรายละเอยดของเรองเพอใหไดเนอเรองทมความนาสนใจ ชวนตดตาม อยางสมบรณ โดยในสวนของการเพมรายละเอยดของเรอง ทโครงงานเกมไทยสามมต "อจฉรยะปราบผ" ไดทาการออกแบบไว เปนดงตารางท 2 จงกลาวไดวา การเพมรายละเอยดของเรองนน ทาใหเหนภาพรวมของเนอเรองทชดเจนมากยงขน ซงถาหากทาการเพมรายละเอยดของเรองใหมความซบซอนมากขน เชน เพมบทพดของตวละคร กจะไดเนอเรองทมความสมบรณยงขน
เนอเรองโดยรวม
เพมรายละเอยดของเรอง
เนอเรองทสมบรณ
สรางเกมดวย Dark Basic Professional - หนาท 40
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ตารางท 2 แสดงการเพมรายละเอยดของเกมไทยสามมต "อจฉรยะปราบผ" ฉากท บทบาทของผเลน ความเปนมาของเรอง 1
ผเลนเขาไปรบอาวธวเศษทประกอบไปดวย ขาวสารเสก และกรชศกดสทธจากผเฒาประจาหมบาน และรบฟงคาชแจงจากผ เฒ าท านนน ถงกลว ธในการหยดยงการกระทาอนชวรายของเหลาผไทยทเทยวออกมาอาละวาด
2 ปราบผไทยทปาชานอกเมอง ทมาคอยขดขวาง เพอไมใหผเลนสามารถบรรลเปาหมายได
3 ปราบผไทยทวดเกานอกเมอง ทมาคอยขดขวาง เพอไมใหผเลนสามารถบรรลเปาหมายได
เมอหลายเดอนกอนมโจรทมาจากหมบานอน ไดขโมยลกนมตทบทม ลกนมตมรกต และลกนมตไพลนจากเจดยอฐโกส เจดยทองโปส และเจดยปนโอสตามลาดบ ทาใหสมดลของพลงทถวงดลอานาจของผไทย ในบรเวณปาชานอกเมอง และวดเกานอกเมองเสอมลง ส ง ผลให ม ผ ไทยจ านวนหน ง ออกมาอาละวาด เทยวหลอกหลอนชาวบานในละแวกนน ทาให นายสน แหงหมบานไตรนมต ตองออกมารบอาสาในการนาลกนมตทงสาม กลบไปไวยงทเดม เพอความสงบสขของชาวบานทกคน ณ สยามประเทศ
การออกแบบวธการเลน การออกแบบวธการเลนเปนองคประกอบทสาคญอยางหนงของการสรางเกม เพราะการออกแบบวธการเลนไวลวงหนานน เปนสงสาคญทจะชวยเพมอรรถรสใหกบผเลนมากขน โดยการแบงสวนของการออกแบบวธการเลนนน แบงได 2 สวนคอ สวนรบขอมล (Input) และสวนแสดงผลขอมล (Output)
1. สวนรบขอมล (Input) เปนการออกแบบในสวนของการรบขอมลจากผเลน เชน แปนพมพ (Keyboard) เมาส (Mouse) เปนตน 2. สวนแสดงผลขอมล (Output) เปนการออกแบบในสวนของการแสดงผลขอมล เชน จอคอมพวเตอร (Monitor)
ซงในการออกแบบทงสองสวนน จะตองทาการออกแบบใหมความสมพนธกน
สรางเกมดวย Dark Basic Professional - หนาท 41
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ควบคมดวยมอซาย ควบคมดวยมอขวา เลข แทน ความหมาย เลข แทน ความหมาย 3 Up-Key เดนลกเขาไปในฉาก 1 Left -Click ยงขาวสารเสก 4 Left-Key เลอนตาแหนงมาดานซาย 2 Right-Click ยงกรชศกดสทธ 5 Down-Key เดนออกมาจากฉาก * ตวเมาส ควบคมทศทางการมอง 6 Right-Key เลอนตาแหนงมาดานขวา 7 Ctrl-Key กระโดด
แผนภาพการออกแบบวธการเลน
เมาส (Mouse) แปนพมพ (Keyboard)
จอคอมพวเตอร (Monitor)
ซาย ขวา
ลกเขาไป
ใกลผเลน
เดนลกเขาไปในฉาก เดนออกมาจากฉาก
*
สรางเกมดวย Dark Basic Professional - หนาท 42
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
จะสงเกตไดวา เมอมการออกแบบวธการเลน จะทาใหทราบถงแนวเกมทจะทาการสรางขนมา โดยในทนเกมทจะสรางเปนเกมไทยสามมต แนวเกมยง มมมองบคคลท 1 และสงสาคญอกอยางหนงในการออกแบบวธการเลน จะตองคานงถงสรระของผเลน โดยตองจดวางตาแหนงของสวนรบขอมล ใหอยในตาแหนงทสามารถควบคมไดงาย และสะดวกในการเลน ซงปจจบนเราอาจเหนไดวา เกมแนวมมมองบคคลท 1 อยาง Doom, Counter จะมการใชปม W, A, S, D ในการควบคมการเคลอนทของตวละคร ซงเราอาจใชตาแหนงนในเกมเราไดเชนกน
การออกแบบฉาก
การออกแบบฉาก ตองอาศยความรทางดานสถาปตยกรรมพอสมควร จงจะทาใหฉากทไดม
ความสอดคลองลงตวกนพอด ซงถาหากไมคานงถงจดนแลว จะทาใหฉากทไดนนไมมความสมจรง เชน คนตวใหญกวาบาน ดวงอาทตยอยในระดบเดยวกบสายตาผเลน เปนตนโดยวธการออกแบบฉากสามารถเขยนเปนแผนภาพไดดงรป
องคประกอบรวม
องคประกอบ 1 องคประกอบ 2
องคประกอบ N
…….
จดองคประกอบของฉาก
ฉากทออกแบบได
สรางเกมดวย Dark Basic Professional - หนาท 43
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
โดยในการดาเนนงานโครงงานเกมไทยสามมต "อจฉรยะปราบผ" ไดทาการเขยนแบบแปลนของฉากออกมา กอนทจะทาการสรางฉากจรง ดงน
รปท 3.4 ฉากหมบานไตรนมตทออกแบบไว
ฉากหมบานไตรนมตทออกแบบไว
รปท 3.5 ฉากเจดยอฐโกสทออกแบบไว
ฉากเจดยอฐโกสทออกแบบไว
สรางเกมดวย Dark Basic Professional - หนาท 44
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ฉากเจดยทองโปสทออกแบบไว
ฉากเจดยปนโอสทออกแบบไว
สรางเกมดวย Dark Basic Professional - หนาท 45
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
การออกแบบกราฟฟคสามมต
วธการออกแบบกราฟฟคสามมตนนมรายละเอยดมาก สวนหนงไดอาศยโปรแกรม 3-D Studio
Max ในการชวยออกแบบเพอทาการสรางองคประกอบของฉาก เชน เจดย ตนไม เปนตน สวนตวละครผนนกอาศยโปรแกรม Poser ในการสราง โปรแกรมชวยออกแบบตวละคร
ดวยความสามารถของโปรแกรม Poser สามารถลดระยะเวลาการออกแบบตวละครสามมตไดเปนอยางมาก เพราะโปรแกรมนมรปทรงพนฐานเปนมนษย จงทาใหสะดวกในการปรบแตง และสรางตวละครผไทยสามมต โดยปรบแตงหนาตา ทรงผม ลกษณะทาทาง และสผว กจะทาใหไดผไทยทแตกตางกนดงรป
ตวละครผเปรต
สรางเกมดวย Dark Basic Professional - หนาท 46
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ตวละครผเดก
ตวละครนาผ
สรางเกมดวย Dark Basic Professional - หนาท 47
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ตวละครผหวขาด
ตวละครผกระสอ
สรางเกมดวย Dark Basic Professional - หนาท 48
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ในเบองตนเราทาการสรางผไทยตางๆดวยโปรแกรม Poser และทาการ Export ไฟลเปนนามสกลของ 3D Studio (.3ds) เพอใหสามารถแปลงเปนไฟล .x สาหรบใชในเกมได แตกเกดปญหาทวาตวละครททาการ Export จากโปรแกรม Poser นนเมอแปลงเปนไฟล .x จะไดสผดไปจากเดมททาไว จงตองนามา Import เขาสโปรแกรม 3D Studio Max เพอใช Material Editor แตงสและ Export
เปนไฟล .3ds อกครงหนงเพอนาไปแปลงเปนไฟล .x กจะไดสของโมเดลสามมตตามทตองการ โปรแกรมชวยออกแบบวตถสามมตประกอบฉาก
เนองจากความสามารถของโปรแกรม Poser 4 จากดเฉพาะการสรางวตถรปทรงบางอยางเทานน
จงไมสามารถนาไปประยกตสรางวตถตางๆ เชน บาน ,ตนไม และเจดยไมได จงตองอาศยความสามารถของโปรแกรม 3D Studio Max ในการสรางวตถดงกลาว ซงมวธการออกแบบดงน การสรางเจดย
การสรางเจดยดวยโปรแกรม 3D Studio max นน สามารถทาไดโดยการนาวตถอยางงายเชน
วงกลม ทรงกระบอก ทรงกรวย นามาเชอมตอกนดงรป ซงจากรปจะเหนวากราฟฟกสามมตทไดนนมรปทรงเหมอนเจดยมาก
เจดยทสรางจากโปรแกรม 3-D Studio Max
สรางเกมดวย Dark Basic Professional - หนาท 49
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
การสรางกาแพงเมอง
การสรางกาแพงเมองดวยโปรแกรม 3D Studio max นน สามารถทาไดโดยการนาวตถอยางงาย เชน ลกบาศก และทรงร มาวางซอน และนามาเชอมตอดงรป ซงจากรปจะเหนวากราฟฟกสามมตทไดนนมรปทรงเหมอนกาแพงเมองโบราณมาก
กาแพงเมองทสรางจากโปรแกรม 3-D Studio Max
รปกาแพงเมองท Render จากโปรแกรม 3-D Studio Max
สรางเกมดวย Dark Basic Professional - หนาท 50
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
การสรางตนไม
ในการสรางตนไมดวยโปรแกรม 3D Studio max นน สามารถทาไดโดยการนาวตถอยางงาย เชน ทรงกลม และทรงกระบอก มาวางซอนกนดงรป ซงจากรปจะเหนไดวากราฟฟกสามมตทไดนนมรปทรงเหมอนตนไมมาก
ตนไมทสรางจากโปรแกรม 3-D Studio Max
ตนกลวยทสรางจากโปรแกรม 3-D Studio Max
สรางเกมดวย Dark Basic Professional - หนาท 51
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ตนกลวยจากโปรแกรม 3-D Studio Max สรางโดยใชฟงกชน Bend ทาการดดใบกลวยใหมการโคงงอลงมา ซงเมอ Render แลวจะเปนดงรป
รปตนกลวยท Render จากโปรแกรม 3-D Studio Max
การสรางบาน
ในการสรางบานดวยโปรแกรม 3D Studio max นน สามารถทาไดโดยการนาวตถอยางงาย เชน ทรงกระบอกมาวางซอนกนดงรป ซงจากรปจะเหนไดวากราฟฟกสามมตทไดนนมรปทรงเหมอนบานมาก
บานทสรางจากโปรแกรม 3-D Studio Max
สรางเกมดวย Dark Basic Professional - หนาท 52
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
รปบานท Render จากโปรแกรม 3-D Studio Max
การออกแบบเสยง
ขนตอนการออกแบบเสยงควรทาเมอไดภาพรวมของงานแลว เพราะจะทาใหการออกแบบ
เปนไปในทศทางทสะดวกรวดเรวยงขน โดยในสวนของโครงงานเกมไทยสามมต "อจฉรยะปราบผ" ไดดาเนนการรวบรวม และสรางเสยงตามทตองการ ไวกอนการเขยนโปรแกรม ซงมทงการอดใหม และการตดตอเสยงใหเขากบบรรยากาศของเกมทออกแบบ เพอใหเกมมความตนเตนเราใจ
สรางเกมดวย Dark Basic Professional - หนาท 53
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
ตวอยางการออกแบบเกมน แสดงใหเหนวาการทาเกม มขนตอนมากมาย ซงในสวนของเกมไทยสามมตอจฉรยะปราบผน ไดใชเวลาประมาณ 2-3 เดอน ในทกขนตอน และเมอเสรจแลวกจะไดเกมดงน เกมไทยสามมต "อจฉรยะปราบผ" เมอพฒนาเสรจ เมอเขาสเกมไทยสามมต "อจฉรยะปราบผ" จะพบเมนของเกมดงรปท 1 และเมอเขาสเกม จะพบกบหนากาลงโหลดเกมดงรปท 2 และเมอโหลดเกมเสรจ ผเลนจะเขาสเกมในฉากของหมบานไตรนมตดงรปท 3 ในฉากหมบานไตรนมตน ผเลนมเปาหมายทสาคญคอตองเดนทางไปยงบานของทานผเฒา เพอเอาอาวธวเศษไปปราบผดงรปท 4ในขณะทอยในฉากของหมบานไตรนมตจะไดพบกบบรรยากาศสมจรงแบบสามมตดงรปท 5 และเมอพบผเฒาแลว ทานผเฒากจะมอบอาวธวเศษ คอกรชศกดสทธ และขาวสารเสก อกทงแนะนาวธในการปราบผใหกบผเลนดงรปท 6 เมอรบอาวธแลวผเลนจะตองเดนทางไปปราบผทกาลงอาละวาดดงรปท 7 ผเลนสามารถปราบผโดยโยนอาวธใสผไดดงรปท 8 และในระหวางการเดนทางเพอนาลกนมตทงสามไปไวยงเจดยอฐโกสเจดยทองโปส และเจดยปนโอส ผเลนจะไดสมผสกบบรรยากาศสมจรงแบบสามมตของปาชาและวดนอกเมองดงรปท 9
รปท 1 เมนของเกมไทยสามมต "อจฉรยะปราบผ"
สรางเกมดวย Dark Basic Professional - หนาท 54
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
รปท 2 ขณะกาลงโหลดเกมไทยสามมต "อจฉรยะปราบผ"
รปท 3 เมอเขาสเกมไทยสามมต "อจฉรยะปราบผ"
สรางเกมดวย Dark Basic Professional - หนาท 55
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
รปท 4 ผเลนกาลงเดนไปยงบานของทานผเฒา
สรางเกมดวย Dark Basic Professional - หนาท 56
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
รปท 5 บรรยากาศสมจรงแบบสามมตของหมบานไตรนมต
สรางเกมดวย Dark Basic Professional - หนาท 57
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
รปท 6 ผเลนเขาพบทานผเฒา
สรางเกมดวย Dark Basic Professional - หนาท 58
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
รปท 7 ผทออกอาละวาด
สรางเกมดวย Dark Basic Professional - หนาท 59
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
รปท 8 ผเลนโยนอาวธเขาตอสกบผ
สรางเกมดวย Dark Basic Professional - หนาท 60
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
รปท 9 บรรยากาศสมจรงแบบสามมตของปาชาและวดนอกเมอง
สรางเกมดวย Dark Basic Professional - หนาท 61
Version 1.0 จดทาโดย วศน ภรมย / Email : webmaster@GamedevX.com
เมอผเลนสามารถนาลกนมตทงสามไปไวยงเจดยอฐโกส เจดยทองโปส และเจดยปนโอส ไดสาเรจแลว กจะพบกบฉากจบของปาชาและวดนอกเมองทมพลงอานาจในการปกปองคมครองบานเมองกลบคนสสภาพปกต ทาใหเมองไตรนมตและสยามประเทศ กลบมาสงบสขอกครงหนงดงรปท 10
รปท 10 สยามประเทศกลบสความสงบสขอกครงหนง
Recommended