I loved how you handled this sort of thing in 'The Republia Times' - I really felt the moral dilemma there - and wonder if you are planning something similar for this...
Thank you and yes :D One of my motivations for making this game is to exploit the player's morals and give them tough choices. I think there's more potential for hard choices here than in Republia Times. Actually the examples you mention are spot on.A Few Faces
One of the nice things about doing both programming and art is that I can take a break from one and focus on the other. Perfect for when I get burnt out on something. I spent a few hours yesterday just drawing faces. Two new sheets:
Click the picture to see a time-lapse of the drawing. Not that exciting really.
You can see I'm running out of ideas for the clothes and they're getting a little crazy.Lemme Just Stamp This
So you've checked someone's documents and it's all in order. How do you approve their entry and send them through? In the real world the inspector puts a sticker on your passport and stamps it with some time information. My original plan was to put some stamps on the counter (red = deny, green = approve):
To stamp a document, drag it from the counter and over to the desk. Same drag/drop interface as the papers:
It's easy to position, but how do you actually stamp it? With drag/drop, you grab the object on mouse-down and drop it on mouse-up. If you don't drag, it's easy to detect a mouse-up with no movement and apply a click. So that'd work here too. Drag the stamp into place, drop it, then click it to apply. Unfortunately this feels lame. Applying the stamp on mouse release just doesn't have the satisfaction. What you want is a nice solid THUNK when pressing the mouse down, not when you let go.
So I switched gears and am now experimenting with a stamp "bar" that pulls out over the desk. In this case, the stamps are immovable and you have to arrange the documents beneath them before stamping. Feels much better:
Once you stamp the passport and hand all the documentation back they'll grab everything and walk out to the right.Haxe/NME
I've spent enough time with Haxe now to have both good and bad impressions. Bad
- A 'meta-language' with no home
Haxe is translated into other languages (flash, js, c++, etc) and has no compiler. It supports a lot of target languages and although it doesn't take a lowest-common-denominator approach, it does sacrifice some features. The big one for me is proper class member scoping. There's no concept of true "private" members like you'd see in C# or C++. This makes it hard to build robust inheritance classes without stepping all over your base class's members. I generally keep my class hierarchies as shallow as possible so this is less of a problem but it has come up a few times. The usual way around it is to use adapter or helper classes instead of inheritance.
- NME has some missing features
Although the NME build process is fantastic, the C++/js/flash APIs all have little differences that need to be worked around. So far the biggest missing pieces are in the BitmapData class. For now I can handle the necessary tweaks.
- Modern syntax and features
Coming from C, C++ (and even C#), Haxe is refreshingly modern. The type system is good and the reflection API is simple to use and powerful.
- First-class functions
Having first-class functions that can be passed around as variables is great and can simplify a lot of normally difficult tasks. Love it. As an example, using reflection and first-class functions I was able to create a simple state machine class that handles all the animation and state changes for game objects. Not possible in C++ without pains.
I think a good way to gauge the value of a language is to look at how much code is required to perform common tasks. The less code required, the better the language. Haxe scores well here.