Hero Academy! Can we please have more information?

They’re hinted at/ suggested on some graphics I’ve seen… Not sure if I’ve ever seen one in game/ on any screenshots from the game but hey… The premise is there.


Love the idea! Well written and thought out.

Had an idea that ties in the AL… transmuting Hero Crystals.

Common/Basic crystals can’t be turned into Elemental or Origin, BUT you could change crystals within one of the four Archetypes.

So for example, you could transmute an Origin Wonderland crystal into an Origin Camelot crystal. Or a Fire Crystal into a Nature crystal.

(They might want to not include the origin crystal in this, since as you said leaving people with that 0.2% chance and having this as their gateway to a guaranteed hero is most profitable…)

But I could see people saying “Blargh I’ve got 7 Richards saved and I would much prefer to be pulling for a vivica right now…” … so that would be a good way to tie in AL and maybe help to monetize the feature in a roundabout way since AL already has a gem cost.


Thanks for the warm feedback for how I would go about implementing Hero Academy and Advanced Training Camp. Truth be told I think it is probably one of my longest posts ever and so am surprised so many have read it. Wondering whether I would have perhaps been better posting it in ideas section for a way of implementing it given everything is still in the dark.

I’ll confess that I reckon there might be an easier way to redo the Hero Academy I laid out as in truth this implementation idea is actually a heavily modified version of idea I had awhile back as part of an exercise to try think of alternative ways mobile games could be monetised without a direct pay-to-pull or pay for loot box mechanic that I was toying with after the loot box regulation posts as depending how that pans out internationally publishers may need to start looking for alternative revenue sources but anyway this particular idea was around how a game could be formed around a sort of Patreon style monetised system and wasn’t specifically for a puzzle RPG game (indeed in that the Crystals were more like Pokemon Go’s candy which had uses elsewhere in game also) and in that form as the game started from scratch with that system in mind it was a lot more straightforward whereas the modification to a pre-existing game that honours its current monetisation strategy added some complexity though I’m sure with some thought of building the idea from scratch with E&P in mind first, rather than adapting it from another idea could find ways of simplifying it.

Yeah I could have sworn I’ve seen previous artwork for 5* Trainer Heroes before but as I’ve never had one and not really paid much attention to the top brackets of Challenge Events I seemed to have assumed that was where they were but having re-looked at the infographics I see there aren’t high level trainer heroes in 1st loot anyway so I’ve no idea where I saw the artwork for them before but for some reason thought it was something official and may even be in code if not currently in use but if I’m wrong and there isn’t an unused 5* Trainer Hero in the code I don’t see why we can’t have one added, though for amusement sake I think a 5* Trainer Hero should have a different special to the others. Personally I’d like the special to be “If this special is used in a raid in Diamond tier and the battle is won a random trainer hero of the same colour is added to the player’s winning loot” with no other effects in the special as then people might be able to have some fun seeing if they can win some additional trainers in essentially 4 vs 5 or even 3 vs 5 matchups for some novelty…

Have been thinking for quite awhile on this one especially as the implementation I proposed separated the Season 2 heroes into their families for the Origin Crystals (though to make up for it significantly reduced how many Origin Crystals needed for a Season 2 hero compared to an event hero). Whilst naturally it is unlikely that event heroes will be anywhere near what the developers will probably do in the unlikely event they’d consider anything like what I proposed I think converting Origin Crystals would probably be a non-starter as it would allow people to craft a hero from an event gate they had never tried pulling for. If they could be converted I definitely could see P2W players putting all their dupes from say Avalon, Guardians and Grimforest towards crafting a Finley so they don’t have to ever pull at all from Pirates. As such making a hero from a gate you’ve never pulled from I can’t see a developer getting behind however if you need x number of other heroes from the same gate then at least people have tried and if they have dupes in enough quantities to craft a specific hero then there is a chance the player is close to a rage quit so at the least it is a release value to allow them to craft what they were after and keep them playing for another day…

That being said perhaps rather than have all Origin Crystals be specific to just families and that perhaps when you craft Origin Crystals 50% of them are specific to the family itself and 50% are either general Season 2 or Event Crystals of which some can be used generally towards a crafting but there would still need to be a minimum number of Origin Crystals specific to the family to ensure the player has tried at the specific gate for a successful crafting - still worth remembering that players can get lucky with using fewer crystals towards a random pull rather than a full crafting.

Converting between elemental crystals might be possible though there may need to be a penalty that has more crystals going in then coming out to ensure there remains an advantage to use heroes of the same colour to chase a hero of that colour rather than any hero that and there would need to remain a use case for Basic Crystals which allow you to also chase a hero of a different colour but in this case you get more crystals from the conversion so that it isn’t completely redundant.


Hey @MysterySpin contrary to what some think on this forum, your long posts are great and insightful. Don’t let anyone else tell you otherwise

There’s no such thing as a perfect post and all you need to know is that we enjoy reading your posts


What is it?
When will it be here,?
What does it do?

@Dai007 Hero Academy has still never been in Beta, so we have absolutely no information on what it does or when it will be released.

The only thing we know is this:

Everything else is just speculation at this point.


As much as i like your idea in an accademic kind of way, i think it is unrealistic Small Giant develope anything close to that.

Not because it’s too much generous on F2P or too less captivating for P2W, but simply because it’s too much code-complicated for the cashflow it will bring to them.

I honestly don’t think they will ever do something like that not even for some exclusive cash only content, let aside some potentially free in game mechanism.

This is not implying i do not apreciate your effort and your imagination.
I hope this could be somewhat inspiring for them, and maybe take some ideas here and there.

At least seeing how players daydream and proposing ideas about this building should tell them how much is important for us.


OK this post is going to be boring for most people but given that I’m web developer and programmer the above comment is just too much of an open invitation to ignore. Frankly I couldn’t disagree more with the assessment, when proposing it I did so in such a way in which I knew from my experience as a programmer would be relatively straightforward to program. Now whilst I said at the beginning of my post that I was putting a good dollop of wishful thinking into it (as opposed to my solution I posted in the 3 New Years Solutions post) because I didn’t think the devs would ever be this generous – code-complexity is effectively a non-issue as it is relatively straight forward.

I will warn up front that this is not my best work as I am currently ill with tonsillitis on medication that makes me both drowsy and taking frequent sprints to the loo as side-effects. Furthermore this has been done at speed (about 3 hours) to illustrate how a quickly a draft solution or first iteration could be cobbled together to work. I had fully intended to do it as pseudo-code (Pseudocode is not actual code for a computer but description of the algorithms that a layperson can follow and that a programmer can easily translate into the programming language they are using) however due to the drowsiness from my meds and that recently I’ve been working in Java a lot and not done pseudo-code in a while it so that in combination with my drowsiness from the medication means this rather veers off into some Java-esque pseudocode that becomes more and more java-esque as I go though hopefully for those that remotely care to look at it can follow most of it - also forgive the formatting of this post, spent far too much time already on it that I’ve decided this will do. However if I were not currently ill and drowsy I could easily have this refactored into better code and properly tested and integrated into existing code in less than a week in any of Java, Python, Visual Basic, C# or C++. Suffice to say it is not particular complex or challenging code – it’s rather simple that a first year CS student could even implement – that means I totally disagree with the idea being “too much code-complicated,” it is absolutely nothing compared to other projects I’ve been on.

I’ve tried to make these particular solutions as self-contained as possible as naturally I haven’t seen the game’s code but I wouldn’t have too much trouble adapting the solution to it. The only things I will assume is that there are methods to get a hero’s Element, Class, Rarity and Origin (As the game allows us to sort heroes by these attributes it is a safe assumption that there is a method to retrieve that information for a sorting algorithm to use) and that there methods for filtering the hero list by Rarity, Element and Class (Again a safe assumption as in the Challenge Event, Raid Tournament or Class Quest hero selection screens we often see our heroes in a way that are either selectable or greyed out as a result of one or more of the Rarity, Element and Class attributes). In both case as there are existing features in the game using such functionalities it is a safe assumption there are existing methods for them which out of good coding practice I will reuse.

