Difference between revisions of "GameFilter"

From The Battle for Wesnoth Wiki
m (Hide historical instance of "Subversion" from mediawiki search to avoid false positives.)
 
(One intermediate revision by one other user not shown)
Line 24: Line 24:
 
** Player can add filter options to easily find games the player is interested in. Some filtering criteria can be game type, map size and type, number of free slots/players, etc.
 
** Player can add filter options to easily find games the player is interested in. Some filtering criteria can be game type, map size and type, number of free slots/players, etc.
 
** When I was working at NHN Corporation, I developed a similar room-searching filter for the online poker game products.
 
** When I was working at NHN Corporation, I developed a similar room-searching filter for the online poker game products.
 +
*** Usage: player can customize one to three filter options
 +
*** Categories: game rule, betting rule, betting money, maximum number of players
 +
*** Outcome: games that match more filter options were shown earlier in the list
 +
*** Reaction: Satisfied! 7 variations of poker games had their custom categories and work perfectly.
 +
*** Product reference: can check out the poker game products at [http://www.hangame.com http://www.hangame.com], but may have difficulties due to language.
 
* Timeline (roughly)
 
* Timeline (roughly)
 
** 3 weeks: research and code review
 
** 3 weeks: research and code review
Line 29: Line 34:
 
** 2 weeks: implementation and documenting
 
** 2 weeks: implementation and documenting
 
** Rest: debugging, testing, improving
 
** Rest: debugging, testing, improving
* Technical details
+
* Technical details (Just an example based on my previous project. Need more research to apply on Battle for Wesnoth)
** Sort the rooms by the priority of the accuracy with the player filter options.
+
** Game-Option string: A string that stores the option setting of the game. Data received from the server.
 +
*** ex) AABBBBCCCDD
 +
**** AA: game type
 +
**** BBBB: scenario number
 +
**** CCC: map info
 +
**** D: max players
 +
** Filter option retriever: retrieves the players custom filter option and generates a key to compare with the game-option string.
 +
*** ex1) scenario number - 1537: generated key - 153700000
 +
*** ex2) max players - 4: generated key - 4
 +
*** ex3) game type - free for all(12), map info - 100x100(191): generated key - 12000000000, 19100
 +
**** keys are generated separately to count the matching options number.
 +
** Compare function: two games are given as arguments and return the game that matches more player custom filter options.
 +
*** filter option retriever is used to know what is trying to be match.
 +
*** if the two games has the same number of matches, they are compared with the default comparison function.
 +
** Bottom line: Perform a single sort with the above compare function!
 +
** If the compare function is implemented generally, it can be encapsulated. It will work well even on future changes in the options once the filter option retriever is updated.
 
* My gains
 
* My gains
 
** First step into the open source community.
 
** First step into the open source community.
Line 40: Line 60:
 
* IDE, Tools
 
* IDE, Tools
 
** Visual Studio .Net 2003 - usually developed Windows games in the past
 
** Visual Studio .Net 2003 - usually developed Windows games in the past
** Subversion
+
** Sub­­version
  
 
[[Category:Summer of Code]]
 
[[Category:Summer of Code]]

Latest revision as of 01:06, 21 March 2013

Basics

  • Introduction
    • My name is Ben Hwang. I am a senior college student at Yonsei University, Korea majoring computer science. During year 2001 ~ 2005, I have actively participated in the ACM-ICPC and advanced to the World Finals on year 2003 and 2005. On year 2006 to 2007, I worked at NHN Corporation, which is one of the biggest IT software company in Korea, as a game developer. The long time contest participating gave me a habit to think up with efficient algorithms and to consider the boundary limits. I am especially comfortable writing the algorithms with either c or c++.
  • Contact Info
    • Email Address: ben_DOT_hwang_AT_gmail_DOT_com
    • irc: BenHwang
    • Awake time: UTC 00:00 ~ 15:00
    • No problem with communicating by phone
    • Preferred contact time by phone: UTC 09:00 ~ 15:00
  • Summer of Code
    • This is the first time for me to participate in an open source project. Although It is a little bit late, I would like to join the open source community and learn a lot and contribute a lot.
  • Experience
    • Worked as a game developer for more than 4 years.
  • Communication skills
    • Fluent in both written and spoken English.
    • Lived in the US for 7 years.

Project

  • Concept
    • Player can add filter options to easily find games the player is interested in. Some filtering criteria can be game type, map size and type, number of free slots/players, etc.
    • When I was working at NHN Corporation, I developed a similar room-searching filter for the online poker game products.
      • Usage: player can customize one to three filter options
      • Categories: game rule, betting rule, betting money, maximum number of players
      • Outcome: games that match more filter options were shown earlier in the list
      • Reaction: Satisfied! 7 variations of poker games had their custom categories and work perfectly.
      • Product reference: can check out the poker game products at http://www.hangame.com, but may have difficulties due to language.
  • Timeline (roughly)
    • 3 weeks: research and code review
    • 2 weeks: structure the algorithm
    • 2 weeks: implementation and documenting
    • Rest: debugging, testing, improving
  • Technical details (Just an example based on my previous project. Need more research to apply on Battle for Wesnoth)
    • Game-Option string: A string that stores the option setting of the game. Data received from the server.
      • ex) AABBBBCCCDD
        • AA: game type
        • BBBB: scenario number
        • CCC: map info
        • D: max players
    • Filter option retriever: retrieves the players custom filter option and generates a key to compare with the game-option string.
      • ex1) scenario number - 1537: generated key - 153700000
      • ex2) max players - 4: generated key - 4
      • ex3) game type - free for all(12), map info - 100x100(191): generated key - 12000000000, 19100
        • keys are generated separately to count the matching options number.
    • Compare function: two games are given as arguments and return the game that matches more player custom filter options.
      • filter option retriever is used to know what is trying to be match.
      • if the two games has the same number of matches, they are compared with the default comparison function.
    • Bottom line: Perform a single sort with the above compare function!
    • If the compare function is implemented generally, it can be encapsulated. It will work well even on future changes in the options once the filter option retriever is updated.
  • My gains
    • First step into the open source community.

Practical considerations

  • Languages
    • Fluent in C/C++
    • Beginner of Python
  • IDE, Tools
    • Visual Studio .Net 2003 - usually developed Windows games in the past
    • Sub­­version
This page was last edited on 21 March 2013, at 01:06.