# Blogs

## Our community blogs

• 4
entries
• 3
• 157
views

#### Recent Entries

Latest Entry

should flatter to senior employees or employers , should join after-working dining together , should do singing well at employdickheads EVERYDAY

this is a disaster , no techs no passions are here. just fucked up with horribly low salary.

• 13
entries
• 0
• 205
views

#### Recent Entries

Latest Entry

Our first Improvement was an Item tag system.  Each color represents a Grade. (F = Red, D = Yellow, C = Green,  B = Cyan, A = Blue, S = Pink) These are place holder colors but they don't look to bad.

Second We have a new Item interface. which is accesses with a double click.  It dynamically populates the options based on the Item, E.G for a tool or seed the item would equip it to your hand. If the item was consumable, the buttons label would read "Eat" and it would be consumed instead of equipped.

and Finally the Item information Panel.

Like it, hate it? Let me know in the comments below.

—Brua-1589.

• 49
entries
• 2
• 707
views

#### Recent Entries

Latest Entry

One of our roadmap items was to give you access to a plugin that will let you manage calendars on iOS and Android devices. We are pleased to announce the availability of this plugin for beta testing.

We would love for you to give this new plugin a spin and let us know how it works for you. To get started, visit the the Corona Marketplace and activate the plugin.  You can then follow the integration documentation to add it to your project.

For iOS you will need to add permission strings to your iphone→plist table. Android permissions will be added automatically for you. If you run into issues with the plugin, please let us know in the forums.

• 3
entries
• 11
• 232
views

#### Recent Entries

Latest Entry

Part 1

1. It needs to work. And by work I mean execute without crashing.
2. It needs to do what you expect it to do.
3. It needs to have code you can actually read and debug.

Part 2

• No Syntax Errors
• No Warnings (from the compiler)
• It has tests (yes, even asserts)
• It passes test.
• It logs errors.
• It does not crash.
• Someone who doesn't know you won't kill you for writing completely illegible code.
• It has instructions. For the user.

• 6
entries
• 0
• 447
views

#### Recent Entries

Latest Entry

Augmented reality now is so intricately woven into everyday living and entertainment. Games, movies and even tattoo parlors make use of augmented reality apps. You most likely would have heard of the world-famous game Pokémon Go, and the massive reception it received worldwide. Do you want to know why it was such a massive success? Gamers will tell you that the more real a game is the better its reception. In other words, the closer to real life the game characters are, the more interesting the game becomes. Pokémon Go achieved that, it gave us fantasy characters that we could chase and capture like real life characters, and augmented reality was the backbone of its success.

With the success of Pokémon Go and other augmented reality apps and games, you may start to wonder how the mobile app development company came up with the awesome idea that so many people come to enjoy. Well, a lot of things come to play in bringing augmented reality to life and not just any life, a successful one, and every mobile app development company realizes that all of the features of their app will have to be more than satisfactory to be successful. To begin we will consider some features that augmented reality apps should possess to garner some measure of success in the market.

### GPS Functionality

Most devices come with the option of turning on location, an augmented reality app should be able to work with this already pre-installed GPS and work seamlessly with it. It will be cumbersome and redundant to build an app that will have its own GPS locator. Building an app with its own GPS locator will not be necessary if the app can make use of that on the device. Pokémon Go would not have been such a success if it was not able to work in real time with the device’s GPS.

### Real-Time Rendering

This is a must for all augmented reality apps and every ar app development company knows that for its app to be widely accepted there should be no time lag between processing information(could be space, picture or location) and rendering. Take, for example, google translate; just taking a picture of the phrase, word or sentence you want to translate and feeding it into the app gives you the translation into the required language in real time. It can even go ahead and pronounce the translation for you. Imagine how tiring it will be if Google had to search for about 5 minutes to come up with that translation. This point cannot be overemphasized.

### Good Spatial Recognition

Some apps are used for trying to fit wares, furniture or items into space. For example Augment, an app used to show customers real-life representation of their purchases. This app can also place the purchased item in different locations in the house so that the customer will be able to see just how the purchased item will fit into his home or office setting. Imagine trying to place a vase you bought online on your reading table, and because of poor spatial recognition, the vase keeps overlapping with your side table instead of sitting on it, that will be utterly ridiculous. So for augmented reality apps to be of any use whatsoever, these apps should have good spatial recognition.

### Ease of Use

The more complex running an app is, the more useless the app becomes to the customer or users. On the other hand, the more ease in using an app, the more effective it becomes to the user. If users have to provide complex or numerous parameters before the app works, then it serves no purpose but to annoy the users. Augmented reality apps should be as close to plug and play as possible. Consider the augmented tattoo app Ink Hunter, for example, it does not require you to draw up complex designs of your own or provide some other complex information before giving you beautiful tattoo renderings. The app is able to work without the need for such data. It simply renders the image on the skin of the customer allowing the customer to see what the actual tattoo will look like eventually.

### Be Social

The more social an augmented reality app is, the more it has to offer to the user. Pokémon Go had this feature and it proved to be a major selling point for the augmented reality game. The game offered the chance of joining teams once a certain level had been reached. A sense of camaraderie can be helpful for the user. And surprisingly most users looked forward to these social interactions. Some apps offer the users the opportunity of dropping messages at different locations, these messages can be read by other users of the app if it marked public or by specific users if the message is marked private.

### Entertaining

No one wants a boring app, least of all, a boring augmented reality app. If the app is not entertaining to use, there is really no need for even creating such an app. It must be noted that this feature does not apply to augmented reality game apps alone. Regardless of the purpose for which the app was created, its users should get excited whenever they use the app. This is a must for every app. Every experience the user has with the app should be an exciting one. For example, there is an all that helps in arranging furniture in an apartment. It will be entertaining to keep placing and then moving furniture till you get the best location. Entertaining will also mean that the users should feel like they’re a part of the experience. They should also be able to relate to certain aspects of the app.

Pokémon was a part of most gamers childhood, so it was quite easy for them to relate to the augmented reality version. This seems quite basic, but it can greatly affect the reception that your app will receive.

### Universal

If possible, the ar app development company should try to build an app that will be available for both iOS and Android users. It makes no sense to restrict your apps usage to users of a particular operating system. When the app works across both operating systems, the company will have won users on both sides. On the other hand, if the app discriminates against some users of a particular operating system, it shuts those users off and the potential market too. It will be more useful if it is possible to release most apps across both operating systems.

• 10
entries
• 4
• 806
views

#### Recent Entries

Latest Entry

Finally ! Release date is set for 27 October!

Here is a Launch Trailer for BB:

How do you like this video ?

• 26
entries
• 7
• 3584
views

#### Recent Entries

Latest Entry
Hi everyone!

As you might know we have been working on dressing our player character. So.. girls... here are some of the dresses our artist has designed!

SMLXL

Offtopic

As you know we are from Braga, Portugal and yesterday was a really sad day here. There were many fires, it was terrifying! Gil's house was actually threatened
Everything is calmer now and nothing happened to us but it was verry scary
This picture was taken by someone we know.

Cya Wednesday

The FAXIME Team

Follow us and keep updated at:

Instagram: https://www.instagram.com/faximegames
Pintrest: https://www.pinterest.pt/faximegames

SoundCloud: https://soundcloud.com/faximegames

• 31
entries
• 12
• 686
views

#### Recent Entries

Latest Entry

Welcome to Day 27!

Right now, we have a relatively complete game and in my mental roadmap, we only have a couple more things to do before we start exploring how to use VR and then implementing that back into this game.

There will be a lot of fun times ahead!

Our goal is to create a new enemy. Specifically, for practice, I want to create:

1. A lower health, but faster unit
2. A higher health, but slower unit

With these new enemies, we’ll have a more diverse and interesting experience in our game!

Today, we’re going to focus on creating our speedy unit.

### Step 1: Acquire new assets

The first thing we need to do is go to our favorite place in the world! The Unity Asset Store!

We’re going to look an asset to be used as our enemy. When looking for new assets, the most important thing for us is to find something that’s mecanimready.

If you’re not aware of the glory that is the mecanim system, you can visit Day 11 where we first used it.

The basic summary is that all Unity models can have rigged body structure that can share animations from other models with similar body structures without doing any extra work on our end.

### Step 1.1: Get bandit asset

Browsing around the asset store for an enemy to use and I found a nice bandit to use for the speedy enemy!

It’s called Basic Bandit:

Download and import the bandit into our game. It’ll be in Assets > BasicBandit.

### Step 2: Setup BasicBandit

Now that we have our assets the next thing we need to do is to setup up our BasicBandit asset to use our existing animation and scripts!

This work will be the same as what we have done with the knight model, except we don’t have to code anything this time!

### Step 2.0: Set Wave 1 SpawnManager to Spawn -1 Enemies

Not necessary, but for the ease of testing our new enemy. If we set Wave 1 of our SpawnManager, to spawn -1 enemies, we won’t create any new enemies and the wave won’t progress, allowing us to experiment around with our enemies.

Another option is to comment out the instantiation code in SpawnManagercode to not create any new enemies.

### Step 2.1: Attach the Knight Animatior Controller

The great thing about Unity’s mecanim system is that we can re-use existing animator controllers for models that share the same animation.

In this case, because our knight and bandit are both humanoids, we can share our Knight Animator Controller with our bandit.

Now let’s do it!

1. In Assets > BasicBandit, drag and drop Basic_BanditPrefab into our game.
2. Select our bandit in the hierarchy and in the Animator component, under Controller, select our Knight Animator Controller to fill in the slot.

You’ll have something like this now:

Now with this, our bandit will have the same animation rules as our knight (running, attacking, death, and idle)

### Step 2.2: Add the Nav Mesh Agent and the 3 scripts: EnemyHealth, EnemyAttack, and EnemyMovement

At this point, we want to re-create everything that’s attached to our Knight and move it to our bandit.

We want to add the following things to our BasicBandit by clicking Add Component in the inspector:

• Nav Mesh Agent component to be the navigation AI to make the bandit chase after the player
• EnemyHealth: to receive the damage when the player shoots the enemy
• EnemyAttack: to detect when the enemy injures the player
• EnemyMovement: to control the movement logic for the enemy

### Step 2.3: Setting up the Scripts and Nav Mesh Agent

Now that we have attached our script, we need to set them up.

### Nav Mesh Agent

For our Nav Mesh Agent component, we want to adjust the speed of how fast it moves.

Let’s set the Speed to be 3.25. Our Knight’s speed is 3.

### EnemyHealth

For our Enemy Health we want to set:

• Health: 5
• Hit Sfx Clips > Size: 4
• Set the 4 new Audio Clips to be Male_Hurt_01 — Male_Hurt_04
• Hit Sound Delta: 5

### EnemyMovement

For the EnemyMovement scripts, we want to set:

• Walking Clips > Size: 4
• Set the 4 new Audio Clips to be Footstep01 — Footstep04
• Walking Delay:3

### EnemyAttack

We don’t have everything for our EnemyAttack script, but let’s set what we can first.

• Attack Sfx Clips > Size: 3
• Set the 3 new Audio Clips to be Punch_01 — Punch_03
• Leave the Fist Colliders alone for now

Now if we were to play the game, our Basic_Bandit will start chasing after us, but he won’t attack us yet, we haven’t set up our triggers and colliders yet!

### Step 2.4: Adding 3 Colliders: Trigger Collider, Mesh Collider, and Fist Colliders

The final thing that we need to do is to add colliders to our bandit that will help us detect when the player is close, when the enemy damages our player, and when they get hit.

To do a re-cap the purpose of what we need to do, we need:

• A Capsule Collider to be used as a trigger to tell our bandit to enter attack mode if he’s near the player.
• 2 Box Collider that will be attached to the bandit’s hand to tell when we damage the player.
• A Mesh Collider to be used for detecting when the player shoots the bandit.

Select Basic_Bandit in the hierarchy and then add the Capsule Collider component.

We’ll make it a trigger, set the Y to be 1, and then expand Radius to be 1.5.

When you’re done, we should have something like this:

Note: the radius is the outer sphere that you see.

To do a re-cap, whenever our player enters the circle, in our EnemyAttack script, we’ll hit OnTriggerEnter() which is used to tell the bandit that it’s in range to be able to hit the player.

### Adding the 2 Box Colliders

Next up, we need to add 2 Box Colliders to our Bandit’s fists.

Select Basic_Bandit > Armature > Hips > Spine > Chest > Shoulder.L > UpperArm > LowerArm > Hand.L

We want to add a Box Collider to Hand.L

In our Transform, we’ll keep position the same, however, let’s change the Size of our Box Collider:

Size (X, Y, Z): 0.1, 0.3, 0.1

Finally, just attach the Fist Collider Script to Hand.L.

When we’re done, we’ll have something like this:

Now do the exact same thing to the other hand in Hand.R.

Next up is the Mesh Collider component.

As we learned in Day 20, adding our collider into the parent object will not work, we should put the collider in the location of the mesh itself.

This would serve us 2 purposes:

1. We can shoot the enemy
2. The enemy can push us around

In the bandit’s case, we have 2 pieces: the body and the clothes.

What you see above is the Mesh Collider in each of the pieces of the mesh of the bandit.

Let’s get started!

In BasicBandit_Body, add a Mesh Collider component, under Mesh add the mesh BasicBandit_Clothes. With this, you’ll have the 1st image above.

Here’s what it should look like:

Next:

In BasicBandit_Clothes, add a Mesh Collider component, under Mesh add the mesh BasicBandit_Clothes. With this, you’ll have the 2nd image above.

And here’s what it should look like:

At this point, we’re almost there.

We have the colliders to detect when our bandits get hit, however, if we were to try and shoot our enemy, we wouldn’t “hit” him yet.

### Step 2.4: Set Bandit’s Layer to be Shootable

As you might recall when we were shooting enemies with Raycasting in PlayerShootingController, we did an optimization to only hit objects that have a layer mask set to Shootable.

Select our bandit in the hierarchy and set our Layer to be Shootable.

Now with these colliders set, we can shoot the bandit and they’ll take damage and be knocked back.

### Step 2.4: Attach our Fist Colliders to EnemyAttack

Earlier on, we attached our First Collider script to the bandit’s hands. It’s time to attach both of our hands to our EnemyAttack Script so we can detect if either of our the bandit’s fists makes contact with the player in Attack().

In EnemyAttack set:

• Left Fist: L
• Right Fist: R

### Step 2.5: Create a prefab of our Bandit

Now that we have everything setup, we’re going to make a prefab of our finished bandit model.

Drag our finished copy of Basic_Bandit in our hierarchy into Assets > Prefabs.

Let’s also rename our prefab to be just called Bandit.

### Conclusion

Now with all these changes added in, we will have a fully functional Bandit enemy!

I do want to mention that the game won’t function perfectly, for example, if we were to get killed by the Bandit, he’ll continue to attack us.

The reason is that our Bandit isn’t in the Enemy Container game object, which means he won’t be disabled.

In fact, our current Bandit isn’t parented by anything at all! That’s why he doesn’t stop after the player character dies.

We can fix that by removing the bandit and adding him as one of the spawns for our SpawnManager, however before we do that, I want to create one more enemy to use.

Tomorrow we’re going to create our last and final enemy. Until then!

Source: Day 27

Visit the 100 Days of Unity VR Development main page.

• 17
entries
• 1
comment
• 7267
views

#### Recent Entries

Latest Entry

We talks about our new games...

• 26
entries
• 62
• 24654
views

Latest Entry

## NEW MUSIC (OBSCURITY)

Originally posted on FidelumGames.WordPress.com on October 1st, 2017

Here comes Obscurity!

This was the first song I made for The Wayfarer. I actually did intend to do something a bit (a lot) brighter, but at times you really can’t really control what comes out.  And since I liked how it sounded and felt, I kept doing it until it was ready. And I’m glad I did.

If all goes as planned, during the next week I should be getting a new pair of stands for my Behringer Truth B2030A monitors. After that I can direct these studio monitors correcly, which should have a positive impact to mix quality.
For now they have been positioned strongly asymmentrically, so they are next to useless during mixing, and 99% of the work has been done with headphones. That 1% is the last rouch check if there are any frequencies that come through in piercingly strong way.

Can’t wait to have them.

BR

Mika Pilke

## HURRAH! MILESTONE #1 REACHED

Originally posted on FidelumGames.WordPress.com on October 13th, 2017

First off:

# YAY!

I’ve reached my first major milestone in the development of The Wayfarer. My enemies (as far as behavior goes) are complete! They still need to be replaced with proper models and given the ability to die (along with dropping loot, etc.), but all of the AI and related systems are complete and, as far as I can tell, mostly bug free.

I think that, in order to stay motivated, it’s important to celebrate these small successes, so last night I had a few drinks, and today I’m writing this post and giving myself a pat on the back (good job, me).

So why did I decide that this was my first major milestone?

In my development experience thus far, one of the hardest and most frustrating things I’ve found is the difficult and delicate act of creating and maintaining complex interconnected systems.

All of the individual items I’ve completed so far for my enemies (attacking, spellcasting, navigation, stats, decision making, editor tools, etc.) have not been overly difficult to implement individually. Sure, there were some challenges, but nothing too major. The real challenge is making all of these things fit together in a way that they all still work, and doing so in a way that makes sense and doesn’t cause terror when thinking about having to change something.

The reason I’m considering this to be my first major milestone is because all of the features mentioned above, even though they’re all individual systems, are now combined into a larger closed system. This means that I know each individual system works, and I know they all work together, and the stress of having to make that a reality is gone! Moving forward, I can start working on smaller systems again (like player actions, looting, inventory management, levelling, etc.), which is a quicker, simpler and more carefree process than integrating said systems.

Of course, once those individual systems are done, I’ll have to integrate them into another closed system, thus reaching another milestone. But, to keep myself realistic, and to prepare myself for the difficulties to come, I do realize that once ‘closed’ system number two is complete, I’ll have to connect it to closed system number one.

I have no experience working with systems on this scale, so this is a huge learning experience for me, and I don’t know what to expect. Part of me is expecting the worst, another part is optimistic and hopeful that I’ve paid my dues in terms of keeping the code clean and sensible, and should reap the benefits when the time to integrate comes.

Anyhow, I’m super pleased and happy at the moment, and can’t wait to start working on new features again. Hopefully things go smoothly for the next little while and these posts will start getting a little more frequent.

This was a huge hill to climb, and I’m glad to be at the top of it (even though I can see the top of the much larger hill in the distance).

## SQUISHING MAGICAL BUGS

During most of my last five or so development sessions, I felt I was making very little progress.

I had my spell system pretty much complete, but the process for creating new spells had become too in depth and complicated, so I had to redesign some things and make some pretty major changes.

Originally, I had been using ScriptableObjects for my spells, and while it was cool, and made me feel like a ‘real game developer’ to be able to create a spell by clicking Asset>Create>New Spell in the Unity editor, it just wasn’t practical for my purposes.

I wound up sticking with trusty ol’ prefabs in the end. While the new system isn’t as generic as the old one (visual effects are now part of the actual spell prefab), it’s much more friendly and maintainable, and I’m able to create new spells in a matter of just a minute or two (not counting VFX creating time).

Reworking this system was fairly straightforward. What really sapped my motivation and frustrated me was a bug that I just couldn’t squash.

Many of the spells in the game will apply buffs to the caster, or to the caster’s enemy. These buffs have the ability to fortify or weaken any stat that exists in the game, and, when being used by an enemy, who the buff is being cast on (self or enemy), is important.

I’ve designed my AI in such a way that, after it has decided to cast a spell, it chooses one at random, filtering out any spells that aren’t available to be cast. I’ve defined a spell that’s unavailable as one which:

1. Has a range less than the distance between the caster and the target
2. Costs more mana than the caster has available
3. Added a buff to the caster which is still active

The most important item on this list, in terms of the bug I’m about to describe, is number 3. I don’t want my enemies ‘wasting’ a turn by casting a buff on themselves which they’re already benefitting from. However, enemies are fully ably to cast the same buff on the player multiple times.

The caveat with this, however, is that I don’t want multiple buff casts on the player from the enemy to stack. Instead, I want a re-casted buff to reset the remaining turn duration of the buff on the player.

The exact opposite was happening–the buff was stacking leading to a spell which should cause a -2 to strength to be able to cause a -10 (or whatever other number) instead. Additionally, this was causing the player’s stat to increase when the buff wore off.

This was a relatively small bug, but it drove me absolutely bonkers. Like I said, I spent somewhere around five sessions trying to fix it, getting little else done.

Here’s the original method which caused the problem:

    public void AddActiveBuff(Spell spell) {
foreach (StatusEffect buff in spell.StatusEffects) {
if (!IsBuffActive(buff)) {
} else {
activeBuffs[buff] = spell.Duration;
}
}
}

Can you spot the error?

I’ll give you a hint: I use a Dictionary to store my activeBuffs, where they key is a StatusEffect object (the contents are unimportant), and the value is an integer representing the number of turns remaining for the buff.

I fiddled with this friggin’ thing forever. I changed how I stored my activeBuffs, considered adding some polymorphism to my Spell class, creating multiple arrays to store the data–all kinds of things. In the end, I commented out a single line on a whim, and found the problem:

    public void AddActiveBuff(Spell spell) {
foreach (StatusEffect buff in spell.StatusEffects) {
if (!IsBuffActive(buff)) {
} else {
//activeBuffs[buff] = spell.Duration;
}
}
}

Yep. One line of code. Seems to always be the cause of these tricky bugs.

Because my spells are prefabs, the StatusEffect objects attached to them are instances belonging to the instance of the Spell when cast. Therefore, because the key in my activeBuffs Dictionary is an instance of a StatusEffect (something I overlooked, foolishly thinking that two separate but identical StatusEffect instances would be equal), I was adding a new entry to the activeBuffs Dictionary with the above commented line, rather than just resetting the duration of the existing entry.

Of course, when I discovered this, I shook my head, and solved the problem in about thirty seconds by comparing buff names rather than objects:

public void AddActiveBuff(Spell spell) {
foreach (StatusEffect buff in spell.StatusEffects) {
if (!IsBuffActive(buff)) {
} else {
foreach (StatusEffect activeBuff in activeBuffs.Keys) {
if (activeBuff.name == buff.name) {
activeBuffs[activeBuff] = spell.Duration;
}
}
}
}
}

Once that was done, I was able to move on to fixing another small bug with my custom Stat inspectors, decide not to make another change regarding how buffs decay (a concern caused by the bug) and add a small piece of code that ignores the turn system when the player is not in combat (allowing for quicker exploration).

Once those items were done, I suddenly realized that I had actually reached my first milestone and the frustration and lack of motivation I had been experiencing transformed into excitement and vigor.

One more time:

# YAY!

## WHAT’S NEXT

With that cumbersome set of tasks out of the way, what’s next?

Well here’s what my task list has to say:

 1.3.    Milestone 1 Wrap Up – Complete Basic Turn Based System In Progress 1.3.1. Refactor and clean-up existing code 1.3.2. Document all existing features – UML, GDD, Code Comments 1.3.3. Celebrate! In progress 1.3.3.1.              Have a few drinks (YAY!) Complete 1.3.3.2.              Celebratory blog post In Progress

Yes, this is actually on my task list. These things are important!

But, more technically, here’s what the rest of my task list looks like at the moment.

 1.4.    Player Combat Actions 1.4.1. Attacking 1.4.1.1.              Melee 1.4.1.1.1.                    Create Placeholder Weapon 1.4.1.1.1.1.   Attack Animations 1.4.1.1.1.2.   Damage Enemy 1.4.1.1.1.3.   Ranged (Spear, etc.) 1.4.1.2.         Ranged 1.1.1.2.1.                    Create Placeholder Weapon 1.4.1.2.1.1.   Define how moving projectiles affect turns On Hold/Tentative 1.4.1.2.1.2.   Projectile Animation 1.4.1.2.1.3.   Magic 1.4.1.2.2.                    Casting Animation 1.4.1.2.2.1.   Implement 1.4.1.2.2.2.   Dual Wield? On Hold/Tentative 1.4.1.2.3.                    Define how the player will use dual wield (Attack both at once, choose which hand, etc.) On Hold/Tentative 1.5.    Define item types (Consumable, Weapon, Armor, Quest, etc.) 1.5.1.Define item script heirarchy 1.5.2.Determine item commonalities and differences 1.5.2.1.              Create item hierarchy 1.5.2.2.              Weapons 1.5.2.3.              Create Weapon Scriptable Object 1.5.2.3.1.                    Make Weapons equippable (through editor) 1.5.2.3.2.                    Share common animation based on type 1.5.2.3.2.1.   Practice with Infinity Weapons 1.5.2.3.3.                    Practice with Mesh Effects 1.5.2.3.4.                    Integrate Infinity Weapons and Mesh Effects 1.5.2.3.5.                    Procedural Weapons 1.5.2.3.5.1.   Experiment with Infinity Weapons texture generation and Blend Shapes at Runtime

I made these items quite a while ago now, so the list will change before I actually start working, but this will give you a general idea of what I’ll be working on.

The On Hold/Tentative items are ones that might not be needed, or that I have yet to fully decide to include in the game.

## POSSIBLE NAME CHANGE

The last thing I’ll mention is that I’m considering changing the name of the game. I really like the title The Wayfarer; I think it sums up what the experience is essentially about. However, performing a search for the title, it seems too common a name.

The first page of Google alone is filled with restaurant pages, and there are even a couple of games already existing with names similar to The Wayfarer.

On the other hand, performing a search for my last game Pixel Zombie Shooter brings it back as the top result, and The Wayfarer has a much larger online presence than Pixel Zombie Shooter as far as all of the blog posts, Youtube videos, etc.

So, I think that if I’m going to change it, I should do it sooner rather than later. What are your thoughts? Anyone with marketing experience want to chime in?

• 142
entries
• 57
• 28837
views

#### Recent Entries

Latest Entry

In this daily blog (and video)-series I take a first impressions look at the best mobile games that I come by. Be sure to share your favorite mobile game with the rest of us in the comments below!

Snakebird is a visually appealing but mind(bird)-bending puzzler where the first 10 levels are free and a single IAP unlocks the full game (45+ levels).

The main reason I recommend Snakebird, however, is because of the great level-design, with each level represents an entirely new puzzle challenge.

My thoughts on Snakebird:

Subscribe on YouTube for more commentaries: https://goo.gl/xKhGjh
Or Instagram: https://www.instagram.com/nimblethoryt/

• 8
entries
• 0
• 135
views

#### Recent Entries

Latest Entry

In the monthly progress post I figured I needed a Game Design Document (GDD) before working on extra features. It would be a waste of time working on features when I have no clearer picture where the game should evolve to.

The first thing I did was searching for online resources. I have found a bunch, and decided to share those on a page dedicated to Game Development Resources for other game developers.

While working on the GDD I noticed it takes quite a lot of time and it is easy to get lost into details for a long time.

Then, after a week or so, I came into contact with a guy named Richie and he had the tip that I had to scope my game into 5 minutes of gameplay.

So in 5 minutes, the player has to know:

• what the game is about
• the basic mechanics
• if it is fun to play

With that I began to look at the GDD I made so far. I immediately noticed that I had way too much material for 5 minutes of gameplay. Obviously this is because a RTS game has several phases. It would be easy to discard the 5 minute thing, but I wanted to follow it though: what would be the essence, the end goal of the game?

Together with Dorus Verhoeckx, someone I work with together on our own products and dreams, I started stripping all stuff that might be ‘distracting’ from the main objective. This meant base building is minimized (2 buildings left). Resource gathering was cut – just get money from structures. Have only 1 unit type. Etc.

This was done on paper. A lot of stuff stripped and the core objective exposed. Then I started writing down what was left to do to get this into a working prototype:

Prototype, with todo’s on the right. Lots of the has been crossed, since I worked on them lately

So what is the essence? Domination in RTS games. Conquer specific structures, hold out long enough to score domination points. Resource gathering? I ditched that in favor of getting money for specific captured structures. (not all captured structures give you ‘domination points’ though). You play 5 rounds of 1 minute. After 5 rounds – the player with the most domination points wins!

Is it a good idea? Is it fun? What about all the other cool stuff I wanted in my RTS game?

Well lets first see to finish the prototype – I want to get it out before the end of the month. I’d love to hear how you guys think about this kind of game. And if you’re interested in testing out the prototype just let me know at stefan[at]indienamic.com. Then, after that I will decide if I miss stuff, want to re-add things and further iterate. My expectation is that there will be quite some iterations / prototypes / refinements before the final ‘game’ mechanics are there.

• 1
entry
• 0
• 57
views

#### Recent Entries

Latest Entry

Starting an outsourcing relationship is troublesome but how to make it more seamless? Tilting toward hiring an offshore software development company is obvious for cost reduction, high-quality software products, innovations but there are a great many of common risks setting your projects astray. The following questions are - “What are the challenges?” Let’s make everything as clear as a bell.

## Challenge #1: Lack of communication

Developing a new software product is a tedious and social process involving lots of communication to share your ideas with the development team and discuss the app concepts. It’s quite arduous when your team is miles away since an efficient communication is a key to a successful app.

### Solution #1: Use the Internet

