2019-03-29

Immitation

What's the best thing about being able to deconstruct something that you really love? Well, for me it's taking bits of it that you like, isolating them, and using them yourself. Like nuances in someone's writing, artistic style, or... visual effects!



One thing Lone Survivor has always had that I've always wanted is its beautiful pixel shading and lighting style... and as of today I finally have both.
It didn't take me long to figure out how it does its static effect (turn up the gamma in the demo version by pressing S), the way the fog works was fairly similar, the lighting wasn't TOO hard... and the other day I finally went through all the images in the demo version and found the image it uses for a screen overlay. Previously I had thought the game employed some form of GPU shading, but it turns out a simple image suffices for it. With all this I could create a convincing Lone Survivor web-comic! Why? BECAUSE I CAN, DAMN IT!



Looks pretty convincing, no? That took me a good hour to create. It's not the best, though.
For precise comparison, here's a screenshot from the actual game:



The way Lone Survivor's graphics work is very weird, actually. The game's sprites are all made for a 160x120 screen, half of the typical 320x240 or 640x480 a lot of 4:3 retro/DOS games inhabit. So how come the game's native resolution is 640x480? Well, put simply: upscaling. The game nearest neighbour upscales the 160x120 screen 4x (up to 640x480) after it's done drawing the lighting, and then adds a number of filters to the screen. It seems like it adds the big overlay, and then the randomly moving static effect. It creates a very pretty and detailed look for an otherwise extremely low-res game. I believe the game does have a few shaders, like when you go through a mirror the screen bends to the side in a manor that I'm not sure how you would achieve otherwise. (Maybe some surface redrawing?) Maybe I'll have to ask Jasper...

Maybe I should just make a fangame? It seems like I could replicate Lone Survivor very easily at this point - aside from porting NPC AI - and then use that as a platform to make mods of it. But... when you can get to that level of imitation, you can really just start producing your own original works from the ground up in a similar style, diverging from your source material as you feel necessary. For instance, I like the aesthetic of Cave Story's per-character text scrolling, but also admire the readability of Lone Survivor's per-word scrolling; so I decided to combine them by having text scroll extremely fast, but pause between every word.


Were you enjoying the post schedule then? ... pff! Trick question - I know literally nobody reads these, haha. Don't worry, I have the analytics. But I'm going to be posting every 4 days instead of every 2 from now on, and eventually every week if I have less to say later on in the game's development.

Thanks for reading,
~zxin

2019-03-25

Retaining Motivation

Something that's always a challenge in any big project is staying motivated. At the moment my motivation levels are incredibly low, so low in fact that it would be a wonder for me to get up in the morning if it weren't for the simple fact that my bed is usually the heat of a furnace by the time I wake up.

I'm very motivated to work on Skyscraper. But the main problem isn't just staying motivated in general, but also staying motivated to work on the right things. For instance, it's extremely easy to just make a ton of music and artwork, and end up with no game, and no idea how to use the assets you've created. It's a bad trap to fall into for sure. What you want, ideally, is to program the ever living shit out of the game first, because - at least in my case - I'll run out of motivation to add new features to the game before I run out of motivation to passively push pixels into a sprite, or experiment with music until I get something vaguely listenable.

So what about retaining general motivation? Well, I find (not finding, auto-correct, can't you comprehend sentence context? I'm not an Indian scammer, you know...) that the best way to do that is to keep challenging myself. Of course, sometimes you just want to be done with the challenges and do things that don't have such a high bar for entry, like designing levels and adding content. Of course a great deal of care must be put into the design of a game, but it's not a mentally exhausting task like programming a script language.

In the end, if progress begins to stagnate, you will find yourself having less fun. The best way to get work done is keep up momentum. Perhaps it'll feel like pushing a boulder up a sharp cliff face some days, but in the end it'll pay off if you keep pushing. All fruitful work will make its ends.

And with that, here's your image for today:


Thanks for reading,
~zxin

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

2019-03-21

Slow, Satisfying Progress

FUCK! Has it already been 3 days since the first post?
... yep! Well, here's another one:

I've managed to make a whole lot of progress on the engine in these past two weeks, but not a whole lot on sprites. I've done 5 light sprites, the fog, an anorexic font and like 2 ground-items. The player sprite was made by one of my friends, who I hope will come 'round soon and start helping me out a little more like I wanted...
Oh well, in the meantime I could at least TRY to make some tiles myself. I'm definitely going to need someone's help doing people's sprites though. If precision doesn't matter, like in the fog sprite, I can do it easily. Otherwise I'll have a lot of trouble.

Progress has been moderately slow, but very satisfying thus far. I hope to get some people implemented into the game soon, so that there's actually some reason for me to start making the game's core mechanics. Along with like... health, psychology, hiding, etc.

I'm curious to know what people think of the look of the scanlines mixed with the pseudo-dithering on the light. I quite like dithering for the sake of dithering, rather than for the sake of making up for a limited colour palette. Lone Survivor arguably did that better than I.

2019-03-18

WELCOME!

Hello people!
My name is zxin, and this is my dev blog for a game I'm working on. It's currently called Skyscraper, but I'm not a massive fan of that name. Hopefully I'll come up with something better later on.

I went a bit more in-depth on my personal blog about this, but here's a video of some early gameplay: