SlideShare a Scribd company logo
Tuesday, August 13, 13
Tuesday, August 13, 13
! movl! edi,[_ylookup+edi*4]
! movl! eax,[_ds_x1]
! addl edi,[_columnofs+eax*4]
//
// build composite step
//
! movl! ebx,[_ds_xstep]
! shll! ebx,10
! andl! ebx,0ffff0000h
! movl! eax,[_ds_ystep]
! shrl! eax,6
! andl! eax,0ffffh
! orl!ebx,eax
! movl! ! eax,OFFSET hpatch1+2! ! // convice tasm to modify
code...
! movl! ! [eax],ebx
! movl! ! eax,OFFSET hpatch2+2! ! // convice tasm to modify
code...
! movl! ! [eax],ebx
// eax!! aligned colormap
// ebx!! aligned colormap
// ecx,edx! scratch
// esi!! virtual source
// edi!! moving destination pointer
// ebp!! frac
! shldl ecx,ebp,22!
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
TDD and Games
Silly, Stupid or Inspired?
Tuesday, August 13, 13
var spaceImage = $("<img src='images/
space_background.png'>");
spaceImage.load(function() {
spaceBackground = spaceImage.get(0);
});
var playerImage = $("<img src='images/
player.png'>");
playerImage.load(function() {
player = playerImage.get(0);
});
var bulletJQueryImage = $("<img src='images/
bullet.png'>");
bulletJQueryImage.load(function() {
bulletImage = bulletJQueryImage.get(0);
});
Tuesday, August 13, 13
var context,
spaceBackground,
player,
bulletImage,
spiderImage,
bullets = [],
spiders = [],
startTicks,
lastGeneration,
laserBeam,
gameOn = true,
explosion,
pop,
backgroundMusicTuesday, August 13, 13
Tuesday, August 13, 13
Scheduler
◦ schedules method called for repeated calls: ✓ schedules method called for
repeated calls
◦ clears the interval when stop is called: ✓ clears the interval when stop
is called
◦ calls that method with the tick rate: ✓ calls that method with the tick
rate (200ms)
◦ returns the time for tics: ✓ returns the time for tics
◦ returns its tick time: ✓ returns its tick time
99 tests complete (743 ms)
Done. Build script exited with 0
Tuesday, August 13, 13
Eskimo!
Tuesday, August 13, 13
Tuesday, August 13, 13
?Tuesday, August 13, 13
it("uses an associated loader to create a level object, if one exists", function() {
var gameDescription = {
"newLevel": {
"gameObject" : {
"customObject" : {}
}
}
};
var customObjectLoader = {
load: function(levelSpec, objectName, level, callback) {
callback(objectName, {levelSpec: levelSpec, objectName: objectName, level:
level});
}
};
var gameSpec = new GameSpec({ assetDefinition: gameDescription });
gameSpec.registerLoader('customObject', customObjectLoader);
gameSpec.load("newLevel", function(level) {
var loadedObject = level.gameObject('gameObject');
assert.strictEqual(loadedObject.level, level);
});
});
Tuesday, August 13, 13
var Eskimo = require('../src/main'),
canvas,
should = require('should'),
assert = require('assert'),
emptyFunction = function() {},
emptyDocument = {documentElement: null},
jquery = require("jquery"),
FixedGameLoop = require("../src/fixed-game-loop"),
ObjectPipeline = require('../src/object_pipeline/
display_visible_objects.js'),
sandbox = require('sinon').sandbox.create(),
levels = {};
function dependencies(customConfig) {
var dependencyConfig = {
game: {create: sandbox.stub().returns({})},
};
if (customConfig !== null) {
jquery.extend(dependencyConfig, customConfig);
}
return dependencyConfig;
}
function configuration(config) {
var standardConfig = {Tuesday, August 13, 13
Tuesday, August 13, 13
KEEP
IT
SIMPLE
STUPID
Tuesday, August 13, 13
Tuesday, August 13, 13
Hunting
Tuesday, August 13, 13
Console DLL Game Logic
Tuesday, August 13, 13
[Test]
 public void ItMovesAnArrowInTheCommandedDirection()
 {
     var presenter = Substitute.For<Presenter>();
     var map = new Map();
     var game = new Game(presenter, map);
     game.SetPlayerQuiver(1);
     map.PlaceItem(0, MapItems.Player);
     map.AddPath(0, 1, Command.Directions.East);
     game.Command(new Command {
         Direction = Command.Directions.East,
         Order = Command.Commands.Shoot});
     Assert.AreEqual(MapItems.Arrow, map.ItemsInCavern(1)[0]);
 }
Tuesday, August 13, 13
 protected void Rest()
 {
     DisplayAvailableDirections();
     DisplayArrowStatus();
 }
Tuesday, August 13, 13
Feeling Good
Tuesday, August 13, 13
Cubicle Wars
Tuesday, August 13, 13
Unity
Makes your life easier when it’s not making it harder
Tuesday, August 13, 13
Scripts
Tuesday, August 13, 13
public class NewScript : MonoBehaviour {
	 // Use this for initialization
	 void Start () {
	
	 }
	
	 // Update is called once per frame
	 void Update () {
	
	 }
}
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
void Awake() {
	 	 stateMachine = new CubicleWarsStateMachine(
	 	 	 new HumanPlayer("Player1"),
	 	 	 new HumanPlayer("Player2"));
Tuesday, August 13, 13
! ! [Test]
! ! public void ItAllowsAddingAUnitToAPlayer()
! ! {
! ! ! var unit = Substitute.For<Unit>();
! ! ! stateMachine.AddUnitToPlayer("PlayerOne", unit);
! ! ! stateMachine.AddUnitToPlayer("PlayerTwo", unit);
! ! ! playerOne.Received().AddUnit(unit);
! ! ! playerTwo.Received().AddUnit(unit);
! ! }
Tuesday, August 13, 13
Updating theView
Tuesday, August 13, 13
Update theView
public void Attack(Unit unit)
! ! {
! ! ! if (CurrentState == State.Attacking)
! ! ! {
! ! ! ! unit.AttackWith(CurrentPlayer.Weapon());
Tuesday, August 13, 13
Shared Interfaces
Tuesday, August 13, 13
C# Events
public delegate void GameOverEvent(String winner);
...
public event GameOverEvent GameOver = delegate { };
...
private void AnnouncePlayerWins()
{
GameOver(CurrentPlayer.Name);
}
Tuesday, August 13, 13
Wiring the Events
machine.GameOver += delegate(string winner)
{
winMessage.SendMessage("ShowWinner",
String.Format("{0} wins!", winner));
};
Tuesday, August 13, 13
Health
Tuesday, August 13, 13
“MVC”
Tuesday, August 13, 13
void Update()
{
	 // Each update checks if we are waiting, and if so
	 // modulates the color based on the sin wave and the
	 // current time.
	 if (StartWaiting) {
		 renderer.material.color =
tint * wave.at(Time.time);
	 }
}
Tuesday, August 13, 13
Effects
public class SineWave
{
! protected float Amplitude { get; set; }
! protected float Frequency { get; set; }
! protected float Offset { get; set; }
! public SineWave(float amplitude, float frequency, float offset)
! {
! ! Amplitude = amplitude;
! ! Frequency = frequency;
! ! Offset = offset;
! }
! public float at(float time)
! {
! ! return (Amplitude * (float)Math.Sin(Frequency * time))
+ Offset;
! }
}
Tuesday, August 13, 13
Effects
[Test]
public void ItReturnsANormalSinWaveOnTime()
{
! var sineWave = new SineWave(1, 1, 0);
! Assert.AreEqual(0, sineWave.at(0));
! Assert.AreEqual(1, sineWave.at((float)
Math.PI / 2.0f));
}
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
Hypothesis
Tuesday, August 13, 13
Hypothesis
Tuesday, August 13, 13
Tuesday, August 13, 13
-(void) notifyOfSuccessfulDay
{
[self.presenter gameOver:Successful];
}
-(void) notifyOfFailedDay
{
[self.presenter gameOver:Failed];
}
-(void) notifyOfKidDeath
{
[self.presenter kidsKilledYou];
}
-(void) notifyOfWorkDeath
{
[self.presenter workKilledYou];
}
Tuesday, August 13, 13
It(@"Will inform the employee of clock ticks when the turn ends", ^{
id daddy = [OCMockObject niceMockForProtocol:@protocol(Freelancer)];
WorkdayStateMachine *machine = [WorkdayStateMachine machineWithFreeLancer:dadd
presenter:nil]
[machine start];
[[daddy expect] clockTicked];
[machine endTurn];
[daddy verify];
});
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
It(@"is fun", ^{
[ExpectBool(game.fun) toBeTrue];
})
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
FTT
• Forget
• The
• Tests
Tuesday, August 13, 13
Sprite *sprite = Sprite::createWithTexture(batchNode->getTexture());
sprite->setPosition(ccp(0, 60));
batchNode->addChild(sprite, 0, kTopBucket);
sprite = Sprite::createWithTexture(batchNode->getTexture());
sprite->setPosition(ccp(0, 0));
batchNode->addChild(sprite, 0, kMiddleBucket);
sprite = Sprite::createWithTexture(batchNode->getTexture());
sprite->setPosition(ccp(0, -60));
batchNode->addChild(sprite, 0, kBottomBucket);
Tuesday, August 13, 13
Tuesday, August 13, 13
Design Phase
Tuesday, August 13, 13
Bugs
Tuesday, August 13, 13
Tuesday, August 13, 13
Not the Hard Part
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
Tuesday, August 13, 13
Throw It Out!
Tuesday, August 13, 13
It(@"lets the lesson know about an incorrect guess if this is the wrong card", ^{
[[lesson expect] incorrectGuess];
[card tap];
[lesson verify];
});
-(void) tap
{
self.current ? [self.lesson correctGuess] : [self.lesson
incorrectGuess];
}
Tuesday, August 13, 13
-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
CGSize textureSize = [self.texture contentSizeInPixels];
if ([Card contains: [self convertTouchToNodeSpaceAR:touch]
inTextureSize:textureSize])
{
[self setScale:1.2f];
return true;
}
return false;
}
-(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
{
[self setScale:1.0f];
[self.card tap];
}
Tuesday, August 13, 13
<p>
<strong>Title:</strong>
<%= @post.title %>
</p>
<p>
<strong>Text:</strong>
<%= @post.text %>
</p>
Tuesday, August 13, 13
<%= form_for :post, url: posts_path do |f| %>
<% if @post.errors.any? %>
<div id="errorExplanation">
<h2><%= pluralize(@post.errors.count, "error") %>
prohibited
this post from being saved:</h2>
<ul>
<% @post.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end
Tuesday, August 13, 13
Expect(game) toBeFun
Tuesday, August 13, 13
@paytonrules
www.paytonrules.com
www.8thlight.com
www.github.com/paytonrules
Tuesday, August 13, 13
Platinum Sponsors
Gold Sponsors
Tuesday, August 13, 13
August 11th – 13th 2014
Same Place, Same Time
Tuesday, August 13, 13

More Related Content

What's hot

Lenses
LensesLenses
Nosql hands on handout 04
Nosql hands on handout 04Nosql hands on handout 04
Nosql hands on handout 04
Krishna Sankar
 
Box2D and libGDX
Box2D and libGDXBox2D and libGDX
Box2D and libGDX
Jussi Pohjolainen
 
Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9
Bongwon Lee
 
libGDX: Tiled Maps
libGDX: Tiled MapslibGDX: Tiled Maps
libGDX: Tiled Maps
Jussi Pohjolainen
 
What they don't tell you about JavaScript
What they don't tell you about JavaScriptWhat they don't tell you about JavaScript
What they don't tell you about JavaScript
Raphael Cruzeiro
 
ECMAScript 6 new features
ECMAScript 6 new featuresECMAScript 6 new features
ECMAScript 6 new features
GephenSG
 
The State of JavaScript
The State of JavaScriptThe State of JavaScript
The State of JavaScript
Domenic Denicola
 
스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내
Jung Kim
 
Capability Driven Design - Andrzej Jóźwiak - TomTom Dev Day 2021
Capability Driven Design - Andrzej Jóźwiak  - TomTom Dev Day 2021Capability Driven Design - Andrzej Jóźwiak  - TomTom Dev Day 2021
Capability Driven Design - Andrzej Jóźwiak - TomTom Dev Day 2021
Andrzej Jóźwiak
 
Chrome拡張開発者のためのFirefox拡張開発
Chrome拡張開発者のためのFirefox拡張開発Chrome拡張開発者のためのFirefox拡張開発
Chrome拡張開発者のためのFirefox拡張開発
swdyh
 
rx.js make async programming simpler
rx.js make async programming simplerrx.js make async programming simpler
rx.js make async programming simpler
Alexander Mostovenko
 
JavaScript Survival Guide
JavaScript Survival GuideJavaScript Survival Guide
JavaScript Survival Guide
Giordano Scalzo
 
Mozilla とブラウザゲーム
Mozilla とブラウザゲームMozilla とブラウザゲーム
Mozilla とブラウザゲーム
Noritada Shimizu
 
ES6 generators
ES6 generatorsES6 generators
ES6 generators
Steven Foote
 
Rethink Async with RXJS
Rethink Async with RXJSRethink Async with RXJS
Rethink Async with RXJS
ColdFusionConference
 
Cross-scene references: A shock to the system - Unite Copenhagen 2019
Cross-scene references: A shock to the system - Unite Copenhagen 2019Cross-scene references: A shock to the system - Unite Copenhagen 2019
Cross-scene references: A shock to the system - Unite Copenhagen 2019
Unity Technologies
 
Html5 game programming overview
Html5 game programming overviewHtml5 game programming overview
Html5 game programming overview
민태 김
 
Functional programming using underscorejs
Functional programming using underscorejsFunctional programming using underscorejs
Functional programming using underscorejs
偉格 高
 
Kotlin - Coroutine
Kotlin - CoroutineKotlin - Coroutine
Kotlin - Coroutine
Sean Tsai
 

What's hot (20)

Lenses
LensesLenses
Lenses
 
Nosql hands on handout 04
Nosql hands on handout 04Nosql hands on handout 04
Nosql hands on handout 04
 
Box2D and libGDX
Box2D and libGDXBox2D and libGDX
Box2D and libGDX
 
Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9
 
libGDX: Tiled Maps
libGDX: Tiled MapslibGDX: Tiled Maps
libGDX: Tiled Maps
 
What they don't tell you about JavaScript
What they don't tell you about JavaScriptWhat they don't tell you about JavaScript
What they don't tell you about JavaScript
 
ECMAScript 6 new features
ECMAScript 6 new featuresECMAScript 6 new features
ECMAScript 6 new features
 
The State of JavaScript
The State of JavaScriptThe State of JavaScript
The State of JavaScript
 
스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내
 
Capability Driven Design - Andrzej Jóźwiak - TomTom Dev Day 2021
Capability Driven Design - Andrzej Jóźwiak  - TomTom Dev Day 2021Capability Driven Design - Andrzej Jóźwiak  - TomTom Dev Day 2021
Capability Driven Design - Andrzej Jóźwiak - TomTom Dev Day 2021
 
Chrome拡張開発者のためのFirefox拡張開発
Chrome拡張開発者のためのFirefox拡張開発Chrome拡張開発者のためのFirefox拡張開発
Chrome拡張開発者のためのFirefox拡張開発
 
rx.js make async programming simpler
rx.js make async programming simplerrx.js make async programming simpler
rx.js make async programming simpler
 
JavaScript Survival Guide
JavaScript Survival GuideJavaScript Survival Guide
JavaScript Survival Guide
 
Mozilla とブラウザゲーム
Mozilla とブラウザゲームMozilla とブラウザゲーム
Mozilla とブラウザゲーム
 
ES6 generators
ES6 generatorsES6 generators
ES6 generators
 
Rethink Async with RXJS
Rethink Async with RXJSRethink Async with RXJS
Rethink Async with RXJS
 
Cross-scene references: A shock to the system - Unite Copenhagen 2019
Cross-scene references: A shock to the system - Unite Copenhagen 2019Cross-scene references: A shock to the system - Unite Copenhagen 2019
Cross-scene references: A shock to the system - Unite Copenhagen 2019
 
Html5 game programming overview
Html5 game programming overviewHtml5 game programming overview
Html5 game programming overview
 
Functional programming using underscorejs
Functional programming using underscorejsFunctional programming using underscorejs
Functional programming using underscorejs
 
Kotlin - Coroutine
Kotlin - CoroutineKotlin - Coroutine
Kotlin - Coroutine
 

Similar to Test driven game development silly, stupid or inspired?

Security Challenges in Node.js
Security Challenges in Node.jsSecurity Challenges in Node.js
Security Challenges in Node.js
Websecurify
 
連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」
matuura_core
 
OO JS for AS3 Devs
OO JS for AS3 DevsOO JS for AS3 Devs
OO JS for AS3 Devs
Jason Hanson
 
i have a code that runs, but it only lets the player to guess where .pdf
i have a code that runs, but it only lets the player to guess where .pdfi have a code that runs, but it only lets the player to guess where .pdf
i have a code that runs, but it only lets the player to guess where .pdf
poblettesedanoree498
 
Itty bittypresentation lrug
Itty bittypresentation lrugItty bittypresentation lrug
Itty bittypresentation lrug
Skills Matter
 
Itty bittypresentation lrug
Itty bittypresentation lrugItty bittypresentation lrug
Itty bittypresentation lrug
Tom Crinson
 
ES6: Features + Rails
ES6: Features + RailsES6: Features + Rails
ES6: Features + Rails
Santosh Wadghule
 
An Introduction to JavaScript: Week 4
An Introduction to JavaScript: Week 4An Introduction to JavaScript: Week 4
An Introduction to JavaScript: Week 4
Event Handler
 
玉転がしゲームで学ぶUnity入門
玉転がしゲームで学ぶUnity入門玉転がしゲームで学ぶUnity入門
玉転がしゲームで学ぶUnity入門
nakamura001
 
Nik Graf - Get started with Reason and ReasonReact
Nik Graf - Get started with Reason and ReasonReactNik Graf - Get started with Reason and ReasonReact
Nik Graf - Get started with Reason and ReasonReact
OdessaJS Conf
 
Agile Iphone Development
Agile Iphone DevelopmentAgile Iphone Development
Agile Iphone Development
Giordano Scalzo
 
Workshop 5: JavaScript testing
Workshop 5: JavaScript testingWorkshop 5: JavaScript testing
Workshop 5: JavaScript testing
Visual Engineering
 
JSConf: All You Can Leet
JSConf: All You Can LeetJSConf: All You Can Leet
JSConf: All You Can Leet
johndaviddalton
 
ES6 - Level up your JavaScript Skills
ES6 - Level up your JavaScript SkillsES6 - Level up your JavaScript Skills
ES6 - Level up your JavaScript Skills
Stefano Ceschi Berrini
 
The Ring programming language version 1.10 book - Part 71 of 212
The Ring programming language version 1.10 book - Part 71 of 212The Ring programming language version 1.10 book - Part 71 of 212
The Ring programming language version 1.10 book - Part 71 of 212
Mahmoud Samir Fayed
 
The following code, is a one player battleship game in JAVA. Im tryi.pdf
The following code, is a one player battleship game in JAVA. Im tryi.pdfThe following code, is a one player battleship game in JAVA. Im tryi.pdf
The following code, is a one player battleship game in JAVA. Im tryi.pdf
fonecomp
 
Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6
Visual Engineering
 
Groovy
GroovyGroovy
Groovy
Zen Urban
 
Web Optimization Summit: Coding for Performance
Web Optimization Summit: Coding for PerformanceWeb Optimization Summit: Coding for Performance
Web Optimization Summit: Coding for Performance
johndaviddalton
 
JavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your codeJavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your code
Laurence Svekis ✔
 

Similar to Test driven game development silly, stupid or inspired? (20)

Security Challenges in Node.js
Security Challenges in Node.jsSecurity Challenges in Node.js
Security Challenges in Node.js
 
連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」
 
OO JS for AS3 Devs
OO JS for AS3 DevsOO JS for AS3 Devs
OO JS for AS3 Devs
 
i have a code that runs, but it only lets the player to guess where .pdf
i have a code that runs, but it only lets the player to guess where .pdfi have a code that runs, but it only lets the player to guess where .pdf
i have a code that runs, but it only lets the player to guess where .pdf
 
Itty bittypresentation lrug
Itty bittypresentation lrugItty bittypresentation lrug
Itty bittypresentation lrug
 
Itty bittypresentation lrug
Itty bittypresentation lrugItty bittypresentation lrug
Itty bittypresentation lrug
 
ES6: Features + Rails
ES6: Features + RailsES6: Features + Rails
ES6: Features + Rails
 
An Introduction to JavaScript: Week 4
An Introduction to JavaScript: Week 4An Introduction to JavaScript: Week 4
An Introduction to JavaScript: Week 4
 
玉転がしゲームで学ぶUnity入門
玉転がしゲームで学ぶUnity入門玉転がしゲームで学ぶUnity入門
玉転がしゲームで学ぶUnity入門
 
Nik Graf - Get started with Reason and ReasonReact
Nik Graf - Get started with Reason and ReasonReactNik Graf - Get started with Reason and ReasonReact
Nik Graf - Get started with Reason and ReasonReact
 
Agile Iphone Development
Agile Iphone DevelopmentAgile Iphone Development
Agile Iphone Development
 
Workshop 5: JavaScript testing
Workshop 5: JavaScript testingWorkshop 5: JavaScript testing
Workshop 5: JavaScript testing
 
JSConf: All You Can Leet
JSConf: All You Can LeetJSConf: All You Can Leet
JSConf: All You Can Leet
 
ES6 - Level up your JavaScript Skills
ES6 - Level up your JavaScript SkillsES6 - Level up your JavaScript Skills
ES6 - Level up your JavaScript Skills
 
The Ring programming language version 1.10 book - Part 71 of 212
The Ring programming language version 1.10 book - Part 71 of 212The Ring programming language version 1.10 book - Part 71 of 212
The Ring programming language version 1.10 book - Part 71 of 212
 
The following code, is a one player battleship game in JAVA. Im tryi.pdf
The following code, is a one player battleship game in JAVA. Im tryi.pdfThe following code, is a one player battleship game in JAVA. Im tryi.pdf
The following code, is a one player battleship game in JAVA. Im tryi.pdf
 
Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6
 
Groovy
GroovyGroovy
Groovy
 
Web Optimization Summit: Coding for Performance
Web Optimization Summit: Coding for PerformanceWeb Optimization Summit: Coding for Performance
Web Optimization Summit: Coding for Performance
 
JavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your codeJavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your code
 

More from Eric Smith

Web Security 100
Web Security 100Web Security 100
Web Security 100
Eric Smith
 
Legacy codesmalltalk
Legacy codesmalltalkLegacy codesmalltalk
Legacy codesmalltalk
Eric Smith
 
Tdd in unity
Tdd in unityTdd in unity
Tdd in unity
Eric Smith
 
Html5 episode 2
Html5 episode 2Html5 episode 2
Html5 episode 2
Eric Smith
 
SCMC HTML5 Game Development
SCMC HTML5 Game DevelopmentSCMC HTML5 Game Development
SCMC HTML5 Game Development
Eric Smith
 
8thlightu3
8thlightu38thlightu3
8thlightu3
Eric Smith
 
8thlightu2
8thlightu28thlightu2
8thlightu2
Eric Smith
 

More from Eric Smith (7)

Web Security 100
Web Security 100Web Security 100
Web Security 100
 
Legacy codesmalltalk
Legacy codesmalltalkLegacy codesmalltalk
Legacy codesmalltalk
 
Tdd in unity
Tdd in unityTdd in unity
Tdd in unity
 
Html5 episode 2
Html5 episode 2Html5 episode 2
Html5 episode 2
 
SCMC HTML5 Game Development
SCMC HTML5 Game DevelopmentSCMC HTML5 Game Development
SCMC HTML5 Game Development
 
8thlightu3
8thlightu38thlightu3
8thlightu3
 
8thlightu2
8thlightu28thlightu2
8thlightu2
 

Recently uploaded

Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 

Recently uploaded (20)

Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 

Test driven game development silly, stupid or inspired?