Maybe a little presumptuous and arrogant but... well, someone might benefit, and I know a thing or two. Not that much but enough. And we've done quite well.So if anyone has any questions that they'd like to ask me about Java games development - anything at all - just fire away and I'll dedicate some time to giving as detailed answers as I can (and then Riven, Roquen, OrangyTang, KevGlass, etc can come along and correct me).Go for it!

No idea about the reddit thing (I only dip in now and again until it gets too hot)!

I'm not a particularly amazing Java programmer (you can see the embarrassing public shame I use). I'm just pragmatic, persistent, and product-focused. I don't write libraries for anyone else to use in particular. I don't even write code for re-use within my own projects until I need to re-use it and then I refactor it. It takes 3x as long to write good reusable code as code that just works for what you need it for

Back on topic - no, emos never get any work done, because they sit about crying about how miserable their lives are and that nobody understands them. I have no hair or makeup these days, and I'm big and muscled and apparently quite scary, which is just as well as my approach to problems now is to bash them instead of cry about them.

Do you do any design docs first?Do you do the art first?When do you do sound?Do you do your prototype in java, or another language, if at all?What was the first game you've ever developed and how old were you?How often do you get programmer's block?Aside from here, are there other sites you frequent in search of java game dev answers or just plain old google?Do you drink coffee?Are there any libraries you use other than LWJGL, like, things for playing sounds, installers, etc?Do you like green eggs and ham?

When you come across something you don't already know how to do, do you go to the googles or do you troll the api documentation of whatever library you're using first? What milestones do you think are important when starting a game?

1. Do you do any design docs first?2. Do you do the art first?3. When do you do sound?4. Do you do your prototype in java, or another language, if at all?5. What was the first game you've ever developed and how old were you?6. How often do you get programmer's block?7. Aside from here, are there other sites you frequent in search of java game dev answers or just plain old google?8. Do you drink coffee?9. Are there any libraries you use other than LWJGL, like, things for playing sounds, installers, etc?10. Do you like green eggs and ham?11. Do you use SVG's or bitmaps? I know that java only has built in support for bitmaps but the art in revenge of the titans looks so smooth I wondered.12. When you come across something you don't already know how to do, do you go to the googles or do you troll the api documentation of whatever library you're using first? What milestones do you think are important when starting a game?13. Also, are there any bookmarks, links, tutorials, resources, etc that you'd like to share?

1. Yes, just .txt files. Most of our games morph beyond all recognition after a while in development.2. Ish. We use placeholders (pinch graphics from older games, etc) and Chaz iterates over the design many many times. It's slow going. Eventually he settles on something he likes.3. Again, we use placeholders, pinching sfx from older games, and real work on sound doesn't begin till pretty late in the whole process. But getting some sound in early is crucial to the feel of the game. Sound is really, really, really important, as important as graphics - I wonder why it's neglected by so many. And no, sfxr is not going to be good enough, unless you want it to sound a bit rubbish.4. All in Java. I cut and paste the last project, and delete 95% of it, and run from there 5. I forget. I'd have been about 8, so it was 30 years ago now, on a Vic 20, in Commodore BASIC. My games aren't a whole lot different now...6. All the time. Fortunately I have a short attention span so I go and do some surfing, customer support, read some forums, reply on the Puppyblog, etc. and usually the answer turns up in my mind whilst distracted. I only get blocked on actual complex algorithms - general programming I've done for so long now there are no mysteries.7. I don't look for Java answers any more But when I do, it's here.8. About a pint or so of strong cafetiered coffee every morning.9. Yes: JOrbis for playing OGG sound; NSIS for Windows installers. Hm that's about it really. The rest of our stuff is basically home grown rubbish.10. Yes.11. Chaz designs all the graphics in 3DSMax and Photoshop, and he has various clever scripty things that finally export them out as bitmaps, which we then trim of empty space and pack into texture atlases, and then he painstakingly animates everything using XML, sometimes hand-written, sometimes generated by his scripty things.12. Firstly I pester someone on Skype or MSN like Markus or Kev Glass. On the rare occasions they don't come up with an answer I post on JGO (or wherever might seem to be appropriate) - these days I basically have no technical questions though, it's all about biz, at which I'm a total n00b. Otherwise I just look at Javadocs and Google happily away. As for milestones - well, getting something playable is the first one 13. Unfortunately no I learn by experiment, and the sum of my incomplete wisdom is more or less enshrined in that crappy Sourceforge project and the resulting games.

1. What do you use to generate your EXEs from java ? are they legal ? 2.Is your name really Prince Caspian ? What were your parents thinking

1. Molebox.. and, er.. no Though not for much longer. Steam won't be Moleboxed, nor the next release of Revenge, as I want to make it easier to mod and patch.2. No, it's Caspian Prince I was genuinely named after the book by C S Lewis though.

1) With the availability of so many amazing techs like Unity3D, Molebox (Flash) and Javascript (WebKit, WebGL, etc) do you still intend to continue using Java (near term and long term) ? 2) What's your thoughts on Sun/Oracle completely ignoring and neglecting java gaming? 3) If you were to go back in time (with hindsight) would you still have picked Java as a tech you invested so much time and effort into?4) What is your predictions and thoughts on the future of Java gaming and where do you see it going (kinda related to the first)?5) Do you think you'll ever become a millionaire ?

1. Yes, because I'm moving very thoroughly into online gaming client/server style, and none of those techs cut it. And Eclipse is too brilliant to leave. And I can't be bothered to learn anything new, as I've spent 12 years or something getting as good as I am at Java so I'm not going to just ditch all that expertise overnight for some fancypants crappy scripting tech.2. Just seriously sad.3. Actually... yes. I only use Java because that's what I otherwise use to make a mint contracting, so I was already good at it when I thought about making games with it.4. I don't see it going anywhere unless Oracle sort out the deployment problem. That being, there's no JVM on iOS or PSP or XBox. When there's JVMs everywhere they'll succeed at gaming. Not before.5. Nope, our games are just usually a bit too eccentric to be properly popular.

Interesting. I was wondering how you render text and how you do GUI's?

Also, have you ever tried out a physics lib or some other cool 3rd party thing that you would want to use in your games? Besides lwjgl of course

We pre-render fonts at various sizes into luminance alpha bitmaps, using AWT and a crappy tool in our spgl tools lib called FontConverter. That makes a note of all the glyph metrics while it renders them, and works out kerning using the brilliantly scientific method of rendering every single glyph next to every single other glyphe and measuring the difference in expected position. All that data gets saved out as a "jgfont" file which is the bitmap and glyph metrics and kerning info in a simple custom file format. Then I've got a GLTextLayout class that lays out glyphs from text strings (and recently, has simple formatting commands in it too for changing colours, fonts, etc), and then the whole lot gets plugged into our sprite engine such that a single text layer is spoofed as a "sprite". The sprite rendering engine does all our rendering - it's a very very simple sort of 2D scene graph which arranges things by layers, texture, style, geometry, etc., in a pretty efficient way. See DefaultSpriteRenderer in the SPGL code for the guts of it.

Never tried anything 3rd party and this is possibly because working out how to use 3rd party libraries often takes longer than just doing it ourselves. Not always, but usually. I'm not a fan of physics games generally either I keep an occasional eye on the Monkey Engine and Ardor because one of these days I want to do some 3D stuff. When I'm rich.

Given the limited capabilities of indies, what is it that you do NOT do when it comes to making a game? How do you make the scope manageable?(May be a too generic question, but some insight into making a "full blown" game but keeping it within realistic means)