Thanks to the Internet and its unlimited possibilities, long distances, and time differences aren’t a problem for modern entrepreneurs. You can use video conferencing, voice calls, emails to keep in touch with your app development team.

## Challenge #2: Loss of Control

One of the biggest fears is the loss of visibility and control while outsourcing an offshore app development company. Communication problems and slow response may result in increasing the costs and time required to build an app.

### Solution #2: Track Working Time

The key to eliminating the challenge is to manage the process carefully. Set weekly goals for the development team to ease the workflow and achieve better results.

## Challenge #3: Language Problems

One of the problems you may face while working with an offshore app development team is misunderstanding caused by lack of foreign language knowledge. Taking into account, the fact communication is truly vital to achieving success as an app entrepreneur.

You may face difficulties with the communication as it may be restricted by the ability to speak a foreign language. For example, you’re living in the U.S. with English as your native language, but you decide to hire a French software development team. Though English is a modern lingua franca, only a limited number of people can speak well English.

### Solution #3: Study the Market

To avoid that language misunderstanding, you should carefully select the country and the outsourcing vendor that have completed projects for foreign companies (and released them).

## Challenge #4: Low Quality

Once you have your product on the track, you expect to get a fully-functioning application meeting all your needs and quality standards.The chances of low-quality code is increased when hiring an offshore software development company. If you get a bad code and poor app architecture, you get frustrated and pay more to get it re-written. Thus you pay twice as much to detect and fix the bugs. Along with the increased costs, it takes more time.

### Solution #4: Check the Company Before Hiring

First and foremost, don’t get fooled by low hourly rates and never hire a company that you don’t know. Read the reviews, ask for a customer list. If the company refuses to provide a list of launched apps or clients contact data, I’d never outsource such a company. Check company’s profile on Clutch to make sure they can deliver a top-class software product.

## Challenge #5: Testing More Difficult

Of course, testing an outsource project is more arduous when comparing on-site testing. If you test a product and find out it isn’t the app you wanted to get, this needs to be discussed with your offshore vendor. And the following may become a real problem as the vendor might not be able to understand and then fix the problem.

Generally, it can be easily fixed when detected at the initial development stage and when the problem is improperly described and understood, this will result in a low-quality software product.

### Solution #5: Create “The Entering Testing Page”

By creating such a page, your testing phase will be seamless and smooth. This will help to lay out the existing problem and bugs more clearly. You can also use online tools for app beta-testing.

## Key Takeaways

Outsourcing a development company can save you a pretty penny that you can invest in the growth of your core business. Offshore development companies usually dedicate a particular team for each app type - iOS developers, Android coders, etc. thus the quality of your future app will be high.

When outsourcing an app development company, mind the above-mentioned challenges and pitfalls to avoid. Clearly, it’s a good financial and business option since maintaining an in-house app development team costs the Earth. If you know what to expect beforehand, outsourcing an app development company won’t cause any problems.

Short Bio:

Tasha Bronitska

I’m a Blogger at IDAP Group. Writing is my passion, and it’s absolutely true. Nearly all day long I craft must-use how-to guides. When I’m not writing, I’m running. Follow IDAP on Facebook.

Profile Picture

• 30
entries
• 35
• 30613
views

#### Recent Entries

Latest Entry

Prequel game Towards The Pantheon: Escaping Eternity is out NOW!
Itch.io: https://connorort.itch.io/towards-the-pantheon-escaping-eternity
Gamejolt: https://gamejolt.com/games/ttpee/280482
Due to complications the Steam version will release soon in the coming days. You will be able to find it at:
http://store.steampowered.com/app/709450/Towards_The_Pantheon_Escaping_Eternity/

Follow the development of Towards The Pantheon on social media!

• 2
entries
• 0
• 149
views

#### Recent Entries

Latest Entry

Are you aspiring to set your foot on the gaming world with an amazing 3D game? Do you want to build your game with the robust platform of Unity? Well, you already know how much important it is to find a reputed Unity game development company for building your game. If you are going through different bids and trying to find ways to choose the right company, you may feel a little confused about the priority of considerations or about where to start your scrutiny.

Here we are going to shortlist some of the key considerations to make your job easier for finding the ideal one among the multitude of companies working with Unity game development.

## 1. Make your priorities straight

You probably have a clear idea of a 3D game development project, and you are expecting to make a mark with the gaming experience of your still to come game. But that is just the beginning. You need to set our priorities first of all. Do you want to unleash your 3D game on several platforms including mobile, web, and consoles? Have you given a thought to the budget of the game development and post-development marketing? All these considerations should be your priorities.

## 2. Watch out for the key traits

Based on the kind of 3D game you wish to build you already have an idea about the kind if developers and their respective qualities you need for the said project. The Unity game developer of your choice should have enough experience in similar projects, and he should be reliable, passionate, responsible and communicative. He should have hands on experience in working in a highly collaborative development environment. Developers who have experience in being kart of both small and big teams are likely to have the required communication skills.
One big quality for a game developer that you must look for is the passion for technology and creative excellence. To make sure that your chosen developers possess these qualities check their social media status, read their written blogs and have a look at their portfolios and career graph. They must have a solid programming background and experience in similar game development project will be an added qualification.

## 3. Know the market

While having a game project in mind along with the kind of budget you should be prepared with, you should also have a clear idea about the gaming audience you are going to target with your new game and the detailed market dynamics. Have a complete analysis of the market with a comparison of different market rates, and a clear idea about how you are going to produce value over price. When you know that a great developer talent deserves a quality package, you never lose him. Do you know many east European countries really have a lot of talented game developers? Well, you should be ready with the price for the deserving developer talent.

## 4.The cost consideration

You must not forget that though the Unity game engine is relatively cheaper for a company to start, actual development and promotion of the game may involve a significant amount of cost. Apart from the financial cost, a lot of skills, commitment and dedication make a successful game. It is a time-consuming process, and naturally, the development companies take price in consideration to the development time involved. Just remember one thing. Any great piece of work that would deliver you millions in future cannot come cheap. So, always have a realistic budget in mind keeping the development challenges in mind.

## 5. On time delivery

The creation of a 3D game is just the beginning of a long process involving pre-launch and post-launch marketing, promotions and continuous upgradation. The game market is tremendously competitive, and no game idea is safe from being reproduced. Naturally, making a project successful also depends upon how faster a development process and time to market you can ensure. In this respect, on-time delivery of the finished game is a crucial consideration. Only when the game release date is finalised, the company can turn on to a robust pre-launch campaign to create buzz around the new game. Missing the milestones and deadlines is a sheer unprofessional act which only shows the incompetence of the developers. So, for your upcoming game project make sure it does not happen.

## 6. Don’t forget about the portfolio

If you are going to hire some developers from a Unity game development company, it is quite obvious that you would like to look at their portfolio to peruse their credentials and competence. But while focusing on the budget, development cost and associated negotiations with a development company, many of us just forget to have a deeper look at the developer portfolios.

Did they have solid programming experience with other projects? Did they have experience in building similar games? Did the developer achieve some professional acclamation or reward for any of his works developed so far? All these considerations are important. Three things developer portfolios should clearly mention such as the platform-specific programming skills and expertise, the years of experience and the projects completed and the work rate.

## It’s a wrap, guys!

Finally, you cannot always judge a development company simply on the merit of its completed or successful projects. This is particularly true in case of a high revenue and creatively demanding niche like games. Another company can hire game developers after building a hugely successful game. So, looking at individual developer portfolio along with studying the credentials of the development firm is crucial.

