Developers' Diary


by fetjuel on February 14th, 2008 13:19 to Development

Jules and I have been using a big time-versus-entities matrix to plan out the story of Soft Landing. Across the top are boxes for the “distant past”, then the preceding few decades, then the preceding few years, then the individual story chapters. Down the left side are the names of characters, groups, and organizations. Any time we decide something about the story, we fit it into this table.

It’s easy to see all of the things going on at a certain time, or to get an overview a particular entity’s history. At a glance we can find which areas of the story are still ambiguous; eventually we want to fill the whole thing in.


(Deliberately made too small to read, so you’ll have to wait to verify the accuracy of Baron Von Chadstrong’s comment on our last post.)


by fetjuel on February 12th, 2008 13:05 to Code, Development

- Tied trust score into what used to be “shields”. Now your capacity for damage, your firepower, and your overall affinity with your support pilot are all represented by one number.
- Removed offscreen death effect, leaving your ship on screen when you get hit.
- Made ship go really slow when it gets hit.

Now Jules and I are having an in-depth conversation about the overall story and how to make it really compelling. We need to try pretty hard to shed the amateurish and dull story that’s so easy to write.

This Morning

by fetjuel on February 11th, 2008 12:38 to Code, Development

I successfully woke up early, and I like to think it’s partially because I set the Ar tonelico 2 theme as my alarm. I came in, played AT2, and once I was sufficiently inspired, did some work on SL.

* Fixed up the player’s speech bubble so the Laurent portrait doesn’t slide around disconcertingly as the bubble grows into existence.
* Added support for positioning inset images wherever we like on screen, and having multiple insets visible at once. This will help us with our Littlewitch-Floating-Frame-Director-esque scenes.

Brief Update

by fetjuel on February 7th, 2008 0:39 to Art, Development, General
  • Added nice fading sliding inset images for dramatic effect. Tested this with a nice quick portrait of Brianne that Jules threw together.
  • Tied the synchronized pod-gun to the Trust score. Now the better you do (in the eyes of your support pilot), the better your coordinated firepower gets. All of the crazy numbers we had before are now embodied in the Trust score. You can get more Trust by staying near your partner, using your synchronized gun to kill enemies, and pulling off impressive chains while the screen is especially chaotic. Trust also represents your “shields”, as the support pilot is feverishly working in her pod to maintain your ship’s defense systems.



by fetjuel on January 24th, 2008 17:20 to Development

Jules and I had a couple of meetings this week. I’m on “vacation”, which really means that I still come in to the office but I mess around playing Ar tonelico 2 and jam out on my bass and code on Soft Landing instead of doing work.

We have done some more to adjust the game system to better fit the pace and personality of the type of shooting game and novel game we want SL to be. That is, more Gradiusy for the shooting and richer for the novel.

What we mean by Gradiusy is that the screen should scroll more slowly, you should have to budget your bullets in order to blow up the carefully placed formations of enemies, and the environment should be as much your enemy as the aliens are. This all means a whole new powerup concept, a new “trust”-based score system (which supplants most of the systems we already had in place for the shooting part), and new equipment management systems. What we mean by rich is that the novel part should pretty frequently present you with, well, novelty: close-up character portraits, dramatic fades, visual effects, inset images, and so on. As the resources for this kind of thing will be in Jules’s signature sketchy watercolory style, he can produce many of them quickly, and they will be well worth the time they take to create.

That’s all good news. But we are still just giving ourself more work before we can release the demo that we’ve been calling “almost ready” for about two years now.


by Jules on December 4th, 2007 10:36 to General

So, mm. Hiatus for a while, I suppose. I’m now earning my keep in the US and that’s made for some adjustments to lifestyle, but now that things have settled down, I’m getting back into development.
We both really like our game. A lot.
Only… recently I instigated a somewhat feverish conversation with fet about originality, and how Soft Landing had some good ideas, but ultimately was somewhat flat in execution, and suffered somewhat from copying formula. We dithered for a little while about what it is we could actually do about this, now that we were so far down the line with gameplay development. What could we do that would be “cheap” enough to not have to rewrite everything but interesting enough to put a whole new spin on the game? Thankfully our engine is robust and flexible, and we were able to make multiple dramatic changes to the game system. We have some interesting results, including what I understand is a completely new scoring/playing system for a shooting game of this type, and no HUD to speak of other than a single integer. It’s a lot more interesting, as well as a lot more fast-paced. Another aspect of the game I have been somewhat nervous about for quite some time is the tenuous linkages between both aspects of the game.
I realised the other day one of my main personal influences for this game was an old Safari Software game from the early 90s called Traffic Department 2192. It carried a similar approach to our game – half story, half shooting action. It has a very different tone, and is somewhat more simple in many ways… but was a brilliant game, and one of the first I had that took a serious approach to incorporating story in a cinematic style to an action shooting game. It was somewhat clumsy despite it’s excellent premise, and the changes from shooting to story were needlessly jarring. But.. before I get too far off track – our recent changes address a lot of the issues found by TD2192, and have not only improved gameplay by a very significant magnitude, but have also given us a more direct and meaningful way of tying the story and action sides of the game together in an easy-to-comprehend and relevant way.
I’m excited! :D