I will also focus on just the coding for the Hero Academy and Crystal Chamber Summons and Crystal Crafting as they’re the newer ideas whereas the proposal for the Advanced Training Camp doesn’t require much more than giving new input and outputs within the existing way that the Training Camp already operates.

Keeping track of Hero Crystals in the Inventory

SGG will have their own way of implementing new items into their inventory system so this would change for their own implementation purposes but so that all the pseudocode solutions below work I’m going to keep track of Hero Crystals in the Inventory in the form of a dictionary that I can send the name of the crystal as a key to and it will return the current numbers of those crystals I have available.
As such the following dictionary would need declaring for use in inventory:

<string, int> crystalDictionary

This dictionary will look something like the following in terms of data it holds (Crystal Type, Number)
(Fire, 53)
(Nature, 20)
(Pirate, 50)
etc etc.

Hero Academy

Coding for hero academy now.

Skim ahead notice: Everything from this point up until the next bold segment after the GemSkipCost() method is nothing new (except for the haHamCosts and haTimeCosts dictionary declarations) specifically relating to Hero Academy but essentially encodes what all the TC, Forges, Alchemy Lab and Hunters Lodge do in that is a way of implementing their building, researching and skipping gem costs – none of this is new to Hero Academy implementation I propose and SGG will have their own ways of implementing it and this has only been added as invariably someone would accuse me of overlooking it if I don’t, despite it being a relative non-issue given how many other buildings they have already coded these things for. As such sensible path is to skip ahead to next bold part and not waste your own time on something SGG will already have done a version of.

The class for the HeroAcademy, please note I have deliberately omitted code for ensuring there is only 1 Hero Academy that can be built as there are various ways it could be done ranging from Singleton design patterns to creating checks each time a new instantiation request is made but regardless SGG will already have a way they use for the likes of Alchemy Lab and Hunters Lodge so won’t presume to force a particular solution.

 Class HeroAcademy
Int heroAcademyLevel = Integer variable for current level hero academy has been built to.
heroAcademyLevel = 0  *Sets initial Hero Academy level to 0 (unbuilt)*
<int, int> haHamCosts = A dictionary of the ham costs for each hero conversion.  Supply key of the HA level of the recipe returns ham cost for it. (ie Supplying 7 as key returns the ham cost for level 7’s hero breakdown)
<int, time> haTimeCosts = Again a dictionary of time for a hero breakdown.  (As this is pseudocode and I’m assuming SGG already have a way of calculating and handling their building countdowns I’m just going to put time as user-defined data type for this but not bother with how it was implemented here – not looking to re-invent the wheel here.)
<int, int> haIronBuildCosts = A dictionary of the Iron costs to upgrade HA to the requested level.
<int, time> haTimeBuildCosts = A dictionary of the duration to upgrade HA to the requested level.
<int, int> haHamResearchCosts = A dictionary of the ham costs to research HA to the requested level.
<int, time> haTimeResearchCosts = A dictionary of the duration to research HA to the requested level.
*Sets the maximum level of the Hero Academy at 10*
Int Constant haMaxLevel = 10;
Int GemSkipMultiplier = Value set by SGG to multiply the remaining time to complete building or research by this number to calculate gem skip costs
Int currentActions = Number of actions being carried out by Hero Academy at the requested time.

 *Method for the UI to call to check the maximum level of Hero Academy so that if current level = max level then the button to build further levels is disabled and hidden*
 Int getMaxLevel()
 Return self.haMaxLevel

