« April 2010 | Main | February 2010 »

Short Update

Posted by Andrew Czarnietzki
Mar 30 2010

Quick update – it’s been a slow week due to a busy day job, sick puppy, and a rather unpleasant stomach flu. That said, I am still making progress on this project – currently multiplayer is functional for the players disc, the player’s physics, the weapon system, the wave and inventory system, the background coins and the background AI. Even the 3d beam works in multiplayer!

The current challenge is getting certain client side systems working when not triggered by the local player – i.e. you can see your beam, but you can see the beam for the enemies (though their weapons do hit you and deal damage online).

I do feel better about the multiplayer now – I know it’s going to be a pain, but it’s a huge moral boost to see progress on that front!

A

Categories: Development

Curved Space

Posted by Andrew Czarnietzki
Mar 21 2010

“That is the best looking iPhone game I’ve seen!”

Great compliment (until I explain that it’s a video of a PC game shown on the iPhone). Still, I’ve had a lot of excellent feedback from my recent trip to GDC (the Game Developer’s Conference), and now that I’m starting to get back into the swing of things I felt it time compile some of that feedback for this blog:

General Response:

The general response has been absolutely excellent. I’ve shown the short video segment to around 50 people from various positions in the game industry, and almost everyone liked the graphics, the physics, the gameplay, the alt worlds, etc. People really resonated with the physics side – a simple 2d game, but moving around the curve always got a “wow”. More so than the physics, the laser beam mapped to the 3d curve was even better received. Though there were a few comments regarding more special effects, the art style also resonated with people – something clean and simple but aesthetically attractive… more important though, something that really hasn’t been seen before – at least in this context. This sample really does confirm that I’m onto something – something that’s fun, unique, interesting, etc.

Publishing:

After talking to a couple of producers and various people connected to the distribution side of the industry, I think I’m on the right path. I started this project with the mind to build something interesting, which when finished I could take to get published. I was operating under the assumption that its less work and less risk for a company to publish something finished (be it a game or a manuscript) than to fund some bright eyed first time developer walking in saying “I’ve got this great idea, now give me money!” My assumption was whole heartedly confirmed by a number of very experienced individuals – and they all suggested that while this path is apparently more difficult, if I can pull it off its easier and more profitable in the long run.

I talked to a few people regarding how far I need to complete this game before pitching. I received a couple of mixed perspectives, but ultimately the father along the better – and when I do run the pitch, make sure that the 15 minute or so presentation is absolutely rock solid. More important than the level of polish though, I received some interesting advice on how to approach the construction of the game as well as the need for a more resolved concept:

Construction:

The advice I was given was to build the game as “ugly as possible”, focusing on the “fun”. The idea is that it is easier to re-skin an ugly but fun game than it is to rework a pretty game that just isn’t fun to play. While I do agree with this sentiment, an important part of my philosophy on this is that I want the art style to be central to the game (even if the interaction between lighting isn’t going to work out as I originally expected). I also think that the art adds to the character of a game, and that even in the prototype as is the art is critical to the positive reception thus far. I do agree with the sentiment that a fun game is better than a pretty game, but I don’t see why I couldn’t have both – especially when the majority of the buzz on the art side is based on sculptural form (critical to the gameplay) and automated processes like pureLIGHT.

Multiplayer:

Besides the comments on aesthetics vs fun, I also got some very pointed advice regarding the inclusion of multiplayer. To be honest, this is a debate I’ve been having with myself almost since this project began. I don’t like multiplayer. Sure, I love 4 player Left 4 Dead with my friends but 95% of my gaming time is on single player titles I can pick up and play whenever… I prefer my entertainment to be escapist, without having to deal with other people (either for fun or as an obligation – I truly don’t understand how people can put more hours into World of Warcraft than their actual day-job!).

I’m not looking at WOW scaled multiplayer though – I’m looking for something similar to that of Unreal Tournament; simple multiplayer with your friends, battling in an arena or working together against waves of enemies. Even the marble madness component of the game would potentially work quite well with cooperative play. On paper this sounds great – and to be honest, the question I’ve been asked above all others is “will it have multiplayer?”

I personally dislike netcode, but I feel that this is an area of Unreal that I have been avoiding. Eventually we may have to have a multiplayer project at work, and if this comes up I would really like to be better prepared (even the short bit of research I’ve put into the subject has already proved valuable). I feel that if I can pull off multiplayer for this project I will be a stronger programmer – and far more prepared both within Unreal and the games industry as a whole.

On the flipside, netcode is tedious, frustrating, and could potentially require more hours than the rest of the project combined. This is no small consideration, as if making this game took 2 or 3 times longer, it already stands a greater risk of not making it to completion (and that doesn’t even count the hit to moral working on something as frustrating as netcode). To complicate things further, if I want multiplayer support I really need to add it now – retrofitting this small prototype is already proving difficult, and I can see where retrofitting the final game would be nigh impossible. I know that things are a little more forgiving than this “now or never” picture, but I really do feel like I need to make a decision.

This is the debate I’ve been having on my own since the project began… the advice I received at GDC further complicates things. The one producer adamantly warned me that if I’m not passionate on multiplayer, “DO NOT ADD MULTIPLAYER”. He warns that if I did add multiplayer like this, I would risk burning out and dropping the project, risk doing a poor job on the execution, and risk making a game that actually works – as if I don’t like multiplayer, how can I possible build a multiplayer mode that is fun?

Joining the debate, I spoke to a few other people that warned me if I didn’t do multiplayer, would I be happy with myself for abandoning the challenge? I would I constantly be looking back at this project wondering what could have been? Very simple statement, but I’d be lying if I didn’t say that this mirrors my own thoughts on the subject.

Frankly, this advice really hasn’t helped any – and I’m sure that regardless of the path I choose this debate will haunt me throughout this project. I’ve done quite a bit of soul-searching since I’ve heard this though, and while I’m still a little unsure I think I’m going to choose the stubborn and difficult path (as where would I be if I didn’t always do things the hard way?). I’m going to keep pushing on the multiplayer support that I have in, and provided I can keep the momentum moving I’m going to continue developing with a mind to netcode. I can always abandon multiplayer support in the future if it truly becomes a black hole, but in the short term I don’t really think I have a choice on this one.

Concept:

This last piece of advice really got me thinking. The advice is basically that I should try to find a “high concept” for what is otherwise an extremely abstract game. The producer I spoke to warned that while games like Osmosis and such are awesome, they are the outliers – and that to pull off such an abstract game I would need flawless execution and not just a small bit of luck. Comparatively, by giving the game a defined concept it has more of a story to tell – and would potentially improve the signal to noise ratio when in the wild competing against countless other games of the same scale. This concept doesn’t have to change the gameplay, but a little bit of humor or context could potentially make my game project a lot more memorable and approachable.

I do agree with this sentiment, but at the same time I beg to differ. I _like_ abstract games. I _like_ games like Geometry Wars or Osmosis or Orbital (even though Geometry wars is successful due to being a well executed launch title). I also have difficulty with things like humor – we joked about various concepts including “sphincter wars” (based on the shape of the map) – sure, this got a smirk (the drinks helped), but I don’t think I would be happy with the type of game that this (or any humor based theme) would produce – though I would admit that such a concept would make it more notable in certain marketplaces.

I do give him that a concept will help ground and guide production of the game, and that currently I really don’t have any sort of concept – starting with the name (or lack thereof). After sleeping on this, I have an idea that is starting to resolve – and therefore I officially christen this project Curved Space. I like how this name highlights the unique aspect of the gameplay, and I like the science and physics connotations that go with it. I don’t know how many more conceptual elements I will eventually add (I’m happy with glowing abstract shapes shooting at each other – I see little value in making them spaceships with miniature animated humans inside) but I do think that this starts to give the project a theme and direction.

It’s a little hard to get back in gear after a trip like GDC, but I’m energized and ready to dive back into this project. I definitely feel that the trip confirmed that I’m onto something interesting, and gave me a lot of useful advice to think of whether I choose to follow it or not. I also made some great contacts at the show, some of which may certainly leave a mark on Curved Space here – but I’ll wait to further those relationships before adding to this blog.

Cheers!

Categories: Design, Development

Clientside Movement

Posted by Andrew Czarnietzki
Mar 08 2010

A small breakthrough, but I figured its notable enough to get a mention on this blog: I now have network replication working for my physics based pawns! (true, they are still majorly broken, but for the first time the clients can actually move around!). This also gives me hope that I can get multiplayer working – the frustration was mounting steadily after hours were poured into the project with no appreciable result… I’m sure there are more brick walls waiting, but this was the ugly problem that was preventing me from moving forward! (this is a bad week for keepingn and development momentum, but at least this improves my attitude on the project as I go down to GDC – and frees up my subconscious to work on different problems)

Categories: Development, Physics

Update

Posted by Andrew Czarnietzki
Mar 07 2010

Small update today… this last week didn’t see too much on DiscGame (thanks mostly to a fairly obsessive blitz through Mass Effect 2) and I doubt next week will see much either (due to me being down at GDC).

For the progress I did make, it’s not of the sort that makes for pretty pictures or video. I’ve been trying to get basic multiplayer working (before I start getting too complicated with various systems) … this sounds great on paper, but building something that works with netcode is FAR more painful than building something that works on a local machine. I hate netcode. I hate networking. Frankly – I actually kind of dislike multiplayer in general (outside of a good LAN game). I also haven’t done any real netcode development for a long time, which doesn’t help any.

I do have to say that this is an interesting funk from a development point of view – one I hope I can get through quickly or this project may suffer. I like programming – I especially like programming systems that just work. Netcode… is taking something that works, finding its horribly broken (online), and bashing your head into the wall for hours on end trying to fix it. (a slight exaggeration but not by much – I’m hoping that the more I get into this though the easier it gets). I understand why it makes perfect sense to have netcode early (as retrofitting is near impossible, as I’ve learned from personal experience) so I seem to have drawn a line in the sand saying “we’re adding netcode here”. The problem is, this is a painful process and it lacks the creativity and joy that I’m finding in the rest of the project – which makes this difficult to continue on my own time (not to mention I find this level of debugging far more draining than the more creative side of development). If I can’t get multiplayer working soon then I may just say “fuck it, let’s finish this prototype and make something fun… if we want multiplayer, we can rebuild it later – perhaps with a budget”. Until then, I’m still hoping I can make progress and carry on – fun development hand in hand with something that works online. I think I’m making progress at least (learning plenty, at the very least) so we’ll just have to see where this goes.

Categories: Development

Networking

Posted by Andrew Czarnietzki
Mar 01 2010

Small milestone: first connection between client and a server! The game is completely and utterly broken, but the connection was made and now I can start fixing things!

Categories: Design

Gameplay #3

Posted by Andrew Czarnietzki
Mar 01 2010

New Gameplay Video! Taking some of the inspiration from Gamecamp, I’ve captured a new gameplay video! A lot of the fine control adjustments really don’t translate to a video presentation, but some of the points to look for include: compass arrows for off-screen enemies, enemies that shoot back / different enemy types and alternate worlds:

Two points with this video: the first, the compass arrows are an interesting experiment. I’m not sure if I like them or not, but from a gameplay perspective they make a huge difference (and are more successful than alternate solutions including rendering enemies through the geometry (which only works in a select few cases) and an overlaid radar which doesn’t map well to the 3d space). The second point: for the alt worlds, the idea is that when in the red world, the white world enemies are shadows (and otherwise unable to see or touch you). While you can see the red enemies in the white would, you can’t hurt them and they can’t see you – but if you go to the red world, they now become quite violent and aggressive. Note that the red enemies are converting the white coins to red (which slow you down in the normal world but become collectable in the red world) – the radius by which they affect them is currently too small, but I will change how all that works as soon as I get back into the code.

I tried having a pickup trigger alt world switch ability (as well as specific portals in the world), but ultimately the push-button switch seems to be the best. Provided the user is prevented from getting into the alt world before the red enemies and coins, the switch allows for an easy option to escape as well to strategically attack / avoid larger enemies. Watching my Fiancé’ play last night, she made huge use of this feature without any prompting – I’m not quite sure where it will end up, but that first initial test is encouraging.

I’m going to continue to refine this, but I’m also going to start looking at what sort of changes multiplayer will require. I’ve kept half a brain to the netcode requirements (and I am familiar with Unreal’s networking system) but I also haven’t done any multiplayer development in about 5 years… which should make this interesting. Fingers crossed though!

Categories: Design, Development, Gameplay, Testers, Video