Skip to main content

Posts

Showing posts from 2013

QuickDictionary

The Qt5.2.0 is adding support for android and i couldn't be more excited. After fiddling around with the basic Qt based stuff, i realized that the QtQuick is the way to go for making interfaces for the mobile devices. The tutorial video about getting started with QtQuick is a good start for getting acquainted with the QtQuick. The tutorial covers how to make scalable interfaces only the basic stuff though but it should be good enough to get you started. Here is the URL: http://qt-project.org/videos/watch/using-qt-quick-for-rapid-ui-prototyping-and-development With this as a starting point iv'e been able to create a dictionary app with just QtQuick framework. Well why a dictionary app? 1) I found a really cool minimalistic UI design 2) Had a couple of cool looking color schemes that i could pick 3) I didn't have to create an infinite scrolling list :D 4) Minimal requirements. With these i've started designing the application. Most of the tutorials claim th

Qt on Android

It's been a while since ive' looked at Qt. I used it extensively during my masters project and pretty much every project that i worked on in the college. I even made a 2D top down game using OpenGL and Qt along with a couple of my friends as a course project. I even taught a class how to get started with Qt using PyQt. The most recent experience i've had with Qt was looking at PyQt being used for creating a DB access software at University of Groningen. It was written based on Qt3.0 and upgrading to Qt4.0 was causing all sorts of problem that is when i thought Qt probably lost it's way with all the Selling / Ownership transfer / Shift of focus on Platforms etc. Now saying that i love the power of Qt for creating GUI's is an understatement. The documentation and the examples provided made it so easy to pick up the Toolkit. I was worried they might have misstepped too much and lost control of how awesome it used to be. Recently i came across some article which

ComicNext

With the advent of the ios/android/wp8 there has been a steady rise in the digital comics market. A very immersive experience with audio / animations and some times even gameplay. This takes the already fun experience of reading comic books to a whole new level. Imagine the your favorite comics coming to life at least partially, with audio and animation effects. This idea has fascinated me and i decided to spend some time trying to figure out how best to do it. Here are some of the goals that i wanted to achieve for this: 1) Ease of creating content 2) Ensure that only the data changes for putting out a new comic. 3) Be Cross Platform Enter ComicNext  A new framework that will make creating digitial interactive comics for mobile phones / tablets very easy. We were able to create a quick prototype of how a comic book would look, you can try it out yourself HERE .  This is obviously in beginning stages and will take time to be widely available but, If you are trying

Unity Plugin Android(Part2)

In my last post iv'e covered about how to write a plugin without actually over-riding the unity activities so you can peacefully co-exist with other unity plugins (for android). The reality is that you will have to deal with people using Prime31 as one of their plugins. This can be a problem if you need to get callbacks for the android system event callbacks like: void onCreate(Bundle Intent){ } void onStart(){ } void onStop(){ } and so on. You get the idea. Fortunately the prime31 guys provide us a method for registering a class to get callbacks from these methods on the activity. The details of which are provided at the following url https://gist.github.com/prime31/0908e6100d7e228f1add/raw/a5d96177c8d8fde548068d2a15de49acdb2023ec/Android+Activity+Sharing This is pretty straight forward If you know how to use Android ADT/Eclipse for creating android projects. Here is how you go about it. 1) First create an Android Project. Mark it as a library project. 2) Add

Unity Plugin (Android)

I've been working on creating a plugin for unity(Android). The latest versions of unity (4.x) provide clean way of accessing the java side of things on android. If you want access to the android activity from android,  all you have to do is call the following.. AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject activity = unityPlayer.GetStatic ("currentActivity"); This doesn't give us much of a head way... i.e, if you want to add any functionality you will have to extend the UnityPlayerActivity and add the functions you want and call them. But there is a more elegant way of doing it. You can just create a jar file from your android library and access its' functionality like so.. AndroidJavaClass   _pluginClass = new AndroidJavaClass ( "com.vkgamedev.MyTestLib.MyTestLib" ); _pluginClass.CallStatic( "setGoogleProjectId" , googleProjectId); If your  libr

GloBall

