Afternoon Braindump

Pasted from Googletalk:

Ricky: okay..
how about you have some different ‘modes’
in play mode, the game behaves as it should for the player
wall collisions etc.
but you can switch to other modes
and in these modes, your character becomes your edit cursor.
so you hit a key, and the room fills with blocks
blocks everywhere except for where your character is standing
and then everytime you move, you destroy the block where the character moves to
so you can ‘carve out rooms’
as the player.
you can press plus and mins
to move between a number of room ‘slots’
and it transparently saves everything to xml and reloads on startup
then there’s the opposite mode
you hit a key and it clears the room of all blocks
but everytime you move it leaves a block behind
so you have constructive and destructive edit modes
and you should be able to churn out lots of rooms really fast
and then…
you maybe have some gameplay mechanics that let the player do similar things, albeit perhaps in an energy-limited way
the advantage of this would be…
playing / testing and content-creating/tweaking become almost the same thing
okay that’s enough braindump from me 🙂
Oh wait, it seems it wasn’t enough:
Ricky: linking rooms to exits would work the same way
stand somewhere
hit a key
cycle to the room you want to link to
hit the key again
boom! They are linked
store your rooms separately from your links, in good database 3rd-normal form style..
shahid.k.ahmad: awesome
I haven’t done any decent database work since 1991
Ricky: some more inspiration:
this is Unity – it’s a super fun, block-based sculpting tool

Guest thoughts

Aww shucks. Cheers for intro Shahid! So here is wot I fink, based on reading your blog so far:

First off, I think your blog is a Good Thing, for a few reasons:

– writing down the jumble of thoughts surrounding making a game will help you to think them through more clearly.
– doing so publically will be a way to attract attention, from people interested in playing the game, to those interested in helping you make it.
– you have a place to post progress, which will be hugely motivating.
Before trying to provide any game-specific advice, I think it’s worth trying to get a few things straight. The answers to the following 3 questions will have a huge bearing on what language + dev environment you choose:

*Bear in mind that I haven’t played the original game*

– Do you have any specific plans for this remake or do you just want to make it first then go from there?

– Are you hoping to bring the game up to date graphically, with high-resolution textures, shaders, lighting, 3D-animation etc. etc, or are you aiming for more of a retro feel?

– To what extent do you want the game to play like the original? Some of your posts imply that you’re happy to allow the design to change, but to what extent is this true?
You say that isometric graphics are an essential element of Chimera, but is this definitely true?  Surely ‘It’s a resource management game and your resource is energy’ is much more an essential element than the player’s viewpoint?

– How much time do you want to spend implementing low level stuff, like display code versus making your game?

Here are some observations from me, which might help you to answer the questions (but I can’t answer them for you):

– Since you’ve not been programming for a long time, any modern language / platform is going to require some investment in learning it, which puts them all on a vaguely similar playing field in that sense.

– Having said that, I’d say you want to spend as little time as possible making the technology, and as much time as possible designing puzzles, creating content, working on the atmosphere, the interface, the sound design…

– Probably a good idea be as platform-independent as possible – I would personally rule out making your game Mac or PC-only.

– You aren’t an artist, and you don’t (currently) have an artist, so it probably makes more sense to give your game a retro charm, rather than aiming for 2010 production values. Check out VVVVVV or Geometry Wars or Cactus’ stuff for examples of how successful this can be.

– Think really hard about how attached you are to an isometric viewpoint. It was cool and clever in 1985 but I’m not sure how much inherent appeal it has in 2010..  (disclaimer: I am personally not a huge fan of isometric games). Ultimately, you should decide what you want the player to do and feel in this game, and then choose the viewpoint most appropriate for conveying and supporting that.

A quick summary of platforms:

1. Flash. If you’re going to make a 2D game that isn’t going to be too heavyweight, and want something quick and easy with lots of boring resource management and display things done for you, you won’t be able to beat Flash.

2. Unity. It runs on everything, and does pretty much everything for you. Not sure about support for Isometric, but if you were considering a 3D implementation (perhaps with an isometric-esque viewpoint) it’s hard to think of a reason why you *wouldn’t* use Unity. Edit: oh look: and

3. C++ has the advantage of being extremely cross-platform, and has a lot of nice frameworks and libs for indie games these days (look at

4. C# – Microsoft’s XNA seems to be very powerful, but I don’t know what you’d do on other platforms. Mono is worth looking at though (, but I don’t know what kind of lib support you’ll find for games / display stuff.

5. GameHaxe is interesting ( Only heard about it the other day. It’s a language much like Actionscript, which then cross-compiles to lots of platforms (including flash, c++/OpenGL, Android, iPhone). Not sure how mature it is yet though.

Hard to advise on a specific language without a clearer idea of what you’re aiming for, but right now I’d suggest taking the free version of Unity for a spin and see what you make of it..

Two things I think for sure:

1. You should definitely integrate your editor with the game engine so that they are the same thing. There’s no good reason not to.
2. You should definitely contact Ron Hubbard and point him at this blog. He might be into it, and you might have a collaborator!

Hope that helps!