Tampilkan postingan dengan label programming. Tampilkan semua postingan
Tampilkan postingan dengan label programming. Tampilkan semua postingan

Hi all, it’s a long time since I write my last blog post.
And now, I want to review a book that I recently read, It’s “Learning Construct 2” by Aryadi Subagio.
The book is written by my friend (acquaintance?) in Game Developer Indonesia community, so… I want to help to spread the exposure of this book.

Learning Construct 2 by Aryadi Subagio

And you can buy it or get a free sample at Learning Construct 2 by Aryadi Subagio at Packtpub


Synopsis

For the one who wants the short synopsis (in my opinion) about the book, here it is:

It’s a book for complete newbie in Game Development, that doesn’t know how to make a game or how to program. The book tells how to make a game with Construct 2, with Learning by Doing approach. The reader is asked to make several simple game to get a grasp of the mechanic of the Game Development with Construct 2.


Target Audience

This book targets really specific people, that is complete newbie in Game Development world and doesn’t know how to programming.

Because the book assumes it like that. And that’s a good thing.
It will make zero assumptions of reader knowledge of the programming or game development, so, if the reader is complete newbie, he/she will not lose a single detail what this book tells about.

But if the reader knows how to program or have been Game Development using another authoring tools, they will find this book is kinda slow. So I don’t think they will benefit much from this book.


The Structure and Content

The books cover all from the start of nothing, to publish a game.

It starts with setting up the Construct 2, including downloading, installing, etc.
And continues to give the basic information of Game Design, tells What makes a game, a game.

And, although the title says “Learning Construct 2”, actually this book is pretty much Using Construct 2, because this book actually teaches Learning by Doing.
So the reader is not presented with a bunch of theory and manual about the Construct 2, but hand of practice of making games.

So by the Third Chapter, the reader is asked to make a game like Flappy Bird. It’s a simple game, but from there, the reader could get a better grasp what Construct 2 can really do.

New technique is revealed with the game. Because some games need different feature, therefore new technique needs to be revealed.
The chapter is structured very well, so that the prerequisites technique is shown first before the required technique to make a game.

So that’s advised to follow the book from the start and follow along the tutorial, because if you jump the Chapter, you may put yourself in confusion because you met the technique that is not explained in that Chapter, because it’s covered in previous Chapter.

And the last Chapter is how to debug your game, which is important for any programming thing.
Finally, there’s a Chapter dedicated to publish your game in several platform like mobile game, web game, or desktop game.

So this book covers what it takes from zero to publish your game and show it to the world for the one who never makes any game before.


My Personal Opinion

The game that is presented in this book is really simple, not only for someone who have already in Game Development, but also for the complete newbie which is the target audience.

It’s not an AAA game that any wannabe newbie game developer that want to make, it’s just simple game, with simple algorithm, and simple interaction.

So I would like to see this book as a guideline rather than a rule. The games that presented in this book are just a tools for learning purpose.
And also, this book encourages the reader to do something more with the game they have made, put some feature and mix the technique, so it will become a full blown game rather than a simple prototype.

This books teaches how to use Construct 2, but not with lengthy manual and theory, but with game tutorial, which is more fun to do.

The downfall of this book is it’s too verbose, so the sentence looks very long. Sometimes it is just tiring to read the book only not practice it.
The author tries to use friendly sentence, resulting the sentence too long for the information it contains. It could be understood because this book is for complete newbie.


Conclusion

Wow… this review is longer than expected.
So in conclusion, I really recommend this book to someone who often says “I want to make a game. Where do I need to start? What tools should I use?”…
And they often get the answer like “The tools doesn’t matter, you could make game almost from anything”…
Which is I don’t think it would help anyone, you could instead pick this book and start make one.

Written with StackEdit.

Ok jadi aku dah aplot Spinner ke Github *karena kemarin ada yang minta*.
Bagi yang gak tau Spinner apaan, silahkan kunjungin link ini http://alijayameilio.blogspot.com/2012/08/spinner-game.html

Jadi silahkan diubek2 Repository Githubnya di https://github.com/alijaya/Spinner

Silahkan di clone dan bersuka ria :v...

That's it...
Ciao~...
Apa itu 8 bit, 16 bit, 32 bit, 64 bit?

Pasti sering denger kan?

Pertama - tama saya jelaskan dulu apa itu bit dan apa itu byte.

Bit itu suatu data yang cuman nyimpen 0 (false) atau 1 (true).
Sesimpel itu, tapi jika digabung2 akan lebih banyak maknanya.

Dan satu byte adalah 8 bit, udah gitu doang.

Integer yang biasanya ditemukan dalam dunia programming itu biasanya bisa dibedakan jadi 2 tipe, signed dan unsigned.

Apa artinya? Secara sederhana signed itu bisa mengandung nilai negatif, sedangkan unsigned cuman nilai positif doang.

Untuk jelasnya aku jelasin yang unsigned dulu karena lebih gampang.
Misalkan 8 bit unsigned integer, yang biasanya disebut char, itu ada integer dengan 8 bit misalnya 01010110.
Angkanya secara sederhana dengan mengubah itu dari basis 2 ke basis 10 (supaya bisa dimengerti manusia :v).

