Category Archives: Thinking

Thêm startapp với Objective-C: Phần cơ bản

Đưa startapp vào ứng dụng hay game khá là dễ dàng với những tuỳ chỉnh mặc định. Thường thì chỉ cần một dòng code là có thể hiển thị thứ mình muốn trên trò chơi của bạn. Tuy nhiên để nhận dữ liệu như, người chơi đã xem hay chưa, đã install game hay xem 1 quảng cáo nhận thưởng thì việc hơi khó khăn hơn một chút. Đây là phần cơ bản, sẽ có phần nâng cao về việc tuỳ biến cao hơn trong game của bạn.

Khởi tạo Startapp cũng khá đơn giản:

Bước 1: Thêm các framework cần thiết

+ Với Xcode 8 trở lên (trước nữa thì không nhớ – vì lúc đó vẫn phải ngồi add từng cái framework liên quan vào), những framework cần thiết cho startapp đã được Xcode tự động thêm vào khi chúng ta sử dụng nên giờ chúng ta có thể bỏ qua bước này, tuy nhiên cho những ai muốn biết thì đây là những framework cần thiết cho Startapp

CoreTelephony.framework

SystemConfiguration.framework

CoreGraphics.framework

StoreKit.framework

AdSupport.framework

QuartzCore.framework

CoreMedia.framework

AVFoundation.framework

WebKit.framework

libz.dylib in XCode 6 and below / libz.tbd in XCode 7

Bước 2: Khởi tạo SDK

Chỉ cần bạn add phần khởi tạo này trong AppDelegate.m là xong:

– (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    STAStartAppSDK* sdk = [STAStartAppSDK sharedInstance];

    sdk.appID = @”204003711“; // Đây là chổ để app Id

    [sdk showSplashAd];  // display the splash screen

    return YES;

}

Nhớ import framework của Startapp nhé:

#import <StartApp/StartApp.h> 

Bước 3: Kích hoạt App Transport Security

Bước 4: Thêm quảng cáo của Startapp vào game

Những kiểu quảng cáo của Startapp:
+ Slash:

Đây là kiểu quảng cáo khá đặc trưng của Starapp. Mặc dù đã thử khá nhiều mạng quảng cáo nhưng Slash vẫn là dạng quảng cáo khá đặc biệt. Đây là quảng cáo được hiển thị ra trước khi vào game. Nghĩa là game bạn mở lên là hiển thị ngay.

Trong khi các mạng quảng cáo khác thông thường phải chạy kết nối, load dữ liệu lâu lắc thì Startapp sẽ có quảng cáo ngay lập tức lúc mới vào game.

Muốn hiển thị Slash Ad thì chỉ cần thêm dòng này:

// initialize the SDK with your appID

STAStartAppSDK* sdk = [STAStartAppSDK sharedInstance];

sdk.appID = @”your app Id”;

// Đây là dòng khởi tạo

[sdk showSplashAd];  // Đây là dòng hiển thị Splash Ad của Startapp

+ Return:

Đây cũng là một dạng quảng cáo khá đặc trưng cùa Startapp. Nó sẽ hiển thị khi ngưởi chơi quay trở lại game sau khi đã tắt game và game còn đang trong quá trình chạy ngầm chứ chưa tắt hẳn.

Đây là dạng mặc định của startapp.

Bạn có thể bỏ nó bằng dòng lệnh:

[sdk disableReturnAd];

 

+ Full Screen:

Quảng cáo hiển thị toàn màn hình, đây là loại rất phổ biến rồi chắc không cần phải giới thiệu nhiều.

Bạn có thể hiển thị bằng dòng lệnh sau:

[STAStartAppAdBasic showAd];

+ Banner:

Hầu hết các mạng quảng cáo lớn đang bỏ qua Banner vì hiểu quả thấp và không lấy gì làm hay ho vì làm cho người chơi khó chịu và dễ bỏ game. Tuy nhiên, banner cũng có những ưu điểm riêng mà chúng ta có thể sử dụng được.

