Ik-Jung Kim (김익중 in Korean), a senior programmer at Neowiz Games, discussed about developing a fast engine that reduced risks in game development at International Content Creator’s Conference (ICON) 2009 in Korea. Kim emphasized the importance of structured programming not only for development but also for the maintenance purpose.
■ Advanced Engine Does Not Necessarily Work
"I can’t name names but there was a game that used a well-known commercial game engine but it had to rewrite network module just before the launch,” said Kim.
An advanced engine doesn’t necessarily help to build an architecture that ultimately works with your game. In this case, even after they inked an international publishing deal they had to rewrite the network module to bypass NAT because P2P module doesn’t support NAT.
■ A Game without Architecture is nothing but Garbage
"Usually codes that a student writes just run the game. They are typical C codes. Programmers in the field definitely don’t appreciate them,” Kim said. For the first part of his speech Kim allocates some time to address issues that prospective programmers face with. A crucial issue is a lack of basic architecture in their portfolio. Without a philosophy portfolio is nothing but a series of images.
Structured programming makes easy to maintain a game.That’s the main difference between codes used in commercialized games and codes written by amateur students.
■ Three Basic Architectures
Kim categorized basic architecture into 3 groups: game application layer, game logic layer and game view layer.
1)Game Application Layer: processes Windows messages since a games is apart of Windows program
2)Game Logic Layer: contains game contents
3)Game View Layer: displays game screen by using DirectX
Such ideally categorized layers act independently without influencing one another. This categorization is something missing in a student's portfolio.
With clear basic architecture it is easy to convert according to platform. Whether a platform is based on PC or mobile, it makes possible to convert fast. Therefore it is necessary to take other platforms into account when developing.