Tuesday 19 January 2016

Dev Log 8#

There has been a LOT of development since the last update, here are the footnotes in order before I go into more detail:
  1.  Save System Complete
  2. New Enemy Type, AI polishing
  3. Game Selection Screen Finished (with place-holder artwork)
  4. Player Death & Enemy Damage
  5. Game Over Screen
  6. Player Animations
  7. Dynamic Scene Loading-Unloading
  8. In-House Demo Complete
  9. Performance Optimisation
  10. Environmental Shield ability added
  11. Extreme Temperature Rooms added

1.  Save System Complete

The saving/loading system has been fully completed, when the player steps onto a save station and chooses to save, they're locked into the save position on the save station while the game is saving (a lot of alliteration there). The game is saved and output to a file, so you can back up your saves on USB devices or clouds, just keep in mind that the save data will have to be in the correct folder for the game to find it.

2. New Enemy Type, AI polishing

 A new enemy type has been added: Pipe Cleaners.
This enemy is spawned from another object, similar to the Rinka type, except it first exits the pipe and then flies left or right depending on where the player is. Be clever though, it's possible to freeze these enemies with the Frece cannon and use them as a platform to get to hard to reach places.

AI polishing has been done, numerous bugs like the Wallask not detecting the player have been fixed.

3. Game Selection Screen Finished 
(with place-holder artwork)

 The game selection screen, with the exception of graphics, has been finished.
When you open the game selection screen, the game will read any present save data and show the abilities, current missiles and health (along with max health, since it can be increased) in the appropriate save slot. There are only three save slots however.

There are two modes in the game selection, the default load mode, which is set to this every time the scene starts, and Erase mode. If erase mode is enabled instead of load mode, and you click on a game slot, all data will be deleted.

New games are started by opening an empty game slot.


4. Player Death & Enemy Damage

 Enemies dealing damage to the player has been set up, and the player can be killed.
When the player dies, the game goes to the Game Over screen.

Different enemies have different amounts of damage, some deal more and some deal less.

5. Game Over Screen

 The game over screen has been set up, it currently has no graphics so it's just "Game Over" in plain pixel art text and two buttons; "Continue" and "Exit Game".

The Continue button only appears if you have a save in the game slot you are using. The Exit Game button takes you back to the main menu, from where you can choose another game slot or close the game application.

6. Player Animations

 The players animations are still being discussed and test animations are being made, the animation for the player running right is 90% done. After this animation is finished completely, the rest should be done fairly quickly in comparison, considering that the run animation is the most complex and most used animation in the game.

7. Dynamic Scene Loading-Unloading

 This one took be a full twelve hours to set up, considering that Unity's MSE (Multi-Scene Editor) is newly released, I think that I did it extremely quickly.

By setting up Dynamic Scene Loading and Unloading, NiTL will have zero loading and transition screens. The rooms are dynamically loaded into the game, and unloaded, based on where the player is going and where the player is.

For example, if we have 4 rooms, Room 1, 2, 3 and 4, with them each being lined up one next to each other. If the player is in room 1, only 2 will be loaded, if the player is in room 2, then 1 and 3 will be loaded and so on. Any room the player is not close enough to enter is unloaded and no longer takes up any memory, increasing performance and improving gameplay by not having any pause screens.

8. In-House Demo Complete

 The In-House alpha/tech demo of NiTL is complete.
Featuring everything we've done up to this point, it's most a tech demo for the development team to play around with to get a feel for the game and iron out any bugs.

But more importantly, it's also the framework for the release demo that everyone is going to be playing once we finish it. Of course, in that demo, it will have all the graphics needed so far done and there won't be any placeholders.

The in-house tech demo was completed on 15.01.2016 and we've very pleased with the progress so far!

9. Performance Optimisation

 After the success of the in-house demo, I had a lot of spare time on my hands while the programming department (Me, Luka) waits for the art department (Frece) to finish the graphics we need, so I started profiling the game for any bottlenecks and possible performance hogs.

Aside from being surprised at how well I've coded this game, I did find one major performance hog that was taking about 38% of the total game's usage. After a couple hours knee deep in the game, I managed to get its performance usage from 38% down to between 4 and 6% on average. This is a huge improvement and should insure the game runs a lot smoother.

10. Environmental Shield ability added

  The latest ability added to the game for the player is the Environmental Shield, this is an energy shield that protects the player from Super Heated, Super Cooled and other hazardous rooms.

The shield is a permanent ability, but it's effect is not. Like health, it can run out, after which the hazards start to directly affect the player's health.

When not in use the shield recharges after a delay. The shield can also be recharged manually by injecting an energy tank into it. This consumes 100 energy from the player's health reserves and can only be done when the shield is low and the player has more than 100 energy.

There is a big economical value to the shield and in injecting energy tanks into it, because the shield can withstand a lot more damage with it's 100 energy than the player could. While 100 energy from the shield might last a couple minutes for example, the player's 100 energy might only a dozen seconds. You'll need to work out the best combination on the spot while playing the game.

Along with protecting the player from extremely hazardous environments, when the shield is at full capacity it provides a subtle armour bonus against enemy attacks. In some cases, this could mean the difference between life and death.

11. Extreme Temperature Rooms added

 Extreme Temperature and Hazard Rooms have been added to the game, these rooms damage the player (or the shield if the player has one).

The amount of damage the rooms inflict on the player depend on the room, some might only be a slight danger if the player stays inside too long, other can potentially kill the player in a matter of seconds in which case impressive speedrunning skills or a shield are needed.

--------

That's it for the updates for now folks, stay tuned for more!

Wednesday 6 January 2016

Dev Log 7#

Happy new year to everyone, I hope you're all well!
Time to celebrate the first week of MMXVI with some new updates to our beloved NiTL:
  1. Save System
  2. Ice Beam (now known as the Frece Cannon)
  3. 2 New enemy AI types
  4. Demo news
  5. Other

1. Save System

In this past week, I set up a save and load system for NiTL so players can save and load their progress in the game. Saving games will take place at a in-game save station that the player will step onto after which they will be prompted to press a button to save.

2. Ice Beam (now known as the Frece Cannon)

 The Frece Cannon has been implemented into the game, allowing the player to freeze enemies in their place by shooting them after gaining this ability.

Frozen enemies will be frozen for a short time, during which they will be completely harmless to stand on.

3. 2 New Enemy AI types

In the game are now 2 new enemy types, bumping the total to 6 (Simple, Runak, Wallask, Rinka and now these).

The first enemy is a flying type, it flies left to right, only changing directions when hitting a wall or a frozen enemy. This enemy cannot be killed by conventional means, only frozen. So you'll need heavy weapons in order to destroy it.

The second enemy is kind of two part: A spawner and the spawn, the spawn is the actual enemy.
When the player is close enough to the spawner, it will spawn the actual enemy you need to look out for, which will fly out of the spawner and towards the player! The spawner cannot be destroyed or frozen, but the spawn can. Who knows, in certain circumstances you might be able to use the spawn as a stepping stone to hidden places?

4. Demo News

After talking a bit with Frece after New Years, we decided to set a soft deadline of March for the demo, it would be sooner but January is a busy month for us. In the meantime we'll be keeping regular updates and hopefully soon we can start posting some cool promotional material such as screen shots and videos!

5. Other

Alright, there are two things in this section: One is related to the Save system and the other our new youtube channel.

Since the filename extension on the save file doesn't matter, I've decided to make a little competition of sorts: If you can come up with a funny or cool sounding filename extension with less than 8 characters (letters and numbers only) then you win! And it will be used as the save file's file extension and you will be put into the credits section of the game as the winner of the competition.
[Filename extensions are shown at the end of a file name, e.g. .mp3, .mp4, .mkv, .avi, .exe]

The other bit of news is the newly made youtube channel, which will soon be home to content about the game, i.e. trailers and other promotional videos, some soundtracks and other news. So be sure to check up on it soon!

Thanks for reading the update, and I hope the MMXVI will bring you all much success!