Character Positioning

by fetjuel on September 30th, 2007 22:24 to General

I just committed some code for intelligently positioning characters during novel scenes with more than one person present. It was (as usual) surprisingly hard to determine how to keep track of where everyone is, when someone should slide gracefully over to let someone else in, and how to fade characters in and out properly. I think I’ve got it down now, but the code was pretty hilariously broken a few times along the way, with characters sliding this way and that as if they were on ice skates.


Trimans Behavior

by fetjuel on September 5th, 2007 17:40 to General

It’s surprisingly difficult to get a Guy to do something as simple as “move somewhere, stop, shoot some missiles, then move somewhere else.” Last night and tonight, I’ve been working on the behavior of our trimans enemy, who accompanies some of the bigger enemies in the cave part of our demo level. Finally, I think I’ve got it feeling pretty good. In retrospect, I have gobs of new respect for the guys who did this sort of stuff on old, limited hardware, without access to the kind of prewritten tools that I’m taking advantage of. Aero Blasters, R-Type, Gradius… It’s all so much more impressive now.


by fetjuel on August 26th, 2007 23:51 to General

Since our meeting, I have been working on the little details of balance for the demo. The level is slower, and the enemies’ attacks are more deliberate. The in-flight conversation system is working, but because our main character isn’t actually the same type of Guy as the rest of the cast, it looks like it’ll be best for the comm images to be static and pre-generated after all.

I still have a big long outline of stuff to do, including such items as “big guys assisted by an entourage of little mans” and “amoeba is too advanced”. :D

Things are going well.

by Jules on August 21st, 2007 9:44 to General

Lots of new stuff is happening with our game. We’re re-thinking some of the Big Things in the shooting side of the game — the way the challenges are presented to the player, what kind of challenges they are, and how they are arranged. High-level, thinky stuff that we haven’t had time for since there have been more important things like “can the player move his ship” and etcetera. The Novel side is coming along nicely with a more developed script, more graphics and a new character. Aaron is back in contact and living in Japan, so hopefully we can continue our already excellent relationship with his genius mind to extract more musix and sound effects from him. All is well.


by fetjuel on August 8th, 2007 23:27 to General

Jules put together a whole lot of stuff today, so I incorporated it into the game. Now our main character Laurent has fourteen available expressions, Brianne has a dynamic new pose, and our new character Crystal Honda is in the game. Whee!

Soft Landing for Windows, thanks to PyInstaller

by fetjuel on July 25th, 2007 12:32 to Code, Development, General


As we approach the demo (like Achilles approaches a turtle…) and as we have a new Windows-based audio guy on board, it has become pretty important that we get a standalone version of Soft Landing working on Windows. See, for Jules and me, Soft Landing requires Python, Pygame, PyObjC or Numpy, and PyOpenGL, each at a particular version number. As we’ve moved around between machines over the past few years, we’ve both gone through the dance of installing all these dependencies many times.

Thankfully for our future players, some programmers more knowledgeable than me have put together some brilliant software for packaging up a Python project with all of its dependencies into a self-contained downloadable file. On the Mac, there’s py2app, which I’ve had working for a long time now, and on Windows, there’s PyInstaller, which I just tried out for the first time today. It took just a short while to get everything working, and most of that time was wrestling with Windows itself, not with the software.

So PyInstaller is yet another item in a long list of indispensable software without which this project wouldn’t be possible. It’s heartwarming to think of how such an amateurish coder like me can create such an ambitious project, thanks to the hard work of people who actually know what they’re doing. I’m looking forward to putting a really extensive thank-you message in the game.


by fetjuel on July 23rd, 2007 21:49 to Audio, Code, Development, General

Today I dropped Aaron’s noises into the game for the first time. There have been several clues that Aaron is the right guy to make the audio for our game:

  • The very day that Jules asked him about helping on the project, he put together an awesome SL-specific stage music.
  • The next day, without prompting, he provided another awesome song.
  • Very soon after that, he provided a huge folder full of tons of various sound effects, really everything that the game needs right now.
  • The sound effects have whimsical names like “chargingmylaser.wav”, “seriousblast.wav”, “worlddestroyer.wav”, and so on. Yes, I think he’l fit right in. :D

Also, I worked on making the sounds work better when played very rapidly. Previously, I think each call to play() was bumping into the previous one, causing really weird and annoying patterns of uneven sound. Now we call stop() on a sound before playing it, so that every time we can be guaranteed that the attack of the sound will get played, rather than pygame just seeing that the previous instance of the sound was still playing and leaving it to decay.

Alpha Videos

by Jules on July 19th, 2007 13:34 to General

Hey. Boring musings ahead, so I will put the good stuff at the top here.
Here are some new videos of the game, in various parts. This is still alpha stuff though, so it’s pretty shaky, with some cleanup and many things needed to be revisited before completion.

Six short videos.

So, not so much work over the last week. Still, things are looking good and at least I’m doing a tiny bit each day, which is the most important thing. This was never meant to be a fast project, but more of an ongoing hobby. I guess one of the funny things about working on a game like this is that I’m doing heaps of work without any feedback [aside from Fet]. One of the great freedoms of Indie development is the most obvious one – you get a chance to make a game on the terms that you like. More often than not, when making a decision about something in Soft Landing, I think more about what I want it to be like, before anything else. It certainly makes me think that if I were ever to make this kind of thing for a living, I would look back wistfully on these carefree days.
Having said that, a lot of my processes are improving a lot. I can do a lot of things that are art related a lot faster than I could even imagine doing them before. Doing this first level has taken forever, but I feel confident that I’ve learned so much that in the future the process will feel completely different. As with anything, I suppose, the advantage of experience is immeasurable.


Fet vs. Windows, round II

by fetjuel on July 19th, 2007 11:46 to Code, Development, General

Well, I don’t know exactly what did it, but for some reason, Soft Landing is running fine on Windows for me now. Once I got it working, I found a weird bug: the guys’ animation frames were all jumbled up, causing enemies to spasm around comically instead of menacingly and smoothly deploying their weapons. I guess os.listdir() on Windows doesn’t return the files in alphanumeric order; we were depending on the filenames to order the frames properly, so this was messing us up. I threw in a call to sort() before loading each image into our image libraries, and all was well. So that’s the story of my first bug fix and Subversion commit from within Windows. :P

Fet vs. Windows, round I

by fetjuel on July 19th, 2007 9:56 to Code, Development, General

I have now spent three evenings trying to get Soft Landing working on Windows. I know it works, because Jules runs it all the time. I installed XP on my MacBook, set up Subversion, downloaded Python and Pygame and PyOpenGL, checked out Soft Landing… But the game keeps crashing with weird errors, like claiming that I’m trying to iterate over a module when I’m iterating over a dictionary, or that it can’t find ctypes, a module I had never even heard of, let alone tried to use. Perhaps I need to start over from scratch, or something.

It doesn’t help that most of my decades-ingrained Mac behaviors do nothing or do something completely different in Windows. I’ve hit Command dozens of times, ready to perform a keyboard shortcut, only to have the Windows menu come up… ~_~

Crystal and Music

by Jules on July 7th, 2007 7:20 to Art, Development, General

Hey everyone!
I’ve been working on the game recently, and things are going nicely. More character poses have been made and I am definitely getting a feeling for how to make them work faster. I decided to draw one of our more less-major characters recently, who will probably turn up in the demo. Usually in order to go from nothing to something I’m happy to have in a game takes about a week of on-off work and lots of um-ing and err-ing, however this came together a lot faster. I’m feeling much less terrified about using photos for basic pose reference, which is good because given how many people I need to draw I really need the help! Anyway – here she is, Crystal:

Crystal Honda

In other news, I recently got in touch with a dood called Aaron, who looks to be our man for the music side of the game. He’s extremely talented and also just an awesome guy to chat with. With this news I can almost taste the demo being released (no, really!), and I’m looking forward to seeing how things shape up on the aural side very much.

Cheers, folks!


by fetjuel on July 4th, 2007 12:59 to General

Yesterday I added the ability to play noises, start or stop music, and start or stop looping ambience in the novel part. Minor stuff, but it’s important.


by fetjuel on June 5th, 2007 15:51 to Code, Development, General

I set up the text rendering system, used mainly in the visual-novel segment of the game, to pause longer when printing certain punctuation marks than when printing ordinary letters. So if there is an ellipsis in the middle of someone’s line, or they are listing several items separated by commas, a bit of rhythm makes it across in the way the text appears. This is the sort of thing which, when planning to make a video game, one doesn’t anticipate having to do. It’s also the kind of thing I think many people wouldn’t bother doing, and tuning over and over to get it right. But when I play a game, it’s tiny little things like this that semiconsciously encourage me to keep going, to keep my hands on the controller.

In the style we discussed…

by Jules on May 31st, 2007 16:26 to General

Over the last two days:

  • Fixed Magnus graphic
  • Many conversation font fixes
  • Wrote preliminary STG side demo level script
  • Finalised and inserted demo script
  • Added emotes to demo script
  • Started work on final graphic for demo
  • Finished thrust graphic for C-Bell
  • Sourced ambient noises for cafe and corridor, footsteps, doors opening/closing etc.