Thursday, January 21, 2016

What is Intelligence?

Today I will introduce how I define general purpose, human-level intelligence. This blog post is not limited to artificial intelligence, but does answer some basic questions that can help us progress towards artificial general intelligence (AGI).

You can also watch a longer interview with me where I discuss this topic:



Some people may consider what I write here fairly obvious. However, I believe that for others my description will offer a new perspective and help them understand how I see the big picture.


Simple description of intelligence

Intelligence is a tool that an intelligent agent uses to learn, adapt, solve problems, and achieve goals in a dynamic, complex, and uncertain environment. Intelligence achieves this by representing relevant parts of the environment in a simplified, abstracted mental model where searching for optimal solutions is faster and cheaper. Intelligence has fewer resources (atoms, computation cycles, energy, etc.) than the environment, so the intelligent brain must use resources in a smart way.


Evolution vs. intelligence

Evolution:
Like intelligence, evolution tries to find solutions or optimal ways to operate in a complex environment. However, instead of using a mental map or representation of the real world, evolution uses the real world – an environment that is extremely complex and has a nearly infinite number of parameters.

We can say that evolution is a “dumb” algorithm because it does not plan ahead and every solution has to be tested in the real world.

For example, we know that birds build different types of nests. Nests near the ground (where there are many predators) tend to have a protective dome structure, while nests in trees have an open cup shape. Birds do not use their intelligence to decide that when they build nests on the ground those nests should have a protective dome – instead, it is believed that it took generations before evolution found birds through natural selection who were suited to building ground nests with protective domes. Other birds are restricted to building nests in trees, because they haven’t evolved ground nest-building skills.

We can say that evolution “learns” by reusing and combining things that have already worked. However, its memory is limited – if it finds itself at a dead end, it has limited options to backtrack to a previous working solution.

Evolution is blind and has no sense of where it is, where it was, or where it is going.

Intelligence:
Unlike evolution, intelligence searches for solutions in a simplified mental representation of the real world. The intelligent agent observes a portion of its environment and tries to create a simplified mental model of that environment. Since the agent operates with limited resources, it will model only those parts of the environment (internal, external, its own thinking, other agents, and so on) that are relevant for finding optimal solutions.

Since this representative model has fewer parameters than the real world and includes only relevant information, searching for solutions is faster and various non-evolutionary optimization strategies are made possible. These strategies include planning, forecasting, learning, abstracting, connecting things that are not close in time or space but may be related to one another, and more.

There can be higher or lower levels of intelligence and adaptability – depending on the abilities of the intelligent agent. At a certain low level, an agent doesn’t even need to be adaptive or intelligent to achieve goals, but can succeed simply by following a set of rules (discovered, for example, by evolution).


Properties and abilities that enable intelligence

Patterns are critical to the functioning of intelligence. A pattern is something that happens in a regular and repeated way (not random noise). Our current human approach to creating a mental model is to see the world as a hierarchy of spatial and temporal patterns which manifest as letters, words, songs, behavior, events, physical laws, and so on.

Intelligence depends on:
  • Pattern detection - trying to find causal correlations between things. There are patterns in the universe around us. We know some of them, but many of them are still a mystery we need to discover.
  • Pattern generation - using detected patterns for something new, or applying patterns to unknown environments based on hypotheses we’ve generated. Through pattern generation, plans can be tested and goals achieved.
We can learn new patterns by transferring patterns from domain to domain, essentially problem solving by analogy. Learning by analogy means acquiring new knowledge about something (an object, an action, a problem, and so on) by transferring useful knowledge we already have about something similar (a similar object, action, problem, etc.).

For example, if someone learns how to use a hammer, this basic movement can later help them use an axe.

Attention: Attention is a phenomenon closely connected to the intelligent use of limited resources. Attention is a critical part of intelligence because intelligence models only those parts of reality that are relevant for a problem the agent is trying to solve. This is how I understand all levels of attention – mental, sensory, goal directed, etc.

Put simply, the intelligent agent uses previous experience and knowledge about the world to focus its attention on specific parts of the real world or specific parts of the model. The mind has limited processing and memory resources and cannot do or process everything at the same time.

