Junk E.T. is a rogue-like dungeon crawler in space, where you attempt to clean up the trash of the universe in exchange for profit. You play as Dima, an operative of the Junk E.T. interstellar rubbish removal service, and your job is to attend to their missions on different planets, preferably surviving at the end.
At first Junk E.T. is simply interested in making some cash by taking advantage of the chaotic state of the universe, but that really might not be the case. Embark on a journey where your choices can make all the difference and drastically change the story.
The gameplay is inspired by Binding of Isaac and FTL, and includes countless opportunities and ways to upgrade your character through your travels. With dozens of different items, monsters and environments, it's guaranteed no playthrough will be exactly the same twice.
The ongoing development of Junk E.T. has started back in July 2014 and evolved a lot since then. It counts with the LibGDX framework (in the Java language) and includes different techniques such as the ones listed below.
With the help of the Box2D and Box2DLights libraries, all entities have their own collision bodies and masks. We control how every single body behaves, as well their physical properties such as mass, velocity, damping, friction and so on. Light rays are also directly affected by collision bodies, which adds a lot of realism to it.
Thanks to the fantastic Spine tool, all our creatures are animated with it. Each of them has a virtual skeleton with bones and joints, and are animated programmatically. This makes the final effect much more fluid and greatly decreases the development time. Even our cutscenes are made using this technique.
ECS is an advanced technique used in game development which consists of making all entities modular, so instead of assigning individual attributes to each of them, or even relying on an inheritance approach, entities are simply data-driven containers of components, such as Physics, Light, AI, Sprite, Input, Shadow and so on. Logic Systems then process entities with a specific set of components, running the core logic on each one individually.
This is the perfect solution for scalable games, making the process of adding new entities and mechanics as simple as writing a few additional lines. For example, if we want to add a green light source to a certain boss, all we have to do is add a Light Component to it with a few attributes, and that's it. The Light System will take care of all the logic behind it. We wrote our own ECS engine for Junk E.T. and we couldn't be happier with it.
One of the big aspects of Junk E.T. is the diversity of content. The game includes plenty of items, weapons, monsters, and it couldn't be different with rooms. In order to have full control of how our rooms are created, we needed a simple, albeit powerful editor. Just like with ECS, we wanted our own solution for that, and we came up with the Room Editor application tool, which allows us to assemble a brand new room in a couple of minutes.