Category Archives: Lập trình game

Word Play Healthy Food

Một game nhỏ giúp bạn nhớ những từ ngữ tiếng Anh của những loại rau quả tốt cho sức khoẻ.

Với hơn 65 loại trái cây và rau quả, kiến thức về từ vựng tiếng Anh của bạn lại tăng thêm nữa.

Thêm vào khả năng phát âm các từ vựng của game sẽ giúp bạn gắn kết giữa viết, hình ảnh và âm thanh.

Game không chỉ nhấn vào chữ cái mà là cầm và đưa vào ô chính xác giúp bạn hình dung ra từ ngữ một cách dễ dàng hơn.

Link: Download

Advertisements

GameplayKit _ Công cụ hỗ trợ cho Game IOS

# Tutorial dành cho tham khảo với GameplayKit:

+ Apple Website:

Hàng chuẩn của Apple dĩ nhiên là viết đầy đủ về Swift và ví dụ đầy đủ. Tuy nhiên, mã nguồn có vẻ khá cao cấp nên hơi khó học cho người mới nhưng đây là nguồn đầy đủ và chi tiết nhất của framework này đoá ^.^

https://developer.apple.com/library/content/documentation/General/Conceptual/GameplayKit_Guide/Minmax.html#//apple_ref/doc/uid/TP40015172-CH2-SW1

+ Trang web của Raywenderlich:

https://www.raywenderlich.com/119959/gameplaykit-tutorial-entity-component-system-agents-goals-behaviors

=> Một tutorial khá hay dành cho những hiểu biết cơ bản về entity, component, agent trong gameplaykit.

=> Bài hướng dẫn vào năm 2015 sử dụng Swift 2 nên có nhiều chỗ phải sửa. Tuy nhiên về cơ bản thì đây là một bài viết khá cung cấp cái nhìn toàn diện cho GameplayKit rất đáng tham khảo.

# Bài hướng dẫn trong sách của Raywenderlich về GameplayKit trong sách 2D Game cũng rất hay. Tuy nhiên khi bổ sung lại bị bỏ đi do thiếu thực tế thì phải.

+ Project 34 trong HackwithSwift:

Project 34 trong HackwithSwift giới thiệu khá đầy đủ về GameplayKit của Apple thông qua game caro của Mỹ:

https://www.hackingwithswift.com/read/34/overview

+ Website của Tutsplus:

Đây cũng là một website học tập rất tốt dành cho lập trình viên và cả một truyện dài kì về GameplayKit. Nào hãy hưởng thụ đê 😀

https://code.tutsplus.com/series/an-introduction-to-gameplaykit–cms-860

Part 1: https://code.tutsplus.com/tutorials/an-introduction-to-gameplaykit-part-1–cms-24483

Part 2: https://code.tutsplus.com/tutorials/an-introduction-to-gameplaykit-part-2–cms-24528

Part 3: https://code.tutsplus.com/tutorials/an-introduction-to-gameplaykit-part-3–cms-24611

+ Web Shinobicontrol:

Đây là một website bán công cụ, tuy nhiên lại có viết blog về code

https://www.shinobicontrols.com/blog/ios9-day-by-day-day12-gameplay-kit-behaviors

=> Website còn có ebook miễn phí về IOS 9

IOS 9 Blog: https://www.shinobicontrols.com/blog/ios9-day-by-day-index

=> Hiện tại đã có một phim bộ về IOS 10, các bạn có thể nhào vào để luyện, nước mắt ra cũng không kém phim Hàn (do vui hay do sắp bị điên thì không biết)

+ GameplayKit còn có thể sử dụng cho các ứng dụng:

https://www.invasivecode.com/weblog/gameplaykit-state-machine/

=> Cách sử dụng GameplayKit dành cho 1 ứng dụng LoadData

+ Một ví dụ khá tốt về GameplayKit:

Link: http://www.jonathanfischer.net/lets-build-gameplaykit-state-machines/

GameplayKit, bộ công cụ dùng để làm game iOS