Với những chương trình khuyến mãi do chính Startapp khởi xướng thì bạn có thể kiếm được kha khá từ nó.

Hiện tại đang là chương trình “Pay per Download”

Chương trình này được mình nói rõ tại đây <Pay per download Program>

Bước 5: Tuỳ chọn IDFA

Trước khi đưa game lên cho Apple xem xét bạn sẽ thông qua bước hỏi đáp thường thấy (Thật ra là lúc nào cũng thấy nên gọi thế)

Bạn cần chon “YES” cho việc có sử dụng quảng cáo trong game

Đánh dấu vào “Serve advertisement within the app”

Đánh dấu vào cả mục “Limit Ad tracking setting in iOS”

Vậy là xong, game của bạn sẽ lên Appstore cho cả thế giới thấy (dĩ nhiên là trừ mấy nước không xài đồ Apple, và trừ khi game của bạn có lỗi gì khác nữa).

+ Đây là source code dành cho ứng dụng IOS thường:

<Đang up chờ tí, chờ hem được thì gửi mail cũng được>

+ Đây là source code dành cho các bạn sử dụng Sprite Kit framework:

<Đang up chờ tí, chờ hem được thì gửi mail cũng được>

Advertisements

Startapp: “Pay per download”

Link Ref dành cho StartApp: http://startapp.com/rfp3ukd

+ Chương trình khuyến mãi của Startapp: “Pay per download”

“Pay per download” – “Trả tiền cho từng lượt tải”

 

+ Đây là chương trình đã có từ trước và được khởi động lại cách đây không lâu.

+ Bạn sẽ được trả tiền nếu game của bạn được download:

Phải thoả các điều kiện của Startapp:

+ Người dùng phải hiển thị được tối thiểu 10 impressive (Không tính loại, điều này làm Banner là quảng cáo tốt nhất để làm được điều đó)

+ Game phải được phát hành trên Google Play hay Appstore (Appstore hơi yếu thế trong chương trình này)

Đây được tính trên 1000 user:

+ Loại 1: Mỹ/ Đức/ Các tiểu vương quốc Ả rập/ Pháp/ Úc/ Nam Phi/ Nhật / Đan Mạch/ Thuỵ Sỹ/ Na uy (30 $/ 1.000 người mới)

+ Nhóm 2: Canada/ Thái Lan/ Tây Ban Nha/ Singapore/ Malaysia/ Qatar/ Oman/ Kuwait/ Iran/ Hàn/ Bỉ/ Ý/ Áo/ Finland/ Switzedland (30 $/ 1.000 người mới)

+ Nhóm 3: là các nước còn lại (5 $/ 1.000 người mới)

ee5036f4-f3ed-464f-913a-cb6d76f0a8b6.png

Chương trình khuyến mãi của Startapp

Với kiểu hiển thị banner, bạn chỉ cần giữ chân người dùng 5 phút là đã có tiền thưởng.

(Do Slash Ad ngay lúc khởi đầu, 30 s cho 1 hiển thị banner, chừng 2 hiển thị full screen là dư sức qua cầu)

Start

Download thường ngày là nhiêu đây thì dễ kiếm tiền thôi mà

Lượng user của mình vào khoảng 100.000 user/ tháng

thì được khoảng hơn 500 $ chỉ tính riêng cho phần thưởng thêm này. (Tiếc là đi gắn lung tung chứ không phải Startapp T.T )

Các bạn hãy tham gia trên link của mình nhé!

Link Ref dành cho StartApp: http://startapp.com/rfp3ukd

Tham khảo thêm phần kiến thức về Startapp: Startapp Basic

Paradise Game English Vocabulary

Learning English is good for anyone.
The most important of this is vocabulary, if you can know more vocabulary this means you can know more and easy to talk what you want.

Learning vocabulary is the work that you need to do everyday.
And it is nothing better than play it as a game and with your mobile.
Learning this with voice and it will make you remember more than usual.

