Monday, June 19, 2017
Monday, June 12, 2017
Tuesday, June 6, 2017
A short post for devs who are not musicians.
Mixing is making a song or sound effect sound good at any volume on any playback device. There's a bunch of technique involved, but what matters is this: just because a song sounds OK to you on your headphones doesn't mean it will sound good on someone else's cell phone or home entertainment system. What do I mean by "sound good?" Simply put, the audio image is blurry and not as impactful as it could be.
Imagine if the colors on your computer screen changed, drastically, depending on the shape of your room and the dirty clothes on your floor. That's acoustics. The playback device and the room are a system, meaning they cannot be meaningfully isolated from each other.
Also, the balance between sounds in the frequency spectrum change unevenly as volume increases. Broadly speaking, sounds towards the top and bottom change in volume faster than sounds in the middle. At loud volumes they are louder than the mids. At soft volumes they are softer. If a particular component of the audio image - an instrument or part of a sound effect - has more extremes than mids, it moves into the foreground of the audio image as volume increases. This distorts the composer/sound designer's intention.
The mixer works in the closest he can get to an acoustically neutral space and tests the mix on a wide variety of devices at all volumes to ensure the accurate transmission of the composer/sound designer's conception. Done well, the mix is effective in the widest circumstances.
And now you know what your audio guy is doing when he's mixing.
Monday, June 5, 2017
Monday, May 29, 2017
So, it appears that Star Citizen hopes to release a demo with at least a reasonably respectable number of simultaneous players, like a few dozen or so, because that is what Amazon's engine supports almost out of the box. They hope to buy some time with that, so that unless people are very knowledgeable, they will not start wondering about what Chris Roberts and company plan to do about the presently unsolvable problem.
Monday, May 22, 2017
Game OneIn this Minaria, Zorn, Rombune and, Mivior struggle for supremacy. Things start as they usually do with armies being consolidated and allies recruited. In the early phases, Mivior managed to ally the Kingdom of Shucassam. Whereas Rombune took several turns before they were able to ally Hothior giving them a rough naval parity with Mivior. Zorn is eventually able to make allies with their southern neighbors the Muetarians.
This is my first blog post here, and in this and a couple more following I'm going to focus on the hexes of the game Divine Right. If you haven't played Divine Right yet, it is a great game.
For a game like this, the hexes are very important. One of the things we'll need to understand in the coding is which hexes surround a particular hex. I refer to these as Hex Neighbors. We need to know this for calculating movement.
If you examine the board, you find that there are 31 rows and 34 columns. In the coding we will start at 0, instead of 1, so we will have boundaries setup like this:
( (ROW >= 0) && (ROW<=30) )
( (COL >= 0) && (COL<=33) )
We've come up with a hex identity which is 2 digits row and 2 digits column. I placed several hex ids on hexes on the map above to help in following this post. So for instance, Khuzdul is at row 7, column 18. This translates to 0718.
The shape of these hexes, with a point at the north and south, make the hex sides NW, NE, W, E, SW, and SE.
What if I am at Khuzdul (0718) and I want to know the hex ids of the 6 surrounding hexes?
We could do this by brute force and eyeball every hex, and put all of their ids into a 6 element structure. One element for the NW, NE, W, E, SW, SE.
It would be easier to do this in coding.
We can use these calculations below to identify the surrounding hexes. Great! That wasn't so bad.
E =row, col++
W =row, col--
Row = 07; Col = 18;
E : Row = 07, Col= 18+1 = 07,19
W : Row = 07, Col= 18-1 = 07,17
NE: Row = 07+1, Col=18+1 = 08,19
NW: Row = 07+1, Col=18 = 08,18
SE: Row = 07-1, Col=18+1 = 06,19
NW: Row = 07-1, Col=18 = 06,18
Yes, this works fine.
Lets try it on Zefnar by the Sea.(08,10)
Row = 08, Col = 10
E : Row = 08, Col=10+1 = 08,11
W : Row = 08, Col=10-1 = 08,09
NE: Row = 08+1, Col = 10+1 = 09,11
NW: Row = 08+1, Col = 10 = 09,10
SE: Row = 08-1, Col = 10+1 = 07,11
SW: Row = 08-1, Col = 10 = 07,10
Uh oh, the NE, NW, SE, and SW are not correct. It turns out that we need a seperate set of calculations for Odd and Even rows. We include the 0 row as even for these purposes.
E = row, col++
W = row, col--
SE = row--, col
SW = row--, col--
Row = 08, Col = 10
E : Row = 08, Col=10+1 = 08,11
W : Row = 08, Col=10-1 = 08,09
NE: Row = 08+1, Col = 10 = 09,10
NW: Row = 08+1, Col = 10-1 = 09,09
SE: Row = 08-1, Col = 10 = 07,10
SW: Row = 08-1, Col = 10-1 = 07,09
Here we have all the elements needed to determine a hexes neighbors.
Monday, May 15, 2017
Monday, May 8, 2017
Tuesday, May 2, 2017
For example, once the first question for a game is entered successfully, we no longer need the information about the release year, genre, platform, and so forth, and it would be irritating to have to enter it every time, which means that it is necessary to a) skip ahead to the question difficulty, and b) provide a means of checking the game database to see if that information is already there when a user is entering the name of the game for the first time in a session.
Here is the design question of the day. Many games have multiple platforms and some games have multiple genres: Combat Mission is both a wargame and a strategy game. So, would you:
- Require the user to enter one platform and one genre manually?
- Require the user to select one platform and one genre from preset pull-down menus?
- Require the user to enter one platform and one genre, but permit manual additions?
- Permit the user to enter as many platforms and genres as he sees fit from preset pull-down menus?
- The solution is to remove points altogether and fully design the game around the '3-strike-loss' idea.
- The problem here is that you have two scoring systems that are at odds with one another: points and strikes. The points act as a reward and the strikes act as a punishment, but only strikes are able to end a round and only points are able to determine the winner.
Clarification: A baseball game ends when the losing team reaches 27 outs. This should not be confused with a batter being called out after three strikes. If the home team, which bats second, is ahead when the visiting team completes its 9th inning by reaching its 27th out, the game ends at that point. If the home team is behind, the game ends when it reaches its 27th out.
- Could you split this out into separate modes?
- The main problem is that the system is a competitive PvE disguised as a PvP. A player doesn't choose questions for an enemy, it's more like a multiplayer tetris with two bins side by side. I don't think it's viable.
One of the key things to keep in mind when discussing game design issues: successful precedent trumps theory every single time. One of the things I find most frustrating in the development process is when producers or programmers want to dispute the idea that a feature or a concept will work when it has already been proven to be viable by a successful game with which they happen to be unfamiliar. That is why a deep knowledge of game history is so important for any game designer.
Monday, May 1, 2017
While there is nothing intrinsically wrong with this de facto mercy option, and it does present the player who is ahead with the choice between a) taking the win at a lower point score and b) playing on and taking the risk of falling behind, it feels wrong to create a gameplay structure where the winning player is encouraged to end most games by intentionally providing wrong answers.
So, there are at least four alternatives.
- Require a player to win with either a pass or a correct answer. The downside of this is that it give the player a free strike so long as the opponent gets the answer wrong.
- Award the player points for his opponent's strikes; this will not eliminate the problem entirely, but will require a bigger lead before a player contemplates intentionally accepting strikes. The downside of this is that it will give the leading player a bigger lead by virtue of getting points for his opponent's strikes earlier in the game, so it's largely a wash unless the strikes are progressively awarded more points so the third strike is worth more than the first one.
- Let the winning player continue playing and adding to his score until he hits three strikes. The downside to this is that the losing player is not going to want to sit around and do nothing while he waits to see how badly he lost.
- Throw out strikes altogether and simply play to specified time or point totals.
Discuss amongst yourselves. In a future post, I'll discuss your solutions and reveal how I decided to handle the 3-strike challenge.
Monday, April 24, 2017
Monday, April 17, 2017
Monday, April 10, 2017
Thursday, April 6, 2017
At BioWare, we strive to make games that are representative of our players and the broader world around us. We do this by actively consulting within our diverse workforce, as well as speaking with different communities.Once you started feeding the SJW, he always ends up devouring you.
In Mass Effect: Andromeda, one of our non-playable characters, Hainly Abrams, was not included in a caring or thoughtful way. We apologize to anyone who interacted with or was hurt by this conversation. This was never our intent, and was an unfortunate byproduct of the iterative process of game design and a change in the structure of the character's dialogue.
We have had several discussions with members of the transgender community, both internally at BioWare and in the broader community, and we are working to remedy this issue. Once the changes are implemented, Hainly will only reveal certain information to Ryder after they have developed trust, and only if the player chooses to support her.
As always, we appreciate the help, feedback, and support from the Mass Effect community.
Monday, April 3, 2017
Tuesday, March 28, 2017
The warhorns sound again in Minaria. This week there were two games again but, due some technical issues I am just going to go ahead and focus on the latter one. Which is a continuation of last week's game between Jared(as the Dwarven Kingdom), team coder Were-puppy(as Hothior), and yours truly(as Zorn).
At the end of the last game, Zorn was able to ally with both, Pon and Muetar. Whereas Hothior only had Rombune to call upon and the Dwarves only Immer. The war continues, what follows are the highlights.
The Minarian campaigning season is close to half over and, the current alliances stand as follows. Zorn is ahead in allies but, has a lot of ground to cover. Hothior has both Pon and Rombune to call upon and is using them to good effect attacking the Goblin alliance at it's undefended allied hinterlands. The Dwarves have had several setbacks this game but, they have proven themselves prudent. Despite the winds of fortune blowing against them, they remain a potent force in Minaria.
This was a pretty awesome game with lots of back and forth between the various kingdoms. One thing that stands out the most is how diplomatic actions by one player affected the later actions/strategy of the other players. I didn't go into detail above but, there were two cases this session where a strategic deactivation of an allied monarch allowed another player to swoop in and reactivate the ally for themselves. Shucassam was allied to the Dwarves for a short time before Hothior deactivated them, Zorn then took advantage adding them to their alliance. Also when Pon was allied to Zorn and was deactivated, Hothior swooped in and gained them as an ally.
Not only is this feature of the game only semi-predictable, it also creates a dynamic but, balanced minigame within the larger wargame. As these diplomatic reversals tend to be more noticeable with more players(in fact I don't think this sort of thing would happen in a two player DR game) but also, they allow weaker alliances to capitalize on their rival's attempts to weaken the current leader in allies/strength.
Besides the above, it is always great to be able to play with the team. You really can't learn too much playing this sort of game solitaire, particularly with regards to strategy. For instance, I tend to have a big picture kind of focus when I play the game. Whereas, Jared tends to be more detail oriented. This has tripped me up several times when his meticulous counting of the pieces ended up giving him a combat advantage that would have been unnoticeable if you had just been looking at the counters on the map. Also Were-puppy actually uses some really counter-intuitive strategies with his attacks on neutral kingdoms. You would think giving an opponent a free ally would be an adverse move to make but, this allows you to get a "Pearl Harbor"-like attack in on vulnerable castles and, helps to control the shape of an opponent's alliance. In the current game despite my two successful sieges to his one, Were-puppy is actually the overall leader in Victory points. This is because, he was able to get the drop on a royal capital without protracted battle.
Knowing the full extent of strategic options available to the players of DIVINE RIGHT will definitely help when it comes time to work on the AI for the game.
Overall, this game is halfway done. Despite being the strongest alliance-wise, Zorn is only second in plunder. Hothior and the Dwarven Kingdom maintain potent forces, who are posed to make gains in the coming months. Ten turns remain and, it's not over yet.
Monday, March 20, 2017
Sunday, March 12, 2017
"I'm still working out a strategy. At the moment I would have most of what's I'm doing tactics. But I feel reasonable certain that your most important resource is positioning. It's interesting because if you move your army towards one position, you move it away from another, so all moves are value neutral minus context. I'm not the end this means the order in which you add allies is very important because the last thing you want to do is have to backtrack your armies to cover your flanks." -Jared Burrell, Comment March 6th 2017, "Battle Report: March 3rd."The importance of movement and positioning in game is borne out by the fact that, most if not all bonuses to units in game are based around their movement through different terrain. Having realized this vital aspect of gameplay more completely than me gave Jared a decided advantage.
My foolishly aggressive fast and loose approach to this game may have cost me victory, this time. There's a lot to improve on for next weekend's game strategy wise, because after all: it's not over yet.