Small World – A Frantic Race of Races

tame_dragonSmall World is a board game similar to Risk. The goal is to earn points and conquer territories with units. Similarities start to end there. The unique feature of Small World (SW.) is that you don’t play as a single faction, factions being several classic fantasy races, but instead run the troops dry, putting the faction of out commission and picking up a new faction to continue playing. Since there is a limit of 10 rounds it becomes a race to earn as many points as possibly and quickly move on to the next faction.This unique feature helps keep the pace of SW. quick and snappy and introduces interesting strategy. In addition to strategy SW. is a vivid and visually fun game and is open for players to develop simple narratives with the fantasy factions. These follow the core aesthetics of SW. are challenge, sense pleasure and fantasy.

The fantasy of SW. is driven by the factions of the game. Each faction is a different race common in classic fantasy RPG games such as elves, dwarfs, skeletons, and ogres. The fantasy helps to create a simple narrative shaped by the course of the game. Many fantasy fiction stories like to pit the races against each other, this is mimicked with the factions conquering one another. The ‘declining’ mechanic provides a common narrative of older, powerful races that used to live the land are now only runes and the young races build their power and progress on the leftovers. Players familiar with these common fantasy elements will find some fun in acting out and creating one of the many worlds they have read or played, only at a macro scale instead.

hippie_elves

SW. is a strategy game but it does very well with visually fun game pieces and board. All of the art uses very bold and vivid colors. Interestingly none (or perhaps none at all) of the game pieces have hard corners. This subtly aids with the some of the humorous tones the game has. This can be seen in the subtitle of ‘It’s a world of slaughter after all’ and the art work on the races like elves smelling the flowers suggesting that they are hippies, or the skeletons with hats (maybe they were cowboys, or are conscious about getting skin cancer) and the tame dragon with a humanoid on a stick. The art direction and lighthearted humor help make a SW. not fall into a boring game of numbers and over calculated moves. Humor also aids in getting players out of the box which may result in someone taking riskier moves, or betraying a previous ally, or perhaps role playing all the factions they choose.

 

skeletonsThe challenge in SW. is in coming up with the best strategy for a certain setup. In comparing Risk and SW., again, Risk’s strategy is figuring out the best path based on sum of power (how many troops) and balancing the odds of defense vs. attack (the dice roll). With many players and the larger board strategy for Risk can be interesting and a challenge. However, it’s core rules are simple and because much of the strategy is based around the odds of the dice roll it can end up feeling more like a gambling game such as Farkle or Craps. Instead SW. take almost all of the randomness during the game play and puts it up front with the set up of the game. This is done with randomly matching up perks and abilities with each of the picked factions which also each have their own faction perk. Now strategy with SW. is not a simple summing of opponents’ power but also how to most effectively gain the most points with the specific combination of perk and faction. Good strategy will also look ahead and find the optimal path not only on the board but also which future factions will yield the best points. Risk with it’s simpler rules / parts is like Checkers while SW. is like Chess with pieces that have different rules.

 

Aesthetics of Play -Other side of the Looking Glass

This week I re-watched the Extra Credits video on the ‘Aesthetics of Play’. Here they go over the aesthetics covered in the paper ‘MDA: A Formal Approach to Game Design and Game Research‘ where they cover Mechanics, Dynamics and Aesthetics (MDA) in video games. The quick of MDA is that designers create the game from the mechanics end while players consume games through the aesthetics. This is an important model to understand as designers so that when we create the mechanics of our games it serves the goal’s aesthetics (dynamics is how mechanics are combined, and aesthetics are combined dynamics). So for this post I am going to practice identifying the different aesthetics, and the mechanics that support or create them, for several games.

Here are the 8 different aesthetics described in the paper:

Sense Pleasure
– visuals, sound, music, other senses
  Fellowship
– multiplayer, teams, leadership
Fantasy
– living a different life, power, RPG
 Discovery
– exportation, searching, gaining items
 Narrative
– story, characters, emotion
 Expression
– allowing the player to be creative
 Challenge
– building a skill, learning, practice
Abnegation (Submission in paper)
– zoning out, recharging, zen

Extra Credits added ‘Competition’ as one aesthetic as they feel that competition is a core trait of people, especially when playing games. This I think is the in-between of Challenge and Fellowship, but with the rise of e-sports perhaps this is a good identifier.

Cursed Treasure 2
An online tower defense game. Unique in that enemies need to travel back. _Link_
Aesthetics: Challenge, Abnegation, discovery (minor)
Mechanics: Place towers, upgrades, spells, steal gems, terrain types, marching waves

Cursed Treasure plays like most tower defense games but is limited to 3 types of towers and the loss condition is when enemies take gems off the map. This is different from other games as when enemies reach the goal HP is reduced. Here the enemy needs to potentially travel twice as long. The two main aesthetics is challenge and abnegation. The challenge is to learn the strategy and beat the harder levels. Mechanics of needing to match tower and terrain types and using spells to free up tiles introduces a new way to strategize from other tower games which the common method is finding the correct tower placement and order of upgrades for a level. Abnegation is another main aesthetic as for a good part of play time the game is on auto pilot. Towers fire automatically and waves can start before you are ready, enemies charge in while the player waits for increase  gold or mana to perform the next turn. Discovery is also a minor aesthetic as new towers, spells and character upgrades are locked. To find the new abilities for new strategies dives the need to discover and unlock. One criticism of the game is that the art style hinders the challenge aesthetic as the large outline make it hard to distinguish shapes on the map and as more enemies and towers are added points of interest for strategy.

Card Hunter
An online RPG game that plays like Dungeons and Dragons (D&D), but where actions are all card based.
Aesthetics: Fantasy, Sense Pleasure, Discovery
Mechanics: Items = card hand, trading card game (TGC) type cards, turn based

Card Hunter is a game that tries to capture the aesthetics of D&D for role play and TCG’s cards like Magic the Gathering. The game is pretty heavy-handed in trying to show this and so I think it instead only achieves in copying the mechanics of the two games without trying to explore how they could recreate the aesthetics. However, it does succeed with its Sense Pleasure. The art work in trying to make evening paper like does makes the player feel like they are playing with cards, this is the sense pleasure of the game. Fantasy is like any other RPG game where the player picks a character and takes them on grand quests. Discovery is interesting.  Discovery is a core aesthetic with all TCG’s as there is excitement in seeing other players play their unique deck, when new cards are released and the physical possession of the cards. This game combines that with the D&D discovery of new items. When winning the player gains new items, these items (e.g. weapons) can be equiped on the characters. The special thing about the equiped items is that they have cards attached which determine the cards for the hand.

Gloom
A card game where players win by having the family with the most miserable story.
Aesthetics: Narrative, Fellowship,  Expression, Sense Pleasure (minor)
Mechanics: Family members, effects and events, stacking, death, play on all families

Gloom sports unique transparent cards. The use of transparent cards is to overlay effects on a character and apply negative or positive points. There are three spots where the points can go and any new card that covers up one of the spots bellow replaces the points (this cover up mechanic is used in other places as well). This novelty provides a minor sense pleasure as it is fun and neat to see cards stack and still see the character bellow. Narrative and Expression are two core aesthetics in the game. Players are given a family, and effect cards that are played on characters in the family describe what has happened to cause the player to fall into more gloom and sadness. The effects and events encourage players to tell a story about the ongoing woes in the family, with the stack of cards keeping track of their history. Creating a funny, sad, or cohesive story is up to the player, letting them express their creativity in a mild competition. This creates stories like the maid dying in a fire caused but only dying because she was too intoxicated to escape driven to drunkenness due to the twins previous odd behavior. Fellowship is also a core aesthetic as players are free to play any card on another player’s family. Allowing players to add to the stories being created around them. This is also a core strategy of the game as only your family needs to be full of gloom, others can be given the gift of cheer and happiness.

Mine Craft
A 3D desktop video game, where the landscape is made of cubes and crafting is needed to progress and survive.
Aesthetics: Discovery, Sense Pleasure, Challenge / Fellowship, Expression
Mechanics: Build, craft, mine, combat

