Evil Heroes

Background
Just before the end of the programming class in Accademia Italiana Videogiochi I had the honor to join the programming team of their project: Evil Heroes.

This game is an Action Role Play Game inspired from great classics like Diablo or Torchlight but our designer worked on several interesting features to make this game fun and unique.
I left the development of the game and I can't talk about the game design so I'll describe only the technical aspects. Our team became a XBox developer and we had a Xbox dev kit, the game was, infact, aimed to launch on XBox Live Arcade.

I worked for this project for almost an year and during the development we changed many aspects of the game. This was a unique opportunity for me to work on a real game development.
The team was lead by our two teachers, who created the base technology, aided by some selected students.

The project, though, has been the base jump for our careers and many students joined and left the project continuously. In the end the key elements of the team left due to personal problems. The development stalled.

Technical Data
Name: Evil Heroes
Lead Developers: Alessio Greco, Dario Lucantoni
Student/Junior Developers: Enrico Moretti, Michele Giacalone, Michele Cuomo, Ruggero Riccobene, et all (many join and left before I become part of the team, I wrote only my team member's name)
Lead Artist: Enrico Cempanari
3d Artist: Gabriele Mastrogiovanni
Languages/Technologies used: C#/XNA (first prototypes), Unity3D (later versions)
Platform(s) Xbox 360 (planned to release through XBox Live Arcade)
Releases: none available
License: All rights reserved to Accademia Italiana Videogiochi
The Game
While an hack 'n slash usually don't rely much on the story this game have a nice background... but I can't spoil anything! Believe me: the story was fun.

The original idea was focused on the multiplayer component. You can play the game single-player but the major fun is play with friend to defeat the elite bosses and the twisting puzzles found on the way.
The characters were designed to have a specific role: Damage Dealer, Tank, Healer, Debuffer and so on. The game is harder on Multiplayer and designed to give a better challenges to the players and adjust the difficulty based on how many player and which class they choose.

Development and Technologies
At the beginning our lead developers and teachers created an engine from scratch: the Grim Engine®. Since our target was XBox Live Arcade the engine was built entirely on XNA.
The engine featured some really cool techniques: double buffering and multi-thread rendering, advanced shaders (HDR, blurs, etc), integration with the BEPU physics engine and many more.
I and the other students helped the creation process of the engine itself and the related tools (the editor, the asset pipeline, etc). This engine reached a good state with a working editor capable of creating real levels (full of audio, physics and some gameplay elements). But creating an engine by our own was a blood bath: it took two years, the work of many people and due to fragmentation (of the students who joined and left the project) in the end the time required for refactoring was more the the time spent on developing the features.

The engine was worthy but too big for our forces. In the end we switched to Unity3D.
Unity3D have everything we already had plus everything we need.
And hard but inevitable choice.

All the following material refer to the Unity3D version, I don't have any screenshot/movies from the Grim Engine® version.

Physics
One of the most important requests is having an interactive and dynamic world. Not an easy task.
Most of the elements in the level are animated by the physic as you can see in this brief video. The bookshelf drop papers, the skeleton explode, the candelabra is heavy and can resist a few hits but everything is no match for our power (mostly a fireball. Can you create a RPG game without a fireball?).

There are no gameplay elements apart the crystals you can collect from the ground.
Oh yes! You can kill the skeletons! Every RPG have at least billions of undead to slay, isn't it?
A skeleton fall, another crystal for our hoard!

On this screenshot there is an hidden area: the wall to the right has been destroyed by our fireball revealing the treasure.
The secret area

Multiplayer
The game aim to heavily rely on the multiplayer component. One of the best feature we created is the local co-op. Attaching a pad create another character and this build was ready to work up to four player in the same screen. One of our previous task was to create a proper co-op via Internet. Unfortunately we had no time.

The local co-op work in the same screen: when a player go too far from another, the camera zoom out until a limit. There is a limit in the maximum distance between two players, beyond that the player is prevented to go trough.

Random Level Generator
This is the biggest feature I made. I had the task to create a proper random level generator because the levels were designed to be modular and every piece of level can be attached to any other using the "corridors". The request was to create simple levels: some forks but no arcs, not too deep (for a design reasons: a fork too deep leads the player to explore dead ends too far and the arks has been avoided to let player explore most of the level without the risk to avoid important parts).

The level generator was designed to create functional levels on the fly: every time the player load an area this is randomly generated.
Here my level generator in action:

The level created is now ready to work: every piece of level include the assets, the enemies spawns, the first and last room (which move the player to the previous or next level).

The problem with this approach is that, even if random, levels looks like too similar. To overcome we used an hybrid approach: the levels are generated off-line (like 1000 levels per type of area) and then customized (a boss here, a puzzle there, and so on).

Sources
The game is still in development in the academy, I don't have any resource nor I have the right to distribuite them.
Look for their website if you want more informations: Accademia Italiana Videogiochi

A special thanks to Luca De Dominicis that gave me the permission to post these informations.

7 comments

Wall mount electric fire,If you are searching to buy a flare wall mount electrical flames then you have make a choice from the available alternatives on your own. In order to take into consideration reliability and functional capacity you would wish to decide of your basic flame power flames. They search so sensible from time to time, that folks never have a propensity to realize that what they're looking in, basically it is not a real fireplace yet any holographic version. Your wall mount electrical hearth is merely a great supplement as well as alternative to your currently present heating programs. Now this fact by yourself anxious some work in that, as you've to accomplish some sizes and you have to discover the most effective product that might load your wishes.

This is the best comment from a spam bot I received so far.
It's the first that make little sense.

I still don't get what's the purpose of these fake comments but well... a cozy fireplace is a nice image to have now that is winter.
Oh wait! I have a cozy fireplace in my own house!

Check out our forum

http://pictonicstudio.com/forum/index.php?PHPSESSID=nlv1k9g2mjre8mbd11ojmgaku5&board=1.0

Definitely. Too many spambots.
I don't understand the above comment anyway. No link, no suggestions... why a bot should write such comment?
Are we facing the uprising of bots who achieved self-knowledge and instead of ugly ads they like to spam... poetry?

78% of the bots on our forum spam about Viagra. lol

Wooow... less than 100 comments!!... I have to take advantage of this and write my comment on your site... ok... what should I write??... mmm, I don't think my criminal history would help me gain your sympathy, uh?? haha... anyway, I just want you to know that I'm sure you're a incredible blogger and writer... so, thanks for that.. now I know I'm not a robot. well, this comment is gettin' too long to be read, so i'll stop now...

Wow! A non-robot!
I'm flattered by your comment. You made my day.
So many bots... I was thinking to became a cyborg.

Add new comment

Comment Text

  • Allowed HTML tags: <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
To prevent automated spam submissions leave this field empty.
CAPTCHA
Answer the question and don't bother me with spam.