*Methods to call to display in UI or get info for the iron and time costs for building next level.*
*Returns the iron cost of building next level – (you can only ever build the next level)*
Int getIronBuildCosts()
return self.haIronBuildCosts[self.heroAcademyLevel + 1]

*Returns the time duration of building next level – (you can only ever build the next level)*
time getTimeBuildCosts()
return self.haTimeBuildCosts[self.heroAcademyLevel + 1]

*Method to execute when build button is pressed, if user has enough iron and has a free builder it calculates time to completion so that the UI knows when it should be completed and disable the appropriate options until then or gem cost to skip is paid.*
time buildNextLevel()  
if getUsersIronTotal() > self.getIronBuildCosts AND allBuildersBusy == False:
completionTime = getCurrentTime() + self.getTimeBuildCosts
return completionTime

*Methods to call to display in UI or get info for the ham and time costs for researching a specific level.*

*Returns the ham cost of researching a specific level*
Int getHamResearchCosts(int Level)
Return self.haHamResearchCosts[Level]

*Returns the iron cost of researching a specific level*
Int getIronResearchCosts(int Level)
Return self.haIronResearchCosts[Level]

*Method to execute when research button is pressed, if user has enough ham and has free actions it calculates time to completion so that the UI knows when it should be completed and disable the appropriate options until then or gem cost to skip is paid.*
time buildNextLevel()
if (self.getHeroAcademyLevel() > 8 AND self.currentActions > 2):
alert(“Not enough free actions”)
else if (self.getHeroAcademyLevel() < 8 AND self.currentActions > 1)
alert(“Not enough free actions”)
else if (self.getHeroAcademyLevel() < 5 AND self.currentActions = 1)
alert(“Not enough free actions”)
if getUsersHamTotal() > self.getHamResearchCosts:
	completionTime = getCurrentTime() + self.getTimeResearchCosts
	self.currentActions = self.currentActions + 1
	return completionTime

*Method to calculate gem skip costs*
Int GemSkipCost(time timeUntilCompletion)
Return (convertSeconds(timeUntilCompletion – getCurrentTime)) * self.GemSkipMultiplier

New bits added specifically for the Hero Academy functions as I proposed

*Methods for getting the ham costs and duration of the particular transformation of hero to crystals for the given level*
Int getHAHamCost(int Level)
Return Self.haHamCosts[Level]

Time getHATimeCost(int Level)
Return Self.haTimeCosts[Level]

*Method for the UI to call when you enter the particular Hero Academy level so that a filtered list of the heroes you can use on that level can be presented to you when you go to choose the hero to trade in.*
List <Heroes> displayHeroes(int Level)
If Level < 4:
	*Ensures you can only select a 3* to use in HA 1-3*
	Return HeroList = getPlayersHeroes.FilterByRarity(“RARE”)
Else if Level < 6:
	*Ensures you can only select a 5* to use in HA 7-10*
Return HeroList = getPlayersHeroes.FilterByRarity(“LEGENDARY”)
	*Ensures you can only select a 4* to use in HA 4-6*
Return HeroList = getPlayersHeroes.FilterByRarity(“EPIC”)

*Method for determining what crystals you will get from converting selected hero for displaying in UI and for the HA to return once the *
<string, int> CrystalsFromHeroes(int Level, Hero selectedHero)
<string, int>CrystalsToReturnDict
String heroElement = selectedHero.getElement()
String heroClass = selectedHero.getClass()
String heroOrigin = selectedHero.getOrigin()
Switch Level:
	Case 1:
		CrystalsToReturnDict.put(“Regular”, 12)
	Case 4:
		CrystalsToReturnDict.put(“Regular”, 60)
	Case 7:
		CrystalsToReturnDict.put(“Regular”, 240)
	Case 2:
		CrystalsToReturnDict.put(heroElement, 10)
	Case 5:
		CrystalsToReturnDict.put(heroElement, 50)
	Case 3:
		if heroOrigin != “Season 1”:
			CrystalsToReturnDict.put(heroClass, 10)
			CrystalsToReturnDict.put(heroClass, 5)
			CrystalsToReturnDict.put(heroOrigin, 5)