• 19
entries
• 0
• 599
views

#### Recent Entries

Latest Entry

We are Anti Gravity Game Studios, an indie game developer based in Hong Kong. We joined the Moscow white nights 2017 on 10-11 October and would like to share some experience about this event.

The venue is situated in Congress Park, right beside the Radisson Royal hotel (looks nice and standout, so it is super easy to locate). The actual layout is one big rectangle hall with the indie developer at the exterior wall surrounding the larger sponsors. There is another indie area which is separated out near the entrance. Initially, we thought the position is poor, but after talking to other indie developers in the main hall, we have concluded that the overall population attending is not that high.

I would like to point out the attendee of this event, mostly are mobile ads/traffic redirection company, where they are looking for clients to buy their PR packages or place their ads in your game. The second-most is localization companies, then the indie developers.

The booth is small, of course, we know it beforehand. The booth is 1m x 1.5m wall, which comes with two chairs, a cocktail table, wifi, and electrical outlet. To be honest, to showcase a mobile game/ console game, just bring 1 set of them. For VR booth, you will get a larger booth, 1m  x 3m (width), but to be honest, at most there will be around 10 - 15 people try out your game throughout two days. Therefore if you are a VR developer and have to travel far to set-up, I would greatly greatly recommend you NOT to come, unless you live in Moscow and coming over is easy.

The cost makes sense, as the booth is free, only expense will be your traveling cost, buying the pass and the cost of printing your poster and business card. So think ahead what you want to achieve before coming. For the indie pass, it cost 125 USD, and if you are exhibiting, you get a 15% discount. For a regular pass, it's 250USD, and premium should be around 375 USD (able to attend the after and pre-party)

About the lectures, they are not that interesting for the year 2017, as there are more online GDC lectures nowadays, attending just for the talks isn't worth the price.

It is quite crowded throughout the first day, but the population drops dramatically on the second day like 40% left, and many indie-developer did not set-up their booth or even left early.

At last, there is a 2meet system where you can schedule a time to meet developers/anyone; this is a handy tool to reach other related people, do utilize it!

In conclusion, it is worth coming to see the event, and the booth is free, so if you happen to be in Moscow, or decided to go anyway, you can set-up a booth and see if you can get anything out from it. The overall impression of this event isn't great as little international company was here, mostly local Russian companies, so the variety of people you can meet are limited. The up-side is there are free champagne, food, and drinks

• 3
entries
• 3
• 318
views

#### Recent Entries

Latest Entry

Finally, picswars.io is back from being hacked! Took that long because I had to ensure that security and backups are properly configured now and, well, life got into the mix.

One morning I woke up and found that my game got hacked: the whole db is deleted and replaced by a hacker's message.

Of course, negotiating with the terrorists is not an option =] So I decided to restore the db and improve the security. Luckily, I had backups, but I didn't run them frequently enough, so some data is lost (it runs more frequent now). I had to spend about 3-4 fulltime work days rebuilding the server setup in order to ensure the server security. Basically, I decided to rewrite the production setup completely. I had to do that so that I could configure everything without exploding my brains. It works now, phew!

A lesson learned: I should've used the technologies I understood right from the beginning. You shouldn't experiment with the technologies when you're building a production-level project.

• 434
entries
• 1178
• 762020
views

#### Recent Entries

Latest Entry

So the last couple days I've been working on something that I've wanted to do for a long time now.

I've been building it as part of a terrain editor I've been working on. It's still mostly uncomplete, but so far you can create nodes, drag links to link/unlink them, then output them to a greyscale image. In the works, I've got a few node types to implement, and a lot of glue code to implement saving/loading node graphs, hooking them up to generate terrain and terrain layer weights, etc... But it's coming along pretty nicely.

In the process, I have made a few fixes and additions to the noise library, to help with matters. One of the main additions is the Fractal node. The library, of course, has had fractals since the beginning, but the way they were implemented made it tough to allow them in the node graph editor. So instead, I implemented a special function type that can take as input a chain of functions for the layer noise, as well as other functions to provide the fractal parameters. Internally, the function will iterate over the number of octaves, and calculate the noise value. At each octave, the layer function chain is re-seeded with a new seed. This travels the function graph, and sets a new seed for any values of Seed type in the chain. This small change has opened up some easier ways of making fractals.

Additionally, I have added a Seeder module, which implements this internal re-seeding operation. I have implemented also a Randomize module. The randomize module takes a seed or seed chain, and uses it to randomize an output value from within a range.

It's kinda weird to talk about, so instead I'll demonstrate using a real-world solution to a common problem. Here is a fractal image of ridged noise:

This fractal is generated by layering successive layers, where the input is a Value noise basis passed through an Abs operation before being summed with previous layers. It creates the Ridged Multifractal variant, but you can see in that image that there are grid-based artifacts. These kinds of artifacts are common; each layer of noise is generated on a grid, and so the artifacts tend to sort of amplify as the fractal is built. You can mitigate it somewhat using different values for lacunarity (which is the value that scales the frequency for each successive layer) but that can only slightly reduce the visible appearance of artifacts, not eliminate them altogether. A long time ago, I advocated for applying a randomized axial rotation to each layer of noise, rotating the noise function around a specifiable axis in order to un-align the individual grid bases, and prevent the grid biases from amplifying one another. Previously, these rotations were built directly into the fractals, but that is no longer necessary. The new Randomizer and Fractal nodes now make this easy to incorporate in a more flexible way (or eliminate, if you really want artifacts):

In this screenshot, you can see that I have set up a fractal node, and for the layer source I specify a gradient basis fed through an Abs function. That function in turn feeds a RotateDomain node, which feeds the layer input of the fractal. Attached to the angle input on the fractal is a Randomize node, that randomizes a value in the range 0 to 3. The result is this:

You can see that the grid artifacts are gone. The fractal iterates the layers, and at each layer it re-seeds the Layer input chain. This means that any node marked as a seed is re-set to a new value each time. This means that the Gradient basis node (which has a seed) is re-seeded, and the Randomize node that specifies the rotation angle is re-seeded. This means that each noise layer generates a different pattern than the other layers, and is rotated by a different amount around the Z axis. This misaligns the grid biases, preventing them from amplifying each other, and gives a nice non-artifacty fractal pattern.

I still have quite a bit to do in implementing the rest of the noise functions in ANL. But there you go, that's what I'm working on right now.

• 4
entries
• 1
comment
• 386
views

#### Recent Entries

Latest Entry

As the machines are getting high tech with improved capacity and intelligent manoeuvres, the so-called science fiction of machines taking over human beings is no longer just a far-fetched reality, it is already near us. Many people are in the mood to predict the autonomy of machines as the doomsday for our human life and civilisation, but what no one of us can fail to admit is the inevitable machine led and machine dominated reality which is looming large in front of us. After the latest launch of iOS 11 many iPhone app developers chuckle at the promise offered AR and AI capabilities of the platform. AI coupled up with other innovative technologies will only prosper and make new inroads in every sphere.

It is needless to say at the heart of this evolved reality there is Artificial Intelligence referred as the machine’s own ability to think, respond, behave and analyse in a humanely analytical manner. While Artificial Intelligence is still in its nascent state, already the signs of its domination and widespread adoption are clear to us. What kind of future can we expect from this AI led reality? What AI has in store for us in the time to come? Here we can try to reveal Six such credible predictions.

AI-powered robots will provide safety from disasters