The popular and iconic game of Minecraft has many aesthetics to it, however I have split them up into two. The first set being single player / survival mode and the second online creative (there is of course overlap).Discovery is main core aesthetic for Minecraft, this comes from exploring the procedural generated worlds and combining ingredients mined to discover new crafting recipes. Part of crafting is interesting as different patterns of ingredients will create different objects rather than simplistic mixing of objects together. Players will spend much time trying to figure out what they can craft. The crafting mechanics also drives much of the exploration as well since to create new objects, or improved objects, players must search for new ingredients. With the procedural generated world these ingredients may be close or very far away. Sense pleasure for Minecraft is a mixed bag it might seem at first with it’s simplistic shapes and pixelated art work. However, these do add to the sense pleasure of players. Ignoring the group of players that find such art work as an enjoyable visually Minecraft’s  take on the world as just a set of blocks can create a pleasing mental space for players. In the physical world objects are of different sizes, shapes, just trying to figure out an outline takes a lot of physical processing power. Reducing the space of a world to simple cubes allows the player to make easy predictions on how the world works. Minecraft also has a creative mode where the challenge of avoiding enemies and gathering resources is removed. Instead players are in a giant virtual sand box. Now the blocks are more like building block toys of children where players can express themselves. Being online lets groups of players join together in the building of sculptures or complex machines.

RPG Parody Card Game – Munchkin

Munchkins is a table top card game in which you play a parody of a D&D or other classic RPG game. There is leveling up, gear and loot, monsters to fight all alongside team work and rivalry. The cards all sport funny art work. While it looks like an RPG game it is really a strategy game where you add up combat points, the goal being to have more points then the monster you are fighting. Strategy can become interesting and complex as different level monsters are drawn, using cards to either strengthen the character or weaken the monster. Other players can either help or hinder your battle by joining in the fight, weakening the monster with effects, or if the monster is too low level make it stronger.

There are two ways to level up, either defeating a monster or by selling extra loot. This helps players catch up, as well as keep the game short by getting to level 10 faster. Keeping the game loop shot and instead playing multiple rounds of the game lets the game stay a fresh for players. It then becomes interesting in what narratives are created for that round of cards and actions. Levels are an interesting aspect in Munchkin as they directly add to the combat power of the character in addition to winning condition. It is a nice abstraction of RPG games where higher levels normally mean higher skill, and where some players play just to be the highest level.

So at it’s core Munchkin is a number adding game, with the strategy is in the order of actions / card laying. However, a key part is in the social game as well with player vs. player. In games played with a normal deck of 52 playing cards much of the time skill is only in judging a hand’s odds of winning and knowing the correct order to play the cards in. With Munchkin the ability to directly up heave a player’s victory is key (or helping to share the loot). Having the parody and funny cards helps with this process as players are more likely to step out of their social norms to play that card which inhibits another player. It also aids in letting player relationships which develop over the game turn quicker, the simple fact that a will make a monster impossible for a rival to defeat and then offer help shows this.

As with most table top card games it is the variation and combination of the cards ht helps keep the game interesting over time and re-playable but often with the core game mechanics falling a bit short to be interesting in themselves. However, Munchkin does well with situations feeling varied and new with the various ways a turn can end, not every turn ends in a binary lose or win.

munckin-turn-outcome-flow

Catan – Design and Fun Of

Settlers of Catan, where you strike out and develop settlements and cities in the land of Catan. Settlers of Catan, or just known as ‘Catan’ now, is a popular strategy board game where players build and gather resources to earn points, the winner earning 10 points. The game it’s self has several different physical components but otherwise has simple rules and is easy to pick up. One of the most interesting aspects of the game is that the board can be rearranged in different configurations, this is done through fitting hexagon tiles together to make the board. Throughout the game the players place down settlements or cities and roads which must connect them. This is the core of the game where a player’s strategy leads them to place buildings in the most advantageous way. This is because where a building is placed determines which resources are earned and a building counts towards the player’s points, thus much time in thought and discussion with other players occurs. With players planning their win, trading colorful resource cards, and building roads to block each other end up with a fun time to play. So lets look into why this is a fun game from a design view. I won’t be going into the details of rules so if you are unfamiliar with the game’s rules see which short video.

Catan is a fun game, no doubt about that. Three of the topics I will cover are social elements, planning, and re-playability / scaling of difficulty of the game.

First on the list to discuss is the social elements of the game. Catan is very much a social game, in which players interact not only on the board, but between themselves as well. Catan encourages it. This happens during the setup / planning and trading phases. People being largely social beings find a lot of enjoyment out of interacting with others, add in the challenge of navigating the relations of each other player and it becomes fun. In the set up phase of the game players place two settlements and roads before playing. However, since they can only place one of each and passing to the next player this becomes an action of predicting how other players will lay their buildings, but also how they will react to your placement. As mentioned before players will take their time pondering where to place their pieces. A player could just place a piece in the best open spot, but what if it clearly blocks another person’s placement? Your opponent may now become your rival or enemy blocking off roads and being reluctant in trading in the future. You may not play down on the most rich resources but instead in clear area or next to a port clearly sacrificing a resource tile. Players wonder what you are doing and may stay clear of future trading, or perhaps join in to try and gain the points that you only seem to see or block goals. Navigating the relations made on the board and with the player it now continues on creating complex challenges socially. This social game of placing buildings continues through out the game, though, in the planning stage it is common for players to start discussing actions made, ask questions, form pacts, or declare war. This is similar to the game Carcassonne where players will very often discuss the best placement of cards, while seeming acting as a team trying to influence play in their favor. Trading is the next biggest social aspect of the game. Catan mimics a free trade market where players can barter with each other, hawking the resources the have and the rates at which to buy. This again is a challenge in navigating relations but also in using other social skills such as charisma, reasoning, smoothing over misunderstanding and past wrongs. The ability to convince another player to give up their resource, buy when they don’t need to, or pick your own wares can help immensely in preparing and getting ahead.

The next element of fun to discuss is the planning in Catan. Planning is common in strategy games so lets highlight the areas where Catan does this well. Probabilities, since each tile has a number token placed on it figuring out which numbers you will get more often in your building placements is a fun challenge. When placing down buildings players have to weight the risks of a number not rolling vs. the value of the resource in the buildings or development cards they want to buy. Also since they are only probability begin able to correctly diversify income is important to learn and experiment with. Resource combinations, as tiles are placed down randomly and buildings cost different resources, planning ahead on what resource combinations you need in both the early and late game are important, but also if you are going to fill in gaps with trading. Different victory paths, winning a game is 10 points but earning those points can be done in different ways. Victory points mainly come from settlement (1) and city (2) building. However extra points can come from the largest army, longest road, and victory point development cards. So the path to 10 points can come from various combinations. So a player could instead have a strategy to mostly build roads and development cards. This makes Catan a fun strategy game as players can plan for certain victories or redevelop their strategy mid way in the game if they find a more favorable path.

Finally, and what I think is Catan’s strongest element is the variable board set up, this is where lots of the fun develops out of. The obvious effect of a variable board is that it can make each game a new challenge, where new strategies may need to be developed or perhaps hold an unknown effect to discover. This produces fun for players as they can continue to play and think up new plans without having to learn new rules. Since the variable board is split up into three layers of tiles, tokens and ports this can create some interesting outcomes as well as narratives (even though simple game narratives it is interesting to see someone become the monopoly owner of ore causing forcing trade, or everyone has built on wheat tiles that keeps on giving causing wheat is traded in a frenzy). However where a variable board comes in is providing varying levels of challenge. Right in the manual Catan suggests that new players play on a pre-configured board. Even after that new players tend to build boards that have some easily accessible resources. Though, as players start to learn the basic strategies they can switch up tiles or start doing shuffled tiles and then for an even harder challenge mix up where the tokens sit which divides up a balanced board with possibly one resource favored or a needed one unavailable. Playing a new game of Catan, wondering which tiles will show up where, which players to trade with and what strategy to win with makes Catan a fun game.

aniSprite – A Unity Animation Tool

screenshot-2015-03-10-13-44-141

AniSprite Editor Interfaces

 

well I have been doing several small projects over the last couple months including a neat reverse design of the original Super Mario Bros in Unity. I plan on making a post about that at a later date. However my recent bigger project has been the development of a new tool AniSprite. While making 2D games I was tired of Unity making all these extra animation and controller files when I wanted a new 2D sprite animation. Also playing animations should be a lot easier but I have set up triggers in the animation controller and so on. All I really wanted for my 2D animations was something easy and quick. Hence making AniSprite.

AniSprite takes a more traditional approach to doing 2D animations with sprite sheets and frames. When I make Unity tools I try to use as much of the native features it already has because it save me time and it means the user has to less work when either porting in or from my tool. This means you can split up your sprite sheets with Unity’s multi-sprite tool and then use them as frames. You load up the sprites in to a list in the inspector and the first one is frame one, and so on. Of course if you are using all the sprites in one package you can use the nifty load all button once one sprite is loaded in (no one wants to drag and drop more that 7 objects at a time). All of my lists are draw as native ReorderableList, thanks to

From there you can stop there or go on to save different sprites out, make them loop or play once and set the play direction, everyone loves a rewind button. This gif shows the four main features of AniSprite

anispritedemo

So going from left to right …

AutoPlay
As I said before ease of use is important. This is why once you have an animation defined you can let it at that and it will play and loop with out any more touching. You can’t get any easier than that! The orange just had a roll animation so I didn’t have anything else to worry about anyways.

Saved Animations
This frog actually starts out in an Idle animation and then from a script I call the ‘Jump’ animation which will then continue looping. Animations are really easy to call. Just reference the component and then call aniSprite.Play(“YourAnimation”) and that is all you need to switch animations.

Callbacks
Call backs are important because you need to know exactly when an animation ends. Red slime will continue to loop till the space bar is pressed and now you have surprised him! Of course we need to return back to the loop. I used a callback for that.

Stitching
Since we have all these animations saved it would be nice to make a nice long animation out of them. This is what is going on the with the blue bird. His animation goes like this: Rest > Fly > Flap x 5 > Attack > Flap x 2 > Attack > Flap > Attack > Flap x 3 > Land > Rest  … and then loops. Makes for a nice animation but if you wanted to code that you would need several callbacks and more code than one would want to write. So I created an extension component that you can add called AniStitch.  You don’t need it if you are just using AniSprite but it helps with linking animations together like above. Also if you have a reference to AniSprite already you don’t need to reference AniStitch as well since AniStitch adds it’s self to AniSprite and you can access it via a property.

All in all I am pretty happy with the out come of the tool. It has some other features like grouping animations. So with my Mario reverse design I have them groups as ‘Small’, ‘Big’ and ‘Fire’ but all the animation names are the same. So just have to have variable for the group and I can call the run animation on any state, eg. ani.Play(prefix, “Jump”) where prefix is my group name. Another feature is The window for the sheet can pop out and be zoomed in and out. Really helps because that inspector can only take up so much space. Of course I tried to optimize the resources it takes when it runs. I use co-routines and stop the routines when it isn’t animating.

Here is a video of me demoing some of the features. Oh and credit to Jason-Em on OpenGameArt.org for the sprites. They were perfect for demoing AniSprite without having to make my own.

sprite GUI System – MyGUI 2.0

MyGUI2.0Code

Yup, it’s exactly like it looks. Once again in the quest for easy GUI I have recreated a new class, MyGUI 2.0 (though looking at the title of the post I should have named it something like SGS, or sGUI, or maybe GSS. well no matter). This was because now we were using Unity with it’s new sprite system which is a great addition. I have used it for goal pop ups, character ring identifiers and 3D navigation. Using and trying to get my previous system that used the Unity GUI layer and screen positions was more work than it was worth when I needed to make complex screen like the up and coming character selection and menus with animations. In defense of me using resources to create yet another GUI system, this one is visual, easier to understand and uses more advanced programming techniques to be efficient. Iteration three is my best one yet I would say.

So, how does it work? The sprite part of it simple, you get a plane with a picture on it and can drag it around on the screen. Super easy, and very visual. To make sure none of the sprites interfered with the actual ‘real’ game world I used a separate camera that didn’t render a background and only rendered objects on the ‘GUI’ layer.GUICameraDiagramThe code was a bit more complex for this one. In my last GUI system, MyGUI 1.0, I used delegates and events in C# so that I could just subscribe to each GUI element that I wanted to get input from. However, that means a line or more of code for each element I want to use, 10 elements you have ten lines, 20 for 20 lines, and that is for only for a single script, what if I needed to have a different script access the same element? Redundant code and lots of room for error. This time around I used delegates and events again but now you only had to subscribe to a single static manager object that acted as a gateway to all the elements. So each button would put it’s ID on the manager, when the button is pressed the manager runs the delegate on that button and the script that is subscribed to that delegate gets the state of the button, which in this case would be active.

[  in Boresville, flying pigs are actually real! ]

For those that don’t get all that programming lingo you can think of it as a newspaper company. Something happens in Boresville, flying pigs are actually real! A citizen of Boresville then gives a tip to the local newspaper SuperNews. Then SuperNews publishs an article on the flying pigs and they give you the paper with the article in it. Now you, and everyone else who gets SuperNews, know about the new menace of flying pigs in Boresville however those that subscribe to the online newsletter Pop.NetNews don’t know to hide their kids, wives and husbands.

