Saturday, January 21, 2012

Demons' / Dark Souls

The following is from an email I wrote to the guys at Extra Credits, which is an excellent show that if you aren't already watching, you should watch. I realized I hadn't talked about game design on this blog at all recently, and that this was perfect for it. Enjoy.

I think they're extremely well-designed games. I'm going to refer to Dark Souls specifically, because I've played it more recently. One of the most brilliant things they did with the design, I feel, is the control scheme. More specifically, how "attack" isn't one of the four face buttons. They probably mapped the left and right hands to the shoulder buttons more because of symmetry and the elegance of everything having a primary/secondary use, but this had a secondary effect that was possibly even more beneficial. The four face buttons are the most comfortable buttons to hit quickly and/or repeatedly, which is why games usually assign their most common actions on those buttons. Dark Souls has their attack function, normally used relentlessly in Action-RPGs, on a non-primary button. This emphasizes their focus on carefully choosing when and where you attack, as opposed to running in guns-(or swords-)blazing. It also -physically- reinforces this notion, because the shoulder buttons are somewhat awkward and painful to tap repeatedly. This physical reinforcement of how to succeed in the game is one of the most brilliant pieces of design work I think I've ever seen.
The rest game is filled with similarly brilliant design choices as well. Mobility at the cost of protection makes for an interesting choice (more so in Dark than Demons', because of the increased effectiveness of armor). No music except during boss fights creates an atmosphere of tension and loneliness, and a sharp jarring contrast that puts the player in awe when a boss does show up, and also gives a sense of epicness that serves to highlight what a blast the bosses are to fight. The only thing I feel was a mistake was the Mimics. Yes, you only ever fall for it once, but, c'mon guys. Now you're just being mean. And missing a bonfire is fairly aggravating, but the game has such an exploration/survival bent that I'm willing to accept it.
Personally, I don't play it at night anymore. Not because the monsters ghouls zombies skeletons aberrations what-have-you are particularly scary. To me, the game as a whole isn't terrifying for the most part, despite the numerous enemies that, presented differently, would be much scarier. I can't play the game at night because it's atmospherically spooky, and the gameplay reinforces the terror of exploring somewhere you've never been, where everything is trying to kill you. That sense of the entire game's world being out to get you - because it is, mind - is more lastingly chilling than many things that want to be scary. When I'm done playing Dark Souls, I am, thanks to the gameplay and level design, paranoid and jumpy for at least an hour. I find myself checking all the corners of my house, not completely trusting that there are no traps or monsters around. I want to be aware of whatever dangers are around, because I also know from the game that whatever comes my way, with perseverance and careful tactics, I can defeat it. The game isn't purely tension all the time, even though the player is always extremely vulnerable. If anything, this vulnerability is empowering, because even though the player's avatar is heroic, strong, and has magical powers, the bosses they topple and even the hordes of minions they defeat are all so much more powerful than they are it's amazing that the player even warrants their attention. And yet, with just a little persistence (or, sometimes a lot), they emerge triumphant.

Friday, December 16, 2011

Suddenly! (Miner)

Releases a game out of nowhere.

Pictuars for once:





Boosh.
Instructions are in game for once as well!


Basically, Terraria with an Elder Scrolls leveling system.


The self-imposed challenge here was, "make a game in two days." I had a final on Wednesday, so I extended the deadline to 2.5 days.
I'm probably going to be updating this over the next X period of time, but doing stuff on a deadline was kinda fun. So, probably going to do more.
Also: No testing. No idea if this'll work on your system. Have fun with it.

Monday, September 12, 2011

Preliminary C++ Ranking System

AKA: C++ Belts
Students must understand/accomplish the following criteria to obtain the given ranks.

6th Kyu: IDE installed; Hello World compiled
5th Kyu: Variables, strings; functions; console I/O
4th Kyu: Arrays; loops; structs
3rd Kyu: Classes; recursive functions; pass-by-reference; using std::vectors
2nd Kyu: Inheritance; pointers; template functions
1st Kyu: Polymorphism; dynamically-allocated variables; template classes
1st Dan: Basic data structures; basic graph theory (DFS, BFS)
...

And so forth.
The basic idea is a way to quantify proficiency in programming languages, aside from an mildly arbitrary "X years of experience". That, and so I can say I have a black belt in C++.

Saturday, September 10, 2011

Addendum to Favorite Games

Portal 2

The first Portal was intentionally omitted from the previous list, because even though Portal is definitely a must-play, it isn't one of my go-to games for a list of favorites. Portal 2 was omitted not for similar reasons, but because I hadn't played it yet. I beat it yesterday. Portal 2 isn't necessarily a must-play - it feels redundant sitting next to Portal 1 in that regard - but it definitely goes on the favorites list.

Monday, September 5, 2011

My Favorite Games

In no particular order:

Mass Effect 2
Final Fantasy VI
Final Fantasy X
Super Metroid
Chrono Trigger
Demon's Souls
Disgaea (series)
Half-Life 2
Star Fox 64
Pokemon (series)
Kingdom Hearts II
Super Mario Bros. 3

Saturday, August 13, 2011

Short stories

I discovered the programming equivalent of writing short stories and it's kind of addictive.

These six programs (all in one) are roughly 600 lines of code. They're also mostly some type of "cool" or "fun". For me at least they were.

Here's the Google Docs link: QtBeziers.zip

There are six tabs, each of which has a mini-program of its own. From right to left:

Progress - Like Progress Quest, but slightly more graphical. This was me just getting used to Qt. It's even got the Hello World button.
Beziers - The coolest one. The one I spent the most time on. The one I named the program after. The one I made the whole program to make. Generalized Bezier curves. Click the canvas to set guide points. When you've specified order+1 points, it draws the resulting curve. Further clicks remove the oldest point and adds the newest as the end. The program defaults to cubic splines (3rd order), which are the Bezier curves we're most familiar with (if you didn't know; they're used in almost all vector graphics, including the font you're reading now), but the order can be modified (within reason). Subdivisions controls how the curve is drawn; the default should be fine. Time works with the ShowSteps option; this shows how the curve is drawn mathmatically, visually. Animate automatically increments the Time slider.
Mountain - This is an implementation of the one-dimensional Midpoint Displacement algorithm. I would have given settings to modify the algorithm, but it's randomized enough to be interesting on its own, and frankly who cares.
Neighborhood - Click the screen and it'll make points. Then it'll find the relative neighborhood graph of those points. This guarantees connectivity, but also can have cycles. It also doesn't cross the paths, which makes the graph spatially appealing. It also generalizes easily to higher dimensions. When it comes to 3D random dungeon generation, this is the algorithm I'm going to use to connect the rooms together.
Map - Creates a random world-map looking thing. Algorithm straight from here. [I think] the sliders are fairly intuitive; depth controls how much the program iterates, land controls the ratio of land to water, and noise controls how rough the borders look.
Cave - Makes random caves, using a cellular automata method.

3D random dungeons coming eventually!

Tuesday, August 9, 2011

Hands up, people who saw this coming

So yeah, interest in Duckbill got shot to hell. What happened? At roughly the same time, I burned myself out trying to write complicated networking code when I have only the most basic ideas of how networking works, and my artist got a real job and an internship. Yeah I had an artist working with me on that. Yeah I didn't mention that to avoid getting anybody's hopes up (not that the four of you reading this didn't already know).
Shortly after my desire to program anything hit rock-bottom, I started playing WoW.
Over a month later, here we are.

So, no games coming from me anytime in the near future.

Tuesday, June 21, 2011

Distaction

What bill? I don't see no ducks.

Here's one of the games I made for game dev that I'm actually proud of: Hoax.zip (Google Docs)
Don't let the name fool you, it's legitimate.
You'll need Python and pygame to run it. Run Main.py in Python (the command will look something similar to "python Main.py" if you do it command-line style)
Z/X rotate, arrow keys move.

Sunday, June 5, 2011

Nearly There

Note to self: Networking is very, very hard.

Coming soon:
- An actual update! Really this time!
- A todo list / timeline, for organizational purposes, and so I can continue to disappoint in new and exciting ways.

Monday, May 30, 2011

Actually

Screw it. Here you go: Duckbill-r20.zip (Google Docs)
Protip: Don't use either of the multiplayer options unless you have a penchant for ruination and failure. Or at least, crashes and failure.

Not much has changed for the single-player campaign, except that larger rooms use a different generation algorithm, and item placement has been improved a bit.
Probably 95% of the networking code is done, it's just that the last 5% will turn it from bugsy crashesalot, into actually functional.

Mid-week update coming hopefully soon, once I fix this damn thing. Then I'll talk for a while and it'll be lovely.

Sunday, May 29, 2011

More De Lays

It'll be done when it's done, dammit.
Sweet zombie Jesus, this is a headache. Being so close to done and not having stuff work is mildly infuriating

De Lays

This week's update isn't quite ready yet, sorry.
It will be up sometime tomorrow - I know all three of you reading this are very disappointed.
Just know that, this was a huge headache: