Devlog 2: Prototyping
Coding:
We've made some big changes and added a lot of new functionality to the game. For starter, we switched to Unity, which is already making things a lot easier to deal with. We've also added a local co-op mode so that players can play together, and added controller input support. On top of that, we added a player character, some collectible trash, and an inventory system that keeps track of the points you receive from picking up that trash. We also added an attack system with melee and range attacks—we're still playing around with whether the one or the other feels better, so we'll get back to you on that. And we added a health system to make it a bit harder and dynamic.
We've tested both ranged attack and melee attack, and we've discovered that range attack doesn't work with level with height difference. Currently we're still considering whether we should make a flat level or stick to melee attack.
Art:
This week, we focused primarily on transitioning our work from Unreal to Unity. This proved to be quite the adventure, especially since none of our artists had previously worked with Unity. In addition to this, we updated a significant portion of the art bible and created the first design of the cute robot that you play in the game.
Meet Bob!
Files
Get [Group30]ToxicTeamwork!
[Group30]ToxicTeamwork!
Status | Prototype |
Authors | marsd, Davs27, Dimana_Radeva, AbyssMuffin, Toto.cie |
More posts
- Devlog 1: Research9 days ago
Comments
Log in with itch.io to leave a comment.
Nice work with the character sketch! And great choice with Unity. I've tried Unreal too and it felt a bit overwhelming, both in terms of performance drain and in terms of learning curve.
Also regarding the ranged system, you might be able to solve the issue by manually aiming at the target in front of you (if one is found), and otherwise just throwing it straight forward. You can detect targets in front of you regardless of elevation.
You can do this by parenting a BoxCollider (or any other collider of choide) to your character, making it a trigger, excluding all layers except the one where your targets exist. Also, make it really tall to deal with the elevation issues. Make it as long as the range the character has.
Add a new script to track targets, let's say, TargetManager to the character. This script has a OnTriggerEnter and OnTriggerExit callbacks which add valid targets to a list. On Update() you can pick the target from the list based on some criteria (closest, unobstructed, etc), save it to some variable, let's say GameObject target. Careful how you write this one, because it might have some performance concerns. Make it run on a less-frequent Coroutine if it does cause performance issues.
Then, on your object throw script, you check if you targetManager.target != null and then use this handy phisics calculation to tell exactly what force you need to apply to the throwable to make it land exactly on your target position:
If you're curious where I got this function, the answer is a mix of physics knowledge and some experimentation plus some ChatGPT for translating said knowledge to C#.
If you're curious where I use this function, you can check out my game Recolonizer, which is out now as a browser game on open beta! I plan on fully releasing it to Steam and iOS in mid-2025! It is what drives the direction of the cannonballs, as they are all physics projectiles.
In any case, good luck on your project! Hope this helped a bit :)
TY!!! And good luck with your project as well!
To be fair, that's more of a design choice than a technical issue. We discussed it later and came to term that a short ranged range attack could also work. Suffice to say that we're still testing everything. We've made an projectile template so it's easy to make other types of projectile upon it.
I personally love to nerd about physics in game, though currently there are other mechanics that still has to be made. Temporary upgrade is one of them and I can see a ballistic projectile reaching different height level being one potential upgrade.
Thanks again for your input!
Ah, good. Often complex solutions can be replaced by better design. And indeed, nerding about physics is like 45% of the reason my project even exists lol
Looking forward to future updates!