Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: Good Morning, Ludum Dare! #LDJam

I’m either getting a head start on my morning, or I’m going to crash. I got up one hour and 45 minutes before my alarm for some reason.

I feel well-rested. Let’s see what happens.

My current task is to figure out the actual basic game play. I like the idea of keeping the interface simple and letting the player do nothing more than click on villagers and then click on an influence, but the dynamics that arise from causing fear or greed need to be solid and understandable.

Otherwise, I’m going to have the player directly control a monster.

So, now I’m going to spend a little time brainstorming with myself figuring out what the villagers can actually do and then figure out how to cause them to do it.

Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: An Imprisoned (and Ambitious!) Evil #LDJam

Concept: An imprisoned evil

I was choosing between being a vampire drinking the blood of your neighbors while avoiding the vampire hunter’s investigation each day, and being imprisoned in a rock surrounded by magical rocks that you try to get rid of by influencing the nearby villagers.

I think the first is something I can see doing much more easily. I can see the game play, and I can make it as detailed or as abstract as I want. The second one is really complex and still kind of vague. I know what the player can do, but what results are possible, and in 48 hours?

I told my wife about my choices, and she gave me a look like she was worried. I asked why, and she did an impression of me:

“At the start of Ludum Dare, you’re like, ‘I’m going to take on this huge design!’ Then, partway through, you’re like, “I’m worried I won’t be able to get this done.’ Then by the end, you’re like, ‘Doh, I didn’t get as much done as I would have liked.'”

Nailed it.

And I decided to go with the second one anyway.

My initial thoughts are that you are surrounded by four magical stones, each one represented by an element such as earth or water.

You can’t directly get rid of the stones, but you can influence the nearby villagers who have shown up in your area. You can click on an individual, then select an influence type. Examples of influence types are:

– Suspicion
– Fear
– Trust
– Greed

The vague part: I don’t know what happens then.

I can see Suspicion causing infighting among the villagers. Ok, they’re fighting. Now what?

I can see Greed causing villagers to use up resources more than their neighbors, or kill the proverbial goose that laid the golden egg, perhaps in the form of digging up cropland to search for gold.

My wife suggested that perhaps instead of using this indirect influence, the game play can center around being a monster trying to free something from imprisonment by dealing directly with the four elements. It would be simpler.

And I’m going to sleep on it. 1 day, 21 hours left. Good night!

Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: Some Monster Concept Art and Milestone Deadlines #LDJam

Here are some quick doodles of monsters. I like the idea of the monster being a cute ball of fur.

Monster concepts

I’ve been thinking about what direction to take this game, and at this time I’m coming up with as many concepts as I can. I set a deadline for me to have a concept ready by the 2 hour mark. I hope to have something sooner, but in case I don’t, that’s the point I stop spitballing and start running with whatever I have that seems to work.

Have you set milestones for your project in a Ludum Dare compo? Or do you just keep going until you’re done?

The constraint I threw on myself: make a non-violent game. Basically, it means that attacking or being attacked can’t be part of the core mechanics, which cuts down the viable concepts quite a bit.

But the player could be a helpful demon or a sneaky creature. There’s still plenty of potentially good ideas here.

I tried to break things down a bit. Here are some notes I’ve made in my design doc to help me come up with the concept of the game.

Where did you come from?
– Outer space
– Ocean deep
– Frozen in Arctic
– Nuclear mutation
– Toxic waste/pollution
– Deep underground
– Psych Ward
– Meteor
– Forest
– Mountains
– Science experiment gone awry
– Magic/Summoned
– The Gods
– Birth defect
– Hell
– Extreme emotions manifested in three dimensional space
– I don’t know. I’ve just always existed as far as I know.

Where are you now?
– Feudal era, Modern day, Futuristic urban/rural
– Fantasty world
– The pages of a storybook
– On a ship (sea/space)
– In a cave
– Underground, waiting, biding my time.
– In a castle
– In a heavily secured experimental lab on a military base
– In a house, mine or someone else’s.
– Encased in a tree/boulder/etc

Games I can see making at this time:

