See #1. I had a TNT card originally. That was in the days of Java 1.2. By the time Java 1.4 came along, with ByteBuffers, I’d gotten a GeForce 1 with a dual overlocked 300Mhz celeron motherboard.
Not any more. We did have game called Puppy Invaders once on our website (an applet), but I didn’t write that and it’s slightly crappy code too. I never got into using Java2D because it was just too random as to whether we’d get any performance out of it.
Nope, but I’ve seen the results and I’m impressed.
Reading University, England, nearly 20 years ago now (Where did the time go?) Very inauspicious. I nearly went to Durham but turned them down, for some reason. Maybe for the best, as I didn’t learn a thing at university. I spent the entire 3 years pissed and stoned out of my head. When I got a degree at the end of it the Dean of the Science Faculty came over to personally shake my hand, stating, “Well done, you’ve made a mockery of the examination process.”
I thought it was because they’re all a bunch of lazy git’s who jumped on Java because it was the first mainstream language with garbage collection (lazy, see?) and are too apathetic to change…
Well, I totally 100% fit the bill in the “beginnery” aspect. I’ve been programming in Java for 1 year and I’m currently a full-time firefighter and computer science student. Like many others (I assume) Android has brought me to Java.
That all said, I have some (perhaps general) questions that may be painfully obvious…but I’ would like to see the answers none the less.
When programming, before you became a wizard(when you were in the everything isn’t obvious stage); How did you go from idea to implementation?
Do you program to the UI or do you program and then design the UI around the code?
How do you keep track of code in big projects? I realize that “big” is subjective, so… how do you keep your code organized?
Where do you think programming is going? More abstraction, or less ala App inventor/Scratch or scripting?
When working on a project, do you skip around or focus on one task until its completed?
DVCS or SVN?
Do you have any programming “aha!” moments that you can share?
To get started in Game programming, how should I think compared to utility or “regular” business type programming?
Is recreating games in an attempt to learn a bad idea??
I have no idea, because I’ve been doing it for 31 years now so it’s a bit like asking me how I remember to go to the toilet when I need a wee.
Generally we work on both at the same time, and try to get as much of the boring UI bits done early as they’re no fun to try and do right at the end.
Mostly it’s just all in my head, particularly the major part I’m working on at the time. It’s reasonably layered and I tend to work in one layer at a time.
Couldn’t care less I’d like scripting, it it were any good, but they never look nice. So I’ve not tried it yet, mostly simply because it looks ugly compared to shiny neat Java. Even C# looks ugly compared to Java.
Depends what you mean by “task”. Generally I’m task based, and have a text file with a todo list in it, and work off of that. Tasks can be quite granular or quite broad. It varies.
SVN
Not for the last few years no… I was quite pleased to rewrite my sprite engine to use VBOs finally after many years, and even more pleased to get it to interleave sprites with arbitrary rendering, and super pleased to simulate OpenGL immediate mode in a really nice little API. I bet it’s nowhere near as clever as all the fancypants stuff in JavaFX 2 or Unity or even Flash but for my purposes it’s lean, mean, powerful, and very fast.
Forget event handling, JavaSound, AWT, and Swing You are now thinking about frames. When you become a ninja you will eventually decide you want events in there again and write your own event handling loop. Etc.
No, it’s a brilliant thing to do. Especially if you can genuinely make them better (as opposed to, say, just adding blackjack, and hookers). The best bit is that you have a reference with which to compare your game. Like, do the controls feel good? Is the game rendering smoothly? Is it as fun? and so on. I wonder why a lot of people who post their stuff up don’t look at their own games and then think, hmm, this is complete shit compared to just about every version I’ve ever seen elsewhere.
Persistence is key! Oh, and find an artist to work with. And a someone who can do music and sound. It really helps motivation when there’s someone else as enthusiastic as you who works as hard as you.
Java is really, really easy to use with Steam. Just plonk lib and bin dirs in your depots and that’s all there is to it. I’m working on a Steam SDK binding at the moment, but I’m only going so far as to implement the bits I need (which will be achievements and the Steam Cloud).
None at all - 95% of the classes the game needs get loaded on startup during that loading bar bit, where we load in a hashmap of all the resources in the game and “create” them (upload textures to GL, decompress OGG sound effects etc). Then within about 10 seconds of the title screen running we’ve gone through most of the really hot code already (it’s basically “the sprite engine”). There should be a few judders here and there when the server VM compiles stuff but again, most of that occurs on the first level you play in the first game, and it’s all more or less compiled after that.
How do you know you’re on to something when you design a game?
I tend to think I’m creating something awesome when in reality it’s usually quite rubbish.
Unfortunately I/we aren’t exactly talented in this area and mostly we just enjoy playing our own games and until now it seems to have been the case that we’re the only 2 people that do. We have several times got really far into a game design (like Treasure Tomb, or Revenge of the Titans about 3 times) and ditched it. That’s obviously quite expensive now so we can’t afford a visit from Mr Cockup again!
We’re going to approach the next game a little bit more methodically now. In particular we want to get an alpha of bits of it out to our Puppygames customers to gather feedback - and basically allow our loyal customery types to design the game they want as much as us - and skim a little cash in the process
RotT has been on the Steam frontpage for a few days now (congraz on getting to Steam, btw ). I know, it’s only a short timespan but do You have any data on how has the Steam affected the sales ?