Sunday, September 23, 2012

Crunch Weekend

This has been a CRAZY weekend! Built a Camera class to allow panning around the level, got the grappling hook working (although there's still some odd Box2D/Farseer related behavior), got some of the control systems working better, hooked up the camera so that it follows the player around the level, fixed some of the level loading code, and got the grappling hook 'rope' rendering. Oh, and I hand-crafted the XML for 2 separate level concepts since we don't have a level editor. WHEW!
I don't think I'll worry about building out any code for 'death' since it's not something we'll be featuring in our trailer - let's leave that for after the prototype. Textures are what is lovingly referred to as 'programmer art'. Becky and Diana are doing their artist magic and coming up with concept art this weekend. I've decided it must be magic, because nothing else could explain the transformation from something as vague as 'a time traveling robot' into the sort of awesomeness these two produce.
Now I think it's time to sit down and play some games for an hour or so to break out of the coder's block (it's a real thing - I swear!)  I'm currently in.

Friday, September 21, 2012

Grappling Hook Woes

Fairly early on we struck on the idea that, as an elderly robot, our protagonist might have developed a grappling hook to help get around, pick up things, and in general continue to be useful. This sounded like a great idea - who doesn't love a grappling hook?
Then we (Ramnage and I) started looking at how, exactly, you build a grappling hook in code. As it turns out, it's not easy. You have to detect where the hook was fired. You've got to potentially do some auto-aiming if the player can only grapple certain areas. You have to take care of swinging, retracting, extending, and slamming into walls. Grappling hooks, like all worthwhile things, are TOUGH!
We decided to divide and conquer - Christian will take care of the grappling hook and I'll work on finishing everything else. We have to get everything working together by Tuesday to allow for 2 days of insane iteration so that we can cut together a trailer for our presentation on October 2nd. It's going to be a busy week, but I'm excited to show off what we've gotten done in such a short time!

Sunday, September 16, 2012


I think everybody in the group agreed that the parallel universe idea was interesting, but didn't really fit with the overall feel we were going for. I'd love to go back and revisit this concept sometime - I think it has possibilities, just not in this context.
I've started integrating the code between myself and Christian/Ramnage (the other programmer). I liked the feel of the jump he built - it basically makes the player jump upward at a fixed speed, then gravity abruptly kicks back in at the peak. There was another concept for a more jetpack-like jump, but I think his first concept felt better. He's working on the grappling hook system now - I can't wait to see what he comes up with there!
I got level loading from XML tossed together. It works reasonably well, and would enable us to build out a level editor without TOO much effort. I need to look into how we might consolidate the sprite and physics logic in these - right now, each block of the level redefines the graphic to display, the physics model (in its entirety) and everything else. It would be much more convenient to build and edit levels if template blocks could be defined, then referenced repeatedly. This complicates saving/loading but improves flexibility. I can also see that we'll need to be able to rotate blocks at some point. This might be able to wait until after our prototype.
Still having a bit of trouble trying to find puzzle scenarios that require either the old or young robot specifically. Maybe the old robot has the grappling hook and can swing from it, but when detaching he doesn't get an extra boost - his momentum is just conserved. Then again, maybe it would be cool if we did a portal-style trial mode where the player has to complete each level using ONLY the old or young version? Would be REALLY cool if we could implement achievements...

Monday, September 10, 2012

Rough Prototype, Ahoy!

Progress! I have parallel universes rendering, simulating physics, and accepting input. is, of course, INCREDIBLY rough. Jumping is a hack. The 'levels' are a hack - everything is in code. The physics simulation of movement is a hack - directly applying an impulse to the player. The physics body of the player is even a hack - he's a square. Even so, I can't help but feel an incredible sense of accomplishment for what I've gotten done this weekend between homework for other courses, working, and playing a lot of games.
If the parallel universe concept doesn't pan out it's easy enough to strip that part out of the code - I remove a couple of Systems (which are just duplicated for the two worlds) and it's done. I can't say this enough - I LOVE ENTITY/COMPONENT SYSTEMS!

Saturday, September 8, 2012

Finding the fun

I ended up on a project to build a game featuring a time traveling robot. We've had some trouble 'finding the fun' in the concept - puzzle design ca be tough in 2 dimensions, let alone multi-layered 2D! We're all spending the weekend playing games, coming up with ideas on how to make the game fun.
One idea that sounds intriguing is a platformer version of double maze. Maybe instead of traveling through time, the robot is stuck in multiple times/dimensions simultaneously. Everything he does in one is reflected in the other. In each level the goal is to reach the exit in both dimensions at the same time - you have to simultaneously play two platformer games, basically. I can see a lot of fun puzzles you could do with this basic mechanic, from the really easy to the incredibly challenging. You could also mix things up in some levels - maybe some dimensions/times are backwards, so left is right and right is left. Maybe have some levels with other control or environment switches - no jumping, in one dimension you can only move left - that sort of thing.

I've got a REALLY basic engine thrown together, borrowing from some recent work I did to build an Entity System from scratch. Thank goodness I don't throw away code! I'm having some trouble integrating the Farseer Physics engine - I think it might stem from unit differences between the two. I hope to have a REALLY rough prototype together by Tuesday to play with my group to try out the concept.

UPDATE: Success! Farseer is now behaving - it was, indeed, an issue with how I was converting between screen and world coordinates. Next up: how to build two worlds?

I'm continuing the hunt for other concepts in case this one doesn't pan out. Some inspiration:

Layer Maze -
A maze in a 3d cube, where you can see only a single layer at a time

Neon Layers -
Switch between 3 sets of neon lights to reach the exit

Tuesday, September 4, 2012

Of Time Traveling Robots

Well, my pitch didn't make the cut. I'm okay with that though, because I'm going to be working on a game that features a time traveling robot! Sweet! Right now we're considering some strong influences of Braid, maybe a smidge of Quantum Conundrum and just a pinch of Chronotron.
We've got a skilled team of 4 - 2 code monkeys and 2 artists. One of the artists has already shipped a title (sweet) which was fairly successful on XBLIG (even better). We only have 3-4 weeks to throw together a prototype to pitch to an industry panel. I can see many sleep-deprived days ahead of me.