Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 05 Apr 2004
Offline Last Active Sep 13 2015 10:26 AM

Topics I've Started

[Released] MarkUX : Bringing the Power of MVVM to Unity

29 June 2015 - 11:16 AM

Fantastic news! The asset has been included in the limited August Level 11 sale offer that ends 08/31/15. If you're a Unity Pro or Level 11 user you can purchase the asset at a 50% discount!
MarkUX: Bringing the Power of MVVM to Unity

Available now on the asset store!

What is MarkUX?

  • A declarative design language for creating UI elements
  • A MVVM framework
  • A editor extension

MarkUX offers a new elegant and intuitive way of designing and developing rich user-interfaces in Unity. It speeds up development, it bridges the gap between designers and programmers, it allows designs to be more easily shared in the community.


MVVM (Model View ViewModel) is an architectural pattern that has been around in the software development world since 2005, popularized by frameworks such as WPF/Silverlight and AngularJS. It hasn't really broken into the game development world which is unfortunate because it's a really beautiful and powerful pattern. Having made the transition from software development to a game development, the MVVM pattern was the first thing I felt missing. With the advent of the unity 4.6 UI system I felt the conditions were ideal for creating a new MVVM framework specially designed for game development - building upon the strengths of previous frameworks and making an effort to make it as intuitive and easy to use as possible.

Design Language

At its core MarkUX offers a new language (XML) in which you can express UI design and its relationship with application logic. Why is this a good thing? In short it allows you to create modular re-usable UI widgets (views) that may be easily combined, re-used and shared. Imagine if there was no HTML and web-pages could only be created using visual designers - no snippets, no source to inspect and re-use, no convenient way to share designs, create text-tutorials, etc - that is the case with Unity UI's without MarkUX today. In addition to a design language MarkUX makes it possible to create interactive and responsive UI's that adapt to changes in layout and data. It offers theming functionality similar to CSS and a layout system that is very easy to work with. It comes with a bunch of standard views ready to be used - and expect the catalogue to grow steadily as new contributions are added.

So If you like the new Unity UI system but want more power to create rich user-interfaces that are dynamic, can adapt to data and layout changes. If you like frameworks that are intuitive and easy to use. If you want to be able to build upon other's works and share your own. If you want a framework that bridges the gap between game design and development - that makes it easier to collaborate and work together, then MarkUX might be for you.



Design views using XML - Design, share and re-use views using simple XML. Views can be freely nested, re-used and combined.

Fast and fluid workflow - Views are automatically processed and wired to their ViewModel through naming conventions. The process is fast and views are presented in the scene as changes are saved.


Elegant and Intuitive DataBinding - Using naming conventions and smart binding logic, binding data to your views is very straight forward. No "plumbing" or configuration required.

Interactive - Effortlessly create views that respond to user interactions. Use event system events (clicks, drags, etc) or create custom actions with ease.


Animate views using XML - Quickly create animations using XML. Re-use animations on different views.

Easy Transitions- Creating animated transitions between views is easy using the ViewSwitcher view.


Flexible styling using Themes - Modify the look and feel of views using Theme files (XML). Control theming through id- and style-selectors (similar to CSS).

Catalogue of Views and Themes - Since views can easily be created and shared, expect to see a growing catalogue of views available for download. The community is encouraged to create and distribute views as they please.


Dynamic Content - Have views adjust to run-time changes of data as shown by the FlowList and List views.

Responsive Layout - Have views adjust to content and layout changes.

Intuitive and Flexible Layouting - Allows width and height of views to be specified using percentages. Anchor views easily by setting alignment.

Display sets of data - Display lists and sets of data using the FlowList and List views. Bind custom data to the lists and control the way items are presented using templates.

Similar to WPF and other MVVM frameworks - If you've worked with MVVM frameworks such as WPF/Silverlight (XAML), Caliburn, AngularJS, Prism, etc. you'll feel at home with MarkUX.

And much more. The framework is in active development and you can expect continuous updates with new features, themes, views and tutorials. Check the latest developments at www.markux.com

Get it on the asset store.

MarkUX - A sleek MVVM framework for creating rich user experiences in Unity3d

18 May 2015 - 02:42 AM

Hello I'd like to announce MarkUX: A sleek MVVM framework for creating rich user experiences in Unity.

Design, share and re-use views using XML. Bind data and actions to your model through intuitive naming conventions. Style your views with themes and animations. Minimal setup required to get started.


Here is a short gif showing the theming feature:


More instructional gifs are available at http://www.markux.com.

It's going to be published at the asset store within a couple of weeks. If you'd like to get notified when it's available visit the webpage and join the announcement list. 

I'm interested in hearing any kind of feedback. I want to make it as intuitive and useful as I can and I'll listen to the wishes of the community.

Driving the story forward in a free-roaming world

01 October 2013 - 07:18 AM

Hello, I'm thinking of ways to drive a story forward in a free-roaming world. I want the player to feel like he can freely explore the world but I also want to impose some kind of pressure/limit so the player doesn't get completely sidetracked and the pacing of the story gets killed. Another reason is to prevent the player from getting over-powered and ruining the progression-curve. 


Examples on how games drive the story forward:


The Elder Scrolls - It's entirely up to the player to progress the game by doing the "story quests". Personally I got so sidetracked by side-quests (the infamous draugr quests) that I got bored before moving on to the main story quests.


Mass Effect  - Similar to The Elder Scrolls, however each story-quests opens up the amount of side-quests available. The side-quests also tend to tie into the main story and has an impact on how the story progresses.


Persona 4 - This game has an interesting way of driving the story forward. You have a limit of the amount of things you can do each day and if you haven't done the story-missions before a certain date, you lose the game. You can plan ahead and be selective about what side-quests to do, before moving on to the story-mission. 


What kind do you prefer? Any games you think does this well? Any other ideas on how to drive the story forward in a open world-type game?


Mixing first and third person narrative

15 March 2013 - 11:00 AM

Hello, I've written a script for my game where the player's avatar is referred to in third-person throughout the story. Here is an example, the main character's name is Eli:


Eli is sweating heavily and his heart is racing.



Please stop!



Shut up!


The voice came from his side. Eli begins to tear up. He pulls his shackles and starts to pound his back against the wall of the carriage.


The dialogue and actions are presented to the player in plain text. The problem comes when the player is asked to make a choice for Eli. These choices are written in first-person perspective. For example, later in the same scene Eli is asked who he is and the player is given the choice:


1. Identify yourself

2. Conceal your identity


Now I'm not quite sure what to do about this. Mixing the narrative modes does not seem like a good thing to do. Do I need to rewrite the script into a first-person or second-person narrative?



Global Player Ranking

11 May 2012 - 11:39 PM

So I'm thinking about how to best design a global player ranking system. Lets assume you get a score 1-100 for for individual levels in you play in the game (e.g. a racing game where the score is based on the track time). How do you create a global player ranking - i.e. a ranking of the overall skill of the player? I'm not really aiming for the score to 100% accurately represent the skill of the player but rather have a ranking system that is enjoyable for the player (that may involve being accurate).

If for example a player gets the score 50 on one level and 75 on another. A few ideas to calculate the player score:

Add the scores for each individual level played. So the player score becomes 125 in this example. It encourages playing more levels but gives no incentive for the player to improve existing scores. The score does in no way reflect the skill of the player.

Take the average score. Total score / levels played = 62,5. Rewards the player for improving existing scores but gives no incentive to play new levels. It also gives poor indication of the current skill of the player as it becomes harder to improve the score the more games you play (I find lots of games makes this mistake when ranking players).

ELO-type ranking where you gain/lose points based on the difficulty of the level played and your current rank. You get a player score that very accurately shows the current skill of the player. The system punishes bad plays which makes it less enjoyable in my experience - you get defensive about your score and there is no rewards for trying/experimenting with new plays. Puts a lot of pressure on the player to perform well in every game - discourages casual play.

A few things I think are important:
  • I want the the player feel like he is progressing i.e. I want the score to go up as the player plays levels (and not ever go down).
  • There should be an incentive for the player to improve the score on existing levels - raising the score from 50 to 100 on a level should be rewarded more than playing another level and getting a 50 score.
  • The ranking system should encourage the player to get better at playing - that involves incentivising playing more and making efforts to improve techniques/strategy in order to get higher scores on individual levels.

Any ideas of how to implement such ranking system? Anyone know of any games that does something similar and does it well?