Started 3 years ago (2016-05-19T09:00:00Z). Goes forever.
Do something, anything, related to the development of your game every day!
"Great things are not done by impulse, but by a series of small things brought together." - Vincent Van Gogh
"Inches make champions." - Vince Lombardi
So, when jumping back onto the project this morning, I decided that before I can do any more work on that spider, I'll have to sort these graphics out.
So, I spent the day manually downscaling each sprite (don't worry, there weren't many) from around the average 32x32-ish to about 16x16-ish. Large enemies go up to 24x24. I'm really quite happy with the result and the overall look of the game as it is.
Tomorrow, I'm gonna work on the spider enemy.
So, as planned, I got to work on the spider. Turns out that is a little bit more work than anticipated (as is often the case with gamedev) and will have to continued tomorrow.
I have also been thinking about the way the game should look, messing around with resolutions. It was previously 800 x 600, but I figured since the game sports a cast of very small bugs, the resolution should be lowered to 640 x 360. (thus making it widescreen, too)
Still thinking about it, though. We'll see.
A couple of days of relaxing have gone by.
Today I set aside the project "hexgrid" and switched to my old pal "geogame". The game currently has no game logic at all, since I'm focusing on the infrastructure first.
As the title suggests, today I laid down the foundation of the go server, which is going to sit between the database and the game client. Most of my effort went into understanding how to structure the project. From that, I then went on and channelized it into a docker image.
Let's see if next time I manage to write some go code and make it do something more thrilling!
First thing I did was go back and do some touching up on the player sprite; It looks a little better now. After that, I drew up a simple spider sprite and thought about how this spider will behave in-game. Came up with something I like, did some of the implementation, and that's pretty much it.
Tomorrow, I'm hoping to do the bulk of the implementation of the spider, and if there's any time, do some extra sprites and a little animation for it.
Not much coding or design today, just working on the art for my main character. I have made a sprite which I can stand for a while. It was quite nice to take a break from all the technical stuff for a bit.
Tomorrow, I'm gonna begin designing and, at least start, implementing the first arachnid style enemy.
Went ahead and did some enemy stuff, then checked up on code and did some improvements and such here and there. The total lines tally up to some 1000+, which may seem meager to some, but I don't think I have written so much in a single program.
I also spent much of day practicing art skills.
Today I went on and got to a point where I instantiate each hexagon independently. Such a feature lets me build the game grid not as a sheet of sprites, but as a grid of objects instead. This ultimately leads to the ability to store the grid data (technically, a level) as a 2d array. Even though serializing the latter is not a priority, now it has become a feasible possibility.
The new tile sprite didn't inspire me enough. Next time I'm gonna think it through and replace it with something different. Till then, good night! 🌖
A couple headaches later, I finished the collision. After that was done, I implemented a super simple enemy health bar and finalised various other parts of the enemy class.
Tomorrow, I'm gonna implement some stuff in specific enemies that was left undone, try to come up with a player design (visually) and then, if there's time, go back and check code and do some debugging.
Asides from tuning the edge pan velocity, the only thing I did today was scaling down the resolution. The manually drawn grid cells create all sorts of artifacts now, but I'm sure that, as soon as I switch to sprite tiles, everything will look alright.
Tip of the day: you wanna save yourself some headaches? Remember to set imageSmoothingEnabled to
false every time you resize the canvas!
That's all for today. Next up: play/pause state; basic tiling.
Unfortunately, it looks like the native
drawImage method, which I much-praised last time, also acts as a bottleneck to the whole application. I'll surely need to cut the resolution to a fraction of the window size, probably to a fixed one. On the bright side, that's not a big deal, given how young the project is.
Speaking of bright sides, I've finally got to the point where I move the camera instead of the grid. Borrowing some code from my past self sped that up a lot.
Next up: lower resolution; pause/play states.