I have finished it. And on my birthday, too . What a wonderful gift to myself
After not having that much free time on the weekend and during the week, I finally managed to closed the deal (more or less) on the strategy game. This concludes our challenge. Sure, the last game took longer than one day, but I have finished it, which is most important after all. Giving up is never an option.
It's not fully equipped, there are bugs, there are features missing (intro/help menu, display of attack range), but the game is playable, from start to end.
So, how did I go around creating it? As this was the biggest game, I had to combine everything I learned to make it happen. I've started, as always, by drawing some characters and textures to get me in the mood, trying to figure out what style should I go for:
During that phase, I laid out the game design in my head. I decided that it would be a turn based tactics game, similar to XCOM. For that kind of game I needed couple new things:
-Pathing algorithm (I'm using A*), on which I spent majority of the first day, setting up the tile system, character-tiles interaction. It still doesn't take into account many things, so opponent units can stack themselves, and the AI is wonky at best, but we'll come later to that.
-Menu/notice system: the game was complicated enough that the feedback that can be given by simple icons was just not enough. I wrote a tiny script that displayed overlaying menus and notices, and shaded the screen using dithering (later on I decided that it was shame I didn't use same thing for the floor hilighting system
Second day I have spent mostly connecting the pieces I wrote earlier, and adding AI.
Holy shit, the AI.
Now, I had basic pathfinding, but it was written in the wee morning hours, after loooong day, so it was far from perfect. My code started getting more spaghetti like, and I had to write ginormous state machine to govern the AI. The turn based system support was also something that I haven't had prepared place in code for the start, so it needed to be hacked in by tons of bools and timer variables. The pathfinding worked only on tiles, checking if they were passable or not, didn't check if there were other units already there. Picking nearest unit to attack also didn't work that well. The AI would be cruising in same, A*-predicted lines as soon as it saw you, so they'd form nice conga line for your skeletons to shoot.
On the other hand, it worked well enough. It could kill the player, and that was fine enough for me.
Last hours (over the week, like I said - had to stop developing game over the weekend) were mostly making sure that the game is actually playable and some early polish.
HERE'S THE GAME!
Little bit about it:
Select unit with left mouse button, move them within their move radius with right mouse button, you can attack units you're next to with your melee warriors, ranged warriors can kill units within their range.
Middle mouse button hold + mouse move or arrow keys move the screen.
Back/Next icons jump between your units.
Done icon ends your turn.
Cast icon lets you summon units and cast Heal.
Floppy disk icon lets you enter options (restart only in this version)
Story fast version:
World is heading downhill in the Fantasyland. Feudal lords are oppressing the common folk, and abusing their power to do 'good' deeds, that are only good for them. One necromancer has had enough, and decided to wage war on the Lords. With his awesome powers he tries to overcome the obstacles and win against the evil knights.
This is a turn based tactics game. You control a squad of units, each of which has following stats:
-attack, governing damage it can deal
-defence, governing how likely is it to defend the strike and take minimal damage
-health, when this runs out, the unit dies
-speed, governing how far can can it move every turn
You, as the necromancer, have spiritual energy. You start with 20, and can use it to summon more army, and empower the one you have. You replenish the resource by killing enemies.
-knight gives you 1 units of spiritual energy
-goat gives you 2 units
-Lord gives you 10 units
Killing the Lord also ends this version, so that doesn't matter, but in full version, where you would have to defeat many lords, that would be important.
You can summon 3 kinds of units:
1) Ghost, your basic scout unit. Moves quite fast, is cheap, and has average health, but poor attack power.
2) Skeleton Archer, your ranged unit. Can shoot units at a distance of 4 squares. Hits decent, but has poor defences, needs to be kept out of front lines
3) Zombie, your toughest warriors. Slower than other units, but pack quite the punch, and are very tough.
And that's it for the game.
And here is a list of the entries in the series:
Last Day summary and Challenge Post Mortem
Ludum Dare preparation
Day 6 summary
Day 5 summary
Day 4 summary
Day 3 summary
Day 2 summary
Day 1 summary
Series kick off
So, how about a little summary of the long week?
7 Games in 7 Days Post Mortem
The week was tough. Like, really tough. But I got through it, I managed to refresh my skills, and I am looking happily into my future as a past time game developer. Let's see what I learned.
General lesson was, as expected, don't overwork yourself. I could've finished the Strategy game if I've crunched hard, but I'm happy that I didn't. 2-4 hours every day of afterwork development is good enough to make a game in short amount of time, and way better for your health and personal life.
- When I was really in the zone, I lost track of time. I spent 24 hours straight in front of computer developing the Dungeon Crawler. That didn't make my girlfriend happy, and when she's unhappy, that means something's really wrong. She knew that I was preparing for the LD, but whole week of coming to bed later and later every night did put a strain on the relationship (nothing serious, but really REALLY unnecessary and whatever the earnings, not worth it).
- The tempo. I had really tough week at work, and the challenge meant I didn't get even one day of rest, but rather not sleep till 3am+ every night. My sleep schedule started slipping, and last day I pulled an all-nighter, going to sleep at 1pm. I was recovering from that most of this week.
- Art before coding. Sure, it might've helped me stayed focused and interested, but I was supposed to write games, and while first games were fast enough, starting from Adventure Game, the art took WAY too big part of the game development time. Because of that, I had only one drawn screen in Adventure Game - I noticed how late it was, and I was still playing around with art, not having any gameplay to speak of.
- I did make 7 games. That's a massive boost to the self confidence. I haven't really finished a personal project in ages, so when I look at these games, I feel like I can take on big challenges again. I even feel like picking the games (especially Dungeon Crawler) and expanding on them, possibly turn them into full products.
- I haven't given up on the challenge two times: first, when I worked really late in the night and didn't finish any real game (with the Racer), and second time, with the Strategy, which I had to put off in time, due to work and personal issues. I have continued the challenge after the first, which was really discouraging, and I didn't give up on the second till I decided it was 'good enough', even though the 7th day (or, indeed, Ludum Dare) was long over. I was rewarded with huge feeling of satisfaction for both of them.
- I really got from 0 to hero, engine knowledge wise. First game was a really bad clone of Asteroids, and last game was quite complicated strategy game, combining every single lesson learned so far.
- Art before coding. Sure, it might've stopped me from doing awesome stuff, but when I was doing them, my brain was resting, I wasn't thinking about solving some hard problems with code, but rather looking at happy little pixels.
- Choosing the VIC-II palette was great. Limitation has turned into inspiration. Less colours make my sprites look better and more interesting. Working on them and trying to figure out how to achieve certain effects was FUN, with capital F, U and N.
- 7 different game genres. Each day new, exciting set of challenges waited for me, and that at least a bit alleviated the challenge fatigue.
- Tools. As the days progressed, I got more and more skilled in using GraphicsGale and Blender. That helped me every next day, when I had to do more complicated stuff in same percentage of development time.
- Simplicity. Each game was designed to be as simple as possible, and for the most part it worked out really well. I rarely if ever had to cut features, and there was enough time to implement full games.
- SUPPORT OF THE PEOPLE: thanks to people that were interested and commenting, I found strength each day to sit in front of computer and continue coding, for the 16th+ hour that day. Without you guys, I would have never managed. Thanks! Really, that meant a lot to me.
And on this, I will end. But keep your eye out on the lookout for more projects that I'll be working on. I hope you'll enjoy them as well.