Woohoo! Week one over, game finished! Well, I implemented maybe 10% of what I had in mind for the game, but that 10% is roughly how I imagined it! And it is kind of rogue-like-like-esque, so I’m pretty happy overall.
Should really have counted the days from 0. Those off-by-one bugs are always hard to spot!
Added some new features this evening. As you can see, you have a hotbar GUI thing with buttons (only one of which kind of works), and can see how much jetpack fuel you have left, as well as how many turns. The camera follows you, and anything leaving the hex grid comes back on the other side.
One thing that’s really bugging me is the character physics. I’m just using a regular rigidbody2d, but I have to apply force every frame or the character doesn’t move at all! This looks ok if the astronaut is just gliding through space, but as soon as she hits an asteroid, it inherits way too much velocity and it is obvious she has a constant force pushing her. I’m not sure if this is a “feature” of the physics engine, or just something specific to my character, cause the asteroids seem to maintain their velocities.
Sad that I have so little time left to implement lots of potential features. Ah well, must call it a night at some point!
Beginning to regret how ambitious this project is for the free time I’ve had this week! I started coding sloppier today, game-jam style – who cares about performance if you’ve got nothing to show, right?
Not much progress these last 2 days really – most of my time has been spent fixing bugs in the game “board” coordinate conversions (with 3 coordinate systems, and conversions into and out of each, something was bound to go wrong).
I’ve been working a bit on turn-based gameplay. The way I envisioned before was having an amount of time for each turn, say 3 seconds, then the game would pause and you could decide to use your jetpack or continue on. Having tested this, it feels really jarring to be constantly stopping. So now, the turn continues until you click the mouse (excluding camera panning), then if you click within a certain radius of the astronaut, a force is added relative to how far away you clicked. Your turns increase and fuel decreases, relative to how much force was added.
One design problem is, what to do when the player hits the edge of the hex grid? I think bouncing off would feel wrong, and an “infinite” grid sounds hard to program. Maybe I could move the character to the other side of the screen, asteroids style. Then the camera would have to move of its own accord to keep players from being confused. I suppose the camera tracking the player during turns wouldn’t be bad.
Obligatory screenshot for the day:
Still not working on gameplay really, but enjoying adding some nice graphics polish! You can see the little animation I did yesterday. Also made a cursor on the hex grid, which the asteroids are now stuck to.
Added multiple layers of dust that parallax around when you scroll the (now scrollable) camera. The far stars stay still, as you’d expect. I did this with 3 cameras, 1 for stars, where the camera doesn’t move, and a perspective (not orthographic camera) for the parallax dust.
This was a weird effect I got trying to get the cameras to play nicely: if you set none of the cameras to have a clear colour, everything from previous frames overlaps in the buffer:
I’m excited to get going on the gameplay, but inevitably after a day’s solid programming tricky problems, the novelty of programming this stuff in the evening kind of wears off! Can’t believe I have only 3 days left!
Not much progress today, been busy. Did some simple character animation in Unity, which keeps crashing on me before I can save. I think making the collision boundaries much simpler helped the stability. Made some parallax layers of space dust in photoshop – nice to do some painting after programming all day!
Hopefully I can make everything quantised to the hex grid shortly, then start working on turn-based gameplay!
Another four hours or so today. Loving Unity’s new 2D features, although physics seem buggy. Here’s a terrible animated gif of current progress:
- Character has multiple joints, with pivot points and colliders
- Basic procedurally generated asteroid field
I used Hexels, a brilliant little free drawing tool, to do all the textures/ sprites.
I think I want to make all the objects only move along the 3 hexagon axes, and move a certain number of hexes per turn, so they exist on the grid at each turn (unlike now where everything is unconstrained).
A subtle visual thing that’s annoying me is the outlines of the objects are thinner than the interior hex outlines. Might draw a thicker line around the outside (which could also be used as a more optimal collision object than every hexagon).
I worked for about 4 or 5 hours today, getting to grips with hexes. I used this excellent resource for a lot of help: http://www.redblobgames.com/grids/hexagons/
Features so far:
- Can convert between axial and cube coordinates, and from axial to world coordinates
- Can calculate distance between tiles (how I got the hexagon shape above)
- Can choose whether to add collision polygons for hex tiles
- Can choose hex grid outline width/ colour, and interior texture (currently a circular gradient)/ transparency in super-fast shader
- Everything in the image is 1 draw call (1 mesh with lots of triangles, and one material) – could try and optimise for phones
I am excited about the game but know I can’t work that hard on this project this week. I’ll stop mentioning that now cause it’ll get annoying!