This is a very hard question to answer. What we don't do, first and foremost, is 3D, because that requires tons of new expertise which I don't really have yet We've got a really crappy cheapass 2D art pipeline which we struggle along with effectively enough, but to do anything 3D would require probably learning tons of stuff, writing loads of library code, testing it all, discovering it was rubbish, doing it again, looking at Monkey Engine, being annoyed with Monkey Engine not doing exactly what I want, trying to do it ourselves again, getting stuck making a 3DS animation exporter, .... it goes on. Then there's the greatly increased complexity of dealing with a Z coordinate and all the maths and so on. I'd probably just about be able to cope with something about as complex as Minecraft right now but not probably anything cleverer than that.

The next thing we don't do is massively multiplayer online roleplaying games, because they take a long, long time, they're very hard to test, deploy, support etc. Which isn't to say one isn't on the cards. I'd love to make an MMORPG because we need a cash cow If we do one, and I'd like to, probably it will be in 2D, look and behave quite roguelike, and be almost entirely sandboxed PvP. Do what thou wilt shall be the whole of the law.

The latest thing we've figured out is not to make a game that is like anyone else's game. There's no point in writing Minecraft, but with blackjack, and hookers; there's no point in making anything that someone can approximate easily in Flash in a few months either. And we're specially targeting the desktop - not consoles - because that's a strength and a point of differentiation. We want to take advantage of the fact we have a whole keyboard, lots of RAM, and ("potentially") patient players. We don't want to write 0.99c trinkets for iOS, nor shoot-em-ups, nor anything else for the attention-deficit generation. Deep and niche is where we're headed, and online at that.

On your last game how much time is spent on art/content as opposed to programming? A percentage breakdown on what it takes to create a complete game would be great!

Easy answer: 50%. Chaz and I have spent about 3 man-years each on Revenge of the Titans - I code, he draws, we both design (though I do most of the gameplay design; he designs the style, UIs, etc). I also do sound, server maintenance, support, biz, marketing, forum trolling, R&D, etc. and he takes care of the website, advertising, and anything vaguely arty that people need.

First off, thanks for taking the time to let everyone pick at your brain1) How are you funded? Do you both have other means employment? Contracting? VC? Or is there previous revenue from previous games?2) What would you say was the most difficult technical challenge that you had to overcome recently?

1) I used to work full time as a contractor doing fairly dull things but the Humble Indie Bundle has made enough money to fund us up until Christmas. Unfortunately it's March and we've not even started a new game yet. And the last one took 3 years

2) Hm... it's not exactly a very technically complicated game. The hardest bit in it was the A* pathfinder, and I got some help with that from pjt33 and Markus. Before that, refactoring the entire sprite engine so that it could display arbitrary geometry, and also use VBOs, was the trickiest bit. And about the same time as that, designing and implementing a retrofitting system that laid out our UIs to any window size and scale. The game was originally conceived in our odd 320x320 double-rez format (a la Droid Assault, Titan Attacks, etc) but we realised it would a) be about as successful as those games if we left it like that, which is to say, not at all, and b) Steam wouldn't be interested.

When your next project becomes as freakishly successful as Minecraft, will Puppygames expand (like Mojang), or will you retire? (And don't pretend you haven't thought about this. )

It's kinda unlikely we'll enjoy Minecraftian levels of success especially given the oddness of our game designs... I've wanted to expand from the beginning but I've had no luck whatsoever in convincing anyone to join Puppygames and work with us. I won't retire but I will maybe transition to what I really want to do - which is design and produce games. I am a game designer trapped in a programmer's body.

1) I used to work full time as a contractor doing fairly dull things but the Humble Indie Bundle has made enough money to fund us up until Christmas. Unfortunately it's March and we've not even started a new game yet. And the last one took 3 years

Good Luck. Not that I have much ground to talk, but why not after the steam launch, throw up 3 - 4 game concepts on KickStarter and let your fans vote with their dollars on what you should work on next. You'll get some more funding and have a good idea on what will sell before you even start.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org