2019-03-23

Origins

Lone Survivor is my sole inspiration. In fact, it's the reason I decided to make this game at all. But that's not the whole story...


A long time ago Lone Survivor was in my top 5 games. At the time I researched it and learned that it was programmed with something called "Flixel". Being interested in game creation, and having used GameMaker8's DnD features for a while, I clumsily downloaded it and was quickly overwhelmed. I managed to find a demo game and modify one of the sprites in it and a few physics variables, until it felt like less of a platformer. If I still have that project anywhere, it's probably on an old laptop of mine that I don't exactly feel like trawling through right now to find that project... so you probably won't see any images of it here.
So I was quite disappointed in myself, of course; And slowly I reformed out of trying to work on original games. It's not that I didn't feel that I was good enough at it, because being absolutely abhorrent at it never bothered me back in the day (as long as I was improving and getting work done). Instead, it was because I couldn't find a suitable platform that would accommodate my shoddy programming, mathematical and abstract problem solving skills. (That is, a platform that just does everything for you...)

Not much later, I started getting into Cave Story modding. A very approachable way to get into game design and learn a lot of vital lessons.
It's especially approachable because there are a couple of good editors for it that list every command in the script language, which in itself is very simple and easy to understand. For instance, anything that ISN'T a command is just printed as text. Of course, without a textbox the text is just invisible. There's a command '<MSG' to open a textbox, and a further '<CLO' to close one. Simple stuff. Some commands have 4 numbers after them which do a thing. Like '<IT+0001' gives you item 1, which is a key. The way everything was designed and handled internally makes sense from a "how would I do this in a way that works but won't take the rest of my life to finish?" sort of approach.
Once you get beyond editing map, script and entity files you can also edit things like the x86 code in the exe of the game, which of course requires learning x86asm. I held off of doing this properly for a very long time, because trying to do it was so overwhelming due to the volume of the code and its sheer insignificance. (i.e. one operation does next to fuck-all)
In late 2016, I made my first faint efforts to go a little deeper than the colon and was actually able to locate and change a few simple values. By 2017, I was able to do vaguely advanced things... like somewhat optimising some of the game's extremely verbose code and inserting very elementary routines to make values change over time, etc.

Finally, in early 2018, I gave up the pretence that I wasn't able to program at all, and started coding overtime. I programmed so much in that time that it was as if I was making up for all the time that I had put off learning x86asm properly. I don't regret a moment of it. So somehow in the space of several months, together my programming, mathematical and abstract problem solving skills increased at least 10-fold. Contextually though, "10-fold" is still not very much when your starting value is less than, say, one. So, I did get much better, and I'm still improving... I guess... but the point is that that's how I made it from "Ohh to add y to x you express it as 'x = x + y'", to "Oh right - the way this function works means that it's returned a negative real from this byte that I wanted to be unsigned, because it's unconditionally reading it as signed and now I just gotta invert it like 'if(n >= 128) n = -256 + n'".

Returning to the time of writing, I recently started replaying Lone Survivor, and immediately re-realised why I loved it so much. With all my new perspective as a designer and programmer, I was even more fascinated by it. My desire to make a game of the same genre re-ignited, and thus here we are.



I hope my excruciatingly long story didn't bore you too much.
In other news, I've been making some mediocre tiles and backgrounds since last time. Hopefully with a little practice I should be able to make enough tiles for my first room to look like more than Placeholder City, USA.
Also here's something I was doing with coloured lighting:


Thanks for reading,
zxin

No comments:

Post a Comment