In our functional projects, the main focus areas are practicality, stability and ease of use. Our aim is to provide well-defined black box solutions for users, allowing them to focus on what they do best.
Making games is what originally got us interested in programming, and that has influenced our path ever since. We started by creating mobile games and moved on to craft tools that automate tedious tasks for game developers.
Making games is what originally got us interested in programming, and that has influenced our path ever since. We started by creating mobile games and moved on to craft tools that automate tedious tasks for game developers.
Page content
Unity Assets
Practicality. Stability. Ease of use.
Our Unity Assets are tools for other developers to streamline the development process by having a practical solution for tedious or mundane tasks.
Each Asset has been rigorously tested and edge cases have been honed to create stable products that perform well even in obscure use cases.
It is important that an Asset is not harder to work with than the problem it solves. Versatile tool is not an excuse for a messy user interface, and that is why our Assets have easy-to-use interfaces for any type of developer.
Our Unity Assets are tools for other developers to streamline the development process by having a practical solution for tedious or mundane tasks.
Each Asset has been rigorously tested and edge cases have been honed to create stable products that perform well even in obscure use cases.
It is important that an Asset is not harder to work with than the problem it solves. Versatile tool is not an excuse for a messy user interface, and that is why our Assets have easy-to-use interfaces for any type of developer.
Easy Dependency Diagrams
Easy Dependency Diagrams is a tool for generating informative diagrams of your C# project with just a few clicks, and will be available in the Unity Asset Store. Easy Dependency Diagrams allows you to create multiple kinds of diagrams of your C# project to examine the inner structures and dependencies. All of the following display modes are available in the tool:
This tool does not require any runtime information, allowing you to generate any diagrams entirely offline. Coupled with not having big-picture meta information, some relationship types and values are educated guesses based on the available data. From the top navigation menu, you can export the currently visible diagram in .svg vector format, which allows you to easily modify and share it further!
- Tree view. With Tree view, you can explore the structure of C# files like you would with folders in a regular file explorer.
- Dependency view. This view displays all the classes (or namespaces) in the project in a nice formation, drawing lines between classes dependent on each other. It allows you to easily see the dependencies of specific classes.
- Class diagram. Following UML notation, a class diagram displays different relationship types between classes. To keep the diagram's contents relevant, you can customize how far you want to see each type of relationship.
- Composite structure diagram. Following UML notation, a composite structure diagram shows the parts of which a class consists.
- Package diagram. Following UML notation, a package diagram displays the dependencies between packages (or namespaces in C#).
- Component diagram. Following UML notation, a component diagram shows the dependencies between components (files) that the projects consist of.
This tool does not require any runtime information, allowing you to generate any diagrams entirely offline. Coupled with not having big-picture meta information, some relationship types and values are educated guesses based on the available data. From the top navigation menu, you can export the currently visible diagram in .svg vector format, which allows you to easily modify and share it further!
PDF Documentation Pro
PDF Documentation Pro is the full version of PDF Documentation, and can be found in the Unity Asset Store. PDF Documentation Pro is a powerful asset that creates a simple and informative PDF documentation of your C# project with only a few clicks. The Pro version of PDF Documentation has multiple features added on top of the Lite version:
The main feature of the asset is creating script reference for your C# scripts. In addition to the basic features in the Lite version, the aforementioned customization and quality-of-life features are included in the Pro version. The C# script reference will include proper comments from the code. For example, having a 'summary' tag comment before a method will display this comment in the script reference.
- Customizable info box colors
- Accurate glyph information, allowing exact text alignment
- Encoded file contents
- Option to include a logo on the cover page
- Proper cross-reference table and metadata
- Embedded fonts
- Multiple font options
- Much more customizable introduction text
- Bold and colored text
- In-line figures with numbering and descriptions
- Customizable text alignment
The main feature of the asset is creating script reference for your C# scripts. In addition to the basic features in the Lite version, the aforementioned customization and quality-of-life features are included in the Pro version. The C# script reference will include proper comments from the code. For example, having a 'summary' tag comment before a method will display this comment in the script reference.
Keyboard and Mouse Simulation for Windows
Keyboard and Mouse Simulation for Windows is a Unity asset, and can be found in the Unity Asset Store. Keyboard and Mouse Simulation for Windows is a script component that allows easy creation of authentic keyboard or mouse input, such as UI testing or perhaps creating in-game controls for the cursor.
Any input that you can produce on a keyboard or a mouse can be created using this tool. You don't even need to have a physical input device connected at all, and there are no limits to how many keys/buttons can be pressed at once, unlike with real hardware. The mouse movement also takes multiple displays into account. The tool can be used simply in the editor or by using C#.
The tool also allows you to customize certain options, such as the following:
It is possible to customize the distribution of the given inputs. This allows for realistic, less deterministic input. Distribution can be either normal or linear, with customizable average lengths and standard deviations for the input groups and even specific keystrokes.
Any input that you can produce on a keyboard or a mouse can be created using this tool. You don't even need to have a physical input device connected at all, and there are no limits to how many keys/buttons can be pressed at once, unlike with real hardware. The mouse movement also takes multiple displays into account. The tool can be used simply in the editor or by using C#.
The tool also allows you to customize certain options, such as the following:
- Pausing the input while the application doesn't have focus or the cursor is not on top of the window.
- Remapping any cursor movement so that the application window is considered to be the whole screen.
- Repeating the inputs a number of times.
- Listing multiple different inputs to be performed in a row.
- Customizing specific inputs. For example applying keyboard inputs at the same time or specifying cursor movement as an absolute position on the display.
- Distribution of the inputs over time with natural variance.
It is possible to customize the distribution of the given inputs. This allows for realistic, less deterministic input. Distribution can be either normal or linear, with customizable average lengths and standard deviations for the input groups and even specific keystrokes.
AutoMover Pro
AutoMover Pro is the full version of AutoMover, and can be found in the Unity Asset Store. The Pro version includes multiple improvements and additional features over the free version.
With a few clicks, you can make objects move along curves, generate noise in the movement and customize the curve. The Pro version includes all base features of AutoMover Free as well as additional features such as the following:
With a few clicks, you can make objects move along curves, generate noise in the movement and customize the curve. The Pro version includes all base features of AutoMover Free as well as additional features such as the following:
- New anchor point space option: Child space
- New noise type: Smooth random
- New curve type: Spline through anchor points
- Scale included in anchor points
- Option to stop the movement every X seconds for Y seconds
- Option to always face forward
- Option to slow down on tight curves, including adjustable turn rate and deceleration time
- Pause/Play-button on inspector for runtime
- Button to export the curve as GameObjects, with the option to include the mesh itself
- Multiple small improvements over the free version, such as more general undo support, movable anchor points in editor window, multi-object editing, customizable step count and anchor point weighting
AI & Engine Pack: Card Games
AI & Engine pack: Card Games is a Unity Asset project and can be found in the Unity Asset Store. The pack contains 7 classic card games:
All of the games work well as minigames or challenges in a bigger game. The user only needs to implement the front-end; the engine handles the rest. Each game has three difficulty levels for the AIs: easy, medium, and hard.
All engines are implemented in C# and have the game's state easily accessible through public enumerations. The AIs can be used separately to ask for a move, or simply by letting the engine do its job.
The documentation includes rules for all of the games. Each game has a unique AI with lightweight heuristic computation to allow for reasonable computing times even on low-end devices. The engines always call the AI in a separate thread to assure that the main thread won't get busy.
Demo implementations for all games are included in the pack. The demo also includes things such as textures for cards, enabling fast proof-of-concept development. You are free to use these demos as is or modify them to suit your needs.
- Blackjack
- Casino
- GOPS (Game of Pure Strategy)
- Hearts
- Ninety Nine
- Sevens
- Top Trumps
All of the games work well as minigames or challenges in a bigger game. The user only needs to implement the front-end; the engine handles the rest. Each game has three difficulty levels for the AIs: easy, medium, and hard.
All engines are implemented in C# and have the game's state easily accessible through public enumerations. The AIs can be used separately to ask for a move, or simply by letting the engine do its job.
The documentation includes rules for all of the games. Each game has a unique AI with lightweight heuristic computation to allow for reasonable computing times even on low-end devices. The engines always call the AI in a separate thread to assure that the main thread won't get busy.
Demo implementations for all games are included in the pack. The demo also includes things such as textures for cards, enabling fast proof-of-concept development. You are free to use these demos as is or modify them to suit your needs.
AI & Engine Pack: Board Games
AI & Engine pack: Board Games is a Unity Asset project and can be found in the Unity Asset Store. The pack contains 10 classic two player board games:
All of the games work well as minigames or challenges in a bigger game. The user only needs to implement the visual look and the engine handles the rest. Each game has different difficulty levels for the AIs, and many of the games can be customized by changing parameters such as the board size.
All engines are implemented in C# and have the game's board and state easily accessible through public enumerations. The engines also include handy functionality such as Undo. The AIs can be used separately to ask for a move, or simply by letting the engine do its job.
The documentation includes rules for all of the games. Each game has a unique AI with lightweight heuristic computation to allow for reasonable computing times even on low-end devices. The engines always call the AI in a separate thread to assure that the main thread won't get busy.
Demo implementations for all games are included in the pack in the form of presets in their respective folders.
- Amazons
- Archimedes
- Breakthrough
- Checkers
- Connect4
- Dodgem
- Lines of Action
- Nim
- Reversi
- Tic Tac Toe
All of the games work well as minigames or challenges in a bigger game. The user only needs to implement the visual look and the engine handles the rest. Each game has different difficulty levels for the AIs, and many of the games can be customized by changing parameters such as the board size.
All engines are implemented in C# and have the game's board and state easily accessible through public enumerations. The engines also include handy functionality such as Undo. The AIs can be used separately to ask for a move, or simply by letting the engine do its job.
The documentation includes rules for all of the games. Each game has a unique AI with lightweight heuristic computation to allow for reasonable computing times even on low-end devices. The engines always call the AI in a separate thread to assure that the main thread won't get busy.
Demo implementations for all games are included in the pack in the form of presets in their respective folders.
PDF Documentation Lite
PDF Documentation Lite is a Unity Asset project and can be found in the Unity Asset Store. PDF Documentation asset creates a simple and informative PDF documentation of your project. The main feature is creating script reference for your C# scripts. The asset allows you to customize the outcome: For example you can exclude folders and files, choose what to include in the table of contents and include a custom introduction text.
Asset Store assets with scripts are often required to include a script reference and a step-by-step setup guide to get started with using the asset. Both of these can be created with the PDF Documentation asset. The C# script reference will include proper comments from the code. For example having a 'summary' tag comment before a method will display this comment in the script reference.
The PDF Documentation Asset is meant to be easy to use. It comes with instructions and an example script reference, created with the very same asset.
Asset Store assets with scripts are often required to include a script reference and a step-by-step setup guide to get started with using the asset. Both of these can be created with the PDF Documentation asset. The C# script reference will include proper comments from the code. For example having a 'summary' tag comment before a method will display this comment in the script reference.
The PDF Documentation Asset is meant to be easy to use. It comes with instructions and an example script reference, created with the very same asset.
AutoMover Free
AutoMover Free is our first Unity Asset project and can be downloaded for free from the Unity Asset Store. As the asset is free, the source code is also available here. It is a Unity component that can be used to easily create movement for objects. The main use case for this component is to move objects that don't require heavy interaction with other objects, such as flying stars in the background or orbs rotating around the tip of a staff. AutoMover allows you to easily create and edit (using scene editor or C#) paths that the object will move along, and changing the options of the movement.
The most important options are:
In addition to these options, the user can easily manage the actual anchor points forming the path. The anchor points and the path itself are visualized using gizmos.
The most important options are:
- Length of the path in seconds
- Delay between each loop
- Precomputing of the path
- Choosing to precompute the path allows the AutoMover to cache the path once in the beginning, and then simply read the cached path, rather than computing it on the go. If the path will not be changed often, it is recommended to use precomputed paths to save computing power.
- Rotation method: 'Absolute value' or 'Shortest path'
- Specifies the logic used to rotate the object to the target rotation. 'Absolute value' means that the object will rotate exactly to the given value, even if it includes multiple full rotations. 'Shortest path' means that the object will never rotate over 180 degrees between anchor points
- Looping style: 'Loop', 'Repeat' or 'Bounce'
- Specifies how the object should loop the path. 'Loop' will create a closed loop of the path. 'Repeat' will simply start from the beginning after reaching the end of the path. 'Bounce' will backtrack the path from end to start.
- Curve style: 'Linear', 'Curve' or 'Spline'
- Specifies the style of the curve. 'Linear' is simply straight lines between the anchor points. 'Curve' creates a single bezier curve using the anchor points. 'Spline' forms multiple curves from the anchor points, that are joined together with C2 continuity.
- Anchor point space: 'World' or 'Local'
- Specifies the space in which the anchor points are defined. 'World' means that the points are in world space, so moving the parent of the object won't move the anchor points. 'Local' means that the points are defined in the object's local space, so moving the parent of the object will also move the anchor points.
- Noise options to generate noise in position or rotation: Type, Amplitude and Frequency
- Type specifies if that noise is random noise or sine noise. Amplitude tells the absolute of the minimum/maximum values of the noise, and the Frequency is logically the frequency of the noise.
In addition to these options, the user can easily manage the actual anchor points forming the path. The anchor points and the path itself are visualized using gizmos.
Mobile Games
Our mobile games have all started from an idea for an engaging gameplay mechanic, and the rest is built on top of that. We have always been fans of puzzle games or other games with simple yet expandable core loop, and that is reflected in our own creations.
You Vs. AI
You Vs. AI was a free Android game, and can still be found here. It is a puzzle game, where you play two-player games against (mostly) perfect artificial intelligence. Each of the 30+ games and AIs were carefully selected and designed to create an experience where the player has the edge, but has to really think how they can take advantage of that to win. Many of the games might even seem impossible at first, until the player realizes where their edge lies in that specific game.
All of the AIs are created solely to excel at a single game, often using "solved" strategies to play optimally at any given situation. Some of the AIs use a lookup-logic, where they create a tree of the possible outcomes multiple moves ahead, and use alpha-beta pruning and heuristic weighting to parse the tree and find the optimal move. As the game is a mobile game, all of the AIs are created to be efficient yet effective, to be able make their decisions fast even on a mobile device.
You Vs. AI is our first game to include Google Play Games achievements and leaderboards. The game also includes the 'Rush' mode, that has the objective to win all the levels in order, without failing once, while still being as fast as possible.
All of the AIs are created solely to excel at a single game, often using "solved" strategies to play optimally at any given situation. Some of the AIs use a lookup-logic, where they create a tree of the possible outcomes multiple moves ahead, and use alpha-beta pruning and heuristic weighting to parse the tree and find the optimal move. As the game is a mobile game, all of the AIs are created to be efficient yet effective, to be able make their decisions fast even on a mobile device.
You Vs. AI is our first game to include Google Play Games achievements and leaderboards. The game also includes the 'Rush' mode, that has the objective to win all the levels in order, without failing once, while still being as fast as possible.
Obstacle Zone
Obstacle Zone was a free Android game, and can still be found here. It was our first actual project using Unity.
The objective of this project was to create a game that is quickly engaging and fun, and requires no commitment, even in short term. Getting to actually play the game takes less than five seconds from the start of the application, and the controls and objective can be understood within seconds.
Obstacle Zone is a round area that the player circles while avoiding obstacles. The longer you survive, the faster you will go, and the more challenging the oncoming obstacles will get. Upon reaching certain objectives, the player can unlock new game modes and visual themes.
The obstacles are predetermined patterns that are chained. The patterns are based on how far you are, with a little bit of random, allowing each attempt to be a unique experience while still having consistent difficulty.
The objective of this project was to create a game that is quickly engaging and fun, and requires no commitment, even in short term. Getting to actually play the game takes less than five seconds from the start of the application, and the controls and objective can be understood within seconds.
Obstacle Zone is a round area that the player circles while avoiding obstacles. The longer you survive, the faster you will go, and the more challenging the oncoming obstacles will get. Upon reaching certain objectives, the player can unlock new game modes and visual themes.
The obstacles are predetermined patterns that are chained. The patterns are based on how far you are, with a little bit of random, allowing each attempt to be a unique experience while still having consistent difficulty.
Other projects
Over the years, we have worked with a lot of technologies and environments. Including but not limited to .NET, Android Studio, Arduino, Blender, C#, C/C++, HTML5, Inkscape, Java, JavaFX, Java Swing, JavaScript, Matlab, Python, SQL, Unity and Windows Phone. Here are briefly displayed some of our projects from the past that are not publicly available.
Micro Magnet World
Micro Magnet World is a 3D mobile game, with gameplay similar to Obstacle Zone. The game was intended to be much larger however, including multiple levels, collectibles and different kind of obstacles. We later decided to put the project on hold for our lack of resources on 3D modelling and textures.
Contact Us