Wednesday, August 7, 2013

Moving on to active programming with larger application development

Back in business
Wow its been so long since the last time I updated the blog. Things have gotten really busy all of a sudden. Now things are moving on to a brighter side which I now have the time to move onto hardcore programming.

Server development.
Been looking into development of the client server applications as there is so much demand for it now. I am currently building a private client server application which I believe will take advantage of the cloud services. I hope to build a cloud server for myself in the near future which I could use these to power the new apps I am developing.

Karaoke Application in the making
I've been wanting to create a cloud based karaoke mobile application for some time now. What the app will do is to let people stream a listed karaoke song on a menu and play it on a subscription basis. It will have support disabling  voice tracks and works pretty much like a stand alone karaoke player but on the mobile phone/tablet configuration. One cool feature for this is that you can take your karaoke anywhere and if you have the correct cable, you can connect it to your friends' or family's mixer/karaoke unit and start singing with your favorite songs. That is one of the drawbacks about current standalone karaoke units is that you are limited to songs on a DVD which people may not have or had the same song with a different music!. I myself hated the fact that my I can't sing my favorite song because it is a variation of the songs that I normally listened to. So basically I am creating this app to solve the problem I have. I love singing btw :).

I will update this blog as often as I can and hopefully have new apps to showcase in the near future! programming for life!

Tuesday, July 24, 2012

RPG development

Hey guys,
 It's been awhile since the last time I post as I've ran  into a problem that wasn't feasible for me to continue development on the Vita(PSM development) due to the reason that the sdk is incapable of running full artificial intelligence on it. It was running at 124ms! per frame on the vita compared to running 32ms on the simulator so then I halt the project until the sdk is more optimized before I can turn back to it.

Meanwhile, I got inspiration from playing the final fantasy 3 on android and I was totally blowned the game and the quality of the game. The RPG was using touchbased commands to nagivate so clever that I thought, hm, maybe I could make myself an rpg game that I've always been wanting to :). Long time ago, I thought of making a 2D battle game but during that time, the technology wasn't abundant like now so it wasn't feasible to write one but I stil had the storyline and theme that I could use to make into an rpg. Therefore, I decided to write one. A real good looking orthogonal RPG for multiplatform. It is an ambitious project but I will put all my heart into making it no matter what.

[RPG]
After researching many of the current technology and studying previously well made RPGs such as japanese and chinese RPGs. I decided the visual style to look like RPG maker XP with tile Suikoden 2 battle system which has 3D decals like the Pokemon battle system. Whichever style fits best would be decided based on what is possible to be programmed with.

[LIBGDX]
Due to the ease and multiplatform nature of the libgdx library which is capable of running on android, desktops, applets, html5 and even IOS in the future, I decided that I write this game and the rpg engine on this Library first and Playstation Mobile(vita and sony mobile devices) later when completed.
So far I've made a running prototype using RPG maker XP graphics as placeholders and characters from  chara.



Collision detection system and a chat based system including the character menu is next on the to do list.

Wednesday, June 27, 2012

TMX loader

[TMX tile format loader]
Today I have successfully completed the TMX loader for the tiled editor format .tmx. Only 1 layer is used for the tilemap and only supports orthogonal maps as the orientation input, everything thing else is ignored including objects which I'd rather manually code in the game. Reason for using this format is that it uses gzip compression for the tile datas and the resultant file is very small and efficient to use.Other benefits is that there is more freedom and performance with using the editor itself. Thanks to gooroo and illidari I've managed to get this done. It was frustrating at first but I finally nailed. Lets celebrate!

Tuesday, June 26, 2012

Sprites

[Sprites]
Finally got the sprites for the vehicle working but stil need to work on scaling the game for complete accuracy. Trying to make sprites with a different axis is such a pain, I had to flip the matrix to make it work but worst was that the ai library had no simple function to rotate the sprites such as degrees or radians(it only has forward and side vectors to work with which was beyond my knowledge until I revise my physics XD) so i had to manually rotate the matrix based on the vehicles movement. And here is the result:


Normally when we draw sprites such as HUDs in a 3D world, it is usually on the X,Y asix and can use the typical 2D calls, but the problem here was that I wanted to use the sprites  in a 3D world for all sprite objects which uses the X,Z axis, we have to change the matrixes to fit with the world and by zeroing out the y axis on all Vectors. You might be thinking "Why would you put sprites in a 3D world?" Well, the answer is that by doing so it leaves room for me to work on the game in the future to make this game full 3D without rewriting much of my code. In fact I could just load in the models for the 3D, attach the objects to the camera and be done with it :D.

Sunday, June 24, 2012

[TileMap completed]
Finally completed the tilemap part, it has been hell trying to make it work especially dealing with the matrix. In the end, I loaded the complete 50x50grid instead of drawing part based on the screen size. Performance seems to be good so I'll leave it at that and move on to other objects like weapons, effects, collisions.

Vehicle on a tilemap

[TileMap]
Today I've managed to get the vehicle(rectangle for testing) showing on the 2D tilemap which is in the XZ axis of the 3d plane. The engine is built to accompany 3D features and therefore will be easily port to a 3D game completely(useful for making sequels to this game to take advantage of 3D graphics).

Heres a clip showing the result:



Saturday, June 23, 2012

Playstation Mobile development

[PSM]
I've started using the Playstation Mobile(formerly known as Playstation Suite) sdk since the open beta release and it is very interesting sdk to work with. At first theres been a few rough edges here and there but then again, it is in open beta so who could complain :D. Plus it's free to use during the beta phases. The only difference it will make between the release and the open beta is that sdk tools would be free to use, along with the simulator and the connection to the playstation vita will be disabled until you buy the license for $99/year.

 Having used the sdk for a few weeks, I made a game demo. I named the game "Veharlek"(this sounded like a language from another planet is what i thought it would sound cool :D ) so I'll be refering to the game demo and all future reference to it as simply Veharlek.

[VEHARLEK]
Veharlek is a racing game based on the top down view such as death racing or the first grand theft auto. The following is the features I plan to include:
  • physics
  • ai system
  • battle modes
  • multiplayer battles
  • stage story mode
Veharlek now has an ai system based on the SharpSteer which is a port of the open source ai framework OpenSteer  created by craig reynolds for the XNA framework which I ported to the PSM Framework. So far this is what I came up with:


ai in action

And here is a youtube clip
                                         

Basically what's shown here is the green triangle(seeker "vehicle") trying to find a goal which is not shown(working on that) and the red triangle(attacker "vehicle") trying to stop the seeker in its tracks.

Implementation of the sprite system is not fully compliant with the current draw engine so that's what I'm going to be working on.