A Citybuilder I’m Building

I absolutely love Caesar 3. It’s a city-building game set in ancient Rome and it was so good that the demo, despite being extremely limited, was something I played over and over as a kid. The graphical style, the music, and the essence itself of the game was practically magical.

Five years later I learned to program. Ten years after that, I started working on my own city builder, and that’s what this is. I call it “Rise of Man”, but that isn’t the first name it’s had and it may not be the last. The game is a city builder with a twist (every game these days needs a twist). In the case of this game, the twist is an epoch-spanning civilization-customizing experience.

Players begin with a band of nomadic hunter-gatherers wandering the world. As players build up their cities and focus on particular methods of getting food, travelling, developing tools, entertaining their citizens, and forming governments, those choices have long-term impacts that define the sort of civilization that will develop. A player that focuses on spearing shore fish, for instance, may soon develop fishing rafts. And fishing rafts, if focused on, may give rise to a Polynesian-style culture that travels from island to distant island. Or, a player may simply be satisfied with rudimentary shipbuilding, focusing instead on gathering and ultimately farming so that permanent settlements and colonies will be possible.

This is a big project. I don’t know if I’ll ever finish it, but the core of the engine is in place. Below are some of the preliminary screenshots.

Pristine. Simple. In need of human involvement.
A tent has been built! Civilization advances!
A few starting structures, including a village center, some roads, and some build sites.
The world map, being world map-y.

March 2017 Update

The end of February was a busy, busy time, and this blog was not the only thing I neglected to maintain. I took a very nice week off of work, but instead of spending the time working on projects, I spent most of it with my family. It was good.

At the moment, this blog is only one of several simultaneous demands I need to meet. I’m also working on two video game projects (one of which has its own blog I’ll link to soon in a full post), some home renovations, and some online content creation. This, on top of being a father, husband, and working full time. This isn’t to complain about any of those things, but to suggest that this blog might become a place for me to, beyond what I already use it for, serve as a way to document all of these other projects.

I’ll probably have some posts about the two game projects soon.

Misconception Monday – Forgiving the Unrepentant

Misconception Monday on a Tuesday? Blasphemy! It’s my own fault for having written the whole outline to an article yesterday morning but failing to remember it was just an outline after all, and not a full post, so that when I went to publish it last night, I was disappointed. Since I had the day off yesterday anyway, today is basically Monday. Choose for yourself which of those excuses you find more forceful.

Today, I want to look at forgiveness. And fittingly, a misconception about it. I’ve never written an article in the form of Aquinas’ Summa Theologiae, but this whole topic works very well with the format. (If you are unfamiliar with it and have trouble following it, here’s a primer.)

Can we grant full forgiveness to someone who doesn’t repent?

Objection 1. It seems that we can forgive without demanding repentance, because people do it all the time. It is seen as a righteous act.

Objection 2. You need to be able to forgive those who you can’t see again (e.g. who are dead), so we must be able to forgive without demanding repentance.

Objection 3. Forgiveness helps the person wronged so they don’t hold a grudge, so it seems we should forgive even without repentance.

Objection 4. Jesus Himself says “Father forgive them for they know not what they do.” So it seems we ought to forgive even without repentance.

On the contrary, God Himself demands repentance as a prerequisite for granting His forgiveness. “Unless you repent, you too will perish” (Luke 13:3)

I answer that there are multiple kinds of forgiveness. The sort of forgiveness which grants full restoration is called exoneration. This kind of forgiveness requires repentance. It simply cannot occur without both parties being fully involved, because it is a restoration of a relationship. A relationship cannot be restored if one party is unwilling to acknowledge a breach. At best, a relationship of this sort could be abusive.

It is also possible to ignore small offenses and especially those done unintentionally. A person can also have a forgiving attitude, such that at the moment of genuine repentance from the offending party, they are quick to genuinely forgive. This is how Christians ought to live. Dr. Stephen Marmer has a short presentation on Dennis Prager’s PragerU site that describes an approach consistent with ancient Judaism which breaks forgiveness into three types.

Since hatred can damage one’s own soul if directed at others (who are made in God’s image and thus His reflection), it is good to fight the temptation to hate those who do wrong to us. When evil is done to us, we deserve (through justice) some sort of restitution. However, giving up this demand and releasing the person who has wronged us from the responsibility of providing restitution can help us move past the wrong.

Reply to Objection 1. People who say they forgive those who don’t repent can’t possibly mean full forgiveness, but a lesser kind. They demonstrate a forgiving attitude, which is indeed righteous, and they are well-prepared to act rightly if repentance ever occurs. This is a way of loving one’s enemy, which is itself a righteous act.

Reply to Objection 2. The lesser sorts of forgiveness can be given to those who can’t receive full forgiveness (e.g. who are dead). Even if the person can never repent, they can be released of their duty to provide restitution and we can fight the urge to remember them with hatred.

Reply to Objection 3. Lesser forms of forgiveness and having a charitable attitude take the burden away from those who are wronged, even without repentance. But they aren’t full forgiveness. As has been discussed several times already in this article, there are many ways for the person wronged to avoid any further damage even if the other party refuses to repent.

Reply to Objection 4. Jesus also teaches that ““If your brother sins, rebuke him; and if he repents, forgive him.” Clearly, he can’t mean both things at the same time in the same way, since they contradict. Jesus in His teaching is perfectly consistent: full forgiveness requires repentance, because full forgiveness is restoration. Without repentance, restoration is one-sided and incomplete. Jesus on the cross isn’t giving a thorough lesson in how forgiveness and repentance works. He’s demonstrating His love for a fallen world and those who don’t realize the gravity of what they’ve done. He demonstrates His love, not a process for forgiveness that trumps His far more thorough teaching during His ministry.

We are reassured of this because His apostles don’t transform this declaration of love into a new teaching on forgiveness. For the rest of their writing in the New Testament, they always make repentance a prerequisite for forgiveness. If we took His declaration on the cross as His standard for forgiveness, we are left with some massive theological problems. We must deliberately disobey Him in regard to forgiveness and we must set ourselves up as more forgiving than God Himself, who does require repentance. In matters where we aren’t completely sure of one interpretation or another, it’s always best to err on the side of some small confusion than on the side of total exegetical chaos. Life is messy; we ought not make it incomprehensible from our efforts at cleaning up the mess.

See this article by Wintery Knight for more information. And go follow his blog!

Life Organization Part 3 – Yearly Goals

Note: This is in a series of posts, and as the others are written, I’ll update a table of contents with links to the whole series here.

Part 1: What is Life Organization? Why do it?
Part 2: Life Goals
Part 3: Yearly Goals

Having some long-term goals is important, but without a plan to achieve them, they always remain in the distance without moving closer. In the previous article in this series, we looked at the method I’ve used to lay out these larger goals. Now, we’ll break them down into more manageable chunks.

Why Yearly?

A lot of people come up with New Years resolutions for themselves, finding that changing over to a new year and coming back to work after some major holidays is a great point to set up new habits. It’s convenient, but not always effective. Many people who seem to have a lot of success with their resolutions in January have completely forgotten them by May.

Years are still a great length of time to plan. They are finite and fixed, but still long enough that you can get a lot done towards whatever longer term goals you have.

I recommend not waiting until New Years Day to decide what you want to do for the upcoming year, though it doesn’t hurt to read through your plans that day.

Creating Yearly Goals

There’s some overlap here with lifelong goals, as there probably ought to be. After all, if you are going to be accomplishing something, it needs to be accomplished at a particular point in time. To make part of a larger goal into a yearly goal isn’t to say you have all year to achieve it (though you may). It simply means that it will be accomplished at some point during the year. I’ll have some thoughts about how to help make this more likely in the next post on planning a year. For now, the focus is on the goals themselves.

The first step I take is to look at my lifelong goals. Are there any I can do this year? Are there any parts of a goal I could contribute to?

Once I have those things identified, I try to balance each of the seven categories (see the previous article) of goals for the year. After that, I break down the goals even further, trying to figure out what major steps need to be accomplished to get the whole thing completed. Sometimes this isn’t necessary. Other times it can’t be helped.

For example, one of my perennial goals is to be on time to and have a good attitude about all of my commitments with a good attitude. I made them, after all. There’s no point in breaking this down; it’s pretty straightforward and uncomplicated, even if difficult at times.

On the other hand, one of my lifelong goals is to learn new things. This is ambiguous, so I’ve broken it down even at a long-term level into categories like “learn Latin” and “learn Statistics”. I also want to consistently read (and truly understand) a lot of books. At a yearly level, this breaks down into a list of the books I actually want to read. This means the yearly goal might fluctuate a little bit as I discover new books or decide not to read a book in the end, but this is infrequent.

The Next Step

After you have all of your yearly goals listed out, you should find yourself with a list that looks a lot like your lifelong goals, but less grand in scale and less comprehensive. In the next article, we’ll look at what to do with this concrete set of goals and how to plan your year out to actually get them done.

Doom – Josh 2014 Megawad

The original Doom is a classic. I’ve played it almost since it came out in 1993, and it shows no signs of aging.

But Doom would have gotten boring a long time ago if not for custom maps and content. Even as a kid, I had more fun making levels than I did playing the game. At the time, I used a DOS base editor called, imaginatively, the “Doom Editor Utilities (DEU)”.

There are much better tools today, and a couple of years ago I decided to learn them and try again at the art of Doom level creation. It really is an art form, and not one that I’ve mastered. There are many considerations when making levels that are interesting, challenging, but rewarding.

Despite my lack of mastery, I created a handful of levels and put them into a “megawad” (which is literally just the term for a collection of levels). In the spirit of creativity that the creators of DEU engaged in, I named it Josh 2014. Enjoy.

Josh 2014 (44 downloads)