GloBall Icon I've been drafting various ideas for a while and been thinking about getting to actually making them for a while now. Ever since i've started working in the games industry i've started thinking about bigger projects which are obviously going to take longer to develop. But I decided that should not be stopping me from making something quickly like i used to and put it up just for the heck of it. Its' one of those times when im' just eager to finish something and put it up. Here is the text i put down for this game a while ago: Neon Defender 2D Shooting game where you user cubes vs spheres style gameplay to select the type of bullet being shot. The enemies will be of different behaviors like in geometry wars and those from cubes vs spheres. So I called it Neon Defender because i was sure i wanted to go the Geometry Wars art style. Any way from that point it's moved through some hoops. I added the Upgrade mechanics for "loot Drop"

Cocos2D-X for Android LiveWallpaper

Today i saw a question on the forum  at cocos2d-x.org asking about how to get the cocos2d-x application to run as a live wallpaper. Most of the basics come from the sample application provided by google, but since cocos2d-x is designed under the assumption that its' always used as an application you will have to change a few things here and there. So ive' quickly made some dirty adjustments to the code pasted on the forum to get the sample code running as a live wallpaper. Here is the screenshot of the default one running. Sample Cocos2D-x app as Live Wallpaper Im' excited to see what the cocos2d-x app devs can do once they start developing the live wallpapers. .. Here are the steps you should follow: 1) Open the .java file created in proj.android/src/your packagename/*.java 2) Modify it based on the java file embedded below. 3) Modify the AndroidManifest.xml file to make it behave like a wallpaper. Build and deploy the app just like any other cocos2d-x ap

Cocos2D-X Memory Management

The last couple of days i have been trying to squash all the memory leaks in our game, this gave me a better understanding about the memory management used by cocos2d-x. It's a little different but with a little care you can get it right. Here are a few facts you should know  Every CCObject has a reference count of 1 when it is created.  If you call autorelease() and dont' retain the CCObject you don't have to call release()  CCNode's destructor calls release() on all its' children once(because it calls retain() in addChild())  If you call retain() or new on a CCObject you have to call release()  This is all straight forward, in fact this is all mentioned in the wiki on cocos2d-x.org website. It gets' tricky when you start using CCTouchDispatcher's targeted delegate and the CCBReader. When you load a ".ccbi" file the following happens: CCBAnimationManager calls retain() on RootNode of the "ccb" RootNode of the "c

Gameplay3D on Android

I've experimented with the Gameplay3d engine by the good folks at blackberry and found it really fun to work with. There are still some kinks to be worked out about the workflow for the materials but over all the experience has been good. Today i've managed to get them some demos running on my device.. here are the screen shots.. Here are the steps to get the apps on to the device.. cd /android $ANDROID_SDK_ROOT/toos/android update project -t "android-10" -p . -s $ANDROID_NDK_ROOT/ndk-build ant debug install Space Ship Sample from Gameplay src A Sample 3D application ive' developed using Gameplay The takeaway would be that.. if you are looking for a good free 3D engine to start off something Gameplay  might be a good place to start, especially if you are familiar with OpenGL and GLSL shaders.

GamePlay Engine

I came across GamePlay engine a while ago. It claims to be easy to pickup for people who have worked on cocos2d-x or similar libraries. I doubted that claim and was too full of myself to give it a go. After all i already have a class for loading 3D models in cocos2D-x. Over the weekend i wanted to give it a go just to get a feel for how things work in GamePlay engine. Im' happy to report that It was pretty awesome and would definitely give it a go if i had to pick up a free 3D engine to work on a game. There were a few things that threw me off though, took me a while to figure out what was going on.. my first hurdle was to fix the Xcode projects.. The missing Frameworks? So the projects were all the basic stuff required for an app but the xcode projects from GamePlay were showing them as missing... so basically i just had to drag drop them from finder window to the project tree. Easy but lost a lot of time trying to figure this out, Basically lack of documentation / tr

Cut Thy Polygon

Fruit Ninja is an awesome game.. very addictive.. and fun to play.. but if you observe carefully you will see that where ever you slash the fruit.. it is always cut in half.. It is a simple trick to keep things nice and fast. But imagine if you could cut and slice a fruit every which way you wanted precisely the way you wanted.. this is an idea i had for a while.. Slicing enemies into pieces based on slashes. Slicing fruits based on the slashs Creating predefined shapes from a starting shape  and the list goes on.. and it all starts with a line intersecting a polygon and the polygon being cut into two polygons. Before we go any further here are the screens of how the result will look. After 1 cut After two cuts After 3 Cuts Now lets get to the most important part.. Cutting a polygon into two pieces. For each Edge in the polygon:       if Cut bisects Edge           Find point of intersection of Cut line and Edge of polygon.          Add V0 of