Silverfall: Earth Awakening is a stand-alone extension for Silverfall, a hack ‘n slash taking place in steampunk-ish world, where players could choose between nature and technology.
The great upsides of this internship were that
- I was the only programmer beside my lead to be present for the whole production of the project; which meant I got to work on a lot of parts of the game.
- Earth Awakening being an extension on a mature, legacy engine; these features were very game oriented rather than engine oriented; and this got me to collaborate tightly with game and level designers.
- the team was about 15 people in a studio of 60; which meant I was very aware of what was going on.
The most prevalent elements I worked on were:
- Object Customization :
- The extension introduced a traditional crafting system which allowed player to make their own equipment and customize their color: I co-designed the data structure to supported and implemented logic for the crafting stats. I also helped implementing the realtime pre-visualisation which showed the equipment (including skinned armor) on the player character as it stood in the world.
- It also added an enchantment system; which traded resources for magic effect on equipment, albeit with some risk/reward; enchantement being slightly randomized, irreversible and not stackable.
- The most interesting feature to me though was the item demonization: players could attach gems to their equipment, and these gems contained demons who would XP up as you used the weapon they were on . This would make their effect on the the weapon grow stronger and, as they crossed XP thresholds, they would unlock side quests
.
- Object Trading in Multiplayer: this got me more involved in the lower parts of the engine as we had to make a solid message protocol for updating, accepting and validating the trade.
- Character templates: I implemented the flexible data structure to allow game designer to define character template with customizable gender and races; re-using part of the crafting code and logic for it.
- UI:
- Player customizable UI : this was a tiny but complex addition to the UI system, as we turned a static UI into a dynamic one that player could modify at will.
- Revamping of the Skill Tree and Quest Log: this got me to work with the game designer/writers as well as with an illustrator on a short contract to help her extract modular aspects of her work.
I also:
- discovered the power of providing versatile tools to designers through scripting hooks
- got to witness a project manager navigate through tight resources; which was fairly formative.
Tools: C++ and proprietary script language on an in-house engine
Side-notes: