Totally queer reasons and techniques for developing games that are programmable and extensible at runtime with JavaScript and other visual programming languages.
"UnityJS" is an open source Unity3D component I developed and used for several projects, which integrates a web browser component and its JavaScript engine with Unity apps on MacOS, Windows, iOS, Android, and WebGL. It enables live coding and debugging Unity apps running on the devices at runtime, using standard JavaScript development tools and libraries, which is orders of magnitude faster and more fun that using the C# debugger and recompiling every time you make a change. Used it for JauntVR's panoramic video browser/player with programmable overlaid 3d objects and text for Google Cardboard on iOS and Android, Pantomime's scriptable ARKit simulation and interface programming on iOS, Reason Street's 3d financial data interactive visualization and performance environment on WebGL, and other projects.
"Micropolis" is the open source version of the original SimCity Classic game, which I have cleaned up and compiled the C++ code into WebAssembly with Emscripten, integrated with JavaScript with Embind, and defined a callback interface so the game can send messages back and forth with JavaScript. Now I'm working on implementing the user interface in WebGL, Canvas, HTML, CSS, SvelteKit, and adding plug-in APIs for custom zones and robots scripted in JavaScript, TypeScript, or even browser based visual programming languages like Snap! and Blockley.
"Yoot Tower" is Yoot Saito's high-rise tower building and elevator traffic simulation game, released by Maxis as "SimTower" in the US, whose code is currently in the process of being cleaned up and re-licensed under a non-commercial open source license, similar to tldraw's license. We will develop a desktop version that is extensible in JavaScript, using a web browser component similar to how UnityJS works, and also a browser based WASM version that supports the same JavaScript plug-in API, running within the web browser itself, so you can develop plug-in rooms, services, elevator control systems, simulated people, as well as integrating it with web services like OpenAI, etc.
The aim is for JavaScript plug-ins for Yoot Tower and Micropolis to work the same across all different platforms, seamlessly integrate with any and all web technologies and libraries, and even to make it possible to embed Yoot Towers into Micropolis cities!
If there's even more time (or you prefer me to focus on this instead of JavaScript) I can totally gay it up and discuss inclusivity in The Sims, storytelling, self expression, identity exploration, user created content, getting same sex relationships into the design document, the lesbian kiss at E3, "SimAntics" visual AI programming, Simprov Wedding Playset, Will Wright's "Simulator Effect", Gonzalo Frasca's "Ludology", Ian Bogost's "Procedural Rhetoric" and "Persuasive Games", Scott McCloud's "Understanding Comics" and "Masking", Jacques Servin's SimCopter "Himbo" easter egg, Doreen Nelson's "Design Based Learning", Seymour Papert's and Alan Kay's "Constructionism", Alexander Avila's "Did The Sims make you gay? - a video essay", etc.
I could also say some words about the life and legacy of one of my heros who recently passed away, Lynn Conway. Some recent posts about her on twitter:
https://x.com/xardox
Let's discuss what you think would be best for me to focus on!
Your name (and pronouns)
Don Hopkins. He/him in my mind, this/self in my code.
Location
I'm in Amsterdam, and would love to visit London for the event (and other EU cities for later events), and can pay my own way, and would probably stay the weekend at least, for fun.
Talk title
Queer Coding Games with JavaScript
Abstract
Totally queer reasons and techniques for developing games that are programmable and extensible at runtime with JavaScript and other visual programming languages.
"UnityJS" is an open source Unity3D component I developed and used for several projects, which integrates a web browser component and its JavaScript engine with Unity apps on MacOS, Windows, iOS, Android, and WebGL. It enables live coding and debugging Unity apps running on the devices at runtime, using standard JavaScript development tools and libraries, which is orders of magnitude faster and more fun that using the C# debugger and recompiling every time you make a change. Used it for JauntVR's panoramic video browser/player with programmable overlaid 3d objects and text for Google Cardboard on iOS and Android, Pantomime's scriptable ARKit simulation and interface programming on iOS, Reason Street's 3d financial data interactive visualization and performance environment on WebGL, and other projects.
"Micropolis" is the open source version of the original SimCity Classic game, which I have cleaned up and compiled the C++ code into WebAssembly with Emscripten, integrated with JavaScript with Embind, and defined a callback interface so the game can send messages back and forth with JavaScript. Now I'm working on implementing the user interface in WebGL, Canvas, HTML, CSS, SvelteKit, and adding plug-in APIs for custom zones and robots scripted in JavaScript, TypeScript, or even browser based visual programming languages like Snap! and Blockley.
"Yoot Tower" is Yoot Saito's high-rise tower building and elevator traffic simulation game, released by Maxis as "SimTower" in the US, whose code is currently in the process of being cleaned up and re-licensed under a non-commercial open source license, similar to tldraw's license. We will develop a desktop version that is extensible in JavaScript, using a web browser component similar to how UnityJS works, and also a browser based WASM version that supports the same JavaScript plug-in API, running within the web browser itself, so you can develop plug-in rooms, services, elevator control systems, simulated people, as well as integrating it with web services like OpenAI, etc.
The aim is for JavaScript plug-ins for Yoot Tower and Micropolis to work the same across all different platforms, seamlessly integrate with any and all web technologies and libraries, and even to make it possible to embed Yoot Towers into Micropolis cities!
Given enough time, I can ramble on and discuss how those games relate to the philosophy of Constructionist Education: https://donhopkins.medium.com/har-2009-lightning-talk-transcript-constructionist-educational-open-source-simcity-by-don-3a9e010bf305
And also review Chaim Gingold's great new book about "Building SimCity", which covers many of the above topics: https://mitpress.mit.edu/9780262547482/building-simcity/
If there's even more time (or you prefer me to focus on this instead of JavaScript) I can totally gay it up and discuss inclusivity in The Sims, storytelling, self expression, identity exploration, user created content, getting same sex relationships into the design document, the lesbian kiss at E3, "SimAntics" visual AI programming, Simprov Wedding Playset, Will Wright's "Simulator Effect", Gonzalo Frasca's "Ludology", Ian Bogost's "Procedural Rhetoric" and "Persuasive Games", Scott McCloud's "Understanding Comics" and "Masking", Jacques Servin's SimCopter "Himbo" easter egg, Doreen Nelson's "Design Based Learning", Seymour Papert's and Alan Kay's "Constructionism", Alexander Avila's "Did The Sims make you gay? - a video essay", etc.
Here's an abstract, timeline, and notes I can draw from to talk about: https://docs.google.com/document/d/13u-kNaWC2AAd-L0_5OoLc_-x0sxs6dFfeJr28DIxufU
I could also say some words about the life and legacy of one of my heros who recently passed away, Lynn Conway. Some recent posts about her on twitter: https://x.com/xardox
Let's discuss what you think would be best for me to focus on!
Your name (and pronouns)
Don Hopkins. He/him in my mind, this/self in my code.
Location
I'm in Amsterdam, and would love to visit London for the event (and other EU cities for later events), and can pay my own way, and would probably stay the weekend at least, for fun.
Contact Details
don@donhopkins.com
UnityJS (an older version, but here are some design docs that explain it): https://github.com/SimHacker/UnityJS/tree/master/doc
UnityJS discussion: https://news.ycombinator.com/item?id=22688326
MicropolisCore for WASM Repo: https://github.com/SimHacker/MicropolisCore
Yoot Tower Repo: https://github.com/YootTowerManagement/YootTower
Micropolis: Constructionist Educational Open Source SimCity: https://donhopkins.medium.com/har-2009-lightning-talk-transcript-constructionist-educational-open-source-simcity-by-don-3a9e010bf305
Did The Sims make you gay? - a video essay: https://www.youtube.com/watch?v=Xi-HWyh0Ybk
Code of Conduct