Skip to main content

Vaadin and ramblings

Well, it's time for some more random thoughts about my hobby development stuff. It's been awhile since I've really had any major projects -- there was nothing that I was extremely excited about, and I was having still a lot of fun playing Starcraft 2 in the evenings. But now the momentum of groups of us playing together has died down (it took a year!), so I've been thinking it's time to start on another project.

Now the important question is "is there any larger-scale project that I will actually take the time to finish up?" I love starting hobby projects. But part of being a hobby project is that I have to enjoy it, or I'll stop. I've got quite a few hobby development projects that I stopped, mainly because they stopped being fun. (and one project that I somehow lost 2 weeks of work on, (did I really go 2 weeks without checking into source control? I can't imagine I did...) which really killed my desire to work on it).

So I've messed around with a number of smaller things recently -- I got an android tablet and was playing with android development. That was fun, but nothing really sucked me in for a longer term project. I toyed with the idea of making a clone of Progress Quest for Android, but qiuckly realized that most of the time spent wouldn't be interesting android-specific stuff, but instead general tedious stuff. I'd still like to eventually make my unofficial Blaster Master prequel, but that's going to have to wait until I find an artist.

So, for now, I've started looking at working on some open source stuff to scratch a few particular itches. I won't go into detail, mainly because I'm tired of talking about projects that I likely will get bored and not finish, but I've realized that to do this current idea right, it needs to be a web app.

And I hate web programming. The web is just an awful platform, from a development perspective. You get a mish-mash of different languages and technologies, a thousand and one frameworks that all try to solve the same problems in mostly the same (unhelpful) ways. No matter what you do, you're almost always stuck messing with HTML (ugly), CSS (uglier), javascript (ranging from hideous to OK, depending on what js library you are using), some other language on the server, trying to manage ajax calls, trying to figure out reasonable designs for UI widgets that HTML doesn't really support, etc, etc, etc. No matter how far we've progressed, we're still trying to make these technologies do what they weren't designed to do. And it's still painful. I could continue ranting (eventually I'll write up my thoughts in another post about why I think the standard MVC pattern that 95% of the web frameworks use isn't really a good solution, but knocking the designs of people smarter than me will have to wait for a different day).

So I've been hunting around for some sort of library or framework to at least make a web app project fun to work on. And I finally found a framework that, while it still has a few rough spots (it's the web, how could it not?), does what I want. It's called Vaadin. And it's pretty cool. The idea is that you don't worry about client-side/server-side. The framework does that -- you just write your code, almost as if it was a desktop application, with a gui toolkit that is similar in general idea to other gui toolkits like Swing or SWT. And thanks to their cool design and a lot of GWT magic under the covers, the framework figures out all the HTML/javascript stuff and makes it just work. So you can spend your time writing the interesting stuff, and not spend the majority of your time trying to deal with javascript and html oddities.

I know there are a few other similar frameworks, like Eclipse's Rich Ajax Platform. I picked Vaadin for two reasons: first, the RAP ui was pretty ugly (visually) last time I looked at it a couple years ago -- everything looked like a desktop app, which is weird and uncomfortable when it's in the browser. (To be fair, I checked just now, and it's improved a lot) Second, and more importantly, Vaadin has GREAT documentation. While most frameworks have a 3 page tutorial then point you at the auto-generated javadoc/phpdoc/etc, Vaadin gives you a few-hundred page book with very detailed information about how everything works.

......

So I started typing this post a couple months ago, saved it, and then never published it. I pulled it back out today because after a couple months of fiddling around with Vaadin, I still completely agree with everything I wrote, and so I'm going to push the publish post button now.

Since writing this, I've made a little bit of progress on my "scratch-an-itch" webapp (not as much as I'd like) and also ended up using Vaadin for a work project where we needed a quick-and-easy but ui-rich tool. It was incredibly easy.

Comments

Popular posts from this blog

Retrospex 32 Review

RetrospexInternational recently sent me a couple units of their new handheld device, the Retrospex 32, a new dedicated GameboyAdvance emulator handheld.  To make the unit playable out of the box, they pre-loaded a handful of homebrew games, including Anguna, which is why they were kind enough to send me 2 of the units to play with.  I was pretty excited to get my hands on the device and try it (I loved my old GBA micro with a good flash cart!), and see Anguna running on it. So here's my thoughts after playing with it.



Their website lists the Retrospex 32 for £59.99, which is around $100 USD. It seems like it's marketed toward people into retro-gaming (which makes sense for a dedicated GBA emulator device). At that price, with that target market, and such a limited set of functionality (why not make it a multi-machine emulator, and emulate all the old consoles?), it would hopefully do a really good job of it.

The short version of my review: it doesn't. It has one job (emula…

Making the game fun

The real trick for Spacey McRacey (as I'm calling it now) is going to be making it fun.  And that's what I'm rather unsure about at this point.

I have a game design that basically works. The technical issues are mostly sorted out, I just need to get a few more implemented before I can seriously play test it.

But fun? It's hard to know if it's actually going to be any fun to play.  With a 4-player party-style game, it's seems like it might be hard to hit that fine line where everyone is close and competing, where everything feels exciting and tense, as opposed to tedious and boring.  And despite envisioning my game as fun, it might just be boring to play.

Some of that comes down to tweaking it. Tweaking the speeds, difficulties, etc, will make a difference. (If it's too easy to shoot people from behind, then it will be nearly impossible to hold a lead for very long, which could ruin it and make it no fun. If it's too hard to kill the guy in front, it wil…

Killer Queen

So at PRGE, I played an arcade game that just left me amazed.  Killer Queen.

It's a 10-player game. You have 2 cabinets linked together, and 5 players huddled on each one. Each one is a team of 5 people, working together to play a simple one-screen 2d platformer.  But what made it work was the high quality game design.

First, the game is relatively simple, yet there is a lot going on at once.  One player plays the queen, the most important and powerful character on the team. The others start as workers, but can become warriors who can fly around and attack in a very joust-like flappy contest of height.  The real trick is that there are three completely different ways to win: either collect a bunch of berries and bring them back to your base, or ride a REALLY SLOW snail across the screen (while other people try to kill you, and you hope your team protects you), or kill the enemy queen 3 times.  There's some other things going on as well (using berries to upgrade, capturing upgr…