Nanuleu

Nanuleu is a strategy game where you take control of ancient magical trees that protect the land from an invading dark force.

A destructive power is approaching, the ancient trees have sensed it and have awaken from their long sleep. Gather resources and grow trees to repel the invaders. Each tree has a different role to play in the battle to protect the land.

This is a game prototype we made last year for the Indie Game Making Contest 2015, now we are going to continue development to make it into a full game.

This is how the game looks like right now.

nanuleu9

If you want to give the game a try, you can download it here

We will be working on the game in the following months and we are going to try to post our progress here frequently. 

Making of Nanuleu for IGMC 2015

Nanuleu is a strategy game we made for the Indie Game Making Contest 2015.

The whole game had to be made in a month and the theme for the contest was “growth”. We got very lucky and we ended up 2nd place. There were many amazing games on the contest. You can check out our entry here and the winners here.

The game was made by two persons, both programmers. The art was also created by one of us.

Design Concept

We already had a basic idea of what we wanted to do for the contest, and the theme fitted perfectly with the concept of the game.

The basic concept was about an organism that lived in a peaceful world, until invaders came to attack their territory. To protect themselves against the attackers, the organism had to expand their reach to gather resources and then use them to create defenses.

One of the main mechanics is that new structures need to be physically connected to the rest of the organism, so to reach a far place, first  you need to extend the organism to get closer to that place.

We wanted the resources to be scattered around and we wanted the land to be randomly generated for each play. The resources were seeds, water, nutrients and energy and they were used to create structures.

To expand the territory and reach far places, the player has to build roots. Roots act as a road between structures that  needs to be created.

To gather resources, a specific structure had to be created over each resource. Those were the Water Extractor,Nutrients Extractor and Energy Extractor.

We also added the Seeder. This structure creates seeds that are used to build other structures. We wanted this structure to be very special and seeds to be a rare resource. Seeders can only be placed on sacred ground.

Additionally the organism needed a structure to defend against invaders, so we added:

  • Protector : Basically a turret that shoots enemies on sight.
  • Barracks :  Spawn units that attack the closest enemy.

And we wanted the invading force to be similar to the organism, so we added:

  • Dark Barracks : Spawn units that attacks the closest enemy. Also automatically expands every few minutes, creating an additional dark barracks.

This dark barracks appear over time on the corners of the map, the idea was to make the order random so the player had  to create defensed as they appeared and to force them to react to different situations.

The dark Barracks spawned three types of units:

  • Runner: Low Health, Low Damage, High Speed
  • Soldier: Medium Health, Medium Damage, Medium Speed
  • Heavy: High Health, High Damage, Low Speed

The idea was to combine this enemies to create an engaging experience.

We also created a small story about the world, it goes like this:

There was a war between the organism and a mysterious dark force many years ago. The organism won the war, but the dark force was not destroyed, instead it corrupted one of the structures of the organism(Barracks) and fled somewhere far away. Now it has come back to attack using the dark barracks.

We didn’t add the story in the game, but we used it as a guide through the design and building process.

Paper Prototype

To test the idea we made a little paper prototype. Here you can see how it looked:

nanuleuBoard

We randomly placed the resources and assigned values to everything. For example:

  • How much resources are needed for each structure.
  • How much damage does a unit do.

We also decided to make the game turn based. So each turn we added/subtracted from the values. For example:

  • How many resources were generated per structure per turn
  • How many steps can a unit move per turn
  • When would the enemies come in and expand

We played it maybe two or three times, but we realized that the game had too many variables to keep track: moving units, attacking units, gathering resources, and so on. So we decided to move on to a computer. Making the board game was a fun experience and gave us a basic idea of the starting values for the game.

We also decided that we had too many resource types and they all were used the same way, so we decided to use only three: water, nutrients and seeds.

Developing The Game

We used Unity to make the game because we had been using it for almost 6 months in game jams, and we really like to work on it.

The first computer prototype looked a lot like the paper prototype:

nanuleu2

After testing a few times, we decided to reduce the number of units the dark barracks could spawn. We removed the Runner and used only the Soldier and the Heavy. This made spawning enemies easier to test/balance and gave more meaning to each unit.

The soldier was the default unit and it spawned very frequently so players quickly got used to their behavior. Then when the heavy spawned, because it has bigger size compared to the soldier, players quickly understood that this was a more powerful enemy and that they had to prepare for it.

Graphics

It was time to start thinking on how the game was going to look. We started to watch other games in the strategy genre and decided that isometric was a good choice for the game. So we did a few changes on the code and the test images. This is how it first looked:

nanuleu4

Up to this point both of us were programming, testing and making design changes. Now it was time to split the work. While one person continued to code and make improvements, the other focused on the graphics for the game.

We started to think about the art style and what the organism was going to be. We wanted the organism to be something that felt alive and not just static buildings or structures.

The theme for the contest was “Growth”, so plants, trees and flowers always came first when we brain stormed ideas, but we also thought about clay, or some kind of intelligent futuristic material that could take different shapes.

This are the styles we tried:

The first style was based on real plants.  We made those in Inkscape,  but did not like how it looked.

nanuleu5

Then we tried to make models in Blender and render those as 2D images.  We experimented this time not with plants but with buildings. The result was this.

nanuleu6

We concluded that getting the details right in 3D was very difficult and time consuming, so we went back to 2D.  

The las experiment was a design using trees with geometric shapes.

nanuleu7

Making the art was a difficult process for us,  we weren’t completely satisfied with it. We ended up using this style, but simplifying the trees and using one unique geometric shape for each one of the trees.

nanuleu8

User Interface

We wanted the game to feel smooth to the player, so we took a lot of time to make the UI, mostly to get the fade in/ fade out effects at the appropriate times.

When players first enter the game, they can see how the land generates, and that is used as a background for the main menu. Then when the player starts a new game, the menu fades away and the game is zoomed in.

The main interaction with the game is via the build menu, this is used to select the tree you wish to build in the selected tile. To build you select a tree and you will see a description, if you press again you will confirm your selection. We didn’t come up with this type of build menu, we saw it in other games and we decided that it was perfect for ours.

The final game looks like this

nanuleu9

Naming The Game

We didn’t know how the game was going to be named, almost all the developing time, we called it DefendThePlants as we usually name our games for jams as the objective of the game.

Then we started thinking, we are from Guatemala, let’s try to find something from our country that we can use. In the end we decided to call it Nanuleu. “Nan” is “mother” and “ulew” is land or earth in Quiché, one of guatemala’s native languages.

We also changed the names and descriptions. We used the colors of each tree to name them.

  • Water Extractor: Water Tree  – Xar
  • Nutrients Extractor: Mineral Tree – Qan
  • Seeder: Life Tree – Saq
  • Barracks: War Tree – Tuq
  • Protector: Protector – Kaq
  • Roots: Roots – Kaqoj

Audio

The audio was, as it usually is for us, one of the last things we add to the game. We found an amazing song, Overheat on incompetech.com

All of the sound effects we used were public domain, downloaded from freesound.org. 

Game Developer Community

We are members of a local game developer community called GameDevGt, we have constant online communication with other members and we also have weekly meetings. During the development of the game we had a lot of support from the community. We made it our goal of the week to have a new build to show at the weekly meeting, to get feedback. This was very important for us and helped us a lot to improve the game.

Future
We are going to continue developing the game. We plan to release it in mobile and desktop platform. You can follow the development of the game in our devlog.

Optimal game pace & roadmap

One of the problems that was noted by the players who tested our game is that the game is very slow at the beginning and gets too difficult too fast.  The first idea we got to solve this issue was to adjust the values of the game events (when the bad guys attack and spawning frequency),  resource extraction rate and cost to build new structures.

Because we did not knew if the resulting game could be won and because testing manually was taking too much time, we created an AI that played the game and made the time scale 10x faster.  We changed the values manually and let the AI play the game.  This is an example of how it looked.

Even tough that worked faster, we needed to change the values manually and wait for the AI to finish playing.  To make things even faster we made a script in JavaScript that simulated gameplay. The script tried to run the simulation with random values for the variables we wanted to change. It selected the best option and ran again trying to find a still better result.  We wanted to minimize the wait for resource time while getting the total game time around twenty minutes.

optimal game time and pace

We tried the best games selected by the script inside the real game but none of those made the game feel right.

The next idea we are going to try to solve this issue is to put more resources on the map and to try to adjust the resource placement algorithm

We will be working on new ideas to solve this issue.

Bugs, improvements & roadmap

We took some time to get together all the feedback we’ve received from the game and also to check Jesse Schell’s Lenses,  after doing that we decided to work in several aspects of the game:

Tutorial and objectives:  There are some players that do not understand the UI at first,  mostly when playing on a mobile device.  So we will work on a tutorial.  We will also move the objectives to another place where they can be more visible.

Game pace: We still have the issue with the game pace we talked about in the previous section.

Game difficulty:  We think that the game punishes too hard players that make minor mistakes,  so we will try to fix this without letting it become too easy.

Game modes:  We are thinking about making three game modes: normal as it is right now, peaceful  where you will need to reach the life trees and then the game ends,  and hard with a little more difficulty.  This to make the game more appealing to different types of players.

Random tiles:  Some times the random tile generator makes the resources a little bit harder to collect at the start.  We will solve this to ensure that the random tile generator does not affect gameplay.

Notifications:  We think some notifications would be helpful.  We’ve thought about a progress bar to let players know when the next dark barrack is going to spawn.  Also we noted that some players  overlook certain areas of the game and then they get overwhelmed by enemies in those sides,  so we decided to give the player some notification when the bad guys are attacking structures that cannot defend themselves while trying to not annoy the player.

Information in HUD:  We will add a tree count to the HUD, so players will know how many trees of each type they have.

Achievements:  We will add achievements when you finish the game with no trees lost.  Another achievement could be finishing the game within a time limit.  Also we’re thinking about adding extra structures,  altars,  that  you will need to protect. If you finish the game with all those structures alive you will get another achievement.

Bugs:  Some times enemies spawn showing low health.  This is because we did not reset the health bar before reusing the enemy objects.  Another bug is that the numbers that indicate how many dark barracks are in a specific side does not get updated after the dark barracks have been killed.

Art and animations:  We will improve the art of the game and also add animations to make the game world feel more alive.

Ending:  We want the ending to be more rewarding.  We will think on some ideas to make it happen.

Other game play changes:  Trees that get disconnected from the center will start to die slowly.

Other suggestions that we will consider later:  Fix enemy unit positions so they do not get stacked in the same place.  Make upgrades for trees.  Be able to sell trees.  Be able to build over roots. Spawn heavies from war trees.

Other ideas we had:  Golden resources,  resources that give you more per second.  Put more spots to build life trees (holy soil) in the map and make only some of the life trees required.

We will keep you updated with the changes.

New tile generator, color change and other updates

Tile generator

One of the complaints we got about the game was that the random tile generator was sometimes unfair.  So we updated it to make it generate still random tiles but at a constant distance of three tiles between them.

Also we put more resource tiles near the initial seeder, so players can build more structures at the beginning to reduce the waiting for resource time during all the game.

We still need to test how the resource placement and resource quantity affects the gameplay and tune the difficulty accordingly.

Previous tile generator.

Screenshot_30

New tile generator

Screenshot_33

UI

We thought necessary to show how many trees of each type the player has planted.  Also we added a time bar to indicate how much time is left before a new enemy cluster spawns.  We needed to make the objective more visible so we ended up changing the layout to this.

Image 1

The layout seemed too crowded so we decided to remove the objective and show it in a popup box that the player will need to close.  The current objective will be shown in the pause menu too.  The tree count was removed and the layout currently is like this

Screenshot_34

Colors

We have been experimenting with different color palettes to use in the game.  During this process we had a new idea,  to change colors depending on how well the player is doing during the game. This is the result.

nanuleuChangeColors3

Altars

As it is shown in the previous image, at the beginning of the game, there will be 4 new structures.  Those are the altars and they can be attacked by the enemies,  they will hold enemy attacks for a while, giving the player more time to build their defenses,  and if the player ends the game with all 4 altars alive they will get an achievement.

Pause screen

Our friend Oscar gave us the suggestion to be able to move the game map while the game is paused.  We’ve implemented this and also have a new pause screen.

nanuleu-development-pause-screen

Select difficulty screen

We’re in the process of implementing different difficulties in the game.  We now have a select difficulty screen.

nanuleu-development-select-difficulty

Other changes

Wooshes (the effect after planting a seeder)  now make the game zoom out a little bit, so players can see that they kill enemy units.  We’re experimenting with new graphics for resources but haven’t decided which to use.

What’s next?

We’ll work on the tutorial, saving the game status,  experiment with new graphics and animations for roots and new animations for trees.

Game modes, point system and tutorial

Game modes

We created three different game modes for Nanuleu, apprentice, warrior and sage.

Apprentice, is more of an exploration game.  The player has more time to expand and collect resources.   Enemies appear in a longer interval and their trees do not expand.  This game mode is targeted to casual players.

Warror, is Nanuleu’s regular mode.  It’s a challenging mode.  If the player wants to collect all achievements (that are also new to the game)  it becomes really difficult.   The achievements for this mode are:  finishing the game in less than 20 minutes and  finishing the game with all 4 altars alive.

Sage, in this mode dark barracks (black trees) appear closer to the player’s base and resources,  so the player need to change their strategy.

Screenshot_14

Point system

We implemented a point system, based on the time it took the player to finish the games,  the altars that survived and the trees lost.  The idea is to use this point system to create a best score rank in the different platforms where the game will be released.

pic5

Tutorial

We found that for some users the interface was not very intuitive,  mostly in mobile devices,  so we created a simple tutorial that indicates where to click / tap to plant the trees.

The tutorial shows up always during apprentice mode,  before you’ve won the game in warrior mode and never in sage mode.

tutorial

Animations and Effects

We worked on a first iteration of animations and effects,  adding particles when a new tree is planted and also changing the animation of the roots.

animations5

Updated Gameplay Gif

gameplay3

Next

We will improve the animations of roots, trees and make new animations for the evil spirits.

Thank you for reading 🙂

 

Nanuleu now on the App Store and on Steam Greenlight

Nanuleu is now available on the App Store

https://itunes.apple.com/us/app/nanuleu/id1126212440?ls=1&mt=8
It is also available on Greenlight

http://steamcommunity.com/sharedfiles/filedetails/?id=709539925
This post is about all the changes we made before the release.

Tree Animations

We decided to change the animation of the trees. Previously we just scaled up the tree image, so when you planted a new tree it would just grow the image from very small to the full size.
We wanted it to look like the trees were filling, like when you pour water on a glass. This is the final result.

animations

We also changed the death animations of the trees. It’s the same but backwards.

deaths

New invader notification

We felt that the players were confused when a new invader appeared. It wasn’t very obvious where the new invader had spawn and they would move the map trying to find it. So we added a new effect.
Little black dots move from the new Invader tree towards the center life tree. So no matter where the player is currently looking, he can quickly find where the invader appeared.

trail

Victory Effect

We also added a new effect when the player defeats the invaders. Rays of light shine over the Life Trees.

win

Unit Animations

We changed all the units animations. Previously, as with the trees, we would just scale the unit in and out. Now the soldiers grow from a circle and explode when they die. We also changed the attack animation for the heavy and the design of the regular soldier.

units

Difficulty

We made some changes to the difficulty of the game. Increased the life of Protector Trees, so that they could stand the attack of more invaders at the same time.

When the player plants a Life Tree, for the first time, it emits a blast that kills all the invaders currently on the map. We changed it, so now it will also heal all of the friendly trees on the map. This will give the player more time to create more defenses or gather more resources without worrying about damaged trees.

Save Game

We added auto saving to the game. So if you close the game, when you can come back to the match you were playing. The game is saved every 30 seconds or when you manually pause the game.

Trailer

We made a trailer for the game, you can watch it here

 

We captured all the footage for the trailer using a modified version of the game. We added some special “cheat codes” so that we could speed the process and set the scene exactly as we wanted.
Some of the actions we added were:

  • Create any tree in any tile without worrying about resources
  • Spawning invaders immediately
  • Increasing the time of the game
  • Activating/deactivating the AI to fill the game automatically
  • Deleting trees
  • Changing the the terrain to a specific color.

cheats

Thank you very much for reading and don’t forget to check our Steam Greenlight page and vote for us if you like the game.

http://steamcommunity.com/sharedfiles/filedetails/?id=709539925

We’ll post an update here when the game is available in Steam and also in Android.

For more information you can visit.

http://nanuleu.selvainteractive.com

