Monday, August 3, 2015

Sub Rosa Alpha 24


Dedicated servers:
To run an open world server add "gametype=4" in the config.txt
Server system requirements are pretty high right now, does not run on a potato.

Spawn killing penalty is much harsher now, 5% and you will take as much damage as you give out.  When a player spawns they have a timer between 3 and 6 minutes (real time), if they pick up a gun or enter a base the timer is set to zero.  Entering a car sets the timer at 15 seconds maximum.

One of the main changes is the engine, it can now support a lot more types of buildings which will help to add more detail/expand the city.  I know one thing people are going to ask about is optimization, now that the engine is mostly complete I'll be working on benchmarking tools (so I can tell what's running slowly on different PCs) and implement the ideas I have for improving the rendering.

I'll put up a link to the Windows/Linux dedicated servers soon, hopefully people can host servers in all the places where people have had to deal with bad pings up to now.

added round-based mode
added voice chat
added magnum (the ammo is just a magazine right now but it will be an actual revolver soon, Receiver-style)
added uzi
added gun shop
added helicopter
added fall damage

Stock increases are more reasonable now, just a temporary fix as the stock system will change soon
Teams now start with two phones, the first has the team number and the second has the team number plus 1 (Nexaco is 4444 and 4445)
Improved gun/item handling, still working on smoothing this out more
The hospital is the only place to heal, testing this out for now

Fixed the landscape rendering which was extremely slowly on some video cards
Smoothed out the netcode for cars and players

Thursday, January 1, 2015

Sub Rosa Alpha 23

Fixed player character bug
Bandages can now be used twice
Old spawn building is now a hospital
Can exit immediately in hospital (player's character will disappear)
Otherwise your character will remain there for 1 minute
Trade missions can now have more than 1 team with cash

Death tax is now 5% of your cash over $10,000
Civ killing with 2-5 mins of spawn is now $10,000 plus 5%
Changed stock calculation, now decreases half of the potential increase if you fail (another team gets the disk)
Fixed client stock report bug

Fixed body parts getting stuck on stairs or windows
Fixed train window bug
Fixed stock display bug
Limited car buying to 3 per hour
Limited stock to 100,000 shares per team

Here's some of the changes for Alpha 23:

You can now buy stock in your company, if you succeed in missions the value will go up, if you fail it will go down.  When you sell stock you get 95% of the value.

Withdrawing money:
The banking in your base is now the company account, if you have a trade mission you can withdraw up to the amount in the mission info.  At the end of the mission the money withdrawn will affect your stock price according to the market cap (value of the stock times the number of shares).  Depositing money in the base also goes into the company account, with the same formula.  Example:  If the total shares owned by your team is 100, and the value is $100, if you deposit $1,000 the value of the stock will increase to $110.

You will now spawn outside of the city, the train should come around every couple minutes.  Get on it.

Civilian killing penalty:
There is a $10,000 penalty for killing a civilian within 2-5 minutes of their spawn, the amount is randomly chosen by the server.  If a civilian picks up a gun the timer goes to zero.

There are now 3 chat modes, normal, yell and whisper, this will affect the range at which players can see the text.

T: Talk mode
Y: Yell mode
U: Whisper mode
Enter: Chat

added $1000 bill
added landscape
added newspaper
added ambient occlusion option

optimized rendering

fixed aim
fixed glass slowdown
fixed player movement/standing up
fixed view while rolling
fixed players warping through walls/floors
fixed car engine sound
fixed traffic

Friday, June 13, 2014

Programming Tips: Comfortably Enum

After reading Casey Muratori's great articles on programming I've been inspired to post a few things on how I program.  In the last article he talked about enums, something I didn't really start using until after Gish, which can be very useful.  However, it can be unwieldy if you try to enumerate too many types, like for example a list of textures.  Say I have 4 player types, and 4 vehicle types, I could do something like this:

enum vehiclelist

enum texturelist

Then to bind the texture for the plane I would use:


The problem I ran into was if I wanted to add more vehicle types, or support more players, I would have to change the texturelist enum.  Also the enum would start to get very long, and while there's ways to shorten it I still felt that it was getting messy.

What I came up with instead is using a simple struct that's enumerated at run-time.  So the texture enum looks like this:

  int loc;
  int player[MAXNUMOFPLAYERS];
  int vehicle[VEHICLE_END];
  } texturelist;

