3D Breakout

Well, after a few days of stressing out over webstart issues I’ve finally got it all working… I think. Visit my gloriously awesome website to play the game

http://gufbal.com/dan/

Or if you can’t stand all the clutter on that site you could skip all three words and go to

http://gufbal.com/dan/startup.jnlp

At some point I might include a few instructions on the website but I’ve been busy with other things (strangling the life out of webstart).

I have no way to test the linux, solaris and mac jars locally so someone let me know if things work. There is a good chance that the fullscreen stuff might cause an issue on linux or that all kinds of nightmares will startup.

Let me know what you guys think (this is my first ogl game, first 3d game, it was intended as a learning experience but it took a lot longer than I expected, which I should just learn to expect, because that’s how it always works).

The jar files are being altered fairly often so if you see something weird give it a few minutes and load the jnlp file again and it might be changed.

I love it.

You haven’t packaged JOGL properly:

On the Mac I get:

[quote]An error occurred while launching/running the application.

Title: 3D Breakout

Vendor: Dan Kavanaugh

Category: Unexpected Error

no jogl in java.library.path
[/quote]
It did not download the jar with the Mac native lib.

swpalmer: Can you try again now, in my jnlp file I had MacOS instead of Mac OS and I’m hoping that’s the problem.

Yep that was it - works perfectly now.

Good to hear it, now I just need one of the linux users to come crawlin by and let me know if that works too (haven’t noticed any sparc users in the forums though there has to be one).

I get this dialog :-

In the Details/General tab :-

WinXP, JDK1.5beta2

Abuse: This is the kind of error I’m coming to expect from webstart. Can I get you to try reloading it (possibly after a reboot as sometimes webstart can leave a thread running and doing so causes the jar file to be locked and not get overwritten)? I’ve seen a lot of griping about webstart with 1.5 (a bit more in regards to beta 2 I think) so there might be issues there, I was originally doing mostly 1.5 beta 1 but after strugling with webstart so much I went off and uninstalled all the jdk’s on my system, and went with the latest 1.4.2 version (which doesn’t get along with my video card).

I’m kinda shocked, I thought there’d be more response to this than there has been. I at least expect more people to say “It doesn’t work” (so far I have a pretty bad track record among the computers it has been tested on).

I’m noticing some weird stuff with java 1.5 beta 2, like some of the sounds don’t play, has sun removed or broken some of the sound formats (not just wav being broken but some different sampling speeds/bit stuff, not familiar with the proper terminology here)?

This is what the game is supposed to look like for those who had problems running it.

http://www.gufbal.com/dan/images/screenshot1.jpg

