I've written two pygame projects in Python 3 over the last couple days because I want to learn Python and pygame. I've made them opensource and commented them SUPER HEAVILY, explaining pretty much everything in detail, so that other people can use it for future reference.
What I'd like is comments about how I could make things better / more "pythonic" / more efficient.
The first project is pyOrganism, and it just simulates a society of organisms that move around and make babies and the like. The source exists in one file that you can view here:
The second is called pyMaze and is a little more complex. It generates a maze from scratch using the DFS algorithm, and allows the player to push a cursor around the maze until they reach a goal. It also uses images for tiles instead of just colors like in pyOrganism
It's also a simple program but I split this one up into separate files for each class:
I just had an idea I wanted to float. The Help Wanted forum currently has both paid and unpaid projects listed. It would be useful if the paid were separate from the unpaid posts. So any hobby projects and revenue sharing projects would go in one forum. Any contract or employment based projects would go in another.
When I was reviewing my script to gut the weak subplot out of it, I made a bigger realization. Kōtiro, the protagonist and main character, is weak. She’s a “strong woman” but she’s weak in the sense that she isn’t memorable.
===What makes a memorable character?===
Part of making a memorable character is giving them a critical flaw. Some demon that haunts them and threatens to derail the story goal completely.
When a character is always good and brave and smart and kind, he’s boring, and the situations he’s in are also boring. That bland nobility is what Kōtiro was suffering from.
==Upping the Ante==
There is a little known trick that may be the key to turning an alright character into one that is classic.
The trick is to make a character’s critical flaw also their greatest strength—to make the characteristic that almost dooms them the very same one that makes them the only person that could achieve the story goal.
===Examples of Classic Characters===
I’ll pull a character straight from geek cannon: Frodo Baggins. He’s actually a little bland for my taste, but he illustrates this principle perfectly. Frodo is the main character in Lord of the Rings, and he is tasked with bringing the “one ring” to Mt. Doom to destroy it.
The reason he’s classic is that his primary characteristic is that he’s innocent. He’s small, and fat, and sweet, and kind, and good-hearted, and innocent. All the things you definitely don’t want to be if you’re fighting Sauron and his vast armies of orcs and trolls. Frodo’s ignorance of battle very nearly dooms his quest to failure.
However! No one else is capable of delivering the ring to Mt. Doom, precisely because Frodo is innocent enough to carry the evil ring without become immediately corrupted by it.
This tension between how necessary Frodo’s innocence is and how damning it is, is a perfect example of a classic character flaw.
Another, more recent, example of a character with a classic critical flaw is Kratos, protagonist of the God of War series. I knew there was something special about this series when I first played it, but to be frank, the storyline is pretty much paper thin. Still, Kratos is such a compelling character, he’s became an instant classic.
Kratos is essentially a sociopathic Spartan warrior who kills everything in his path. His skill in battle is only matched by his brutality and callous disregard for life.
Without a single-minded focus on bloodshed, Kratos could not possibly succeed at the story goal of exacting revenge first on Ares, the titular god of war, then on the entire pantheon of supernatural beings from gods to titans.
The irony is that Ares had used Kratos’ brutality and disregard for life to trick him into killing his own wife and daughter, which launched him into his revenge quest to begin with.
So Kratos’ critical flaw of being almost inhumanly cruel is both his downfall and the characteristic that makes his story possible. Classic character.
I don't normally post my writing here, but I think this short piece I published today is really relevant to people like us who are creative. It's especially relevant to the perfectionists among us (yes, I'm talking to you, haha).