myGUIdiagram[ can be put on anything ]

The great thing about this structure is that I can take advantage of it and goes backwards. The script can affect the GUI elements as well by using a function via the manager to force a state. This has been extremely useful with the simplest GUI class which has only the ON and OFF states. This can be put on anything, like a high score display and now the script doesn’t have to reference it at all but just use the ID and can make it visible or invisible as needed.

Some quick descriptions of features I made with it:

  • IDs are strings, so you name your button ‘b_exit’ which is easily remembered.
  • Can reference elements IDs from any script, and set their states as well.
  • Adding an animation will set elements to automatically animate an enter and exit animation
  • GUI Element class set up so it can be inherited and built out in any way (besides buttons I’ve made screens, control groups, and text fields so far).
  • The info sent by Elements is an Info object containing the string ID, the current state and a generic variable for any extra information (for things like the text field where once entered needs to pass along the text inputted).

And here is an example of it in action. You can also check it out in the new web build that will be out soon here in our Extreme Exterminators game.

MyGUI2.0AnimDemo

evolving IDEs

 

HTML IDE – Brackets
[ amazing and fun to use ]

Brackets is the new cool tool that I found and it is quite amazing and  fun to use. So what is Bracket? Well Bracket is a an Integrated Development Environment, or IDE, which is software used to write programs in. Brackets is an IDE for website development, to write HTML, CSS and JavaScript code. Now there are lots of IDEs out there, I could just launch my universal Notepad++ and start creating a website. No problem there, quick easy, and supports HTML. So what makes Brackets different?

[ the idea of understanding and writing code
in a deeper, more human way
]

Well Brackets is the product of a new trend in programming, which is the idea of understanding and writing code in a deeper, more human way. Since all programming boils down to binary in zeros and ones to control a computer it is impossible to create code in the abstract way we think. It can be hard to understand how everything is connected. Brackets helps with this. The cool thing about Brackets is that it can connect to your browser show you a live and updated page that is a reflection of your code. I constantly try to learn new skills, I know how to design a website but my web coding skills are sorely lacking, especially with CSS3 and HTML5 coming out and I don’t even an inkling of how to use them. So before using Brackets I would have to make changes, save the HTML file, got the browser hoping my code actually worked and refresh it. So what is that in movements? A shortcut, mouse move, a click and another short cut. Not much at all. However, it is repetitive and if you are making lots of little changes, or experimenting how things should look, or are just fumbling around (thats me), it takes up time. With the live update I have my code on one screen and my website on the other. When I make a mistake I then know that didn’t work so change it. I get instant feedback making my iterations quicker and more accurate.

[ In Brackets never leave the code you are working on ]

Besides the live update in the browser that I can get from Brackets it has another incredibly useful feature. In website coding you have a file that is called a CSS file. In this file you create definitions of things for layout and formatting, or you can create a paragraph definition for small normal text, and a title one that is big, bold and centered. Then in the HTML you call those in a tag for the specific text. Brackets allows you to edit this CSS code directly from  the tag. Place the cursor over the tag, press Ctrl – E and a mini text editor pops up there where you can modify the CSS code. In Brackets never leave the code you are working on. You can even type a non-existing tag and it will create it for you. Not only that, it is for more than just CSS! You know those hexadecimal color codes that you never know what they are, having to do a web search or open up Photoshop to figure out. Do the same thing with a color hexadecimal code and a color picker pops up. A time saver, and now I get to experiment with my color schemes on the fly. Brackets has more features too and is a still developed open source project, but with these two alone in a sleek looking IDE makes it a choice tool in website developing.

Brackets - Color Selector Brackets - CSS Editing

As I said this a new trend. ZeroBrain for Lua is one that has the live development feature and then there is huge Kickstarter project Light Table which besides live development shows code flow and code relation for a really neat way of writing and understanding code. Speed is important in software development, and even more so in games development. Unity3D is great with that by using C# which doesn’t need to compile the whole project each time to add new code and you can tweak variables in the engine without having to edit code. Anyone out there use any cool tools out there, for software development or for creating anything else? Comment below and share with the rest of us.