Another busy week. The wife is still in the hospital. I know everyone has a different religion, but whatever religion that may be please send prayers her way, it’s much appreciated. She currently has an infection and with ImmunoTherapy this needs to be treated immediately. It is very difficult times for us right now. Working on the game is definitely an escape and keeps my mind busy from going down a rabbit hole of thoughts with everything going on.
Lots was done with the game. Here is a breakdown:
In Game store created. At the start of each chapter in the starting room there will be a medical supplies cabinet. By interacting with this you are given the option to buy firecrackers, immunotherapy, and a temporary heart increase. You can use the coins that you gain by playing the game. The more coins you can save up the easier it will make the next run.
In game coins are now saved from previous runs. Every run will make you stronger. The coins collected are now saved to your coin pool. You can now save up coins to use in the in game store.
I changed the world layout of chapter 1. While I was planning out Chapter 2 I came up with this idea and wanted to implement it for Chapter 1 as well. Now in the path room where it splits off into 3 paths it will no longer be an easy, medium, or hard path. Now at the start of each game one of these paths are chosen as the path that leads to the boss. So you have a 33% chance of choosing the correct path. If you choose the wrong path there will be a locked door right before the boss so you will have to double back and pick another path. This time you have a 50% chance. Now most likely I will create an in game item that is a KEY. This can unlock the locked door if you choose the wrong path, but this item will be costly. So this is the new layout already working for Chapter 1 and this is what will be used for Chapter 2 and all other following chapters.
Chapter 2 has been started. I have created the starting room. The complete room layout is done. This chapter the rooms will run vertical, so doors on top and bottom. Also you will see this Chapter is OUTSIDE! This Chapter is titled “The Garden”. Chapter 1 is called “The House” . These names will make sense once you learn the story.
Chapter 2 Boss has been created and almost complete. The only thing I need to do is the boss intro. He does not have a name yet. I will show him off only a little in the video. He has a very interesting mechanic to him. He is a 20 crab like guys that are all attached. If you kill off one of them it will split them into smaller pieces. All of them have to be killed to finish him off. There’s two of them total of 10 each. So as you hit him many pieces can be created.
1 new enemy was created for chapter 2. You will not encounter this enemy until you reach chapter 2. He is very unique and different than the other enemies. He also is not a Germ or Virus. He is called the FireFly, and that’s really what he is, except much larger. He does not go out of his way to attack you. He will continuously fly around a selected bush. He also will change the direction he is looking so that he is always facing you. If you get to close he will attack you. You will have to destroy him to move on, but watch out when you hit him to many times he will begin to flash, once he starts flashing you better run! He will explode and shoot out fireballs in all directions!!
Also created 2 new room hazards. One is the fire pit. This fire pit serves two purposes. Will be a light source in the dark outdoor levels but it also is a hazard. If you get to close it will hurt you. So stay away. The next hazard is the blow dryer. If you get to close to this it will turn on and blow you away. Watch out there’s going to be a hole near the blowdryer and you will get blown into it. You can tell when the blow dryer turns on as you will see the wind. These two room hazards and new enemy will def allow for some interesting room creations.
I have started on the options menu for the game. You will see the title screen updated with an icon for Options, Pharmacy (in game store), and you can now see your coins. You can now tap on options and go to the options screen. So far I have the tutorial all setup and working. I will show this off in the video below. Other options to be added are sound control (once there are sounds and music) and credits screen.
Added more sprites to the title screen to be selected randomly.
fixed more bugs
Also I set it up so the dodge ability is automatically equipped at the start of each game. This is an ability that everyone has at the start of the game and will most likely be the one that is used the most and every run. This saves the user time of opening the inventory screen and equipping it.
Changed the darkness on the dark rooms so that it’s not so “dark”. This looks much better in my opinion and helps you see everything better when not lit up.
Next I will be working on finishing Chapter 2 with creating all the random rooms. This should be done within this week. Also need to finish the options menu and the pharmacy store (permanent upgrades). Then need to add sound and music and polish the game. We are sooooo close to being done!
This video will show off the options menu and tutorial section:
This video is showing off the in game store (medical supplies) and Chapter 2 “The Garden”. Just to show it off I have the player going from Chapter 1 starting room directly to chapter 2. This is only for debug purposes.
View the full article
This is the second entry of my development blog for my project 'Tracked Mind'. I recently returned from vacation which is why this blog update is shorter than last time. I'm gathering my thoughts at the moment about how to plan what to do next, although I've already continued to work on the game
I have been focusing on animations for the AI and it takes a lot of time to get things right. Luckily there are new animations in the game since the animations that the AI had in the alpha footage are very "stiff" so I'm happy that I've got some new ones
I have also created a new level for the beginning of the game (it's in a rough state at the moment) but it's nice to build up the start of the game to test some ideas and to see how the pacing is. The movement of the main character is supposed to be slow but making it too slow will just be annoying. Those details are easy to fine tune along the way though
What's new since last post? Here are a few things:
Added different sound effects for bullet and shell casings that are being ejected from the Player's weapon when firing.
Added a new level.
The melee weapon system has been tweaked slightly, it's still a placeholder system.
Added new effects that occurs when the Stress meter is full.
Added light effects that appear when firing weapons.
Tweaked the bullet spread for the pistol and shotgun.
New music tracks added.
Fixed a bug that caused physical objects to move in "unnatural" or illogical ways.
Other minor fixes.
Melee system is not working at certain distances.
Thanks for reading!
Without an exciting combat system, adventure games can feel like walking simulators. To prevent this, I designed various interactions and doubled down on the "tiles decaying into lava" mechanic. Adding more interactions for skills you've already implemented is a great way to add extra depth.
When dealing a fatal blow to an enemy, you get the chance to knock them back. Since most enemies have death effects, this combat trick can feel very rewarding. Pushing a Roaming Flame towards another foe can result in an easy double kill and slaying a skeleton over lava will create an icy bridge.
Here come the bugs
Halfway thru this project I decided on creating real time events that can trigger (like a bear trap) even though the main gameplay is turn based. This change created a swarm of bugs and I tried to tackle them one by one which was a mistake. When you find a bug, it's worth the time to investigate the root of the problem instead of creating a band-aid fix. Quick fixes can be helpful if you're on a short deadline but they are not reliable and can bite you in the ass later.
Outwit hostile enemies
Originally I never coded anything to prevent the player from easily disengaging combat but this caused a couple problems. While fighting the player never felt in danger of dying and the fights didn't feel unique since you could always run away. That's when I decided to give each monster their own personality in regards to how passive or aggressive they act. Certain enemies will chase you down if you hit them once while others will start running at you if you walk near them. This can even be used to the player's advantage by pulling an aggressive enemy into a trap.
Follow Untold Tales on Twitter for more updates.
Hope rises as pieces of the overworld are coming together.
Weighed down by post-delay sad vibes all week and only just now getting back into the swing of things as I write this at 3:30am on a Wednesday. This week was code fever and I wore a programmer cap tight while sprucing up BGP's bones.
Lots of things are working better than ever, and lots more are sure to come. The real issue right now is seeing how much can get up and running before BronyCon. The panel is going to be a slideshow about game development in general, some Q&A between slides, how I came up with and created BGP, and what features I have left to create and how I plan to implement them.
And all that will be sandwiched between a Trailer to show off the game and a gameplay demo of the battle system and overworld. Then I'd like to have some sort of teaser finale to send everyone off with and encourage them to download the demo to their phones on the way out so they can remember the game later.
But how much I can show depends on how far I get in the next 6 days, so fingers crossed, I won't hit any more road blocks. Every precious minute counts right now, and I think I might just barely make it. So let's see what's been done in the past few days.
His Majesty, the PrefabI must admit that i’ve been a bit what you could call ‘lazy’ for the past few months. Why is lazy hyphenated? Well, because i’m not really lazy, i just tried to finish a game from 0 knowledge of Unity in under two years, which is not an easy task. I spent a lot of sleepless nights working, had a few burnouts, but one thing ultimately slowed down my progress to almost halt.
When i finished most of the mechanics for the game and got to the most important part – making content – i simply couldn’t find any more willpower because of the tedious process involved in making hundreds of enemy waves. I believe someone with better coding skills could make a level editor and finish it much quicker, but with my knowledge, i had to do everything by hand and i kind of lost the motivation. Let’s delve a bit deeper into the problem.
One of the things i really love about Unity is use of Prefabs. As someone who is not a programmer by trade, it was easy for me to relate to something drag and droppable, an object with belonging properties that is simple to instantiate and easy to manipulate without much hassle. Two years ago, one of my first questions on Unity Forums was about something that i didn’t even know what is called back then – Nested Prefabs. I couldn’t understand why instantiated objects could have child objects that have child objects who also have child objects can exist in the scene, but not as a Prefab. That pretty much broke my building blocks concept of making a game.
Harsh red line reality checkAs you can see, i imagined the waves of enemies to be compiled of squadrons (as well as waypoint and single enemies, about which i wrote in my previous logs) which would be a Prefab object with lots of children objects (singular ships and their engine jets, weapon, tags for missile homing and so on). Unfortunately, Unity supports only one level of vertical nesting in the project, so while an object can have literally hundreds of children, non of them can have their own. Since i read that the Nested Prefabs are something that was planned more than five years ago and not yet in the making i tried a few assets that simulate Nested Prefabs but to no avail. You’ve probably seen the horrible reviews on the Asset Store, most of them are abandoned, buggy, slow or complicated. Since i found no decent asset that will enable me to work the way i imagined, i resorted to the usual workflow of instantiating a Prefab and populating it with components that i needed.
The usual get this/set this workflowIt wasn’t too hard for single enemies, all i needed to do was instantiate appropriate objects on designated locations and that’s it. I learned a lot of things in the process, getting and setting the properties of many available components and their variables, the importance of pooling and the way it works, managing performance and so on. I must admit i had more than a handful of situations where i didn’t know how to overcome some of the challenges, but i’m grateful for them since they were an opportunity to learn something new through problem solving. When most of the stuff that make the core of the games look and feel were finished, the harder part of making a game in the true sense of words came. I won’t repeat myself too much, you can read more about my process of making waves in this and this log. In short, instead of dragging and dropping positions where i want the ships to spawn, assign the wanted behavior to each one depending on the wave structure and simply save all that as a prefab i need to:
Have specific spawner types. That means single enemy, waypoint enemy and squadron enemy spawner with their locations.
Make a specialized movement FSM’s for almost every enemy type that will dictate movement direction and scale of ships and ships’ children. For example, engine jet needs to be a separate object so it doesn’t flash with the ship upon bullet contact but it must be properly rotated and scaled depending on the spawning position and spawner parent of the parent (yeah, even i lost it while reading).
Assign more elements to pool which slows down the compilation time and time required to start the game. Instead of pooling one ship with all the needed components i need to pool the ship prefab, jet prefab, weapon prefaband in some cases multiple weapon prefabs so the pool size for ships is actually at least three times the size in terms of object number. I’m fairly certain that it’s better to have fewer objects to instantiate regardless of their complexity (number of components attached).
Manually set the spawning position of each ship in the wave. This is the worst part, it got me completely devastated. I need spawners for assigning some general behaviors and general screen position, but all the fine arrangement of ships in the wave must be done by hand. Not completely, but i need to put the ships in the scene so i can get their coordinates, then copy them into the spawning FSM of the squadron. Sure, i need to position the ships with nested prefabs too, but only once and that’s it. Doesn’t sound like much of a fuss, but imagine having hundreds of waves to make with some of them having double digit number of enemies that need to be repositioned upon spawning.
Set Position, Set Position, Set PositionI’m sure some people don’t even use prefabs but create instances and populate them on runtime and i presume some more C#-savvy people will find nothing unusual in this and develop their own systems for handling the situation, especially big teams. But i’m neither of those and, for the time being, i really need nested prefabs to finish what i’ve started. Prefabs are great game building blocks that further upgrade great tool that Unity already is and we should be really glad they are taking into account the needs of small or one man teams. I’m anxious to see further improvements that the new prefab system will bring to the table in the future versions.
The post Ode to Nested Prefabs from a noob indie dev appeared first on Fat Pug Studio.
View the full article
After attempting to texture some models recently, using projection painting in 3d paint, the new healing brush is proving fantastic at healing up those edges between projections, but I must admit I get very frustrated trying to find suitable reference images. Part of the problem I have decided is that I'd often like to be able to have larger, more homogeneous areas of texture to clone from.
Given that I have a reasonable healing implementation working, it struck me I should be able to have some algorithms for doing this little job for me, to provide better source material for painting. I thought about putting this ability directly into 3d paint, however, it seemed to make more sense to do a separate small utility app for this kind of thing, which might be useful to more people.
So, eager to not make the major mistake I made with 3d paint, that of under-engineering the initial program, I decided to make a positive effort and spend a few days building a solid backbone to the texturing program, so it will be easy to maintain and add to in the future.
Instead of making a photoshop like affair, this will be a very focused app, and at the moment I'm thinking in terms of a node based editor with some input textures, and methods, producing intermediate and final textures for export. I'm planning for you to be able to move the nodes in the UI, assign inputs and outputs and parameters.
Although the UI is not yet operational, the framework is getting there and I've implemented a first test method. I decided one useful first pass before other methods would be to equalize the colours across an image. Here is an example I have run it on a skin photo, left is before, right is after. Bland and boring on the right, but that is what I am going for, it should be easier to clone etc. The way the method works is it first finds the average colour in the entire image, then gaussian blurs the image. For each pixel it then finds the difference between the blurred colour and the average colour, then adds this difference (with a multiplier) to the original pixel colour.
This has the effect of reducing local colour contrast, or increasing colour contrast depending on the sign of the multiplier.
Anyway, obviously loads more methods to come, maybe some using variations of the healing technique from Georgiev's paper. All colours are converts to floats, and can be converted to linear, and HSL or LAB colour spaces.
I'll be the first to admit I've been overwhelmed by life and a bit burned out on Game-Guru. This has coupled to a sort of fallout with doing this blog, which I will have to start making some changes to to make it more functional from my standpoint. At least, in the near term.
I will try dropping the 'whats new in the store' as this section alone takes inordinate amounts of time for this blog.
Game-Guru Official News:
Game-Guru continues their march forward with Github-powered updates. It's producing a lot more over this last year than it's done in the last 4 or so, so it's a lot to keep up with. The latest batch of updates resolved the following:
"Back in the main product, we continue to improve existing features as much as adding new ones, specifically an improvement to the depth buffer which controls the fidelity of visuals when viewing objects at a distance. In the previous update, some camera distance settings could lower the resolution of the depth buffer causing z-artifacts, which has now been solved by a higher quality depth map. We'll continue to upgrade more entities to PBR assets in the background, and in the meantime, if you want to get your hands on the GameGuru Mega Pack 1 DLC, it's currently on promotion right now:"
However in addition to materials updates for existing 'mega packs' and the addition of a new construction pack, there's also engine-based updates which are pretty regular now. I wish they'd produce patch notes, however, to help make my job curating it a bit easier as there's simply too much to follow at any given time.
Regardless, it's still coming along nicely.
There's also this gem: https://forum.game-guru.com/thread/219846
With Preben adding some very big updates to the lighting system. I've also heard that others are adding 'panther AI' to the game engine as well.
What's new in the store: Check it for yourself this week :P
More seriously though this is the most stand-out item of the last few weeks - pasquill's shipping containers set. Very well priced, very high quality.
For four dollars, you can't beat that. Also - I've updated the pricing on my own store items, significantly reducing MANY of the cost of packs as they stand. Some are down 15-75% in cost. Check out the packs here today!
Notably I found this awesome addition: https://forum.game-guru.com/thread/219812 A free gun, by Bugsy! Really awesome stuff.
THIRD PARTY PROGRAMS
Ok so.. yeah. This one I'll circle back to. There's literally too much to go over and I've already spent hours aggregating a lot of this information.
RANDOM ACTS OF CREATIVITY
Some new games have been released. It's nice to see DK productions re-working Hunted: A Step too far along with some hush hush stuff I was given some early teasers on.
Bugsy's been especially active lately, with a lot of testing and updates: https://forum.game-guru.com/thread/219234?page=2
Check out that skyline!
A cartoony western by Slaur3n - https://forum.game-guru.com/thread/217684
IN MY OWN WORKS
Ehhhhh. Don't make me talk about this. I'm obviously lagging on this. But mostly I need to get off my ass and start working on work-related things for Game-Guru. View the full article
First of all, thank you to those who were kind enough to comment or give an upvote on my intro blog entry, it is greatly appreciated.
This entry I would like to introduce you to my game. To do that I want to first share the URL of my website: https://www.wildorigin.online/ it is a work in progress, and incomplete. That said I feel it is good enough for the moment to give someone an introduction to the game until I can produce polished videos and GIFs to really make it stand out.
Which brings up two questions:
1. What is your software preference for recording video/gameplay, and why?
2. Also, what do you use to make your GIFs and is it different from your video recording software?
Please leave your comments and questions below in response to this blog.
Not a lot of time this week, but managed to work on two elements of the game. First off I've been busy creating a few more friendly robots including Gyro, shown below.
This will be one of the robots controllable by the player capable of flying for short distances. With islands and tall towers featuring heavily in the level design this will open up the possibility to have a variety of puzzles where the player will need to swap around from robot to robot to advance - Gyro will be able to, as long as there is enough fuel left, fly from tower to tower or to other islands to collect items normally out of reach. In addition I've nearly completed another robot, this time with a few interchangeable elements so the robot can appear several times as villagers and so on.
The second area I worked on was adding additional sections to the game map - nothing too exciting as it mainly involved adding scenery between puzzle / action zones. However I have also started on a multi step puzzle linking the start zone to more advanced zones.
Been working on some extra secrets what ended up in concept of 'Relicts'...
Sets of ancient items hidden in every map, each one will have its own story associated with the map.
After completing whole set... we will receive a reward.
Follow me on facebook: https://www.facebook.com/backtoashes/
Or twitter: https://twitter.com/DarkAstray
One of the main goal for QLMesh was to add some new formats I have been working with quite often, like Photoshop files of bdf fonts.
For 3D it is LDraw formats and DAZ Studio models.
LDraw is one of my favourite. I am currently working on extending Assimp to support .ldr and .mpd files. One of the major challenge is actually not drawing but embedding library definitions into the plugin. Original library it is about 250MB (compressed to ~40MB). That's quite large for Quicklook plugin. I started to work on some heavy compression/optimalization and current result is:
-rw-r--r-- 1 piecuchp staff 40M May 12 17:18 parts.db
-rw-r--r-- 1 piecuchp staff 2.2M May 12 17:18 parts.db.gz
That's much better. 2MB can be easily embedded into plugin, eg. using assembler module like this:
_ldrawlib: incbin "parts.db.gz"
_ldrawlib_size: dd $-_ldrawlib
and later build with e.g. nasm:
/opt/local/bin/nasm -fmacho64 ldraw_lib.asm -o ldraw_lib.o
Sometimes less is more. Working on reading gzip stream, I had to remove one of the compression optimisation. The uncompressed file is slightly bigger, but compressed one much smaller:
-rw-r--r-- 1 piecuchp staff 41M Jun 17 12:03 parts.db
-rw-r--r-- 1 piecuchp staff 1.5M Jun 17 12:03 parts.db.gz
Sadly, this is not the end of the story I had to increase the precision of the float numbers in the database (it is now 17 bits - sign:8bit:8bit) - it increased the size but also significantly affected the compression ratio:
-rw-r--r-- 1 piecuchp staff 67M Jul 11 08:55 parts.db
-rw-r--r-- 1 piecuchp staff 41M Jul 11 08:55 parts.db.gz
Seems like I am gonna have to live with such database for a while.
Hey people, it's been another week. We think we're getting close to releasing Fancy Ball 2.
This week we've worked mostly on UI and Android stuff. We also made some levels, so we decided to share with you how the first five levels might look like in the final game:
And as always, thank you for following the development of our games.
During previous week and this week's first half I was primarily working on visuals. This includes rework of Red Alert inspired slower towers, new models for upgraded towers and more.
One of the visual effects I implemented is glowing towers. This feature is very apparent in slower towers, but some of you might notice that other towers make use of this effect as well (the little lights at the bottom of the towers). The player will now also have a visual cue about the current upgrade level of the tower. If the level is 1, the tower will glow in yellow, if level 2, the tower will grow in blue, if level 3 the tower will glow in red/violet.
I also started implementing normal maps into my game. As of now the most apparent tower which uses them is the slower tower. To generate the maps I used the free online tool which does a pretty good job and I think it will be sufficient for now. This is the result:
For the next week I should be going through and implementing features in my TODO list which includes functionalities such as CTRL+Z to undo tower placement, fix the issue where towers expand infinitely, add jet fighters which drop bombs on turrets, and more.
At this point I'm finding the in game editor that I've put together to be fairly functional. I have save and load functionality that works as would be expected for the player and a save function that I can use to setup a level's initial state. I didn't want to go with using tiles for walls so there were a couple additional challenges to getting the wall corners to match up together properly while making sure that player can slide along them without getting snagged or trapped. I'm setup to be able to add whatever I need to create conversations and have the characters move as the result of player interactions. But the one thing I think that's bugging me is the complete lack of any furniture or interior items. So the plan for the next while is to do some graphics work to try and furnish this house somewhat before going forward with creating any dialogue or story. Perhaps with some items in the house it'll provide inspiration for how to build the story. I also need to do some work on the characters, particularly what would look right for a pregnant character (you wouldn't know that babies are on the way from the current sprites). With the graphics all being programmer art, I'll be happy if I can just maintain a consistent style.
First of all I would like to say it is very encouraging to see a community of people all creatively working towards building their vision.
I believe it is very important to have a community to bounce your ideas off of, get feedback from, and support each other. Especially in this day and age where it seems most people are telling you "No one cares what you have to say." or "Your ideas are a dime a dozen", and other discouraging things. I believe those things probably are true, most people really don't care and our ideas may not be unique or new, but I believe our passions are worth sharing.
I have been in the virtual world & indie game industry for 13+ years as a 3D Artist. Despite that time spent, I would say I am about average at best as an artist. I am really not the best at anything, yet I still have the ambition to build worlds for people to explore and enjoy, something I feel many in this community have a similar desire to achieve.
I likely don't have much to offer, but please feel free to reach out in a message, and I would be glad to help if I can.
Before I go I have a small little teaser. I rebuilt this Panda Corey which I lost last year due to a computer crash during saving. I had exported the fbx and textures already luckily but the 3D software file itself was corrupted and unrecoverable. Tonight I spent a few hours putting the little fella back together again and I am so glad to see him back.
Anyways, thank you for taking the time to read, and feel free to comment if you like!
Backers exclusive closed alpha is still ongoing. We are grateful for all the feedback that we have received and it has been a great help for us in our goal of improving the game and making it more fun for you! In addition, we recently announced a new minion on our social networks. Let’s have a look at it!
A lost soul is a spirit that has been trapped on the mortal plane for so long that they have forgotten what they looked like when they were still alive. Necromancy can accelerate this process, forging these souls into agents of lies and deception. Taught to delight in lies and betrayal, these spirits take on the form of masked women that lure mortals to their doom.
At the moment we are actively working on the animations of previously announced characters. Here's an example of one of the Ghoul’s attacks.
Before the closed alpha launch we released an update with a numerous changes, which were described in the previous devblogs but there was one we missed. The enemy Berserker was reworked. They are battle-hardened warriors that would rather die and be turned into an undead than flee from a fight. So bear this in mind and be ready, since they will often enter a state of destructive rampage.
Right now we are preparing the new update based on the feedback received from the closed alpha test. Insane enemies often attacks allies and sometimes this would cause them to restore sanity to themselves after landing a critical on their friends. This will no longer happen as it didn’t make much sense to us!
Our Shieldmaidens need some attention too. Currently they can apply a redirect to each other or start protecting the same companion over and over. It gets a bit crazy: the shieldmaidens are certainly having a good time but the player is at a loss. At the moment we are looking to address this issue.
Minions are already a bit tired during the closed alpha but soon they will need much more rest to recover Vigor between battles. The dead need sleep too!
Vampires have proven to be good fighters but bosses have been unreasonably vulnerable to these bloodsuckers. The Vampire ability "Bloody Fury" will continue to take off 33% health from ordinary enemies but its damage will be reduced to 20% against bosses.
Iratus will need more time to examine the artifact “Book of Wisdom” and apply the new knowledge in practice. You will need to equip the book, enter a fight and if you win, the two talent points are yours but if you lose, it wasn't meant to be.
We continue to adjust balance and economy. The beginning of your journey may seem easy but the closer you get to the exit the more complicated things will become. We will be gradually adding images to our events and we hope it will make them more readable and interesting for our players.
New backgrounds will be added with the upcoming update.
These are the main changes to date. We are happy to answer any questions you might have.
UG here with another blog entry/patch notes post! It is indeed an exciting time, we have less than a month left till we release onto Steam. Uagi-Saba the newest in creature breeding and genetics officially releases into Early Access August 1st 2018.
Uagi-Saba On Steam
(Edit 7/10/2018) New hot fix lists have been added at the bottom, a total of four hot fix patches have been made since the 184.108.40.206 build went live. We are now officially on build 220.127.116.11 and pretty stable. Thanks to all of the beta testers for your help.
This is a big patch with a bunch of new content and fixes, some areas have had some big improvements. I will go over some of the bigger changes and the rest can be found in the patch list at the bottom.
Three new room types and two new modules have been added to the game. The Gen Room (brings in large amounts of energy) and the Mushroom Farm (large scale mushroom grow operation). The Shrine module (generates lore) and the A.S.D.S. (automatically feeds and waters your mystics).
The Wild Mystic Room is a new room that has a chance to appear after you have charged enough empty rooms. When it appears it will automatically spawn a special egg, if you are able to hatch it you will spawn a wild mystic! Wild mystics have access to very rare genes, genes that are only available to them. Breed a wild mystic with one of your own to bring these rare genes into your pool.
The mutation system has been completely re-worked with the new Wild Mystic Room in mind. Default mystics will have access to most of the basic body part genes. More genes will become available through mutations based on how many generations the mystic has gone through.
The speech system has been drastically improved, a variety of new phrases and words have been added. 40 plus words, and many phrases related to hunger, thirst, loneliness etc.
The camera can now be moved by clicking the edges of the screen, this is still a little buggy.
Some rooms, entities and modules now have a new Synergy mechanic. Some examples… Placing essence generators close to each or will bring bonuses to energy harvest. Lore keepers close to a study will bring in extra lore. This is still a new mechanic and I plan to add other bonuses soon.
I have completely re-designed most of the mystic lower arms, they have a new “naked” look which I think will leave the door open to some interesting new skin patterns and colors in the future.
Things I know of that have yet to be added…
-A pause function.
-Alarms for dig sites.
-Lore books are now out of date and need to be revised.
-The gene pool and achievements buttons in the HUB screen cannot be pressed, these will be implemented soon.
The rough patch note list is below, some things already covered above are also on the list.
Patch Note List 18.104.22.168 7/2/2018
-Added synergy mechanic for the essence gen and essence extractor, the closer they are to similar modules or rooms the more resources they will generate.
-Added synergy for lore keepers, lore keepers close to studies will generate slightly more lore.
-Bond must now be high enough to interact.
-Added a variety of colorful crystal props.
-Intelligence needs to be high enough to interact.
-Added intro story screen with story, player can click through text to skip.
-Added two new modules, the ASDS and the small shrine.
-Added two new room types, the mushroom farm and the generator room.
-Added new words for mystics to learn, total of 40 words.
-Added new creature speech responses.
-Added new Mystic body parts.
-Fixed bug where player could not charge nearby rooms after new rooms were built or charged.
-Fixed problem with water pump building anywhere regardless of water source being close enough.
-Fixed problem where bond meter would increase after pressing the interact button, now it only increases if the mystic successfully learns the word.
-Fixed problems with build button “locked” text and “not enough resources” text not appearing or causing crash.
-The gen table now includes a color mutations stat and a body mutations stat. If your mystic has a mutation through breeding it will show up here as an increase.
Hot Fixes 1 22.214.171.124 7/3/2018
-Added middle mouse cam drag, this is just a test. Still very sensitive and is based on mouse sensitivity . (Edit) This has been fixed, with help from a few of our UG fams we now have a very smooth cam drag. Removed old cam movement buttons from screen edges.
-Fixed bug where giant arrow button would appear when a ferm tank would be recycled.
-Player will now be refunded half of what they paid for modules when a room Is renovated.
-Fixed problem where certain objects would give the player guardian rating points if they were destroyed during room renovations.
-Fixed problem with mushroom spore visibility.
-Fixed problem with the disappearing furnace.
-Added an object that controls the deactivation of certain objects outside of the view, hopefully this helps with some of the frame rate issues.
-Fixed problem where crystals, the a.s.d.s module and shrine module wouldn’t disappear when a room was renovated.
Hot Fixes 2 126.96.36.199 7/5/2018
-Player can now properly zoom in and out while moving.
-Fixed problem with build menu buttons being destroyed or were not following view correctly.
-Fixed problem where camera would keep moving if a movement key was pressed while pressing the escape key to open pause menu.
-Fixed problem where dwelling room would appear larger than other rooms when fully zoomed out playing in 1600 resolution.
-Fixed problem where room sprites would overlap while fully zoomed out playing in 1600 resolution.
-Fixed problem where charge button would show up above over main pause menu.
-Fixed problem where mushrooms and mushroom spores would not destroy if a mushroom garden was recycled.
Hot Fixes 3 188.8.131.52 7/8/2018
-Fixed problem with mushroom gardens creating two mushrooms.
-Fixed problem where recycling a furnace would leave it’s button behind.
-Fixed problem where player would have to click gen table twice to get it to register. Fixed problems with player being stuck on gen table screen and not being able to move cam.
-Fixed problem where on of the furnace spites was causing extreme lag.
-Fixed problem where player clicking the mystic name card would create multiple mystic text object.
-Fixed problem with player being able to drag camera while in the mystic/inhab hud screens.
-Fixed problem with tut button not disappearing when pressing escape in the HUB screen.
-Drag speed for camera is now faster when fully zoomed out in mini map mode.
-Fixed typos in tut start.
-Fixed problem where “cannot breed” text would appear if right clicking near baby mystic.
-Completely re-worked the ini file system. Options like windowed mode and sound volume will now save correctly and when player loads back in later they will be the same as the player left them on exit.
-Fixed problem with game crashing when player tried to load a game if save file does not exist.
-Fixed problem with sound volume being much loader when a game was loaded.
-Pressing the escape key during the story screen skips to the title screen.
Hot Fixes 4 184.108.40.206 7/10/2018
-There were still problems with sound volume loading incorrectly, fixed this.
-Added windowed/fullscreen buttons to the in-game options screen.
-Fixed problem with smog vent cost text drawing at the incorrect position while in 1600 resolution.
-Fixed problem where player could click on charge button while in mini map view.
-Fixed problem where player could click on inhab with mini map open.
-All in game menu screens now destroy accordingly using middle mouse, movement keys or mouse wheel.
-Fixed problem where player could still click on build nodes while in the main in-game menu.
Now that we are through that here is some more useful info/social media etc.
The beta testers will be receiving their keys today fore the next round of testing. Keys for streamers, you tubers and other media coverage will be given out July 20th. If interested please get in contact with me.
I live stream development of Uagi daily on Twitch, feel free to drop by if you are interested.
UG's Home Base
UG On Twitch
UG On Twitter
Here is a new update for YORG.io! Some small changes here and there and overall just improving the game.
Increased Map Size
The map is now four times as big as before (200×200 instead of 100×100). This means a lot more space to expand since previously players already had covered the whole map.
However, this also means that old savegames are not compatible anymore – Sorry for that!
Detailed Minimap View
You can now also hold “M” to show a bigger version of the minimap:
Invisible Transporters Earlier
The skill tree has been changed so that invisible transporters are now available earlier. This was made to encourage expansion. With the previous skill tree layout, the invisible transporters were only unlockable after most of the map was covered.
Up To 12 Crystal Mines Per Resource
There are now skills to place up to 12 crystal mines per resource:
Destroyed Building Indicators
When a building gets destroyed, it’s icon is now shown so you can see which type of building got destroyed:
Multiple Smaller Fixes
Fixed crash when selling invisible transporters
Fixed exploit when loading savegames multiple times
Bigger numbers (E.g. “5.6b”) are now better formatted
Made easy mode easier
Increased difficulty of the challenge mode (New modes coming soon!)
Minor Fixes & Performance improvements
Thanks to everyone who is continuing to support Yorg! If you are interested in streaming Yorg.io or playing it on Youtube, be sure to post links to this in Discord! I really want you all to succeed and so we can work together in Discord to make that a reality. Link to Discord here: https://discord.gg/UdXda9Q
The main objective of this post is to give an idea of how to work with wheel collider and physics of Wheel Collider.
Want to Make a Car Racing Game?
Having troubles with Car Physics?
Where to use Wheel Collider?
How to use Wheel Collider?
What are the components of Wheel Collider?
How is Wheel Collider Different than other Colliders?
Have these Questions in Your Mind?
No worries... You'll know everything about Wheelcollider after reading this post.
Wheel Collider is a special kind of Collider which is used for vehicles. It has in built collision detection technique and physics of actual Wheel.
It can be used for objects other than wheels (like bumper Boats, bumper cars etc which uses suspension force ), but it is specially designed for vehicles with wheels.
Is there is anything special which is not in other Colliders?
Yes, each and every collider has something special (That’s why Unity created them).
In this Collider, you will get all the components which are used to make vehicle drivable.
Do have any idea about components..?
No problem, I will explain components here.
Before that, it's very important to understand how the Wheel Collider component works internally, to get a car working in Unity
Here, I have explained everything.
This is how you look at your dashing and shiny car.
But, Unity doesn’t have good eyesight. So Unity looks at your car like this.
4 wheels colliders and 1 car collider, that’s it!
Now Let’s Discover inside Wheel Collider.
Wheel doesn’t have any shape it is Raycast based.
Mass & Radius: mass and radius of the wheel. (Easy isn’t it ?)
Below I had given a little introduction about physics of wheel collider.
Every Wheel counts it’s sprung mass. Sprung mass (not weight) is used to apply individual force on each wheel.
Suspension Distance is the distance between max droop and max compression. This suspension is calculated based on rest pose.
Suspension Force(F) = (sprungMass * g ) +( jounce * stiffness) - (damper * jounceSpeed)
offset of the wheel relative to the rest pose.
that means physics friction. (setting this to 0 means no friction change this runtime to simulate in various ground material).
damping value applied to the wheel
wheel moved with suspension travel direction.
Tire simulation rather than using dynamic or static material slip-based material is used.
To learn more about physics of wheel collider click here
First we need to setup Scene for that (Don’t Worry that is Easy part).
PART-1: SCENE SETUP
Step 1: Create a 3D plane Object give it scale of (100, 0, 100).
Step 2: Create an empty Object add Rigidbody 3D. Name it as “Car”
Step 3: Import 3D Car Model inside your Scene (you will get download link below) add as a child of Car.
Step 4: Take Mesh Collider and add as a child of Car name it ”CarCollider”.
Step 5: Create Two empty GameObject inside Car name them as “Wheel Meshed ” and “Wheel Collider”.
Step 6: Inside Wheel Meshes add 4 empty GameObject name them as “FL” ,”FR” ,”RL” and “RR”. assign Mesh of Wheel (you will get download link below). Set their Position.
Step 7: Inside Wheel Collider add 4 empty GameObjects name them as “Col_FL” ,”Col_FR”, ”Col_RL” and “Col_RR”. Add wheel collider as their component. Set radius of colliders same as the size of mesh and set their position same as the mesh have.
Yeap, Its Done! actually that was the Difficult part to setup scene.
Now Time for really easy part Scripting.
PART-2: SCRIPTING (Check Script Reference Click here)
public class AxleInfo
public WheelCollider leftWheelCollider;
public WheelCollider rightWheelCollider;
public GameObject leftWheelMesh;
public GameObject rightWheelMesh;
public bool motor;
public bool steering;
In this AxleInfo Class, we are going to store info for a pair of the wheel.
leftWheelCollider / rightWheelCollider
To drive a car using WheelColliders inbuilt physics.
leftWheelMesh / rightWheelMesh
To Visualize rotation and movement of wheels.
Enable movement of this pair of wheels.
Enable rotation of this pair of wheels.
Now, Let's go for long drive .
This script is to drive Car.
public class CarDriver : MonoBehaviour
public List<AxleInfo> axleInfos;
public float maxMotorTorque;
public float maxSteeringAngle;
public float brakeTorque;
public float decelerationForce;
public void ApplyLocalPositionToVisuals (AxleInfo axleInfo)
axleInfo.leftWheelCollider.GetWorldPose (out position, out rotation);
axleInfo.leftWheelMesh.transform.position = position;
axleInfo.leftWheelMesh.transform.rotation = rotation;
axleInfo.rightWheelCollider.GetWorldPose (out position, out rotation);
axleInfo.rightWheelMesh.transform.position = position;
axleInfo.rightWheelMesh.transform.rotation = rotation;
void FixedUpdate ()
float motor = maxMotorTorque * Input.GetAxis ("Vertical");
float steering = maxSteeringAngle * Input.GetAxis ("Horizontal");
for (int i = 0; i < axleInfos.Count; i++)
if (axleInfos [i].steering)
Steering (axleInfos [i], steering);
if (axleInfos [i].motor)
Acceleration (axleInfos [i], motor);
if (Input.GetKey (KeyCode.Space))
Brake (axleInfos [i]);
ApplyLocalPositionToVisuals (axleInfos [i]);
private void Acceleration (AxleInfo axleInfo, float motor)
if (motor != 0f)
axleInfo.leftWheelCollider.brakeTorque = 0;
axleInfo.rightWheelCollider.brakeTorque = 0;
axleInfo.leftWheelCollider.motorTorque = motor;
axleInfo.rightWheelCollider.motorTorque = motor;
private void Deceleration (AxleInfo axleInfo)
axleInfo.leftWheelCollider.brakeTorque = decelerationForce;
axleInfo.rightWheelCollider.brakeTorque = decelerationForce;
private void Steering (AxleInfo axleInfo, float steering)
axleInfo.leftWheelCollider.steerAngle = steering;
axleInfo.rightWheelCollider.steerAngle = steering;
private void Brake (AxleInfo axleInfo)
axleInfo.leftWheelCollider.brakeTorque = brakeTorque;
axleInfo.rightWheelCollider.brakeTorque = brakeTorque;
I know, this script was a little bit difficult but I am here to help you.
List of AxleInfo Which contains a pair of wheels data.
maximum Torque is applicable on Vehicle.
Maximum angle at which wheel is rotate.
Torque is applied when a brake is pressed.
This force is applied to stop the vehicle because of friction.
ApplyLocalPositionToVisuals (AxleInfo axleInfo)
This Method takes one argument: axleInfo. This method is used to Display rotation and position of WheelMeshes.
This is Unity callBack used to do certain changes in physics at fixed time.
Inside that, we will take Input.
Vertical: W/Up Arrow for Forward & S/Down Arrow for Backward.
Horizontal: A/Left Arrow for Left Side Rotation. & D/Right Arrow for Right Side Rotation.
Space: To Stop(brake).
Assign this Script to our “Car” GameObject.
Add Size of AxleInfo to 2.
Now add your Colliders and Meshes to appropriate Location.
We have 3 methods to Control Car Acceleration(), Steering() and Brake().
You can relate all the methods listed below. These methods are works like how actually Vehicle we drive in reality Accelerator, Brake(No Clutch here).
It is used to make the vehicle move forward and backward.
If forward or backward buttons are not clicked then need to add Deceleration().
motorTorque is used to add torque (In forward or backward direction) in a vehicle.
When the vehicle is moving at that time brakeTorque is needed to change to 0.
It is used to stop the vehicle when forward and backward buttons are not pressed.
It is used to turn angle of vehicle.
steerAngle is used to change an angle of the the vehicle
It is used to stop the vehicle using brakeTorque property.
PART-3: ASSIGNING VALUES
Finally at the end,
This is the last thing to make your car drivable. Enable motor if you want to Apply Force and Suspension on That Wheel.
Enable Steering if you want to give rotation Force on that Wheel. Maximum Motor Torque change as per your car’s Rigidbody mass.
Maximum Steering Angle must be between (30-35). Brake Torque depends on how much Brake Torque you want to apply.
Deceleration Force is must be less than Brake Torque.
Experiment with This Value to make your Car run smoothly.
Brake Torque and Deceleration Force value need to be much higher to stop usually(1e+5 to 1e+8).
Very excited about today’s blog update. I have to say this is probably the biggest update we have had yet. So much work went into this update. Very long nights to get this done. The wife has started her immunotherapy treatment and we are hoping for the best on that front. Please send your thoughts her way.There was so much done that I have to try and remember everything:
First up is World 1 which is now known as Chapter 1 is complete!! This was a monstrous undertaking to get done as quickly as we got it done. There was a total of over 90 rooms that have been created. Every time you enter a room it’s randomly selected from a pool of 20 rooms. (this will be expanded in an update. I coded the game in a way so it’s very easy for me to expand on this) . Then the germs (enemies) selected are completely random (the quantity and type). The breakable objects are randomly selected (quantity and location). The odds of getting a loot drop from enemies and boxes is random. Everything is random. The only thing not random are placement of room hazards (spikes, crates, holes, slime, and dryers). These have been carefully crafted and placed to make up the pool of rooms. However the type of dryer you get is random! Some dryers are specially marked (you have to figure it out) and will always drop loot (which is random of what type) when destroyed by a firecracker.
Secret Rooms is now a thing! Every time you enter a room there is a chance that room will have a secret room branched off of it. You can tell by looking for cracks in the wall. If you see them blow it up with a firecracker and it will lead to a secret room. All secret rooms will have different contents. what you get will be completely random, it may be awesome or it may be not so awesome.
Touch Controls optimized! FINALLY fixed a bug in the joystick that has been haunting me. It would become unresponsive if you were attacking or using another button before you moved with the joystick. This has been resolved and works very well now. Also increased the size of the top action button so it’s easier to hit.
Lots of bugs were fixed that I found from making the new rooms and play testing. I think I put in over 10 hours of play testing the new rooms on my phone.
Lots of code was also optimized during this process.
Sounds. As you know currently the game has no SFX or Music. This is all about to change.
Teaming up with @luismipv. Check out his work .
He will be doing some sound work for the game.
Huge shoutout to him for his help!!
TESTFLIGHT!! The game has been submitted to Apple for the external testflight beta. As SOOOOON as they approve it (I heard for TestFlight it can take a couple days), it will be available for beta testing. If you are interested please send me your AppStore email so I can add you to the beta. Your help and feedback will be very helpful. We are so excited that we have reached public beta and are very anxious to get feedback from people actually playing the game.
Damage! You now take half hearts of damage. This is total zelda style right here. If you get hit by enemies or fireballs you only lose half a heart! If you fall into a hole or get hit by a spike you take a whole heart, so watch out for those! This allows a little forgiveness with getting hit by enemies or fireballs and gives you a chance at survivability. Half Heart refills will be coming as a loot drop as well.
Flying Germ (new names for the enemies are incoming by the way) has been updated! Now when he flies at you and hits you he will move away and not continue to chase you. This will give you time to run away after he hits you. Previously he would continually hit you and it was hard to escape.
Toothache boss has had his health bar moved to the bottom of the screen.
Increased the speed of the player. You now move faster. This gives a great feel to the game. Feels very smooth, responsive, and allows for quick maneuvering. Also along with that increased the speed of the roll (dodge, from beanie powerup). Now you can dodge and roll away from fireballs, spikes, and enemies much easier. It’s fun now just to run around and roll, has a great feeling to it!
Item Rooms! Now before you get to the end boss there will be an item room. After you beat the enemies in this room a random item will appear. It could be very helpful or not helpful at all.
Crates are no longer pushable. I was experiencing a nasty bug with having them interactive. I know a way around the bug but I don’t want to go this direction right now. For now I am using them as a blocking obstacle, however they are destructive with your firecracker. I will revisit these being pushable later when I have time, I want to concentrate on finishing everything else first.
Bat reach is now longer. Extended the hit box to the very end of the bat. Now the player can hit the enemies with greater reach and knock them back. Now you can hit, dodge, and hit again! It’s very fun.
Phew, I think that was everything. Was def a lot in just a weeks time.
Next up is World 2. This should go fairly quickly. I will be introducing 1 new boss, 1 new germ, and 1 new room hazard. After that is complete I will be creating the menus (shop which is known as the pharmacy, and options screens). Then i will clean up the pause screen and do the tutorial. We have 2 months to complete this, which should be plenty of time.Chapter 3 (which will be the final chapter) will come as a free update after the game is released.
Attached is a video of a new room and a secret room! Also in the video you can see I only have one half of a heart left!
Let me know your thoughts and questions.
View the full article
Pretty slow work week if I'm being honest. Life got in the way and the game's delayed yet another week. You know, going in you always assume you can handle the workload but only expect it to be a certain amount of time. Then you get so far into it you can't justify changing course because the end just has to be near by now...
I really wonder exactly how long it'll take for this game to be completed and how long the people supporting me or waiting for me to finish will tolerate this crazy passion project of mine. You can imagine how many times I hear "get a real job" on a regular basis.
Feeling all kinds of negative things right now, but I need to carry on anyway. This game needs to be made, and I need to do it. If I can just make this super polished Alpha go even just a little viral, I'll finally know if it's all worth it. 25 thousand players is all I'm asking the cosmos for.
For one of the upcoming projects (which will follow in some of the following posts), and as it had to fit the lore of the game, a black hole was necessary. Before going forward - let me add an image of what result I want to achieve:
Artist conception of black hole - NASA/JPL-Caltech
While the image is similar to the final effect I wanted to achieve, I did some changes on the effect to be more colorful and bright - but the original idea was from this image.
The effect is actually separated in 3 major parts - Disk, Streaks and Post processing.Of course there is also the core of the black hole (which is just a small sphere, with black color).
The disk around black hole is actually just matter that rotates around the core. Depending on the distance from the core the average density will increase near the event horizon and decrease further from it. Near the core the density can be so high that it may eventually have temperature close to star - therefore there might be high emissive energy - and therefore light.
Also, due to the time dilation (and therefore light having hard time escaping near the event horizon), the emissivity is getting lower very close near the event horizon. Anything beyond event horizon is invisible from the outside, because gravity there is so strong, not even photons can escape.
At least that is what I understand from the topic from physics point of view.
This actually explained what can be seen on the image and what is going on graphically, that is:
The disk rotates around the core
The density of disk decreases further from the core
The emissive light decreases further from the core, and therefore some (outer) parts of the disk will be lit by inner part ... although inner part around the core has to be somehow darker
Which can be solved with simple texturing and some basic lighting of the result. Using whirl-like texture as a basis proved to be a good start for me. I started off by creating a whirl-like texture that would define density in various parts of the disk, which resulted in this:
Generating a normal map for lighting from this is actually quite straight forward (and easy in Substance Designer F.e.) - and after short time, I also had a normal map:
Putting just these together with basic diffuse lighting (standard N.L) from the center (slightly above the plane) gives us some basic results:
Next thing is defining emissivity. This is done simply by using 1D gradient texture for which the coordinate will be distance from the center. The gradient I came up with is:
Notice the left part - which is near the event horizon.will give us similar feeling to the image as we're not jumping straight to bright value. Applying emissive value (as both - multiplier for the color, and as emission) gives us this look:
Which looks good enough already - I personally played a bit with values (mainly playing with contrast and other multiplication factors - F.e. for alpha channel/transparency), and ended up with this result:
Resulting pixel shader is as simple as:
fixed4 frag (v2f i) : SV_Target
// Calculate texture coordinate for gradient
float2 centric = i.uv * 2.0f - 1.0f;
float dist = min(sqrt(centric.x * centric.x + centric.y * centric.y), 1.0f);
// Lookup gradient
float3 gradient = tex2D(_GradientTex, float2(dist, 0.0f)).xyz;
// Light direction (hack - simulates light approx. in the middle, slightly pushed up)
float3 lightDir = normalize(float3(centric.x, -centric.y, -0.5f));
// Use normals from normal map
float3 normals = normalize(tex2D(_NormalsTex, i.uv).xyz * 2.0f - 1.0f);
// Simple N.L is enough for lighting
float bump = max(dot(-lightDir, normals), 0.0f);
// Alpha texture
float alpha = tex2D(_AlphaTex, i.uv).x;
// Mix colors (note. contrast increase required for both - lighting and alpha)
return fixed4((gradient * bump * bump * bump + gradient) * 0.75f, min(alpha * alpha * 6.0f, 1.0f));
There are 2 streaks, directing upwards and downwards from the core. My intention was to make them bright compared to the core and blue-ish - to keep the background more colorful in the end.
Each streak is composed from 2 objects, a very bright white sphere (which will take advantage of used post processing effects to feel bright), and a geometry for the streaks (instead of using particles). The geometry is quite simple - looks a bit like rotated and cut hyperbole, notice the UV map on the left (it is important for understanding the next part):
This geometry is there 4 times for each direction of the streak, rotated around the origin by 90, 180 and 270 degrees.
The actual idea for streaks was simple - have a simple geometry of cut surface, and roll a texture over it. Multiplying with correct color and distance from the beginning of the streak adds color effect that nicely fades into the background. To create a particles-like texture that varies in intensity I used Substance Designer again and come up with:
By simply applying this texture as alpha, and moving the X-texture coordinate the streak is animated, like:
Multiplying by wanted color gives us:
And multiplying by factor given by distance from the origin of the streak results in:
Which is actually quite acceptable for me.
For the sake of completeness, here is the full pixel shader:
fixed4 frag (v2f i) : SV_Target
// Texture coordinates, offset based on external value (animates streaks)
float2 uv = i.uv.xy + float2(_Offset, 0.0f);
// Alpha texture for streaks
fixed alpha = tex2D(_AlphaTex, uv);
// Distance from origin factor (calculated from texture coordinates of streaks)
float factor = pow(1.0f - i.uv.x, 4.0f);
// Multiplication factor (to 'overbright' the effect - so that it 'blooms properly' when applying post-process)
float exposure = 6.0f;
// Apply resulting color
return fixed4(exposure * 51.0 / 255.0, exposure * 110.0 / 255.0, exposure * 150.0 / 255.0, alpha * factor);
Putting the effects together ends up in:
By using simple bloom effect, we can achieve the resulting final effect as shown in video, which improves this kind of effect a lot. I've added lens dirt texture to bloom. We need to be careful with the actual core - as that needs to stay black (I intentionally let it stay black even through the bloom). You can do this either by using floating-point render target before the bloom and write some low value instead of black (careful with tone mapping though - yet you might want to go even for negative numbers), or just render the core after the bloom effect.
The resulting effect looks like:
And as promised - a video showing the effect:
After several redesigns, all of the enemy units in Firestone Saga have their own behaviors and abilities. Aggressive foes will chase you down like you owe them money. Meanwhile, some foes are more likely to run away and take a power nap in the corner. My goal was to have each enemy encounter feel like a mini puzzle and the key to success is figuring what their next move will be.
My favorite way to design an enemy is to think about how the player will interact with it. Players will quickly get bored if they can beat every enemy by spam clicking the attack button. Presenting new conflicts to the player will make them think outside of the box and they will feel more rewarded when they learn how to overcome that challenge.
This flame explodes and freezes nearby tiles when you strike it down. Combined with the knockback mechanic, this explosion opens up the possibility of clearing new passageways, freezing a row of lava, or racking up deadly, combo kills. Unique interactions like these help keep the gameplay from feeling stale.
Normally the player can only attack one tile away, so having an enemy who can summon lightning from across the screen is a considerable challenge. I wanted the player to feel the excitement of dodging fatal bolts, but rushing head first felt like the best strategy to eliminate this threat. To tackle this issue, I added a temporary shield that disappears after the enemy attacks.
Having enemies randomly fall asleep was originally implemented for players who were having a hard time finding a weapon. I could have written out a whole page of dialogue to explain how it works, but most players don't like reading lots of text and would much rather learn by making their own mistakes. Instead I designed a tanky unit who can be assassinated easily while sleeping, but will relentlessly pursue the player if woken up.
Follow us on Twitter for more updates.
Sadly the interface is crap, but it was a very highly used program for baking before Substance came out with its amazing baking and has become an industry standard. xNormal is a good free alternative if you can get past the clunky UI and the slow baking, but it puts out very good normal maps, even OA maps!
I used it on another project recently, I cannot remember why but the maps baked perfectly! If Normal Map Online serves your purpose than no need to change. It's just another option if you're looking.
Sorry for a late reply, for some reason GameDev doesn't show me when new comment come.
Aww... I feel you... That's why I use version control to keep my files safe and backed up with all the revisions available to me. The glow part was really easy, I just downloaded MK Free glow shader from asset store and followed the instructions.
So I tried the xNormal, and I have absolutely no idea what's going on there
Yea, I use such tools all the time. When I create procedural textures for ground it's great when using in 3D but for 2D I have to bridge the four sides and use healing brush for blending so it will look seamless when tiling.
Looking forward to your next update.