HTML5 The Janus Project

aereddia

Member
Hey everyone! I just finished a little quarantine project I've been working on and released it on itch.io! It's really just supposed to be a small demo to see if I like some of the ideas rolling around in my head are fun and engaging, but I still tried to put some effort into it.

It's a team-based roguelike RPG where your team of 3 programs goes up against AI programs and fight your way through 15 battles. I wanted to slightly reinvent the traditional classes I always saw in RPG's and give them a new flavor with this game so hopefully, each of them feels unique. I'll post a link to the game and a video down below and then do a postmortem down below. But please, let me know what you think! I'd love any and all feedback on this project.


Game Page


The Postmortem:

I wanted to reinvent the turn-based RPG system to there is more strategy involved. I wanted to do this by changing up the traditional class system and move system, and I think I succeeded in some areas and failed in others. I also wanted most moves to be situationally good. Sometimes you want to use them on the enemies, and sometimes on yourself. Also, I wanted to adopt some ideas from DOTA 2 where you can have the same unit be played as a support or a carry and tried to take that philosophy into these classes as well. In this postmortem, I'm going to share my thoughts as if you've played the game, so I'm not going to spend any time explaining some of the things I'm referencing here because that would take a while.

Virus Program.PNG
Virus: A more traditional "rogue" class, but I wanted to change how the debuffs worked. I'm tired of the simple poison, blind, dodge mechanic for this class so I tried to bake up some more interactions with debuffs. I liked some moves like flash or purge, but I felt like their actual debuffs weren't as interesting as I would've liked. I liked some of the passives that you can get though, and I feel like that was the most realized class. It struggles a bit as a support unit though and I feel like it could've used more basic debuffs. Still, it felt unique and I liked that about it.

Utility Program.PNG
Utility: I tried to make this more of a support unit that could carry with specific scripts, but I felt like it was more a strange hodgepodge of ideas. This class got a lot of odd buffs and debuffs thrown on for utility purposes, but I feel like most of them aren't that useful or are far too strong. Some scripts like subvert can screw over the enemies (or players if the enemies use it) and system shock either heals too little or deals too much damage. I like most of the ideas I gave that class, but I feel like the execution of it didn't quite hold up. Too many utility scripts when you can just go kill something instead. It also felt unique though, so I'll give it that much.

Operating Program.PNG
Operating: This was supposed to be a new take on the traditional tank or healer class and I feel like it fit that role more than the other classes. It feels like the most standard unit, and I'm not entirely sure how to mix it up. It also felt far easier to give this class new passives rather than new moves, but not all of them were useful. Some of them like Bad Translator sounded like a good idea but giving up healing for energy doesn't work well in practice. I feel like there is another avenue with this class for self-debuffing moves, but I didn't explore that as much as I would've liked.

Basic Program.PNG
Basic: I had this idea for a class where they enter various modes and get super strong for a short period of time, almost like a super saiyan. I still like that idea (which is the one for this class if you couldn't tell), but I'm not sure my execution was the best. I gave them a bunch of modes that attached new properties to their attacks, but they still weren't as strong as I would've liked. It is also hard to think of new attack modifiers to add, but I'm not sure how many other options I have for this. I tried to solve it with other basic attack moves, but they feel too situational to really be effective. I feel like this is the least realized of all the classes, but also the hardest to build. I'm not sure what other directions to take it in though, so if anybody has seen good examples of transformation classes (almost like a druid, I guess) then please let me know.

I also experimented with a box type (which you can still fight by turning on some combat flags), but I didn't like how it felt. The combat was too slow and not very fun so I relegated it to just the enemies. I feel like there is some potential here with a sort of summoner class (possibly summon smaller versions of your other units, copy last used moves, summon "aura" units, who knows. Just anything that's different), but I haven't delved into that.

Battle Screen.PNG
I set it up in a simple manner since this is supposed to be a small demo. Anything the player can do, the enemy can do and vice-versa. I'm actually pleased with how most of it goes. When I play it and see other people play it, they tend to use a couple of different moves and build their team well. I don't think it is too easy or difficult in any direction and energy seems to serve its purpose well. I like how the AI feels and tries to react to your actions and throw a couple of curveballs at the player as well. It's not all sunshine and rainbows though. I feel like it is too easy to just blow up the enemies in a couple of turns. I wish the setup to the kills took a little more effort as opposed to just bursting them down (which I wish was only unique to the Basic class). I feel like that was mostly my fault from balancing the damage numbers and how I have a health cap that limits the chip damage you can do. I also think the enemies turn out a little samey and I think in a future version I want to have more hand-crafted enemies with specific properties so you know what you are getting into with each fight. Same with the bosses. They are just giant enemies with a lot of stats, but I wish they had more unique properties. I also feel like a decent number of your combat rewards go unused, but that's my own fault. It's a roguelike and you have to equip your rewards so it isn't always going to work out.

I also added some flags you can turn on or off to change the feel of the combat. I think most of them are good, but not enough to warrant being permanent. It might work well for some of those enemy properties though. That could be interesting.

A side note for the visuals:
I don't think the combat pops very well since nothing is animated, but I think it works well enough for this visual style. Everything is very minimalist and bare bones and the idea of showing the communication network between programs fits. Battle animations would've taken a while to build, and I think it would've added a lot to the flair of it, but I'm fine with how it is right now. Also, I really dig how the program icons are randomized. I think that is one of my favorite parts about it, despite everything else being so bland.

I like the project and I am pleased with how it turned out. I'm glad I figured out some of the pitfalls in a small project instead of figuring it out over a much larger project. In the future, I wish you also had more customizability over your moves as well, not just your programs, but I'm not sure how exactly to set that up. It's possible you could have simple upgraded versions of moves or each move has its own skill tree that you can invest a point or two in to give it more focus. I also need to better realize some of the classes and how they can work together as a team to win battles. I felt like everything was fine as a standalone unit, but I wanted more teamwork out of it.
 
I'm in love with the aesthetics of this. Music is fantastic, it has a very low-tech look, and it's genius how all the battle actions are named as if they were *nix shell scripts with a proper file structure and everything. If you build an actual RPG around this battle system, I will be first in line to buy it.

Some minor criticisms:
- Battles felt a tad slow. Perhaps some options to modify how fast time flows would help.
- Actions felt like they stayed on-screen a bit too long for me. Having some options for modifying how long this delay takes would help.
- I feel there's not enough feedback as to how long a battle has gone, or whether a debuff/buff will run out before a turn occurs. A "total time" counter at the top of the screen would be cool. Maybe a tooltip for the load meter showing exactly how much time is left until a turn?
 

aereddia

Member
Nice Animation.
You need a story, and a world.
Thanks, and I agree. I contemplated putting in some dummy emails after each boss battle, up to a max of 10 or so that'll flesh out some of the history of the project between team members, but I decided I wouldn't do that yet since it is just a prototype. I still plan on doing that later this year when I port it over to Godot to get familiar with the engine though. It'll be stuff like "The director is pleased with our progress, he's butting heads with Phil from analytics, make sure that new script is on my delivered by the end of the day," that sort of world-buildy stuff.


I'm in love with the aesthetics of this. Music is fantastic, it has a very low-tech look, and it's genius how all the battle actions are named as if they were *nix shell scripts with a proper file structure and everything. If you build an actual RPG around this battle system, I will be first in line to buy it.

Some minor criticisms:
- Battles felt a tad slow. Perhaps some options to modify how fast time flows would help.
- Actions felt like they stayed on-screen a bit too long for me. Having some options for modifying how long this delay takes would help.
- I feel there's not enough feedback as to how long a battle has gone, or whether a debuff/buff will run out before a turn occurs. A "total time" counter at the top of the screen would be cool. Maybe a tooltip for the load meter showing exactly how much time is left until a turn?
Oh my god, that just made my day! Also, I mostly agree with all the criticisms. I'm a little bit hesitant to just snap through all the enemy moves since the player needs to know what they just did, but I could definitely add that as an option for "Faster Battles" where I only show the script name for a shorter amount of time.

As for debuffs and whether or not you will move before it expires, I could add a timer next to the load bar that counts down 0 after you perform a move. That could get hairy when load speed buffs expire and whatnot... but I can always recalculate the timer when the buffs expire or are added. đź‘Ť
If I added a total time metric, then I would probably have a little "Cycles: " counter in the top right corner and have it tick up over time, pausing at each move. That would keep with the DOS theme and give you some perspective on how long the battle is going on. Great suggestion!
 
Top