jolle

LD12

Morning folks

I’m up and and working again. Have continued on the roads stuff so that now you can assign workers beyond influence level if it has road connection. Things missing at the moment are building fundament and expanding level of influence. And, like, and AI, decent graphics, multi-player mode etc etc.

I’ve noted that the way worker assignment is currently done is quite bothersome. Not sure how it should be instead. Thinking either that workers stay assigned and can be unassigned, or that one can just select what resources to buy for the remaining workers after having built etc. Currently it works that you select action for each hex during a road, including assigning workers. Then on next round those things are reset.

And now I need to go out in the rain on a quest to buy breakfast stuff.

Tags: log, morning, roads, screenshot

Breakfast

I’m having breakfast.

It’s toast AND A DONUT.  It’s like the most awesome breakfast in weeks! For me.

Tags: breakfast, donuts, foodphoto, log, toast

Icons & Fancier Roads

I’ve added small icons so one can see directly where things have been ordered and where things can be done. Also improved the roads. It looks more promising than it plays though, so not sure I’ll get this stuff to be fun or not. It really needs an opponent to make any sense as it is.

Tags: log, screenshot

UI redesign?

I’m trying to figure out whether I’m to change the control scheme. The current one is a bit of a bother at lower levels and will be a lot of a bother at higher, or so I suspect. Just feels there’s a lot to rewrite, and I’m not sure how I should adjust the tower building. Most this probably doesn’t mean anything yet to you guys as you haven’t even played it. But just so you know I’m pondering.

Tags: log

Troubles

The game doesn’t work as it is. Needs to figure out a design that does. At first I thought (as I wrote) I just needed an slight control change (or a bigger one, but I went for the small). The actual game rules were the same, only this showed that the game was fairly pointless (when didn’t have to set workers every round). One just had to set them up and let the turns pass. Might have been better with an opponent, as then you’d have to figure out most optimal route, but that still wasn’t much work. And the bothersome thing left was to manually build the tower. Tested to remove that too. Made it less bothersome, but even more pointless. So I need to figure something out.

Oh, right, at least I had some candy.

Tags: foodphoto, log, troubles

Progress in progress

I’ve thrown out a lot of code and streamlined (simplified) gameplay. It’s still fairly pointless, but it’s pointless in a much more easygoing and fun way. Which is important.

I just need to figure out some restriction/bonus given by the tower height. And introduce an AI player. And fix some way to solve conflicts. And come up with a goal. I mean a single actual coded goal. I can think of lots of different other ones, like reach certain height in as low number of turns possible, or be the one with highest tower when resources are all out etc.

Anyway, here’s a screenshot. It looks kind of like before.

Tags: log, screenshot

An entry, there will probably be one

I’ve managed to get some game stuff into the game. So it’s possible to play it, and it’s possible to win or lose (only there’s not check for it yet). It’s not overly exciting. Or intriguing. There’s an AI that plays decently if it’s lucky, but almost never wins except if you’re stupid. But it’s something.

What’s left is to fix a few known bugs, add some kinds of instructions, and end of game check, and pack it up. Exciting, huh? I’m quite tired, so I don’t really jump around in joy, but maybe I would have been. Probably would have been more had this game turned out better.

I’ll write about how you actually play in the submission post.

And I forgot to post my lunch photo from earlier. It was lasagna.

And then I just had supper. It was toast.

And no, I did not take a lot of photos of the same toast and use them to post multiple times during the course of this compo. It really was different instances all of them!

Tags: foodphoto, lasagna, log, screenshot, toast

The Tower of You

I’m finally finished with a version that both runs and could be classified as a game. So here it is. All important information is available in the game, really, if you just pay a bit of attention. I might include play information here later when I don’t need to sleep so much.

If you want another screenshot, here’s after having won.

The Tower of You, Windows binary download + D source.

Update after deadline: I’ve updated the above link to include zlib1.dll which was missing. The original package is still available.

Tags: building, D, farm, final, GLFW, screenshot, tiles

The Tower of You – Postmortem

For like half of the LDs I’ve participated in I’ve said or thought that I would do a postmortem. But I never got around to it. Thought I’d do a postmortem this time to make up for it. And this time is one of those times that are perfect for postmortems, for several reasons. Like, I almost failed but didn’t. That’s great postmortem material, you know. But still, I’m lazy, so I’ll do the standard postmortem procedure of The Good, The Bad and The Other.

It’s long though, so be warned! Slightly updated 15th, new text at end.

The Good

The theme. The theme had great potential. Lots of space for interpretations, while giving a lot of ideas.

The D programming language. I’ve used C++ in all other real LDs, and it’s a language that I know very well. It requires no hesitation of thought when coding in, but it does really nag you in some ways. Especially during 48h compos. Slow compiles. Needs forward declares. Manual include files. Lambdas needing boost. Actually, lots of things needing boost. Clumsy dynamic/associative arrays. Manual memory management. Those are the things, mainly. Most of those works very well in D. The drawbacks of using D was, though, that I didn’t know the language as well. But that gave me a great opportunity to improve. And less libraries available, more problems with compiler setup and so on, but I set those things earlier, so it didn’t really matter during the compo. Mostly, in the end, I wrote things as I would have written them in (LD) C++, except there were less corners in the way. I’m definitely using D over C++ in upcoming LDs. Then there’s always Python, of course.

Hex tiles. Tiles are always great. They’re easy to work with, yet providing for many things. I’ve used tiles in all LD games I’ve made except for like one (which didn’t fare so well). But square tiles are a bit boring, and I really wanted to figure all the hex tile stuff out for reasons outside LD, so I thought (once again) this would be a great opportunity to do it. Having figured out the initial indexing and so, which went fairly quickly (as things do in LDs), it was a pleasure to work with. Just keeping an array of references to the neighbor tiles made almost anything you wanted to do easy. And hex tiles looks interesting, and have potential of looking great. All in all, good from all points of view — I even learned stuff. Which I usually don’t from tile code.

The Bad

The initial idea. Not exactly the idea of a tower, and using resources, and expanding land and all that. That is so general it can’t be bad. But in the same way it’s not good without more specific stuff. I spent a lot of time on stuff I later threw out. I can only say that during a large part of the Sunday, I had the same feeling I got when doing my Evening Journey entry. It had an idea that gave the idea of OKiness. But when you got right down to it, it didn’t really work. Evening Journey failed and became a non-entry, because I couldn’t really whip up another game in the set up stuff. Fortunately that didn’t happen here. But anyway. The original idea had workers, and you got workers from the land within the tower radius. This was a rather large part of the idea, and was also thematic, based on the Tower of Babel: the idea was that as the tower grew, more people would become interested and join. Then for each worker, you set an action. Like produce resource from land tile, build road or expand tower. First the worker actions were reset each turn, then when that require a lot of work, I let producing of resources stand, but that only made it more obvious that things didn’t work. Then I tried automatic building of the tower at end of turn with all left workers and materials, and then it became even more obvious it wasn’t going to be a game. It was too complex, drained a lot of time, and didn’t work. Lesson: Don’t start with complex. Because if complex doesn’t work, you have wasted lots of time. Better start with simple, and if simple seems to work but isn’t enough, expand it, or if it doesn’t work, throw it away and try another simple.

Initial controls. This is a bit like the above. Several actions were possible per tile and lots of actions were done in a turn. This required controls for all those cases. First I figured the context info for a tile could have buttons for whatever could be done. Then I got lazy and made it to different keys instead. This got messy though, both code-wise and user-wise. Spent way too much code on it just to throw it all away when I simplified the control scheme later.

Testing and Tweaking. This is related to the above, too. And some in The Other part comping up. I didn’t have time for any tweaking. For example, the parameters to the landscape generator (written almost first) was never even touched after having got a game running. No balancing, especially in levels. AI could be drastically improved too. And I had no one else test it before I submitted (which provides point below). And so on. This all stems from time issues, which stems from the above points.

Non-standard libraries in non-standard bin paths. For some reason zlib1.dll was required for running the game exe, but I never noticed. Was simple to fix when reported though.

Divide by 0 error. Reported by one user, but I have no idea how it can happen. Searching for all divides in my code gives no instances where it should be possible. Which leaves library bugs or compiler bugs. Yeah, D still have some problems in those areas.

Documentation. I didn’t really have time to write any. I was so tired when it was all done, and I had to get to sleep so I could go to work without problems the next day. Time issue. Complexity kills time. Remember!

The Other