Case 6:
	if heroOrigin != “Season 1”:
		CrystalsToReturnDict.put(heroClass, 50)
		CrystalsToReturnDict.put(heroClass, 25)
		CrystalsToReturnDict.put(heroOrigin, 25)

Case 8:
CrystalsToReturnDict.put(heroClass, 100)
	CrystalsToReturnDict.put(heroElement, 100)

Case 9:
	if heroOrigin != “Season 1”:
		CrystalsToReturnDict.put(heroElemental, 200)
		CrystalsToReturnDict.put(heroElemental, 100)
		CrystalsToReturnDict.put(heroOrigin, 100)

Case 10:
	if heroOrigin != “Season 1”:
		CrystalsToReturnDict.put(heroClass, 200)
		CrystalsToReturnDict.put(heroClass, 100)
		CrystalsToReturnDict.put(heroOrigin, 100)
Return CrystalsToReturnDict

*Method for converting hero into the appropriate crystals from the particular level*
ConvertHeroesTime(int Level)
If self.getHAHamCost(Level) > getUsersHamTotal()
Alert(“Not enough ham”)
heroToTransform = heroList.getSelectedItem()
completionTime = self.getHATimeCost(Level) + getCurrentTime()

Call upon whatever class you want to implement the countdown to activate here (SGG will already have an implementation and I have no desire to re-invent that wheel given this won’t be going into production and as mentioned before I’m ill so here comes a made up name to call whatever would do it in the game code already) that once it counts down to zero continues on…

countdownToTransformation(completion time)

*Get the crystals to add to the inventory*
crystalsToAddToInventory = CrystalsFromHeroes(Level, heroToTransform)

*Loop that goes through each entry in the crystalsToAdd dictionary and adds their values to inventory crystal values*
for (String key : crystalsToAddToInventory.keySet())
	crystalDictionary[key] = crystalDictionary[key] + crystalsToAddToInventory[key]

Crystal Pull Gates

Here is the pseudocode hybrid to show an implementation for the Crystal Pull Gates

Just going to do the methods for how a pull method could work for all the proposed gates, I’m not going to bother with code to show “potential results” as SGG will already have code for that sort of thing nor anything to post odds for if anything was learnt from my investigation of costume summons in beta that is not directly derived from the pull gate code anyway. Besides things like putting crystals into the summons would be no different to the way that Alchemy Lab you tap on the items (in this case Crystals) to add them for both summons and crafting – though ideally with a press and hold to continuously add a bunch.

Hero crystalSummon(List<String> crystalList)
String summonRarity = Whether it will be treated as a RARE, EPIC or LEGENDARY summon.

If crystalList.size() == 10
	summonRarity = “RARE”
else if crystalList.size() == 50
	summonRarity = “EPIC”
else if crystalList.size() == 200
	summonRarity = “LEGENDARY”

*Sorts the list of strings representing the crystal types used to make the summon into alphabetically order*
List<String> crystalListSorted = crystalList.sort()	

*Now for roll to determine whether the summon will be a special type of roll determined by the crystals*
Int summonTypeRoll = Returns a random number between 0 and 199
	If summonRarity = “EPIC”
		summonTypeRoll = summonTypeRoll / 4
	else if summonRarity = “RARE”
		summonTypeRoll = summonTypeRoll / 20

String summonCrystalType = A string representing the type of crystal randomly selected from the crystal list.
String summonType = A string representing the type of summon that will have been determined by the crystals.

*Using the list of sorted crystal types and the summon type roll (adjusted for the amount of crystals needed for each summons type)*

summonCrystalType = crystalListSorted[summonTypeRoll]

 *Using the summonCrystalType identify the type of summon that will take place*
switch summonCrystalType:
case Regular:
	summonType = “Regular”
