Sunday, July 29, 2012

Installing Twisted Python / Scrapy using Mingw

I kept getting errors about -mno-cygwin, not being defined or deprecate or something using either pip install scrapy or easy_install scrapy. It wasn't particularly easy to find the solution but a stackover post suggested this:
After more some googling, I found guidance that recommended removing -mno-cygwin fromC:\Python27\Lib\distutils\ because of a distutils bug.
Removing -mno-cygwin from C:\Python27\Lib\distutils\

Which finally worked for me.

Or even better use the excellent prebuilt libraries from here:

Monday, July 23, 2012

Vampire the Maquerade : Bloodlines

I bought this game in the Steam Sale recently after hearing good things about it. I've always loved Trokia's logo, it's so fitting!

Their games always had bugs and design was obviously prized higher than art or code but they were very good - perhaps that's a good trade-off - although perhaps not, as the company did go under (Makes me wonder who gets the money when it's sold on Steam). And that's not to knock their code they were doing advanced stuff and a sprawling RPG is hard to do, especially Trokia types where there are so many different variables - what have you done in the past, what stats do you have, what is your character background etc, etc all these affect the current plot line.

Bloodline's reminds me of Deus Ex a bit, the games have a similar grammar. Locked down 3d areas, skill specialization, computers to hack, doors to lock pick and feuding NPCs. I had to get the community patch to get the HUD textures to stop being a blurry mess and I still ran into a bug where a location was supposed to open up but didn't.

The really pain of having a bug in games like this is the you're not sure if you're just stuck or the game has broken. That means you either waste time to ultimately discover you have to restart or hack your way out of the bug or you check online and ending spoiling part of the game.

The writing is very good, the characters have distinct voices and interesting personalities which isn't the case in a lot of games. A lot of the interface has obviously been thrown together with little thought. Sometimes escape removes hud items, sometimes it takes you to the main menu. Where on a Windows OS you'd expect the OK button to be is the delete save game button! Also if you get trapped in the physics collision sound effects are continually fired off - this is a really easy bug to fix and it's hard to understand why it wasn't (even with deadline pressure, it's the kind of thing that would take a couple of minutes and could be done while thinking about how to tackle something more serious. This article goes someway to answering that I guess.)

One of my pet projects is a type of quest designer or adventure game designer where everything is spelt out as a dependency - basically a mini-version of Prolog with a nicer interface. Then the tree of possible options can just be brute-forced (or something more clever if I can think of it) and that will guarantee there can be no broken quests.

Saturday, July 21, 2012

Git / GitHub Cheat Sheet

This mainly for my reference!

Checkout a repo from GitHub
git clone[username]/[project name].git
Add single file 
git add [FILENAME] 
Add everything and all sub dirs  
git add .
Also wild characters
git add *.c

Locally commit the files / staging 
git commit -m "commit message goes here" 
Commit back to github
git push origin master 

Get the latest changes from github
git pull
Forking your own git project
- Make a new project (don't auto generate a readme)
- Clone it locally
- Navigate to the dir and 
git remote add upstream[repo name]/[Project want to clone] 
git fetch upstream

Monday, July 02, 2012

Git Repo

I registered for Github a while back but only recently started using it. I'm still getting use to Git and I'm still quite new but I've been slowly adding the code for a little Lua based game engine. I guess it's similar to Love2d but in a way I prefer to program, better code reloading and I'll probably add some 3d stuff. My main sticking point is choosing a 3d file format.

This codebase is mainly for quickly prototyping games and it should run on everything. If that game's fast enough then that's cool. There's only a game loop at the moment.

This is a good getting started post: