LD12 August 8–11, 2008

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

Timelapse vid for Owliver

Here is my timelapse video.

A few epic moments: the big ABBA chat (0:38), the epic failure of creating the level graphics in Blender, then Inkscape (2:48), the time when my friends came over to play Armaggetron and Jump’n’Bump while I was drawing the levels (4:34)…

Soundtrack: ingame music + surprise song from a band that enlightened the IRC channel with all its splendor…

http://www.youtube.com/watch?v=j1PSloOTokg

Tags: timelapse

Comments

12. Aug 2008 · 13:47 UTC
Yeah ABBA! Cool timelapse!

AkinTower – Time Lapse

The day before:

The competition have started I was sure that the theme would be evolution, I went to sleep early with a mind full of ideas about the theme, but when I woke up, which was at 6:00 at the morning a surprise striked me ~ oh boy! its “THE TOWER” >_<

So, it began:

I love tower defence games so I have decided to make a tower defence game about a very unique character, Akin, which is a character I made, he came to me in a very strange dream including nika nad well what ever… >_< I made a stuffed doll out of him which you can see in the game and in my journal early photos 😀 I made a doll out of him because everyone said that its not possible… weaklings… anyway his a cool character and he was fiting the game – bringin it abit of originality.

 I was thinking about using him in the game while taking photos of my work space hhh :) probably because he took over my keyboard 😛

First thing I’v done was to draw the enemy… then a test map, after doing that I wanted to start abit coding, a problem apeared, Fenix using Bennu (game compiler) didnt want to show me graphics no matter what >_< I strugled with it for an hour and in the end I managed to solve the problem by deleting everything @_@, then I started coding… coding and drawing arrows and then Akin him self and the mouse pointer and in this day I’v managed to make great progress 😀

In order to stay alive and awake I was drinking energy drinks and listening to 1576 heavy trance music… and yep it helped alot! I had to sit and eat with the family and lose another hour and I had to drink some vodka too 😛 well that wasnt a problem hhhh any way…

First day was great!

final day

Was in panic to finish the game… time is short and I have much to draw and code… I’v drew a new background and fixed many isuues with the shooting and the bounchinf fireballs and added 2 more enemys that I was thinking about yesterday…

now grandparents came and again the family sits togever and eats… again drinking vodka while on energy drinks XD ahhhh… what was I  thinking… I was coding from tierdness >_<, firmly and realy fast I’v took a photo of my self with my two trusted axes and photoshoped it… and realy fast put it in the game… damn! my levels aren’t implimented! :O okay… realy realy fast I’v managed to write a spawn algorithm and had to disable a super attack >_< because I had no time to code it… baaa… I didnt have time even to put sounds which I had allready recorded with the music >_<

oh well… the panic was worth it… I was so dead tierd I had to go to sleep… and I was so willing to sleep that I couldnt fell a sleep >_<

11 min left

I could berly upload the game in time thanks to Ghotistix that helped me upload it 😛 he came just in time hearing my prays for help XD then in 3-5 min I had a post with a screenshot taken realy fast and some text that was writen so fast that It still has mistakes XD oh well hhhh

any way thanks for reading this and playing my game :) wish you to have fun and I’m thinking og improving it because I realy like this game 😀

           see ya dudes!

Tower Infinite – Post-mortem

Ludum Dare 12 is the first of this event that I have participated in, and I must say I had a lot of fun making my game for it. I learned a few things about game development in the process, many more to do with the actual process rather than technical details, but some there too.

What Went Right

  • Planning – Once I found out the theme, I took a large portion of Friday night to plan out the concept for my game. It took a little while, but once I decided on an infinite procedurally generated tower platformer, the technical gears started turning, and I quickly formed a lot of the ideas for the implementation.
  • Time Management – After I planned out my game, I found that I didn’t have any trouble keeping up with my goals in time. Those goals that I had imagined were realistic and doable. In fact, I ended up releasing my final version about 5 hours before the deadline.
  • Implementation – On the programming side, I mostly used techniques that I was familiar with, never branching out into the particularly difficult or unknown in ways that would cost me large amounts of valuable time and effort. As for media creation, while it is not exactly a strong point, I used some clever methods and helpful tools to create it, so it was not heavily time consuming, and Tower Infinite ended up with quality better than the usual programmer art (I hope!).

