SlideShare a Scribd company logo
Making gaming more fun
and efficient
โ€”
Cong Nguyen
Developer Advocate
Analyst, PMO
Angular, native iOS, integration,
Kubernetes, cognitive services
Hardware design
2
@devxcong
linkedin.com/in/cong-ng
*Disclaimer*
The technical content
of the following talk
was not done during
work hours, and is
definitely not
endorsed by my
employer.
3
4
Back in 2015...
when I started using Javascript...
5
Start
Most size around ~9k to 10k
Over 11k points
6
7
8
Over the course of 3 months,
9
0 1 2 3 4 5 6 7 8 9
FARMING
MONITORING
OPS COORDINATING
WORK/STUDY
LIFE (EAT + SLEEP)
Hours
AVERAGE HOURS SPENT IN A DAY
10
#1
How does the comms
work?
11
Game client talks to server
over WebSocket created
with Socket.io 2.0 library.
Socket.io libraries add extra
features onto the plain
websocket. Must use
socket.io-client library.
At the time of dev, socket.io-
client v2.0 is only available in
Javascript.
12
Request /
Response
Fire-forget
Notifications
https://gist.github.com/rampadc/d719d60a2e359670808f862712bcb9ae
Messages have to be
cleaned beforehand...
13
Messages are sent with an
id field for game client to
pair up requests and
responses.
14
Automate farming, data
collection for BI
Automate attack commands
Customised to send out farm to barbs every 10 minutes
Birds-eye view on whoโ€™s growing and whoโ€™s away
15
https://flows.nodered.org/node/node-red-contrib-tribalwars2-gap
Fed with data from a
visual attack planner
Farming is automated.
Leave attack script to
run overnight if
needed.
Go to bed @ 11pm, and
woke up at 7am
~8 hours sleep
16
Always had resources
to grow and rebuild.
Rose to rank #29 in
world en6
17
Joined the #1 tribe,
and won the world.
18
But even better...
19
Got this message from a raging player in-game
Created an emotional
impact on another...
Started to add other
features like:
- Auto building
- Auto recruiting
- Auto reports
reading/cleaning
- CLI to play the game
@ work
20
based on presets
21
FATAL ERROR:
JavaScript heap out of
memory
22
This bot was poorly
architectured and
needs to be rewritten
๐Ÿ˜”
23
Since Dec 2018,
started to improve the
bot
24
1. Supports RPC, pub/sub, fire-forget
2. PROD as CFโ€™s MQ, CNCF incubating
3. Core covers at-most-once delivery
4. Lightweight, non-persistent MQ
5. Really easy-to-useTypescript library
I โค๏ธ Cloud Foundry
25
Beyond the basics with
Cloud Foundry
https://developer.ibm.
com/articles/beyond-
the-basics-with-cloud-
foundry/
From building the
visual attack planner,
I really like Node-RED
- See everything
- Drag-and-drop
It used everywhere,
from home automation
to multi vendorsโ€™ IoT
platforms. Large and
active community!
26
https://flows.nodered.org/node/node-red-contrib-tribalwars2-gap
Future state
27
28
29
BPMN/DMN
workflows
Business Process Modelling Notation
Decision Modeling Notation
30
Human readable Machine readable Focus on process Less bugs to fix
Dodge/Back-time flow
specification is
standardised by the
Object Management
Group , to
communicate business
processes.
31
There are a many BPMN engines implemented.
Free & open-source
- Activiti
- Camunda
- jBPM
Proprietary
- IBM BPM (supports JS)
- Red Hat Process Manager
Choosing Camunda because itโ€™s free.
32
33
BPMN/DMN
workflows
Future: Encrypt messages for multi-tenancy
AddTLS authentication to Node-RED
MongoDBโ€™s connector
Inject trace messaging into each
nodes by default
Project evolved from a
simple game bot to...
34
An automation stack
for the JS ecosystem.
35
An automation stack
for the JS ecosystem.
With a simple use
case.
36
An automation stack
for the JS ecosystem.
With a simple use
case.
37
An automation stack
for the JS ecosystem.
With a simple use
case.
Unless something like
this already exists...
please tell me if it
does.
38

More Related Content

What's hot (19)

