Project Frontier: Source

By Shamus Posted Thursday May 3, 2012

Filed under: Programming 125 comments

frontier_source1.jpg

The source for Project Frontier is now available on BitBucket. I’m really hoping you find it to be useful. I’m very sorry to see I left the codebase in such shabby shape.

The program defaults to re-loading the last save you played. If you’re running it for the first time, then it doesn’t do anything. Bring down the console with ~ and type:

game new 1

You can replace the 1 with any number you like. That’s the seed number used to create the world. Different numbers will lead to different worlds. (The screenshot above is from right near the spawn point in world #1.)

Looks like it also defaults to wireframe on, textures off, shaders off. That’s dumb. Sorry. In the console:

render.shaders=1
render.wireframe=0
render.textured=1

That should put you in a good place. Also use:

mouse.invert=1

If you’re a mouse-inverter. Use

flying=1

Or:

flying=0

To turn flying on and off. The WASD keys move you around. Right-click enters and exits mouselook.

Missing textures are represented with a checkerboard pattern.

Please let me know if you have any other problems.

 


 

Github

By Shamus Posted Wednesday May 2, 2012

Filed under: Notices 155 comments

EDIT: So after spending the better part of an hour trying to make this work, I see a comment from someone pointing me to an old post where I talked about using Mercurial for my project. I sort of vaguely remember looking at Mercurial at some point. I think I installed it?

I look, and sure enough I see Mercurial files in the Project Frontier directory. Hm. So I guess all I need to do is create an account on BitBucket?

I do so, but it turns out I already have an account. I log in, and I find weeks and weeks of meticulously tracked changes. Apparently I not only used Mercurial, but I used BitBucket, and I used both extensively. I can read through hundreds of changes. All written by me.

It is really, really creepy realizing that I did all this stuff and no longer remember it. It’s like looking at someone else’s work. Or like someone else is reading my work. Or something. I don’t know.

I’m worried there’s something wrong with my brain that makes me forget things. Also… what if there’s something wrong with my brain that makes me forget things?

Okay, I’ll be making the repository public, but I need to go freak out for a little while.

So I’m trying to add Project Frontier to GitHub. This is not going well.

Created an account. Created a repository. Installed Git locally. Followed the directions to set up git locally, which includes typing stuff into a Linux shell, which is trivial if you know what you’re doing and utterly, utterly mysterious if you don’t. Created ssh key. Set up a local repository. Added files meticulously one at a time from a list of hundreds of files because the Git GUI just lists all files and I don’t see how to filter for JUST source files. I hit commit and… nothing showed up.

Okay. This was supposed to be a quick & easy thing, and I’m now 40 mins in, I’ve got Git infrastructure spewed all over my computer and I can’t get it to do this very simple thing. I’ve used source code control before, and it was always pretty straightforward. Even thirteen years ago, I never had to type crap into a console window to perform simple tasks. Is Git only for people who understand Linux? (The front end is all friendly and Windows-like, which is what led me to believe I’d be able to do this. If it started with a console window I would have realized this was for someone with a different skill set and looked elsewhere.)

I see to get it to ignore the hundreds of unwanted files I just need to create a file called… .gitignore. Damn it. Stupid Windows will allow filenames starting with a period to EXIST, but it won’t let you CREATE them. (Minecraft has this same problem: the install directory is called .minecraft, which means if you want to backup & restore, you have to COPY files in and out of it, instead of renaming the directory.) You can blame Windows (I do) but the upshot is that I can’t use this feature on this operating system.

I have no idea what Git wants or how it works. I don’t see ANYTHING that tells me how to push changes to the remote repository. If doing simple things like “submit changes” means using a terminal window, then… damn. What year is it? I know you Linux coders have a high tolerance for this sort of thing, but damn – there are better ways of using a computer these days. Case in point: If I had a menu, I would be able to work this out for myself.

So, I’m willing to put time into this if it means it will be done right. But if Git is useless to a non-Linux person on a Windows machine, then it’s time to uninstall this mess and look elsewhere. So how about it? Is it possible to use GitHub with this GUI front end? Can Git work without using a terminal? If Git works on Windows, can someone explain how to go about getting files from here to there?

Sorry to use the community as a search tool, but Google isn’t helping and I’d like to know if I’m wasting my time before I do any more of this.

EDIT: Based on the comments, looks like GitHub is the wrong way to go for me. I’m going to try out BitBucket.

 


 

Alan Wake EP6: The Taken Are Filled With Bullets!

By Shamus Posted Wednesday May 2, 2012

Filed under: Spoiler Warning 118 comments


Link (YouTube)

It’s going to be really embarrassing if Rutskarn, Chris and I are the only ones who ran out of ammo here. But let’s talk about this: The game is entirely gunfight focused. If you lose the ability to shoot, you lose the means to progress through the game.

In most games I’d suggest some sort of Valve-style adaptive bullet supply where the game will give you more if you have less and vice-versa. (In Half-Life 2, health kits heal more if you have less health.) But I can see why you wouldn’t want that in some quasi-spooky game. But any game where ammo scarcity is an issue (survival or not) needs to have some kind of fallback system. Like I said, these mooks overshadowed the bosses in this part of the game, simply because I didn’t have the resources to proceed.

A running system might be dangerous to add. Given the overabundance of combat, it might feel like the game was encouraging you to run away from all fights, no matter how many bullets you had.

Adding melee weapons would have required adding new game mechanics. You’d need to make allowances in the AI so they didn’t just swarm you. (Their current brainless frontal charge AI makes melee completely impractical.) But having enemies stand around and take turns Assassin’s Creed style would really kill what little spookyness they have. I mean, you’re already just fighting guys in ballcaps. The darkness particle effect is all that separates these fights from a bar brawl. Having these guys line up and wait for their turn to axe you a question would cross the line from “not very scary” to “absurd farce”.

To sum up:

  1. Most games solve this by having foes drop bullets. I’m sure we can all see why that solution wouldn’t make any sense here.
  2. Melee would add to the expense of making the game, and would undercut the foes by letting you see the taken up close and forcing them to fight all sportsmen-like.
  3. Making bullets plentiful would remove the need to manage your resources.
  4. A running mechanic would encourage you to skip most of the game.
  5. Having players run out of ammo and get stuck on simple mooks, then blast their way through bosses will invert the intended tension levels and lead to frustration. (Which is what the three of us experienced.) Mixing ammo scarcity with checkpoint-based saves is a volatile combination that can result in the player losing hours of progress, which is often a game-killer. Playing the same sequence again and again destroys the tension, pacing, and flow of the game. Unless the player is in it for pure challenge, “stuck” is a failure state for both the player and the game.
  6. Adaptive supply might help reduce the chances of encountering an impossible situation, but it wouldn’t completely prevent it. And adaptive supply would nudge the game away from “survival” and more towards “shooter”.

I suppose I might suggest having minimum ammo counts at checkpoints. If you die, it restores you to the most recent checkpoint with whatever the intended ammo count is. That way complete ammo depletion results in replaying a section instead of a chapter.

This is a tough problem. I’m not saying you can’t solve it, but I can see how we ended up with what we have.

 


 

Project Octant Part 2: Octree

By Shamus Posted Wednesday May 2, 2012

Filed under: Programming 85 comments

Step one of this project is to bootstrap myself up to the point where I can start doing some 3D programming. If I was working in my familiar environment this would be about ten minutes, but now that I’m using Qt it takes me a couple of hours to get a sense of what I need and how I get it working. (Incidentally, Qt is pronounced “cute”, if you’re one of those people who likes to read my blog aloud.) There are example programs, but they’re usually demos of “OpenGL and some other concepts” and it’s not clear what parts of the code are the demo, what parts are infrastructure, and what parts are cruft.

Eventually I get a bare-bones application working that creates a simple scene with a checkerboard ground. Something like this is always step 1 for me. I learned a long time ago that you should have a simple, reliable, non-textured, orient-able object in the scene at all times.

octant1_1.jpg

The reason for this is that early in a project, you can often find yourself in a situation where you’re looking at a blank scene and you don’t know why. I start up the program and I’m looking at a solid color. Did I accidentally type a wrong number and move all the scenery 1,000Km to the right, instead of one meter? Or maybe the scenery is where it’s supposed to be, but the camera has been placed far off? Did I mistakenly apply a transparent texture to the scene, thus making everything invisible? Is it even drawing the world at all? Or is everything fine, I’m just looking straight up at the sky? Actually, is the camera moving? Maybe the scenery is just off to one side but I’ve broken the controls so that I can’t move? After a few minutes of waving the mouse around and staring at a blank screen, the wise programmer will see the value of having a handy marker nearby. If something goes wrong, the checkerboard can help me know where to look for the problem.

Continue reading ⟩⟩ “Project Octant Part 2: Octree”

 


 

Alan Wake EP5:Renegade Interrupt

By Shamus Posted Tuesday May 1, 2012

Filed under: Spoiler Warning 108 comments

In which we punch the creepy Dr. Phil-esque guy. Because punching celebrity psychologists in the face, in a police station, during a kidnapping investigation / Verizon commercial is the thing to do.


Link (YouTube)

The “bootlord” thing is a reference to Rutskarn’s LP of Dark Messiah. The kicking mechanic in that game was hilariously overpowered. (Or maybe just over-fun, in comparison to the rest of the gameplay?) So he spent a lot of the game kickin’ stuff.

 


 

Project Octant Part 1: Introduction

By Shamus Posted Monday Apr 30, 2012

Filed under: Programming 133 comments

At PAX this year, during the Q&A session at the Escapist Movie Night someone asked about Project Frontier. This is still a thing people ask about. Remember Project Frontier? That was this thing:


Link (YouTube)

People ask me why I don’t work on it anymore. There are a lot of reasons, but the most important of which is: Because it was done.

It’s true that it wasn’t a game, and I occasionally talked and fantasized about making it into a game, but deep down my real driving goal was just to make my procedural generation ideas and prove they could work. I thought it might be nice if someone took an interest in the project later, and I always hoped it might lead to opportunity the way some of my other projects did, but at the heart of it was a desire to validate my ideas with a working proof-of-concept.

Once I’d gotten to the video above, I had 90% of what I was after. Sure, I could have done ten times more work to finish a game and get the other 10%, but I’m sure you can see why that route wasn’t particularly alluring. I had bills to pay and a book to finish, and so Frontier was shelved.

So almost exactly a year later, the programming bug has bitten again. I tried to ignore it so I could continue work on my next book. This resulted in me sitting with a blank look on my face, unable to write anything because I’d rather be programming. Which led to me closing the word processor and playing videogames, because I wasn’t getting anything done.

Continue reading ⟩⟩ “Project Octant Part 1: Introduction”

 


 

Alan Wake EP4:End of Episode 1

By Shamus Posted Friday Apr 27, 2012

Filed under: Spoiler Warning 173 comments


Link (YouTube)

End of Episode 1.

I really have to hand it to Remedy. Their TV-shows-in-video-games are always a lot of fun. I remember stopping to listen to each episode of Lords & Ladies in the original Max Payne. While Dick Justice in Max Payne 2 was probably a better send-up, I liked the ridiculous contrst between Lords & Ladies and the Max Payne world. It was always funny to see that some murderous crime boss had a thing for sappy public television historical dramas.

I wonder if Rockstar is going to put a TV show in the background of Max Payne 3? That’s Remedy’s gimmick, but the shows are one of the elements of the Max Payne World. And it’s not like Rockstar is a stranger to pop-culture satire. Then again, maybe being set in Brazil kind of prevents this. If they lampoon Brazilian TV it might come off as mean-spirited. On the other hand, shoving American shows into the world of Sà£o Paulo might undercut the setting. Even if they watch a good bit of American TV, the average American gamer isn’t going to know that, and the result would feel off. (Kind of how an establishing shot in a movie will always show the strongest elements of the local culture, as opposed to a McDonald’s, even if they have McDonald’s there.)

End of Episode 1.