• About
  • Gallery of Images
  • Archives
  • Categories
  • Archive for the ‘GameJam’ Category

    LowRezJam – Report 4


    2014 - 05.06

    Mouse Control

    [This will take a while to load, but worth it]

    So this evening has been filled with the delights of path finding and forcing pixels to remain on the grid.  The player now directly controls the harvesters, left clicking to select them ( which causes an indicator to appear above it ) and then right clicking to select a new destination for the harvester to move to.   Only one harvester can be selected at the time ( at the moment, multi-select is a stretch feature I want to work on, but not sure I’ll have time to fit it in with everything else planned ).   Once right clicked, the harvester will move to the clicked on location, harvesting any material it finds on it’s way.

    Right click now sells the material collected and now the harvesters have bigger tanks ( 5000 units compared to 100 units ) its quite easy to click on a far away location and let the harvester take a long stroll to it, knowing it will strip mine on it’s way.

    I’m mid-way through coding a ‘search’ mode for the harvester, which means that if the harvester is not moving, it will search the area around it for material to mine, and if it finds it, it will automagically go and harvest what it can find.  Later on the range of this search will be determined by other factors and possibly by other entities, dependent on time left 🙂

    Currently the selection cross-hair alternates between a low alpha cover and full bright alpha – I’m not sure if it looks better with a full bright and no frame – so it just flashes.  I’ll have to experiment with that.  Oh, and bonus pointless feature :  harvesters now have a shadow 🙂  The sprite sheet for the harvester has got a crazy ( for a sprite sheet I’ve made ) number of frames in it.  Easily the biggest one I’ve constructed so far ( in frames, not in size 😉 ) :

    Constantly growing havester sprite sheet

    lamentconfig
    Share

    LowRezJam – Report 3


    2014 - 05.05

    Selling harvested material

    A very productive bank holiday Monday.  The first thing that will strike you about the image is the new terrain colours.  Gone are the bright yellow sands and dark red splotches dotting the dunes.  I’ve added a more subtle gradient now, and tweaked the turbulence of the terrain generation which gives much more interesting looking levels, which definitely seem a lot more realistic than before 🙂  I’ve also improved the harvester sprite, and added some highlights, and made the tracks seem more dirty.  Or at least that was what  I was going for 🙂

    I’ve also addressed one of the issues I was most worried about – displaying the amount of money you had, as well as other stats.  I’ve implemented a slide on system, that when you press certain keys, a menu item slides on from the bottom of the screen.  There are two menus currently, the funds menu and a debug menu.  The game now does have some playable aspect to it, rather than just randomly spawning in harvesters and scrolling around the world.  The player starts with 1000 undetermined currency points.  Spawning in a harvester costs 250 of these.  For now, I’ve created a very simple ( and not final ) way of gaining funds.  By clicking on a harvester, it stops harvesting and sells what is in its tank.  This is then added to your funds.

    The debug screen is nothing special at the moment, but its something I need for testing :

    Debug screen

    As you can see, its fairly straight forward: an FPS counter and the number of harvesters spawned in the world.  I wanted to do this because I can imagine the game having a lot of harvesters and wanted to build something which would let me stress test the code.  Though the harvesters are very simple at the moment ( they move randomly and just harvest when material is under them ) – it will allow me to judge the performance changes when I add more sophisticated code to them.

    I was pretty impressed by that 🙂 but it bares little resemblance with the future as I doubt anyone will ever spawn that many harvesters 🙂 The harvesters are spawned with a single keypress all around the 2000×2000 world. Was pretty happy with the framerate there, especially as no optimizations have been done.

    Still a very large to-do list, but pretty happy with the way things are going so far 🙂

    lamentconfig
    Share

    LowRezJam – Report 2


    2014 - 05.04

     

    LowRezJam Animated

    Some real progress in the past 24 hours or so 🙂  Harvesters are now spawned in by pressing the ‘Z’ key – this is temporary for now, as I want to get a ‘build unit’ screen into the game.   This will spawn a harvester in the center of the viewport.  Harvesters also harvest now 🙂 The harvesters have two stats associated with them, a tank ( which contains the harvested substance ) and health.  These are show on mouse over by two bars, the top horizontal bar showing how full the tank is, and the vertical bar showing the health of the harvester.  Once the harvester tank is full, it will stop collecting resources.  Currently there is no way for the harvester to lose health, but that is on the cards in the next few days.

    The health and tank bars were pretty awkward to do.  Initially I was going to use standard HTML5 line drawing code :

    ig.system.context.beginPath();
    ig.system.context.lineWidth = ig.system.scale;
    ig.system.context.moveTo(x1,y1 - ( ig.system.scale *2));
    ig.system.context.stroke();

    ( impact.js uses ig.system.context for canvas context ).  Alas, the drawback to this was the line it drew was anti-aliased, which is a big no-no when it comes to LowRezJam.  So I spent an hour or so playing around with ig.system.context.getImageData(); and ig.system.context.putImageData(); which ended up being a much better way of doing it, I could paint the pixels easily on the canvas to draw the bars.  I was drawing on the up-scaled image, so I had to create an array of pixel safe values, so that when the bars are filling up, they keep with in the real image pixel boundaries.

    I’ve also changed the way the map is generated now, and tweaked a couple of things, to change the size of the map ( it is now huge ) :

    Full landscape

    This takes the old 200×200 map, and now creates something 2000×2000 wide – the above screen shot is not even the entire world (click to enlarge) 🙂  Stupidly big for a 32×32 viewport – but fun I think 🙂  The tiny blue dot in the corner is a harvester, doing its thing.  A few more things I want to do today, but pretty happy with the way things are shaping up at the moment.

    lamentconfig

    Share

    LowRezJam – Report 1


    2014 - 05.03

    So #LowRezJam is all about fitting a game into a 32×32 screen.  Sounds fun and potential painful at the same time.  I thought I’d post some progress updates to keep myself motivated and to give me some ponder time while writing blog posts.  I’ve had an idea I’ve wanted to do for a while, which is basically a simple resource harvesting game.  I prototyped some ideas a while ago, and have worked out how to adjust them to make them fit within the constraints of a 32×32 screen – some of the more complex functions I may have to drop, but it should still be fun.

    I’m using my goto html5 library, impact.js and the first test was to make sure that it would upscale correctly – the rules of the jam are very specific that everything must be in the 32×32 pixel grid – no half pixels when up-scaling.  impact.js handles this fine, so I stuck together a mock level to test scrolling :

    Initial level designThis worked fine, but building static levels like this struck me as a bit boring.  If in doubt I try and use procedural generation as much as possible so I decided to do that instead 🙂  I tweaked the game to have to distinct map layers – the first one contains the desert environment, the second will contain the resources that you are collecting.  I used the diamond-square algorithm to generate some realistic looking desert and the resource layer.

    full tilemaps

    When combined, this looks something like this :

    combined tilemaps

    Pretty simple stuff for now, not quite happy with the look of it, but its a start.  I also needed something to actually harvest the resource, which is this prototype little vehicle I made :

     

    tiny miner

    30×30 for the full tilesheet – lots of unused space for now and easily the smallest tilesheet I’ve made.  Why on earth gimp says 1.1MB I have no idea 🙂  So now, we combine these all together, and stick them in the 32×32 frame.  This initial prototype was just to see if it would all work as expected, so the harvesters just randomly move up and down and left and right, and the screen is scrolled by the arrow keys – this is the up-scaled version, next to the original size.

    image5

    And finally, for those who haven’t seen it, this is my quickly put together title screen ( not featuring text, yet ) :

    title

    Now to add some actual gameplay to it 🙂

     

    lamentconfig
    Share

    The Roaring Silence …


    2014 - 05.03

    Alas, being busy with real life stuff, my blog ( and gamedev ) has slipped a bit from my attention, which is always lame when your last post was last year. So this is me addressing this fact and getting back into the froodiness that is gamedev.

    I’ve worked on a few projects in the past few months, but nothing which has really seen the light of day in a release way – which is a terrible terrible sin for an indie gamedev to commit, which is one of the reasons I started this blog in the first place. Publicly stating stuff get things done 🙂 So with that in mind, I’m stating for the record that I’m taking part in #lowrezjam. Which is a pretty cool idea for a jam where you have to make a game that fits that will fit inside 32×32 pixels. I’ve got a game idea I’ve been wanting to do for a while now, and I think it will fit this theme quite nicely, and be quite challenging to do ( how do you fit a decent UI within 32×32 pixels? only time will tell 🙂 ).

    So this means in around ~15 days from now, there should be ( finally! ) a new game to play 🙂

    Now to make this entry a bit more media friendly, here are a couple of screen shots from some of my WIP’s that I’ve been toying with in my spare time :

    Physically Simulated Tentacles
    Physically simulated tentacle monsters. There is a reason. I’m not going to say what until I get further along. Each tentacle can navigate using A* and can grow and contract as is required to manipulate obstacles. A screenshot doesn’t really do it justice – the physics produce some really cool organic looking animation

    Splat
    More physics, and blood! This was an early experiment with box2d and impact which resulted in many, many hysterical bugs. This game is actually game complete, but only has one level currently. And terrible programmer art.

    lamentconfig
    Share