Wizard model

Alasala


Our heroes find themselves scattered across a tropical island. They are beset by mirages that want them to stay forever. Will they be able to make it deep into the heart of the evil forest and unravel the spell that binds the island?.


Alasala is a hero collecting game with automatic battles. Play online at https://alasala.ew.r.appspot.com/ or download the source zip. (Flask is the only dependency.)

Gameplay tips:

Search the beach a few times to get your first heroes. Go to the next stage to progress. See the diary to follow the story you have unlocked.

The combat is a 5v5 battle with no user input. The role of strategy is in assembling the team. You want to build a good general team, but as the stages get harder you also need to customize it to counter the specific enemies in the next stage. Check out the abilities of each hero to better understand how they can work together. Decide which ones to level up, and try to reach the heart of the island in as few days as you can!

A few things we should have explained better in game:

  • Loyalty: Much like HP in most games. Except that when it reaches zero, the character is not removed from combat. Instead they are now fighting on the opponent's side. It's possible for a character to switch sides multiple sides in a fight. Combat ends after 2 minutes or when everyone is on the same side.
  • Influence: Attack power. All abilities and attacks scale with the character's influence. Leveling up will increase it.
  • Inspiration: The little stars that appear above their heads. Different heroes gain inspiration through different methods. 3 Inspiration points are used to cast their ultimate abilities.
  • Weight: No gameplay effect. The whole physical simulation has no role in the battle and is just part of the visualization. When you replay a battle, the visualization may end up slightly different, but the results will be the same. Go back to the map and retry the stage to try your luck again.

Let us know if you have any other questions!

github.com/darabos/alasala

Awards


Battle of Wits
Presented by Cosmologicon

Gumdorfins of flask
Presented by VV0JCIECH

Give this entry an award

Scores

Ratings (show detail)

Overall: 3.5
Fun: 2.9
Production: 3.9
Innovation: 3.7

11% respondents marked the game as not working.
0% of respondents wished to disqualify the entry.
Respondents: 15

Files

File Uploader Date
wizard.png
Wizard model
cyhawk 2020/09/27 22:58
Screenshot_2020-09-28_at_0.35.59.png
Screenshot
cyhawk 2020/09/27 22:56
alasala.zipfinal
Just readme was changed, so users are pointed to a public deployment.
xandrew 2020/09/27 22:25
alasala.zipfinal
Submission!
xandrew 2020/09/26 23:07

Diary Entries

How we made the 3D models

Alasala's models


I'm very happy with how our models worked out. Originally we planned to have just cubes. But then I wanted the cubes to have flappy ears. It escalated from there. The models are all defined as dicts by describing their structure.

Model definition.

This format describes the model as a tree of boxes of various sizes and colors. Each node is then fixed with a "Cone Twist Constraint". Basically a joint like a shoulder. Then as we move the models they wiggle around automatically thanks to the physics simulation. (Cannon.js)

Wizard walking.Knight walking.

Because of the simple format we were able to add all the models in one day. I think I'll add some more after PyWeek!

Add a comment

Bug fix: abilities were invisible until unlocked

Abilities are now visible.

opacity:50% in our CSS changed to opacity:1% in the release build. (https://github.com/facebook/create-react-app/issues/7980) Sorry about that. If you want to fix it, you can either fix it in build/static/css/main.83228efb.chunk.css manually or you can use https://alasala.ew.r.appspot.com/ui which now has this fix. (Otherwise it's the same as the uploaded final version, just with Google authentication instead of a hardcoded user.)

Add a comment

Questions?

I'll add a proper behind-the-scenes diary entry at some point. But here's a placeholder just to make it possible to comment! (We also try to follow #pyweek on Discord.)

Add a comment