Disaster management will be one of the key advantages of using AI-powered robots. Robots thanks to advanced data analytics and access to real-time weather data can easily ascertain environmental changes and situations and accordingly can offer predictive measures. Thus in the years to come disaster management will be easier than ever before.

For example, robotic traffic control can assess the traffic condition better and accordingly can predict real-time solutions to ease out traffic movement. Similarly, natural calamities like flash flood, earthquake, tornado, etc. can also be predicted at the right time and thus disastrous situations can It'll enable drastically reducing, maybe even bringing to zero, traffic accidents and deaths. And enable disaster response for dangerous situations, for example, the nuclear meltdown at the Fukushima power plant.

Chatting is the new way to shoot

Chatbots are the new conversational interfaces which became a popular tool for supporting web visitors, app users and game players. The fun of having a conversation with a computer bot apart, these intelligent bots quickly became effective tools to replace human support. AI-powered chatbots have introduced to mobile games as well, and they brought great value to gaming experience as well. Don't be surprised in knowing that thanks to AI-powered bots chatting became the new way of shooting in mobile games.

In so-called strategy games with the earlier cold-war era, storyline computer guide with a remote character was common, and these games were dominant throughout the 80's. Now similar games are coming with AI-powered bots and players can instruct these bots to shoot and indulge in all sorts of actions. Chatting taking over the gaming actions powered by Artificial Intelligence will allow new game experience.

Fear of the unknown

What AI can ultimately become is also subject to a lot of speculations and apprehensions around the world. While the era-defining capability of AI remained a constant point of reference for the tech thinkers, the gigantic possibility hidden within the machine's intelligence can also have a disastrous impact on the human living and society.

One of the ways AI can have a destructive toll is by grabbing the human jobs and thereby causing unemployment. Robots already deployed into manufacturing units across the niches like automobile, heavy engineering, etc. will take more jobs when they become more capable with the introduction of advanced AI. Similarly, self-driving cars will take millions of jobs from the drivers and AI-powered medical equipment will replace many house staff in hospitals and clinics. Automation pushing people out of their jobs will be an inevitable outcome of AI in the time to come.

Breaking the new frontier of algorithms

Algorithms as of now have been developed to replace the human reasoning in some fields and give output based on human input. From search engine algorithm to the various types of machine algorithm that run devices and apps for different purposes are still limited in capabilities. But as data input and data processing power is getting richer they will become more improved and perfection driven than ever before.

The machine learning will become richer with diverse inputs from a wide array of sources and machines, and the applications will be more aware of the user contexts thanks to a wide array of powerful sensors capable of deciphering human locations, preferences, situations and movements. This access to user contexts and situations ultimately will pave the way for smarter and powerful algorithms more capable to think and behave like human beings.

Robot as friends

After all we human beings like to be accompanied by beings capable of understanding our needs and preferences, right? With this logic robots capable of understanding our sentiments, wants and preferences can not only become constant tools but can become friends. In the time to come with advanced AI capability to mimic human emotions and sensitive reactions, robots can play the role of a friend. There have been several successful experiments to give robots the power of emotional behaviour, and soon we can see them accompany us as friends.

Improved elder care

Eldercare is another major area which is going to be hugely benefited by AI-powered devices and apps. Already remote sending walking sticks, GPS controlled wearable devices are being used for tracking the movements of elders at times when nobody is there to look after them. More powerful, context-aware and sensitive AI-powered robots and devices will help further improving the care of elderly population in the time to come.

The huge possibility and promise of AI are no longer seemed like a vague and distant reality shrouded in mystery. AI is already here across a multitude of devices, apps and automation tools. With the time these AI-powered mechanisms will continue to be more sophisticated with advanced capabilities. That day is really not far when these machines will become real human counterparts in all endeavours of life.

• 31
entries
• 141
• 30207
views

#### Recent Entries

Latest Entry

Quick status update for anyone who may be actually following my rants: I still do the kitten orphanage thing and recently took in a homeless and very pregnant one, who gave birth 2 days ago (four tiny kittens, all still alive). Expect.... lowered volume from me these coming days

• 2
entries
• 2
• 226
views

#### Recent Entries

Latest Entry

We have been going on it for a while now and it’s time to tell you a little bit more of what we have been up to.

## Level Design

Our plan is to release a demo and test it to see the interest of the game and decide upon that if we want to continue production or not.

We are still very much in the planning phase and we have started to block out the first areas the player will experience.

The game will take place in Mont Saint-Michel, an island in Normandy France that due to tidal ways sometimes get cut off from the mainland. This is of course a prime location for a mystery adventure.

Blocking out the level like we have started to do helps us test the gameplay and general feel of the game as well as the scope of the areas before we dive into creating the actual assets of the game. This will save us time later in the project, so we have a solid plan on what we need to do.

The game will start on the shore leading up to the entrance to the city and during the demo you will be able to explore a small part of the city up the Grand Rue leading up to the hotel where the player character will stay during his visit to the island. This is where the adventure begins that will lure you into the mysteries of the island and your own history.

## Music

Our musician Ulf has also started testing out some music for the game and produced to test songs. What we want is something low key that can be layered for different areas and below you can listen to our concepts so far.

## Christophe Demers

Juras, our character artist has been hard at work modelling the player character. The next step is to texture and rig it to give it that final look and to be able to animate it.

We will not tell you much more about Christophe right now other than we have fleshed out a lot about the character and the events taking place on the mysterious island of Mont Saint-Michel.

## The Future

Over the next period we hope to get in the player character into the game along with other graphical assets. Hopefully we will also have fleshed out some of the puzzle ideas we have that we want for the demo release.

• 14
entries
• 4
• 299
views

#### Recent Entries

Latest Entry

I’ve been contemplating on design of the weapon system and upgrades for a lot of time. I wanted the game to be based on skill but have a variety which would add to the replayability of the game at the same time. Here are the basic definitions i have decided on:

• Game will contain about 30 weapons
• Every weapon can be upgraded 4 times (levels 1-5)
• Ship has two weapon slots available, you can freely switch between weapons in game
• You can’t have same two weapons equipped
• You eject the currently active weapon by picking up a new one that’s different

For example, you have Pulse Gun Level 1 equipped as active weapon and Biter Level 1 equipped as inactive. After blasting the enemy transport you come across Ripper and pick it up. Since you don’t have it equipped in any of slots, it will replace the active weapon and eject Pulse Gun Level 1. If you wanted to replace Biter, you could simply switch weapons to make Biter active and replace it by picking up Ripper. This will be a common occurence for adapting to the enemy types because of their vulnerability or resistance to certain type of damage (ballistic/explosive/energy/special against normal/armored/shielded types of enemies).

I could make things simpler in design and coding by simply omitting the part where the replaced weapon is ejected since there’s a small chance of picking it up by accident since it involves pressing a key while you hover over the weapon. However, two player mode requires that feature for the weapons to be interchangeable between players and that is a great way to improve cooperation, gameplay and combined firepower.

Due to some design limitations i had to make a hard choice that can affect the future gameplay on upgrading the equipped weapon and few solutions came to my mind.

1. You can only upgrade the weapon if you pick up the exact same weapon. That way, either equipped or not, the weapon in players possession is upgraded to the next level without any ejection which only happens when you are picking up a weapon you don’t have equipped on any of the slots. While challenging with high long-term impact on decision-making, you only have 6% chance of getting the same weapon from the transport which is slim to none and could severely hamper the player experience. If weapons had only one level the approach would be viable, but with total of 150 weapon levels it would only be frustrating.