case Fire:
case Ice:
case Nature:
case Dark:
case Holy:
	summonType = “Elemental”
case Barbarian:
case Cleric:
case Druid:
case Fighter:
case Monk:
case Paladin:
case Ranger:
case Rogue:
case Sorcerer:
case Wizard:
	summonType = “Class”
summonType = “Origin”

*Bonus Roll to see if a Rare or Epic summon gets upgraded or not*
Int bonusUpgradeRoll = Random number between 0 and 99 to determine if a Rare or Epic summon will be upgraded

If bonusUpgradeRoll < 10
If summonRarity == “EPIC”
		summonRarity = “LEGENDARY”
	Else If summonRarity == “RARE”
                   summonRarity = “EPIC”

*Forming the prize pool for the hero to be returned: Getting list of all heroes*
List<Heroes> prizePool = List of all heroes available in the game.

*Filtering that prize pool list by rarity*
prizePool = prizePool.FilterByRarity(summonRarity)

*Filter the prize pool by the crystal selected from crystal list*
If summonType = “Regular”
prizePool = prizePool.FilterByOrigin(Season 1 or HOTM)
else if summonType = “Elemental”
prizePool = prizePool.FilterByElement(summonCrystalType)
else if summonType = “Origin”
prizePool = prizePool.FilterByOrigin(summonCrystalType)
prizePool = prizePool.FilterByClass(summonCrystalType)
int SpecialClassPoolRoll = Random number rolled between 0 and 99 to determine whether the regular or special Class Summons prize pull is used.
If SpecialClassPoolRoll < 80:
	prizePool = prizePool.FilterByOrigin(Season 1 or HOTM)
prizePool = prizePool.FilterByOrigin(Not Season 1)
prizePool = prizePool.FilterByOrigin(Not HOTM)

*Sort prize pools by hero name*

*Prize pools are now filtered down to their respective heroes and sorted for the final roll to pick out a hero from the list.*
Int pullNumber = random number between 0 and 99.

*Determines the size of each segment to get a particular hero – ie if there are 5 heroes available in the pool then each segment is 20 (100/5 heroes) for an equal chance at each in pool*
Int prizePullIncrements = 100 / prizePool.size()

*Determines based on number rolled which segment of the list the rolled for hero is in*
Int heroNumber = RoundDown(pullNumber / prizePullIncrement)

*Finds the hero at that segment within the sorted list*
Hero heroWon = prizePool[heroNumber]

*Deduct Crystals from inventory*	
For crystals in crystalList
	crystalDictionary[crystal] = crystalDictionary[crystal] - 1

*Returns the hero to be added to your roster*
Return heroWon
Crystal Crafting

This is probably the easiest of the lot to implement as really you just need to select from a list of heroes that you want to try craft, supply the required number of crystals to meet the criteria and out it pops – for this method I’m just going to take it from the point that the hero you want to make has been selected in the UI to be passed to core system with setHeroToCraft method.

Class CrystalCrafting
Hero heroToCraft
String elementalType
String classType
String originType
Int elementalRequired
Int classRequired
Int originRequired
Int currentElemental
Int currentClass
Int currentOrigin

*Select the hero and get the requirements for the crafting*

setHeroToCraft(Hero selectedHero)
heroToCraft = selectedHero
self.elementalType = selectedHero.getElement()
self.classType = selectedHero.getClass()
self.originType = selectedHero.getOrigin()

If self.originType == “Season 1”
	self.elementalRequired = 400
	self.classRequired = 200
	self.originRequired = 0

Else if self.originType == “HOTM”
	self.elementalRequired = 800
	self.classRequired = 200
	self.originRequired = 200

Else if self.originType == “Season 2”
	self.elementalRequired = 600
	self.classRequired = 300
	self.originRequired = 300

	self.elementalRequired = 200
	self.classRequired = 200
	self.originRequired = 800