People are always searching for new patterns, because finding patterns is what optimizes the results of intelligence and helps it achieve goals faster and more cheaply. We can say that new and useful patterns are as valuable as gold. However, pattern detection and generation cannot occur all at once or without preparation. Detecting and utilizing patterns (i.e. increasing intelligence) involves both gradual and guided learning.
  • Guided learning means that there is someone (a mentor or society) who has already discovered many patterns for us, and we just need to learn the patterns from them. Without guided learning we would have to reinvent everything people before us already discovered.
  • Gradual learning means that we learn abilities one by one, where complex abilities are based on previously-learned abilities.
    • For example, before you can start programming, you first need to learn to write, read, speak, understand the environment, and so on.  Without gradual learning, we’d have to spot patterns in places where no lower-level pattern has been learned – making it a very difficult search problem.
    • If someone gives you a book written in Chinese, you most likely won’t be able to read or understand it. But if they give you a textbook and you study the first chapter to learn basic Chinese language patterns, you can then start the second chapter and learn more advanced patterns. Eventually, you will be able to read that book in Chinese.
Other mechanisms critical for understanding intelligence include:
  • Abstraction: allows us to see the correlation between one object and another at a high level, something evolution is unable to do
  • Uncertainty: the mental model of the world is a probabilistic model, because we don’t always know why things happen as they do in the real world. Using a probabilistic model prevents us from having to go into deep investigations on every matter, and allows us to act or move towards goals without complete certainty
  • Generalization and Specialization: the ability to move from the specific to the general or from the general to the specific

IMPORTANT: The above properties and abilities are not sufficient for a human-level intelligence! This is why we have invented a framework for studying intelligence properties and abilities in a systematic manner – you can read more on this in our upcoming R&D roadmap for 2016.


Conclusion

Keep in mind this important principle: intelligence works in a simplified representation of the world where it searches for patterns that help it achieve optimal solutions. This model is much simpler than the real world and it also has a clearer structure. Intelligence can implement many optimizations that are impossible in real world investigations (planning, abstraction, and looking for correlations between events) and achieve efficient results. Intelligence always looks for more efficient, cheaper, and faster ways to use limited resources (mental, environmental, time resources, etc.).


Your feedback

Please let me know how you define or describe intelligence, if you think my description is too shallow or broad, where we can simplify it, and whether some additional details need to be added.

Many thanks!

Marek Rosa
CEO, CTO & Founder
GoodAI, Keen Software House
:-)

Facebook: https://www.facebook.com/GoodArtificialIntelligence
Twitter: @GoodAIdev
Forum: http://forum.goodai.com
www.GoodAI.com
www.keenswh.com

Thursday, January 14, 2016

The KSH roadmap for 2016 – Space Engineers & Medieval Engineers

As I promised in the Year in Review blog I published a couple of days ago, I would like to share with you the Space Engineers and Medieval Engineers roadmap for 2016. This comes in contrast to our decision to only talk about features that are actually present in our games (fully finished or work-in-progress) and not speak about planned features, ideas, future dates, our roadmap, etc. The reason why I am making this exception now is because I believe that after two years in Early Access, our players have a better understanding of our development decisions. Additionally, people deserve to know how our games are shaping up, especially Space Engineers, as we are approaching the final turn in the game’s development before it leaves Early Access.

Before I continue, I would like to remind everyone that everything I say here is subject to change.
Important: some of my comments may sound harsh to my colleagues who are actively working on these games. Let me assure you all that we have the same goal: make our games great!

I also want to mention that I will not go very deep into details or explain each and every feature separately in this blog (that’s for separate design documents). Instead, I am going to be playtesting both games live on Twitch, as I did on Monday – most likely on a weekly basis, usually on Mondays – where I will point out the issues I find in our games. We are also planning to do focus testing groups where “random” people with no experience with Space Engineers / Medieval Engineers play the games for the first time (to see what issues they encounter, where they get stuck, what they enjoy most, what troubles them, etc .)

Space Engineers roadmap

After two years in Early Access, I believe that Space Engineers has a vast amount of features - perhaps even more than what was needed. But we always wanted to keep the development going and add new features constantly since there are so many community suggestions that could be a great addition to the game. For example, I never would have imagined two years ago that we’d add planets!

One of our top priorities is to improve multiplayer. It is not only about network coding, but is also related to game logic optimizations. We are working on a method where we put all non-real-time game-logic in a secondary thread. For example, the computations for drilling/refinery/conveyors/oxygen won’t delay the main thread (which has to stay real-time). The reason is that players can always build crazily huge things which slow down the game (regardless of how much we optimize it), and if players perceive non-smooth movement, they think it’s a bug.