PDF
Berbagai Pilihan Karir Developer
Riza Fahmi
ย 
PPTX
Academy PRO: .NET Core intro
Binary Studio
ย 
PDF
Pre-render Blazor WebAssembly on static web hosting at publishing time
Jun-ichi Sakamoto
ย 
PDF
CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)
Red Hat Developers
ย 
PPTX
Net core
Damir Dobric
ย 
PPTX
Developing .NET Core AWS Lambda functions
Deniz ฤฐrgin
ย 
PPTX
Deploying ASP.Net Core apps in Docker Containers
Amal Dev
ย 
PDF
The shift to the edge
Jakub Wadolowski
ย 
PDF
[Workshop] "Vuetify in practice", Alexander Stepanov
Fwdays
ย 
PDF
Node & Express as Workflow Tools
FITC
ย 
PPTX
Tearing down the //build/ 2016 conference
Jim Wooley
ย 
PPTX
Short introduction - .net core and .net standard 2.0
Mark Lechtermann
ย 
PPTX
Migrating .NET Application to .NET Core
Baris Ceviz
ย 
PPTX
Microservice Development Using Telepresence
Vishal Banthia
ย 
PDF
Multiplatform C++ on the Web with Emscripten
Chad Austin
ย 
PDF
Kubernetes buildpacks - from a source code to the running OCI container with ...
PROIDEA
ย 
PDF
High Productivity Web Development Workflow
Vลฉ Nguyแป…n
ย 
PPTX
Open API (aka Swagger) - DDD by Night May 2020
Pratik Khasnabis
ย 
PPTX
.Net Core
Bertrand Le Roy
ย 
Berbagai Pilihan Karir Developer
Riza Fahmi
ย 
Academy PRO: .NET Core intro
Binary Studio
ย 
Pre-render Blazor WebAssembly on static web hosting at publishing time
Jun-ichi Sakamoto
ย 
CDK 2.0: Docker, Kubernetes, And OSE On Your Desk (Langdon White)
Red Hat Developers
ย 
Net core
Damir Dobric
ย 
Developing .NET Core AWS Lambda functions
Deniz ฤฐrgin
ย 
Deploying ASP.Net Core apps in Docker Containers
Amal Dev
ย 
The shift to the edge
Jakub Wadolowski
ย 
[Workshop] "Vuetify in practice", Alexander Stepanov
Fwdays
ย 
Node & Express as Workflow Tools
FITC
ย 
Tearing down the //build/ 2016 conference
Jim Wooley
ย 
Short introduction - .net core and .net standard 2.0
Mark Lechtermann
ย 
Migrating .NET Application to .NET Core
Baris Ceviz
ย 
Microservice Development Using Telepresence
Vishal Banthia
ย 
Multiplatform C++ on the Web with Emscripten
Chad Austin
ย 
Kubernetes buildpacks - from a source code to the running OCI container with ...
PROIDEA
ย 
High Productivity Web Development Workflow
Vลฉ Nguyแป…n
ย 
Open API (aka Swagger) - DDD by Night May 2020
Pratik Khasnabis
ย 
.Net Core
Bertrand Le Roy
ย 

Similar to CampJS - Making gaming more fun and efficient (20)

PPTX
Building fast,scalable game server in node.js
Xie ChengChao
ย 
PPTX
Picnic Software - Developing a flexible and scalable application
Nick Josevski
ย 
PPTX
Game server development in node.js in jsconf eu
Xie ChengChao
ย 
KEY
A million connections and beyond - Node.js at scale
Tom Croucher
ย 
PPTX
Where is my scalable api?
Altoros
ย 
PPTX
Cloud Foundry: Hands-on Deployment Workshop
Manuel Garcia
ย 
PPTX
Scalable Web Apps
Piotr Pelczar
ย 
PPTX
JustLetMeCode-Final
David Persing
ย 
PDF
The Happy Path: Migration Strategies for Node.js
Nicholas Jansma
ย 
PPTX
The Hard Problems of Continuous Deployment
Timothy Fitz
ย 
PDF
Dragoncraft Architectural Overview
jessesanford
ย 
PDF
Firebase introduction
Mu Chun Wang
ย 
PDF
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
Redis Labs
ย 
PDF
Aws uk ug #8 not everything that happens in vegas stay in vegas
Peter Mounce
ย 
KEY
Getting Started with MongoDB and Node.js
Grant Goodale
ย 
PPTX
Where is my scalable API?
Juan Pablo Genovese
ย 
PDF
Node.js and couchbase Full Stack JSON - Munich NoSQL
Philipp Fehre
ย 
PDF
Disassembling the Monolith: Taming Large Software Projects with Node.js
Nicholas Young
ย 
PPT
IBM Open Cloud Update XCITE Fall 2014
Christopher Ferris
ย 
PPTX
Building an MMORPG - Here be monsters
Yan Cui
ย 
Building fast,scalable game server in node.js
Xie ChengChao
ย 
Picnic Software - Developing a flexible and scalable application
Nick Josevski
ย 
Game server development in node.js in jsconf eu
Xie ChengChao
ย 
A million connections and beyond - Node.js at scale
Tom Croucher
ย 
Where is my scalable api?
Altoros
ย 
Cloud Foundry: Hands-on Deployment Workshop
Manuel Garcia
ย 
Scalable Web Apps
Piotr Pelczar
ย 
JustLetMeCode-Final
David Persing
ย 
The Happy Path: Migration Strategies for Node.js
Nicholas Jansma
ย 
The Hard Problems of Continuous Deployment
Timothy Fitz
ย 
Dragoncraft Architectural Overview
jessesanford
ย 
Firebase introduction
Mu Chun Wang
ย 
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
Redis Labs
ย 
Aws uk ug #8 not everything that happens in vegas stay in vegas
Peter Mounce
ย 
Getting Started with MongoDB and Node.js
Grant Goodale
ย 
Where is my scalable API?
Juan Pablo Genovese
ย 
Node.js and couchbase Full Stack JSON - Munich NoSQL
Philipp Fehre
ย 
Disassembling the Monolith: Taming Large Software Projects with Node.js
Nicholas Young
ย 
IBM Open Cloud Update XCITE Fall 2014
Christopher Ferris
ย 
Building an MMORPG - Here be monsters
Yan Cui
ย 
Ad