It include fast food, which it very popular with everyone.
Nature elements will give the familiar with Tree, Stone, and more…
Or just some of tool in the kitchen like knife, bowl, …

You can learn vocabulary about kitchen, bathroom, bedroom,… with colorful and clear images.

Fearture:
+ More than 100 words for you to play
+ With 12 topic about fast food, home, …
+ Have voice to make you can hear to learn English very well
+ Drag and drop letter to make the words
+ Examine Mode to test your learning about each topic

Download: Link

Tiny Fury Fight – Chiến binh tí hon

Đây là loạt game trong serie Tiny World kết nối tất cả các câu chuyện tron thế giới tí hon.

Nơi đây các nhân vật tí hon của chúng ta có nghề nghiệp và câu chuyện riêng.

Tuy nhiên, tất cả đều có chung 1 mục tiêu giúp cho thế giới tí hon phát triên

Đây là chuyện về chiến binh man rợn – Tiny Barbarian Red Horn. Chiến binh can trường đang chiến đấu với bé lũ Goblin đông đảo, nào hãy cùng nhau chiến đấu với các chiến binh tí hon nhưng lại có ý chí vô cùng lớn lao này.

Link: View on App Store

Goblin với sức chiến đấu thấp nhưng vô cùng đông đảo

Khổng lồ 1 mắt hung tợn va vô cùng lỳ đòn là trở ngại lớn cho các chiến binh tí hon này.

Neo Metronome

Features to enjoy in Neo Metronome app:

– Maximum precision metronome

– Intuitive & easy to use interface

– Universal metronome app for phone and tablet

Tempo Animations:

– Visual flash – see the beats!

Tempo rates :

– Manually adjust to any desired tempo

– Tempo ranges from 10 to 500 bpm (beats per minute)

Time signatures :

– Manually set the ‘beat per bar’ you want !

Save your Metronomes!

– Save your Settings and load with just one-click, so nothing can get in your way of practising music !

Tap Tempo :

– Don’t know what your tempo is? Just tap the hand sign to measure !

Sound Sets :

– Over 10 unique sounds for every band and style

– Digital metronome

– Analog metronome

– Drum metronome

– Piano metronome

– Cymbals metronome

– …and many more cool sounds !

Neo Metronome is designed by Neokid Music School and free to use by music schools’ students and teachers.

For more informations, visit us at www.neokid.vn !

 

Thuật toán ngẫu nhiên trong GameplayKit (Phần 1)

I. Thuật toán ngẫu nhiên trong GameplayKit:

Đối với những trò chơi mà xác suất và cơ hội đóng vai trò chính thì thuật toán ngẫu nhiên chính là cốt lõi của cả trò chơi. Khi bạn chơi một trò chơi trên những bàn cờ (board games) thì những điểm của xúc xắc quyết định số nước đi của người chơi hay việc xào bài trong một trò chơi bài bạc như xí dzách, tiến lên. Những điều bất ngờ trong game tạo ra những điểm hấp dẫn dành cho game và thay đổi toàn bộ cách chơi nếu bạn thay đổi xác xuất trong game. Tính ngẫu nhiên có vẻ đơn giản nhưng thực sự để có được sự ngẫu nhiên tốt trong 1 game nó không dễ dàng chút nào.

Việc tạo ra tính ngẫu nhiên trong 1 game kích thích người chơi cố gắng hơn trong việc tiến tới mục tiêu. Việc có được viên kim cương với tỉ lệ 10 % sẽ rất hảo hứng vì nó cho người chơi một mục tiêu cụ thể hơn cho việc hạ gục một con boss trong trò chơi so với việc không biết gì về khả năng có thể có được viên kim cương đó. Tuy nhiên việc đánh hơn 50 lần vẫn không thể có được sẽ làm cho người chơi không còn niềm tin vào tỉ lệ này.

