Archive for the GameDev Category

Fencing Game

Posted in Fencing, GameDev with tags , on March 17, 2011 by bbarrett


New Project Announcement

I’ve been working on a fencing game for the last few months with a friend of mine. Its coming along nicely. We hope to have it finished during the summer, but we’re close to having an alpha of the primary gameplay, perhaps by the end of the month.
I thought I’d get time to work on the programming language tutorial set, but my energy has gone into this and I thought better than producing some half rate work.

About the Game

My friend Sean is the lead designer (being a fencer!) and also doing almost all of the art. I’m doing most of the programming, and acting as a sub-designer of sorts. It is interesting work, particularly writing game AI which I’ve never done before.

The game is quite simple. It is round based, you can attack, block and sprint. You can play against a friend using an XBox controller or play against the AI. For the full game we want to make a tournament system, where you control a team of fencers who will have different statistics. Winning will be partly about pairing off your fencers against the opposing team in the correct order as overcoming the individuals in the interactive fights.

Here is a quick video I made of the current gameplay. This features a bug (which has since been fixed), where the screen declaring the winner appears instantaneously and doesn’t tell you who won.

 The rounds are reasonably quick, it gets tense and more fun towards the end when you have only a couple of rounds left to go! The AI can be really mean, it does this thing where he can step back one pixel away from your attack, and then step in a pixel and hit you. It is also quite non-deterministic, but we’re thinking almost too much so at the moment.

We Need You!

What I’m hoping for is a few volunteers for testing the outcome of our next iteration. This will be primarily to get feedback on the gameplay, but also an initial test for deployment, performance issues on strange machines, etc. I’ve never deployed a C#/XNA game before so I hope it won’t be particularly tricky. What would be really great is if we could get someone who has an XBox controller they can use with their PC to try out the multiplayer for us.Let me know in the comments if you are interested.


New Game Idea

Posted in conq, GameDev on September 15, 2010 by bbarrett

I’ve had an idea brewing for some time for a new game. It is roughly like Civilisation, but more abstract, hopefully simpler and with a few ideas of my own I’d like to try out. I’m aiming for a proof of concept at the moment. So I’m not going to worry too much about the non-military aspects of such games. Diplomacy, economies and other such mechanics will come later, if necessary.

The basic idea is a space conquest game. This has definitely been done before. You have planetary systems you can conquer, and you build fleets using them and conquer more. There will be a simple galaxy generator that might populate 50-200 planetary systems (depending on the scale you might choose).

The abstractions are just removing lots of special cases. In most similar games I’ve played, you can build a wide variety of units (often accompanied by a varied research tree). I intend to replace this with a simple power/disposition system. Basically, variable statistics. So a particular fleet might have an offensive or defensive disposition, or neutral. It might have a fast or slow disposition, or a heavy/light one. Some statistics might be naturally exclusive, for example I might disallow fast/heavy dispositions. The power is basically a combination of the size, disposition and relative technology levels.

It will be turn-based, but each turn will be divided into two phases, decision and simulation. Orders are given during the decision phase. The combat is resolved in the simulation phase. I also intend combat to be a multi-turn process. Planets are captured by laying seige to them for a number of turns. Two armies facing each other will do damage based on their dispositions, only if at least one is in the aggressive disposition will notable combat take place. Two fleets both engaged in an offensive stance should be resolved fairly quickly, with victory mostly based on the power difference between the fleets. If one army is neutral and another is aggressive, the neutral fleet might fall back rather than take excessive damage in a single turn.

The inspiration for some of the interesting ideas come from recently reading The Forever War. I really liked his description of the implications of relativity on interstellar combat. One simple example is that the human space craft travel to the enemy space that a long time has passed for the aliens. This means that the humans are facing technology which literally didn’t exist when they set out. I don’t believe I can replicate the ideas in the book exactly, but I can offer mechanics which have similar effects.

It will obviously be necessary for fleets to travel faster than light. My ideas are still forming, but one is to drop the relative technology levels of fast moving fleets (in the absence of logistical support perhaps). Another might be to allow the enemy players see the fast-moving fleets from further off. This is obviously artificial – the speed of light forbids this, but this is a game! The point is to design a mechanic

Another idea is to make the galaxy change over time. So the planetary systems will rotate around the centre of the galaxy, but also around each other. This is partly the reason for a separate simulation phase. While individual star systems might have little effect on one another, galactic features like black holes and globular clusters might have noticeable local effects (which I will probably exaggerate for effect). I might simplify the gravitational interactions by grouping areas that are close together. Getting this to work will be the main technical challenge I believe. I will probably have to simulate thousands of non-populated star systems to give the system some stability. I would have to at least draw them anyway to create a nice background effect to give the impression of a galaxy. I’ll have to generate stable galaxies, where very few collisions will occur over the lifetime of the game. In particular, care must be taken to avoid the entire galaxy collapsing toward a single point. If it is infeasible to simulate gravity, I might just go for a very simplified system where the different star systems rotate around the centre of the galaxy at a fixed rate. But because different star systems rotate at different speeds, the same dynamic galaxy will be created.