Update 1.12 & roadmap

Hello and thanks everyone for your feedback and comments!

We released an update last week that allows you to close the tutorial in the apprentice mode if you have won the game before. We also included localization for Chinese(simplified), Japanese and Russian.

Next update 1.13

We received a bug report: warrior’s target-finding algorithm breaks on some devices when you have too many units on the map.

We also received comments from some people that feel that Warrior mode is too difficult and frustrating.  We will tweak it a little bit, and change some things that we hope will improve the overall experience.  Some of these things are:

  • Speeding up animations: We think animations can be a distraction,  making the player think they cannot continue doing more actions if animations aren’t finished.  So we will speed them up to solve this issue.
  • Target-finding and path-finding algorithms will improve:  As result of fixing the reported bug.
  • Attackers will be slowed down just a little bit.
  • We will increase the time Dark Barracks(enemy trees) take to produce their first unit, so the player can have more time to expand to the correct location.

Those will be minor tweaks but we think they will improve everyone’s experience.

We will also work on a new icon for the game and hope to get this update ready next week.

Version 1.20

We’re planning to add one or two extra game modes in this update.  This is planned to be released at the end of August or early September.  We will let you know the exact date.

Thanks again! and we hope to receive more feedback from you 🙂

Screenshot_4_960x640_2

 

Nanuleu 2.0

Hello everyone! It’s been a long time since we updated our devlog. We made big changes to the game in the last update. We moved the game to version 2.0 instead of 1.20 because of how much the game changed.

One of the reasons we decided to make so many changes is that we got greenlighted for steam. Originally we were going to release the same version we had on mobile on steam, with some minor modifications. But as we received feedback from the players, we realized that we had to adjust the game to make it more fun.

When we started Nanuleu, the basic concept was this: A game that the player had to try many times to finally win. Then try to get a higher score and finally move on to another game. But players weren’t having much fun and they were asking for more content. So we decided to add more maps to the game and to redesign some of the core mechanics.

Gameplay Changes

Almost all the changes to the gameplay and mechanics were made to decrease the difficulty and to make the game easier to learn and play.

We decided to make maps smaller and to have less resources, we also increased the speed at which the resource are gathered to speed up the game.

We decreased the number of Life Trees from 5 to 4. This helped us to balance the map as sometimes there were some Life Trees too close or too far from one another. It also helped to unlock the War Tree faster.

We adjusted the times and values on many of the units and structures to make the gameplay less frustrating.

We added automatic root generation, this enables the player to plant trees in distant tiles without having to plant the roots one by one.

New Modes

The game only had one mode with 3 difficulties, which were Apprentice, Warrior and Sage. When the player started the game, Apprentice and Warrior were already unlocked so they could choose to play any of them. The sage mode was unlocked after winning Warrior difficulty.

All difficulties are similar in that they have the same objective. The main difference are the times and locations in which the invaders appear.

We tried to come up with more variations for the same objective but we couldn’t think of anything that would make it feel like a new challenge. So we decided to add new objectives in the form of two new modes.

We also decided to only have Warrior and Sage difficulties for the new modes, the reason behind this is that apprentice was designed to be a tutorial and there wasn’t a need for a tutorial for the new modes.

We ended with three total game modes:

First Contact: This is the original mode. The invaders appear in the borders of the map and make their way to the center from different directions.

Apprentice: We changed this difficulty to be a tutorial map. It is very easy to win and the player learns all the core mechanics. There are only 2 War Trees and they don’t expand. In this difficulty the player only needs to plant 2 Life Trees to unlock the War Tree.

Warrior: This is the original mode. Dark War Trees appear in 4 locations instead of the original 8 and expand at a fixed rate.

Sage: Dark War Trees appear in 8 locations and the altars are harder to protect due to changes in the map.

Invasion: In this mode the invaders come from the north and they have infected the land, which damages any friendly unit standing on it. We added special tiles in which the player can plant protectors, Once a protector is planted the surrounding land is cleansed and the warriors can attack the invaders without taking damage from the infected land.

Warrior: There is a single path to the location where the invaders spawn.

Sage: There are two paths to the location where the invaders spawn.

