Well I let the devlog fall to the wayside. Which makes me sad
But we just released the game for Steam! Which makes me happy
A lot has happened since I last posted. We went to PAX AUS twice and recently got accepted into Tokyo Games Festival and will be showing in Japan. We have made immense changes to the game. We signed to release on Xbox One and Playstation 4 (this will happen early next year). And we had a lot of fun making something we are pretty proud of.
Even if the game isn't a commercial success (which I doubt it will be), we have enjoyed a great deal of success surrounding it. It gave us job opportunities we otherwise wouldn't have received, let us interact with amazing people from the game industry, inspired us to improve our skills, motivated us to travel, and of course gave us something to aspire for.
You can get the game on Steam if you are interested. I would love feedback on what is good, what is bad, what is horrible?
BrambleLash made it into the top 50 on Steam Greenlight so far!
It was sitting at #40 not long ago. Very happy with how things are going, but it is starting to plateau. Vote for it here if you haven't yet
We received the promotional cards for our PAX booth today.
I also finally got to do some 'real dev' work for a bit. I'm currently reworking character silhouettes so that they are more discernible from one another.
As they are mostly viewed top-down I'm looking into designs from RTS games and MOBAs for reference.
We've been working hard on promotional stuff for PAX and most importantly we have now launched on Greenlight!
Amongst the many promotional tasks we have been working on; - Creating art for our PAX banner and to be re-used across other promotional material. - Organising lapel pins using our character designs for handouts during PAX. (Will show them off once they get delivered) - Organising cards to handout with the pins through them so people have our details. - Setting up our website and Greenlight page.
Also worth noting is that we received some government funding that we applied for early this year. We are one of three Western Australian companies to have received the only games related funding in Perth at this time.
I've also been working on the final playable character model and we have been reworking all the final character models.
The in game HUD got the major rework it has needed for a while and is very close to completion.
Versus mode received an overhaul. Despite overwhelmingly positive feedback from play testers, there were some issues that we wanted to address. The short rounds left players wondering what was going on. Also as it was a 'last two standing' setup, it was possible for two players to kill themselves and two players to wind by default without having done anything. So the game rules for it have been changed to a 'first to 5 kills'. This extends the length of rounds so players get time to work out what is going on, and prevents two players from winning by default. It also forces players to betray one another as the game goes on if they wish to be the sole winner.
I began designing and modelling the third and fourth playable characters. I will also be reworking the player models. They need to stand out from one another more and need a bit of adjustment to bring them up to standard with the rest of the graphics in the game.
The current design for the third playable character as it stands, will need re-topology work but this is the speed sculpt from zbrush.
Here are some concepts for the fourth playable character's design. What do you guys like? Some concepts for the fourth playable character.
It is also locked in that we will be showing at PAX AUS. I will be sure to give everyone an overview on how it went and what was involved come the date.
We added deflection to the game to remedy a design issue in the versus mode. This came up during play testing and we finally found time to work it into the game. Boing, boing
We have released a final Demo for the time being. People who want to continue to receive free updates of the game as it transitions through beta will have to sign up. New demo
We also released a new video showing the gameplay. We're not ready for an official trailer yet, but hopefully it will give people an idea of what is going on.
Over the next couple of weeks we will be revising the HUD completely as it is still mostly placeholder stuff. Our intention is to get the game looking visually as close as possible to how it will be upon release.
Also in the pipeline are some different environment palettes (Winter, and Autumn) to add some diversity to the look future levels.
I'm pretending that is how it went down. It certainly makes me feel better about myself.
In other news we decided to start streaming our progress on Twitch. I haven't gotten the hang of it yet, but you can check out our first stream here; Our twitch channel
I will announce before hand tomorrow when we start steaming again. We were working on adding scenery to our levels, here is a screenshot of the finished product. Our stream cut out after an hour, not sure why... Still getting the hang of this whole Twitch thing.
We intend to get a one player version with controller support up and running soon with the controls not dissimilar to what you said.
We're hoping to push out a new demo soon, as the current one is looking very dated at this point. So perhaps a simple one-player version will make its way in.
Let me know if you manage to make a friend to play with. Then I can start boasting to people how our game changed someones life!
Edit: Low poly bush so I feel like I posted some content.
I've been working heavily on the scenery of BrambleLash.
There has been a lot of work on both the technical front as well as the art side with regards to this.
I put together shaders that allow for the grass to interact with scene objects. They allow grass to move when walked through, wave in the wind, and bloom flowers or scorch and die depending on whether players or enemies walk upon it.
Separate cameras render objects on the deformation layers. Here is an example of a render image used to create the grass depressions when instances walk over it. The two players zip around, avoiding the bullet and then kill the enemies.
These renders are then given to the shader which performs a vertex deformation to distort the grass. Also the main textures of the grass and scenery objects are interpolated between either a decay texture, default texture or blooming texture.
As well as adding these dynamics to the scene we are now using the Unity terrain system with triplanar shaders (to avoid stretching) to create the landscape. The intention is to hasten our level development process significantly.
While this provided a number of benefits there was still a need to be able to quickly populate our levels with grass, rocks and other prefabs. As such I dived into the poorly documented world of Unity editor scripting and spent a night getting together an object painter that could handle our requirements.
We can now paint instances onto the terrain. They can be told to align with the surface and/or only fall on certain angles as well as randomise their scale, or rotation. You can also delete items you have painted on the terrain and a number of shortcuts were created to make things easier. Finally once all the work is done you can hit composite and batch all the instances into a single mesh for better performance. After batching the old instances are kept, but disabled and stored as a backup should we want to go back and change things.
Adding a simple click to create or delete multiple instances to speed development along.
We intend to expand the number of environments the player will be in and create around 4 different sets. Up until now we have been pushing to see exactly how much we should include with the first set to give some idea as to how much more to add.
We went to another playtesting evening in Perth. Since the demo we have been working on 4 player versus mode. The current game rules we currently have for four player are that the last two players alive win. If the players aren't tethered together they can swap teams by reconnecting with any other player. People really enjoyed the chaotic nature of versus. They also had huge amounts of feedback and full of ideas they felt could improve the game.
Betrayal is a big part of the appeal of versus.
I also wanted to talk about the subtleties of some enemy behaviours in the game. One of my favourite things to do when making a game is adding polish so these kinds of things make me very happy. Something small I managed to add was enemies looking at players should they cross into their line of vision. Enemies also attempt to flee away from the tether. Furthermore since the demo was released I managed to reintroduce the disintegration effect launching in the direction the tether came from. These little nuances serve to breath life into the enemies making them seem less mechanical and more like living beings, and also add some visual interest to the game.
We also recently applied for IndieCade. If we are fortunate enough to get in we will have to scrape some money together to get to America... Anyone got a place I can crash?
We just finished a Unity game for one of our clients recently that needed web support. Given around 60% of people now use Chrome as their main browser we are having to rerelease the project. Needless to say this has proven a little problematic for us given as Unity says WebGL support isn't all there. Fortunately our game is very small and it looks like the WebGL rebuild is working fine so far but it is pretty stressful knowing that everything could fall apart due to the Unity end being unfinished.
I put together this code to try and reduce the amount of resetting variables we were doing in our current games project BrambleLash:
Code:
using UnityEngine; using System.Collections; using System.Threading;
/* Reset Variable * * A reset variable will automatically turn itself to false after a set delay. * To use create an instance and initialise its delay time. * When you change its set state to true it will reset to false after the delay time. * */
public class ResetVariable{ private Timer timer = null; private float delayTime = 1.0f; public float DelayTime { get{ return delayTime; } set{ delayTime = value; } }
private bool set = false; public bool Set { get{ return set; } set{ set = value; if(set){ TimerCallback timerCallback = new TimerCallback((state) => { Set=false; timer.Dispose(); }); timer = new Timer(timerCallback, null, (int)(delayTime*1000), Timeout.Infinite); } else { if(timer != null){ timer.Dispose(); } } } } }
The idea is that you initialise an instance of this class and give it a delay time. Then whenever you set the variable to true it will automatically set itself back to false after that given delay time elapses. What I'm wondering at the moment is whether this is an insane or ingenious solution. Does anyone know whether or not I should be scolded?
How far we have come since last we showed the game to the public.
An alpha demo of our game is finally ready! We were up till 7am getting it to the point where we were happy to show off what we have so far. There is still lots more we want to do, but we would both love to hear what people think of the game so far. Feedback and critique is greatly appreciated!
Demo available for Windows, Mac and Linux: Download Here
Don't think I had forgotten about you Devlog, I still love you and think about you every day...
It has been way too long since my last update.
Fortunately this entire time we have been busy working on BrambleLash!
Unfortunately most things we had been working on are pretty damn boring and didn't offer much to show.
For a while Liam and I were working on separate builds trying to progress as fast as possible. This meant we had to spend a substantial amount of time integrating our progress back into one project. We also decided to tackle a substantial number of bugs in this time; Many to do with the tether wrap, and also many arising due to collision issues from the obstacles being thrown into the mix.
One of the simpler bugs to fix...
We have added tension to the tether so players now must maintain some loose proximity to one another. This has a large impact on gameplay and we are still fine tuning how much slack we are giving the players but it certainly adds something to the game.
Liam and I have also recently been working on the obstacle models. These consist largely of rocks and brambles at this stage. This is of course ground breaking and revolutionary to games as a medium!
First pass of the tall obstacle that catches your tether, and the small obstacle that you can be pulled through. Some animation will play when pulled through the brambles complete with particle twig breakage.
Also, pending some testing we can now say the game supports colourblind players substantially more than before. The new breaker bullet may be a bit over the top at the moment, but it certainly won't be missed by anyone.
Deuteranopia A breaker bullet looking terrifyingly large.
Whilst Liam added the level systems for the game, he was also putting in an objectives system. He has been playing around with different goals of late to encourage different styles of play within the game. One such example is our "Occupy" objective. Occupy is a co-op king of the hill style objective. Before you can access the next level you must have remained within the given area with at least one player for a given time. I am very much looking forward to implementing some of my objective ideas myself.
The 'Occupy' area needs to be more readable at a glance but functionally it is very satisfying.
Perhaps the coolest thing I have to show off is something by the incredibly talented musicians we hired! Check out a sample of the music they have done for us on their Soundclouds:
Leanne Puttick Higher Difficulty In Game Leanne also put a boss track together which sounds phenomenal.
At the moment Liam and I are putting in extra hours and possibly going to do a Jam this week in order to get a demo we are happy showing our fellow indies by this weekend. So if in 7 days time that isn't up here be sure to PM me hate mail.
All of the enemy models are done for now. They may receive some changes based on user feedback but until then I will be moving on to other things. It occurred to me that I haven't really described all the enemy types, so now seems as good a time as any;
The Wanderer
These are the most basic enemy type. They roam aimlessly creating little threat. However, as the number of enemies increase these little guys become a noisy sea of hazardousness.
The Slimer
The Slimer type enemy leave deadly trails wherever they move that remain for some time. Similarly to the Wanderer they initially seem unthreatening but if left unchecked you will quickly find your movement restricted. From a design point of view, Slimer enemies have the potential to create interesting restrictions to the players movement, cutting players off from one another and forcing better co-ordination.
The Shooter
Shooter, name says it all. Avoiding their shots adds urgency to the game. Whilst you can happily pick off the Slimers or Wanderers at your own pace shooters make an active effort to attack you and force you to manoeuvre the aforementioned enemies as you avoid their shots.
The Chaser
The Chaser is another pressuring element. They roam in the same way as the Wanderer, but if you get too close they will become alert and chase you down relentlessly. Once a Chaser locks on to a player it dramatically increases the tension, also the presence of a Chaser creates an area of avoidance and encourages the player to think tactically.
The Bomber
The Slimer roams around leaving a trail of hazards. The Bomber explodes covering a large area in hazards. When a Bomber is allowed to explode a significant portion of play space is denied from the player.
The Breaker
The Breaker is a Shooter on steroids. He offers similar drama, but takes it a step further. Bullets from the Breaker destroy the tether, this creates a lot of frantic avoidance whenever a shot is fired and makes the Breaker one of, if not the most significant target when he shows up. The tether can make for a large target, so a Breakers presence forces the player to consider their positioning with regards to one another.
The Rammer
If the breaker is a roided up shooter then the Rammer is the equivalent for the Chaser. The Rammer will again roam nonchalantly, however when it is alerted by a player it will take aim, charge up and launch itself rapidly towards them. While charging the Rammer will be able to break the players tether, essentially turning itself into a living breaker bullet with some homing potential.
I talked with Liam and he is certainly keen to get a demo out to the public. It might be a while before we're ready to distribute it but it is definitely happening!
As far as progress goes; I've recently been ensuring that BrambleLash is playable for people with color blindness. It is plain to see *no pun intended* that red on green just isn't going to work in the ways we've been using it (I had suspected this would be a problem). As such we are going to change the look of the breaker bullets dramatically.
If you can't see the difference between these two images then you have Deuteranopia.
While I'm on the subject of the breaker bullets; The new Breaker enemy model is complete. This guy likes nothing more than blasting your tether away. At this stage the Breaker enemy variant is modelled, textured and rigged and just needs his animations completed.
"I will break you Batman!"
Liam has been implementing the various remaining obstacle types. We currently have three obstacle types;
Tall obstacles - The players cannot walk through these and the tether gets caught onto them.
Medium obstacles - The player cannot walk through these or be pulled through these but the tether goes over the top of them.
Small obstacles - The player cannot walk through these but can be pulled over/through them.
Getting pulled over a small obstacle to safety.
Liam has also been hard at work on adventure mode and getting level transition working. Whenever you move into a new area an objective is given. Upon completing your objective the shadows to the side of the current area fade open to allow you to move to the next play space. Upon reaching the new area the old is sealed away with the shadows. We wanted to make level transitions endless and seamless and never break people from the immersion with loading times. Each of these levels are to be procedurally generated with scenery, obstacles, objectives and enemy spawning configurations. After a certain number of levels players will be pitted against one of a small pool of boss enemies.
@Join Indies - Thanks . Actually neither of us had ever heard of Knuckles Chaotix before your post. I looked up some gameplay videos of it and now really want to play it. It may inspire BrambleLash ideas in the future, particularly when it comes to single player. We want to allow people who have no friends a brief taste of what the game has to offer, hopefully it will encourage them to go out and make a few so they can play the other game modes.
@ephoete - Our approach so far has been, 'being tethered is always good'. At the moment when tethered there is an infinite range the players can separate, this will likely change especially now that obstacles are being added to the mix. That said keeping the max range the players can separate liberal will definitely be important. We want to encourage good communication as much as possible and have poor communication punished, but not to the point of frustration. The potential to create a master/slave dynamic where one person is barking orders at the other is certainly a worry. We will have to do some playtests with players of mixed experience to get a grasp on how, and where this becomes a problem so we can come up with solutions.
So far we've had one large scale showing/playtest session of the game, I imagine we will participate in another such event very soon. We'll have to prepare a demo for that so i'll discuss with Liam if he's happy with me releasing that demo to my fellow Tigsource peeps. Alternatively, we have to do a large scale integration of all the features we've been working on, so perhaps after that a quick demo can be created.
@jamesprimate - Thanks! More models and animations to come soon.