My experience with the critter game taught me that I’ve a lot to learn about game design. This will be a huge test for me. I don’t know if I can make a good strategy game in a ever-changing world. It sounds like an interesting idea, so I am eager to try it out and see if it is any fun. It sounds like a bit of a nightmare though, you have to plan X turns down the line when your planets and ships are all in constant motion. Add to this the various real and theoretical/imaginary interstellar features that can be included, the aforementioned black holes and globular clusters, but maybe supernova, wormholes, nebula. I will include anything that has a bit of character, and can act as strategic key points. I’m not too concerned about realism, I will scale any feature to fit the game, even if it doesn’t really make sense. I might even include new ones, such as massive objects which have an inverse effect to gravity. These might be pre-populated features or might be created by the users, I’m not sure yet.

I don’t look forward to writing AI for such a system though! I expect it will be hard enough for a human to meaningfully plan ahead in such an dynamic environment. The interface will present a challenge. For example, if you order a fleet to move to a point that will take 10 turns, should that point be relative or absolute? Did the player want the fleet just to approach the galactic core, or did they intend that it end up close to a particular resource of interest. The strategic value of certain areas will change over time as they move. A once important planet might end up moving to the wrong position and become isolated and useless. This could feed into the economic system in the long term, if I take it that far.

I’ve only barely begun work on this project. The working title is “Conq”. This post is intended as a roadmap for future development. At the moment it is a top-down 2D game, but when I look at video’s like the Infinity Game Engine by Ysaneya (included below), I keep thinking how cool it would be to do this in 3D. Imagine a fleet surprise attacking – from perpendicular to the galactic plane!


Posted in blatent_self_promotion, Critters, GameDev, Java, programming, UFEC on March 7, 2010 by bbarrett

The deadline for UFEC approaches rapidly. I may not have sufficient time.

I have so much to get done, I have to take a clincal approach to my TODO list and cut anything that isn’t necessary. I’m just hoping there will be enough stuff left to leave a fun game.

One of the UFEC elements is fire. I’ve put in a simple rendering technique that makes decent looking fire, but I’m not sure that it will suffice. The entire game is done in immediate mode, combined with rendering not a small number of particles I’m worried that the game will perform well on slower systems than my dev machine. I have a simple optimisation that could speed it up a lot, but that would require time to write and test that I’m not sure I have. Water rendering and handling is something I’m hoping to do today.

Input is a huge concern. The game game feels awkward to play at the moment. I really want to have a mouse only interface, but it is tricky. The problem is that I can reduce the number of actions that the user might need to perform at once to three, but that means relying on the middle button, which never really feels comfortable to hold on. Holding down the button is an essential part of each of the three actions – pan camera, select critters and “apply current mode”.

The current modes are currently “proliferate”, “evolve” or “attract critters to mouse”. The really ugly temporary UI I have implemented for them will eventually be usable by clicking on the icon of the action you want to perform, with shortcut keys available too.

My evolution element is very weak at the moment, I have evolved types but they act pretty much identically to the “default” critter type. They are drawn a little different, but not even *that* different.

Some of the other things I was working on is getting levels to transition and keeping the camera inside the bounds of the map. I also worked on giving feedback for when a critter is injured, they flash red briefly. I still need to add some visual cue for how healthy a critter is.

Some more good news is that I’ve broken my level editor mode (which I haven’t touched for a while). I’m going to have to design some levels for this game, which I’m not feeling confident about. Hopefully it won’t be too bad.

This week is probably going to be crunch mode. I’m considering taking a day or two off work coming up to the deadline to try get this done. I’m just hoping that my enthusiasm holds steady. And perhaps my sanity.

Short video featuring some of the changes I’ve made:

New game

Posted in GameDev on February 14, 2010 by bbarrett

I’m working on a game, a potential UFEC entry, depending on how finished it is by the deadline.

The gameplay will be somewhere between Lemmings, Fantastic Contraption and IWBTG if it works out.

Basically, you have to get a bunch of amorphous blob like creatures (currently dubbed ‘critters’) from the start position to the end of the level. There will be various obstacles and impediments on the way to prevent you accomplishing your goal. You can attract critters towards the mouse, guiding them but you don’t have direct control of them. I may eventually include a “mouse gestures” system to support command-verbs such as “leap” or “run”.

Currently, the obstacles are more of a nuisance than actual obstacles. I will soon be adding a damage system, so the little critters will be dropping like flies if you don’t take care of them.

I’ve uploaded a gameplay prototype to Youtube:

If you have any comments, they would be more than welcome!