Personal blog mainly about computer-related things.

TDS2: The "I actually wanted to make a first-person shooter" Camera Mode

When the camera is centered on the player, more than half of the entire screen is completely wasted space, because I do not intend for the player to be able to see behind themselves. This is a deliberate design choice to make the game feel more claustrophobic, tense, and uncertain.

I devised a new system to make better use of screen space and honestly it's easier to show than describe. Here's a video.

This was a pretty quick implementation to get a feel for it. Personally, I like it, and might make this the default camera mode. I do not feel like wasting over half the screen space is very acceptable. This also frees up the mouse's y-axis, but I do not have any ideas for it currently.

TDS2: The past 3 weeks of lighting

There hasn't been a blog post in a while because on top of my game development, I have been busy working 57 hours a week across two dead-end jobs to try to keep my finances afloat while I continue on my search for a software development job.

I have been working on a top-down shooter. I don't want to talk too much about the plans and would rather have the current work speak for itself, because things are always subject to change as the game becomes more fleshed out.

Currently, it doesn't even have a name. It's simply called TDS2 for Top Down Shooter 2. Yes, there was a TDS1.

I figure I would describe the development of the project so far in general terms, not going too heavily into the details.

By April 20th

Continue reading

Unity Universal Rendering Pipeline 2D Lighting Tools as of April 25, 2020

Unity's new rendering pipeline comes with some neat new 2D lighting tools, so I gave it a spin.

https://i.imgur.com/1uDgF5C.png

Great!

What if we move the light around?

https://i.imgur.com/a3uF7jv.png Continue reading

Naive Lighting Gradients

A while ago, I was working on a game and wanted to implement efficient 2d environmental lighting (think day and night cycles rather than shading sprites differently depending on the lighting). This method does not work very well, but this might be a useful write up because it failed.

The extremely naive approach to lighting that doesn't work

In Garry's Mod, people used to make "night vision" by placing a green overlay over the screen. This is not very effective because it doesn't actually illuminate the area. All it did was give things a green tint and would not actually help you see better in the dark.

The naive approach

We can achieve simple illumination by cutting a hole in the darkness.

Continue reading

Wargame: Red Dragon Destruction Points Display

In this Real-Time Strategy game there is a gamemode called Conquest where the player captures sectors and accumulates victory points. Whoever reaches the limit first or has the most at the end of the game wins.

The thing with this gamemode is that it does not show players how many points worth of enemy units they have killed. Maybe that's fair during a game, but it would be interesting to see during a replay.

This post will be about how I created this tool, for those who may be interested. Experts in reverse engineering will probably be bored or have a lot of things to nitpick about, so this is more geared towards those who are vaguely familiar with the internal workings of software and want to see how something like this is made. Or something.

The general gist of it is to find the location in memory where the variable that tallies up kills is stored, then make a program that reads the relevant data from that place in memory. This is a fairly simple task, but on a real piece of software, so some may find it interesting.

We know the data is there-- we just have to find it. Even if the variable is dynamically allocated, pretty much everything can be traced back to a statically allocated piece of data. Eventually.

Continue reading