GameplayKit là một bộ sưu tầm các công cụ và công nghệ cơ bản để tạo ra những game trên iOS, OS X và tvOS. Nó không chỉ là công cụ tiêu chuẩn hỗ trợ cho việc tạo ra các trò chơi nhanh hơn mà nó còn hỗ trợ cấu trúc, giúp bạn thiết kế các modum, kiến trúc mở rộng cho game với lượng công việc tối thiểu.

Tạo ra một game yêu cầu phải giải quyết những thuật toán khó nhằn, việc này đã được GameplayKit làm giúp. Bạn chỉ việc tập trung vào những tính năng hay ho làm nó trở thành một game thật đặc biệt.

Đây là công cụ tiêu chuẩn của Apple nên nó hoàn toàn có thể kết hợp với SpriteKit để làm game 2D, SceneKit để làm game 3D hay thậm chí có thể kết hợp với Metal hay OpenGL ES. VỚi những game nhỏ, bạn có thể kết hợp nó với UIKit hay AppleKit để tạo ra những game đơn giản.

# GameplayKit bao gồm 7 chức năng chính:

+ Thuật toán ngẫu nhiên: Những thuật toán ngẫu nhiên giờ càng mạnh mẽ hơn và mang tính cân bằng hơn nhờ vào những công thức ẩn và cân bằng giữa tốc độ và hiệu suất.

+ Entities and Component: dùng để tạo ra các thành phần tái sử dụng trong tương lai

+ Trạng thái (State Machies) dùng để quản lý các trạng thái trong trò chơi của bạn

+ Thuật toán Minmax (The Minmax Strategist) Dùng để lập trình trí tuệ nhân tạo trong các trò chơi theo lượt (turn-base) như caro, cờ tướng, cờ vua,…

+ Thuật toán tìm đường (Pathfinding) Không chỉ có thể tìm đường trên tilemap mà còn có thể tìm trên những hình bình thường

+ Agent, mục tiêu, và trạng thái (Agent, Goals, and Behaviors) Cho phép những nhân vật trong game của bạn tự di chuân dự vào những mục tiêu và những yếu tố xung quanh

+ Hệ thống luật (Rule System) Cho phép tách riêng giữa thiết kế và những đoạn mã thực thi đẩy nhanh tiến độ thực hiện game

Những cách cải thiện tỉ lệ tương tác cho quảng cáo video có thưởng

Quảng cáo video có thưởng đang trở thành một xu hướng mới. Không chỉ các nhà phát triển nhỏ lẻ sử dụng như là một phương thức để kiếm thêm tiền mà những nhà phát triển game lớn cũng đang sử dụng nó như một trong những phương thức kiếm tiền chính của game. Điển hình như Half Brick với game Pixel mới ra “Dan The Man” dùng quảng cáo video như phương thức chính bên cạnh phương thức In App Purchase truyền thống.

storychapter1

Phương thức quảng cáo mới cũng đi kèm với cách thức mới để có thề mang lại hiệu quả cao. Cụ thể hơn chúng ta hãy nhìn qua những ý tưởng sau:

1 – Sử dụng xem video có thưởng như một phần của hướng dẫn ban đầu:
Zero Day là ngày đầu tiên mà người chơi bắt đầu game. Họ không biết bất cứ thứ gì về thế giới mà bạn tạo ra. Do đó họ sẽ làm mọi thứ mà bạn nói để có thể hiểu được game của bạn. Thế thì việc của bạn thật sự rất đơn giản, hãy nói họ bấm vào phần xem video có thưởng và làm cho nó trở thành một phần không thể thiếu khi họ chơi game.

2 – Cung cấp một phương thức vòng lặp cho người chơi:
Một vòng lặp không nhất thiết phải là một ngày, nó có thể là 8 giờ hay ngắn hơn là 4 h. Thời gian đủ dài để người chơi quay lại và nhận thường.

3 – Xem video để đổi lấy một hộp quả bất ngờ khó có thể kiếm được trong game:
Những phần thưởng độc đáo lúc nào cũng đem lại những hiệu quả bất ngờ. Hãy cho đi nhiều và bạn sẽ nhận lại nhiều hơn

4 – Xem video để phục hồi:
Rất đáng để xem nếu như bạn có một quân đội và chết hết nửa số lượng quân trong một trận đánh quan trọng. Đợi 30 phút hay chỉ 30 giây quảng cáo sẽ làm cho bạn trở lại với chiến trường, bạn sẽ chọn cái nào?

5 – Save me / Hồi sinh:
Maze Run và rất nhiều game đã dùng ý tưởng này

6 – Money and Money:
Xem video để lấy thêm 10 đồng và tiến hành nâng cấp hay phải tham chiến 1 trận đấu 15 phút để lấy 10.000 đồng?
Cứ cho và bạn có mất gì đâu nào!

7 – Nhân đôi hay x XXX lần EXP hay Gold:
Việc lấy tiền theo cấp số nhân rất hấp dẫn nếu có nhiều hiệu ứng được đưa vào và có tác dụng cùng lúc

8 – Tăng tốc thời gian xây dựng hay khai thác:
Những thứ này rất hấp dẫn khi chỉ cần xem 1 video bạn có thể nâng sản lượng của ruộng lúa lên gấp đôi trong 2 giờ.

9 – Hiển thị các quảng cáo khác để tăng khả năng tương tác:
Hãy hiện các quảng cáo banner, full screen,

Theo thống kê, tỉ lệ người sử dụng chấp nhận in app purchase chỉ chiếm 2 %, từ 25 đến 40 % chấp nhận tương tác với quảng cáo video tuỳ theo cách thức quảng cáo của bạn. Hiển thị các quảng cáo khác có thể dẫn đến điều sau đó

10 – Loại bỏ những khó chịu của quảng cáo với 30 s quảng cáo video:
Xem Reward Video và không thấy bất cứ quảng cáo nào trong vòng 1 giờ là một phần thưởng khá hấp dẫn cho những người chơi đang tập trung vào game

11 – Quảng cáo là một phần trong gameplay:
Một bình máu có thể là không cần thiết khi đi qua 1 phân cảnh. Tuy nhiên, nếu nó cần thiết thì người chơi cũng sẵn sàng bỏ ra 30 giây xem quảng cáo để bảo đảm mình không bị gián đoạn sau đó. Đó là kiều quảng cáo tốt khi bạn cho người chơi lựa chọn và làm cho họ cảm thấy dễ chịu hơn vì

12 – Quảng cáo giữa game giúp người chơi thư giản giữa một màn chơi dài:
Một màn chơi nên được kết thúc trong khoảng 3-5 phút và nếu màn chơi dài 10 phút thì nên để mắt người chơi được nghỉ ngơi sau mỗi 3-4 phút. Hãy nhấn mạnh đều này sau quảng cáo, bạn có thể sẽ không bị ghét bỏ lắm. Nếu người chơi thích thì bạn có thể bán được 1 remove purchase đấy.

Kết luận:
Xem quảng cáo 1 cách vui vẻ chính là đích đến tiếp theo của ngành quảng cáo. Hãy bước theo xu hướng mới và bạn sẽ thành công hơn đấy.

Game tham khảo: Fighting Number

Swift Code – Biến và hằng số

Trong lập trình, việc đầu tiên một lập trình viên cần phải làm là bắt tay vào khai báo và định nghĩa các biến, sau đó chúng ta mới lưu trữ và sử dụng nó cho chương trình. Đối với Swift, biến cũng là một thành phần không thể thiếu.

Chúng ta sẽ bắt đầu với việc khai báo một biến trong Swift. Hãy xem một ví dụ:

var lapKanTitle: String = “LapKan Corp.”

Ở trên, ta vừa khai báo một biến tên lapKanTitle kiểu String và có giá trị khởi tạo là “LapKan Corp.”. Đây cũng là cách khai báo biến phổ biến nhất trong Swift!

Tiếp theo là một ví dụ khác:

let lapKanTitle: String = “LapKan Corp.”

Hai câu lệnh khá giống nhau, chỉ khác nhau ở từ khóa var và let. Vậy, sự khác biệt ở đây là gì? Trong câu lệnh thứ nhất, từ khóa var khai báo một biến và biến này có thể thay đổi giá trị, còn ở câu lệnh thứ hai, với từ khóa let ta có thể hiểu biến ở đây như là một biến Constants (hằng số) và giá trị của biến sẽ không thay đổi trong suốt chương trình!

Hãy xem một vài ví dụ khác:

let lapKanTitle: String = “LapKan Corp.”

var lkVersion: Double = 1.0

let lkLevel: Int = 1000

let lkIsAwesome: Bool = true

Ở trên, chúng ta có 3 hằng số và một biến thường!

Cùng với sự ra đời của Swift, Apple cũng cho thêm 1 định nghĩa mới là “Type Inference” (Nói mới là Apple mới ra cho họ thôi, chứ cái này bên C # có lâu rồi, ngôn ngữ khác thì hem biết). Đại khái nó như thế này:

let lapKanTitle = “Swift” // inferred as String

var lkVersion = 1.0 // inferred as Double

let lkLevel = 1000 // inferred as Int

let lkIsAwesome = true // inferred as Bool

Cách khai báo mới này so với cách khai báo trước có gì khác nhau? Dễ dàng nhận thấy các biến đã được lược bỏ các kiểu dữ liệu như String, Double, Int, Bool. Đây chính là Type Inference mà ta đã nhắc tới ở trên. Điều này có ý nghĩa gì? Chúng ta có khả năng khai báo các biến tự do hơn trước nhiều. Nhiều lúc khi sử dụng, Swift sẽ có lựa chọn đúng hơn cho kiểu dữ liệu giúp chúng ta tiết kiệm được bộ nhớ cho việc sử dụng kiểu biến hay nếu chúng ta có thay đổi một kiểu biến ở đâu đó thì chương trình vẫn tối ưu hoá và chạy đúng. Nó khôn chỉ tiết kiệm được thời gian, công sức mà còn rút ngắn được code viết ra.

Thế thì tại sao Swift vẫn hỗ trợ việc khai báo có chứa kiểu dữ liệu như trên, đó là vì có những lúc chúng ta buộc phải sử dụng đúng kiểu dữ liệu để chương trình chạy được. Swift không phải vạn năng để lúc nào cũng hiểu được chính xác lập trình viên nghĩ gì (thật ra có lẽ chính lập trình viên cũng éo hiểu lúc đó nghĩ gì) nên vẫn có những lúc mà chúng ta cần định nghĩa chính xác thứ mà bạn muốn.

Lời khuyên cho lập trình viên là: Hãy sử dụng tối đa lợi thế không cần khai báo biến để giúp cho bạn tiết kiệm thời gian, công sức và dễ dàng bảo trì code trong tương lai.

Thế nào là một game “rác”?

Thế nào là một game “rác”?

Định nghĩa cho 1 game “rác” hiện tại chưa rõ ràng đối với dân Việt Nam. Hiện tại, cứ game nào bạn không thích thì đều gán cho nó cái danh hiệu là game “rác”. Thế là bao nhiêu game đều bị vu cho game “rác” mặc dù người nói còn chưa chơi qua.

Thật ra phải phân thành 2 dạng trước sau đó mới gọi được là rác hay không.

Loại thứ nhất: Lấy công sức người khác để làm game của mình.

– Loại này gọi là “rác” về mặt đạo đức chứ không phải về cách chơi (gameplay). Loại này thì Việt Nam có mà thừa. Các nhà phát hành cứ đi chôm game và ý tưởng của người khác về và tự nhận là game của mình. Có NPH còn mặt dày đến mức lấy game của Trung Quốc rồi kêu là game “thuần Việt” trong khi toàn bộ tướng đến địa danh đều từ Tam Quốc mà ra còn tướng Việt được 2- 3 mống.

– Việc sử dụng ý tưởng thực sự cũng không đáng phàn nàn gì lắm nhưng với các chiêu “thuần Việt”, “mới mẻ” của các NPH game làm người chơi thực sự cảm thấy bực bội. Đó là loại rác “đạo đức”. Các loại rác này vẫn có gameplay đồ sộ do chôm source nhưng rất dễ chết yểu do thực chất NPH không tự phát triển nên tính năng thêm chỉ có thể chờ game chính hay chỉ thêm những tính năng “cần tiền” vào để kiếm thêm và khi nào đủ thì game over và rút.

Loại thứ hai: Rác thải công nghiệp

– Loại này thì chả có nội dung cách chơi gì cả, game không đầu tư chỉ đưa lên nhằm vào một vài mục đích đen tối nào đó. Loại này thường tập trung vào tình dục (sex), dùng những cách tà đạo hay đơn giản chỉ là dùng hình ảnh cao để có thể hấp dẫn người chơi cài game vào sau đó thực hiện ý định. Thường tập trung vào việc gửi SMS để kiếm tiền bất chính gây thiệt hại cho người dùng.

Bạn nên làm gì trên shutterstock

Link to refer:

http://submit.shutterstock.com/?ref=2433512

Khi giới thiệu về Shutterstock trên blog, rất nhiều người đã hỏi mình là nên vẽ về những chủ đề gì?

Thực ra, bạn phải hiểu là thế giới là nơi rất rộng lớn. Thứ bạn vẽ sẽ phục vụ được cho một số đối tượng nào đó. Bạn không nên giới hạn mình vào bất cứ thứ gì cụ thể, bạn thích thì bạn vẽ. Có những người thích vẽ nhà cửa, lại có người thích vẽ nhân vật. Thế sao bạn phải làm theo người khác mà không tự mình suy nghĩ ra chủ đề của bản thân?

* Nếu bạn vẫn muốn một chủ đề hợp lý thì đây nên là chủ đề của bạn:

– Mình làm game nên những thiết kế thuộc về game mình rất cần và những lập trình game đơn lẻ (indie) như mình cũng sẽ như thế.

I. Tiêu đề game:

1. Tiêu đề:

a. Tạo một tiêu đề ví dụ:

– Tiêu đề của game cần phải nổi bật giữa hình nền trên menu. Ngoài ra nó còn có thể được sử dụng để quảng cáo, ghi lại dấu ấn dành cho game. Bạn có thể tách nó ra riêng lẻ để lập trình viên tiện sử dụng.

– Những tiêu đề hay dòng chữ cách điệu rất dễ được những người thiết kế lấy về để làm game và các tác phẩm khác. Đây là thứ dễ làm nhưng khó khăn về mặt ý tưởng.

stock-vector-a-red-background-with-stripes-star-and-green-text-for-christmas-219818977

b. Tạo sẵn bảng chữ cái:

– Ngoài ra bạn có thể liệt kê 24 chữ cái tiếng Anh với phong cách riêng thì lập trình viên có thể sử dụng một cách dễ dàng.

stock-vector-original-golden-alphabet-set-of-luxury-metallic-letters-for-your-text-designs-or-logos-vector-font-134505191

Tip: Nên có thêm ghi chú về font sử dụng trong hình để lập trình viên biết mà sử dụng lại vì hình vector trên Shutterstock bắt buộc phải outline nên rất khó để làm lại nếu không biết font.

2. Phông nền mở đầu:

Đây là hình nền mở đầu vào trong game, thông thường sẽ bao gồm cả tiêu đề game.

stock-vector-interface-game-design-resource-bar-and-resource-icon-for-game-vector-illustration-part-193725569

Tip: Không tô màu theo kiểu trên mặt vì lập trình viên sẽ tốn rất nhiều thời gian để tạo lại nền.

II. Những thông báo về game:

1. Những loại thông báo thường:

Những thông báo sau luôn có trong game cho dù đó là game gì:

– Game over

– Start

– High score

stock-vector-set-of-blue-green-round-buttons-menu-elements-for-web-or-game-design-217376134

2. Cách dạng thông báo khác nhau:

Các hình dạng khác nhau để có thể làm game

stock-vector-set-of-green-glossy-buttons-beautiful-sparkling-elements-for-web-or-game-design-217373191

III. Những ý tưởng game:

– Bản thân người làm game có thể đưa ra những game theo ý kiến của mình như thế này?

Minh hoạ

– Ý tưởng của bạn được đưa ra chỉ trong hình ảnh

stock-vector-sweet-elements-for-making-your-own-cake-vector-cake-constructor-207357349

IV. Những vật dụng trong game (Item):

– Những vật dụng hỗ trơ trong game là không thể thiếu, vậy bạn hãy cung cấp cho các lập trình viên những món đồ đó để làm game hay hơn đi:

stock-vector-game-resources-icons-149103440

 

=> Việc liệt kê đầy đủ các biểu tượng trên nền đen đem lại cơ hội bán hàng cực cao dành cho người bán như chúng ta. Đây là một trong những bộ vector về game bán rất chạy và gần như ai cũng muốn mua ngay khi nhìn vào.

 

V. Những nhân vật trong game:

Nhân vật chính là xương sống của game, những nhân vật dễ thương vui nhộn có thể được bán rất nhiều.

stock-vector-cute-simple-characters-and-elements-for-game-on-the-blue-game-board-216890770

Những nhân vật này, các lập trình viên nhìn vào là muốn mua ngay.

Tập trung vào các chủ đề khác nhau sẽ đem lại các lợi ích cao hơn

1. Các loài cá:

– Cá và đại dương là một trong các chủ đề rất tốt dành cho các lập trình viên. Đơn giản vì với những game thuộc về biển, các lập trình viên có thêm chiều dọc để làm game. Việc một nhân vật đi theo chiều dọc của game không hề cần thêm một thứ gì hỗ trợ khác với trên bờ, khi nhân vật đi lên thì chắc chắn phải đi xuống.

Đây là một trong những bộ hình yêu thích của mình

stock-vector-cute-cartoon-sea-creatures-all-in-different-layers-for-easy-editing-32547703

=> Những động vật biển trong hình thật sự thân thiện phù hợp với mọi lứa tuổi và hợp với nhau.

2. Các loại thú:

Ngoài biển, thì môi trường rừng cũng là một trong những môi trường dễ làm game. Bất cứ người nào cũng có thể biết được những loại thú.

stock-vector-vector-illustration-of-animals-set-cartoon-201895072

3. Các loại chim:

Những con chim thế này:

stock-vector-set-of-cartoon-funny-birds-215515183

4. Nhân vật dễ thương:

Các nhân vật dễ thương thường được sử dụng trong các game dành cho mọi lứa tuổi.stock-vector-little-cute-cartoon-fluffy-monster-in-different-colors-207977251

5. Các đồ vật:

– Các đồ vật hằng ngày cũng là một trong những nguyên liệu rất tốt của những nhà thiết kế game. Những game tìm đồ vật hay làm liên quan đến đời sống hằng ngày làm cho game được chơi nhiều hơn và cần ít hướng dẫn cũng như người chơi sẽ dễ dàng nhận ra cách chơi hơn.

stock-vector-cartoon-collection-of-normal-tool-in-home-color-219857065

VI. Những hình nền trong game:

– Những phông nền phía sau (background) làm cho game đẹp hơn rất nhiều

VII. Những nút thuộc về game:

1. Những nút cơ bản của game:

Những nút cơ bản mà game nào cũng có:

stock-vector-big-set-of-cartoon-wooden-vector-buttons-for-game-ui-214972030

2. Các nút đặc biệt:

VIII. Những thành phần đặc biệt chỉ game mới có:

1. Thanh tính thời gian (Progress bar)

Tip: Những hình ảnh được sử dụng trong game thường đơn giản nên dễ vẽ. Tuy nhiên, những nhà thiết kế như các bạn cần phải tách ra từng layer khác nhau để tô màu , đừng tạo shape từ Illustrator vì mình không sử dụng được thể loại đó. Mình cần tách nền và vật dụng ra khỏi nhau thì mới lập trình được.

– Những item và các nhân vật trong game cần có ít nhất 6 để bảo đảm việc mở rộng game. Bạn vẽ cho mình 2 cái rồi sau đó game hay thì mình làm tiếp thế nào?

– Hãy tạo thành 1 bộ với đầy đủ các đối tượng như trên thì khi mua mình sẽ mua toàn bộ nó 1 lúc. Thiếu những thứ như trên làm game sẽ rất khó khăn mà muốn kiếm cái khác để hợp cũng rất khó. Vì vậy, một khi đã hướng tới game, mình cần tất cả những thứ trên. Hãy tạo thành 1 bộ và với mỗi phong cách các bạn sẽ có được nhiều tấm cùng lúc.

stock-vector-game-resource-bar-set-149103266