The development cycle of a game is complex, but its core idea does not differ from the development of the majority of products that are out on the market today. I will give you an example to understand this better. Let’s assume that you are producing a car. The first thing you do is assemble all necessary parts. After this phase is done, you take the car for a test drive. You identify any possible issues and then you fix them. After all issues are fixed and the car is functioning properly, you add the final touches – painting, polishing, etc. Then you are ready to start selling the car. The same principles apply to our games. Space Engineers is now in the phase where (nearly) all necessary parts have been assembled and we are ready to move to the major polishing and bug-fixing phase. This will probably be the longest and final bug-fixing period before the game is released in its final state.

Please note that the order of the list below is random and doesn’t reflect the priority that we give to each action. As I mentioned previously, our top-most priorities are to fix all annoying issues that make the game unplayable for many of you, improve the multiplayer, and polish the game.

SE roadmap
  • Multiplayer - polishing, checking design, lag, compensation<
  • Fix all sounds, 3D, arcade / realistic (ask programmers and our sound designer to make a list of all sounds used in the game and then have someone test them all – so that we don’t miss anything)
  • Voxels: data cell cache, storage, optimization, profiling voxel runtime
  • Render fixes (Ambient, environment map / lighting / reflections), occlusion query, ambient + backlight
  • Occlusion culling - blocks / voxels (speed up the rendering)
  • Disable object highlight on LCD screens (it’s annoying)
  • Optimization and fixing the loading screen, and checking if there are worlds that take forever to load while not properly informing the player
    • Fix loading screen issues (e.g. the wheel gets stuck at the end and I can hear the in-game sounds)
  • Red message box – make the background texture less transparent; it’s hard to read text on it
  • Conveyor system optimization
  • Drilling / mining optimization
  • New animation system / caching  (speed optimization) / other optimizations
    • Fix ugly animations
    • Add new animations – e.g. holding a weapon
    • Walking over small obstacles doesn't work - the player has to jump over them
    • Jumping and holding the forward-movement key doesn't result in a forward jump, and this doesn't feel right
  • Shooting and weapons
    • A few more new weapons
    • We need much better animations, holding weapons, ammo reload
    • In general, we need a basic FPS experience
  • "saving please wait" - hide this overlay text and do saving asynchronously without bothering the player
  • Why does the game auto-save in multiplayer when I am the client and manual save isn't available?
  • Remembering removed trees on planets
  • Nvidia GameWorks – consider HBAO + Antialiasing (speed up)
  • SE Indication of hydrogen fuel
  • Spectator flash light / night vision
  • Object highlight – outline – finish – also in ME
  • Finish support for scenarios, mission scripts and sub-missions (will need for tutorials)
    • Better support for gradual tutorials (story-based tutorials), submissions
  • Finish building from cockpit
  • Rethink the way of respawning, respawn ships, landing ships, and rethink "mobile tools" (manual assembler – so player can respawn without a ship and still be able to start building)
  • Rag-doll + IK, bullet impact, falling, four legged...
  • Official persistent servers
  • Automated tests for our testers + buy dedicated computers where the game will run 24x7
  • Redo the GUI framework (this doesn’t mean changing graphics; it only means the underlying tech which has become very cluttered over time)
  • Game logic optimizations + oxygen (mostly for MP) + oxygen sensor
  • Add voxel material in survival
  • Improve tutorials
    • Reduce the usage of text panels, deliver the info to the player via context-sensitive screen hints
    • When I launch the first interactive tutorial, I see two things that I shouldn't see – the respawn screen and "you have been accepted to faction"
    • Quickstart will be our interactive tutorial, with minimum text, HUD sub-mission navigation. Its purpose will be to engage the player and not to explain everything that happens in the game.
    • After we add this new tutorial, remove the video tutorial message box
  • Development of Xbox One version

Medieval Engineers roadmap

In Medieval Engineers, things are a bit different from Space Engineers. The game will complete one year in Early Access very soon and many of the features that we planned to implement are already in the game - e.g. survival mode, castle siege mode, multiplayer, simple AI characters, and crafting. However, many of these features have various issues or the implementation is very rough – in a clear work-in-progress stage. The overall gameplay lacks a polished feeling – e.g. the first few minutes might feel very annoying for some players (myself included!), the controls and gameplay is not intuitive, there are weird animations, etc. These are the things we will improve first so we can then continue adding new elements.

Please note that the order of the below list is random and doesn’t reflect the priority that we give each action.

ME roadmap
  • Add planets to ME - this will unify the technology in our games and make future improvements easier
  • Animation polishing
  • Inventory size rebalance
  • Character stats rebalance
  • Multiplayer fixes and polishing
  • Polish the in-game screens
  • Fix all sounds, 3D (ask programmers and our sound designer to make a list of all sounds used in the game and then have someone test them all – so that we don’t miss anything)
  • Combat system
  • AI changes, fixes, simplification
  • Building on a grid
  • Large grid construction site
  • Small grid construction site
  • Rethink if the respawn cart is necessary - why can't the player respawn in a normal way?
  • Testing scenarios for DEV
  • Tool durability, tool damage
  • New animals – e.g. wolves, bears, etc.
  • Fix Z-fighting
  • Door / window blocks
  • Gate blocks
  • Mechanical blocks
  • Redo the manipulation tool, remove it from the toolbar, add it to the context-sensitive action key (e.g. T), disable physics while the player is holding the item
  • Faction system
  • Claim of an area
  • Support to add voxels in survival
  • Area inventories – remove this feature (players should not have access to the inventories / items that are not in the direct vicinity or those that they are not interacting with directly)
  • Regrowing trees / bushes
  • New maps / worlds
  • More voxel materials such as iron, sand stone, etc.
  • More multi-blocks
  • More compound block combinations
  • Specialized workshops
  • Specialized furnaces

VRAGE / both games

  • Add/build new blocks/grids – finish the redesign – static, dynamic; small, large; creative, survival, construction sites
  • Multiplayer server optimizations (read the second paragraph under the Space Engineers roadmap section for a more detailed analysis)
  • Falling in 1g (especially in SE) doesn’t feel like 1g – the falling is way too slow; this was caused by changes in physics due to the Moon gravity, but the result is not good (yes, we want higher jumps on the Moon but we also want “normal” jumps/falling on Earth)
  • Finish transition to PBR (physically based rendering) and DX11, all models and textures needs to be checked
PBR example images
  • Redesign and simplify the key and mouse controls and GUI, check F1 help screen, left and right mouse click - try to do things with as few keys as possible by adding context-sensitive commands, get it to a stage when we don’t need to show 5-7 lines of default screen hints
  • Fix the 3rd person aim-point; first-person is ok
  • First-person movement and camera – the experience needs to improve, since now it feels all wrong
  • When pressing ESC while playing single-player (menu screen), the game doesn’t pause (and that’s just weird)
  • Proper sound when the character is running on armour blocks – players don't hear metallic steps
    • need to check all sounds in both games
  • Faster executable loading - when I installed the game on a new computer and launched it from Steam, I could only see a black screen and game mouse cursor and listen to game music for about 15 seconds; I don't understand what the game is doing during this time before the main menu – trying to upset me?
  • Particles fix
    • Consider Nvidia Gameworks / GPU particle
    • Editor
    • Rendering, especially DX11
    • Fix individual particles in each game and keep the low number of billboards and pixel overdraw
    • Programmer – make a list of all particle effects in the game
    • Artist – make a list of all particle effects in the game
    • Then match these lists, so there’s no unfixed particle, and we’re not fixing a particle that’s not used in the game
  • Faster world loading
    • Cache assets that don't change between worlds – when the game needs a voxel texture in one world and I exit to the main menu and load a new world, this texture can stay in memory - and the same applies for hundreds of other assets
    • In the main menu, the game should pre-load the most used assets, so that when a player loads a world, most of it is already loaded
    • Streaming assets, but make sure this won't break the game (lags, crashes, delays) when something suddenly jumps to the player (jump drive, spawned object, etc.)
    • Or if pre-loading isn’t a good option, then at least load assets asynchronously so the game doesn’t lag for a few hundred milliseconds every time new assets are needed
  • Refactor code (e.g. cube builder) – for two years we have been adding new blocks to this class, and it’s time for some spring cleaning
  • ME + SE player skills
  • In-game server admin tools (with GUI) – take the best from Midspace’s SE Toolbox and Tyrsis’ Server Extender; assume players want to become space masters
  • Main menu redesign
    • Think about how we can simplify it
    • Workshop button – move it somewhere else (e.g. Load), because it shows only world workshop items and not the entire workshop (blueprints, 3D models, etc)
  • Blueprints – simplify the user interface and GUI
  • Economy model (very simple)
  • Camera shake (e.g. when near explosion, when hit by a larger object, when shooting, etc)
  • Analyse the player stats and see where people get stuck, where they have problems, if tutorials are actually helping them or not, what changes in game design can prolong their game time (by making the game more intuitive and better)

