Game Design, Programming and running a one-man games business…

Announcing Big Pharma – The pharmaceutical strategy game

Regular blog readers might know that I published a game by a third party indie developer called The Tiniest Shark which produced Redshirt, the sci-fi comedy social-networking life sim game, which you can buy HERE. I enjoyed taking on the role of indie publisher, for all kinds of reasons I’ve talked about before. And lo, so it came to be that I was pitched another indie game that I’d love to see made, and it’s called Big Pharma

logo_300width

Big Pharma is being developed by another UK studio called Twice Circled, and designed and coded by Tim Wicksteed, whose blog you will find here. We also have a bare-bones facebook page for now for the game here and an actual website for it (with some very early images) here. In terms of genre, it’s a strategy game based on running a large pharmaceutical company, that is part biz-sim, part isometric factory/lab building sim, and it looks like this…

bp1

bp2

I LOVE the design and idea behind big pharma. I want to play it right now. It scratches that itch you get from games like Anno 2070 about laying out production lines, without having to use uplay or wait 40 minutes for the game to load. It’s also a proper biz/management game, which is obviously right up my street. It *is* quite early to be announcing this game, by positech standards. We normally wait much later, but the reason to announce now is that YOU CAN PLAY IT if you come down to the Eurogamer expo in London this coming weekend. Big Pharma will be there, alongside Gratuitous Space Battles 2.

So journalists…come…be our friends. We will shake your hands and talk enthusiastically about both games. You can have a go, and ask us questions. Big Pharma is NEW, nobody has played it yet, or heard about. Come and be the first to tweet/blog/write novels about your impressions of it. We dare you! And obviously come play Gratuitous Space Battles 2 as well. It is a sequel, but it has spaceships exploding, so swings and roundabouts…Plus we will have badges. Actual proper badges.

Me and Tim will be at the show all four days, so no need to book a time or anything. We will be in the indie area near prison architect. Oh, and if you like the look of Big Pharma, pls like it on facebook so we don’t feel lonely there…

PR and the 3 tiers of game developers

Things are pretty tough in the mid-tier, as an indie game developer. I see a huge disparity between those devs that have been called ‘triple I’ indies (sorry paul!) and new entrants making their first game in unity. I also see a big gap between those III indies and the AAA developers. It seems game development is collecting into several bands, and I suspect a lot of it is PR related.

tier1

At the bottom (financially speaking) you have those indies making their first game, and selling a  few hundred, maybe a thousand copies. They have zero PR budget and Zero marketing. They probably have coder art, and are doing literally everything themselves. They make up the majority of games still stuck in steams Greenlight pages, or have an app on the app store. A lot of them may be working on their games part-time, or are students, or very young. their living costs are young, they are idealistic, and presume their game is about to take off and make money. Statistically speaking, they probably wont, but a combination of youthful optimism and relentless confirmation bias means they are still working at it and are still assuming they will stay in the industry. The only PR they do is on twitter and reddit personally, trying to get people to play their game. The ROI is zero. These people lose money.

tier2

In the middle (again, only speaking financially) are the established ‘III’ indies with a few titles under their belts, or the ones who had a proper art and PR budget. They are probably migrants from Triple-A studios, with years of coding experience. They are aged 25+. They may have a small team, be working full-time, and are probably self-funded. They have some actual advertising budget, might hire a PR agency now and then, they attend trade shows with proper booths (not a laptop and a self-printed poster stuck to the wall), and have professional looking trailers. Their games sell 20-200,000 copies. Some of them are millionaires. A lot of them make a pretty decent living, and are likely to weather any coming game-crash or storms. They use google ads, reddit/twitter/facebook promotions etc. The ROI is pretty good, 200-300%? My company is in this tier.

tier3

At the top (purely financially :D) are the AAA developers. Their games cost millions to make, and sell millions of copies. They have full-time PR companies, with print-media ads, huge booths with people dressed up as game characters. They have massive site-takeover ads and streaming video ads. They have billboards in the streets, on buses, ads on TV, and their PR people guarantee these are the games that get written about in national newspapers and magazines. They get mentioned on TV in geeky segments in the news. The owners are multimillionaires. The staff are paid whatever they can get away with. The ROI is very good here, maybe 400%?  Activision is in this tier.

Ok, so what’s my point?

My point is that it’s getting hard to move from one to the other. Yeah, minecraft is the mega-exception that proves the rule. I know a lot of people in the middle tier, and I’ve yet to see any of them break out of it in a big way. The gap between them and the AAA is huge. Maybe it’s just that the sheer money involved requires a different mindset? Rather than spend $100-200,000 on a game (I’m calling that mid-tier) then you have to spend $2,000,000, and the likelihood is you don’t have that cash sat there (some do…). That means borrowing, which means proper big investors, VCs, people wearing suits… proper accountancy rules & board meetings blah blah. Maybe it’s too much hassle, or not what those devs want to do.

The good news is that going from bottom to middle isn’t as hard. I think it can be done by angel-investor style funding, or the real plucky confident people who remortgage their house or sell everything they own. I think you probably need to spend $100-200k to make a game that pushes you to mid tier. That either sounds like a good deal, or terrifying depending on your risk-attitude. The good news is there are some indie devs who can fund games to that level, if you make a very good pitch.

It’s hard but I think middle->top is harder still. I pretty much know why I’m stuck in the middle. it’s manpower. I need to find people I’m prepared to hire full-time, or at least on long term full-time contracts. I haven’t done that. Yet.

 

Optimizing dilemma of the day

Below is an image from Gratuitous Space Battles 2‘s ship design screen. On the left is my problem. That’s a load of ship components you can add to a hull, rotate, change size, color etc. All very cool. The problem is that you might choose to have BIG versions of some of them, as main structure bits, so the source graphics have to be big, normally 256sq for sub-components.

blog

Ok, so that’s cool, but the problem is, when I load in those icons I’m loading in a DDS file that is 256 square, which means about 170k in the format I’m using. If I have 300 of them (rough guess) then that’s 51MB of file access, which is bad but not catastrophic, but it does mean 300 distinct file accesses, which is slow, even after I’ve rewritten the DDS loader to be massively faster. As a result, when you click on ‘edit appearance’, there *might* be a slight delay, which is intolerably awful for someone like me with zero patience. And I have a FAST PC, I want this to be fast and smooth on low-spec.

So as I see it the options are:

1) Only load visible ones, then load the others as you scroll (could be irritating for scrolling)

2) Load in placeholders, and spin off the file accessing portion of the texture load into a separate thread, then when they are all there, interleave the texture creation with the display frames of the main thread (DX9 so only main thread may do DX stuff). This seems ultra complex and hacky.

3) Save out small preview images for each item, and load those instead. Less memory, but a bunch of useless duplicate files AND still 300 file accesses.

4) Stick em all in a single big pak file and see if that’s quicker. This is easy, but I find it messy during development as I’m always adding/removing/editing files in those folders, so I need a hybrid debug/release system.

I think I might have to go with 4…

I know file access is slow but….

As a programmer, you learn fairly early on that file access is very slow. The slowest place to get data is the hard disk, we all know that. Ok, maybe tape storage. But it always amazes me just *how slow* it can be. I don’t mean the stuff like reading a texture file from disk, you expect that to be tiresome, but just file-system operations stuff. I guess I’ve always assumed that because modern hard drives have cache chips on them, and we also have a LOT of RAM available to page stuff, that querying the NTFS (or whatever file system you have)  file table should be fairly quick.

In other words, seeing if a file exists, or enumerating files in a folder shouldn’t take an age, if I’m not actually going to load in the contents. Doesn’t windows know enough about optimizing to page chunks of the FAT into RAM?

Maybe it can’t, or it doesn’t work that way, but I have discovered, to my mild surprise that if you don’t want to use compressed or locked pak files (I like an open file structure to encourage investigative modders), it actually makes enormous sense from a performance POV for you to scan your whole game folders file structure into disk and manage your own file-cache for stuff like enumerating filenames later on.

Why would I not know what files to access already? Well GSB2 writes a lot of files at runtime, and it also handles some objects having companion lightmap files, or sometimes not. The simplest and most flexible system is for it to check for companion files at runtime on startup, and then field any FileExists() calls internally. It’s faster. And I mean its 10x as fast, we aren’t talking 1% speedups here. Things are now getting to the point where I just assume all O/S code is sluggish bloatware and write my own versions whenever possible. I might eventually have to do some trickery involving multi-threaded file-loading, or loading in only specific mip-maps from files at specific points.

I do actually REALLY enjoy this kind of thing, which is a pain because I should be fixing bugs, implementing features and generally trying to keep GSB2 on schedule. Not to mention some new D3 DLC and the TOP SECRET THING. Oh and SMTG.

It’s a good thing I already have a holiday booked this year, as I’d never book one now if I’d waited this far :D