FEBRUARY DEVBLOG ?

User Interface

Angel, game developer at Satoshis Games, has been highly focused on the initial game screens. During the last weeks he has been working on the UI implementation of the menus and in-game.

HUD System

A HUD (Heads Up Display) system has been implemented to show users crucial information about the game, such as health and shield bars, ammo counters, etc, while being as unobtrusive as possible.

An in-game mini-map shows a simplified top view of a subsection of the map that always follows the player, but there is also available a full map view.
Besides the player's surroundings, this mini-map also displays valuable information such as the location of team mates (when playing in duo or squad modes), custom location markers as flagged by the player, and discloses enemies briefly, when attacking.

In team mode (duo or squad), a list with minimal information about each team mate is displayed on the top left corner, including their health status, name, and marker color.

The HUD also shows other relevant game details such as counters for the total number of players still in the game, total number of kills by the player, time until the next safe zone shrink event, as well as the in-game satoshis balance.

An in-game notification service has been added to the bottom left. This gives updates to the user of who, when and how was killed by another player, when the safe zone is shrinking, etc.

LIGHT⚡NITE - HUD

An inventory module has been implemented at the bottom right corner, showing the available 6 slots, one dedicated for melee weapons (pickaxe, crowbar, sword, etc), and five more for in-game items (weapons, consumables, traps, etc).

Some of the HUD elements will be customizable (e.g. toggle elements on/off, change orientation/location, etc), and their availability may vary according to the game mode.

Please note that the entire HUD is currently a draft version. In later design iterations of the UI, this will be highly improved based on the users feedback.

Lightning Network Integration

Angel has also been working on the communication controller with Bitcoin's Lightning Network through our Elixir API, currently on closed beta exclusively for indie developers.

LIGHT⚡NITE - Menu screen

It is a priority to have a minimalist and lean UI to make the bitcoin and Lightning Network integration as friction-less and intuitive as possible. Our main goal for the long-term is to onboard traditional gamers (no-coiners) into bitcoin through LIGHT⚡NITE! Therefore, UX for the interaction with the game balance (satoshis) will be carefully treated.

Web Platform

Carlos have been focused on building a web platform so the pre-alpha users can already start buying in-game objects and skins. When users pre-order the game they instantly receive access to this platform, here they also receive an affiliate link.

LIGHT⚡NITE STORE - WEB PLATFORM

When users invite friends using this link they receive bitcoin and a premium skin. The invited friend receives a 20% discount, a normal skin and a some bitcoin. At the end of every month we are giving way above $100 in bitcoin to the user who invites more friends to the game. There is an entire post about this here.

Level Design

In the process of developing the technologies we are going to use in the game, we decided it was wise to make a single level going through the entire pipeline; that is, the Concept, Blockmesh, Set Dressing, Lightning and FX pass, and Polishing. Instead of doing the base for several levels, we wanted to test what was going to be the best way to approach things like modular assets, colliders and the future destruction system. This is a common way to make games, beginning with a single level prototype with all capabilities, and then going forward expanding the universe.

So, without further delay, let's begin:

Concept

Our island is going to have a military base. People have to protect themselves! And there's a reason why we chose the CQC (Close Quarters Combat) Facility to be the first level. There are going to be targets. Many things to shoot! What better to test the basic mechanics of our game? CQCs are places where soldiers get weapon and tactics training, many of them resembling real houses with many rooms and corridors.

LIGHT⚡NITE - CQC design concept 1/2

So we designed this area to be similar to the real ones, while trying to make a circuit for the players to walk through them and make the best score possible.

LIGHT⚡NITE - CQC design concept 2/2

Red lines are the paths players can take. In the center, it is the circuit, beginning from the bottom, in the Control Room. At the left there's the observation corridor, where other players will see the competition from above. It is important to think in covers, choke points where players encounter, and interesting paths, with platforming elements, that lead to rewards. We wanted this to be more than a shooter, introducing verticality and jumping mechanics.

Blockmesh

We want to make sure the most important part of the level is going to work: the gameplay. So we need to test distances. Paths. Coherence. We want to make sure it is fun playing in it, and that it works inside the game mechanics and narrative, before we begin placing things that can be harder to modify in case we want to change something.

LIGHT⚡NITE - CQC blockmesh recreation 1/2

Going into technical stuff, what we used here is a tool called ProBuilder, a plugin inside Unity, capable of basic 3D modelling inside the engine. This gives flexibility in the testing process.

This tool enabled us to easily recreate the designed area into a 3D optimized mesh model to have our first CQC level for the single-player release.

LIGHT⚡NITE — CQC blockmesh recreation 2/2

Set Dressing

The phase were we place the art assets. We need to fit them into a grid to be free of problems with physics and other systems. And populate the level with props and many objects (according to the CQC) to give it life. This is also the part where buildings and other modular-based constructions are done.

LIGHT⚡NITE — Set dressing 1/2

As part of the the set-dressing process, we wanted to provide some custom content around the level to add our Bitcoin touch. Then, we decided to add some posters about Bitcoin, Satoshi Nakamoto and the Bitcoin roller-coaster stickers.

LIGHT⚡NITE — Set dressing 2/2 (improved)

Currently, these items are merely cosmetic, eventually we aim to add some interactive challenges and missions to interact with this custom content so users can redeem sats or skins as part of our Easter-eggs oriented development.

Lighting and Visual FX

LIGHT⚡NITE — Lightning & visual fx 1/2

Finally, we are adding light on the matter. Now it all looks better. Directional light from the sun. Volumetric lighting with Aura, a Unity plugin that uses the latest lighting and fog techniques to inject light as a volume and not just on surfaces... Particle systems like dust:

LIGHT⚡NITE — Lightning & visual fx 2/2

We are using a combination of real-time lights and light-maps (a technique to bake the lights as a texture) in order to be able to have a destruction system and also have a good frame rate.

Using this technique from the beginning grant us with enough flexibility for destruction & construction systems on the future.

LIGHT⚡NITE — Shadowing fx

In this moment you also have to take care of all the materials present in objects, as they dictate how light is going to work in relation with reflection, specularity, roughness...

And finally, Post-processing, where we apply different effects in the camera to transform the appearance of the image. These effects include Anti-aliasing (to smooth edges), Ambient Occlusion (to apply shadows in corners), Color Grading and Motion Blur along other effects we are already integrating

LIGHT⚡NITE — Post-processing results

Software architecture

We're building this game in a modular fashion, using highly decoupled modules and components with clear separation of concerns, that work together as cogs in a machine to achieve great complexity, while allowing a very high degree of versatility for both gameplay and infrastructure decisions.

This allows us to quickly and easily change things for last minute requests and/or design decisions, and safely implement new features or expand existing ones without breaking other sections of the code.

For example, a module containing a new SDK integration or an alternate gameplay mechanic can be integrated kind of like plug and play, simply by binding a reference to it's class.
If there are any undesirable side effects, it can be rolled back simply by binding the reference back to the old class.

The core framework

This month we finished implementing a core framework consisting of multiple services, components and controllers, based on principles such as MVC (model-view-controller), inversion of control, dependency injection, etc.

This framework already allows us to do plenty of work (localization, navigation, state handling, remote configuration, authentication, etc), and will continue to be expanded in the next few months with all the technology necessary to bring the game together.

We are tirelessly taking many design factors and techniques in order to provide the most beautiful user experience. This is an ongoing long and iterative process but some results are already noticeable. Soon with all you!