Still the same problem =(

Looks really impressive, especially for breakout. I still think the game needs little more work though, since 3d breakout isn’t exactly cake to pull off…

  1. Towards the end of the levels, it was really tedious to get the last bricks
  2. The game speed in general seemed a little slow
  3. Too many powerups, or at least I had a hard time distinguishing between the them. Especially the difference between the “good” power ups and the “bad” powerups. There colors need to be more disinct perhaps (like all good ones are blue, all bad ones are red)
  4. Hard to aim/move the ball where I wanted it to go

Technical issues included

  1. THe game opened in the top left corner of my screen and I had no way of moving it/resisizing it
  2. Full screen failed to work properly for me
    Windows 2000, Java 1.5b, Radeon 8500
  3. The menu system was weird, didn’t seem to function how I would except.

Hope this helps out, although once again it was a really nice looking game.

I had a response typed out that answered most of the game issues… and I apparently closed the wrong browser window cause it’s not there anymore…

The in game help screen shows a list of the powerups good and bad, it doesn’t tell you what they do though.

If the game seemed slow, you were probably playing on easy (the default). Easy should actually be labelled ridiculously easy, so easy your mother could play it, with no hands, trying normal (what the game was based on for speed) would probably be better, playing hard, is just a good way to see the game over sequence.

The paddle is supposed to be convex, so if something hit in the center it would not affect the angle, it would simple reflect off of the paddle, if the left edge was hit, the ball movement would be adjusted left (which could slow down the right movement or even cause the ball to change directions to left). This is probably one of the more commonly pointed out gameplay things (by common I mean someone else mentioned it). In classic breakout style games if the ball hits the left edge of the paddle the ball flys off left, instead of just slowing down it’s right movement, I always felt that behavior was dumb, but I think it’s what people expect and easier to predict.

If you don’t have the gravity powerup or the laser powerup, and you don’t hit any bricks for 10 seconds, a brick will be removed, the theory is if you have laser you can kill any brick and if you have gravity you should be able to control the ball fairly well (and I didn’t think it was reasonable to allow someone to just hold the ball to win a level).

The technical issues…
I tried changing it so that a normal frame was shown in windowed mode and undecorated for fullscreen, however that didn’t go to well (actually it throws an exception, can’t change the decoratedness of a window once it’s visible, maybe I can hide it and change it, I’m not sure but I’ll test it out).

Fullscreen… I’ve had lots of problems with this, and I don’t think it’s so much a problem with fullscreen mode, as it is with changing the display mode. Can you describe what happened when you changed to fullscreen? Did an exception get thrown (in the console), or did you get a blank white screen (my sister has a problem with this)? Maybe some other issue?

The menu’s… which part of them is weird… I did add a resume play menu at the top since more than one person has clicked the exit button expecting it to take them out of the menu (which it did, but it also exits the game). When doing a new game, it’s pretty difficult to use the mouse to pick levels, using the keyboard arrows works better. This is more a case of lazy programming, I have ideas on how to change it to be better but I’m not feeling quite brave enough to make it happen just yet.

Edit: Abuse: Can you download http://www.gufbal.com/dan/breakout.jar ? I’m assuming this is just some weird webstart issue where it refuses to overwrite a badly downloaded file (maybe clear your webstart cache?)

Abuse: This seems to be a 1.5 bug, I guess they don’t call it beta for nothing, there seem to be a lot of issues with 1.5 webstart choking on downloading jnlp files and jar files, I had this same issue happen to me on my game and here’s what I did to fix it…

Go to control panel, run the Java program there.
Then go into the network settings button (in the middle of the first page that comes up), change the setting to use direct connection (or if you use a proxy enter that information here). The bad thing is I made two changes at the same time here and I don’t know if it’s the above part that did it or the below part, but the second thing I did was on the main screen push the delete files option, try using that and allow it to delete everything. It might be this second part that did the trick but it’s hard to say. Before this I tried to remove the application from webstarts installed files but it didn’t change anything.

Let me know if that works.

[quote]I’m kinda shocked, I thought there’d be more response to this than there has been. I at least expect more people to say “It doesn’t work” (so far I have a pretty bad track record among the computers it has been tested on).
[/quote]
Hehe, get used to that. I expected some response when I once announced FlyingGuns. One of the very few working, non-trivial Java3D games.
But that also has been very disappointing. Feedback was even less for FlyingGuns typically just works. No complains.

But now look to the responses to survivor, which currently isn’t a very mature game. Hundreds! Don’t ask me why …

The screenshots of flying guns look great, the biggest downside to it I think is java3d itself… when I first started trying to get into 3d I was working with java3d and I ended up switching to jogl for speed (and as it turned out opengl was all around way easier to learn)… and now another drawback shows up, I don’t have java3d installed anymore so I couldn’t play your game without downloading it, you’d pretty much have to bundle it with your game somehow (that can get rough quick).

I believe part of the reason survivor gets the attention it does, is it is in early developement, and a lot of the early posts were suggestions for improvements, after that a small community was sort of built around it… and then there is the fact kev glass and blah3 are well known within these forums (popular guys get all the groupies :stuck_out_tongue: ), my own game wouldn’t have made it into a webstart packaged form without kevglass’s twiki webstart tutorial (which whoever is in charge of updating the twiki needs to get a move on!!!). But in the end it’s probably the name of the game, survivor, everyone probably thought it was a web feed directly to the current survivor reality show!!!

Course, seeing some of the survivor game just reminds me how much I need to learn (mostly about opengl), my future plans for games are a bit more ambitious than this one, which was intended as a way to learn OpenGL and get used to it enough that I structure my future games reasonably well (I am hoping to build more of a game engine that I can use as the foundation of my future games and expand on that for each new game as I learn more nifty tricks with opengl).

Interesting :slight_smile:

Actually Survior, is built ontop of Xith (as you know?) which is of course a clone in many ways of the Java3D scenegraph. Performance in Java3D was poor for a set of reasons (not least lack of use of new OpenGL extensions and an insistance on being rendering engine independant).

However, for any non-trivial scene, i.e. a bunch of stuff moving round in a 3D world you’re going to have to implement some form of scenegraph to get the culling effecient, at that point (as with many things in Java) why write it yourself when there are at least a few engines out there that will do it for you.

That said, Java3D is pretty annoying to get installed and to distribute. Its also clunky now, which more than anything is what impresses me about FlyingGuns! You should really take the time to try FG out, its top.

And finally, back on topic, your game is cool! Its got a nice graphical style and moves really well. Nice work!

Kev

I constantly forget that not everyone is using bare jogl to do stuff. I definitely should have tried FG by now, mostly I just didn’t want to deal with j3d again, not that installing it myself was so bad, I consider it more of an issue of installing it for someone else automatically if it’s not already installed that it really sucks for, maybe that’s one of the things that could be changed now that it’s going to be actively developed again (finally). My decision to drop j3d was more because I was having speed issues long before I did anything complex. I have my own little scene in my game but seeing how the play area is pretty limitted the scene itself is pretty simple.

Forgot to mention in the previous thread that our own egos about how good our own games are is pretty much bound to mess with our opinions and expectations, I knew I shoulda grown up to be a rock star instead!

I tried the breakout game but there was no “game” as such: if you miss the ball nothing happens. When I realised I wasn’t even a necessary part of the system - that it would play itself - I lost interest.

Also, thanks to genius open-source author of the Wacom graphics tablet driver, I don’t have an RMB - I have to use buttons on the latpop trackpad to achieve it, which is difficult, fiddly, and a PITA. Not your fault at all, but I quickly got fed up with being forced to use RMB.

It was also too small at 1400x1050, and I tried maximized it and it dorpped to sub-0.1 FPS (which is a more and more annoying problem specific to this GF2 graphics card I have. It’s recurring in particular JOGL and LWJGL games both - something about the way some authors are using OpenGL. I can actually play Quake3 on this machine at high speed, so…) and at that point I quit. The previously mentioned issues were enough to prevent me from trying again soon.

If you didn’t mention Java3D probably some more people would play it. Seriously. Java3D has a really bad reputation amongst some gamers, and I personally even now haven’t seriously played FG partly because I know what J3D has done to my OS in the past, and I’m not willing to even risk that pain again (unless I happen to think of it immediately after reboot, so I’m not worried about a total system crash).

The rest…see below.

In an abstract sense, you don’t market your game well enough; it’s a tricky sell (I have many memories of WW1 dogfight games and they were all boring), but that’s what you have to overcome. I can see you put in effort, but it’s not in the right places. I’m not a marketing guy, so I can’t really help you there, but I would suggest you just have to find ways to trick people into playing (Cas is pretty good at this, try asking him - in the nicest sense of course, “tricking” is just getting people to do somethign they wouldn’t have bothered doing but they enjoy once they’ve started it).

Also, look at the relative size and activity of the JGO readers when FG was launched, and now - big difference. Again, Cas has done very well at continuously “refreshing” his games, keeping them constantly ticking over with fresh content, tweaked gameplay, new control options, etc etc. If each player has a 20% chance of deciding to play each time you give them a new persuasive argument, then Cas makes sure he does it ten times, so that the chances of them trying end up as 90% instead of 20%. It’s a good move, but it takes a LOT of effort.

I’m not trying to patronise, but be careful not to underestimate how much “invisible” effort others put in to achieve relatively small payback. We have put in a LOT of effort to encouraging people to play, responding as quickly as possible to ideas, comments, and problems (look at the saga of DarkProphet’s cunning little cheat, for instance) and kept up a neverending flow of new features etc. e.g., as someone put it:

“ARGH!! I’ve played it moments after being posted, and it was quite easy, but getting interesting!! Now it is all madness!!!”

We really kept up a punishing schedule (hey, I feel punished and I wasn’t doing most of the code updates!) in the last few days, and that kind of attracts people and keeps them interested.

Also…Kev and I made a lot of posts between us, just keeping people up-to-date on what was happening. And then there was the “extras” like me doing a dev-diary on JGF, and talking about the level-editor, which helped people get an idea of what we were trying even before we had a launch ready. I confess I was really worried when Cas offhand mentioned he was really looking forward to trying it - I hadn’t realised anyone actually had expectations of us ;).

(and, like Kev, I’m a bit embarassed at the current state; we are well aware that it’s quite a long way short of where we’d say “Yeah, that’s about as good as I can get it” and we feel a little reticent about anyone playing it until we’ve shown you how we want it to REALLY look and play ;D).

I would also like to think (but I’m not convinced yet) that Survivor’s an innovative, exciting, and unusually fun little game that is getting people to play and talk about it because - even in a shoddy part-finished state - it’s already showing flair and potential. But that’s probably wishful thinking :). Anyway, to whatever extent it’s true, it just makes the other things more effective - so e.g. if FG is as good as several people have told me it is, you just need to kickstart the other stuff and your game quality will then shine through. From a marketing perspective, you may have a 90% “conversion rate” (people who play your game and love it) but that’s no good if you only have 10 people play it. I am confident that (extreme example) if we’d just made one post about survivor and not responded to anything afterwards then interest would rapidly have died down.

FINALLY…I suspect it will all go pretty quiet for weeks now that we’re no longer adding new features every few hours.

[quote]My decision to drop j3d was more because I was having speed issues long before I did anything complex. I have my own little scene in my game but seeing how the play area is pretty limitted the scene itself is pretty simple.
[/quote]
Careful!! One main point (at least in theory) is that Java3D is scalable!!

Scalable system very often are slow on small problems. But they can preserve that speed even if the problem grows large and complex.

Try a full-blown Oracle server on your personal CD collection, you’ll notice that M$ Access is MUCH faster. But do that with thousands of simultanious users on the worlds largest music DB! Oracle will perform well, M$ Access instead…

Before someones kills me now … I said that is theory! The real Java3D is by far not that scalable and Xith3D can be faster on a wide range of problems.