What Went Wrong

  • Deficiency of External Playtesting – It was unfortunate that I failed to get enough feedback from players other than myself. I knew exactly how the game worked, but such is not the case for all. While this did not lead to terribly awful problems, I could have handled it better and probably submitted a slightly better game.

Conclusion

Overall, I think things went fairly smoothly with very few exceptions, which is particularly nice for me, this being my first Ludum Dare. I definitely enjoyed it, and I hope to do it again if I have the time for it.

Tags: LD #12 - The Tower - 2008, postmortem

Treasure Tower post-LD fix

Some people wrote that my game was too slow, especially in the beginning of a level when there are many crystals. I found what was causing that and fixed it. Here is a new version:

http://www.wieringsoftware.nl/ld/TreasureTower/PostLD/

Tower Infinite Post-LD Tweaks

This is version 1.01 of Tower Infinite that fixes the one main disappointment that people have had with the gameplay, which is that the recharge rate of the jet power was a little too slow. Here comes the link:

Tower Infinite v1.01

WeatherTower post-mortem

Postmortem:

So I feel fairly recovered from the weekend.  I’ve played and reviewed a handful of the entries, and I’m pretty impressed by a lot of them.  So, here are my postmortem thoughts on the whole deal.

The General Could-Do-Better’s:

I had spent about a week in the month prior to the compo dusting off my aging C skills in preparation.  I should have spent more; once I got past doing the familiar my speed dropped considerably, and I lost a lot of Sunday to frustration.

Better sleep strategy.  I got a decent 7 hours friday night, but saturday night was only about 6.  Since I was extra-tired from coding all day, that 6 hours was not enough.  Next time I should try for a little less sleep friday night, and MORE sleep saturday night, to refresh.

I had no food on-hand.  Although most food places are very near the apartment, it still ate up two hours or so over the course of the weekend.  I was planning on going to the store before the compo, but didn’t get the chance.

Game CDB’s:

I didn’t have a clear goal for my game.  I knew what elements I wanted to incorporate, but not to what purpose.  I was aware of this the whole time, but I did not get to a point where I decided it was definitely a problem until it was too late to go with my backup plan.  The result was an unfortunate deviation from my personal goal of Keep It Simple.

Sound.  I lost a lot of motivation by sunday and just didn’t have the desire to add sound or music.  I made a few effects that even shipped with the package, but are unused.  Next time I’ll put some more early focus on this.

More Feedback.
I spent time making different states of decay for the towns, but not stages of growth/decay for forests, farms, barrens and clouds.  This would not have taken much extra time, and is a complete product of my laziness.

General Feel-Pretty-Good’s:

I had a lot of good prep-work done beforehand.  I had a project backup system in place, a framework for the basic allegro system, Makefiles prepared, etc.  This helped me focus on the GAME at the start rather than the tedious bookkeeping stuff.

I did manage to stay very focused for the majority of Saturday, which I’m proud of.  Watching my timelapse I realize how few breaks I took during that first 24 hours.  A+

I Actually Finished.  This is big.

Game FPG’s:

My graphics came out a lot better than I was expecting.  They had a definite old-school PC RPG feel to them, like Ultima4 or 5.  My Tower graphic is pretty rawkin’, and a definite highlight IMO.

After taking a day away from it and playing it again today, I feel that the overall concept has potential, if I get more concrete on goals.  I actually had some fun playing it and trying to protect a town for as long as possible.  I may revisit this concept in some form down the road.

All in all, an enjoyable experience.  It definitely gave me the urge to make another game.  That’s pretty cool!

Tags: postmortem

WeatherTower – Some additional notes

A.  There is no win condition.  You play until the towns die.  The more life a town has, the more mana and score you gain.  As a town gets weaker, it provides less score/mana.  So it’s really just a ‘high score’ game.

B.  Can’t test on every OS.  Worked on Slackware, win xp, and Ubuntu.  OS’s that have problems playing it (such as Fedora 9 or Vista) may just have inherent problems to begin with.  Both FC9 and Vista are… well, you know.

Tags: notes

Oups

I just realized I misspelt my name on the menu screen in my entry. :(

Tags: LD #12 - The Tower - 2008

Comments

13. Aug 2008 · 18:34 UTC
lol

Answering questions

Ok, people seem to have been asking a bunch of questions, so here are some answers. You have to collect all 7 of the keys. The key that’s backwards kills you. That’s all.

Demonic Tower Postmortem

Time for some thoughts. Check them out below the cut.

Making The Game

When I first saw the theme The Tower, I thought of the Tarot instantly, but I’m crazy like that. It’s not just Tower, it’s The Tower. An archetypal image of doom if I’ve ever heard of one. So, the game design was pretty straightforward to me. I took my love of games like Magic: The Gathering and turn-based strategy and combined them into one overbearing strategic puddle. When the theme discussed was evolution, I was considering an evolving space-shooter, something like a combination of Gradius and Warning Forever. I kind of wish I had kept thinking along those lines.

The programming was really simple, but time consuming; there are 38 unique card effects. Some of them are still bugged (Knight of Cups), however, I got most of them debugged in time.

Lessons Learned

In general, I think I bit off just a little more than I could chew. I love this game idea, and I am going to continue with it. But I had to make major sacrifices to get it done in 48h. The idea is simply too big for a compo like this. The interface sucks. A lot of status effects aren’t displayed at all, or are displayed with different names when they wear off. Combat is not at all balanced (defending is unbalanced, which makes the entire suit of shields sort-of suck).

Most of this was a concious trade-off. Once I was locked into doing a game with the Tarot, I had to implement ALL the cards. A lot of time was taken just coming up with unique effects for each card. After that and the implementation, I had to make a lot of sacrifices in usability, display and general game mechanics.

Some of the things are fairly easily fixed. The player phases (Move and Attack) could be combined into one phase; when you move into an enemy, that could trigger an attack. Since you have the option to end your turn at anytime, it would be essentially the same thing as we have now. The reason the enemy phase is split up into two parts is so that you can play cards like “The Moon”, which reduces all damage to 0, after an enemy moves next to you.

But I think in general the reliance on phases is a bad holdover from physical card games. This should be transparent to the player. I think in the future the enemies will move and attack one at a time, but there will be an “end turn” option which will yield to all events until your next turn.

The ultimate example is that there’s an enemy in the game which is never fightable! You see it in the first and last levels. I simply did not have enough time to balance the game to the point that I would have wanted to put it in. The original idea was to make TWENTY levels, so that by the time you were fighting this thing, you had raised your stats to the point where it was beatable.

The Future

I’m happy with the game and how it turned out. I think it’s still a good idea. Despite the trade-offs I had to make, it’s fun and when you beat the harder levels, even if it’s just by luck, you feel good. But I think if I could do this LD again, I would make something else. I’m definitely going to continue with this game; I’ve been working on moving things to OpenGL so that I can do some cool animations with card flipping and playing, and so on. I just wish I had started with something that didn’t lock me into a tedious task of coding 77 cards.

I hope you had fun playing it and you will leave me ideas for future versions of the game.

Owl Tower Quest Postmortem

It’s now Wednesday, and I finished my game Sunday evening. I’ve had a few days to think about it and my experience.

What went wrong

Graphics – I didn’t have a plan for creating graphics, nor a pipeline for doing so. I ended up finding and using a for-kids drawing program, which was just as advanced as I needed, but if I had put more thought into it I could have tried to create something more original.

Preparation – I had used Java2D to do some moving of an image on a tiled background, but I stopped short of using the color key to make it transparent, (wrongly) assuming it would be trivial. I still don’t know how to do it, and I wasted about an hour trying to get Java to make the background transparent, when I discovered that if I saved it as a gif, I could make it transparent using Gimp. That was work that didn’t need to be done during the competition, and it burned me out on learning for a few hours.

Motivation – I don’t know what concrete steps I could do to improve this, but once I had a level up that mostly worked, I had very little motivation to improve it. I was concerned about getting something playable enough to enter, so when the keyboard controls were easier than I expected, and the graphics rendered fine, I was not prepared to tackle the next hardest problem, because I couldn’t see what it was. I now wish I had a project plan that prioritized tasks and had estimates of time and effort, because it didn’t seem worth it to do better graphics, or add more levels, or add more variety since it was such a relief to have gotten that far.

In that sense, I definitely could have worked more on my entry, but I ended up taking back some time that weekend for doing real life stuff. I don’t regret it, but it did make my game less finished and less fun.

Not taking hard problems seriously – I don’t know why, but I slapped in collision detection long after I put up walls and the player. This was dumb, and my solution was even dumber. I strung a bunch of if-then statements together, and instead of making sure a move was legal, I just undid it in the collision code if it turned out to be illegal. This resulted in passable, but buggy collision detection, and only got worse when I added stair cases and vertical walls separating floors and doors. It also made the player jumpy near walls, since the player was moving, possibly being drawn, then moved back when the wall was determined to be hit. I should have wrote tests for what needed to happen, and then write a sensible way of dealing with obstacle management.

What went right

A good start – I made my design quickly, and sketched out an entire level before I started coding. Then, when I started coding, I didn’t need to make design decisions that could slow me down. I had the tower up in about 10 minutes, with a moving player who couldn’t pass through walls in another 30. That was great motivation, and allowed me to incrementally improve my game, which was great for my morale.

Preparation – I used Java2D a few times before, but in the 3 weeks leading up to the competition, I made 3 separate projects with it. This really helped me understand what things were doing, rather than going the cargo cult programming route. Also, eclipse was ready, I had a basic Java WebStart XML file so I didn’t have to mess around with it, and I was loading my resources in a WebStart-friendly way. All in all, the time between my first successful build of my game and my first successful WebStart deployment was very small.

Conclusions

I have definitely learned that it is far easier to improve upon an existing product than to nitpick about design and implementation before anything actually exists. So, I am a convert to rapid prototyping.

Overall, I learned a lot about making a game, and my code is now a perfect candidate for some serious refactoring and test writing. I’m looking forward to improving my entry, and building on the idea.

Tags: postmortem

Crystal Towers Postmortem

Okay. Well first two days i was mostly getting feedback and trying to restore my brain to usable state 😀 Yesterday started to implement all changes that i hope will make game more fun.

You can still access old version and sources trough links in my Final journal.

And here is new version:

Changes:

Movement – now you can speed up block and it does not loose speed when you release the key. Makes it easier many ways as far as I can say in :) Try it and say what you think.