Additional polishing and bug-fixing ideas will appear during my twitch gameplay sessions . If you think I missed something, please send it directly to me: marek.rosa@keenswh.com (Please report only the "annoying stuff", not wishes for new features/blocks. Thanks!)
Also, please keep reporting bugs and other issues on our forums (add links).

This year is going to be a very busy and challenging one for all of our teams. I am really looking forward to it!

Additionally, we have decided to run a live-stream tomorrow Friday, January 15th at 7pm CET on our Twitch channel, where, together with our lead game designers and a few of our closest YouTubers, I will be answering your questions and providing more details about the roadmap. Please start preparing your questions!

---------
EDIT: Thanks to everyone for their comments and emails -- it's "fun" to go through hundreds of emails...Haha :-) I keep replying to you as I process the emails. Thanks again!
---------

Marek Rosa
CEO, CTO & Founder
Keen Software House, GoodAI
:-)

---
For further updates, keep reading my blog: http://blog.marekrosa.org/ or find me on Twitter: @marek_rosa

Follow Space Engineers and Medieval Engineers on social media:
Space Engineers on Facebook: https://www.facebook.com/SpaceEngineers
Space Engineers on Twitter: https://twitter.com/SpaceEngineersG
Medieval Engineers on Facebook: https://www.facebook.com/MedievalEngineers
Medieval Engineers on Twitter: https://twitter.com/MedievalEng

Tuesday, January 12, 2016

2015 Year in Review – Keen Software House & GoodAI

Until you look back you don’t know how far you've come. Today I’m happy to sum up the major highlights for me of 2015.

Even though it's hard work and it has its drawbacks, I am able to actively work as CEO/CTO for both of my companies: Keen Software House (KSH) and GoodAI. This means a lot of reading, studying, designing, prototyping, planning, discussing with colleagues and other experts, traveling, and making day-to-day decisions about the most important thing to work on at any moment.

Just look at what my teams accomplished together in 2015. We…

  • released Medieval Engineers
  • launched GoodAI and gained international recognition
  • open sourced GoodAI’s Brain Simulator and associated AI modules
  • released Planets in Space Engineers
  • won several awards for Space Engineers and Medieval Engineers
  • ensured Space Engineers remained a top-selling title
  • moved to new offices (twice :))
  • opened offices in Brno, Czech Republic
  • grew the team from 20 to 70 people (40 in KSH, 30 in GoodAI)
    (BTW, GoodAI is a completely new team. No one from KSH has transferred to GoodAI… I guess everyone loves making our games too much)
  • finished the KSH roadmap for 2016 (SE & ME – to be published this Thursday)
  • finished the GoodAI R&D roadmap with a new unified brain architecture and School for AI (soon to be published)



Keen Software House


2015 started out strong at Keen Software House with the Medieval Engineers announcement. Since the release our team has grown significantly to meet our rising development needs, and in one year we moved to new and bigger offices – twice! The Medieval Engineers release also led us to create the Engineers sales pack (Space Engineers + Medieval Engineers).

We’re still growing, so if you’d like to be an Engineer and have that Need to create, check out our jobs page! www.keenswh.com/jobs

Not long after the Medieval Engineers release, we learned that we were awarded Czech Game of the Year in the technical contribution category. Presented by Czech Games, Medieval Engineers’ realistic physics, structural integrity, and the options it provides to players for building realistic-looking medieval castles and catapults really impressed the jury.


You’ve probably heard a lot about our biggest feature yet in Space Engineers – Planets – released in November. It was our most-anticipated feature ever, and even though it wasn’t in our original development plans, we were so glad to take on the challenge and deliver what the community wanted! Equally important is the fact that there’s no game in this universe that offers the range of gigantic features we’ve implemented in ours - large planets, a dynamic and destructible environment, seamless traveling, structural integrity, and engineering complex structures (from ships to planetary bases, medieval fortifications), and more. It feels good to be first!


We closed out 2015 with some more great news that confirmed we have the best community of any game studio. We won the Indie of the Year award for 2015! The award is based on community votes, and we couldn’t have done it without your support. Thank you!


GoodAI


During 2015, GoodAI grew from a team of 10 to 30 researchers – and we’re still hiring! Alongside announcing GoodAI as a company in July, we also released Brain Simulator – our in-house platform for designing AI architectures – for free to the public under an open source, non-commercial license.

We also reached our first milestones in 2015, including Pong/Breakout, Maze Game, and a subpart of our attention module. However, these milestones are just warm-up tasks for us – they’re not related to our new unified brain architecture, which we’re starting completely from scratch.

We put together a clear R&D roadmap for GoodAI and developed a simple framework for studying AGI abilities and requirements. We reorganized the team to be more efficient and defined clearer roles so everyone can contribute to our shared goal.

Speaking of reorganizing the team, in 2015 I became GoodAI CTO – the lead role in making decisions about designing and inventing our technology from the ground up, working shoulder to shoulder with my dedicated and talented team. This is in addition to my duties as CEO, where I direct the company vision and lead the business side of GoodAI.

I also took on a greater role of AI advocate + AI safety advocate. I’ve learned it's possible to be invested in both fast AI development and safety, and made it a goal to become a spokesperson for it.

Some GoodAI 2015 media coverage:

MIT Tech Review: http://bit.ly/1NbiPJI
The Next Web: http://bit.ly/1mghiZm
Center for Data Innovation: http://bit.ly/1SkHFJN
Tyinternety.cz: http://bit.ly/1PuKsPU
HN Slovakia: http://bit.ly/1QUPF4U
HN Czech Republic: http://bit.ly/1JdHvBU
DVTV: http://bit.ly/1DJm2sx
CzechCrunch: http://bit.ly/1METTG3


Traveling


I traveled to the U.S. (twice!), Canada, Asia (China, Hong Kong, Japan, and South Korea), Finland, the UK, Austria, Germany, and more! The primary reason I took these trips was to educate myself further and to learn from other experts in gaming and AI.  It was also a good opportunity to do some business development and networking, but these are secondary priorities for me.

In case you missed them, take a look at a few of the presentations I gave over the year, both in Prague and abroad:

At Czech Technical University: http://bit.ly/1SkJwyk
With the Japanese Society for AI: http://bit.ly/1PuVQco
RE.WORK Future Technology Summit in London: http://bit.ly/1kpW6OI


2015 Conclusions


We accomplished all of our achievements through dedication and working to overcome challenges together. At the end of the day we were recognized (at home and internationally) and gained the respect of others in games and AI. We stuck to our mission, focused, and responded to the need to create.

2015 was a good year!


Plan for 2016


This year is going to be the most challenging year of my life

I need to ensure that KSH transitions from a one-hit indie studio to a reputable gaming house, not dependent on luck or few people to succeed, but able to consistently deliver creative, successful, high-quality titles.

I need to make sure that Space Engineers gets polished, bug-fixed, and finished in the way it deserves, while my original vision for the game stays constant. Along with all my other duties, I need to get my hands dirty with play testing and designing game elements.

I need to ensure that Medieval Engineers gets the attention it needs (and deserves), and that all planned and important features get implemented - I am getting back to game design.

I also need to design a few new games…stay tuned!

I need to keep designing and programming our new unified brain architecture and School for AI, making the critical decisions and working hard in tandem with my team. I’m so proud of how much we’ve accomplished in the first two weeks of 2016 and can’t wait to see where we go together over the next year. While I can’t promise what abilities our AGI will be able to demonstrate by the end of 2016, I believe it will be as many as possible. We may also launch an AGI contest as part of our School for AI. Keep an eye out for more info on this!

This year will prove if my vision and architecture ideas for developing AGI are right or wrong :-)

Thanks for following us this last year, and stay tuned for much, much more in 2016!

The KSH roadmap for 2016 will be published this Thursday!


Marek Rosa
CEO, CTO & Founder
Keen Software House, GoodAI
:-)

---
For further updates, keep reading my blog: http://blog.marekrosa.org/ or find me on Twitter: @marek_rosa

Follow Space Engineers and Medieval Engineers on social media:
Space Engineers on Facebook: https://www.facebook.com/SpaceEngineers
Space Engineers on Twitter: https://twitter.com/SpaceEngineersG
Medieval Engineers on Facebook: https://www.facebook.com/MedievalEngineers
Medieval Engineers on Twitter: https://twitter.com/MedievalEng

Follow GoodAI on social media:
Facebook: www.facebook.com/GoodArtificialIntelligence
Twitter: @GoodAIdev
Forum: forum.goodai.com
www.GoodAI.com