void setuptexturelist(void)
  int count;

  for (count=0;count<MAXNUMOFPLAYERS;count++)
  for (count=0;count<VEHICLE_END;count++)

And to bind the texture:


The advantage here is I can add or remove vehicle types without having to change the texture enum, and I can have all types of textures without having a giant enum.  The only disadvantage is you have to call the setuptexturelist function at the beginning of the program.  This is actually the cause of the sound bug in Sub Rosa, where the car crashing into something plays the gunshot sound.  I wasn't calling the setupsoundlist function in the dedicated server, so all the of the soundlist is set to 0, which is the gunshot sound.  So you do have to remember to call the functions to enumerate even if the dedicated server isn't playing any sounds or displaying any textures.

And for making it through that here's a video of boxman falling over a wall:


Tuesday, April 22, 2014

Humble Weekly Sale

The new version of the Cryptic Sea EP is now available in the Humble Weekly Sale, you can get it and some other awesome games for less than whatever you want.  There's a bunch of new features, including singleplayer mode for Skate or Don't!, and 5 new tracks and cars for Touring Car Legend.  If you already bought the game with the Humble widget you can download the new version from the Humble webpage.

I've been making good progress on the other games also, should have some updates on those soon.

Thursday, February 20, 2014

Advice for Games Journalists

A lot of games journalists ask me how to get my games on their website, so I thought I would write a few tips on finding interesting games to write about:

1.  Look for games

Don't just sit there waiting for a developer to email you; go on forums, check Youtube/Twitter, see what people are playing.  Otherwise you're missing out on a lot of interesting games and only covering the developers who spend a lot of time writing emails.

2.  Do some research

When you do see a game on Reddit or another games website, don't just paraphrase what someone else said.  Try playing it or email the developer for a build, and then form your own opinion.  Don't be afraid to go against popular opinion!

3.  Be persistent

If I don't write you back about my game it might just be because I'm busy making it, try again or contact me on Twitter.

4. Don't fall for it

Just because Sniper Elite 3 made a video explaining their "X-ray kill-cam" doesn't mean you have to post about it.  Just because a mass murderer requests a PS3 in prison doesn't mean you have to post about it.  I know it's easier just to write a couple sentences and add a link to another website, but if you want to have good content you're going to need to put some more effort into it.  The first 5 seconds of viewing your website are the most important, if I see things like that I'm going to close the browser tab.

Alex Austin is the creator of BioShoot Infinite +1 and other games you haven't heard of, such as Sub Rosa, Hockey?, the Cryptic Sea EP, A New Zero, Rocket Builder, Relativity and Somnia.

Wednesday, January 22, 2014

Omega Jam

Omega Jam is a month-long game jam where 6 teams of indie devs try to finish current projects.  My goal is to finish an alpha of Sub Rosa with all the new features.  The idea goes back to the first 7 Day FPS game jam, David Rosen and I were at the IGN Open House during that week, he made Receiver and I made the prototype for Sub Rosa.  We both accomplished a lot during that week, and thought about doing something like that but trying to finish games instead of starting new ones.  The question was how to organize it, and how long should it be.

A month seemed like the perfect amount of time, enough time to get a lot done but still having that pressure of a game jam.  A few months ago we got in touch with Double Fine who had some extra office space and were willing to let us use it, and the idea finally started to come together.  It should be interesting, it's already been useful being able to bounce ideas off each other, and having that extra motivation of working around really dedicated people.  In the end it will be the games that decide whether it's a success or not, I think there will be some really cool things that come out of it.

Friday, January 10, 2014

Local Multiplayer Proposal

Local multiplayer games are gaining popularity on PCs, with games like Samurai Gunn, Towerfall, and the hugely popular Skate or Don't!.  But what if a player is on another person's computer but still wants to have their stats saved or use their characters?  How can multiple Steam accounts connect at the same time?  Here's an idea:

When a player is going to a friend's for local mutliplayer, they request a temporary password from Steam.  This would be 6-8 digit, or perhaps a random word.  On their friends computer they enter their name and temporary password, and Player 2 is now linked to their account.  This temporary account link would only be used for saving stats, and couldn't be used to buy games or anything else.  It would also only work for a limited time, maybe a day or so.

With this method players could play local multiplayer games on their friend's computer and have their stats and characters, without having to worry about their account being hijacked.  I've thought about implementing something like this myself, but I don't have the time or money to set up a global account system yet.  Hopefully someone like Valve will implement something like this so people can play with real friends on real couches.