Rotating – I finally understood how to rotate block on precise angle. So now blocks rotate to 15 degrees per one press or 450 degrees per second if you hold the key. May be I should make rotation slower but seems almost right now.

Block spawning – now blocks spown with random angle applied to them. Well not really random but n*15 degrees. I didn’t liked what I saw in replays so far. People preferred not to rotate blocks 😀 And I don’ like that 😀

Next thing about block spawning is that you don’t lose control over block instantly. You loose it after a second. So you can still try to fit it better or even push other block where you want them. Then also all blocks friction was raised making structures more stable. But until you loose control of block its friction and mass are very small so that you could slide it in to tight places without fearing to push other blocks too much. After you loose control over it friction is turned on and mass is set to original one.

Replay code – after remaking controls i remade how replay code is encoded. Before size of replay was 28 bytes of header with game global info like random seed and scores + n bytes of you nickname. And then it was encoding information on player actions. Before size of player actions was 45 bytes per frame if you push all 5 buttons each frame 😀 But old control style was so that it was usually 0-2 actions per frame making it 0-18 bytes. Well I rewrote encoder to make it a lot smaller. Now it is 0-3 bytes per frame. But it seems that current control styles makes player to push buttons more frequently which resolves in more frames encoded then before. So it seems that replays didn’t get much smaller… :(

Camera – when camera is fixed on controlled object it looks slightly lower then it. No need to look higher 😀

Bug fixes

– Problem with Space dropping resolved because of control style changes.

– Added wordwrap to replay menu so that all code is seen.

– Fixed highscore row sizes and redesigned scroll bar.

– Fixed problems with controller class sometime remembering last game input in next game.

– Fixed some menu navigation bugs

Known issues

– Ok it seems that my changes broke replay system. IT works fine at start but wrong afterwards… Will need to see what is difference…

Things still to add

– Redesigning highscore rows to fit graphic better

– Add next block field too see what falls next

– Adding speed up and slow down to replay system. Still experimenting with different ways of doing it…

– Finding ways to optimize this game without breaking current game style. Have few ideas to try.

– May be adding ‘Look down’ to see what is below. Not shore it is needed. What you think?

– Adding sounds

– Finding some suiting music. Have some music to share?

And here is some replay. Not a record but some unusual style 😀 Warning, game may lag with so many blocks :( Height is 112 meters 😉

eNoFwVto0GUcx+H)9-d-D7-3-V+08mJRBqOxMEvqYmF0mLTKAjEzRBZ2JFxmMIUikEDLQ6hNTUjD

MDJ(F0EuJS(mdIA0GTJCdCku1y(vugkroosUe(6NI2MXft+xr3)v+svzUxlaM7Sy-+cXt-S)Dw7S

Kb(hjtELfc5CWNbBU7DV2OnshY)OCIw6n8BR8Q2cEqfhN+MiXBJ-oy7TLVW3uX(Rn2sRWiwtQ8ul

(9Hz(hfQZukNtF)ahcZdJ9G0awb9afoLu8qsA+uR3Yz1yRZgT5itxjbKdmD7Ze9hZ2XnseliF9Vc

TdNjzYM0T6(ZRfO6mk00b6oZ(vnMmqM0X3vzHc1(NZMEKRihQ2EWocfC)MISC0sJKy0MEbZY2EbY

4+EdwgGFjwmfWxgjjCtMEM4(nCcWi53EXo-ziXcr)kxcovgYccDi48T3LR4iHvf4)fGE4hnilMUL

xD8ULxEvK14h3WV(MWlQ6RXSeqXXSFtD2kbarfQ26QOlD0kfWT(EmrQ0RZrx9Av5WuXryF3K3eRb

leeR71)uJ6+1-BJ5nedXyds9D5N-UD5F)qc8hV9j)gufbd6F3+h+Ez7X-Xb8nuB9+)3yh-BF8kfw

5eYD+L)mz+Gr5Wvw-eYj+Kj7Efxb92)Fj8sn8D)u)+Iz5r-i-8mvUO5VWUB5wMtCyoDKCsoqK+so