Method to add a crystal to the crafting by either one press or press and hold for multiple in a row – crystals are only added if they are a required crystal type AND the number of that crystal required is greater than the current total of that crystal. Each add increments the crystals in the crafting and decrements the crystals in your inventory

addCrystalToCrafting(String crystalType)
if crystalType == self.ElementalType AND self.currentElemental < self.elementalRequired
	self.currentElemental = self.currentElemental + 1
	crystalDictionary[crystalType] = crystalDictionary[crystalType] – 1
else if crystalType == self.ClassType AND self.currentClass < self.classRequired
	self.currentClass = self.currentClass + 1
	crystalDictionary[crystalType] = crystalDictionary[crystalType] – 1
else if crystalType == self.OriginType AND self.currentOrigin < self.originRequired
	self.currentOrigin = self.currentOrigin + 1
	crystalDictionary[crystalType] = crystalDictionary[crystalType] – 1

Method to craft and obtain hero

Hero craftHero()

*If the total crystals in each category meet the requirements for each category then return the hero you were crafting to be added to your roster* 
If self.currentElemental == self.elementalRequired AND self.currentClass == self.classRequired AND self.currentOrigin == self.originRequired
Return self.heroToCraft 

Returns all crystals in the crafting to you to start again/delete progress

Delete CrystalCrafting()
crystalDictionary[elementalType] = crystalDictionary[elementalType] + self.currentElemental
self.currentElemental = 0

crystalDictionary[classType] = crystalDictionary[classType] + self.currentClass
self.currentClass = 0

crystalDictionary[originType] = crystalDictionary[originType] + self.currentOrigin
self.currentOrigin = 0

I will not argue on you for coding, i must accept what you tell me as i don’t have any idea on how much actually could be hard or not to develope your idea.

What i did know is that Small Giant is the same company that gave to us:

  • recycled mob heroes (Aegir, Khiona, Valeria, all 3* event heroes)

  • recycled Atlantis portal (costume portal)

  • a tournament that is a slighly different version of an existing feature (raids)

  • a war that is the same story of the previous point (tournament)

  • a terrible Alchemy Lab rather then redo it from zero

I don’t see this “brand new feature” attitude in them.
Expecially what concern F2P stuff.

1 Like

Actually, I work in tech also. I thought your solution was pretty elegant and simple both in terms of ease for implementation and in terms of the user experience. I’ve seen something like this in other games. I don’t think it’s unrealistic at all.

I kind of see where @Elpis is coming from though. He/she is coming from a point of observing that there have been a lot of features that on face value seem to be pretty basic and mods of other features, but that gain them a lot of money. Whereas your idea, however elegant and awesome as it is, is harder to code than just recycling Alchemy Lab. In that sense, that was what he/she meant it was unrealistic. It wasn’t a skill valuation, but an effort/desire valuation.

Personally, I choose to be an optimist. Even if they go with half of your ideas, I’d be happy.


Yeah, you pretty much hit my point of view.

But maybe it’s not only an effort/desire matter, but even a “if it work once, it could work twice” matter too.

Minimal effort, minimal risks, if it kinda works it’s ok.

That’s pretty much what i think is their first choice of doing things.

And that’s why i expect season 3 formula to be quite similar of season 2.

The only difference here is that the only model we have for HA is the much reviled AL, I’d be surprised to hear anyone say it ‘works’. I see HA as still having room to find a model that does work

Regarding S3, I’m with you that I don’t have much expectation for anything to really break ground in terms of gameplay

I propose the HA should be based on a point system. Each type of 5* Heroes, has the following value:
Classic - 5pt
Atlantis - 10pts
Event - 15pts
HOTM - 20pts
Season Event - 20pts.

You feed them into a magic pot to accumulate points. To convert points to a new hero, the following points are required:
Classic - 10pts
Atlantis - 20pts
Event - 30pts
HOTM - 40pts
Season Event - 40pts.

Basically you need to sacrifice 2 heros of the same type to get an equilvalent hero. However, if you want a different hero, more heros would have to be sacrifice. For example, it takes 4 Classic heros to get a atlantis hero.

Process will take 7 days. Using 4* heroes can be sacrifice to speed up the process. Each 4* sacrifice will reduce 1 day.

This helps in getting rid of duplicate unwanted heroes. Also this turns TC20 into a food source for HA. Right now if you have many classic heroes, TC20 is useless except for storing food / recruits.


Does anyone else read the title of this thread each day and think, “no. The answer is no.”?

I sincerely hope that @Staff_SGG read @MysterySpin’s idea. This is exactly what I’m hoping for from the Hero Academy. I think that it would go a long way towards restoring some of goodwill for the game from players at all stages, and play preferences (F2P, C2P, P2W)


This isn’t bad and maybe gems could be optioned to lessen the heroes needed so x gems is one hero, etc. It not RNG enough for SG though and I recall someone posting that one or more staff loves chaos and randomness as a principle.

This would work though since you could still get better types like atl or event though I think the hptm and event are backwards as the event are hardest to get in general and likely they’d keep that order but I like this. It allows people to take the 10 to 15 or more and get useful heroes so it wouldn’t be endless either plus the time delay slows it down. And its not specific so you could get a atl but maybe tarlak or ursena or maybe atomos or mokarr. I have all classic dupes so it’d be great for me as I no longer spend and have only one hotm and one Atlantis in my main. Funny though I have one hotm, aegir from original appearance and one costume classic Richard in my alt, nearly as good summons wise as my main…lol.only other summoned is joon rest are tc20 including 2 joon dupes recently.

I think @MysterySpin has idea that is RNG enough but still ftp friendly while still allowing cash flow for SG. I have no problems with event heroes being left out. They are monthly chasers for huge revenues and small odds while the hotm odds are small it’s for 1 hero and there are a few places to possibly get one vs event heroes. Even first gen hotm and maybe if they feel generous some atl heroes and stagger them in order of release. Thee didnt come out at same time so they UK stagger them over a few months.

Nice idea hope SG reads this and sees the passion players have and how hard that is to get and keep. Also maybe they might implement the ideas so not as to make AL 2.0. Many are watching closely and SG knows this and may have put their foot in their mouth about including old hotm and changing hero’s from same rarity to another same rarity. But they know this and its likely why nothing solid was reported yet bit since once it is it becomes real and if its bad it’s finally really over for many players. I don’t need all the hero’s but like tc20 gives a decent shot art them its at least nice knowing I might get them. And my luck there has been decent

1 Like

I would love just one Evelyn :cry:

1 Like

Dear SG Staff,

in case you read this: It’s really about time to finally give us at least a bit more info about the hero acadamy. The hero acadamy has been introduced in the sneak peak for 2019. It’s 2020 now and there ist still nothing! Not a release date, not the slightest information on the features. Hasn’t to be too detailed… but c’mon, at least give us something! I would really like to know if there might be any valuable use of my double 4* heroes or if i just can feed them to other heroes. Can you give us at least vague information on the features? Is it going to be another epic fail just like the alchemy lab? Or did you finally listen to the players and try not to make the same mistake again? Is that what takes you so long? That might even be good news… Is there an estimated time of the release of the HA?

I’m even getting worried we have to wait another year for the release of Season 3…
And even more worried, that all that interesting and very good proposals on how the HA could look like people make up here, just lead to even more disappointment when the HA finally comes and all the proposals are so much better than what you made of it.


I’m pretty sure S3 will be out in a couple of months in the worst scenario.
The heroes are already in beta so season3 is definitely coming soon-ish

1 Like

Kerridoc, I have 3 Grimms, but am only working on one. I also have 3 Tritons, again, only worked on one. Which one would you recommend.

I think so, too. I was just a bit cynical to emphasize my point, that they should give us a bit more information after claiming in 2018 that HA will be a feature for 2019.

1 Like