CounterAttack: In this mode the enemy is on the center and the player starts in one of the corners. We wanted the player to feel like this was the same scenario of the First Contact mode, but this time the roles are inverted. The objective is to attack the enemy from different directions. We added the Dark Life Tree and Dark Protectors to the enemy defenses. The Dark Life Tree casts a blast the first time it takes damage, this blast kills all the player’s warriors on the map.

At the start of the game there is only one path to the center. When the player plants a Life Tree on a corner, a new path to the center appears. The paths have infected land and the player has to plant protectors in the special tiles to clear a way for the warriors.

Warrior: The only paths leading to the center appear in the corners when a Life Tree is planted.

Sage: There are more paths to the center at the start of the game, this paths must be protected or the enemy will attack the player’s trees.

Map Generation

To be able to quickly change and test new maps, we decided to use a different method for generating maps.

We created small images, 29 x 29, which is the tile size of the full map. In this images we placed different colors on each pixel for each game element.

For each map we used two images, one for the land or terrain and one for the special tiles. This is how the images look for the CounterAttack – Sage map.

Land

Special Tiles

We read the images and go through them pixel by pixel, creating the corresponding tiles. After that we generate the resources with procedural generation and show only the necessary tiles.

Result

UI

Build Menu

One of the things our players told us, when they tried the game on PC, was that the Tree menu was designed for mobile and that it required too many clicks in order to plant each tree. So we decided to change it for the PC version.

The way it works in mobile is that when the player taps a button in the menu, it show the tree description, and then another tap on the button is required to plan the tree. On PC we show the description when the mouse cursor hovers over the button, and then only one click is required to plant the tree.

Mobile

 

PC

Scale

Another thing that we changed for the PC version was the scale of the UI. On mobile everything has to be big and easy to read, because the screen is small, but in PC there is more space and screens are usually bigger.

To achieve this we decided to have 2 different UIs, or canvas as they are called on Unity. So we only have to choose which one to show depending on the platform. We also added the ability to change to the mobile UI for players that wish to use a touch screen to play the game.

Mobile UI


PC UI

Victory Screen

As we moved away from the original idea that high scores would be a very important part of the game, we felt that the score screen still made a big deal about high scores. So we removed the detail numbers and instead we added a text message that tells a little part of the story. The player can still see the detail information if they want to by clicking on the score.

Current Goal

We also decided to add the current goal reminder again under the resource counters. We felt that sometimes players would forget what they were doing or didn’t pay attention at the right time. So this way the player always knows what is the next step.

New Path Finding

In the original game, all the tiles had a direct path to the center and that made pathfinding really easy. When we added the new modes and created the new maps, there were tiles that didn’t have a direct path to the center. So we changed the way our pathfinding works. We decided to use an algorithm called A*, and with this, the units were able to travel through all the map without getting stuck.

After using the algorithm for the units, we used it for the tree planting. Originally the player had to plant the roots one by one until they reached the tile where they wanted to plant the tree, but this quickly became very tedious and boring. So now when the player selects a tile, a path to the closest friendly structure is found and the price of all the roots on the path is added to the price of the tree. This gives the player more free time to think of what to do next or to move to another location on the map.

Side Scrolling

When the mouse cursor reaches the borders of the screen, the map moves in that direction. We noticed that a lot of strategy games use this feature so we decided to add it to the game. The original dragging of the map and moving with arrows is also available.

Alerts

One thing that we noticed when watching videos of people playing the game, was that sometimes their trees were under attack and they wouldn’t realize it until it was too late. So we changed the way our damage alerts work.

The alerts now show whenever a tree takes damage, except for Protectors because they are under constant attack and the alerts became annoying.  When the health of a Protector reaches certain percent of life, then the alert is shown.

Music

We added two more songs to the game, one for each new mode. So now there are three songs in total in the game.

Testing

Testing the game to polish the mechanics and gameplay took the longest time of the development of the game. We have played the game so many times that we have made many mistakes judging the difficulty of the game.

Before releasing on steam we shared a beta version to anyone that wanted to play the game. We sent them a survey with questions about the game, how they felt it, if they liked, if there were any bugs, and so on. This really helped us a lot to fix the game and to make the final adjustments.

Thank You!

Thank you for reading! You can find the game on steam , iOS, and Android.

Please leave any comments or questions and we will be happy to answer.