Tower Builder's Time log

7:19 pm Done.

6:43 pm Almost done, almost done...I'll put up a final build once I put these sound effects in.

1:58 pm

Going out for a break. Newest build is functionally complete.

1:18 pm Almost done with gameplay. Timer doesn't cause a game over yet. After gameover: show title screen, highscore. Write music.

10:58 am

I'm going to start posting builds now. Tweaked the pieces a little more. Also made dropping fast/fun.

10:33 am

I had these nightmares last night about staying up forever, coding and coding until this game turned into a total mess and I was in tears. Fortunately I managed to reassure myself into some decent sleep, got up, and the code was fine.

Now you can finish sections by dropping nails when they appear. It has a nice "spreading" effect. Also put in a few more types of pieces(needs some reworking so that the game isn't too easy), added a "drop" key(which needs a little more work to be right), and fixed a bug with piece corruption from the "push-down-the-playfield" function going out of bounds.

12:12 pm

Some significant improvements: final/near-finalized piece movement and rotation, "scroll upwards" effect, pieces picked out of queue(need to display that...later). I think I'll relax a little and go to bed.

11:20 pm

8:22 pm

I can't wait to finish this so that I don't have to work with C++. Part of that is probably just discomfort with the setup, but now that I've gotten some work done I can better recall why I started using Python so exclusively for the last year-and-a-half. Mostly it's type declarations that are the issue at hand; wrong types, inflexible types, type parameters...it seems like the cases where I have to go back and rework types far outnumber the cases in Python where my type usage gets mismatched.

I have some moderately interesting graphics put together now, but I'm refraining from a screenshot until the gameplay is also working. Frame limiting feels less intuitive with plain SDL; I don't have the Pygame clock object to slap down and say "tick at 30fps," instead it looks like what's easiest to do will be something where the gameplay waits n milliseconds. For this game that might be better, since as in Tetris the blocks fall faster with each level yet the player wants to be able to move pieces around as fast as possible.

1:13 pm

I must have done something wrong cause my profile disappeared :P But anyway I decided that for this Ludum Dare I would do something in SDL/C++ instead of Pygame because I always use Pygame and I wanted to make things a little difficult.

What's the game going to be? Tenative title "Tower Builder." In typical falling-block fashion, your objective is to "grow" a tower. Working out the gameplay has been pretty challenging, but I think I have a plan now:

There are two kinds of pieces, girder pieces and nail pieces. You rotate and stack the girders Tetris-style(possibly* including line-clearing), but the interesting bit is the nails.

* When a nail hits a girder, it "completes" the construction by spreading itself first left-right, and then downwards following the girder arrangement. That is, left-right endpieces only spread completion to other left-right endpieces and downwards to top endpieces. So the idea is not just to pack your girders together tightly, but to score big points by arranging things like a real building, with well-defined floors.

In each level you will try to complete a certain amount of tiles within a time limit, rather than hitting a "ceiling." Instead, the tiles will simply shift down a row when you stack high. It wouldn't make sense to do a ceiling in this game, since the idea is to make a really big tower. Emphasis on growth* here :) I don't know if line-clearing will add anything significant to gameplay so I'll test it out and see what happens.

Progress seems to be pretty good so far. I downloaded and installed the Dev-C++ package and SDL. Things compile. The screen shows up. I have some of the gameplay code for testing collisions and lines in there. I still prefer working with Python, but I expected that :)

Source: ludumdare.com archive

Found a bug?
Tell us on Discord