Chính từ những điểm này mà ta cần phải tập trung vào những điểm quan trọng trong việc tạo ra các ngẫu nhiên trong trò chơi.

+ Tính ngẫu nhiên: Một con số hay tỉ lệ ngẫu nhiên nghĩa là bạn không thể đoán ra được (dĩ nhiên là không phải trong tình trạng tỉ lệ 100 %). Tuy nhiên, một thuật toán ngẫu nhiên tốt là gì? Dĩ nhiên là nó khó đoán trước nhưng đó không phải là tất cả những gì có thể có của 1 thuật toán ngẫu nhiên tốt. Thuật toán ngẫu nhiên tốt phải bao gồm cả việc cân bẳng trong giới hạn của nó. Khi bạn ngẫu nhiên 10.000 số trong giới hạn 1-100 thì việc ra các số này phải có tỉ lệ tương đồng với nhau và không có số nào là không xuất hiện. Chu kỳ lặp lại của nó cũng cần phải khó đoán, trong 100 số thì không có sự lặp lại của những khối số.

+ Hiệu suất: Việc tạo ra một đoạn mã thực thi phức tạp để tạo ra tính ngẫu nhiên tốt nhất dĩ nhiên là tốt, tuy nhiên, nó phải đi kèm với hiệu suất tốt. Bạn không thể cho chạy một thuật toán phức tạp chỉ để cho ra 1 số trên mặt xúc xắc trong khi có hàng ngàn thứ khác đang cần xử lý.

+ Định luận: Một trò chơi chất lượng đòi hỏi cần phải được kiểm tra đầy đủ (Test), tuy nhiên với các thuật toán ngẫu nhiên thì việc điểm định hết tất cả các trường hợp trong game gần như là không thể. Một thuật toán ngẫu nhiên tốt sẽ duy trì những tình huống bất ngờ trong game dành cho người chơi. Thêm vào đó, nó cần được quan tâm đúng mức để có thể mở rộng ra khi cần thiết.

+ Tính độc lập: Những con số hay nguồn ngẫu nhiên phải độc lập so với kết quả gần nhất.

+ Tính ngẫu nhiên tương đồng: Những gì được ngẫu nhiên cần phải tương đồng với tất cả các kết quả được đưa ra.

  • Cách sử dụng Randomization trong game:

Toàn bộ những lớp ngẫu nhiên, tính ngẫu nhiên hoá trong GameplayKit đều thông qua giao thức GKRandom. Nó sử dụng thông qua các mô thức tối thiểu trong các giao diện. Chính vì vậy việc đầu tiên bạn cần là chọn ra cách thức ngẫu nhiên phù hợp với game của bạn, tất cả những gì còn lại hãy để cho GameplayKit làm dùm:

+ Trong hầu hết các trường hợp, bạn sẽ cần một con số ngẫu nhiên đồng nhất trong 1 khoản giới hạn. Ví dụ như bạn cần 1 số nằm trong khoản giữa 1 tới 100. Như vậy thứ bạn cần là GKRandomDistribution.

+  Để tuỳ chính tính ngẫu nhiên nhưng vẫn mang tính đồng nhất giữa chúng, bạn có thể chọn những lớp phụ nằm trong GKRandomSource

+ Để có thể tuỳ chỉnh tính ngẫu nhiên (không còn đồng nhất) thì bạn cần phải dùng đến các lớp GKGaussianDistribution hay GKShuffledDistribution

+ Nếu bạn không cần sử dụng đến thuật toán ngẫu nhiên trong một khoảng hay một giới hạn nào đó thì bạn chỉ việc sử dụng trực tiếp GKRandomSource

+ Bạn chỉ việc sử dụng GKRandomSource để ngẫu nhiên một mảng (array) như ngẫu nhiên xào bài.

+ Bạn chỉ việc đưa mảng vào  arrayByShuffelingObjectsInArray:

+ Lệnh sẽ trả về một nhân bản với thứ tự ngẫu nhiên.

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