Monday 31 December 2012

Happy New Years 2012

I'd just like to thank everyone that has purchased our assets over the last year and supported us. Over 2013 we will be improving our current assets to provide the best possible experience from them and to better support you, the developers.

Happy New Years and the best of wishes to you.

Regards,
Garth

Thursday 22 November 2012

Spawner - Pro - Tutorial 1


Here's a simple tutorial going through setting up a Spawner and enemy units.
Apologies for the visual artifacts, it seems to be an issue with my recording software.


Regards,
Garth

Spawner - Pro Released


Over the past few weeks I have put some work into our Spawner system to get an upgraded version with more features to be released as a Pro version. This has been uploaded to Unity's Asset Store and is awaiting review.

Some of the new features include:

  • A new custom Inspector and Editors
  • Multiple Spawn Locations per a Spawner
  • Multiple Units per a Unit Level
  • Coded to work with Unity 4
  • Lots of coding changes to try and improve performance
Inspector

Unit Editor

Wave Editor
Documentation
Source Code: C#
Price: $20
Asset Store Link
Webplayer

I hope to have a tutorial up soon. Was hoping to have one done today but ran into issues with the internet.

Regards,
Garth

Thursday 13 September 2012

Localising: V3.0 Coming

Version 3.0 of Localising is now waiting for Unity to approve it on the Asset Store. (edit: is now live)

There is a massive amount of breaking changes in this version however, there are lots of awesome changes that will make future improvements easier and better. There is a new file format, so upgrades will take some time to convert them to the new format by hand.

Changes:
  • Changed the system to use CSV files instead of Key:Value
  • Changed the method of handling multiple languages. That is now stored in the CSV files
  • Made Localisation into a MonoBehaviour
  • Made a custom inspector for Localisation
  • Improved the editor for localised files
  • Added a search option for identities to the editor
  • Added a language filter option to the editor
  • Now uses Unity 3.5.5 (will probably backport it within the next while)
  • Price change to $25
Registering a Save Method
Save Method
OnGUI Method
DeRegistering the Save Method
Editor - No Open File
Editor - Open File
Editor - Filtering Languages
Editor - Searching Identities
Customer Inspector

Documentation
WebPlayer Demo

Regards,
Garth

Wednesday 12 September 2012

UniPack: 1.0 Released


UniPack is a simple to use file compactor, similar to .PAK and .TAR. It will create a single file from a folder full of files. This makes it easier to distribute game content and updates. UniPack also supports viewing of standard folders as if they were packed files. This means that you won't have to constantly recreate the packed file when you make changes during development.

Also supported is creating patch files. This takes the latest version of a folder and compares it to a older packed file, it then generates a patch file that can be distributed in a patch to your game. This means you won't have to redistribute the whole file when making incremental patches.

Name: UniPack
Source Code: C#
Price: $ 30
Unity Version: 3.4.1
Works with Unity Free
Asset Store Link.
Documentation
*Only been tested on a Windows 7 (x64) machine.


Regards,
Garth (Lead)

Wednesday 5 September 2012

Online Documentation

I've placed all documentation for our current projects online.

Spawner
MessageBox
Localising
JukeBox - Pro
INISystem
GameAds
FeedMe
Console

UniPack is still being worked on but is approaching 1.0 release level.

Regards,
Garth

Friday 3 August 2012

Introducing: UniPack

With university having started again recently I have had less time to dedicate to upgrading and working on the various projects that we offer. However, every now and then I get time to work on something and usually it results in something beneficial.

Lately I have been dedicating most of my free time to getting a .pak reader/writer up and running within Unity. Having struggled to find information about the structure and so forth of a .pak file I eventually came across some resources which helped me with the reader and writer part.

I expanded the code to be able to accept either a folder or a packed file. This makes it easier to develop with, since you won't be needing to repack the folder every time you make a change to a file within it.

I am currently in the final bug squashing and document writing stages of a first release. This can take up to three weeks to be completed but hopefully it will be out the door before then.

Regards,
Garth

Wednesday 23 May 2012

Localising Version 3.0 Coming Soon


Lately I have been working on the next version for Localisating, our localisation library for Unity. The new version should be easier to use and still provide the same functionality at its core. There are various small improvements to be done before release but you can expect it to be released shortly.

This update will be a free update to previous purchasers of Localising. Once it is closer to release I will write an update guide and a tutorial for using Localising within your Unity application.

Regards,
Garth

Wednesday 18 April 2012

INISystem: Updated Tutorial


So with the 2.0 release of INISystem there comes a bunch of breaking changes code side. So this is an updated tutorial showing some basic usage.

Loading an .ini file called config, that doesn't require Unity specific DataTypes.
INIContent config;
try
{
 config = INIFile.Read("config.ini"); // Reads the file from disk.
}
catch (System.IO.FileNotFoundException ex)// INIFile.Read throws a FileNotFound exception when the file doesn't exist.
{
 // You can now place any handling of that, such as creating an INI file.
 config = new INIContent();
 INIFile.Write(ex.FileName, config);
}
Loading an .ini file called config, that requires Unity specific DataTypes (e.g. Color, Vector2)
INIUnity unityConfig;
try
{
 config = INIFile.Read("config.ini").ToINIUnity(); // Reads the file from disk.
}
catch (System.IO.FileNotFoundException ex)// INIFile.Read throws a FileNotFound exception when the file doesn't exist.
{
 // You can now place any handling of that, such as creating an INI file.
 config = new INIUnity();
 INIFile.Write(ex.FileName, config);
}
To get an entry from the INI file it is as simple as it was before, even simpler when using Unity DataTypes. (The following assumes you have loaded an INI file by the previous method for Unity Specific.
// To load a string
string text = config.GetString("text", "General", "Default text, if no text is found");
// To load an integer
int number = config.GetInt("number", "General", );
// To load a Unity specific DataType (Color)
Color hudColor = config.GetColor("HUDColor", "General", Color.White);
// To load a Unity specific DataType (Vector2)
Vector2 menuLocation = config.GetVector2("menuLocation", "General", new Vector2(10,10));
The following is used to change an INI entry. (Assumes that the second loading method was used to set up a config object of type INIUnity)
// Changing a string value
config.Change("text", "New text that will now be loaded", "General");
// Changing a integer value
config.Change("number", 5, "General");
// Changing a Unity specific DataType (Color)
config.Change("hudColor", Color.Green, "General");
// Changing a Unity specific DataType (Vector2)
config.Change("menuLocation", new Vector2(50,180), "General");
Finally to save the changes back to file, it is fairly simple. (The following assumes that you have followed the previous example and made changes to the config)
// Saves the changes to file.
if (INIFile.Write("config.ini", (INIContent)config))
 Debug.Log("File saved successfully!");
else
 Debug.Log("Error encountered while trying to save config file");
I hope this tutorial has enlightened you to the changes in version 2.0. You can purchase INISystem from Unity's Asset Store at: http://u3d.as/content/corrupted-smile-studio/inisystem

Regards, Garth

Update

I apologise for the lack of updates over the last couple of weeks. I have been busy with university which sucks up a lot of my time and energy. However, there is some good news hidden somewhere.

I have released updates to both INISystem and JukeBox Pro, so check them out on Unity's Asset Store. I will be doing an update to the previous INISystem tutorial as a lot has changed since version 1.1.

I also took some time to look at Canyon Project again my on and off game project for the last year or so. I have been playing around with trying to get that optimised so that it can run on a PC that isn't a quad core. So I got to focus some time on that.

I shall be seeing you guys around soon,
Garth

Friday 24 February 2012

Back to University

I know I've been a little scarce the past couple of days especially after the last couple of months of frequent updates. University started two weeks ago so I've been busy with that. Had a little time every now and then to focus on a couple of my projects putting some time into them.

With regards to the Grand Strategy I have been mostly working on more planning and designing of the various systems and the interaction between them. So, it may appear to have been no progress but most of it is behind the scenes.

I also put some time into the Console System and started working on the ability to select GameObjects and call commands on them. Currently that is working but using BroadCastMessage, essentially they could run any command that is on a GameObject. This new feature is easy to disable or enable via a bool.

I am hoping to get a nice interaction with the console system with selectable objects that will only allow certain methods to be executed, but we will have to see how that goes.

Regards,
Garth

Friday 17 February 2012

JukeBox - Pro Version 1.5

Version 1.5 of Jukebox Pro has been approved and is now available on the Asset Store.

This version is the biggest update that we have done for JukeBox and makes the differences between the Pro and Free version more noticeable. I will shortly update the free version with some of the features of the new features.

New Features:
  • Multiple playlists
  • User loaded songs get loaded into a User playlist
  • Many small bug fixes and updates
  • Improved inspector to handle the new features
  • An improved example of the system in the form of a Music Player
  • Updated to use events instead of callbacks, which are very similar. This allows multiple scripts to hook into the jukebox to get song changes.
  • Seek through songs is now possible
  • Pausing is now possible too
  • Price is now $5
New Inspector
Regards,
Garth

Sunday 12 February 2012

Grand Strategy - Test Build #1


I've decided to release some test builds as each system gets close to or completed. This is the first build of hopefully many that will eventually end in a complete game.

This build uses an example map that I've been using since I first started this project, it is simple in design but will allow me to check and ensure that all features are working. Currently you can simply right-click on sectors(outlined in black) and the bottom of the screen should update and say the sector name and capital.

There are various menu options and so on, however these do not work at the moment. All that has been implemented is the Start button and the Exit buttons. To move around either use the arrow keys, WSAD or the mouse.

Build 1 - 6.78MB

Regards,
Garth

Tuesday 7 February 2012

This Begs the Question, Am I Mad?

This year one man will attempt what no other has attempted before him and many will post on forums about attempting it after. One man will attempt to create a grand strategy engine/game with Unity that will allow modding and multi-player. And he will attempt to accomplish this in just one year.

That man, is me.

This is the first post in hopefully many that will follow the journey and struggles of attempting such a enormous undertaking. This journey has already started, in fact it was started on the 25th of January. The first thing that I did was write up a design document (the first of its kind for me for games), having gotten the general idea ad layout for the various systems and subsystems to be contained within game. I started work on what I believe will be one of the most essential requirements.

I started on the map system.

I decided that in order to make the game highly moddable and extendible with possible DLCs and so on, I needed to be able to load the map from file. The height map, the splat map, the sector map and the map details must all be loaded from file. Now I tell you this now, that is no easy task. I toyed with the idea of including a map editor within the game and am still toying with the idea. However, when you are still working on getting the map to load correctly, perhaps this is not the right time to be worrying about being able to edit and then save that map.

Truth be told, loading and saving go very much hand in hand. Once you know the layout of what you loading it is easy to be able to convert that into providing the data needed to save.

What is done, you ask?

Well I have managed to bend Unity's Terrain system to my will and the loading of height maps and splat maps is complete. I have also completed the ability to select sectors (in-game sections that will belong to different nations, think provinces/states) via clicking on the map. Obviously, these features are in no way complete and nor do I think they will be for quite some time.
World Map using the Map System

Schedule and Future

Most of the systems have been given a date to be completed by, at least in a usable state. The following is the current schedule mapping, the dates provided are the due dates.
  • 01 March 2012 - Map System (loading, saving and full performance improvements)
  • 01 April 2012 - Nation System (loading, saving, editing of nations)
  • 01 May 2012 - Combat System (Recruiting, disbanding, auto-combat, healing, improvements, full performance improvements)
  • 01 June 2012 - Economy System (Trading, sector improvements (thus production), investment opportunities)
  • 01 July 2012 - Diplomacy System (Alliances, enemies, relations, trade agreements, vassals)
  • 01 August 2012 - Nation AI (Functional non-player nations)
  • 01 September 2012 - Sub-Nation AI (Functional AI controlled systems within a player nation)
  • 01 November 2012 - Multi-player (Functional 2-4 player multi-player)
  • 01 December 2012 - Code Clean-up (Ensure code is clean and every attempt has been made to document all class and systems to prove their usefulness to the system)
  • 26 January 2013 - Completed Grand Strategy game/framework for sale.
Regards,
Garth

Monday 6 February 2012

.NET Message Boxes in Unity

While browsing the answer.unity3d.com site I came across a question on how to make a message box in Unity, so I set about recreating as much of the message box functionality as possible in Unity's standard GUI system. Having just implemented a very similar system in order to display Debug messages to the screen it proved rather simple.

Without further ado I present to you MessageBox, a Unity MessageBox implementation of the .NET MessageBox. Complete with selectable buttons and icons. It uses Callbacks instead of the inline way that the .NET version does, however it is similar in every other way.


Runtime
Supports almost every overloaded method of MessageBox.Show(), it does not support any of the IWin32Window or Help methods.

.NET Example:
var result = MessageBox.Show("This is the text", "This is the Title", MessageBoxButtons.YesNo);
if(result == DialogResult.Yes)
{
   Console.Write("Yes");
}
else
{
   Console.Write("No");
}

Unity Example:
void Start()
{
   MessageBox.Show(HandleMessage,"This is the text", "This is the Title", MessageBoxButtons.YesNo);
}

void HandleMessage(DialogResult result)
{
   if(result == DialogResult.Yes)
   {
      Console.Write("Yes");
   }
   else
   {
      Console.Write("No");
   }
}
Which is very similar with the only change being the callback in the beginning (HandleMessage) which can be any method as long as it accepts a DialogResult parameter.

Version: 1.0
Unity Version: 3.4.1 Free
Price: $2
Asset Store Link: http://u3d.as/content/corrupted-smile-studio/message-box/2Eo
Web Player Demo.

Regards,
Garth

Spawner - Roadmap

Over the past couple of days I have focused quite a bit of my time into updating Spawner after Path-o-Logical's Rafes suggested I look into providing support for their Pool Manager system. After receiving a copy of Pool Manager to aid with testing the system I set about coding in support for Pool Manager while still allowing those without the system to still be able to use the system. This turned out to not be too difficult to implement and was pretty straight forward with some minor changes to existing code in order for everything to work smoothly together.

I pushed that version (1.5) to the Asset Store on Saturday (4th Feb) and it is still currently awaiting review. Sunday (5th Feb) I woke up and decided to work on a new update that changes the way the main Spawner class handles the spawning. It currently uses Update() which is inefficient for what the system does, so I set about changing it to a coroutine with a small amount of seemingly strange errors I got it working correctly with all the Spawn Modes.

So, I am currently waiting for version 1.5 to be approved on the Asset Store and then I am going to upload version 1.6 which also happens to include improved documentation which could be found on Docs.zip. This contains some better descriptions of classes and a installation guide and so on.

So to sum it all up, it looks like there is going to be a whole bunch of performance improvements coming to Spawner in the coming week and all of this for free. If you use Spawner and like it, if you would consider purchasing one of my other assets that would be awesome.

Regards,
Garth

Wednesday 1 February 2012

Console System for Unity


This is a Console system similar to those available in Skyrim, Fallout and others. It allows you to call various methods that have been set up (at compile time) at runtime. Supports a couple default methods (Exit, Help, SetFov) which can be switched off at creation.

The current feature set is:
  • Works with Unity Free
  • Supports non-parameter methods
  • Supports single string (conversion to the correct datatype must be done by the method) parameter methods
  • Supports history of previously entered commands
  • Integrates into Unity's Debug system.
  • Supports 3 default methods (Help, Exit, SetFov)
  • Help method automatically displays all available commands and whether they require parameters
Version: 1.0
Source Code: C#
Unity Version: 3.4.1 Free
Price: $ 10
Asset Store Link

Inspector
In-game screen
Regards,
Garth

Tuesday 31 January 2012

Price Drops

We have dropped the price on most of our Unity assets.

Localising - $10
Game Ads - $2
FeedMe - $15

Get them while they cheap.

Regards,
Garth

Thursday 26 January 2012

JukeBox - Pro, V1.0 Ready for Release


I've put my head down and put some effort into polishing JukeBox Pro, so that I may get it into your hands as soon as possible. This is just an initial release with some pro features, if you can think of more features that would be cool to have let me know and I will do my best to include them in future releases.

The current feature set is:

  • Custom Dynamic Inspector (based on what you doing)
  • Runtime file loading for user music.
  • Written to support both desktop and phones, loads .ogg/.mp3 depending on the platform.
  • File loading is disabled on consoles.
  • Many small bug fixes and possible speed improvements made
  • All JukeBox Free features are available.
Version: 1.0
Source Code: C#
Unity Version: 3.4.1 Free
Price: $10

Custom Inspector
Regards,
Garth

Spawner - Available on Unity's Asset Store

Spawner is now available on Unity's Asset Store, it's free, so there's no reason not to buy it.
http://u3d.as/content/corrupted-smile-studio/spawner-free/2C3

Regards,
Garth

Tuesday 24 January 2012

Spawner - Spawn More Enemies


It's started to look like 2012 is the year of giving from us, here at Corrupted Smile Studio. Coming this week is a Spawner system for spawning enemies. We have taken a previous released Spawner script that Garth made a couple years ago and done some upgrades and additions.

Some details about the system to follow.

Version: 1.0
Source Code: C#
Unity Version: 3.4.1 Free
Price: Free

Features:
  • Works with Unity free
  • Spawn Modes
    • Continual (keeps the number of spawned units at the total number of units)
    • Once (spawns up to the total only once)
    • Wave (spawns in waves, once all are dead, spawns again)
    • Timed Waves (spawns in waves, once the time is up, spawns again)
    • Time Split Waves (spawns in waves, once all are dead, waits time then spawns)
  • Supports 4 different unit levels (Allows easy switching of difficulty)
  • Has a custom inspector to ease usage
Custom Inspector
Regards,
Garth

Monday 23 January 2012

JukeBox - Pro in the Works

I recently released JukeBox - Free, a week ago, there has been what I would call a fair amount of downloads from the Unity Asset Store for it. I have since decided to work on a pro version that I would charge a little for.

Currently the pro version will include:

  • From folder loading of .ogg/.mp3 (depending on the platform) for user content.
I have been looking into creating an mp3 to ogg converter that will convert all mp3s within a folder to ogg format. I was hoping to be able to run it from within Unity, sadly it would be too slow for that. I have been milling around trying to come up with ideas, I will probably offer it as a separate download that anyone can simply use to convert mp3 to ogg.

If you have more suggestions on what to add/improve for the pro version, comment here and I will see if it would be feasible for me to include it.

Regards,
Garth (Lead)

Sunday 22 January 2012

1000 Pageviews Approaching

Just thought I would let you guys in on a little something that has been lurking for a little while and that is that this blog is nearly at 1000 pageviews. Which for me is pretty damn good in the fairly short amount of time that it has been live (Since 28 July 2011). So I would just like to thank you for your support over the last 6 months, it has been good. The next 6 will be even better, stay tuned.

Regards,
Garth (Lead)

Sunday 15 January 2012

JukeBox Free - Version 1.0


While working on Canyon Project, we developed a fairly simple Jukebox like music system that will simply play through a playlist of songs. We have since decided to release this as a free system on Unity's Asset Store.

Version: 1.0
Source Code: C#
Unity Version: 3.4.1 Free
Price: Free

Features:
  • Works with Unity free
  • Can play random songs
  • Can skip forward and backwards
  • Allows a delegate to be called on song change that will display a formatted string of the Artist - Title.
  • Supports volume changes.
  • Automatically plays the next song once a song ends.
We hope someone will have a use for this system.

Unity Inspector
Regards,
Garth (Lead)

Monday 9 January 2012

2012 Plans and Hopes

I thought I should share some plans I (and thus Corrupted Smile Studio) have for 2012 and see how they change throughout the year. As inspired by the Unity forums (forum.unity3d.com/threads/117861-What-are-your-plans-for-2012)
  • Finish Canyon Project
  • Get distinctions for all my university subjects
  • Improve my coding ability.
  • Try work on improving my 3D modelling and texturing.
  • Polish and release the console screen system I've been working on, on Unity's Asset Store
  • Polish and release the simple "jukebox" music system I've been working on Unity's Asset Store
  • Finish the Corrupted Smile Studio Website to help with promotion of the games and tools that I create.
  • Try to finish more smaller games throughout the year.
  • More regular blogging about development and other plans.
This is just a small list and will hopefully grow as the year progresses. This is my first post back after a rather lengthy holiday, so hopefully blogging will become more regular.

Regards,
Garth (Lead)