My AssetStore Link

Unity Store Link - Click to see all the Song's work that has been put on Unity AssetStore

Friday, 5 December 2014

MechCorp v0.2 (Early Alpha)

It's good to be back working at MechCorp. I've been working on other stuff *cough* AssetStore *cough* for way too long. The good news is, I've managed to get it working to a reasonably playable state before I got distracted, with most of the core aspects of the game working. In fact, I think it's that good that I've decided to share with the world about what I've done, and gather some feedback if there's any. So I proudly present:

MechCorp v0.2 alpha

This is pretty much the first playable build demo I released. Well, technically second, since I once made public a prototype build. On a hind sight, that was simply too imature to be consider a working game. So let's just ignore that.

As an alpha build, of course nothing in the build is finalized. A little bit of technical info, it's build with Unity4.3, with TBTK as the backbone for the battle scene, and NGUI for the UI. Now with the new Unity4.6 is out, and combine with the fact that I've rewrote TBTK2 (which is better than its previous incarnation in almost every single way), I'm tempted to port it to the new engine. And while doing that, I might redesign the map exploration and event encounter aspect of the game. Somehow I feel the current execution falls short of my expectation. It's simply not very engaging to me.

On the other hand, I'm quite happy at how the combat and to a certain extent, the mech customization system turns out. But I was hoping to hear other opinion about that. So any comments or feedbacks are much appreciated.

Screenshots from current version:

Mech Configuration
Squad Screen
Exploration and loots

Tech Upgrades

Wednesday, 3 December 2014

New TDTK and TBTK is out!

Finally, I can now get back to working on MechCorp. Well, in case you haven't read the title, both TDTK3 and TBTK2 is now live on AssetStore. It has taken me 3 full months of working like mad to rebuild both of this packages from ground up. But it's well worth it I say. Both of them are now more polished than ever.

It's as promised, they now use the latest uGUI. For that reason, they now require Unity4.6 to work. And since uGUI is a lot more accessible then both NGUI and old script-based GUI, both the old GUI has been scrapped.

Anyway, I've updated each respective page to reflect the new update. Check them out for more info.
Oh, did I mention they are free update to the older version. So if you already bought it, go download it! Just remember they are not backward compatible so don't import it into an existing project.

Thursday, 20 November 2014

TBTK v2.0b WebPlayer Demo

Took me quite a good while, but I think I'm almost there. So I'm happy to present you the webplayer demo of TurnBasedToolKit:

Like the old demo, there are self-contained, stand-alone levels, as well as a mini-campaign where you get to choose your unit lineup and upgrade before each battle. The units and upgrades are carried forth to the next battle. Oh, did I say the units level up if they survive? Yes this is very much a  improved feature of the coming update. Well it's there in the current version, but I don't think it's fresh out enough.

Please note that since this is the first build, there might be bugs. In that case please let me know. At any rate I would love to hear some feedback.

Anyway, I might, I mean I'm planning to do a soft release of both TBTK and TDTK to AssetStore very soon. By soft release I mean include the source unity package as part of the current version. So if anyone wants to, they can unpack the package themselves to the latest version of Unity and try things out. Just a plan though, we'll see how it goes over the next few days.

Wednesday, 29 October 2014

TurnBased-ToolKit v2.0 (Work In Progress)

Well well, what do you know. Following TDTK, I've been started to rebuild TBTK from ground up too. I've only created the package a little more than a year ago. It is not even that old. But my OCD gets the better of me I guess. 

Consider that many user do end up doing modification of their own, I think it's only right I clean up and streamline the old code, which is pretty messy at place. The turn logic is quite dodgy on hind sight. Not to mention there's lot of patch work since I've added stuff like hotseat multiplayer, fog-of-war and cover system, etc. The goal in the new TBTK, is to redesign all those features as an integrated system from the start. I'm quite happy with the result so far. I'm sure another who want to mod this in the future would appreciate that. On that note, if you are trying to mod the current released TBTK, I do apologise...

I've also taken the opportunity to redesign most of the editors to make it more manageable, if not more intuitive. The spawn/deploy area on the grid for instance, now can be painted using mouse in SceneView. Instead of painstaking setup factions information across different component using Inspector, there's now a window to do that with all the information at a glance.

Also the grid system has been overhauled and now it can support a much much bigger grid. See for yourself, the next image is a 80x100 grid. Keep in mind I still haven't test this thoroughly so while the grid generation is not an issue, other aspect of the game might be. We'll see.

It's early days and I still have a long way to go. I barely manage put the key components together at this point. But I do hope you like what you see.

Tuesday, 14 October 2014

CyborgTD (a TDTK game now on GreenLight)

Once again I'm involved in the production of another TD game, what a surprise(!) Anyway, what important is, it's now on Steam GreenLight. Please go up vote it if you can. It would be pretty cool to be able to say that I've made a game that got on Steam.

About the game, it used a custom modified version of TDTK. I'm responsible for the coding as well as putting all the elements together. Instead of reading my poor attempt at describing the game, Just watch this video. And did I say it's on GreenLight now? Go support it!

Sunday, 5 October 2014

Gravity Pong v1.0 (Open Source)

Lately, I feel like I've been overworked myself a bit on updating TDTK and TBTK. So I took a break on the weekend's evening. Instead of playing one of the game from all the backlog I have in my steam library like I should, I had a brain wave. And this is what I've come up with.

- use arrow key to move up and down -
- use space-bar to 'hit' harder -

Sick I know. My idea of a break is still very much working. Anyway, in case you dont know, there's a saying in game development community. When you first started and still learning, you should start small. And by small everyone means Pong, the grand-dad of video games. If you have no idea, just google it.

Now I've never play Pong or try to make it. So here I'm doing just that. I recon I'm a bit better than a total beginner so I figure this should be a bit easier. The goal is to complete it in an evening. I'm pretty pleased I did. I'm pretty happy with the result too. It's been a great fun and a good change of pace for me. There's joy to be have in doing simple things and get it done. 

Since I've never play the original, I improvised on the thing I dont know. So the physics of the ball trajectory may be way off. I've also add in gravity. It feels a bit like playing 2D tennis. Pretty fun I say. I still have many ideas that I want to try but having force myself to complete it in one session of sitting down, you have no idea how hard I have to fight the feature creep. Also I've purposely keep things simple after I decided what to do with it half way through working on it.

My plan is to make the source code available to anyone who is interested, as a learning material. For that reason, many things are kept relatively simple. I've also put in an unsually huge amount of commenting and explaining in the code. Honestly I've almost spent more time working on the comment that the code itself. 

I'll probably put this on Unity AssetStore as a free package, that is if they accept it. For now, here's the download link for the source code (Unity4.3 is required), have fun!

Thursday, 2 October 2014

TDTK v3.0b WebPlayer Demo

Alright, I've spent way too much time on TDTK3. The good news is it's almost there. Still not sure if I should release it on AssetStore when it's done with Unity4.6 is still in beta. But for now I'm ready enough to put out a beta demo. Personally I think it's gorgeous! So, with pride, I present:

A little information about the demo, all the levels use procedurally generated spawn wave so it will be a different each time you play the level (I'm too lazy to manually set them up one by one). You can enter FPS mode by selecting any tower and click on the button with a cross-hair. While in FPS mode, you can use 'q' and 'e' to cycle between weapons.

Finally, I'm not sure how well the webplayer will work, both Unity and TDTK3 are still in beta. So feedback or bug report are welcome. Have fun!   :)

Friday, 26 September 2014

TDTK v3.0 Annoucement

Right I'm making it official that TDTK3 is now a thing. I'm still not sure when it's going to hit the shelve on AssetStore since I'm not done with it (still lots of polishing and cleaning up to do). Then there's the fact that the minimum required version of Unity (4.6) is still in beta.

But here's the shinny new features that I've added just to hype things up a bit:   :)
  • Support for new uGUI 
  • Support for multi-upgrade-path for towers
  • FPS (first person shooter) mode now added (it's like any fps game minus the movement)
  • Support for mecanim animation
  • A much more comprehensive perk system (almost any stats on tower, ability and fps-weapon can be modified via perk)
I should say that all the old features are still there. Well almost. Except the now obsolete uGUI, and support for NGUI, and score system. But I'm hoping that I can add the score system in the near future.

Here's some screen shot, enjoy!

Thursday, 11 September 2014

TDTK v3.0 Sneak Peak

I've been silence for a long long time. Since June last I remember correctly. For those who are interest in the reason why I fell off the grid, I took a 2 weeks break. Then I got hook to Mount&Blade for what feels like a century. But for most the time I've been missing, I've been cracking on MechCorp. I've completely what I consider a early alpha state demo. Then comes Unity4.6, which brings me the reason of this post.

I've stated in the past that I'll add the new uGUI support to both TDTK and TBTK. And I've also stated in the past that I would like to rebuild TDTK from scratch, reason being the coding is getting harder to maintain after all this extension and addition. Plus I wasn't as skilled back then. And so I set to work on the new GUI, before I know it I'm rewriting whole framework from scratch. And before I know it I've working on it for 2 weeks. I never thought it would take this long when I get started. And the scary thing is, it still quite some way from done.

The good news is, the new framework feels so simple and streamlined in term of coding compare to the old one. I think this will be great for anyone who like to modify the code themselves. Or at least it will be much easier for me to accommodate any future modification request. I feel like all this is worth it.

The editors has also been given a face lift. It's just subtle changes here and there but I hope they are for the better. Well at least now the full tooltip support should reduce the needs to refer to the documentation. Here are a sneak peak of SpawnEditor and TowerEditor, do keep in mind that they are work in progress.

Finally there's the new UI itself, I hope you like what you see.

Apart from what is shown, there are some other completely new stuff that I like to try and add. Very exciting about to see what I can achieve with the idea.. My hope is to get this done asap. Then move on to TBTK to give it the same treatment, before getting back to MechCorp. I really cant wait to get all these out in the public. Have to say I haven't been this exciting for quite some time. 

Now back to work, make things happen!

Sunday, 15 June 2014

Defenders of Time

I'm so proud to give a shout out to Defenders of Time, a multiplayer tower defense game built on top of TDTK. I know this because John Flury, the CEO of the development company Four Lights,  told me about this. They have just recently showcased the game at E3, in which John gave a 17minutes interview to GameSpot.

Unfortunately I haven't play the game yet. But it goes without saying it looks amazing, evidently, according to the trailer. Even better, there seems to be some unique and interesting idea for the game play, which is what impresses me the most. I'm so looking forward to when this game comes out and see what's what.

So proud!!

Friday, 2 May 2014

3rd Annivesary of SongGameDev!!

Apparently today is the third anniversary since I started this blog. Whoa and whoa indeed! I wasn't paying any attention to it so I'm quite surprise to got an email saying it's been 3 years. It means that it's 3 years since I started this with the hope of making it as a full-time job. It also means that it has been more than 3 years since I first come across Unity and start using it.

It shouldn't really come as a total surprise since I made it past the first two years I should be able to make it past the third, considering the fact that I'm quite cautious and wouldn't have done this if I don't think it's viable. Still given the unpredictable nature of the industry, the fact that I manage to survive for 3 years has to count for something, right?

Well, I'm pretty pleased that compare to this time last year I've taken the big leap of making a full blown game with my own Asset. I'm speaking about MechCorp of course. What gives me the most satisfaction out of the project so far is that I've learned quite a lot trying to make all the asset myself. Hopefully I would be able to bring it to beta state within the next few months.

Then I'm very grateful that the my packages on AssetStore has been doing reasonably well. If you are one of those who has purchased and used my package and you are reading this, a huge thanks to you. You made it possible for me to concentrate on project like MechCorp. I do hope that I can make  framework like TDTK and TBTK. It's lots of fun trying to prototype different ideas on various genre without having to worry about the assets and making it into a end-user product. And seeing what people can do with them is really satisfying. But I've set myself quite a high standard to match with TDTK and TBTK. Despite my many experiments, anything that I deem not hitting that same standard will not get developed into a full framework to be put on AssetStore.

It's nice looking back at all the thing I've done to think how much I've progressed and all. But I really hope I can get MechCorp complete by this time next year. I mean, finally getting my own full game completed and released is surely a better cause to celebrate than some anniversary, right? So the resolution for the next 12 months, keep working I guess.

With that said, back to Work!

Thursday, 1 May 2014

Prototype of a RTS and Unity Navmesh Pathfinding

I've fell quite behind the curve if I'm honest. I'm pretty much still stuck with Unity3.5 for the most part, due to the none backward compatible nature of Unity and the need to support my package (TDTK,TBTK and InputTouches) for 3.5. Until recently I've shifted to 4.2 to take advantage of certain new features for the more recent project. Even then, I'm still clueless when it comes to mecanim, the new sprite system and what have you.

So I took a day break from my usual grind to try on new shinny things that I haven't try before. I start with the navmesh generation. Generating a navmesh is easy enough. Minutes later I've started to script a very simple chase agent. Before I know it, I have a simple prototype that very much resemble what I have in footman, only it runs a lot more better because I've learn how to code properly since the infancy of my game-dev days. And more importantly it has a proper path-finding system and more advance collision detection and avoidance.

Quite satisfied and impressed, I push on to see if I can do a RTS style unit command. It goes without saying, that opens the flood gate and this is what I end up with, so far.

It's not a full game obviously but pretty much all the basic elements are there. Building construction, unit building, melee unit, range unit, builder unit, attackable building, unit command, etc.. Forgot resource gathering maybe. When I decide to take a break from my MechCorp again I guess.

So back to the point, Unity navmesh is pretty awesome. It would be perfect if the navmesh can be dynamically updated/edit in runtime but that seems to be a pro feature in 4.3. But you can still get quite a lot out of it. A RTS even. but you will need to compromise a bit. For RTS, that means buildings can't be placed too close to each other. There needs to be a gap large enough for the agent to move through or they will simply got stuck between building. Then you can only use NavMeshObstacle on the building to block any walkable area. Which restrict the building footprint to a circular area, which occupies much more space than it needs to avoid unit clip into building. Put this two together, it means that the building must be placed quite far apart. much more than what it seems to be visually optimum. Even then the unit navigation may still get a bit wonky when trying to move through an area with concentrated building placement.

All this bring me to another delicate matter, PathFinder. I'm afraid the simple fact is it has became obsolete. Unity navmesh is simply a better solution. I'm considering to take if off AssetStore. Hope that doesn't cause any issue or upset anyone.

Monday, 28 April 2014

MechCorp Update (28th April 2014) - Tactics

This is a milestone and I've been wanting to make this post. Let me just start by saying the project has comes along way, after many iteration of UI design and mechanic change. The game is finally at its alpha state, looking like.. a game.

Obviously the core concept doesn't change. It's still very FTL-ish, with squad based tactics and progression a la XCom. What I've done in the past 2 months is establish the base premises of the game and redesign the UI to match that game. My take? Game design and UI design are tough!

Anyway, given what I've done so far, I like to talk about the tactical aspect of the squad. It's by far, the most demanding elements of the gameplay in term of design.

From the get go, I wanted a fast pace turn based battle, as opposed to XCom where you really have to take time to decide a move. For that, the emphasise should be less about the player decision on the field but to the composition of the squad and the general tactical layout before the battle. So the grid which the battle take place has been simplified and shrunk greatly. There's no cover system and fog-of-war. It's all about the hostile unit composition and how best to minimize the their damage output while maximize ours.

There's damage type to consider, energy weapon deals energy damage will be absorb by shield. Ordinance based weapons deal kinetic damage that by-pass shield and damage the hull directly, but they have limited ammunition. Shield will recharged over each round so wearing down the shield doesn't make any difference unless you get to the hull.

Then we have the mech's class. There are 3 type of mechs: Assault, Support and Tactical. In a nutshell, their are tank, healer and dps. Assault mech has active shield system and is more capable of soaking up damage. Support mech can repair friendly unit and provide buff/debuff. Tactical mech, while less armoured and has low mobility, is capable of dealing aoe damage from long range. Each mech class has a signature ability or two which reflect their tactical role. For instance, assault mech can detonate a EM blast that damage all surrounding unit with a chance to cripple them for a round. Support mech can link up it's targeting with adjacent friendly unit, granting a bonus in attack.

And there's mech modification. Each mechs can be fitted with different modules to boost certain stats. Defensive modules to offer more protection for Tactical mech, offensive modules to boost a support mech fire power, etc. There's even a chance that you can add extra ability to a mech by using modules. An assault mech that can repair itself maybe?!

Well I think there's a lot about setting up a squad that can handle various enemy/situation in a battle imo. Hopefully that plays well in game. I'll probably talk about some other aspect about the game in another post.

Thursday, 24 April 2014

MechCorp Update (Scrapped Progress)

It's really has been a while since I last posted. I've been working almost exclusively on MechCorp and I'm trying to keep it close to my chest until I feel it's in a more polished state. For now, I'll just show some stuff that I've tried but doesn't work out.

Basically there are two major gameplay phase in MechCorp. The exploration and adventure phase and the battle phase. When it comes to the battle, I've tried to go for a more dramatic feel a la XCom style, with fog-of-war and very tight action cam sequence through out. So a complete new ActionCam system was developed. It auto-centers on the selected unit, tracks units movement, highlight the spotted hostile unit, rotate and zoom in on attack instance, all in a very smooth and stylised manner. You can see the dynamic camera in action in the video below. Please excuse the jerky frame rate, the video was recorded only a rather crappy machine.

Also to accommodate the fog-of-war gameplay, I've readjusted the grid size and more significantly, change the grid to hex-based. A set of new abilities designed around tactical play for fog-of-war was also added.

The battle scene play rather well on its own, unfortunately when put together with the exploration phase, it just doesn't cut it. It works alright, but it lacks the tight, fast-paced, streamlined feel I'm trying to do for the game. And some how the battle felt disconnected from the rest of the game. So I can only do the reasonable thing that is to scrap the whole thing and try for a different approach.

The good thing is not everything has to be done from ground up. There are lots of progress that has been made and kept. The UI has been massively overhaul and redesigned as well as some of the core design. But all this is another post which I might do later this week.

Friday, 28 March 2014

TDTK Update (v2.2.5f3)

A minor update has just gone live on AssetStore. A fairly small update compare to the usual one really. I guess it's understandable given that the last update was only 3 weeks ago.

Anyway here's what going on in the update:

Version Change – v2.2.5f3
  • add support for damage (when creep is attacked) and resource gained (when creep is killed) overlay
  • add min-max damage range to towers, as opposed to just 1 fix value
  • add min-max resource gain for killing creep, as opposed to just 1 fix value
  • improve scanning mechanic of straight-line targeting so it's more robust

bug fix
  • fix bug where support adjacent tower buff stops working when a tower is upgraded
  • fix a few error in demo scene
  • fix some creep-editor bug where target point cannot be assigned
  • fix a bug for TurretTower where a lengthy animation could cause error in targeting.

TBTK Update (v1.0.7)

So I've updated TBTK a few days ago. With this update the vertical component for the grid is finally in place. let me explain what is it all about.

The grid can now be fit to a terrain/scene that has height variation. The system is pretty flexible imo, any collider with the designated layer can act as the terrain. The tile will adjust itself so it fits just above the terrain, in a perfectly horizontal manner. You can specify the minimum height difference required across the tiles to be considered of different level. I've design the system with XCom:EnemyUnknown in mind. So it works best when the level has a very well defined height level without too much slope. It still works with slope of course, but unless the tile size is relatively small compare to the elevation, the tile may seems partially sink into the terrain. In that case, some manually adjustment might be needed.

The height difference across different tiles will affect the gameplay in the sense that moving across tiles with different height will cost movement point. The bigger the height difference is, the bigger the cost. Also unit attack from higher ground will gain a bonus in hit-chance. On the other hand, any attack made from lower ground will suffer a hit penalty. The value of the movement cost and the hit bonus/penalty can be configured of course.

You can probably tell from the image that all the existing feature work with the new height element. Terrain can be used as cover if desired (just slap a Obstacle component on it) and will block line of sight when fog-of-war is enabled. Obstacle object can be place on any tile of any height. Walls can be used to block of adjacent tiles with height difference to create a cliff face.

The only thing I might left out is the movement and animation. There's no special animation movement pattern support for movement. The way I see it, there's no one size fits all solution for this due to the fact that the model of the unit can be anything and each can require a very different movement pattern and animation code. I'll just wait and see what's the user comment on this.

Apart from the vertical component, I've also tweak quite a lot of the internal working in hope of optimizing/improving the framework, and the bug fixes of course. They full change log is as follow:

Version Change – v1.0.7
  • change the way grid info is serialized which should improve grid generation time and grid limit
  • added height component to the grid (see example scene – ExHeightComponent)
  • optimized the AI code so it's more modular and easy to work with.
  • improve a few things about how ShootObject works
  • added effect type 'damage reduction' to unit ability

bug fix
  • spawn unit will now work with ability that “shoots”
  • ability with shootObject will now shoot towards their target (both unit or tile) instead of just tile
  • using ability no longer reduce the attack count available on a unit in the turn
  • fix bug where AI unit with movement disabled will not attack
  • fix bug where all attack never missed

Monday, 24 March 2014

MechCorp Asset Update (24th March 2014)

I know my update has been slow lately. Been trying to work on MechCrop as much as I can, while keeping up with the support and update of TDTK and TBTK. It doesn't help that I got sick for a few days. 

MechCorp has taken quite a leap. I've give the most of the game element a lot of thoughts and redesign, mech customisation, combat system, UI, etc... I thought I've done a lot but there's still so much more to do. I guess I will talk about it when everything has come together. Anyway here's some new mechs and weapons model.

Saturday, 8 March 2014

Monday, 3 March 2014

TDTK Update and WIP for TBTK

So another update for TDTK (v2.2.5f2) has just gone live on AssetStore. It's not much of an update really. Just bunch of bug fixes and some minute changes. And they are listed as below, please note that some very minor stuff are not listed:
  • made some changes to ObjectPoolManager, unrecognised/new object requested to be spawned without initiation will be added to the pools
  • fix a bug with default UI where certain screen area become non-responsive to cursor input after a tower has been selected
  • fix bug on resource editor where the data wont load/save properly
  • fix bug on tower editor where damage over time setting doesn't work
  • fix bug and improves menu extension regarding adding UI or NGUI to a scene
  • fix bug on SpawnManager where it throws up error in some case when set to auto-generate wave

Now that is out of the way, I can shed some light on things I'm working on for TBTK. If you are familiar with TBTK, You can probably tell what it's from the screen shot below.

Yes it's vertical component for the grid. It's functional but I'm not sure how well this will go down when released. It's rather primitive imo. Still, I'm pretty pleased at how well it works with the existing line of sight and cover system. So that's that. I'll be giving more details when it's released. Finally, expect an update for TBTK soon!

Monday, 24 February 2014

Asset Update for MechCrop

Finally got the first batch of light mech model textured. Pretty good I say, with thanks to Tommy Wong, a totally awesome and talented guy who actually done all the hard work UV map and texturing it. Do check out his port-folio at cg-hub, there's some amazing work there.

It's been a slow week due to the fact that I've been distracted by other paid gig. But I'm steadily making progress. Currently I'm in the process of nailing down the mech modification system. After which I'll be moving on to the pilot's leveling and perk system. Overall, still a long long way to go...

Wednesday, 19 February 2014

Base Defense (Another released based on TDTK)

So apparently there's a new TD game coming out on Google-Play Store. And it is every bit worth mentioning because it uses TDTK. No trailer for this one I'm afraid. From the looks for it, it uses quite a lot of pre-made asset (I know because I do browse those through those assets on various online store) but it looks quite decently put together. Go check it out if you like TD game! The link is as follow: