@{Name=”TotalItemSizeMB”; Expression={[math]::Round(($_

  • 0

@{Name=”TotalItemSizeMB”; Expression={[math]::Round(($_

Call Email [email protected].
July 21, .

2020 Show object sizes in bytes (or MB) in PowerShell with Office 365

PowerShell can be a very powerful tool when applied correctly

however it has some quirks – one of which is formatting size numbers for remote PowerShell connections to Office 365.
By default, when you get a list of item sizes (e.g.
Mailbox sizes, or mailbox folder sizes etc), .

PowerShell helpfully formats the size for you as a human-readable value

This is nice when you’re outputting to the console, but infuriating when you’re outputting to, say, .

A CSV that you then need to manipulate

As an example – I’m trying to add up the size of all Public Folders in a client’s Exchange Online tenancy.
This command does exactly what I want: Get-PublicFolderStatistics | Select-Object Name, FolderPath, ItemCount, TotalItemSizeMB Well, almost – it displays the sizes like this: 422.2 MB (442,706,389 bytes) This is OK when I’m reading it on the screen, .

Not so much when I want to export use Export-CSV and manipulate it in Excel

As it turns out.

TotalItemSize has a property whereby it can convert to a standard

consistent unit like MB.

This property only works however when running it against an on-prem Exchange server

not with Exchange Online.
it doesn’t return an error, it just doesn’t return any sizes if you use something simple like this: @{Name=”TotalItemSizeMB”;Expression={$_.
ToMB()}} So, we need to get considerably more complicated and work with the string value that we’re given for the size instead @{Name=”TotalItemSizeMB”; Expression={[math]::Round(($_.
Split(” “)[0].
Replace(“,”,””)/1MB),0)}} That was simple, wasn’t it.
The full command, including exporting it to a CSV then becomes: Get-PublicFolderStatistics | Select-Object Name, FolderPath, ItemCount, @{Name=”TotalItemSizeMB”; Expression={[math]::Round(($_.
Split(” “)[0].

Replace(“,”,””)/1MB),0)}} | Export-CSV .\foldersizes.csv Couldn’t be easier


Posted in Leave a Reply Cancel reply

July 2020 S M T W T F S  1234 567891011 12131415161718 19202122232425 262728293031   « Jun Aug » on.
First Name (required) Last Name (required) Your Email (required) © 2009-2020 All Rights Reserved .
Automatica Pty Ltd.

  • 0

Reply October 3

5: Collisions.
Bookmark the permalink.
Pong ~Part 5~ Collisions!.
Sep24 by This is it.
The tutorial you’ve all been waiting for.
The tutorial that will bring everything together.
The tutorial which will make you cry out in joy– OK, maybe not, I’m getting a little too excited… but seriously this is a good one.
If you haven’t read the whole series yet, I recommend starting at the beginning.
Let’s get started.
So far, we’ve got the ball to move and bounce off walls.
We’ve made the playerPaddle be controllable by the mouse.
And we’ve told the cpuPaddle to move up or down depending upon the position of the ball.
It’s time to turn this into a “real” game by letting the ball be blocked by the paddles.
Hit Testing.
The way Flash handles collisions between two objects on the stage is called hit testing.
The way it works is that Flash keeps track of invisible bounding boxes around every object on the screen.
These bounding boxes are the smallest possible rectangle that your object can fit inside.
So for our paddles, the bounding box is exactly the same shape.
But for the ball, instead of using the circular 30px by 30px shape we drew, Flash uses a 30px by 30px square.
(This doesn’t really matter too much in our game because it is so simple but in more complex games where you have objects of complex shapes it can be a problem.
There are a couple more complex ways to do perfect collision detection, but we aren’t going to worry about that yet!) In order to check for collisions, we need to specify two objects in our game.
First off let’s check between the ball and the playerPaddle.
Here is the code which will handle the collisions between the ball and the playerPaddle: (add this into the top of the main game loop) if( playerPaddle.hitTestObject(ball) == true ){ if(ballSpeedX < 0){ ballSpeedX *= -1; } } What this code does is it accesses the playerPaddle’s hitTestObject method inside of an “if” statement. We passed in whatever object we wanted it to check for — the ball. HitTestObject is a built-in method in Flash which will check whether 2 objects’ bounding boxes are overlapping at all. If they are, it will return “true”, and your following code will execute. If they aren’t colliding, the conditional will return “false” and nothing will happen. Notice we added in the extra line so that it only bounces the ball back if the ballSpeedX is a negative number. This is because the playerPaddle is on the left, so we only need to bounce the ball back if it is moving in the negative direction. This little extra bit of actionscript will prevent any potential bugs in the game where the ball might get stuck repeatedly bouncing behind the far side of the paddle. If you compile your code… voila. The ball bounces off your paddle. Congratulations, your project is gradually starting to resemble a real game. If we duplicate that code, but substitute in the cpuPaddle for the playerPaddle, and a ballSpeedX of greater than 0 instead of less than 0, we can get the cpuPaddle to handle its own collisions too. Add to the first set of code, so that it includes the following “else” statement: if( playerPaddle.hitTestObject(ball) == true ){ if(ballSpeedX < 0){ ballSpeedX *= -1; } } else if(cpuPaddle.hitTestObject(ball) == true ){ //add this if(ballSpeedX > 0){ ballSpeedX *= -1; } } Let’s test this out.
Alright, so that’s all fine and dandy, but let’s take this to the next level.
In order to add some level of skill to this game — and make it possible for the cpuPaddle to lose, we are going to program a set of instructions so that the angle of the ball will change depending on what spot it collides with the paddle.
If the ball hits the top of the paddle it will angle upwards; if it hits the bottom it will angle downwards; if it hits the middle it will go somewhere in between.
How do we accomplish this.
By adding this code… I’ll explain afterwards.
First create a new function called “calculateBallAngle”.
You can place it anywhere in the code window as long as it isn’t inside any other function.
I put mine right above the loop function.
function calculateBallAngle(paddleY:Number, ballY:Number):Number { var ySpeed:Number = 5 * ( (ballY-paddleY) / 25 ); // (ballY-paddleY) / 25 will be between -1 and 1 depending on where the ball hits return ySpeed; } Note: This function doesn’t return “void” like all of those we have worked with in the past.
When this function runs it calculates a Number value, which it sends back to wherever the function was called from.
This Number is going to be the y speed of the ball, which we are setting to a value between -5 and 5.
In our case this will be the hitTestObject code we added earlier, so let’s go back to the main game loop and add a couple new lines to that section.
if( playerPaddle.hitTestObject(ball) == true ){ if(ballSpeedX < 0){ ballSpeedX *= -1; ballSpeedY = calculateBallAngle(playerPaddle.y, ball.y); //add this } } else if(cpuPaddle.hitTestObject(ball) == true ){ if(ballSpeedX > 0){ ballSpeedX *= -1; ballSpeedY = calculateBallAngle(cpuPaddle.y, ball.y); //add this } } If this looks unfamiliar to you, don’t worry.
What we’re doing is every time the ball collides with one of the paddles, in addition to changing the x velocity of the ball, we are setting the y velocity of the ball to the results of our calculateBallAngle function that we just added.
When we are checking for collisions between the playerPaddle and the ball, we pass in the y values of the playerPaddle and the ball to the calculations.
When we are checking with the cpuPaddle, we use that y value instead.
Run your code one last time.
Well, there you have your basic Pong game.
We accomplished our 3 main goals we set in : programming the mouse-controlled playerPaddle, the AI-controlled cpuPaddle, and programming the ball and its collisions.
Grab your copy of the source code HERE.
But don’t stop now, there is still so much we can do to make this game better.
In future tutorials we are going to at least look at adding a scoring system, a main menu, and a win/lose capability.
Please, please, please, leave me a comment.
This is my first series I’ve done and I greatly appreciate any feedback.
Is there anything I can do better.
Am I easy to understand.
Am I going too slow or too fast.
Also, if you have any suggestions for future tutorials, whether it be adding on to our Pong game, or a suggestion for another series, let me know in the comments, or email me at: [email protected]
Thanks for sticking with me for the bulk of this tutorial series, I hope you’ve enjoyed it and found it useful.
Continue to Part 6.
This entry was posted in , , , and tagged , , , , , , , ,.
Resources: Beginner Tutorials Pong ~Part 6~ Scoring Points 64 comments on “Pong ~Part 5~ Collisions.
Devon October 1, 2011 at 7:20 pm Thank you, Ben.
This was a very informative method, I’ve been working on my recreation of Pong for a few days now and all other tutorials get into packages and public functions, which I unfortunately don’t understand how to setup just yet.
So thanks for leaving those out 😛 For the most part it’s all easy to understand, the only issue I’m having would be to create the scripts myself (reading and writing are two very different things).
So I don’t think you’re doing anything wrong.
I’ll be waiting for the Scoreboard tutorial.
(No idea how to do that one without public functions).
Keep it up.
Reply October 3, 2011 at 5:45 pm Thanks for the comment, I’m so happy it helped.
I try specifically not to get caught up in “packages and public functions” and just write code that’s easy to understand, so I’m glad you like that style.
The scoreboard tutorial will be finished soon.
a2zventures5351 October 2, 2011 at 1:07 pm Hi, even though I did not read most of the information on your site, but I think your site is really impressive and highly technical.
I think, if the game ideas are your original invention you must expect some great returns.
Good job !!.
Reply October 3, 2011 at 5:46 pm Thanks.
🙂 Reply.
Michael October 27, 2011 at 11:28 pm Thanks man I’ve been really wanting to understand and begin coding with actionscript, you just made my journey a hell of a lot more simple.
Keep going.
This is great and easy to understand and you cover everything with enough detail to understand easier.
And the pictures help alot as well 🙂 You should contact me I have some questions about making a Tower Defense game that’s really my goal to do in ActionScript 3.0, Thanks and again GREAT TUTORIAL.
Colin January 22, 2012 at 9:31 pm Awesome tutorial.
I am a decent programmer but new to flash and this was neither too fast nor slow.
ashwin February 12, 2012 at 1:40 pm Hi Ben Your tutorials are really really helpful and great.
The pong game series is very easy to understand and the maths is very clear too.
I just have a silly doubt.
How did you arrive at the math behind the calculateBallAngle function?.
What i mean is the value returned by Yspeed to be between -1 and 1,is it intuition or any trial and error way to know the values?.
Your tutorials are too good, waiting for your platformer series.
For any tutorial suggestions, could you teach more AI in flash Games?.

Reply February 12

2012 at 9:26 pm I have to admit that the basis for the math behind the calculateBallAngle came from a tutorial I read years ago on FlashGameTuts.com (my inspiration for this site).
If you want to know the thought process behind the equation… 5 * ( (ballY-paddleY) / 25 ) Well, we want the ySpeed to be greater if there is a greater difference between the y positions of the ball and paddle, so I started with (ballY-paddleY).
To convert this difference into a number between -1 and 1, I divided this number by 25, which is half the height of the paddle.
Finally, I wanted the ySpeed to be more powerful than just -1 to 1, and after a bit of trial and error I decided to multiply by 5 at the end to modify the total magnitude of the new ySpeed.
As for the AI request, yes, I can try to include some AI tutorials in the future.
I’m not completely an expert on the subject myself, but I can at least go through some basics.

Reply ashwin February 16

2012 at 11:27 am Hi Ben thanks for the explanation understood the maths behind it.
If the AI tutorials would seem advanced then could you help us with math and physics used in Games like concepts of trigonometry and such.
thanks for your wonderful tutorials.
I hope you continue in this kind endeavor of yours.
As always wishing you the best.
February 24, 2012 at 12:55 pm Hi Ben.
Tnx for the tutorial but I have a doubt.
In your calculations you devided the value by 25 and then multiply it by 5.
Why not directly devide it by 5.

Reply February 24

2012 at 2:32 pm You are definitely right, I could have just divided by 5.
I left it the way I did because it’s easier for me to read later and understand why it works.
Sometimes when you code you need to decide between efficiency and readability.
If you are wondering why that line does what it does, here is what I wrote to another commented who asked: — If you want to know the thought process behind the equation… 5 * ( (ballY-paddleY) / 25 ) Well, we want the ySpeed to be greater if there is a greater difference between the y positions of the ball and paddle, so I started with (ballY-paddleY).
To convert this difference into a number between -1 and 1, I divided this number by 25, which is half the height of the paddle.
Finally, I wanted the ySpeed to be more powerful than just -1 to 1, and after a bit of trial and error I decided to multiply by 5 at the end to modify the total magnitude of the new ySpeed.
— Hopefully this clears things up.
🙂 Reply.
Lars February 28, 2012 at 11:02 am This is a great site and a good torturial it helped me alot.
How abot adding 2 players.
Make the CPU an arrow keys controld player.

Reply February 28

2012 at 5:53 pm That’s a great idea.
I was hoping to add another part of two to this series soon, and I think I might start by adding arrow-keys movement.
Ananth February 29, 2012 at 1:37 am You are a gifted instructor.
There was so much clarity in the explanations.
Enjoyed going through the tutorial.
Learnt it at one go and learnt quite a few concepts as well.
Thanks Reply.
Max March 28, 2012 at 9:30 am Thank you sooo much Ben.
Your tutorial has finally given me some inspiration to learn Flash, something I wanted to do a long time ago.
Your way of explaining is very good and I have no problems understanding the tutorial.
The code is a bit comlicated, but it is not your fault.
Please keep making tutorials like this, because I seriousley am learning a lot from you 🙂 Thanks again, Max Reply.
Matt May 26, 2012 at 8:18 pm Hey, thanks a lot for this tut Ben.
I used to mess around with Flash back when I was 13 or 14 but stopped after being unable to grasp the coding language.
Now that I am in my last year of high school and am looking at a future in game design, I am seeking to eventually handle AS proficiently.
Logic and syntax is somewhat carried over from my experience with Python and GML, but AS is still a whole different language.
This tutorial has been really helpful in sliding into the syntax of Flash and I am looking forward to future stuff you will release.
Again, thanks a lot.

Reply May 27

2012 at 4:15 pm That’s great, good luck 🙂 Reply.
David May 31, .

2012 at 2:16 pm Amazing thank you fur de tuts Reply

Betsy MacDonald June 4, 2012 at 2:58 pm Hi Ben, This is exactly what I’ve been looking for.
I teach basic animation in Flash to MS/HS kids and wanted something with a bit more bit for those that wanted more of a challenge.
This is challenging enough with a great pace to keep them from getting frustrated.
I will continue to use it with them next year.
Thanks a lot.

Betsy Reply June 4

2012 at 9:05 pm You’re welcome, Betsy.
I’m glad to be of assistance.
Pong June 29, 2012 at 12:40 am Thank you Ben.
I’ve just started my Flash journey after months of working with Multimedia Fusion and Game maker only to discover they weren’t flexible (or supported) enough for my needs.
I’ve looked up countless tutorials on YouTube and on Google search, but none of them have been able to teach me what I need until I saw your.
Once again Thank You.
Sahl July 7, 2012 at 9:00 pm Thank you so much Ben.
This was easy to follow in addition to being clear.
Pictures helped alot and it was going at a great pace.
I have a background in java and that made it easier.
However, the math part in the calculateBallAngle method had me thinking for a while lol.
Great tutorial I hope you would include more explanation about AI.
Shanmuga Sundar September 11, 2012 at 1:15 am thanks man!.
this was a great !.
G13 September 24, 2012 at 8:05 am You’re Genius!.
Thanks man.
Plamski October 12, 2012 at 8:02 pm Ben, your tutorials are better than the video tutorials in YouTube.
Well done.
Thank you.

Reply Ben Reynolds October 13

2012 at 7:32 pm Thanks.
I’m glad you’re enjoying them.
🙂 Reply.
FlashNewb October 31, 2012 at 9:07 am Really nice tutorial Ben.
Helped a complete Flash newb understand ActionScript 3 basics.

10/10 Reply November 2

2012 at 1:03 am Thanks.
Glad to help.
Bitstream November 3, 2012 at 4:15 pm I really appreciate these tutorials.
They’ve been a great help to me so far, and I can’t wait to move to on to the platformer tutorials.
Reply November 4, 2012 at 1:06 pm Thanks for the feedback.
🙂 Reply.
Bruno Montibeller November 6, 2012 at 1:12 pm Man, you’re awesome.
Thank you sooo so much to teach us how to create games like this.
I’m really excited about this.
xtian November 23, 2012 at 10:13 am Hi , can you make tutorials on how to create a angry birds like game thanks , this is an awesome tutorial for beginners like me 🙂 i need to learn a lt more specially in Game with Physics engine , TIA.
Jesper Christoffersen December 9, 2012 at 7:23 pm Hi Ben, Thanks for a great tutorial.
🙂 I got one question for part 5, though.
I see this calculateBallAngle function works fine for me and I seem to understand the principle behind the math – but not entirely the coding.
(ballY-paddleY) has a value between -25 and +25, right, but how does the program actually find this value instead of crashing by refering to “paddleY”?.
I mean, we have no such instance name (“paddle”) – only “playerPaddle” and “cpuPaddle”.
Thanks in advance and keep up the good work 🙂 Jesper Reply Kevin January 1, 2013 at 3:55 pm I’m also curious about this.
And also, thank you for the otherwise incredibly useful and easy-to-follow tutorial.
Reply January 16, 2013 at 11:08 am You’re welcome for the tutorial 🙂 The variables paddleY and ballY are defined in the function header: Basically, this means that we can pass in 2 parameters when we call this function.
These parameters will automatically get assigned to the paddleY and ballY variables.
So if I write: calculateBallAngle( 200, 100 ); it will set paddleY to 200 and ballY to 100.
We never formally declared these two variables, because they only need to be accessed from within this one function.

Reply Kevin January 16

2013 at 11:16 am Reply.
January 16, 2013 at 11:09 am You’re welcome for the tutorial 🙂 The variables paddleY and ballY are defined in the function header: Basically, this means that we can pass in 2 parameters when we call this function.
These parameters will automatically get assigned to the paddleY and ballY variables.
So if I write: calculateBallAngle( 200, 100 ); it will set paddleY to 200 and ballY to 100.
We never formally declared these two variables, because they only need to be accessed from within this one function.
Les December 12, 2012 at 6:41 pm Great tutorial This is my first attempt at action script and found it very easy to follow.
Great Job.
Gonna go read all your other stuff now.
anbumani December 19, 2012 at 6:41 am its informative ……n I m new to acion script n all…….it s very easy to learn ………….thank u for this info tutorial….
raco December 20, 2012 at 7:46 am Awesome tutoral.
You have just give me a brake of those stinking AS3 classes.
I realy enjoyed to do things like in AS2.
Tutorial is easy to understand and you describe everything so there rly is no answers left.
I have a problem just at the end of this tutoria, with who am am not familiar.
Do you have any clue.
(im using CS5).
if u need i can send u the whole file.
98 function updateText():void{ 99 playerScoreText = (“player: ” + playerScore); 100 cpuScoreText = (“cpu: ” + cpuScore); 101 } Line 99 1067: Implicit coercion of a value of type String to an unrelated type fl.text:TLFTextField.
Line 100 1067: Implicit coercion of a value of type String to an unrelated type fl.text:TLFTextField.
haris January 30, 2013 at 9:28 am dats realllyy nice thanks alot Reply.
Advery February 9, 2013 at 10:05 am I LOVE it.
So much help for me, i’m a beginner and it’s so nice to learn it step by step 🙂 Reply.
Fer Raviola February 12, 2013 at 10:00 pm Great.
awesome tutorial!.
You’re not going too fast, you’re not going too slow.
it’s just perfect.
I love it.
One request though: could you make a quick tutorial on how to port this into andoird?.
that’d be great.
Keep on the good work.
🙂 Reply.
ribbs23 March 10, 2013 at 8:34 am Hi, just started with your tutorials and am very impressed with the content, I have done a little programming before but your tuts are very well done and easy to understand.
I am looking forward to going through all of them.
Keep up the good work, will come back with suggestions when I’ve gone through more.
Thanks Reply.
filmon2 March 23, 2013 at 7:55 pm wow I feel like a late replier but just finished this tutorial.
As everyone has already mentioned great site, great tutorial and keep it up.
I encourage everyone following the tutorials to really do what Ben mentioned, that is, plot out what it is you want to do conceptually and then actually try it out yourself and fail miserably.
I can’t stress how much that’s helped me.
I’m sure Ben your knowledge is deep due to multiple times of scratching your head and wondering “why”.
Curiosity and questions is the mother of knowledge so it’s not necessarily good enough to just follow the tutorials but rather proceed them a little, make mistakes and have fun, customize the game and share our experiences.
I made my version increase the x speed every time the user returned the ball successfully so it got harder and faster as you returned the ball :)…you should stop at a certain speed though or it gets way too fast but mostly by that point the AI can’t keep up anyways.

Thanks again for the tutorials Ben

great work.
Reply March 24, 2013 at 2:41 pm Thanks for the feedback and the encouragement.
I love your thoughts about curiosity and experimentation — that is exactly what I have done, and I definitely recommend it to my readers.
Ratzyy May 14, 2013 at 4:32 pm Amazing tutorial.
This is the first tutorial i understand completly.
I love your declarations for nearly everything.
But i do not understand the following code: function calculateBallAngle(paddleY:Number, ballY:Number):Number { var ySpeed:Number = 5 * ( (ballY – paddleY) / 25); // ballY – paddleY) return ySpeed; } paddleY = any Number and ballY = any number.
But how does the program knows what paddleY and ballY is.
Can you explain it for me.
🙂 Reply.
Hassan June 5, 2013 at 5:18 pm Brother Ben , I want to know what is the relation between ySpeed with the angle , didn’t get it well.
🙂 Reply.
Bijay Mishra September 11, 2013 at 8:56 am Nice tutorial indeed.
it would have been more nice if the mathematics of this — 5 * ( (ballY-paddleY) / 25 )—- would have been explained Reply.
Johanna October 8, 2013 at 4:53 pm Excelente tutorial !!.
Tenes otros ?.
Mark B.
October 27, 2013 at 4:07 am Ben, absolutely fantastic.
Thanks for a great tutorial.
This tutorial is two years old.
Do you have newer tutorials for the latest versions of Flash/AS3 (and frameworks like Stage3D).
It seems like the preferred way to go now is to use Flash Builder.
Your thoughts.
Carlos November 10, 2013 at 12:20 pm All i Can say is You save My Time.

Money and Power =)) Thankyou very much Reply

chema January 3, 2014 at 1:47 am Excelent tutorial Ben.
This has more than three years and still be very useful.
My congratulations and I am very eager to see the other tutorials Reply.
Eric Feldberg January 9, 2014 at 4:34 pm Awesome tutorial.
Very clear and simplistic.
Great job.
Alexander January 21, 2014 at 7:07 am Incredible man!!.
I made my game in 20 mins) without any MC on the stage) using custom class) it’s very cool, please continue write new lessons, it’s very interesting for me and for all users i guess.
Thank you.
Be Marym February 28, 2014 at 10:39 am hi ben , thank u so much you r such a great teacher ,, keep it up Reply March 2, 2014 at 7:57 pm Thanks.
🙂 Reply.
Troy April 21, 2014 at 9:28 am What if I want to make the left paddle as a user paddle and the right paddle as the cpu paddle.
I tried it at my own by exchanging the instances name,i.e.of the user paddle and the cpu paddle.
But what actually happened is that the ball only gets hit when it collides the paddle from the bottom side instead of the front side.
SiCong May 3, 2014 at 8:13 pm I have little prior programming experience and I am new to AS3 but the syntax of this scripting language looks very friendly and simple.
What makes it even better is your tutorials.
They are amazing.
I really appreciate your work and I’m glad to have found this website.
LarsOlsen May 24, 2014 at 7:22 am Hi Ben Great torturial.
This torturial has really helped a lot.
I’m completely new to programming and i’ve still managed to create a game, all with your help… this is AMAZING.
I can see that the activity on this site might have gone down a bit before i found it, but i hope that you will keep up this page, because its extremly helpfull to us who want to start progamming 😀 Two things i would’ve liked to see is a distance game with upgrades and stuff, and a torturial whar you give codes where you have deliberatly made errors for us to fix… almost like a test… i believe that it would be extremely helpful to be able to identify errors faster.
Thank you for helping me into the world of gamecreation, a place i have wanted to be a part of for more or less a decade now 😀 Reply.
Moses May 28, 2014 at 10:18 am Hey there, thank you very much Ben for this great tutorial 🙂 There’s one point that I’m not sure of though, I’ve seen a few people wonder about it.
It’s about the line: Some have been wondering about how the program doesn’t crash and how it knows what “paddleY” is, even though “paddle” was never mentioned in the program, just “playerPaddle” and “cpuPaddle”.
I was able to understand your explanation after a while, but at the beginning I felt a little confused.
I would just like to clarify what you said, so it’s more easily understandable.
Now, I’m an absolute beginner, so I’m not at all sure about what I’m saying, but; it seems that in the line, it’s saying: “Whenever the calculateBallAngle function is activated, I’m expecting to see 2 numbers; the first number will be in paddleY’s place, and the second number will be in ballY’s place” as in, “paddleY” and “ballY” are names just for clarification; if you renamed them, the program still wouldn’t crash.
And so, when we run the function, we’re taking paddleY’s place:which is a number, and putting playerPaddle.y or cpuPaddle.y in its place, just as we replace ballY with ball.y.
When you type in the line “function calculateBallAngle(paddleY:Number, ballY:Number):Number”, it’s as Ben said, you’re starting a variable called paddleY and ballY.
And so, when replacing them by running the function, it’s like you’re telling the program: “var paddleY=playerPaddle.y” and “var ballY=ball.y” (Just for example, I’m not saying that literally typing those lines would get you any joy-inducing results).
I hope this helped, and I very much hope that what I said wasn’t a plain wrong mess :s Reply.
Loren Helgeson June 28, 2014 at 11:53 pm Thanks for the excellent tutorial series.
I had tried one of these pong tutorials some time ago, but the final result was full of glitches (in the author’s code AND my own).
Now that I’ve had enough AS3 experience, I’ve looked at this again with fresh eyes, and have found many ways to expand on it to give it my own personal touch.
Thanks again.
Reply July 2, 2014 at 10:45 pm Great to hear.
Vaja Osepaishvili September 28, 2014 at 10:45 am this is best tutorial i’ll ever seen , and trust me i have many tutorials watched Reply.
Leave a Reply Cancel reply.
Enter your comment here.
Email Name Website You are commenting using your WordPress.com account.
(  /   ) You are commenting using your Google account.
(  /   ) You are commenting using your Twitter account.
(  /   ) You are commenting using your Facebook account.
(  /   ) on the App Store for relaxing bubble-popping and 50 characters to unlock.
on the App Store for dozens of brain-twisting puzzle challenges.
on the App Store for cute, reflex-based fun.
Sign me up.
Monthly Archives Select Month July 2013  (1) June 2013  (1) May 2013  (2) November 2012  (1) September 2012  (2) July 2012  (1) June 2012  (2) May 2012  (1) April 2012  (2) March 2012  (1) February 2012  (4) January 2012  (3) November 2011  (2) September 2011  (4) August 2011  (3) March 2011  (3).
bloggers like this:.

  • 0


x Search for: September 4, 2020.
I’ve worked on a number of games which you will find in the games menu above.
At present, I’m mostly maintaining PZL, casually developing with Ogre Game Kit and trying various game engines.
Games I’ve worked on:.
Cassini Division   Space combat.
Global Warfare   Half-Life modification.
My First Planet  ???.
PZL  iOS puzzle game.
Speed Games  Several small games in various states.
Treebles  iOS platformer/puzzler.
Latest Posts.
© Alex Peterson.

  • 0

OMSA configuration files – finally posted

Tag Archives: Dell.
By on.
Funny Pages Photos Interesting choice of image for a blog post.
By on Wednesday, September 29, 2010 So my flickr image of my new “notebook upgrade” that I used whilst my work laptop was being upgraded was used in a blog post about bad parenting.
I’m not quite sure what the image has to do with bad parenting – the blog is mainly to do with laptop repair but I’m not sure if the image was looked at closely beforehand or not….
I am pleased to see that they did give me credit for the photo (which is how I found out that the photo was being used) Continue Reading.
OMSA configuration files – finally posted.
By on Tuesday, June 15, 2010 I’ve finally got around to uploading and saving the Dell Configuration and Dell alert script files that will assist in obtaining alerts when Dell Servers detect a problem.
The script files are pretty self explanatory – the conf.bat file configures the alerts on the server, dellalert.bat gets activated and sends and email to your email address or pager/sms email address.
Note that for easy transfer from client site to client site, it’s probably best to set the mailserver parameter to be the mx record of your mail server (assuming you allow smtp out from client machines) – this way it’s one less thing to change when deploying at client sites.
For more information check out the OMSA configuration section of this blog although the main post with instructions is at Dell Open Manage Server Administrator OMSA Alert Setup Updated.

Download the Configure OMSA Batch File zip file here Continue Reading

OneNote OneNote 2010 webapp now live

By on Tuesday, June 8, 2010 I’m a big fan of OneNote as it makes it really easy to take notes during meetings and presentations.

I was pleased to see that the OneNote Web App is now online

allowing you to save OneNote notebooks to the web (on Microsoft’s SkyDrive) which then means you can edit them in a browser – without needing OneNote on the machine.
I uploaded the OneNote notebook that I made whilst upgrading my Dell Mini10v a couple of weeks to triple boot XP, OSX and Windows7 and was pleased with how things have turned out.
I’ll be using this functionality to create an upcoming blog post on how to do the triple boot – having the notebook on the web means I can update and work on the blog post from any computer – I’m not tied to my home desktop which hosted the original notebook.
Note that you do need to “share” the notebook by going to the File/ New/ Web or going to File/Share/ Web as appropriate.  Keeping the document in your personal folder means it is kept private – as long as nobody  else finds the url.
Thanks to The Office Blog for the heads up and see an Introduction to OneNote Web App for more details.
Continue Reading.
Installing 32 bit printer driver on Windows200864 server.
By on Tried to install a 32 bit driver for the Dell 2330dn printer but the software kept asking me “please provide path to windows media (x86 processor)’”.
Pointing the dialog box to the x86 directory or the i386 directory that came with the print driver didn’t help.
Neither did pointing the dialog to a copy of the i386 directory from an xp cd.
A reply posting on Microsoft’s technet site gave me a hint to get this working.
By first installing and sharing the 64bit driver, it is then possible to install the printer by using the following steps.
On a 32 bit (in my case XP) workstation, navigate to \\servername and then double click on the printer that was previously shared.
When it asks for the driver location provide the location to the i386 directory of the extracted driver.
Verify once installed that the driver is now successfully listed as an option on the printer by clicking on the sharing tab and then the additional drivers button.
Continue Reading.

Quick way to get BIOS information without rebooting

By on Monday, January 19, 2009 If you want to get the BIOS version of a pc without rebooting or the Dell service tag then use the following useful command(s) wmic bios >c:\temp\1.txt notepad c:\temp\1.txt The reason I pipe to 1.txt and then display in notepad is that the formatting looks all messed up in a dos prompt due to line wrapping but looks ok in notepad.

The BIOS version and service tag will be displayed (among other things)

This beats my previous preferred method when doing remote support of going to Dell’s support site, going to warranty information and then loading their activex component to detect the hardware information.
Update: You do need to have admin rights to run this command.
Continue Reading.

Dell Open Manage Server Administrator (OMSA) alert setup – updated

By on Friday, November 7, 2008 Further to this post on how to set up Dell Open Manage Server Administrator (OMSA) for alerts I have amended the configuration files required to correctly configure OMSA.
I discovered that Dell’s documentation is incorrect and that running a batch file in an alert directly does not work – you need to call it with cmd.exe BUT you do not (normally) need to provide the path to cmd.exe – I have therefore changed the alert commands (shown in the extended entry).
I have also amended the dellalert.bat file as I also found that blat would not always work as there is no working blat profile when called from OMSA and there is no obvious way of setting a profile up.
You could add the setup into dellalert.bat, trigger an alert and then remove the setup.
Alternatively blat can have the mail server and the sender name provided in the dellalert.bat.
This makes installation easier as all you need to do is copy the blat files to the windows directory.
Again the updated dellalert.bat is in the extended entry.
Continue Reading.

84 Dell Open Manage Server Administrator (OMSA) alert setup

By on Thursday, November 29, 2007 Update – this post is slightly out of date – please see my updated Configuring Open Manage Server Administrator (OMSA) page.
As mentioned in a previous post, we have several Dell servers that have Open Manage Server Administrator (OMSA) setup and one of the features of this software is the ability to setup alerts whenever an issue is detected by the built in monitoring system.  In the new version, 5.3, even more alerts have been enabled – mainly in the area of storage management.  To edit this setup you typically go to the website hosting the Server Administrator, log in and then set up all the alerts.
Each alert is setup individually and takes several mouse clicks.
One to open up the alert, one to select the alert process’s, another to click apply and then another to click the Go Back to Alert Settings.  This is really inefficient and obviously takes a very long time to set this up on multiple servers.
The process described in the extended entry below describes how you can set this up, quickly and efficiently by importing the same settings to your servers each time they are set up.
Little customization needs to be done on each server but full instructions are provided.
Note- this post is slightly out of date – please see my updated Configuring Open Manage Server Administrator (OMSA) page.
Continue Reading.

Dell’s wireless drivers for inspiron 600m

By on Tuesday, October 17, 2006 I checked on Dell’s website yesterday for the latest wifi drivers for the Inspiron 600m to fix the widely reported vulnerabilitys.

Dell has a driver available but when you download the file

you can extract the files from it.
However double clicking on the setup program causes the dellinfo.exe program to crash followed by a message stating “Error – This installer does not support installation on this computer.” So far I’ve chatted with about 3 people on the dell chat program.
The scary thing was when a tech asked me “Why is it your downloading the driver if the wireless card is ok?” – I had to (patiently) explain that I’m trying to download a driver to patch the critical vulnerability that is (from the readme) “Urgent = Dell highly recommends applying this update as soon as possible.
The update contains changes to improve the reliability and availability of your Dell system.” His solution was to send me the driver cd but we got cut off before we managed to exchange shipping address’s.
I checked the driver on another inspiron 600m this morning and the dellinfo.exe crashed on this machine but it tried to install the drivers but failed to do so with 2 more crashes that were reported to microsoft.
I tried chat this morning and the tech stated that the driver may be corrupt and I would need to contact customer care to report this.
I called the customer care line 1 800 456 3355×7241969 who then after not understanding a word I was talking about put me through to support who then told me that they had put me through to the wrong department and I’m now on hold again – awaiting to put me through to the wireless support card.
They can’t support me as apparently someone else installed the driver “2 hours ago” and therefore the download must be ok.
A conference call to hardware support was the next step.
Unfortunately hardware support were too busy to answer the phone so the tech guided me to the intel website and I downloaded the driver from the driver page on intel.com.
Whilst I was downloading this driver my boss tripped over the phone cable, pulled the phone off the desk and hung up – I let out an involuntary wail as it was the end of 90 minutes with “technical hold support”.
However the wireless drivers from Intel loaded ok but interestingly the windows driver version is the same as the version that I was currently running (, but the Intel Wireless software (an alternative to Windows Wireless configuration utility) was upgraded a couple of versions to
Note that if you scroll down on the driver page you can actually just download the windows driver by itself (something I should have done as I don’t use the IBM configuration software as the Windows Management software is easier to use as it is standard across all the laptops.
Continue Reading.

Categories Select Category #msignite2017  (4)

Net  (2) 2Factor  (2) 404 pages  (4) ADP  (1) Adsense  (2) ADSL  (2) AIX  (5) AmericanFootball  (1) AntiSpyware  (2) AntiVirus  (23) Apache  (5) ASP  (4) Audible Books  (1) Audio  (5) AximElated  (12) Azure  (1) B2  (1) Backup  (14) BackupExec  (5) Backups  (9) Banking  (3) Belkin  (2) Beta Testing  (9) Blackberry  (13) Bloggar  (2) Blogger  (3) Blogging  (56) BlueJackq  (1) Bluetooth  (5) bookmarking  (1) Books  (29) BPOS  (1) Buckeyes  (1) Bugs  (58) Car  (7) Cats  (4) Chat  (4) Christian  (1) Chromium  (1) Church  (3) Cold  (1) Computer Hardware  (4) Concerts  (9) Control Panel Backup  (2) copiers  (1) Creative Zen  (3) CSS  (18) Defender  (1) Dell  (21) Directories  (2) Disaster Recovery Restores  (11) DNS  (4) Domain Names  (3) Dreamhost  (4) DST  (6) DVD Burning  (1) Eating Out  (1) Email  (42) Evernote  (4) Exams  (19) Excel  (1) Exchange / Outlook  (101) exchange2007  (10) Extensions  (12) Facebook  (2) Films  (24) Firefox  (41) Firewalls  (10) Fitness  (1) Flash  (4) Flash Mobs  (3) Flickr  (22) Food  (10) FriendsInTech  (13) Froderick  (1) Funny Pages  (87) Gadgets  (1) Games  (8) Garmin  (3) Geoblogging  (10) Geocaching  (17) Geotagging  (4) Ghost&nbs.

Categories Select Category #msignite2017

Net 2Factor 404 pages ADP Adsense ADSL AIX AmericanFootball AntiSpyware AntiVirus Apache ASP Audible Books Audio AximElated Azure B2 Backup BackupExec Backups Banking Belkin Beta Testing Blackberry Bloggar Blogger Blogging BlueJackq Bluetooth bookmarking Books BPOS Buckeyes Bugs Car Cats Chat Christian Chromium Church Cold Computer Hardware Concerts Control Panel Backup copiers Creative Zen CSS Defender Dell Directories Disaster Recovery Restores DNS Domain Names Dreamhost DST DVD Burning Eating Out Email Evernote Exams Excel Exchange / Outlook exchange2007 Extensions Facebook Films Firefox Firewalls Fitness Flash Flash Mobs Flickr Food FriendsInTech Froderick Funny Pages Gadgets Games Garmin Geoblogging Geocaching Geotagging Ghost Gmail Gnomads Google GoogleMaps GoogleVoice GPS Greasemonkey Group Policy Hacking Hasweb Holidays Home repairs Hosting Hotfixes Hyper-V IBM ie7 IIS Imported Blog Installed Greasemonkey Scripts Instant Messaging Internet Explorer Intuit ipod ISP’s Itunes Java Job Hunting KVM Laptops Library Links Linux Live Communication Server Lotus Notes mac Mambo Mandrake Maps MBSA Meme Microsoft Microsoft Max MovableType Moving to the states Mozilla MP3 Music Networking News ODBC Odeo Office OMSA OneCare OneNote Other Blogs passwords Patches Perl Phone Photo Friday Photos PHP Pipex PocketPc Podcast Popfile Powerpoint Powershell Powertoys Productivity Programming pumpkin Qiq hosting Quickbooks Rants & Complaints Real Life Registry Remote desktop control Resource Kits Restaurants RevDrives Reviews Ricoh RSS Feeds RSS Readers Sage SBS ScreenCaptures Scripting Search Engines Security Settling in SharedView Sharepoint Shopping Skype Software Reviews Spam Sprint Spyware SQL Support Symantec Synctoy SystemCenterEssentials Tater Taxes Technet Telephones Terminal Services Theatre Thunderbird Timeslips Toshiba Training Trend Tutorials TV Ubuntu UK Locations Uncategorized Uniform Server Utilities Veritas Virtual PC Virus Visio Vista Visual Basic Visual.

  • 0

GPS tracking with an MSP430F5510 over GPRS

GPS tracking with an MSP430F5510 over GPRS.

By | | | I found a tiny gem while browsing Github for MSP430 projects

This one is a GPS tracker based on a  with a GPRS cellular connection for reporting and command input. The GPS is a FGPMMOPA6H from GlobalTop and the GPRS module is a.
Leave this field empty if you”re human: The Github link has details from code to schematics and board files.

GPS tracking with a GPRS module using an MSP430


An FRAM chip for input data buffering

Resilient software architecture.
GPS/GSM operations controlled by timer interrupts which allows control of both sub-systems in the same time.
Great flexibility given by configuration variables.
Hamid on April 5, 2017 at 1:46 pm Hamid Reply.
Rod on April 19, 2017 at 10:30 am Is this legal to put on a high altitude balloon.
I ask because I’m looking for a tracker beacon for a balloon and I hear that the FCC frowns on cellular radios above a certain altitude.
Reply Alan on August 24, 2018 at 10:37 am Hi, For balloons, you must use 433MHz low power transmitter.
kazola on April 21, 2017 at 3:06 pm this is a very nice project, thanks for sharing Reply.
Katie on October 19, 2017 at 12:03 pm I am a graduate student studying a bird of prey, and I’m looking for help in adapting this code to use a sub GHz RF transceiver instead of the GPRS.
I am new to developing microchips, but I would like to deploy a unit similar to this one in a place that does not have GSM coverage.

My PCB needs to have these capabilities: GPS data logging

RF transmitting (~800m range or greater), solar charging, <30 g. I also need to design several base stations to receive the data. Other researchers in my field are interested in a similar device, so I''d like to have my end product open source. I would really appreciate any insight or help. Thanks. Reply. Akshay augustine on October 9.

2018 at 9:50 am Could you please give me the connections between the gsm module

msp430 and gps module Reply.

Md Tariqul islam on September 10

2019 at 5:21 am I would like to read more insight from you.
Also I am going to share this blog immediately.
Excellent site you have here.
I’d really love to be a part of online community where I can get responses from other experienced individuals that share the same interest.
Appreciate it.
Thanks for sharing your thoughts.
I truly appreciate your efforts and I am waiting for your further post thanks once again.
Cancel reply.

Required fields are marked Name Email

GPS tracking with an MSP430F5510 over GPRS.
Your info will not be shared.
Unsubscribe anytime.
Designed by | Powered by.

  • 0

How to Build a Successful YouTube Gaming Channel

Author Why social news sites like N4G and reddit are failures.
Facebook Twitter Reddit Tumblr StumbleUpon Digg Linkedin email I’m an artist just like anyone else.

So why am I persecuted just because my paintbrush is Final Cut Pro and After Effects

and my canvas is YouTube.
In the past I’ve written about mod abuse at gaming sites that claim to be “social news” (those that allow users to submit info) before on my YouTube marketing blog, .

But now I’m adding a video detailing my recent clash with two N4G mods

Before watching this video, I just want to say this: I have an insanely strong sense of justice which causes me to clash with those who don’t.
Especially when it is about something that directly impacts my daily life.
Because I’m a professional online video creator who doesn’t have a huge network promoting his channel, .

Being able to share my YouTube videos into communities is of critical importance

It’s ridiculously difficult to build an audience on YouTube using third party websites like reddit and N4G, and I’ve just reached the end of my rope dealing with people that honestly aren’t any more qualified to be moderators than I am.
Anyway, I produced a news video as part of my channel’s RPG Report segment and then went to submit it to N4G.
Seems simple enough, right.
To express just how absurd the whole situation is, I made this video using screen capture software to guide you through how far down the rabbit hole this goes.
And here are some screenshots of additional conversations taking place in the hours after I created this video: The worst part of this.
Selective enforcement of the made-up rules.

This girl posted her YouTube video at the same time I did

and her submission wasn’t auto failed by any of the mods.

They are so adamantly opposed to my submission on the basis that its a YouTube video

but it’s perfectly okay for someone else to do it.
And you CAN’T suggest her video slipped through their radar.
I let the mod know about her video and he said it was perfectly okay.
Yeah, that’s right: Lt.
Skittles once again auto-failed my post submission before anyone could vote on it.
It was at this time I looked directly below my rejected post and saw this, .

Rows of podcast and video submissions

Of course, because my post was submitted six hours ago it is like 50 something pages in the back.

At this point any hope I have of the N4G community seeing my video is gone

It’s buried under a mountain of stuff that didn’t get any votes in the past six hours.
It’s hard to be respectful when a simple act of submitting a link to a website takes six hours and a lot of back and forth just to get someone to watch the video.
Or to get told you aren’t considered an “industry professional” despite the years of work you’ve put into the industry.
And this mod comes across to me like the N4G community is like some kind of cult; like it’s the norm for mods to beat you down into submission and convert you to their way of thinking.
And this is where the story ends, .

Because I’ve wasted enough time on N4G

Their mods don’t respect the users and invent esoteric rules that aren’t mentioned on the website rules section but everyone is expected to psychically know them.
His statements demonstrate just how much they only care about their own clique.
What I believe is actually going on:.
I wish I knew.
I’d like to think there is some amount of favoritism, but the truth is I don’t have the time or energy to analyze the failed submissions versus the approved to find where all the dots connect.
What I do know is no social news website should be operating this way.
Why does any of this matter?.

In order to get your YouTube videos discovered you need to build lots of awareness

Because the ad revenue generated per monetized video view doesn’t earn enough money to justify traditional forms of marketing (like pay per click ads) you need to share your video on websites like reddit and N4G that accept submissions.
This is just a fact of life.
But when the mods block people from doing so for reasons that seem designed purely to discourage you, it makes it nearly impossible for creators to get discovered by audiences.
And you can’t say video creators are any less entitled to show their work than people who submit re-hashed memes, knitted dolls of game characters or hand-forged swords.
It takes a huge amount of time and creative ability to produce high-quality videos.
I’m an artist just like anyone else, so why am I persecuted just because my paintbrush is Final Cut Pro and After Effects, and my canvas is YouTube.
You also can’t expect videos on YouTube to be magically discovered; anyone who has built a large audience has leveraged sites like N4G and reddit to find viewers.
The problem is, in recent years the volunteer mods of these sites have hampered down on it, and basically fight anyone who exists outside the established cliches they belong to.

This is exactly why I made the Kickstarter for my own gaming social news site

rpgfanatic.net  The system is designed to not require any moderators (certainly not volunteer moderators) using gamification.
I can’t control how others run their websites, but I can choose to make a better alternative.
I hope the project gets funded so I can finally get the site in the state it’s needed to be in for the past two years.
It’s been sitting half-finished for much too long.

Martell TV is my focus right now

but I really believe a site like rpgfanatic.net is desperately needed in the gaming community, and the success of the site could inspire other websites to change their ways.
(Hey, a guy can dream, can’t he?) Facebook Twitter Reddit Tumblr StumbleUpon Digg Linkedin email.

Trip Update: Our App Works on Sony Smart TVs

How to Build a Successful YouTube Gaming Channel.
8,056 UniqueVisitorsPowered By Learn more:.

  • 0

A good example is the State of Siege title Cruel Necessity


#5gkb…of Solitaire Statements and Draw-cup Adjustments (Tom Russell)

#5gkb…of Solitaire Statements and Draw-cup Adjustments (Tom Russell)

ois extremely proud ro present an incredible insight into the working mind of Hollandspiele and its philosophy towards the design of strategic games for one.


I was talking on the phone with a game designer.
Like every other conversation I’ve had with that designer, it was wide-ranging and free-wheeling, covering a number of gaming-related topics.
I happened to mention something about solitaire wargames and how well they sold for the industry in general, and for us in particular.
After having seen over a dozen of my wargame designs hit the market.

The first one to really make a big splash was Agricola

Master of Britain, and at that time, it was the best-selling game that I had ever designed.
courtesy of Katie’s game Corner “I’m really sorry to hear that,” said the designer.
“Uh, what?” “I’m not sorry it did well, of course, .

I’m glad for you and Mary,” he said

“It’s just sad that solitaire games are so prevalent.
The whole point of board games is to share the experience with another person.
If I wanted to play a game by myself, I’d just play a video game.” The funny thing is, prior to converting my Agricola from an unsuccessful two-player game into a working solitaire one, my own view of solitaire-only board games probably wasn’t much different than that designer’s.
I had no problems playing on, if you’ll pardon the phrase, both sides of my table, and thus playing a 2P game solo.
I didn’t even have a problem playing that other Agricola solitaire when I felt like farming and Mary didn’t.
But I was always a little wary of dedicated solo-only wargames.
Like that designer friend of mine, if I wanted to play a game designed for one player, I’d just play a video game, but it was less because of any philosophical underpinnings about “the whole point of board games” being the shared nature of the experience, and more because I felt that a video game would offer me a richer and more compelling experience that rewarded (or punished) my strategies and prized my agency.
In short, a strategy computer game made me feel like my decisions mattered.
I was not convinced that this would be true in a solitaire-only wargame.
It didn’t help that none of the solo wargames I heard about seemed to have much strategy at all.
B-17, Queen of the Skies seemed to be all about passively experiencing an emergent story over which you had little control.
Ambush seemed to be a slightly more complicated version of Choose Your Own Adventure, with limited opportunities for true interaction.

The popular State of Siege series appeared to be essentially and ironically stateless

with the advancement of enemy units being dependent on a card draw, and your ability to beat them back dependent on good die rolls – a game more of luck than skill.
Now, before I go any further, let me say that these opinions were knee-jerk reactions (perhaps with the emphasis on the “jerk”) of someone on the outside, looking in and askance.
They are not necessarily “factually accurate”, and often there is much more to a game than first appears.
A good example is the State of Siege title Cruel Necessity, which helped change my mind about solo-only games.
The game has levers that the player can pull to give himself decisive advantages.
Now, I’m rubbish at pulling those levers, and I often felt like I was still at the mercy of the next card, and that the die provided by the publisher was either defective or possessed by a vengeful and vindictive spirit as it always came up precisely one pip short of what I needed.
It was still more a game of luck than skill, but there was more to it than I had initially thought, and there was also more potential for solitaire wargames to have meaningful decisions.
This general impression was aided by exposure to some solitaire designs by the intrepid team of Hermann Luttmann and Fred Manzo, and around this time I had decided to take another look at my long-gestating Agricola, Master of Britain.
I’m not going to bore you with all the details, primarily because I’ve already written about the creation of that particular game (and its spiritual sequel, Charlemagne, Master of Europe) but I will say that in general, my primary goal in designing these solitaire games was to put a greater emphasis on player agency.
Like my favorite abstract backgammon, there is luck involved, sometimes a lot of luck, but if your victory or defeat hinges upon a die roll going well, then you’re doing it wrong.
They are games of strategy, planning, and risk mitigation.
The core of the two games of course is the cup adjustment mechanism, which Mary tells me I need to come up with a better name for, as “cup adjustment” sounds somewhat risque.
Enemy units that aren’t on the map exist in a Friendly, Unfriendly, or Hostile cup, reflecting their general attitude toward what the player is doing.
When you take an action, you blindly move chits from one cup to another – actions that people like make them friendlier, actions they don’t, make them less so.
On a systemic level, your actions take on a sort of equilibrium, driving the game state, and directly impacting the feel of the late game.
This has the consequence of the game becoming easier on a tactical level when you’re doing well strategically, and harder when you’re doing poorly.
Long-term building projects you place on the board will also determine which cup eliminated enemy units go into at the end of the turn, which means that certain regions will gradually get quieter and easier to rule once you’ve put in the time and effort to pacify them.
The key in all this, and the intention behind it, is that your decisions have ramifications both immediate and long-term, and that the game state evolves in reaction to your playstyle.
I would contend in fact that it does this in a way that’s roughly analogous to the way in which another player changes what she’s doing in reaction to your playstyle.
I say “roughly analogous” because there is no other player.
A game system can only be a poor facsimile of human intelligence, so I think solo-only games are better at representing a diverse host of disorganized, disunited socio-political entities pursuing their own inscrutable goals.
An important part of the player having agency and making meaningful decisions is that she is the attacker, and tasked with achieving something of consequence.
Many solitaire games tend to put the player in the role of the defender, striving only to beat back the inexorable horde outside the gates.
So much so that years ago, when I was still skeptical of the appeal of solo-only games, a publisher told me that doing a solo game was easy – take a situation where one side is on the ropes and hopelessly overwhelmed: that’s the player, the system is the attacker, and it almost always wins.
Even as I’ve come around on solitaire wargames, and even as we’re going to publish a few of them, in general I’m still very wary of “overwhelmed defender struggling to stay afloat” State of Siege style games.
Every once in a while, someone sends us a solitaire game along those lines that captivates us by doing something new and exciting with the formula.
Brad Smith’s NATO Air Commander gives players a lot of options and flexibility in how they approach the air-based defense of Europe in this Cold War goes hot game set in the eighties.
The player must choose between short-term tactical objectives and long-term strategic missions that can tip the odds into the player’s favor.
Robert DeLeskie’s Wars of Marcus Aurelius uses CDG-style mechanisms, focusing on card angst and resource management as you fend off the literal barbarians at the gates.
In both of these games.

Despite the shades of State of Siege

players are encouraged to take an active role, their decisions matter, and the game state is mutable.
As a publisher, we receive a lot of solitaire submissions, and the vast majority of them fall into the “desperate defender” camp, and, I’m sorry to report, very few of them sustain any strategy beyond “roll high”.
The game is stateless, your decisions negligible.
It got to the point that we actually changed our submission guidelines to say, Please.
For the love of God.

Stop sending us State of Siege games

That’s not to say there isn’t a market for these “player is merely along for the ride” sort of games.
Clearly there is.
Such games can be thematic, and, at least for an hour or so, pleasantly diverting.
But solitaire games are capable of more than that.
I want more than that, and I think many gamers do as well.

If you would like to help support the BSoMT website

please feel free to buy me a coffee at or pop over to Hollandspiele on Twitter: Tweets by hollandspiele Hollandspiel Website: https://hollandspiele.com/ oarticle on Agricola Master of Britain #6solo…of Sodden Legions and Tribal Rebellions.

One thought on “#5gkb…of Solitaire Statements and Draw-cup Adjustments (Tom Russell) ”

Liz (Beyond Solitaire) 01/02/2018 at 14:41 I got a shipping notice for Agricola: Master of Britain this morning.
Very much looking forward to giving it a try.
Thanks for the insightful post.
Like Reply.
Leave a Reply Cancel reply.
Enter your comment here.
Email Name Website You are commenting using your WordPress.com account.
(  /   ) You are commenting using your Google account.
(  /   ) You are commenting using your Twitter account.
(  /   ) You are commenting using your Facebook account.
(  /   ).
Follow BSoMT UKGE 2018 UK Games Expo 2018 Assembly Kickstarter Launch Assembly Kickstarter Dwarven Traders (2d6EE Games) Kickstarter Launch Dwarven Traders Kickstarter Launch Fella, Destroyer of Worlds Both Sides of My Table Unforseen event devistates the island.
Velcro the boardgame cat.
Post to Send to Email Address Your Name Your Email Address Post was not sent – check your email addresses.
Email check failed, please try again Sorry, your blog cannot share posts by email.
bloggers like this:.