2. Whenever you equip a weapon that is not equipped it is always at level 1, but when you upgrade any of the weapons on ship to level 2, the weapon you replace the level 2 weapon with will also be level 2. Basically, if we modify the first example a bit so the active weapon (Pulse Gun) is level 2 and inactive weapon (Biter) is level 1, when we pickup a Ripper instead of Pulse Gun it will automatically be upgraded to level 2. Opposite to first approach, it is less challenging and encourages experimentation, but it comes with a design problem which i’ll explain thoroughly.

When we picked up Biter it is upgraded to level 2 on the ship and Pulse Gun level 2 is ejected. This enables us to switch Biter to active weapon, pickup the level 2 Pulse Gun, eject the Biter, and then pick up the Biter again which will automatically be upgraded to level 2 now. While requiring a bit more speed to do it in a chaotic environment i would considering it cheating since you’re upgrading both weapons that way and that is certainly not something i plan to implement. As i noted in the introduction, i could simply disable the weapon previously equipped to be ejected, but that beats the idea of switching weapons between players which i find to be a great gameplay feature of a co-op mode.

Maybe i’ll disable the feature of ejecting only for single player mode for now.

3. Make weapons upgradeable only by picking up the same weapon as equipped, but increase the chance of spawning a weapon you already have

The maths on this one are simple, though a bit tedious to code. You have 25% of transport spawning active weapon, 25% of spawning inactive weapon and 50% chance of spawning a new weapon. This comes with a different kind of trade-of. Though 25% is a lot it may happen that you rarely run into a weapon you want to upgrade. On the other hand, you may always run into a weapon you already maxed out. This discourages experimentation since you will always want to hold on to your maxed out weapons, no matter how good or bad they are. There are no bad weapons per se, but holding on to weapons of the same type greatly decreases success.

Though not originally meant to be implemented, this could pose a good solution combined with approach 1 or 2. It is simply a kind of a joker card which levels up your active weapon without worrying if it’s the same one. If you pick it up, the active weapon gets upgraded and you just keep on blasting.

Which solution would YOU like to see implemented?

The post Weapon upgrade system designs and limitations appeared first on Fat Pug Studio.

• 48
entries
• 85
• 49822
views

#### Recent Entries

Latest Entry

Hi everyone!

This entry is a bit more like an announcement and less like a devlog entry, but here it goes:
I Am Overburdened is going to be released on October 23 for PC !!!

Here it is, the release trailer featuring some fun game-play footage in all its glory:

## Store, platform, price & wishlisting

The game will be sold primarily through Steam and itch.io for Windows PC initially. The future platforms will depend on how well the game does sales wise. I would not like to promise any other devices/OSs upfront as porting can be a big effort so if the game flops I may not have the time/capital to deliver.

It will cost 4.99\$ (may vary based on store & region).

It is a relatively short game, but has a huge “replayability” factor.

Since it is run focused and has permanent death, completing it once will take less than an hour, but the game has enough content (artifacts, monsters, procedural dungeons, unlocks, game modes) to keep it fresh for dozens of playthroughs.

I really believe it is a correct price point. It has a lot of fun stuff to keep you entertained for a while .

You can already wishlist the game on Steam to get an e-mail on release day:

Or you can follow my developer profile on itch.io to get a notification:

My website, the Steam store-page and the Steam Community Hub already has a lot more information about the features of the game and the release itself.

## Release calendar

I’m doing a little marketing “sprint” thingy up until the release day. I’m calling it the “Wishlist Release Calendar”. Essentially, to promote the game a little, I’m going to release an artifact from the game every day with its “fluff” text on various channels (here too) updating or posting the new version of the following image:

## Heeeeeeeelp!

If you like the game or liked it’s development “story” you can help me. Wishlisting the game now on Steam (even for buying it later) or buying it on release day (there will be a tiny discount ) supports me tremendously. Even if you are not really interested in buying/playing the game you can help. How ?! It’s simple, share it. Share a store-page link or the trailer with friends and relatives who may be interested in playing it. That is all! It’s really nothing, but it may allow the game to reach a broader audience, and thus in the long run may allow me to further support my game development journey .

## Promises, future

No one knows how the future unfolds. I have confidence in the game, because it is AWESOME, but I’m crazy nervous . The success of a game doesn’t only depend on its quality (or I should say the quality it’s developer perceives ). No matter how this release turns out I can promise more devlog entries . At least one about the last development weeks of I Am Overburdened and a little later a postmortem entry about it.

My journey may change course, but it doesn’t end here , wish me luck !

Thanks for reading and thanks for all the support so far!
Take care.

• 31
entries
• 13
• 10870
views

Latest Entry

### Building Block Heroes - Secret Rocket Base

After making their way through the depths of the Oceantide Channel, the Building Block Heroes find themselves at the Secret Rocket Base!

### Description

The Secret Rocket Base is a well-hidden military installation that houses a space-faring rocket that the Building Block Heroes will need to commandeer in order to attack Rupert's Moon Base directly.

The Secret Base is probably the most difficult area in the game if time limits are enabled due to the barriers the players encounter. The barriers in this case are literal, as the new type of block encountered in this area are called Barrier Blocks.

Barrier blocks are more durable than regular blocks, requiring three blocks or breakers of the same colour to be detonated next to them before being destroyed.

The enemies in this area are relatively benign and just patrol back and forth like enemies in earlier areas. However, the enemies in the Secret Base are much bigger than other enemies, which forms a problem in and of itself.

The boss of the Secret Base is Rupert himself! Or, rather, Rupert taking potshots at the heroes from a gun turret.

Rupert will follow the heroes around with a targeting reticle, taking aim until firing a shot that obliterates all the blocks around him or her. It does help to have a friend for this battle, as Rupert can only target one hero at a time. However, he does fire more frequently when there are multiple targets for him to take aim at.

### Design

The Secret Base was a huge pain to design. The colour scheme for this area wasn't immediately obvious, and it was difficult to think of one that would be unique. Specifically, I was having trouble figuring out how to make the mechanical parts stand out among the rocks. The breakthrough came when I decided to turn the rocks into a brown/tan colour, which immediately solved the problem of making the area look unique.

This itself lead to the design of the rocket because it opened up the possibility of a more cartoony and colourful rocket rather than the plain, grey mechanical one I envisioned at first. I'm a big fan of Tintin comics, and while I was designing the rocket I was reminded of the one that Tintin took to go to the moon (which itself was inspired by the appearance of the infamous V2 rocket designed by the Germans in WW2). I figured I could use a similar checkerboard pattern for my rocket.

I knew I wanted a gun-based boss to fit with the military theme of the area. Originally, the boss was a regular Mechafolk boss, like in the other areas. However, as I was designing the boss, I decided to throw Rupert inside it to add a dash of colour to the boss.

The music was inspired by early Command and Conquer games, with their industrial funk tracks that took a military/industrial setting and made it catchy rather than being serious or sober like one might expect. For this I started off with the electric guitar hook and added a fast, upbeat percussion track. Thankfully, military settings tend to lend themselves quite well to brass melodies, which at this point were starting to become something of a hallmark of my music. The melody, then, was an absolute cinch to compose once I had the background hook nailed down.

Let me know what you think! The game is on sale this week on Steam:

• 13
entries
• 4
• 2921
views

#### Recent Entries

Latest Entry

Short update: I have finally released Farkle Friends to the masses!

You can play it on Steam, Itch, and GameJolt.