– You’re a vampire in a village trying to suck the blood of your neighbors while avoiding detection. You’re stronger and faster at night, but you’re vulnerable during the day. It’s similar to a concept I came up with a long time ago, only you were the vampire hunter then.
– You’re a tiny monster sent to help a poor human family. You mend things and try to make things right, but if you’re caught, it’s bad news for everyone. So, a stealth game? I can see this being a platformer to really emphasize the height difference, but I don’t want to spend time on figuring out platformer physics.
– You’re an ancient evil imprisoned in something magical like a tree or boulder, but you have limited abilities. You are able to influence people from a nearby settlement and you want them to break the hold on you, but you need a lot of them and no one knows about you yet. You want them to free you without tipping them off about your intentions. So, a strange sim game?

And there’s 30 minutes left to decide…

Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: It’s Started! And the Theme is: You Are the Monster #LDJam

Ok, Ludum Dare #33 has started, and “You Are the Monster” is the theme.

I can see a lot of potential here.

Richard Matheson’s I Am Legend pretty much ends that way. Maybe you are a stranger in a new world, or your own world that has changed dramatically to the point you don’t recognize it, and everyone is afraid of you.

Perhaps you are Mary Shelley’s Frankenstein’s monster, created by a mad scientist and now on the loose, being chased by townspeople with pitchforks.

Maybe you’re a vampire trying to live in a village and feasting on neighbors without anyone figuring things out, such as the vampire hunter that came to town.

What if you’re a sea creature terrorizing ships and divers while trying to avoid being caught?

Jekyll and Hyde? You are turning yourself into a monster for…some reason. I never actually read this story.

There’s a lot of classic horror as source material to explore. The Invisible Man, werewolves, The Deadly Mantis, The Murders in the Rue Morgue, War of the Worlds, Godzilla, King Kong, Godzilla vs King Kong, etc etc etc.

And of course there’s non-horror classics such as My Teacher is an Alien, or Little Monsters, or…do Garbage Pail Kids count?

I’m going to doodle and try to settle on a direction as soon as possible.

Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: Yeaaaaaaaah! I’m in! #LDJam

I’m in.

Here’s my pre-compo checklist for Ludum Dare, the 48-hour game development competition that starts tonight and ends on Sunday.

I’ll be using C++, libSDL2, CMake/make, the awesome sfxr by DrPetter for audio, my own basic code base, my prototype toolkit, and a secret ingredient: love.

Last time, I did a terrible job of pacing. I focused on creating bad art instead of designing a game, even after I said I would do the opposite.

So this time around, I’ll be focusing on mechanics. For real. I’ll prototype and focus on getting something playable as quickly as possible, and I will iterate on the design so I can feel confident that I will have something to submit by the deadline.

If I need art, I’ll force myself to use circles and rectangles, or I’ll make a quick doodle, take a picture, and turn it into a sprite without worrying about cleanup.

I’m looking forward to making a game with you.

Well, not with you. I’ll be working by myself. But at the same time as you make yours.

As usual, I’ll be cross-posting between here and the Ludum Dare blog.

Good luck, everyone!

Categories
Game Development Geek / Technical

My History of Game Jams, Part III #LDJam

I’ve been writing about my lessons learned from past game jams. In a few short years, I’ve gotten better at finishing more ambitious games, and yet I still had a lot to learn.

If you didn’t read them, see my history of game jams part 1 and part 2.

Mini LDs
Between the major Ludum Dare compos, there are monthly Mini LDs. Usually someone hosts it and has the option of specifying special rules.

Apparently I didn’t blog about the mini compos I participated in. My favorite is from MiniLD #6 in 2009, which had the theme Monochrome and the special rules that you could only use a limited palette of colors. The idea was to combine all entrees into a single game. The other special rule was that each entrant also got a theme. I got Guardian.

I’m not sure how the final result turned out for all the games, but my game was Guardian Fish. I didn’t even plan on participating that weekend, and yet I put together something that people have told me would make a great game for the growing iOS market if I fleshed it out.

GuardianFish

In 2010, right before Ludum Dare #18, I hosted MiniLD #20 with the theme Greed and the optional theme of Fishing with a special rule: “Only one of each.” While programming usually makes it easy to make exact copies of objects, I was insisting that everyone had to ensure there was only one copy of any object.