G1Q2UbaHMkzZo7K)ckDlIGVU5TDlS5WvK)9Y+ZdKqKJerzqbOkd1LnWt1Ze(G7xu(u7y+hb1C9Ux

6jHVE9STqh)USatnqT9Znaa9QW037R1q76R91NultCusfYZ2t7Xv0h5W+yn-A23nj1k=

Tags: postmortem, update

Crystal Towers Timelapse

Well no video :) Just some time scale of how things went. Well times are not precise but close.

Saturday

9:00 – Read theme and went to sport gym.
13:00 – Back and ready to develop :) Decided to use some opensource engine as result should be opensource. Started to look for some.
13:15 – Well sourceforge was having some problems so I was not able to download box2D AS3 remake. Well I went for APE

16:00 – Took me some time to read documentation and try to fix few things engine lacked and produced this. Well seeing current game you can see why I dropped the idea of using APE :) This is not even close to my needs :) Source forge was still buggy and I could not download box2d sources so I took a break with watching some Heroes series and eating.

18:00 – Returned from break :) Heroes were intriguing 😀 Well started to read forum about AS3 version of box2D hoping that sourceforge will fix problems soon. Well it did and I started to experiment.

Sunday

1:30 – Finished experimenting with box2D. Made graphics you see right now and hand platforms and randomly falling but still buggy blokes. Probably you may say that some 30-40% of game was ready.

9:00 – Got up and while eating my ordinary breakfast was writing journal about my progress. Watched another episode of heroes and went to shop for pizza ingredients and some cola.

11:00 – returned to work on crystal towers.

16:00 – Well finished writing controller class. Tested all blocks. Finished PlayerMimiker for replays and tested it a bit. And went to a break with pizza and some more episodes of heroes :)

18:00 – Returned to work. Well got to a stage i hated really much. Making a working user interface. Flash IDE is bad for that… I hope they will merge Flesh with Flex sometime in future. So somewhere after 4 hours of programming my brain was a mess. I started to get lost in my project and feared to break something in a last moment.

Monday

2:30 – Finished my Final version and posted it.

Conclusion

Well I suppose that it was stupid of me to nto experement with engines on week before but I was not shore if I participate and was not shore waht to experement on before competition. Well I ended up learning two Flash physics engiens over weekends 😀 Other then that everything went smooth probably beocse I tried to keep things simple.

Tags: timelapse

Timelapse

No, I didn’t record one. But I’d like to next time, if somebody can tell me how. SO, if you can, comment here to tell me how I can record a timelapse on Windows XP please. 😀

Tags: timelapse troubles

Comments

14. Aug 2008 · 20:49 UTC
I wrote a little app to take screenshots and webcam shots at the same time intervals. That is how I got my synced picture in picture time lapse. It isn’t ready for public use yet — its just a hacked up thing right now, but I think my project for next LD will be to make it nice and pretty for everyone to be able to use. At destroysound’s suggestion, I’ll also make it command line accessible.
demize
15. Aug 2008 · 01:20 UTC
Ah, cool. But any idea how I can record a timelapse without webcam for the NEXT contest? 😛 I like your idea, and if I ever decide that I want to record webcam as well, I’ll use your app.

Ludum Dare

automotivator picture

To those who find my game too hard:

qq l2+

Comments

15. Aug 2008 · 17:19 UTC
Or is it l2++ 3 + = 9?

LD12 – post mortower

On 8/8/8 @ 8pm Ludum Dare 12 began, and the world would never be the same. The theme was ‘The Tower’, once again the theme ‘evolution’ was downed through natural selection. I didn’t find the theme very inspiring, but I was also brain drained from taking two finals earlier this day. I aced the classes though, so I was feeling good. One class was calculus, which probably influenced my choice of game.

I wasn’t having any particularly awesome ideas friday night, I wrote the basic “Hello, Tower” code. By the way here’s what I used:

Slow old laptop, which I’ve done all my coding on for about the past year. I like to write comfy code on the couch. Windows XP.

My IDE is Microsoft Visual C++ Express 2008, library is Allegro, graphics in Gimp.

Anyway I went to sleep without a decision at my usual 11pm, too tired to think. The possibilities I had come up with at this point:

  1. Grow towering corn stalks by watering, but watering off center will cause corn to grow at an angle and eventually fall.
  2. DeSprawler, pluck people from suburban houses and drop them in big city apartment towers.
  3. A tetris game where you cleared equations instead of lines.

I woke up at my usual 8am, still not enthused about any idea. After lunch, about 1, I had decided on and started to code tetris. Now, I’m glad I finished it and I’m happy with it, but I could have come up with something more original, but so much time had already passed, I figured this would be simple to do in the time I had.

Also, funnily, I almost did a tetris clone for a previous LD. In LD6 (Light and Darkness) I started a game which involved working at a solar panel assembly plant. Solar panel parts would come on a conveyor belt, in tetris-like shapes (but I was going to have many more shapes) and you would pick them up with the mouse and drop them into a grid. The object was to fill as many grid cells as possible, but to make things trickier, the lights were slowly dimming, but completing a panel would raise the light level depending how much of the panel grid was filled. I didn’t finish that game in time, but now that I have a tetris engine, it would be pretty easy to finish it up to some extent. I put this into consideration when deciding on my LD12 game, which is actually not a good basis for the choice.

So, Saturday was making tetris for about 10 hours, rotation is the tricky part, I drew out all the pieces in all the positions on graph paper and typed in about 300 lines for this data. It’s all modularized so I could easily add more pieces and positions (I was thinking, tetris with 8 direction rotation, bricks on diagonal lines). I tested and got the numbers and symbols in the bricks and tried forming equations. They weren’t coming out too well, always the wrong symbols, I was thinking of giving up now because the game seemed overly frustrating. At this point there was not the tower of equations in the start. The game hardly had to do with the tower theme.

I played Notch’s entry: Breaking the Tower for at least an hour on Saturday night, too much fun, I had a few tabs of the game open and would leave them alone to just gather up resources while I coded. Note to self: there will be time to play other people’s games when they’re good and done after the compo ;] These web browser games are great, such easy distribution! This is exactly why I learned Java earlier this year, to distract people so I could win at LD ;]

Saturday night I went to sleep at about 1am, pretty much given up, woke up at 9am, lollygagged, at about 11am I decided I would go ahead and finish it. Sometime after this I came up with the tower idea, put that in, and now I was making equations! I got into it, making the equation checker, and I was doing pretty good on time. The game was a grid on a black screen with green text until about 4pm, 4 hours from the end, when I started making graphics. Making the background with help, code for level starting and sequencing, and tile graphics came pretty quick.

About an hour from the end, I remembered that in LD10.5, the game I submitted didn’t run for some people because I didn’t include any runtime libraries. So I researched that, found some libraries I hoped would work, but I didn’t actually get to test them on a virgin computer until after the end. This was because when I built the game in release mode, I got a screen full of tiles! One hour from finish and here’s the showstopper. Only happens in release, so I couldn’t debug easily, I was stumped. I narrowed it to some problem accessing the grid data, and switched _setstr to strcpy, and it was fixed! Whew, 15 minutes from the end and I almost didn’t have a game. Built my zip, wrote my post, uploaded and that’s a wrap. gg.