Cara ngubahnya itu tiap posisi bit itu kita kasih nomor dari paling kanan itu 1, semakin ke kiri itu adalah 2 kali dari sebelah kanannya.

Contoh...
0 1 0 1 0 1 1 0
128 64 32 16 8 4 2 1

Nah yang ada 1 nya itu ditambah semua, kalau contoh di atas 64 + 16 + 4 + 2 = 86.

Gampang bukan?

Artinya range untuk 8 bit unsigned integer itu dari 00000000 = 0 sampe 11111111 = 255. Jadi sekarang harusnya kamu tahu berapa range untuk 16 bit unsigned integer (short). Hal itu juga berlaku untuk 32 bit (long) dan 64 bit (long long).
Sebagai latihan silahkan dicoba cari sendiri :D... kalau perlu tinggalin komen dibawah...

Trus kita selingkuh (beralih) ke signed integer.
Biasanya program - program komputer kalau bicara signed integer itu dia pake Two's complement.
Kenapa aku bilang gini? Karena ada lebih dari satu cara untuk mempresentasikan signed integer.

Bit paling kiri di signed integer itu namanya signed bit, itu yang menandakan itu bilangan negatif apa kagak, kalau 0, artinya positif, kalau 1 artinya negatif.

Untuk representasi bilangan positif, sama kayak sebelumnya dengan bit paling kiri itu 0.
Untuk representasi bilangan negatif ini yang agak dikit ribet, jadi caranya semua bit diinvert dulu semuanya (0 jadi 1, 1 jadi 0), dan kita memperoleh angka yang positif, tapi sebelum dibaca, kita harus tambah satu dulu baru kita baca sebagai angka positif (bingung? langsung aja ke contoh).

Contoh bilangan negatif : 11101000
Pertama kita tau itu negatif (ngeliat bit pertama), karena itu kita invert semua bitnya : 00010111
Trus kita tambah 1 ke bilangan itu (penjumlahan basis 2 ya, diinget) :

    111  <<< caret
00010111
       1
-------- +
00011000

Jadi hasilnya 00011000, trus diitung pake kayak ngitung positif, 16 + 8 = 24. Jadi karena kita tahu ini negatif, hasilnya jadi -24, ok ribet bukan?
Dan artinya range untuk 8 bit signed integer itu 1000000 = -128 sampe 01111111 = 127. Dan cara yang sama berlaku untuk 16 bit, 32 bit, dan 64 bit.
Dicoba sendiri yak :v.

Dan kalau ada yang bingung kenapa dirancang kayak gini, jawabannya ada pada penjumlahan dua bilangan, karena kalau pakai kayak gini menjumlahkan positif sama negatif value itu gampang. Seandainya 86 (01010110) dijumlah dengan -24 (11101000), untuk ngejumlahin keduanya tinggal kayak ngejumlahin binary biasa.

11        <<< caret
 01010110
 11101000
--------- +
x00111110

Bisa dilihat pas ngejumlahin bisa lebih dari 8 bit, karena itu yang lewat itu dibuang, hasilnya cuman ngambil 00111110, dan itu adalah 32 + 16 + 8 + 4 + 2= 62 dimana 86 + (-24) = 62.
Interesting enough?

Nah karena bisa lebih dari 8 bit dan ada bit yang dibuat ini yang biasanya menyebabkan angka gede banget ujung2nya jadi negatif, misalnya kita punya 127 dalam 8 bit signed integer, kita tambahin satu aja, dia bakal menjadi -128 (muter lagi).

Ok mungkin itu dulu :-?... semoga menjelaskan. Dan untuk link baca - baca selanjutnya :

Two's Complement
LevelBeginner
Type
  • General
Requirement
Similar
LevelIntermediate
Type
  • Dynamic Programming
Requirement
Similar
Hal yang sangat dasar dalam Competitive Programming adalah Modulo Arithmetic, hal ini sangat penting diketahui dalam OSP maupun OSN, jadi sekarang saya akan membahasnya disini.
Karena tidak jarang peserta yang sudah sampai ke OSN pun masih belum mengerti bagaimana cara kerja Modulo Arithmetic ini.

LevelBasic
Type
  • Math
Requirement
    Similar


      Spinner Game
      Jika melihat pesan ini artinya anda tidak ada flashplayer, silahkan di download.


      Mouse Control.
      Pilih bound yang akan dipakai kemudian klik pada peta untuk menaruhnya.
      Klik bound yang ada di peta untuk mengambilnya lagi.
      Goal game adalah mengantarkan bola menuju goal sel (warna biru) dengan menaruhkan halangan di map. Dan nanti akan dilakukan sequence terhadap map.

      Ada beberapa tipe bound :
      • normal, menghalang dari kedua sisi
      • oneside, menghalang dari satu sisi saja
      • count, seperti normal tetapi hanya bisa di hit sebanyak N kali, kemudian halangan hilang
      • hollow, dapat ditembus dari kedua sisi, kemudian menjadi normal
      Sequence ada beberapa macam :
      • Rotate CW, putar searah jarum jam
      • Rotate CCW, putar berlawanan arah jarum jam
      • Flip, membalikkan map atas bawah

      Game yang lainnya, dikerjain pas ada challenge juga di GDI (Game Developer Indonesia), pas itu kayaknya temanya bola atau apa *lupa.
      Dan ini cukup renggang bikinnya sekitar seminggu atau dua minggu atau sebulan *lupa.

      Game puzzle sederhana, walaupun kalau main tidak baca instruksi rada agak pusing awal2nya LOL.
      Dan aku kurang tau ini game berhasil apa kagak jadi game puzzle, karena saya sendiri yang mendesign levelnya kadang - kadang pusing gimana ngedesignnya yang cukup menantang dan fun *swt, jadi cuman 20 level aja LOL...

      Dan dibuat dengan haXe tentunya...


      Circular Pong Clone
      Jika anda melihat ini artinya anda tidak ada flashplayer, silahkan di download dulu di http://get.adobe.com/flashplayer

      Mouse Position : Control Paddle
      R Key : Reset Game


      Testing upload swf pakai dropbox... di atas itu adalah game pong clone yang sudah teramat lama saya buat.

      Dibuat pas ada challenge di GDI (Game Developer Indonesia), dalam beberapa jam *lupa, kalau gak salah 2 jam atau 3 jam gitu dah...

      Baru prototype banget, kalau tidak salah saya buat pakai haXe dengan library nape untuk handling physicsnya.

      Untuk Reset, tekan 'R' aja... :D
      test
      one
      two
      three
      four
      five

      six



      How cool is that? ;)

      Dalam pembuatan spoiler di atas saya menggunakan bantuan library jQuery untuk mempermudahkan ngoding di javascript, sebenarnya tidak perlu menggunakan jQuery pun bisa, tetapi menggunakan jQuery mempermudah segalanya.

      Syntax Spoiler

      Pada saat saya menggunakan spoiler, yang saya tulis adalah seperti berikut (contoh hasilnya ada di atas)
      <spoiler data-title="test spoiler">test
      <spoiler>one</spoiler>
      <spoiler>two</spoiler>
      <spoiler>three
      <spoiler>four
      <spoiler>five</spoiler>
      </spoiler>
      <spoiler>six</spoiler>
      </spoiler>
      </spoiler>
      
      Dan jika anda bernanya, lho di html kan tidak ada tag spoiler, jawabannya, iya, benar anda dapat seratus :D, karena itu aku buat sendiri :p.
      Sebenarnya anda bisa memakai tag seperti div, atau blockquote untuk membuatnya, tetapi kalian harus memberinya class tertentu supaya bisa dibedakan dengan div atau blockquote yang lain.
      Karena itu merepotkan, aku tidak memakainya :p.
      Dan attribute data-title itu digunakan untuk memudahkan memberi judul pada spoilernya, dan tentunya opsional.
      Dan nantinya aku akan memberi tahu bagaimana cara membuatnya persis seperti yang aku punya.

      LevelIntermediate
      Type
      • Dynamic Programming
      Requirement
      Similar
      Dan sekarang aku agak meloncat dikit ke bagian agak sedikit advanced, yaitu DP.
      Dan jika ada kode, saya akan menuliskan dalam bahasa C++. (seharusnya kode untuk Pascal tidak akan jauh berbeda)

      LevelIntermediate
      Type
      • Dynamic Programming
      Requirement
      • Recursive Function
      • Multidimensional Array
      • Big O Notation
      Similar
      • Knapsack Zero One
      • Matrix Chain Multiplication (MCM)
      • Longest Increasing Subsequence (LIS)
      • Coin Change Problem
      LinkBebek Untuk Teman
      TypeMath
      Requirement
      LinkA Tambah B
      TypeMath
      Requirement
      LinkProgram Pertamaku
      TypeInput/Output
      Requirement
      Sekarang kita akan membahas tentang input output string / array of char di pascal maupun di C++.
      Terkadang untuk urusan string agak rada tricky, dan sering ngebug, sekarang kita akan membahas cara yang baik dan benarnya.

      LevelBeginner
      Type
      • I/O Processing
      Requirement
      • Basic Program Structure
      • Program Flow (if, for, while)
      • Procedure & Function
      • Variable
      • Input & Output Integer
      • Input & Output Char
      Similar
      Post pertama tentang competitive programming, sekarang kita akan membahas hal yang paling basic dalam programming, terutama dalam dunia competitive programming yang mengambil input dari terminal atau command prompt.

      LevelBeginner
      Type
      • I/O Processing
      Requirement
      • Basic Program Structure
      • Variable
      Similar
      Jadi sekarang aku lagi belajar memakai jQuery, dan langkah pertama yang aku pengen coba adalah membuat spoiler di blog aku, secara belum ada spoilernya...

      Dan beginilah hasilnya... aku memakai jsfiddle untuk mencoba - coba eksperimennya, dan hasilnya seperti berikut.



      Dan saya merasa cukup senang dengan hasilnya, dan akan segera mengimplementasikannya ke blog saya ini.
      Tutorial akan datang nanti, so stay tuned.
      alijaya. Diberdayakan oleh Blogger.