While there was some griping about the constraint, there were more entrees in this MiniLD than any before it, even though a power outage and my project’s overly ambitious scope meant I didn’t get my own game, The Old Man and the Monkey Thief, done in time. I should have paid attention to my own compo’s constraints and adjusted the scope to fit it instead of trying to create a bunch of content to get around it.

Inventory and Treasure!

I wrote up a post-mortem of MiniLD #20, including both my own project and running a MiniLD.

It turns out that people want closure and it isn’t enough to simply start a compo and disappear.

My favorite piece of feedback:

I must say there were times when I wanted to stuff that glass of juice down his throat.

You can’t buy memories like that. B-)

It’s also when I met McFunkyPants on the Ludum Dare site for the first time. He’s a pretty awesome game developer, game jam enthusiast, and author, and he runs One Game a Month, an awesome challenge now in its third year.

Full-time Indie Jams

The MiniLDs are great practice for the main compo. I missed Ludum Dare #19 due to the holidays, but I was sure to be part of Ludum Dare #20. At the time, I was struggling with how long Stop That Hero! was taking and I wanted a quick win.

The theme: “It’s Dangerous To Go Alone! Take this!”

Ugh. Really? The meme won? Fine.

I had the initial design I went with right away, prototyping it and eventually making it happen, except I didn’t get it done in 48 hours, so I once again took advantage of the third day of the Ludum Dare Jam to submit Hot Potato!, a game of delivering a package while avoiding the agents trying to grab it. You can pass the package to an adjacent courier (the “take this!” part of the theme).

Screenshot - Final with pedestrians

Once again, simple graphics meant getting things done more quickly, although I didn’t get nearly as much done nor as quickly as I would have liked.

It would be over a year before I would participate in another game compo. Ludum Dare #24’s theme was Evolution, the Susan Lucci of Ludum Dare themes that never won until it did.

I managed to have something playable very quickly, and I iterated the development well. I didn’t get everything I wanted, but when the 48 hours were up, I had something fairly solid to submit instead of trying to rush something that resembles game play at the last minute.

Evolution Game Play

It turns out that Ludum Dare had been getting quite popular, and it has been hard to get people to rate games. In the past, you were given a random list of 20 games, and you were expected to do your best to rate at least those games. Now, they introduced a coolness rating, which increases as you rate other games, and it’s value determines if other people see your game when they get their random list of games that need a rating.

I didn’t plan on setting aside time to play and rate games, which hurt me in this compo.

In my post-mortem of Ludum Dare #24, I wrote:

If I could do LD#24 over again, what would I do differently? I’d spend more time upfront trying to create a design better suited for the theme that is also simple enough for me to make. I’d make sure my list of tasks was prioritized so that at all times I was working on implementing something that served the core design. And I’d make sure that I had set aside time after the compo and Jam to rate other games. People worked hard on their entries, and with over a thousand of them submitted, it’s unfortunately easy to get buried. I think the coolness rating does a great job of making things fair, and the name is perfect. I want to be cooler next time.

Another Long Absense Before the Next Compo

But it would be another two years before I participated in another game jam. By this time, I had a day job again, progress on Stop That Hero! was indefinitely on hold, and I had spent some long and dark evenings figuring out what direction GBGames should go in.

And I apparently forgot my previous game jam lessons.

I came up with a lot of ideas for Ludum Dare #32’s theme, An Unconventional Weapon. Some of them were used by other participants to great effect.

I loved the idea I ran with, though: getting a giant monster to follow your character so you can lead it towards your enemies while avoiding death yourself.

LD #32 Giants And Ogres

My strategy was to doodle when I wasn’t coding, and rather than use my poor digital art skills, I would use my less-poor pencil drawing skills and digitize them.

LD #32 - Controllable Character

And then I threw out that strategy for some reason and tried to create sprites that face four directions, taking up the lion’s share of the time I spent on this compo.

LD #32 A Giant Weapon

What’s worse is that while the animation helped, it looked worse in screen shots and didn’t look much better in motion. So all that time I could have spent on actually getting game play in was wasted.

It was hugely disappointing Ludum Dare compo for me. You could say I was rusty, but I handled my pacing badly and focused on assets instead of game play.

At the time, I was hard on myself and felt like it was proof that I still suck at game development. On the other hand, a few years ago, I would never have been able to quickly put together the limited game play that I did. I had a character that moved where you clicked in a very intuitive way, which is something people complimented me on, and I had a monster that you could attract either by getting in its vision or yelling out to it. The animations helped make it easier to see where the monster was looking, but I could have simplified them and had something working much faster.

So to be fair to myself, yeah, it sucked I didn’t submit a game, but I’ve come a long way from FuseGB and my first game jam.

Immersed Learning Experiences

My time working as a full-time game developer were definitely very good in terms of how much skill I developed and experience I earned in a couple short years, but the next best thing is a weekend dedicated to creating a game.

When you fully immerse yourself in the work, and when the constraints are that you need to have something finished in a short amount of time, you don’t get to procrastinate or be idle. You don’t read how to do things.

You spend your time doing.

And in the end, you have either a completed game that never existed before or experience to leverage for next time.

Getting that game finished is a great feeling. You get to point to a real game and say, “I made that. I’m a game developer. I developed a game.”

I’m looking forward to the next game jam. It’s another opportunity to grow with an entire community of game developers.

Categories
Game Development Geek / Technical

My History of Game Jams, Part II #LDJam

Last time, I talked about my first ever game jam and my first year’s worth of Ludum Dare events. After many years of thinking about it, it was nice to finally get some wins under my belt as well as a couple of good lessons. If you didn’t read it, see my history of game jams part 1.

My second Ludum Dare year

April 17th, 2009 was the start of Ludum Dare #14. The theme, Advancing Wall of Doom, was announced while I was out at a party for way too long, which meant I got a late start.

I remember thinking about something along the lines of Rampart, and eventually settled on a design in which you are trying to capture resources with your walls while preventing your opponent from stealing them. I had some neat design ideas and concepts, but almost no code after the first 24 hours. Oof.

Back then, Ludum Dare had medals for each category, and not only can your game be ranked, but the fun side competitions were the Community and Food compos. I got gold for my food pictures, and it was the only reason I submitted anything, because when the deadline hit, I had nothing else to show for the weekend but a button you could click.

Screenshot-Walled Off by GBGames

Since I was writing everything from scratch, and my previous attempts had either keyboard input or paid attention only to mouse movement, I learned how hard simple GUI elements such as buttons were to implement. It turned out that they have a lot going on under the hood.

I really wish I had written a post-mortem for this failure, too. I think it would have been insightful today.

That year’s August, Caverns was the theme for Ludum Dare #15. I had a good idea right away, and I ran with it.

Prototype Update

I took advantage of some new prototyping lessons I learned from Ian Schreiber’s free Game Design Concepts course, and I think I was able to put those lessons to good use. The final game had a lot of help getting finished because I spent some time figuring things out with paper and wooden pieces.

CavernGameFinal

My Mineral Miner post-mortem shows that rapid prototyping works well, and writing good, non-buggy code would help too. Graphics and sound are great for polish, but a lot can be done with terrible placeholder art. I also need to work on my pacing so I’m not wasting time figuring out what to do at any given moment. With only 48 hours, every minute counts. Even though I took in a soccer game and still managed to get a game finished, I could probably have used those few hours to make things better. I would try to make sure my calendar was blocked for for Ludum Dare weekends from then on.

Full-time Indie Game Jam

I missed Ludum Dare #16 and #17, but Ludum Dare #18 was a special one in my heart. It was the first one I participated in as a full-time indie game developer. In 2010, I had quit my job earlier that summer to be an independent game developer, but I had no dream game I was trying to make. When August came, I knew I was participating in Ludum Dare.

The theme was Enemies as Weapons, and I normally don’t like to think about the potential themes before it is announced, this one was standing out in my mind. I wanted to make a reverse Super Mario Bros in which you were Bowser sending Goombas and Koopa Troopas after the AI-controlled hero. I had just been learning a lot about game artificial intelligence, and this kind of project would be perfect for putting it into practice, except I would then also have to learn platformer physics.

So I changed the concept to a reverse Legend of Zelda, in which you were sending out minions to stop the hero from storming your castle and destroying you.

I spent some time coming up with other concepts before settling back on the reverse Legend of Zelda. My prototypes look very much like the end result.

More prototyping

Stop That Hero! is finished

I created a project backlog because I knew this project was going to be ambitious. I was making an epic game.

The game has a title!

As my Stop That Hero! post-mortem says, I missed the original 48-hour deadline, but luckily the 72-hour jam compo was introduced and so I used my Monday (because I was full-time indie and could use my days however I wanted) to finish the game.

I spent too long on the UI again, and I had to scale back on my ambitions, but I was very pleased with my casual strategy game. Unfortunately, the jam compo wasn’t very popular then, so not many people played or rated my game, but the October Challenge proposed by Mike Kasprzak was coming, and now I had a game I wanted to make. I made this game in 72 hours. What could I make in another month?

It turns out that it took me another year to make Stop That Hero! into a more fleshed out game. Oof.

Stop That Hero!

More Game Jams

I was a full-time indie by this point. I had all the time in the world to participate in game jams, but I also had to do work that brought in money. What did I do next in terms of game jams?

I’ll write about it next time.

Categories
Game Development Geek / Technical

My History with Game Jams #LDJam

If you want to be a game developer, you need to develop games.

And when I look back on what games I’ve made, I realize that most were originated during game jams. What follows is a trip down memory lane with links to my game jams of the past, complete with links to post-mortems. Those are hard-earned lessons learned from a game jam veteran, kids.

2005: Game in a Day

Garage Games used to host the 24-hour game jam Game in a Day. I participated in my only Game in a Day on June 10th, 2005. The GID theme was Fusion, and I came up with an ambitious design.

I’ve been warned by TomB in #gameinaday on irc.maxgaming.net that I really should pick something simple for my first GID. The fact that I feel I need a design means that it is too complicated. Perhaps he’s right, but we’ll see how I do.

It would be an ambitious design for me today to complete in a 48-hour game jam such as Ludum Dare. I was young and naive, I was not very knowledgeable about the programming language or the 3rd-party libraries I was using. I had no experience with pacing in game jams. Even so, it seems even this early I learned a lesson that would serve me well to remember:

About 10 hours later, I finally have the main character moving about the screen according to the arrow keys. He only moves in four directions, but I’m not going to draw up more images for diagonal movement this late in the GID. I’d rather spend my time getting the fusion part of the game going.

Smart move, Self from 10 years ago!

What I recall most vividly during this jam was an overwhelming sense of fear the likes of which I have never known before. Early in my 24 hours, I started worrying that I didn’t know what I was doing and wouldn’t be able to finish, and I felt like I should quit. Logically, I knew it made no sense, that if I stopped, then it was a self-fulfilling prophecy, but it was a cold, numbing feeling I couldn’t easily ignore. Fear is the mind-killer, the little death that brings total annihilation, and I was apparently facing it head-on for the first time in my life.

But I did it! My first game jam ended with a playable game, the creatively-named FuseGB. It does not resemble my design at all, but I pushed forward and managed to make a playable game in 24 hours.

I gained a lot from my Game in a Day participation, including first-hand experience I never had before that would serve me well.

2008: Ludum Dare

Three years later, I was getting ready to participate in Ludum Dare for the first time, back before it had a dedicated domain name.

LD11 Minimalist by GBGames

Even though I spent a lot of my precious development time trying to get basic infrastructure together, I had a finished game with six hours left to polish it up before the deadline. I purposefully picked a simple set of mechanics so I had the best chance of finishing. While today’s Ludum Dare competitions see thousands of entries, in 2008, there were 70. I earned my first LD trophies in this compo, including my prized “Amazing Pickle Sandwich” award from HybridMind and The “Thanks for Epilepsy” Award from keeyai.

You can read my Ludum Dare #11 post-mortem for Minamilist, which eventually became a slightly better game Walls and a short-lived Facebook game called Sea Friends. It even inspired Maximalist, a game by pansapiens I enjoyed.

Later that year in August, the 12th Ludum Dare compo started with the theme Tower with the optional theme of Owls. I had successfully submitted games to two game jams, so I went in quite confident. I was also dabbling in test-driven development at the time, and I thought that a timed competition was the perfect time to practice my TDD skills.

Ludum Dare #12 was the birth of the ridiculously obtuse Towlr games, but I managed to submit what amounted to a tech demo. It had an owl, and a lot of people were inspired by my user interface. I got “The Palm Of RSI Prevention” trophy from Hamumu for it.

Tower Defender Game Play

But it wasn’t a complete game, and in fact it had bizarre bugs, such as the enemies climbing up the tower into the sky and getting stuck. As you can see, apparently I thought this bug was a good thing to show in the screenshot.

There was no way to lose, and no way to win. According to my Ludum Dare #12 post-mortem for Tower Defender, I wrestled with technology more than with game development, something I still struggle with because I insist on doing everything from scratch instead of using existing tech.

Months later, coinciding with the Winter Olympics, Ludum Dare #13’s theme was Roads, and early on I had a concept that I saw to completion.

Road Lockdown design

These design notes eventually turned into these guys:
Road Lockdown

driving around in this game, Road LOCKDOWN!:
The final screenshot

I find this odd, but somehow I never wrote a post-mortem for this game jam. The final entry post and development time lapse don’t really say much about what happened, but I recall getting the game finished and submitted at the very last minute, getting “The Photo Finish” trophy from Doches. The game earned me The “I Can’t Get You Because You’re In The Bike Lane” Excuse trophy from demonpants, poking fun at how you have limited controls available to steer only at intersections so your squad car and the criminal’s car can be driving towards each other but in different lanes of traffic.

But the important thing is that I finished a playable and complete game again. That’s 3-ish out of 4 game jams, and that ain’t bad!

More Game Jams to Come

Thanks for reminiscing with me. Rereading my old posts reminds me of how far I’ve come.

Soon I’ll write up what happened in the next year and beyond!

Categories
Geek / Technical Personal Development

Remember the Good Ol’ Days Before Social Media?

Web 2.0 was all about changing the Internet from a solitary experience to one in which you are a consumer of content to one in which you are creating and sharing as par for the course.

Today’s social media took it to an extreme. Tweets drive Twitter. Facebook made sharing cat pictures and status with your friends easier, before making it difficult to see unless you opt-in twice, once by liking and once by saying, “Yes, I mean it, I want to see this account’s updates, please.” Pinterest became a huge force in its own right, and it’s all about pinning interesting things you find elsewhere.

Recently I’ve been seeing quite a bit written about the downsides of social media. Steve Pavlina wrote last month about taking a year off from social media and feeling much more conscious and in control of his life. He could concentrate on what’s important, such as planning out how he was going to accomplish important goals.

Social media gives us instant feel-good rewards for doing next to nothing of value. When those rewards are no longer so easily accessible, we have to work harder for those same feelings. When we accomplish something meaningful to create that dopamine surge, the feelings can positively guide our behavior, and those feelings can stack up and create lasting motivation to tackle more sizable goals and projects.

MMO designer and author Brian Green of Pscyhochild’s Blog is writing daily posts for Blaugust, and he’s focusing on what he doesn’t like about social media this week, analyzing how it works and what the repercussions are for discourse in society.

…the nature of social media is that it polarizes people. Often if someone doesn’t appear to directly support a position, some assume they must support the opposite and are therefore the Great Satan. Nuanced views are often looked at with suspicion. This causes a lot of frustration, as it closes off useful discussion.

See Social Media: What gets promoted? and Social Media: It leads to the darkside for more of his thoughtful analysis.

While I’m a fan of social media, I find myself agreeing. I’ve had to make the decision to stop checking Facebook first thing in the morning because I found it to be a time suck. I get more important things accomplished when I focus on them than on seeing what funny video was shared today or what notifications I should check. It took me awhile to resist the urge to type “f+TAB+Enter” in my browser first thing when I sit in front of the computer, since Facebook showed up as the first entry every time. I find myself checking notifications on Twitter on my phone throughout the day, and when my app is not pushing them, I go in and check anyway in case the notification function is broken. It’s bizarre and makes it hard to concentrate.

And the content is generally terrible. <insert picture of Grumpy Cat here>

I see clickbait headlines that promise things that will blow my mind that usually garner no more than a shrug, yet I’ve already clicked on the bait and wasted my time. At some point, I got fatigued by it and stopped clicking, but I admit it took me awhile to catch on.

I see friends posting hateful statements in public view that they would never say in person, or at least I would hope they wouldn’t.

Every so often I see something genuinely inspirational, but it can be buried among the vapid motivational quotes and celebrity put-downs.

Why do we spend so much of our time actively looking at this stuff? And why do we seem to keep distracting ourselves with it when we know we have more important things to do? How else is it changing our behavior?

Social media makes it easier to share, but I get confused by the work flow of blog readers these days. Someone will click on a link in Facebook or Google+ to a blog post, read the post, then instead of commenting at the bottom of the actual blog post, they go back to the social media platform they came from and comment there. And the thing is, I do this, too. Instead of treating the blog post as the source of the conversation, it’s as if it is the social media platform that is the driver and the blog is a temporary stop.

I actually miss the old days when bloggers would write comments on each other’s blogs, when a response to your post would as often as not be a post on someone else’s blog linked back to yours instead of disappearing into the hard-to-find social media comments section.

I miss people blogging because they had something to say, not because they were part of a blogging collective interested in selling you on some narrative, trying to get you to see and click on ads while giving you feel-good or feel-angry notions for a few seconds until you click on the next thing.

All that said, social media is probably here to stay, and luckily it is amazing because while it can seem like nothing but pictures of breakfast and pithy sayings to some, it means getting around authoritarian censorship for others. That is, real and dangerous censorship, not the kind that people made up to mean they don’t like the consequences of their free speech. It means keeping in touch with people you met at a conference. It means meeting new, like-minded people.

Social media allows the invisible to become visible. Hashtags such as #BlackLivesMatter are used to raise awareness of racial injustice. Many people of privilege are more aware that they even have privilege than before. Major accomplishments in science, such as NASA’s New Horizons flyby of Pluto, means a lot of excitement and hope for humanity that may translate into children today becoming the scientists of tomorrow. People no longer limit their social circles to geographic locations, which is great for us in the flyover states.

So, there’s a lot of good in social media as well.

But social media makes all of us publishers. Did we waste each other’s time with what we put out into the world? Will we be proud of it when we look back?

Or will we simultaneously feel glad that no one can easily find it a few days after we hit the Share button and feel worried that it’s out there for someone to find if they really dig for it?

Categories
Geek / Technical

Keeping a Programming Journal #nfjs

Yesterday at the No Fluff Just Stuff conference, I went to the Learning to Learn presentation by Raju Gandhi.

He talked about the nature of knowing and learning, and he shared a number of techniques for learning more effectively.

But then he said something that especially piqued my interest. He mentioned keeping a programming journal, partly to be able to celebrate what you’ve accomplished, and partly to have something to reference when you inevitably forget a key detail.

Whenever you learn something new, log it.

And I thought, “Blog it!” That way, you aren’t the only one who benefits from your new education.

It’s something I already do, but not consistently. For instance, when I was implementing my own physics code for a game, I ran into a crash bug when sorting my objects, and when I realized what I had done wrong and fixed it, I wrote about it.

What’s funny is that later in the week, I ran into the same exact problem at the day job and knew exactly what was going wrong.

Five years ago, I wrote up all of my research into component-based entity systems when I was looking into implementing it for my own game project, and people still find it useful today. Heck, I still find it useful today. Thanks, Past Self!

Sometimes I do things that I haven’t written about. For instance, when I ported my existing game engine code and cross-compiling build scripts from SDL to SDL2, I didn’t blog about it. I had to do some research and figure out what’s really different, but for some reason I thought it wouldn’t be interesting enough for anyone but me. Now I wish I had a way of seeing how much effort there was to do so because most of it is forgotten.

So going forward, whether I deliberately set out to learn something like a new programming language or learn how to fix an annoying bug, I’ll make sure to publish it, both for your benefit and for my own.