вторник, 31 марта 2015 г.

RAIN AI

We working on implementing AI for our modules. RAIN is interesting AI system.

If we can figure out when to use quotes, and when not, it can be helpful, because it has sensors system.

We can detect enemies and track it behind our attack range, attack if can. Implement more interesting AI for modules - more responsive


It is very promising with features. We decided switch our in house AI to more specific one for ability to use sensors and change AI behaviour trees when working.

понедельник, 30 марта 2015 г.

Enliven enemies with bezier splines

We implemented bezier splines editor and movement by it. Great thanks to http://catlikecoding.com/unity/tutorials. With them we can make it in hours. Step by step and easy.

Here is editor of splines screen:

Using splines we can make enemies move by them (in video seen better):




Moving by bezier make screen more alive and interesting. But beam weapons has long warm up period and it is bother us. We think that bigger ships will be stationary for use of heavy weaponry against them. Smaller ships will be take down by turrets.

AI changes to RAIN or not

Current AI is very simplistic. We have grid of modules and enemy also have it. When AI decide to fire, it select from grid nearest and shoot it.

This logic can make firing decisions faster, but limit us in some manner. We found RAIN AI system for Unity. Learning curve is steep, but functions is great.

We think to redesign AI, or let it be as is. Currently it is fast. How fast RAIN we does not tested.

Mostly RAIN will be used for path movement and detection. All logic will be implemented as C# script.

Behaviour trees is strange. Why to use them, when it one to one maps to algorithm of scan/response to event?


Static enemies is boring, let them move

We think about current game state and idea arrive. Enemies must fly on screen in battle. Maybe some AI for fly away on small HP.

In game 'Alien Sky' one interesting ability - enemies fly in battle by trajectories. When more than one wave of enemies come - it looks beautiful, as ballet.

This mechanic can add more live to our game.

When we add movement to ship, it was interesting moment, but player must see each tower to predict usage of nanolathe and powerups, spawn modules. So we decide to make ship static (as in Space Run).

But enemies can enter and leave in interesting patterns. Speed is defined by their mass. More powerfull ships is slower. And bosses is sluggish.

пятница, 27 марта 2015 г.

Beam tunnel open animation added

We work on animation for opening beam tunnel. This can add some logic for firing beam from core of ship.


As seen here, ship contain two beamer tunnels. It opens as player make beamer behind them. We think about dynamic adding tunnels, because player can construct beamers on any row.


Opening tunnel/shaft for beamer and cannons can make more immersive gameplay.

One thing to add - shield covering front of ship, and display thickness of current installed shield modules.

среда, 25 марта 2015 г.

Heavy cannons and missiles

We look at beamers and like it. Now we decide to make heavy cannons and missiles.

They will be fixed, and shoot straight. But cannon have heavy shell. And missile will lock on target. Heavy shell will penetrate armor and hit two (for basic heavy cannon) and three (for ultra heavy cannon) blocks behind of it with cumulative charge.

Missiles will lock on target for lifetime (3-7 seconds), but move slower than short range rockets. Fighters will move out of range of it. This make more emergent design.

When missile explodes, it will spawn swarm of debris with high velocity. They will hit targets farther than explosion itself.

Missiles can be configured: explodable, corrosive (acid or nanoclouds)
Shells can be configured: armor piercing, shrapnell (after some time they explode and barrage of chunks fly faster towards enemy), self propelled (more damage to first enemy module)

Problem with beamers

We think, that beamers too powerful. But their static nature and second column of placement make some problems to solve:

1. Does enemies need to be moved on screen (in closed path or random wandering)?
2. How to (realistically) use beam behind armor?
3. Do we need drain energy from ship when using beamers? If so - how user decide when to use them?
4. Currently beamers is very powerful, which kind of boss we need to balance it?
5. Beamers long warm up time get fast moving targets out of sight before being hit. This is feature or need to be fixed?
6. Will beamers break throught shield?


Answers:

1. We decide, that enemies will be moving in circles on screen.

When it will be implemented, they will be move by more complex trajectories. Speed of enemy defined by their mass: smaller - fly faster, heavier - slower.

Really heavy enemies, like cruisers will only wander in short distance. It fill entire enemy place and need to be handled with care.


2. Beamers will spawn beam tunnel in armor (with animation).

This decision can help with realism and balance at once. Beamers will shoot behind armor (turrets mounted above armor), but limit armor pieces, that can be placed in ship. Player will decide - use heavy weapons and lose armor, or use multiple turrets and have greater armor plating.


3. Beamers will not drain energy.

This is hard decision to do. If weapons drain energy, then generators is more pleasant to use, but when I can not spawn module, when I think it will be available - frustration come to meet. Weapons fire erratically and easier cut energy generation by each weapon, than drain energy from pool.
Humans not so good in prediction in volatile environment and it will punish player: "You dumb, can not predict time and place... e.t.c."