I’ve posted pictures of some of my meals, workspaces, kitties, and screenshots as the game was being made at a picasa album here: http://picasaweb.google.com/greencow/LudumDare12

Tags: post-mortem

Comments

Notch
18. Aug 2008 · 03:00 UTC
Sorry. 😉

Timelapse and Postmortem

Well, I’m back from spending last week in LA at the siggraph conference. Looking forward to playing all the entries.

Here’s a link to my timelapse video. Thanks to Daz for the ETL screencap program he posted, which I used to make this (plus ImageMagick to add timestamps).

A quick postmortem: I was using this compo as a chance to experiment with Ogre3D, so I didn’t expect to end up with something too polished, but i did hope it would be at least playable, which didnt quite happen.

What went right:

  • Ogre particles — easy and they look great.
  • Art assets. I tried to focus on the minimum that I would need, and they turned out pretty good.
  • Learning Ogre. I learned a lot more this way than just reading docs would have taught me.
  • Great theme. I had a lot of good ideas for this one (maybe too many).

What went wrong:

  • Camera — I spent a lot of time messing with the camera. Afterwards, i realized I should have just went with a fixed close-to-overhead camera.
  • Starting with ExampleApp was more trouble than it was worth. In the end, I wasted a bunch of time rearranging it.
  • Too many ideas: The theme generated so many ideas for me, I kept changing my mind and adding things. I should have gone with a straight up tower defense.
  • Too ambitious. Didn’t get first-playable until Sunday.

I posted a little list of tips on LD Survival, and ended up ignoring almost all of them.  That’s okay, I had a great time and got a bunch of experience with Ogre3D.

A technical note: I was using Ogre’s OpenGL mode during development, and noticed at the last minute that the D3D mode was much faster. So the readme encourages you to use the D3D mode. However, I didn’t realize until afterwards that it blows up after a few minutes, so if you get everything flying off the screen, switch back to OGL. I probably forgot to initialize something.

Tags: postmortem, timelapse

Timelapse and Post-mortem (Finally)

Timelapse. You may recognize the music 😉

Preface

Since I’m only a few months into my game dev journey, I set a few concrete goals to ensure that I would finish with a game:

  • Have gameplay decided on before bed on the night the theme was revealed
  • Have gameplay/art 90% done by bed on Day 2
  • Finish gameplay/art, do music, menus, polish, package, etc on the last day
  • Also eat a lot of unhealthy food

The Bad

My Idea: My main concern was to make my game about owls. In the end, I accomplished this, but I should have thought it through more. After getting most of the gameplay implemented, I started to realize that the scope of my game was way too small considering the time I had as well as my ambition. I was sure that it was too late in the 48 to start over, and I lost motivation.

Motivation: (That was a pretty direct segway.) I didn’t really feel like finishing my game. I didn’t put much effort into it until night fell on Saturday (awesome). That’s when I made the game’s song, and finished gameplay for the most part.

Packaging: I provided three versions of my game: an exe made with py2exe, an app made with py2app, and a source version. I guess I need more practice with py2exe. It took me a while to get my game packaged, and I even had to change some code in the game to make it work. My py2app experience was great, but the .app ended up being over 20 megabytes large. That sucks, sorry guys.

The Good

Music: I am really happy with the way my simple song came out for my game. I had a whole other song ready, but it just didn’t fit the mood of my game. The completion of this song actually brought me out of my motivation problems in the second-half of the competition.

Code: It should be no suprise that I had no trouble implementing this game. There’s really nothing impressive about the way it works. Some aspects are even quite underwhelming, such as the collision perhaps. Overall, I got to spend some quality time with vim and python…what more could I ask for?

Motivators: This section is pretty self-explanatory.

I Had A Wonderful Time: LD12 was a blast, I learned a bit and had a great time. A success overall.

Looking Ahead

I have a lot of ideas on how I can improve for my next LD. I feel like I can make a bigger and better game. I also think I can improve the efficiency of my music recording and packaging processes.

Thanks Guys

Tags: postmortem, timelapse