Graphics. The general idea for the graphics I think was great. I really had great plans. But due to time issues the placeholder graphics were left in the release. I just never had the time to redo them. Yet the placeholders didn’t look too crappy. Which is perhaps why it was left in for so long. This is perhaps lesson to make placeholders more ugly so you just have to replace them.

The ‘last minute’ gameplay, controls and AI. Having a way too complex UI and ‘game’ that didn’t work, I did a last minute fix. I used most of the basic stuff, but drastically change controls and rules, and threw in a simple greedy/random AI. Workers were dropped completely. And instead of producing and consuming resources, the tower simply requires a certain level for a certain level, and the resources were simply set by what land was controlled. Actions were reduced to only one: building. This is mostly road building, but there’s also expanding the fundament at one point, and also, of course, building the tower in the first place. The good thing with this was that it solved the controls. You just had to click where to do your action/build. This was also the complete turn, so no need to explicitly end the turn. I did most of those before adding an opponent, and by itself it, too, was empty. Naturally. Adding a simple AI helped a lot. But at first you just won by just grabbing as much land as possible and cutting the other player off. So I figured I needed to stop early exploitation like this. This was when the possibility of taking over land was introduced. Based on the tower height and the distance, a simple check was made. Meaning if you expanded widely before having a high enough tower, you could just be cut off. And suddenly there was a game. It was not a great game, and I wasn’t overly happy with it, but I felt it really could do as an entry, and that made me happy. Having looked at the initial reception now afterwards, I’m happily surprised, because it seems better received then I would have thought. I liked it better when replaying it a little today than I did Sunday night before submission. Still, as I mentioned, tweaking never happened. The gameplay has severe limitations. Which is why this isn’t on The Good.

Food-photos. This is kind of fun, doesn’t take long, but it’s starting to feel like an unnecessary distraction.

Preparations (not code stuff). I was busy doing other stuff until the actual compo begun. Which means I didn’t shop the day before, so I had to go do that on Saturday. I also forgot to buy everything I needed, so had to head out on Sunday too. And on Saturday I was also doing washing. Why am this under The Other, you ask? Well, while taking some time, the time taking are made up for by getting a slight break which opens the brain for some other thoughts. I feel it actually helps.

No sound. The game type doesn’t really require much time, which is the good part. The bad part is, of course, there being no sound. Several reasons: Lack of time, lack of microphone, lack of having tested sound lib for D on beforehand.

And I believe that’s it. Sorry for this wall of text and it’s rambly nature. I blame not really having written anything in a while. And now I got some toast to eat.

Small update: I realized I hadn’t mentioned this. So. One thing that was originally intended was canals. Canals were supposed to be built from fresh water lakes and used to give water to unwatered fields and and clay tiles, to make them productive too. There were also supposed to be boats for fishing further from the coast. Didn’t have time to implement it for the first idea, and didn’t have time to figure out how to get it to work with the second idea and UI.

Tags: postmortem

LD13

Cruel World is Out to Get Us All

I was hit by the flu yesterday. So instead of setting up my coding environment and libraries and stuff (as I have a new computer), I was instead busy not doing anything but being in pain.

Then today, it turns out my favorite theme won. Great timing. Fever inspired game design and programming is sure to be a real winner. Might actually work. A bit of a problem that it feels like my brain is some distance away from me, though.

I’m bitching too much? Well, you would too.

At least I won’t have to spend time on food photos.

Tags: bitching, fever, flu, log

Edit Mode

I finally got around to create a primitive edit mode. So now I can start building the level.

A shame I have no good ideas for it.

Tags: editor, journal, screenshot

Mr Spider and the Search for Evolutionary Powerups

Here’s my entry. You control a spider that is in dire need of getting more legs. Sort of.

Download
Windows 32-bit binary with D source

Instructions
Collect all powerups to complete level. This will give you a time bonus.
If time runs out or if you fall outside the world, the level ends, but you are left with the score you got for any collected powerups.

Controls
Enter to start game.
Esc to quit (also at level over etc).
Left click/hold to set target. Speed based on distance.
Right click/hold to set target and jump.

Hints
You need to walk slowly to round edges.
You can only sort of jump away from the current surface you are on.

Source
Some source was previously written, but only sort of texture loading, font rendering and some init code.

Uses GLFW, FModEx, sfxr and some other stuff.

