Event driven architectures and concern driven programming in roguelike computer gaming
at the ICT Innovations Conference 2012. Here's the abstract and the keywords:
Abstract. Roguelike games are challenging single player games driven by a multi-agent environment. The game complexity stems from a mostly randomly generated world interacting with potentially thousands of independent agents trying to simulate a believable world. Traditionally roguelike games use REPL (read-evaluate-print-loops) as the standard architecture in order to handle the turn-based game approach.
This practice talk shows how the combination of event driven architectures with a variant of aspect oriented programming (called concern driven programming) simplify the architecture and allows to reduce many complex programming challenges to very simple and locally manageable tasks. This allows for much more complex game designs and reduces maintenance costs. The talk will illustrate the concepts with examples using two real world game designs that highlight the different architectural approaches (the hugely successful game ADOM using the REPL-approach and its successor ADOM II using a much more efficient event driven architecture).
Keywords: event driven architecture, aspect oriented programming, EDA, AOP, concern driven programming, roguelike, ADOM, ADOM II, software engineeringIt's from 12-15 of September in the beautiful town of Ohrid in Macedonia. If you by chance happen to be there I'll be happy to meet with you.
Sometimes you are lucky when submitting conference papers and this time I'm very much looking forward to preparing the slides :-)
Not sure whether this is related (your abstract is quite generic and could mean many things), but the interesting aspect of roguelike programming is that, although properties of objects come from these objects themselves, they are often changed by the environment in unpredictable ways (rings of strength enhancing strength, rings of flying providing the ability to fly to the wearer, special weapon suffixes more efficient against specific enemies, cancellation spell removing abilities, temporary buffs). Also traditional class-based hierarchies do not fit (like ADOM's black torc which is both a wearable and a weapon, or monsters which combine properties of many other, unrelated monsters). My game "Vapors of Insanity" is based on a extension of the Object Oriented paradigm which has been designed to deal with things like this: objects can modify other objects by providing additional methods to them (like the examples above, but the paradigm has been applied in many various ways). I don't know whether this approach is similar to your concern driven programming, aspect oriented programming, or any other named paradigm. (See http://www.roguetemple.com/z/vapors/vaporgs.php for more info)
ReplyDeleteSounds interesting. I wonder if ICT records the talks.
ReplyDeleteMake sure there's a podcast available somewhere! :D
ReplyDeleteI'm an SE person myself. Wish I could be there.
ReplyDelete