

Demo Protoype: Vilom Chronicles


So sometime ago for my university study we were tasked to build a game. After some deliberation we decided to build a game which was a plat-former where one plays as the evil character at first corrupting the world and doing evil things. Once one finished the evil part you would start with the good part of the game.

The game would be balanced in such a way that if you as the evil player decided to make things reaal easy the play-through as the hero character would be easy as well. The harder you made it on yourself the harder the next play-through would be. But there would also be some small things that you could make your life easier right now as the evil character but you'll hit a difficulty spike in your hero play-through. As such we would have a dynamic difficulty curve which is a concept I find interesting to work on. We built a prototype in GameMaker and I have decided to publish both an .exe of the game and the source code here for all to enjoy or learn from, including myself.

Some things to keep in mind. This game was a prototype, we purposefully cut corners where we could to get this thing on it's feet as fast as possible. We had a 5 man team working on this game, where we had 2 lead programmers, 2 assisting programmers, 1 main art designer. Most of the assets used were ripped from fighting games though as we did not have the time to produce the content ourselves. We had a four week time-frame to build this prototype.

I have created a Google Drive folder which holds both files HERE

I've added two images in the following spoiler for people who want to take a peek and the game before downloading anything:

A part of our course was to make a list of proposed improvements. Here they are for those interested.
Proposed improvements

Improving the combat
The combat system should be modified heavily. Our original intent was that each fight was a difficult fight however we noticed that most people experienced this as a hack and slash game instead. Things to add to relieve this issue:
Combo attacks: The ability to make combinations where consecutive attacks have different effects.
AI improvements: The AI’s combat state currently is not great. It should gain blocking modes and dodging abilities to. Possibly blocking everything when the player attacks when it isn’t a counter or isn’t in an attack/recovery state itself. Along with a more interactive design. Currently the AI is purely range and random dependent. Instead it should move to detecting the players common habits and countering them effectively.
Block break: AI and Players alike should gain attacks that can break through blocks. These moves would also have allot of punish frames along with them to make them somewhat risky.
Making attack more meaningful: By changing the frames and hitboxes of each attack, they can be applied in more specific situations and have more meaningful usage. This also means that attacks don’t feel spammable anymore because of the change of frames.
All of these along with more animations to clarify what actually happened.
These improvements would serve to slow down the fights in terms of speed. As such we may need to re-balance damage and health values across all objects.
This would make each fight more intense as a single enemy would become more difficult to defeat in general.

More clarity in corruption
Whenever initiating the corruption it would not be too obvious, we realized this through that most people either didn't notice the gameworld changing or they didn't identify why it changed correctly. So to improve the clarity we would aim to add more animations to it. Starting with a clearer animation to the the initiation of the corruption, but also it’s affects on the world. When certain things are corrupt enough modify the lighting system the make this more clear, add in moving tentacles or other clear representations of corruption. The trees start moving on their own and swiping at its enemies. Along with that we would modify the checkpoints destroy and capture animations. To promote the effects of them more. This should improve clarity on the corruption mechanic.
Improving the characters
Based on playtest we saw Vairl’s teleport was rather useless in the current version. The actual teleport should be sooner and further to improve how much of an impact it has.
Tanis requires some additional moves. Tanis should receive a special attack and a dodge ability just like Vairl has (fireball and teleport respectively). This makes both characters equally as fun to play as they both have their unique mechanics.
We also noticed that the use of the fireball spell was a dominant strategy. To decrease this we could add in an additional resource to manage the use of these type of abilities. Ideas for regenerating this: kills, on checkpoint capture, on checkpoint destroy or on item use.

Rewarding the combat
We noticed that some players would just slip past all the unnecessary fights. Adding in gold or experience systems as a reward for defeating enemies turn this more into a decision for the player. Risk health but gain more gold/experience. Another way might be to stimulate this, is that enemies can anti-air, making it hard to move past enemies without taking damage.

Stamina modifications
Several players reported frustrations with the stamina system. Stamina should start regenerating sooner. Instead of the current 2 seconds probably somewhere around ½ second. This would make controlling the player character better and resolve the complaints regarding not being able to continue combat due to an arbitrary bar and timer. Another solution would be changing the system by having a block and special move bar and adapting attack animations accordingly and game rules accordingly. Normal attacks don’t use any amount of the bar but can’t be spammed because if it does not combo, the player will trade a hit with the enemy when trying to attack again. To complement this system, normal moves should be cancellable in special moves. For example, a normal move can be cancelled in a teleport when the player tried to attack but recognizes that an attack is incoming. Also, enemies can block attacks easily.

Health systems
Some players abused the health regeneration giving the player the ability to face-tank most damage without consequences. Health systems should move to a more punishing system. Regeneration should be limited instead of infinite. To mitigate the infinite regeneration we made it incredibly slow but this still doesn’t give the desired challenge aspect we were looking for. Ideas for limiting this was that you would regenerate health on: kills, on checkpoint capture, on checkpoint destroy or on item use.

Locked boss battles
Some players would run away from boss fights, which on rare occasions caused unintended scenario’s for in the AI and the boss’s moves. Whenever a boss battle starts the boss arena should become locked to prevent the player from running too far away and then regenerating all his/her health and stamina. This would increase the challenge aspect that we are trying to create, as well as increase the sense of satisfaction of defeating the enemy.

GUI improvements
As some players were struggling with the stamina bar and on rarer occasions the health bar. Moving the health and stamina of the player to a different location on the screen and making the bars themselves larger would improve the clarity of what these bars represent as a small decrease on the bar will appear larger compared to the 100 pixel bars we used. As well as move the health from a boss down to the bottom of the screen and extending it out to make it more clear that a boss in the fight.


I'm will probably sometime in the fututre use the base concepts here to create a couple games. When we were working on this game I was working on several ideas for the game's design where I also had a MOBA-like concept made which I thought was somewhat interesting.

If anyone ends up downloading either versions(the .exe or the .gmz) please do let me know.
Last edited:


I intend to add many comments to the code we generated for the prototype so the .gmz is easier to go through then it's current state. I will probably start working on that somewhere next week.


I've realized that I had the wrong source code in the google drive.

I have updated it to have the correct version. Still looking into how and when I want to update that source code with more comments.