Also, note that the title bar is a total lier. The game did not take 32h to make, but 40h. That math is tricky stuff.

(For the framework stuff, the score is read from and written to ‘score.txt’.)

Tags: D, final, fmodex, GLFW, opengl, screenshot, spider

LD14

Doomed Forest

I spent the morning not doing anything, most of the afternoon playing UT2004 and Red Alert 3, but then maybe 2.5h ago I figured I should actually try doing anything. So I started out drawing some graphics (mostly vegetation sprites). Then I coded a little to get a random forest sort of thing.

And it’s doomed, you know. You are going to convert this cute little forest into a dark waste. At least, that’s the idea. We’ll see.

Tags: doom, forest, journal, random, screenshot

The Dark Tower and the Tree Zappers, Morning

Good morning. A little update. Yesterday I added The Dark Tower (player starting base) and tree zappers (drain trees for power and for simply draining trees).

After that, I wasted a lot of time on how the wall of decay etc should progress, only to ending up with something that wouldn’t work. So I’m still thinking about that. I could spend some time describing what didn’t work, but I’m not going to. Instead here’s a screenshot showing how the decay thing for the ground would look (the tree decay in this shot is just for testing purposes).

Now I have some thinking and showering to do. And breakfasting.

Tags: dark, journal, screenshot, tower, trees, zapping

Butterflies!

They look better animated! Also, the tree zapper aren’t actually supposed to attack the butterflies.

Tags: butterflies, journal, screenshot

Towers that Attack, Bug

Battled with a stupid bug for maybe an hour. Turned out I had written an asymmetrical comparison operator which crashed sort. I’m not so great at debuggin D yet, at first I didn’t get the debug info, and when I finally did and found a debugger, it wasn’t so helpful. Funnily enough, I ended up solving it with traditional writefln debugging instead, which just took a couple of minutes. Hmm..

Anyway, what I had done before the bug was adding attack towers, which charge up blobs of darkness and fire them at the butterflies.

It mostly just looks like chaos, becuse I just randomly place everything.

Tags: attack, blobs, bug, journal, screenshot, towers

Something of Doom Something Something Non-entry

Right, so I decided to post this as a non-entry. Reasons include laziness and stuff. Here’s my last progress shot re-used as the ‘final’ shot.

While ‘playing’, press keys 1-3 to build stuff:

  1. is a tree zapper, it gets you power for nearby trees. It costs 15 power.
  2. is a mini tower of darkness, it creates darkness nearby. It costs 30 power.
  3. is an attack tower, it shoots blobs of darkness at the poor butterflies. It costs 50 power.

To goal was supposed to be getting everything dark, sort of. There’s not actually any winning condition, but there’s not much other things either, so that’s all right then.

Don’t resize the window (don’t tell me I didn’t warn you).

Download Something of Doom Something Something (Windows binary, uses OpenGL, should work in wine).

Tags: D, doom, GLFW, non-entry, opengl, Windows

LD15

Cave Thing – Water and Rock layers

Nothing too fancy yet, most time I’ve been working since the last log entry was spent on writing some pretty bad water simulation stuff. Just now added the rock layer as well. Still not sure what the game will be, but it’s getting closer and closer to involve burrowing. From caves.

jolle_cave_progress_02-water-rock

Also got the news that my sisters are moving this day, so will have to spend some of the afternoon and evening carrying stuff.

Tags: burrowing, cave, rock, water

Cave Ninja – Tiny Ninja be chargin’ his digger weapon

Since last post… I first worked on creating a player character, including movement and collisions etc. It’s a tiny ninja, because everyone loves tiny stuff and ninjas.

Then I worked a little on weapons.

Then I helped people move four almost four hours. This helped the LD progress a lot.

Then I worked a little more on weapons. And added making holes to the dirt.

Here’s a screenshot showing the tiny ninja charging his first weapon, the digger only weapon.

jolle_cave_progress_03-diggerweapon

Tags: burrowing, chargin, digger, ninja, tiny

Cave Ninja – Dwarf Pirates

Now there’s enemies (at least superficially so), and they’re Dwarf Pirates. Dwarf Pirates often dwell in caves, and are the only real natural enemy of the Cave Ninjas.

jolle_cave_progress_05-dwarfpirates

Tags: dwarf, enemy, pirate