Word Zen - Word Puzzle Game using libGDX

Present your own projects here, be they WIPs, betas or finished products. Get feedback from others and help each other out with some lovely testing.

Word Zen - Word Puzzle Game using libGDX

Postby Lf3THn4D » Thu Nov 25, 2010 9:38 pm

Hey guys,
We have officially released our first ever free android game utilizing libGDX as a base. Be proud. :mrgreen:
Here's a link to our website for more details and android market download.
http://wordzen.liquidrockgames.com/

Do try it out, rate us, give comments and critics and most of all, have fun! :)

Regards,
Lih-Hern aka Lf3T-Hn4D
Co-founder
Liquid Rock Games
http://www.liquidrockgames.com/
Lf3THn4D
 
Posts: 36
Joined: Sun Oct 31, 2010 8:21 pm

Re: Word Zen - Word Puzzle Game using libGDX

Postby mzechner » Thu Nov 25, 2010 11:20 pm

Wow what a great and polished game! i'll of course rate and comment. My only "criticism" lettback button quit the app on the main menu. Also, the arrows in the main menu took a while to get processed by my brain :)Otherwise it looks, sounds and most of all plays great! I especially love the music. Great job guys. Keep up the good work!

btw, care to write up a small technical post mortem? I'd like to know what worked and what didn't work for you when using libgdx.

Lookingforward to your next game. Hope you stick with libgdx :)
mzechner
Site Admin
 
Posts: 4879
Joined: Sat Jul 10, 2010 3:50 pm

Re: Word Zen - Word Puzzle Game using libGDX

Postby mzechner » Fri Nov 26, 2010 12:13 am

Oh god, you are the Aftershock guys! I looked at that more than a year ago i think. Looks awesome. Keep us informed.
mzechner
Site Admin
 
Posts: 4879
Joined: Sat Jul 10, 2010 3:50 pm

Re: Word Zen - Word Puzzle Game using libGDX

Postby Lf3THn4D » Fri Nov 26, 2010 12:45 am

Thanks for the awesome feed back. :D The back button suggestion is a good one. It will be in for the next update. :)

About technical issues, it was mostly the input trouble. In fact, we do still hit some odd cases of unresponsive input rarely. But it's more of a multitouch issue which is mostly my bad coding since I've no experience with multitouch coding. So I get a lot of state logic errors with multitask devices.

Aside from that, libGDX really helped a lot in the development of this game. To where the credit is due, it's libGDX's well designed sprite batching that provided a smooth game play with tons of sprites. Without it, this would have been impossible what with the game being done with such a short amount of time (3 weeks of long hours!)

Also, the 2D scene system is also a life saver easing my job with UI layouts and animated object transitioning. Good job there. :) The only quirk at the moment is that some of the methods and variables are declared private instead of protected which makes it very difficult to write custom specialized actors. One notable one is the Group class. I needed a simple render clipping system for the main menu to cut down draw calls. But Group class doesn't allow me to call the necessary transform calculation calls which made this impossible. So I ended up hacking into the core code to switch them to protected. Not sure if you would like this change or not. But if so, I can submit a patch.

One complain I have is the font/font cache class. There's no way to get the proper height for vertical alignment. I was trying to align the text for the buttons but could not figure out how to get the right height for any fonts. It is especially even more confusing when using multilined text. The anchor of the font position turns out to be the base line of the first line which is very weird. I guess this problem is due to the scene's nature of using a bottom left origin instead of the typical top left origin. While font is rendered from top left origin. This is perhaps the biggest major flaw in the design.

But nevertheless, all said and done, we finally got it touched up and released. :mrgreen: Btw, for some strange reason, after music is played for a few rounds, it stops and never play again. I've not figured it out yet but it shouldn't happen much unless players play for hours.

We do look forward to using libGDX for our next awesome title. It's going to be better than this one which is our test bed for android games. libGDX proved to us that a polished title is possible even with JAVA! Ha! Though it's not easy for me to get used to the concept of letting the GC handle all the memory clean ups, the shortened dev cycle is well worth the trouble. :D

P.S. Yes we're the aftershock guys. And we're still working on aftershock. This is kind of a side project to see how we can get some revenue going to sustain our painful pockets. So yes, Liquid Rock Games of the Aftershock project used libGDX for their first ever released title. :) Mark that in your libGDX history. :P Ok, I think I've said too much. Should stop here. Later.
Lf3THn4D
 
Posts: 36
Joined: Sun Oct 31, 2010 8:21 pm

Re: Word Zen - Word Puzzle Game using libGDX

Postby NateS » Fri Nov 26, 2010 7:47 am

Lf3THn4D wrote:One complain I have is the font/font cache class. There's no way to get the proper height for vertical alignment. I was trying to align the text for the buttons but could not figure out how to get the right height for any fonts. It is especially even more confusing when using multilined text. The anchor of the font position turns out to be the base line of the first line which is very weird. I guess this problem is due to the scene's nature of using a bottom left origin instead of the typical top left origin. While font is rendered from top left origin. This is perhaps the biggest major flaw in the design.

Hmm. How would you change the current API to better fit your needs?

No matter what text drawing origin is chosen: baseline, cap height, ascender height, etc, the BitmapFont class provides methods to get the baseline, etc, so you can still lay out your text with whatever origin you like. That said, the API should use what is most convenient. Stepping back for a second, what is the most common reason to care about the text drawing origin? Alignment of the text. For a single line of text, baseline is ok, since vertical alignment should be done using the baseline and the cap height. For wrapped and multi line text however, it gets ugly.

I've given this a bit more thought just now. I think it makes most sense to make text drawn relative to the cap height. Unfortunately changing this makes everyone update their code slightly. I'm ok with this. I hope others are as well. Since we are making an API breaking change, we can also improve a few other things. I've renamed and added some methods and changed some parameters to float. To both test my changes and validate the new API elegantly solves aligning text in the various drawing modes, I created this test:
http://code.google.com/p/libgdx/source/ ... tTest.java
Can you check it out and see what you think?
NateS
 
Posts: 1980
Joined: Fri Nov 12, 2010 11:08 am

Re: Word Zen - Word Puzzle Game using libGDX

Postby mzechner » Fri Nov 26, 2010 10:44 am

Wow, if you don't mind i'll put that on the blog. Thanks for the feedback. I did not give the modifiers of some of the scene classes much thought. There's really no reason why people shouldn't be able to derrive properly from group. Will make everything (most of it?) protected tomorrow. Good catch.

I'll look into the music issue. I assume you are starting a Music instance once in looped mode and leave it be? Could be a bug in the MediaPlayer. Many of the media related classes on Android are borked a little.

Fonts are Nates thing, i'm outta here :p
mzechner
Site Admin
 
Posts: 4879
Joined: Sat Jul 10, 2010 3:50 pm

Re: Word Zen - Word Puzzle Game using libGDX

Postby consiliens » Fri Nov 26, 2010 8:43 pm

Consider listing the game in GetJar to maximize distribution, a strategy that is working well for Angry Birds
consiliens
 
Posts: 177
Joined: Wed Oct 27, 2010 6:55 am

Re: Word Zen - Word Puzzle Game using libGDX

Postby Lf3THn4D » Fri Nov 26, 2010 10:42 pm

@nates: I'll have a look into your changes. Btw, what did you mean by making text drawn relative to cap height? Could you give a graphical example of it? I think that would better help me understand how it's being handled now. :P

@mzechner: Sure thing. :) The more publicity for us, the merrier. :)
Yes I just loop the music and leave it be.

@consiliens: We did. It's still pending. :( We've got it listed in SlideMe and AppBrain though. :) I've just did a check on the download/install count on the android market. We're at 677 downloads and 548 installs. That's around 80% installs. :) That's quite some number more than what I expected. Was expecting about 400-500. This is getting exciting for us. :D
Lf3THn4D
 
Posts: 36
Joined: Sun Oct 31, 2010 8:21 pm

Re: Word Zen - Word Puzzle Game using libGDX

Postby NateS » Sat Nov 27, 2010 12:24 am

Lf3THn4D wrote:@nates: I'll have a look into your changes. Btw, what did you mean by making text drawn relative to cap height? Could you give a graphical example of it? I think that would better help me understand how it's being handled now. :P

The code in the test should make it pretty clear, but here you go:

Image

By "BMFont origin is way up here", I mean the origin as given by the BMFont file, not the BitmapFont class. As mentioned, the BitmapFont class changes the origin to the cap height (the height of most capital letters).

Edit: More BitmapFont refactoring. I think it is pretty good now. Now is the time to provide API feedback! :) Maybe the best way would be to update your game to the latest libgdx. By fixing up your code to compile again and aligning your text, you should have a good idea of how much better it is.
NateS
 
Posts: 1980
Joined: Fri Nov 12, 2010 11:08 am

Re: Word Zen - Word Puzzle Game using libGDX

Postby Lf3THn4D » Sat Nov 27, 2010 2:48 pm

@Nates: Great! That's what I need. :D Looks much better. :) I'll make sure the next update for the game will use this. :mrgreen:

@mzechner: I've read your blog post about word zen. Thanks a lot for the compliments. It really meant a lot to us! :) One thing to note, we actually did not integrate the box2d part as we found no real necessity for word zen. Just to clear things out, that's the only part of libGDX that is unused. However I think I probably included the libs in the apk files anyways since I didn't bothered to trim the jar files.

Still, don't worry about that. We do have some future titles that might be using the box2d wrapper. :D

As for writing up a post mortem, we can do that once we're more settled down with word zen. There's still much to polish and update! :)
Lf3THn4D
 
Posts: 36
Joined: Sun Oct 31, 2010 8:21 pm

Next

Return to Showcase

Who is online

Users browsing this forum: No registered users and 1 guest