BlockLeftTop, PRELOAD BlockLeftBottom, PRELOAD BlockLeftStretch, PRELOAD BlockTop, PRELOAD BlockBottom, PRELOAD BlockStretch, PRELOAD BlockRightTop, PRELOAD BlockRightBottom, PRELOAD BlockRightStretch, PRELOAD
Latest Game

RUN FOREST RUN: OUT NOW!

by Leif Griga 20. May 2010 11:21

Easter Eggs Out Now!

by Leif Griga 24. March 2010 13:36

Passing touch events from UIScrollView to the parent UIViewController

by Benjamin Nitschke 18. March 2010 15:07
This post is about Objective-C iPhone stuff!

Just because this took me some time to figure out (and might be useful in the future or for other people): In the iPhone SDK a UIScrollView class will eat up all touch events (touchesBegan, touchesEnded, touchesMove, etc.) and not pass them along to your view controller where all your view logic might be (like in my case). If you know this, you can just create a new class for each ScrollView and then have some of your logic there, but in my case all I want is to pass these events along to the UIViewController (like all the other controls behave like). For this reason I just created a simple class called PassTouchesScrollView, which looks like this:
//  PassTouchesScrollView.m
//  Simple helper class for UIScrollViews that need to pass touchesBegan to the
//  UIViewController above it (see all the Controller classes here).
#import "PassTouchesScrollView.h"

@implementation PassTouchesScrollView

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
	UIView *result = nil;
	for (UIView *child in self.subviews)
		if ([child pointInside:point withEvent:event])
			if ((result = [child hitTest:point withEvent:event]) != nil)
				break;

	return result;
}

- (void)dealloc
{
    [super dealloc];
}

@end

Note: This is only useful if you really do not need any touch events in the UIScrollView because even the scrolling drag touch events will be ignored and send to the UIViewController. If you want to be more selective, e.g. just pass the touchesEnded event on to the parents via:
-(void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event
{
	// Pass to parent
	[super touchesEnded:touches withEvent:event];
	[self.nextResponder touchesEnded:touches withEvent:event];
}

References: Found helpful tips on StackOverflow and other sites (including this apple support forum).

In case you update to Mac OS X Snow Leopard

by Benjamin Nitschke 17. March 2010 17:03
Yes, first of all ask yourself, wtf are you doing on a mac anyway (well, in my case Objective-C, just implemented this on the iPhone (still work in progress btw), omg).

Well, for testing the new iPad stuff I had to install OS X 10.6.2 (Snow Leopard) on that old crappy Mac Mini I use for developing (via VNC of course) since the newest version of XCode (Visual Studio for poor mac guys) 3.2.2 (iPad beta 4) only works on the newest OS X 10.6.2.

Anyway, after updating for over an hour, everything looked the same, but not much worked anymore. My keychain was not working anymore because all my certificates were gone, dunno why, but I needed to renew them anyway. Then in the XCode Organizer I could not connect or see any iPhone or iPod anymore, no matter how many times I reconnected the devices. On other computers everything was still working fine, the iPods, iPhones and cables were all working, the Organizer was not working anymore.

Only after I installed the new XCode version (iPhone SDK 3.2.2 beta 4), everything was working fine again. Maybe this helps someone sometime in the future :)

How to use your Android Phone as an Internet Router

by Benjamin Nitschke 14. January 2010 07:50

There is a nice little article at livehacker.com how to "Tether Your Android Phone", which means you can turn it into a Wi-Fi hotspot. The catch is that you either have to hack around with root access or you have to pay $30 for an easy to use app. We have an Android Phone at the office (since our engine is currently ported to support that device too), but we just have a pre-paid sim card in there with currently no money on it (so using the internet works the other way around).

 

In related news:

 

I also just saw that Microsoft is bringing Kudu (a kids developer game tool) to the PC (was previously Xbox 360 only). I am not really sure about the success of that thing, but it seems to catch on and is helpful for raising millions of game programmers. What the hell is microsoft planing? do they want to destroy all our jobs? Just kidding ...

Our newest iPhone Game: Lost Treasure

by Karsten Wysk 5. January 2010 20:44

Solve the puzzles to find the lost treasures!

Lost Treasure is a simple but mind-boggling and addictive puzzle game. You have to guide the hunter to the treasures by placing  arrows on the map. If you think you have placed the correct arrows just press go and see if you were right. But beware: each arrow can only be used once, do not fall down the cliffs. Will you be able to find the lost treasures? 

 
                  
 
 
Find the following 50 treasures: the first 5 treasures are free - if you like what you see you can easily buy the remaining 45 treasures via In App Purchase. 
 
  • Lost Coins (5 treasures, free) 
  • Lost Grales (5 treasures) 
  • Lost Coinpots (5 treasures)
  • Lost Perls (5 treasures) 
  • Lost Diamonds (5 treasures) 
  • Lost Gold Bars (5 treasures)
  • Lost Pyramids (5 treasures)
  • Lost Crowns (5 treasures)
  • Lost Rings (5 treasures)
  • Lost Teasurechests (5 treasures)
 
Explore several exciting settings 
 
  • uninhabited islands (free)
  • freezing snowy landscapes 
  • rocky mountains 
  • dense forests 
  • active vulcanos 
 
Compete with your friends and the whole world
 
  • Connect with your facebook Account to compete against your friends
  • Share achievements on facebook & twitter 
  • Become the worlds best treasure hunter!
 

Go find some treasures :)

Designing Touch Interfaces

by Kirsten Grobe 12. December 2009 10:56
In the few decades of its existence, "Interaction Design" developed some rules and guidelines to achieve successfully results. Terms like Usability and Ergonomics are strongly associated, but beneath all logical reasoning emotionality may not be missed out to avoid users´s frustration. Literature about this phenomenon is available.

 

However, a fractional amount of this explicit dealing with touch screen based devices. Since mainstream exposure occured with Apple´s multi-touch technology, a rising number of developers are confronted with this subject. What are the rules for design effective touch interfaces?

 

This is presently being investigated. Following link relates to Kevin Arthur´s blog whichs central theme is the research on touch interface usability:

http://www.touchusability.com/

 

Given below a link directs to a theme-fitting article by Suzanne Ginsburg named "Iphone App Usability Heuristics":

http://www.iphoneuxreviews.com/?p=114

 

Punchcut, an interface design company located in San Francisco, released "5 Considerations when designing touch interfaces".

http://www.punchcut.com/index.php

Capture the iPhone screen as a video

by Nikolaus 4. December 2009 14:14
As the PilotTest video now is done, d like to tell you what I did, to capture the screen of the iPhone. (Without using an extern camera, of course)
In general: when I say "iPhone" in this post, I mean "iPhone or iPod touch, both at firmware 3.0 or higher". (Sorry but I'm lazy and this will be a lot of text anyway)
Because it's needed for this method, at the end of this post I will give some information for those, who are not familiar with the jailbreak and installing apps.

Let's start with the equipment you will need:
  • A jailbroken iPhone
  • The Apple Composite AV-Cable
  • A Video-Grabbing-Card
  • An Application called ScreenSplitr
  • Video-Grabbing software
Unfortunately it seems you need a jailbroken iPhone, as far as the App we will use is not published in the App-Store. Hence I have the source code of this Application (it's open source), maybe one of the developers can build a version from it, we can use without a jailbreak.
I know, buying an original Apple AV cable is annoying, but with the iPhone OS 3.0 Apple has blocked most third party cables on the devices, it has to be the original.
The device for grabbing the signal to your computer can be whatever you like, while it has a Composite-Plug and if you want to have some sound, additionally two cinch-audio-plugs.
I have used this one for example...

Now for the Application: ScreenSplitr is an Open Source project, which uses the screenshot ability, that came with iPhone OS 3.0, to give a video output to the AV-Cable (yepp, audio too). While the actual release uses a very low frame-rate, I have altered the software to give a better framerate. (I will attach 2 versions, one for NTSC output and one for PAL output) Decide for a signal-encoding standard and install the corresponding application on your iPhone. Also make sure your iPhone's settings (Settings->Video->TV-Signal) match this.

Now connect the iPhone to the AV-cable, the AV-Cable to your Grabber and the Grabber to your computer (the order should not matter). It's time to open your Video-Grabbing software. (I can recommend Virtual VCR to windows users) Most programs offer a preview, so you can see if ScreenSplitr is started properly. And again: make sure the video-grabber is set to the same video-encoding settings.
Next you can start ScreenSplitr. ScreenSplitr checks the orientation of your iPhone when it's started. If you want to capture a game, that uses the landscape orientation, turn your iPhone before you start ScreenSplitr.
After starting ScreenSplitr, will close immediately, but on the thumbnail on your home-screen, it now shows a small "on" sign on its thumbnail. (ScreenSplittr now runs in background, "open" it again to stop it)
Now everything your iPhone's display shows is copied to the AV-output. You can start recording in your grabbing-software now.

When you’re done with your recording, you should first stop your grabbing-software and then close ScreenSplitr, since for the grabber stopping ScreenSplitr feels like pulling the cable, and some grabbers react badly to this.

Small summary:
So far I did not talk about the outcome of using a composite cable. In general using a composite connection is not the very best idea, since all color-information of our picture (R,G,B) is send in only one signal. This is of course reducing the pictures quality like nothing else. But why do we use this? Don't we have an alternate? There is an alternate, but as any good alternate it's more expencive. Instead of using the Apple-Composite-AV-Cable you can use the Apple-Component-AV-Cable, which provides a loseless connection. The problem is, tha capture devices that provide a component input are a lot more expensive than composite devices. (A quick look at google-shopping results ~25 € for a composite and ~ 160 € for a component capturer)

More information...
The Jailbreak
To jailbreak an iPhone, for me the easiest way is the blackra1n jailbreak, found here.
Once you have jailbroken the iPhone, you have a blackrain App on your iPhone’s screen, with that you can install one of the “underground AppStores” Cydia or Rock. Both are equal to the AppStore-App, but they use another repository instead, which is not under Apples control.

Get ready to install own apps
To install selfmade applications, you will first have to install an OpenSSH server via Cydia or Rock. After installing this you can access your iPhone via SSH. Just like everybody else, including some viruses looking for jailbroken iPhones still using the initial password.
So let’s change this: (Windows-users have to download a client like Putty, everybody else opens a terminal.) Your iPhone’s IP can be seen in “Settings->WiFi->(your networks name)” on the iPhone. Connect as root to your iPhone, e.g. “ssh root@192.168.1.1”. The initial root-password for the iPhones with firmware 3.0 is “alpine”. After this change the password with the command “passwd”, enter the new password in the next line and press return.

Install ScreenSplitr
The files are copied to the iPhone by using SCP(Windows: e.g. FileZilla using Port 22). Copy the .app to the “/Application” folder on the iPhone, e.g. “scp –r ./ScreenSplitr.app root@192.168.1.1:/Applications/ScreenSplitr.app”.
Make sure all files in the folder "ScreenSplitr[_25].app" have the permission to be executed. (to make sure, just execute "chmod 755 *" in the folder.
After this you need to restart your iPhone, so the app will be listed on the home-screen.
Attached to this post is file called “restart”, copy this to “/usr/bin/” on the iPhone. Now you can execute “ssh root@192.168.1.1 'restart'” to restart the iPhone.

ScreenSplitr_NTSC.zip - 30 Hz version (465.95 kb)

ScreenSplitr_PAL.zip - 25 Hz version(466.44 kb)

restart (8.88 kb)

Using NDepend

by Benjamin Nitschke 2. December 2009 15:16

A fellow MVP Patrick Smacchia is the developer of the .NET tool NDepend, which allows to analyze any .NET code base and helps dealing with code complexity. Since I have been using the tool on and off for a while now and recently very much for the development of our new Engine (a multiplatform engine in .NET), I was asked to write a little review about it. Why not, it is a great tool :) NDepend is probably most recognized for generating interesting looking Bubble Graph. For example our current early testing engine produces the following graph. This tells us where we need to refactor the most, simplify stuff, add more features, etc. Please note that we are currently heavily editing the engine every day and this graph changes almost completely every week. This Bubble Graph shows which methods in all of our 32 projects are currently public (blue). As you can see maybe the Helpers assembly on the left is mostly gray because we already made lots of stuff private/protected. This is just one example, there are many many metrics that can be displayed.




After extracting NDepend (there is no installer) you have a bunch of files in some directory. The most useful looking one is VisualNDepend.exe, which starts the GUI of NDepend. As you can see you can enable integration with Visual Studio 2005 and 2008 (no 2010 yet, but does not really matter, you can still start NDepend by yourself) and with the great Reflector tool. The integration via the addins just provides an easier way to load and inspect assemblies, you can do the same with Visual NDepend on your own.

 

The second thing I noticed was the "Getting Started" panel, which provides a great deal of help and especially tutorials on how to do things. This is kinda important for NDepend because it is not clear what you actually do with this tool, even after using it for a while. The bad thing about all the tutorials (all of them can be found online: http://www.ndepend.com/Features.aspx) is that they have no sound or voice, just boring text boxes popping up. But if you search for a feature or want to know how to do things, you will most likely find some useful information after a very short while. Also good is that all the information can be found at a central location and everything is linked nicely together. After using the tool a few times it is also not that hard to write own commands with the CQL (Code Query Language) inside NDepend, which is pretty much self explanatory and can be written very easily with Intellisense, for example:

SELECT METHODS  WHERE NbLinesOfCode >  50  AND IsPublic 

This selects all public methods with more than 50 lines of code in the Bubble Graph. Since only a handful methods will popup (in blue), it is easy to now go and refactor those methods if we really want to reduce the complexity of methods that have too many lines of code. You can obviously show many other things with NDepend, but I usually just go to the Features page or play around with the dropdownbox values until I find something that looks interesting for my assemblies (lines of code, il instructions, complexity, accessors, number of callers, etc.). Then on our "Refactoring Friday" we can use this data to make more clever decissions and refactor methods that really need refactoring and are actually used instead of refactoring anything that is not called much anyway and we should not care much about yet anyway.

VisualNDepend also shows some other interesting metrics. The Dependency Graph shows which assembly is required by which assembly and what assemblies they use in turn (until reaching mscorlib on the right usually). The cool thing is when investigating some assembly, e.g. in the Dependency Matrix, it will also be highlighted in the other views (e.g. Dependency Graph or the Bubble Graph in Metrics). The following image shows which assemblies are using Delta.Helpers and which assemblies it requires itself. Please note that most assembly loading happens dynamically in our engine, which NDepend does not show, so this is only partially useful for us. But for some rules, like every assembly should reference our base assembly Delta, we can easily check if any assembly does not follow this rule by hovering the mouse over Delta, which will highlight all assemblies that use it, the rest remains gray.

 

One final image I want to share is the Dependency Matrix, which shows which assembly is used by which other assembly. Since most assembly and type usage happens dynamically at load time, most of this matrix should be empty. As you can see some assemblies still have quite a lot of references. For some it makes sense because it it can be easier to use Utilities statically instead of defining an interface for every freaking method. This is why we have a few exceptions for static modules, which have almost no other assembly requirements, but are used by many assemblies. It is still easy to replace such assemblies, but they cannot be replaced at runtime like our dynamic modules. I will blog more about this in the future. For now NDepend helps us to see that some assemblies still have too many static references and others are ok. Next Friday we will focus and removing some more references in those assemblies, which still have too many dependencies we do not want. Until then the Dependency Matrix will probably look pretty much like this (more modules are coming and going every day however):

 

 

 

High-Tech Gründerfonds and MAZ level one invest in MobileBits GmbH

by Benjamin Nitschke 1. December 2009 11:57

MobileBits GmbH is the parent company of exDream GmbH. News from: http://www.high-tech-gruenderfonds.de/htgf/index.php?id=212&module=presse-03-content&pid=0&mid=58

 

MobileBits GmbH is a German publisher and developer of games for all platforms with an AppStore. Following the iPhones example, these kinds of AppStores also emerge on other major platforms such as Google Android, Windows Mobile, Nokia Ovi or even Xbox360 Arcade. That is why MobileBits develops a multiplatform-engine called „Delta Engine“, which allows developing games for all AppStore platforms at once completely under Windows and by using the popular Microsoft .NET framework. This way game developers do not need to learn new programming languages, do not need to reprogram the games for each platform and therefore can achieve cost-savings of 50%-70% for each additional platform.

 

„The Delta Engine is already being used to develop our own games and will also be licensed to external developers as soon as it is ready to be released“, says Karsten Wysk, CEO of MobileBits GmbH. „We are really looking forward to making it possible for millions of Windows/.NET developers to release games for the AppStore platforms without costly and complex trainings“.

Dr. Heiko Milde, CEO of MAZ level one GmbH: „In addition to the highly attractive business model, we are particularly impressed by the management team of MobileBits GmbH. All founders have more than 10 years of experience in the games industry, they developed several award-winning games for PC/Xbox360/PS3 with their development company exDream and even won the German Development Award. It is extremely beneficial that MobileBits can take advantage of these experiences and of exDream itself as its 100%-development daughter.“ 

„Games is the most successful category within the already highly successful AppStores“, says Dr. Björn Momsen, investment manager of High-Tech Gründerfonds. „We are seeing a strong demand for both the games and the technology of MobileBits due to its high quality and the described cost advantages.“

MobileBits’ first game „iSKAT“ is the first multiplayer version of the highly popular German card game SKAT for the iPhone – several other titles targeting the international markets are currently being developed.
 

Contact:
Karsten Wysk (CEO)
MobileBits GmbH
Lerchenstrasse 28
22767 Hamburg
Germany
Tel/Fax:
Mobil:
karsten.wysk@mobilebits.de
www.mobilebits.de

About High-Tech Gründerfonds:
High-Tech Gründerfonds invests venture capital in young, high-opportunity technological companies implementing promising research results in an entrepreneurial manner. The start-up companies are planned to lead their R&D projects to the production of a prototype or a “proof of concepts” or market launch by means of the seed financing of up to 500k EUR. The High-Tech Gründerfonds has a fund volume of around 272m EUR. Investors of the public-private partnership are the Federal Ministry for Economics and Technology, the KfW bank group as well as the six industrial groups BASF, Deutsche Telekom, Siemens, Robert Bosch, Daimler and Carl Zeiss.

Contact:
Dr. Björn Momsen
Investmentmanager
High-Tech Gründerfonds Management GmbH
Ludwig-Erhard-Allee 2
53175 Bonn, Germany
Tel:
Fax: +49 228 - 965685-50
info@high-tech-gruenderfonds.de
www.high-tech-gruenderfonds.de

About MAZ level one:
MAZ level one is a specialized venture capitalist for very young, fast growing technology companies in the field of hardware, software, micro systems technology, nanotechnology, photonics, life science and biotechnology. MAZ offers seed capital and a wide range of supporting services to companies in the north of Germany.

Contact:
Dr. Heiko Milde
MAZ level one GmbH
Habichtstraße 41
22305 Hamburg
Germany
Tel.:
Fax: +49 40 6579805-93
info@mazlevelone.com
www.mazlevelone.com

Disclaimer: The opinions expressed in this blog are own personal opinions and do not represent the companies view.
© 2000-2010 exDream GmbH & MobileBits GmbH. All rights reserved. Legal/Impressum

Recent Games

Fireburst

ArenaWars Reloaded

Jobs @ exDream

Current Poll

Do you know what the Delta Engine is?



Show Results Poll Archive

Calendar

<<  September 2010  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Blogs

Download OPML file OPML