Recently uploaded (20)

PDF
AI Software Engineering based on Multi-view Modeling and Engineering Patterns
Hironori Washizaki
ย 
PDF
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
ย 
PDF
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
ย 
PPTX
TexSender Pro 8.9.1 Crack Full Version Download
cracked shares
ย 
PPTX
Explanation about Structures in C language.pptx
Veeral Rathod
ย 
PPTX
Cutting Optimization Pro 5.18.2 Crack With Free Download
cracked shares
ย 
PDF
Why Are More Businesses Choosing Partners Over Freelancers for Salesforce.pdf
Cymetrix Software
ย 
PDF
How to Download and Install ADT (ABAP Development Tools) for Eclipse IDE | SA...
SAP Vista, an A L T Z E N Company
ย 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
ย 
PDF
On Software Engineers' Productivity - Beyond Misleading Metrics
Romรฉn Rodrรญguez-Gil
ย 
PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
ย 
PPTX
Chess King 25.0.0.2500 With Crack Full Free Download
cracked shares
ย 
PPTX
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
ย 
PPTX
Farrell__10e_ch04_PowerPoint.pptx Programming Logic and Design slides
bashnahara11
ย 
PDF
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
ย 
PDF
Protecting the Digital World Cyber Securit
dnthakkar16
ย 
PPT
Brief History of Python by Learning Python in three hours
adanechb21
ย 
PDF
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
ย 
PDF
Salesforce Implementation Services Provider.pdf
VALiNTRY360
ย 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
ย 
AI Software Engineering based on Multi-view Modeling and Engineering Patterns
Hironori Washizaki
ย 
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
ย 
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
ย 
TexSender Pro 8.9.1 Crack Full Version Download
cracked shares
ย 
Explanation about Structures in C language.pptx
Veeral Rathod
ย 
Cutting Optimization Pro 5.18.2 Crack With Free Download
cracked shares
ย 
Why Are More Businesses Choosing Partners Over Freelancers for Salesforce.pdf
Cymetrix Software
ย 
How to Download and Install ADT (ABAP Development Tools) for Eclipse IDE | SA...
SAP Vista, an A L T Z E N Company
ย 
Generating Union types w/ Static Analysis
K. Matthew Dupree
ย 
On Software Engineers' Productivity - Beyond Misleading Metrics
Romรฉn Rodrรญguez-Gil
ย 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
ย 
Chess King 25.0.0.2500 With Crack Full Free Download
cracked shares
ย 
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
ย 
Farrell__10e_ch04_PowerPoint.pptx Programming Logic and Design slides
bashnahara11
ย 
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
ย 
Protecting the Digital World Cyber Securit
dnthakkar16
ย 
Brief History of Python by Learning Python in three hours
adanechb21
ย 
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
ย 
Salesforce Implementation Services Provider.pdf
VALiNTRY360
ย 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
ย 
Ad

CampJS - Making gaming more fun and efficient

Editor's Notes

  • #3: Tribal Wars game drop down
  • #6: Build your village
  • #7: Recruit troops
  • #8: Recruit troops
  • #9: Attack neighbouring villages
  • #10: Acquire more villages
  • #11: World 61 (if he remember correctly)
  • #15: Pull data, sending out farms automatically, writing an attack planner
  • #22: Through rapid prototyping without thinking about the architecture or any design considerations, quickly I ran into this fatal error. There wasnโ€™t enough refactoring I could do to fix this, thus prompting a complete rewrite.
  • #23: Through rapid prototyping without thinking about the architecture or any design considerations, quickly I ran into this fatal error. There wasnโ€™t enough refactoring I could do to fix this, thus prompting a complete rewrite.