I dislike it. Maybe weapons will drop energy production a little (and it will be displayed in price as well). This make game more predictable and fun.



4. Balancing boss is simple - ship like player have, but smaller, or with dumb AI

Heavy ship can make more difficulty to overcome, than fleet of smaller ships. Heavy cruiser have 3x9 weapon slots, and 27 lasers can shoot any normal fleet of small ships. Cannons and rockets is more powerful and can use on heavy enemy. But beamers will make lasers usable against them also.


5. Long warm up time is feature.

Fighter can fly before beamer can warm up. But beamer will shoot in any case. This can make interesting effect - wall of beams and small ships have trouble to work with it - move from one to come to another (Scilla and Haribda). Beamers will be tuned to fire by command and if they heat up - firing will be done either (shorter, than for enemy).


6. Heavy beamers (2,3 and more rows) will penetrate shields.

Smaller beamers will be weakened by shield, but heavy one destroy shields as missile do. Only very heavy shield can lower damage.

вторник, 24 марта 2015 г.

Implemented beam weapons tier 1 and 2

We made it. Beam weapons now working. Tier 1 - single line, tier 2 - two lines (and more powerful than pair of them)



Mechanic more interesting in video


We currently working on tube for beam weapons. They need open sight to enemy. And tube can block some rows, but provide fire channel for beam.

Static nature of beam make it good after big enemies and bad at smaller enemies. Warmup and cooldown time also make shooting harder.


Beam weapons concept

Our artist make beam weapon concept. We now working on implementing their logic in game.


As seen in image - all weapons is multiblock and fit minimum in fregate. Heavy cruiser perfectly fits for it. Last two weapons introduced for dreadnought and behemot.

Blueprints for them in development. Multiblock weapons must be generated by smaller tier. This provides step by step construction of heavy weapons. Time - is very important resource in game.
If we cut it, weapons may be overpowered.

All beam weapons have damage multiplier, that grows with time. It is simulate heating buildup.
When weapon destroy one enemy module, damage multiplier will be droped to 1.0 again for next.

Weapons shoot for prolonged period of time.  More powerfull shoot longer. But cooldown time also greater for it.

воскресенье, 22 марта 2015 г.

Heavy cruiser

We done first stage of drawing heavy cruiser. In current state it is enough to make atmosphere.
Now we working on gameplay.


As you can see - heavy cruiser is more powerful vehicle and capable to withstand more damage.
We now add new blueprints to provide beam weapons and energy shields. Also anti missile system in plan.

Look at gameplay in action. Spawn button will be moved to right for faster access.


суббота, 21 марта 2015 г.

History or only battle?

We get inspiration from Plants vs Zombies and this fantastic game does not have story at all.

We like to have some story, but no one have writing experience. If story will be flat we cut it off.

Dialogs used as narrative now, but can be used to tell some interesting story in game.

As said John Carmack: "Story in game as in xxx movies not necessary", and maybe he is right?

Bosses will be introduced soon.

Bosses is very important part of game. From player perspective - they are apopheose of battle.

From development perspective it can give us experience of AI (something repetetive) and ability to use same mechanics as user from code.

When bosses will be ready we show it on end of level for interesting fight.

And then attach controls to it to remote player. Skirmish is very interesting mode and all group very likes idea - fight with friend by lan/wan.

Parallax scrolling?

Current action comes in one screen with enemies come from one edge and static background.

But we think, that background can be scrolled. Will see how it fits

Corvete Nemesis-X1 redrawn

We work on graphics and upgrade it somewhere. Now corvete Nemesis-X1 looks like space ship. And background more SciFi.


Our artist will finish background in 3d, and we try to match styles.
Current background in development and can be done in days.

четверг, 19 марта 2015 г.

Weapon multiblocks for fregate

Now we have multiblock setup for weapon nanofactory:


One problem we has - packing UI. Current setup of three weapons fits nice. But if we have more it become problem - no place to fit.

We think, that minimize button size can solve this problem. But current size is perfect for fingers. Weapon selection buttons can be squeezed to quarter of size without losing readability.

In current state we can see opportunity - make bigger weapons. We have two levels of basic weapons grown up. In plan - make all weapons large by nanolathing.

среда, 18 марта 2015 г.

Beam weapons as more powerfull weapons

We like how deathstar in StarWars exploded entire planet in one shot. In many titles - beam weapons very powerfull.

This comes to idea - horizontal lasers will be beam weapons. Two lasers make small beam tower, and up to four - most powerful one line weapon.

Then beam weapons can be combined with each other: L1 beam tower vertically combine to L2 beam tower, that can produce greater beam than two of them. L2 to L3 is almost logical step.

Instead packing towers to one place (as currently is) beam towers grow in height. L2 beam tower placed on two rows, and L3 on four.
This can help preventing overpowering ship too fast.

Space on ship is resource too, as energy. So we decided to limit it. This give player ability to choose: many small towers, or some limited count of powerful ones.

Plasma cannons also combine to more powerfull and static version of cannons.

When introducing this idea we faced problem. Beam weapons too powerful for turrets. So it will be fixed. But user must use all of loadout for maximum.

For this reason we think about ship movements. Player select beam tower, then click on enemy and ship figure out how to shoot this fixed weapon to desired spot.

First thing - rotate ship, but we use rigid bodies and normal phisics much. This can lead to overwrite all tower falling/placing logic. It can be done later. But now it is too pricey.

Second thought - move ship vertically. This can be done by zooming out camera when ship goes to border. Player want to see action.

It will be done.

вторник, 17 марта 2015 г.

Multiblock nanofactories and some puzzle

We decide to implement multiblock nanofactories, that user can set himself. But keeping gameplay fun needs some puzzling.

When you choose nanofactory cell - neighbour cells also selected.

This is old puzzle, but can add fun. We currently testing it.

And for filling it - we get weapon selector:


Mechanic currently in development/testing. When energy price constraints comes it will add tension - decide normal modules/towers arrangement for price when being attacked by enemy sounds interesting.


Here the example how it works:

and some video of mechanic:

Current development plans

We plan multiplayer. Currently thinking about lan, but if we find server - online multiplayer will be available also.

Multiplayer will be present in two kinds: duel (and tournament) and command deathmatch. For command deathmatch ship position must be considered by fleet commander. This idea is in discussion.

Ship customization will be present as configuration of nanofactories and select proper ship (after you buy or promotion give it).

Currently present small ship (1 utility, 1 weapon, 1 defence) - boat, but in development (2x2 utility, 2x3 weapon, 2x2 defence) ship - fregate.

Not so far we introduce drone modules (for fighter spawning) and you can make carrier.
I will share with you our ship development plan:
+1.Boat (1u1w1d) (done)
2. Fregate(2x2u, 2x3w, 2x2d)
3. Cruiser (3x2u, 3x4w, 3x2d)
4. Heavy cruiser (4x3u, 4x5w, 4x3d)
5. Dreadnought (5x4u, 5x8w, 5x3d)

And more heavy weapons: 2x2, 2x3, 3x3, 3x4, 4x4, 4x5 (ultimate)

понедельник, 16 марта 2015 г.

More puzzle gameplay incoming

Our first idea of tetris forming turrets is in development. Current tech demo provides us with some idea about it.

Now we think about dominoes, triminoes and tetraminoes to fall and form modules.

In current development - double and triple sized nanofactories will produce linear blocks. Near future calling for more tetris alike patterns and we decide make it with 2x3(4) nanofactories to produce.

One thing bother us - do we need to control placement of module or it should drop straight down? Allow rotation or not?

If these questions will be answered - more tetris like gameplay will be introduced. We currently working on it.

More polished pictures

After noticing by audience we decided to make more polished pictures of ships and backgrounds. Currently in development and soon will be available.

Search for artist succeded and we discuss with him game design and vision.

Unity and prefab connection problems

I wonder why my new game with sounds work well in Unity and failed as standalone one.

After investigation I found, that Unity when running in editor ignores missing sound (and C# query to them), but in standalone it generates NullPointer exceptions.

Improving code with check for null decide half of problem.

Second problem arises - shooting laser in "Laser staging" scene is working, but when "Apply" pressed it not applied to all prefab instances. In subprefabs (as laser in ships) it will ignore changes at all and need to update them by hand.

I think this problem can be passed by generating ships in time of battle.

воскресенье, 15 марта 2015 г.

Some background music

Found interesting music at freeSFX.co.uk. Now first scene has music and it sounds good.

Need to add mute music button. All repeatable music is boring. We must introduce more than one music theme and change between them randomly. Silence is music also.

Laser shooting sounds

We decided to add sounds to game. This can create atmosphere of ship battle.

Laser sounds fits pretty well. But cannon and missile silo does not. In battle cacophony one tune is lost and hear only explosions and lasers.

Lasers should be silenced a small.

Composite ships

Now I have 10 types of enemy ships.
Their composite nature provide me with idea of autogeneration enemy ships when it needed.


Currently I work on it. Introducing manually implemented ships can get too much prefab storage. But for testing it is ok.

Building ship for each case can introduce more tuned autobalance.

Difficulty settings

After tweaking autogeneration I add difficulty. Now autogeneration checks it and get challenge you wants.

UI also introduced:

One thing bother me: do I need to add "Insane" difficulty? It must be playable (but very very hard). I have good gaming skill, but not champion one.

How to decide, that difficulty is too much if I can not beat the game on this difficulty?

So, "Insane" must be stored for later use.

суббота, 14 марта 2015 г.

Upgrades and more powerfull ships

Think about upgrades. It can help build ship agile.

First upgrade to do - nanofactories with extra blueprints (exchange takes time).

But it should be visually different: upgraded from basic one.

When ships become more powerful upgrades influence not so much.