Domain: donhopkins.com
Stories and comments across the archive that link to donhopkins.com.
Comments · 180
-
AJAX is old NeWS, Laszlo is non-toxic AJAXAJAX is a new buzzword for old (but not bad) ideas.
Don't take this as anti-AJAX. That kind of architecture is great, but it's the notion that the new AJAX buzzword describes new ideas that annoys me.
Of course Microsoft has been supporting it since the 90's, but it goes back a lot further than that.
For a long time, I've been evangelizing and more importantly implementing interactive applications that run efficiently over thin wire (dial-up modems, ISDN, early internet before it was fast, etc), which are locally interactive and efficient because there's a programming language on each side of the connection that implements custom application specific protocols and provides immediate feedback without requiring network round trips.
Before he made Java, James Gosling wrote the NeWS Window System.
I did a lot of work with NeWS, as a user interface researcher, commercial product developer, and a gui toolkit engineer for Sun, implementing distributed applications as well as user interface widgets and gui construction tools.
I've programmed NeWS to implement many user interface widgets (pie menus, tabbed windows, terminal emulators, graphics editors), gui toolkits (Suns TNT Open Look Toolkit, Arthur van Hoff's HyperLook user interface construction tool), and applications (UniPress and Gnu Emacs text editor interfaces, Ben Shneiderman's HyperTIES hypermedia browser, PSIBER visual PostScript programming and debugging environment, PizzaTool for customizing and ordering pizza via FAX, a cellular automata lab, a port of Maxis's SimCity), and lots of other stuff.
Now I develop distributed applications with OpenLaszlo, which embodies all the great qualities of AJAX without the horrible compatibility problems and shitty graphics. Macromedia though OpenLaszlo was such a great idea that they made a proprietary knock-off called Flex, for which they charge $12,000 per CPU. The future of Laszlo is secure since it's free software with an open source license, but Flex is in Flux since Adobe is buying Macromedia.
I'm quite happy to have found OpenLaszlo, since it's got all the advantages of NeWS, it runs beautifully and consistently on all platforms, the people developing it really understand what they're doing, and most importantly it's open source. NeWS was a technological success, but a commercial failure, because Sun refused to release it like X11. But OpenLaszlo applications really do run everywhere consistently, support XML standards and rich dynamic graphics vastly superior to anything you can do in DTHML, and they're great fun to develop.
Here's a message I wrote on the news-makers mailing list (a mailing list about NeWS that I started and maintained during the Window System Wars of the 80's), discussing the difference between Adobe's approach to Display PostScript, X11's inherent deficiencies, and Sun's approach to NeWS.
To avoid confusion:
-
AJAX is just NeWS without PostScriptAJAX is not a new idea. Here's what we were doing with NeWS, 17 years ago... Substitute "JavaScript" for "PostScript", "web server" for "NeWS client", "web browser" for "NeWS server". Sound familiar?
The problem with "AJAX", compared to NeWS or OpenLaszlo, is that imaging model sucks, because it's limited to the lowest common denominator of HTML across all browsers. NeWS uses the PostScript imaging model to render interactive user interface components (buttons, sliders, pie menus, tabbed window frames, etc). OpenLaszlo uses Flash graphics to render interactive user interface components (all the widgets you expect, including a full widget set skinnable with Frash graphics, supporting animation, transparency, color tinting, etc).
As a imaging model, Flash is nicer than PostScript in some ways, not as nice in other ways, but vastly superior to HTML. It's also interesting to compare Flash with SVG, which is also great for implenting "AJAXian" user interfaces, but doesn't have nearly the installed base. The best thing about Flash is that it's exactly the same across all platforms, and it's got a great installed base.
-Don
Newsgroups: comp.windows.news
From: don@BRILLIG.UMD.EDU (Don Hopkins)
Local: Sat, Feb 6 1988 5:38 am
Subject: Comparing Display PostScript and X11/NeWS
[...]NeWS has extensions to the PostScript language that allow for programs (light weight processes), running in the display server, to receive input events on behalf of NeWS clients (other programs running on the same computer, or at some remote site). They may process input locally (on the same machine and in the same process where the events are happening), without consuming any communications bandwidth. This is a big advantage, if you want fast, responsive graphical feedback.
NeWS processes can communicate with each other by manipulating shared data structures, and by sending messages through the event queue. They can receive low level input events ("The left mouse button was released at location (X,Y) in window W at time T"), and give graphical feedback ("erase the old slider, redraw it at its new position, and fill the border with bright red"). They can translate input from the user into high level, application specific events, which are sent to the client ("set the volume of the CD player to 100%"). NeWS processes can run autonomously in the server, without a connection to a client, providing "desk accessories" such as a calculator, event journaling, menus, and control panels.
According to the fellow from Adobe who talked at the PostScript BOF at the X conference, Adobe's Display PostScript provides output capabilities, but has no facilities for receiving input directly from of the X event queue. As I understand his explanation, the X server must send X events over the IPC link (network, shared memory, modem, or whatever) to the client, which must then translate the events into PostScript commands, and send them back over the link to be executed by Display PostScript. Because there is no way for PostScript programs to read events off of the X event queue, the client must process input events behalf of the display server. Messages must go on a round trip, from the X server, to the client, and back to the Display PostScript extension in the server, to produce any graphical output on the screen.
[...]
The NeWS "Lite" user interface toolkit is written entirely in PostScript. Menus, buttons, windows, sliders, scroll bars, and even terminal emulators, are implemented as device independent PostScript programs, in NeWS's object oriented PostScript programming environment. Since the toolkit can run in the server, clients can share the same code, and a copy of the toolkit does not have to be linked into each client. It's easy to mod
-
Will Wright's Spore demo at GDCHere's a summary that I wrote up of Will Wright's Spore demo, which he gave at the Game Developers Conference:
The Future of Content
What I learned about content from the Sims. ...and why it's driven me to procedural methods. ...And what I now plan to do with them.
Will Wright
Game Developers Conference
3/11/2005
http://www.donhopkins.com/home/WillWrightSporeDemo .html"Advice: If you have a weird idea that's so outside of the box, don't forget it. You should go back and revisit your weird ideas later, because you can never know where they might lead to." -Will Wright
-Don
-
Will Wright's Spore demo at GDCHere's a summary that I wrote up of Will Wright's Spore demo, which he gave at the Game Developers Conference:
The Future of Content
What I learned about content from the Sims. ...and why it's driven me to procedural methods. ...And what I now plan to do with them.
Will Wright
Game Developers Conference
3/11/2005
http://www.donhopkins.com/home/WillWrightSporeDemo .html"Advice: If you have a weird idea that's so outside of the box, don't forget it. You should go back and revisit your weird ideas later, because you can never know where they might lead to." -Will Wright
-Don
-
Re:solution: FOSS games
Check out Spore, a game by none other than Will Wright based around the idea of user created content.
The exceedingly large fraction of the costs going to create art is an anomaly. In the future the content will a) be taken from huge libraries of real-world objects b) generated procedurally and c) created by users.
There are also whole genres of games that do not require extensive graphics assets. -
Will Wright's SporeIf you like space games, you might enjoy reading about Will Wright's Spore.
"Advice: If you have a weird idea that's so outside of the box, don't forget it. You should go back and revisit your weird ideas later, because you can never know where they might lead to." -Will Wright
-Don -
The Spore design doc was in Wired last yearNo screen shots, but the a diagram showing the design for Spore was published in Wired Magazine more than a year ago.
Wired asked Will for an illustration to print in the magazine, anything he wanted. So he made a diagram of Spore that Wired published, but he didn't tell them what it was. The design docs for Spore have been out in Wired Magazine for a year now. (It's in the Feb 2004 issue of Wired.)
-Don
-
Re:Dangerous GroundI woudn't call the levels "mini" games, in the conventional sense of games like in Grand Theft Auto that have very little effect on the overall gameplay.
The evolutionary ladder from bacteria to galactic god is not a bunch of "mini games", it's actually a goal-oriented TUTORIAL and SANDBOX that trains you to play the real game that you start once you achieve interstellar travel. The meta-game is a collection of science fiction story genras, a storytelling game, where the player can surf back down to the lower levels to achieve their higher level goals and act out the stories of the meta level game.
From my notes:
Meta Games
Meta games around different genras of science fiction.
Invasion (war of the worlds). Adult supervision (Day the earth stood still. Uplift (2001). First contact (Close Encounters). Abduction cross breeding (X-Files). Diplomacy (Star Trek).
Most of the narritive will come into the game through the space game.
Broad variety of different worlds to visit.
Cross-pollination of content created by different players.
Going to another player's planet.
You can abduct creatures, and go back to populate zoo planet.
T shaped game.
The base of the T is a goal oriented gaming.
The player first goes through a tutorial and sandbox to learn editing tools and game play at each level.
Player can eventually surf down to the lower levels.
Goal oriented game trains you to use all the editors and teaches you the simulation dynamics at every level, from bottom to top.
Once you get to the top you can surf vertically down into the other games, that you've learned to use on the way up.
At the top of the T is a collection of science fiction story genras, that take place on top of all of the lower levels.
Once you make your way all the way up from unicellular life to intergalactic civilization, the storytelling begins.
-Don
-
Re:Sounds great, but can Wright deliver?Absolutely not vapor ware. I believe he can deliver, but it might take a while to finish. Spore deserves all the time and resources required to get it right.
He had several slides about the demo scene in Europe, which he discussed to illustrate his point about algorithmic compression.
From my notes:
Algorithmic compression.
Games consist of a mix of code and data. Computers use code to compress data. The ratio of code to data has changed over time.
Games used to be mostly code and very little content, so compression was important.
CDROM is the medium that was the death knell for the algorithm. Myst was a very elaborate and beautiful slide show, with a vast amount of data. It looked like they had a great time building this world. Building the world is a fun game in itself.
At the other end of the spectrum from CDROMs: The Demo Scene. Algorithmic compression of graphics and music.
-Don
-
Notes from Will Wright's Spore demoI took notes at Will Wright's talk about Spore, cleaned them up and filled in some more details from talking with him about it and seeing earlier prototypes over the years it's been in development.
The Future of Content:
What I learned about content from the Sims. ...and why it's driven me to procedural methods. ...And what I now plan to do with them.
Will Wright
Game Developers Conference
3/11/2005Wired asked for an illustration to print in the magazine, anything he wanted. So he made a diagram of Spore that Wired published, but he didn't tell them what it was. The design docs for Spore have been out in Wired Magazine for a year now. (It's in the Feb 2004 issue of Wired.)
Here's a link to the web site where you can find out What Kind of Care Bear Are You?
-Don
-
Notes from Will Wright's Spore demoI took notes at Will Wright's talk about Spore, cleaned them up and filled in some more details from talking with him about it and seeing earlier prototypes over the years it's been in development.
The Future of Content:
What I learned about content from the Sims. ...and why it's driven me to procedural methods. ...And what I now plan to do with them.
Will Wright
Game Developers Conference
3/11/2005Wired asked for an illustration to print in the magazine, anything he wanted. So he made a diagram of Spore that Wired published, but he didn't tell them what it was. The design docs for Spore have been out in Wired Magazine for a year now. (It's in the Feb 2004 issue of Wired.)
Here's a link to the web site where you can find out What Kind of Care Bear Are You?
-Don
-
Adobe's docking tab window patent is invalid.Adobe's docking tabbed window patent is totally bogus, and it should be invalidated.
Here are some pictures of dockable tab windows in a visual PostScript debugger for NeWS called "PSIBER (for PostScript Interactive Bug Eradication Routines)", that I wrote at the University of Maryland Human Computer Interaction Lab in 1989. And also Tab Windows with Pie Menus for The NeWS Toolkit that I wrote at Sun in 1990.
What's ironic is that Adobe wrote PostScript, so I corresponded with Adobe employees about PSIBER when I was writing it, even sending them early copies of the source code. Understandably they were very interested in a visual PostScript debugger. So Adobe certainly knew about prior art of docking tabbed windows since 1989.
-Don
-
Player Created Content for The SimsI've heard cries of "it will never work" before. But player created content is the driving force behind the top selling game of all time, The Sims.
I believe that one of the major reasons that The Sims Online has failed (in stark contrast to EA's expectations, and the success of the offline version), is that The Sims Online doesn't support player created content. It's been promised, but EA never executed on Will Wright's vision.
The Sims was originally designed to support player created content. Thanks to the enormous quantity of player created content (on the order of millions of unique skins and objects, many of them excellent quality), The Sims is anything but bland and empty.
I know people who actually make a full-time living and support their real families, by creating original, high quality Sims objects. There's a thriving cottage industry of publishing Sims objects and skins on many web sites, and selling subscriptions to Sims players who love to pay for downloading all kinds of original content!
But "bland and empty" does accurately describe The Sims Online: once you've played for a while, you get tired of the sparse selection of character skins and objects to buy. But that wouldn't be the case, if The Sims Online supported player created content like The Sims offline, as EA has promised but not delivered.
Player created content makes the economy richer, interesting, dynamic and personal, because it enables creative players to bring actual VALUE into the economy, and truly invest in building the virtual world.
Contrast that with The Sims Online economy, which has been flooded by Simoleans generated with MazeBots by people selling them on eBay. 100 million more Simoleans dumped into the Sims Online economy isn't going to improve the game play or the richness of the environment one bit -- in fact it just makes it worse.
But enabling players to add new skins and objects to The Sims Online would substantially increase its quality, while earning the creative players respect and Simoleans, and entertaining everyone.
If the enormous amounts of energy that players were putting into implementing MazeBots and generating Simoleans to sell on eBay, were put into implementing content creation tools and generating skins and objects, then The Sims Online might someday be even more successful than The Sims Offline.
It doesn't require "extensive tools and abilities" for players to create content. And it's not necessary for the tools to be built into the game itself. The content creation tools should be factored out into an SDK and released, so third party developers can extend them and integrate them into other tool chains and web services.
The Sims Transmogrifier is an external tool for The Sims, which enables players to create their own objects, by cloning existing objects and repainting the 2D graphics with programs like Photoshop. It doesn't require 3D Studio Max or any advanced 3D skills. Lots of kids and adults use it every day to make their own objects.
But it's certainly possible to make useful content creation tools that are easier to use than Transmogrifier. After all, not everyone knows their way around Photoshop, but many people want to make objects with pictures they download from the net or take with digital cameras.
I've developed an easy to use tool called RugOMatic, which enables players to create rugs for The Sims by simply dragging
-
Player Created Content for The SimsI've heard cries of "it will never work" before. But player created content is the driving force behind the top selling game of all time, The Sims.
I believe that one of the major reasons that The Sims Online has failed (in stark contrast to EA's expectations, and the success of the offline version), is that The Sims Online doesn't support player created content. It's been promised, but EA never executed on Will Wright's vision.
The Sims was originally designed to support player created content. Thanks to the enormous quantity of player created content (on the order of millions of unique skins and objects, many of them excellent quality), The Sims is anything but bland and empty.
I know people who actually make a full-time living and support their real families, by creating original, high quality Sims objects. There's a thriving cottage industry of publishing Sims objects and skins on many web sites, and selling subscriptions to Sims players who love to pay for downloading all kinds of original content!
But "bland and empty" does accurately describe The Sims Online: once you've played for a while, you get tired of the sparse selection of character skins and objects to buy. But that wouldn't be the case, if The Sims Online supported player created content like The Sims offline, as EA has promised but not delivered.
Player created content makes the economy richer, interesting, dynamic and personal, because it enables creative players to bring actual VALUE into the economy, and truly invest in building the virtual world.
Contrast that with The Sims Online economy, which has been flooded by Simoleans generated with MazeBots by people selling them on eBay. 100 million more Simoleans dumped into the Sims Online economy isn't going to improve the game play or the richness of the environment one bit -- in fact it just makes it worse.
But enabling players to add new skins and objects to The Sims Online would substantially increase its quality, while earning the creative players respect and Simoleans, and entertaining everyone.
If the enormous amounts of energy that players were putting into implementing MazeBots and generating Simoleans to sell on eBay, were put into implementing content creation tools and generating skins and objects, then The Sims Online might someday be even more successful than The Sims Offline.
It doesn't require "extensive tools and abilities" for players to create content. And it's not necessary for the tools to be built into the game itself. The content creation tools should be factored out into an SDK and released, so third party developers can extend them and integrate them into other tool chains and web services.
The Sims Transmogrifier is an external tool for The Sims, which enables players to create their own objects, by cloning existing objects and repainting the 2D graphics with programs like Photoshop. It doesn't require 3D Studio Max or any advanced 3D skills. Lots of kids and adults use it every day to make their own objects.
But it's certainly possible to make useful content creation tools that are easier to use than Transmogrifier. After all, not everyone knows their way around Photoshop, but many people want to make objects with pictures they download from the net or take with digital cameras.
I've developed an easy to use tool called RugOMatic, which enables players to create rugs for The Sims by simply dragging
-
Third Party Content Authoring Tools for The Sims
This is a propsal I wrote to Maxis after The Sims was released in March 2000, outlining some of my ideas for third party content authoring tools that I could develop. This led to The Sims Transmogrifier, but it touches on several other interesting tools and projects that Maxis never got around to.
A Proposal to Develop Third Party Content Authoring Tools for The Sims
by Don Hopkins, March 2000Problem Definition:
There is a strong demand many from third parties who want to develop their own custom content for The Sims, including characters and objects.
Proposed Solution:
Update, clean up and document the content creation tools, so third parties can make their own characters and objects for The Sims.
Port the tools to the latest version of 3D Studio Max.
Make the tools self contained so they can be run stand-alone, by removing all dependencies on the Maxis environment and expensive software packages: Character Studio (Biped, Physique), Access, SourceSafe, MKS Toolkit (Korn Shell).
Document the content creation tools with an overview, examples, tutorials, and a reference manual. Write down the folklore that has been passed by word of mouth. Read over the code and document how it actually behaves.
Provide consulting, training and content creation services to third parties who want custom content authored for The Sims, but don't want or know how to do it themselves.
Develop a Sims Content Authoring SDK, so it's possible for third parties to create specialized content creation tools, like FaceLift.
Goals:
Third Party Character Creation and Customization:
Characters include virtual people who the user can play with, as well as autonomous non-player characters with programmed behaviors. Characters consist of bodies, heads and hands of 3D polygonal meshes with texture mapped bitmap skins.
Characters are created at Maxis by highly skilled artists using expensive tools like 3D Studio Max, Character Studio, the CMX exporter, and Photoshop.
Simplify the content creation tools and make them run stand-alone, so third party artists and designers can create their own characters and objects.
Maxis' expert 2D character artists currently use Photoshop to paint body textures in layers, then flatten and dither them into 256 color bitmap files.
"Flesh out" the process of applying layered clothing to naked bodies and dithering to 8 bits, so anyone can dress up their characters in all kinds of clothes.
Maxis' expert 3D modeling artists create textured low-poly rigid meshes (like heads, hands and accessories) attached to individual bones, and the CMX exporter creates rigid suits.
Make the CMX exporter easy for third parties to use, so many proficient 3D artists will be able to make their own textured heads, accessories, selected character pointers, and carried objects.
Maxis' expert 3D character modeling artists attach textured low-poly deformable meshes (like bodies) to skeletons using Character Studio Physique and Biped, and the CMX exporter reads out the weighted vertex/bone bindings and creates deformable suits for the game.
Character Studio is an expensive plug-in that enables a skilled artist to bind deformable meshes to skeletons, but there are other ways to do that with 3D Studio Max and other 3D tools.
Enhance the CMX exporter to support Max's new way of attaching deformable meshes to skeletons, so third party 3D artists can create bodies.
Maxis designers and programmers use the Edith tool to configure the behavior of characters and objects.
Clean up and document Edith, so third party designers and programmers can program and modify their own characters and objects.
Third Party Object Creation and Customization:
Objects consist of pre-rendered z-buffered sprites, packaged together with character
-
Sims Proposals
Here are some proposals and documents I've written, describing the work I've done and projects I've proposed with The Sims character animation system, plug-in objects and tools. After four years, a great deal of useful information has been reverse-engineered by independent third-party developers and open source projects like The Sims Technical Library. I hope these ideas will inspire more tool developers to contribute their programming skills to the Sims community.
Will Wright's original vision was enabling creative storytelling, by allowing players to add their own characters and objects to the game, and encouraging developers to program new objects and create tools like Transmogrifier and RugOMatic. Before The Sims was even released, Luc Barthelet sewed the seeds of its success by providing fans with content and tools like SimShow, so they could start making web sites and character skins. By the time it was released, you could already download a wide range of skins from many different web sites!
Four years later, Sims Object hackers have taken it much further than anyone ever imagined. A third-party tool called "iffpencil 2" has taken the place of Edith (Maxis's visual Sims object programming environment) in the Sims object hacking community.
One mind-blowing example is Slice City, which is an amazing game within a game: SimCity within The Sims! Your Sims can walk around and interact with a live, growing city like a Lilliputian scene from Gulliver's Travels. I'm not making this up: this actually runs INSIDE The Sims, and is ingeniously implemented by plug-in objects!
You start with a power plant, which gradually grows a whole city populated by swarms of insect-sized people. As the city grows, it spawns new objects including buildings (reprogrammed houseplants that the gardener still waters), crowds of people (reprogrammed cockroaches that you can still stomp to death), parks, marinas and monuments. You can go into build mode and rearrange them however you like, place roads (that get extremely busy at rush hour), and interact with the buildings through pie menus in play mode. There's even a tornado that comes through and knocks down your buildings. And you can download add-ons and pre-made cities!
Nothing like SimSlice was in the original design plan, but Will Wright credits all the creative players as the primary reason The Sims has become the #1 selling game of all time.
I believe the starkly contrasting failure of The Sims Online has a lot to do with the fact that it doesn't support player created content like the original Sims. One of the fundamental reasons that original Sims players have been disappointed with The Sims Online, is that Maxis never executed on the original plan to let online players upload and exchange their own skins and objects.
In order to help more fully realize Will's original plan, I wrote these proposals and documents to support the community of Sims artists, tool developers and object programmers like Bil Simser, Judson Hudson, Michael Watson, Rick Halle, Tom van Dijk
-
Sims Proposals
Here are some proposals and documents I've written, describing the work I've done and projects I've proposed with The Sims character animation system, plug-in objects and tools. After four years, a great deal of useful information has been reverse-engineered by independent third-party developers and open source projects like The Sims Technical Library. I hope these ideas will inspire more tool developers to contribute their programming skills to the Sims community.
Will Wright's original vision was enabling creative storytelling, by allowing players to add their own characters and objects to the game, and encouraging developers to program new objects and create tools like Transmogrifier and RugOMatic. Before The Sims was even released, Luc Barthelet sewed the seeds of its success by providing fans with content and tools like SimShow, so they could start making web sites and character skins. By the time it was released, you could already download a wide range of skins from many different web sites!
Four years later, Sims Object hackers have taken it much further than anyone ever imagined. A third-party tool called "iffpencil 2" has taken the place of Edith (Maxis's visual Sims object programming environment) in the Sims object hacking community.
One mind-blowing example is Slice City, which is an amazing game within a game: SimCity within The Sims! Your Sims can walk around and interact with a live, growing city like a Lilliputian scene from Gulliver's Travels. I'm not making this up: this actually runs INSIDE The Sims, and is ingeniously implemented by plug-in objects!
You start with a power plant, which gradually grows a whole city populated by swarms of insect-sized people. As the city grows, it spawns new objects including buildings (reprogrammed houseplants that the gardener still waters), crowds of people (reprogrammed cockroaches that you can still stomp to death), parks, marinas and monuments. You can go into build mode and rearrange them however you like, place roads (that get extremely busy at rush hour), and interact with the buildings through pie menus in play mode. There's even a tornado that comes through and knocks down your buildings. And you can download add-ons and pre-made cities!
Nothing like SimSlice was in the original design plan, but Will Wright credits all the creative players as the primary reason The Sims has become the #1 selling game of all time.
I believe the starkly contrasting failure of The Sims Online has a lot to do with the fact that it doesn't support player created content like the original Sims. One of the fundamental reasons that original Sims players have been disappointed with The Sims Online, is that Maxis never executed on the original plan to let online players upload and exchange their own skins and objects.
In order to help more fully realize Will's original plan, I wrote these proposals and documents to support the community of Sims artists, tool developers and object programmers like Bil Simser, Judson Hudson, Michael Watson, Rick Halle, Tom van Dijk
-
Price Supports and Lawsuit Protection for Games
Should the Government Treat Video Games like Alchohol and Tobacco?
[...]It's not fair that the Tobacco Industry gets all the taxpayers' cash handouts, while the Video Game Industry, which also makes dangerous products, doesn't get diddly squat.
I think the root of the problem is that violent video games don't kill as many people each year as tobacco.
So I call on all video game developers to develop much more lethal, violent, addictive video games than ever before, because the game industry has a lot of catching up to do with the tobacco industry.
Only when Violent Video Games succeed in killing more than four million people per year worldwide, will the U.S. Government recognize that they deserve the same longstanding protection and support as Big Tobacco.
-Don
-
Mods should be Modular, not MonolithicI agree: One problem with "mods" in the Quake sense, is the need to carefully balance them, which is a difficult, tedious, global task that requires a lot of skill and patience. (Sounds like fun, huh?)
Quake Mods aren't modular, they're monolithic. The level of granularity is so coarse, that designers need to perform a huge amount of tedious work, in order to make a good one. And you can only experience on at a time, so if you have 100 good mods, they don't synergistically add to each other's value.
Sims objects and characters are modular mods, so they plug together into a simulated environment and interact with each other. You can take objects and characters created by many different designers, and compose them together with stuff you created yourself, into your own higher level, monolithic "mod" (a family living in a house).
Sims object and character creators don't have to worry about achieving "balance" -- that's the fun part of the game that the players do for themselves, in Build and Buy mode.
Achieving balance is the hard part of making successful Quake mods. But achieving balance is the fun part of playing The Sims. This approach lifts the burden of achieving balance from the shoulders of mod designers, and repackages it as entertainment for players.
Games that support truly modular mods like Sims objects and characters, enable mod designers to create interesting, expressive, stand-alone objects that players love to plug together (and value enough that they'll pay for downloading), at a more prolific, finer level of granularity than monolithic game mods like Quake.
Modular mods work together at many different levels, and they're open-ended, so there's never any end to what you can do with them.
The Palm House, Kew Gardens is a great example how many different artists, designers, historians and botanists have colaborated together at different levels, to create an accurate representation of the Royal Botanical Garden, Kew.
With the permission of the Trustees of the Royal Botanic Gardens, Kew, this theme celebrates the wonders of not only the Palm House, but the Temperate House, Dome and Formal Gardens of Kew in this prestigious time of it gaining World Heritage Status. You can read more about this important event here.
In order to accurately recreate this historical landscape and architecture in The Sims, the designers incorporated objects from Sims object artists including Persimmon Grove, Kiri's Simthing for Everybody, and cloned and modified other user created objects from the Sims Tattoo Parlor.This exemplary historical recreation is not just the end-product of many people's colaboration, but actually a contributing source in a huge distributed feedback loop:
You can download the Royal Botanic Gardens, plug the lot into your game, move your own family in, furnish it however you like, rearrange the landscape and architecture, deconstruct and reassemble it again with your own collection of objects, direct the drama as it unfolds, take pictures with the built-in camera, write stories in your scrapbook, and publish your family and their story on The Sims Exchange, to share with other players, to download and play with all over again.
-Don
-
More stuff to design than "levels"Level design can be so fun, that some games like The Sims actually have level designers built-in, as an integral part of the game.
The Sims "level designer" (i.e. the architectural tools for editing your house, buying and placing objects) are built into the game, which makes it possible for 8-year-old kids to easily "design levels".
But there's a lot more to customizing and creating you own game than "level design". The Sims also lets you design your own characters and objects, plug them together to tell stories, and even publish the stories online.
The Sims' storytelling ability hinges on the player's ability to add their own characters (skins) and scenery (objects) into the set, to illustrate whatever stories they want to tell.
Thanks to player created content, The Sims becomes more like the open-ended Perky Pat layouts in Philip K Dick's book, The Three Stigmata of Palmer Eldritch.
Tools like Transmogrifier and RugOMatic not only make it possible for characters to customize the game to tell their own stories, but also share their creations with other players, and download objects from the web to play in their own games.
High quality subscription web sites like SimFreaks actually pay talented artists to create beautiful sets of themed objects, like the Christmas Gingerbread House set.
Some experienced artists are generous enough to freely teach other Sims players how to create their own objects, by publishing step-by-step tutorials in the principles of object making for the complete novice, at sites like The Bunny Wuffles School of Sims Transmogrification.
The celebrated designers at the Cultural Heritage Foundation have made names for themselves by using Transmogrifier and other tools to create all the necessary scenery to build amazing historical recreations, like The Palm House, Kew Gardens, London England, the Isambard Kingdom Brunel Theme, and the Turkish Baths.
Maxis has created a wide range of objects for The Sims, which are included with the original game, the seven expansion packs, and numerous free downloads. But the player created object outnumber the Maxis created objects by an order of magnitude.
The Sims also opens up opportunities for programmers as well as artists: third party software developers like SimPrograms and SimsTools have created a market for tools that enable players to manage their Sims objects, and artists to make even more of them.
I'm developing some easy-to-use tools that automate the Transmogrification process, and open up Sims object creation to wide range of people. RugOMatic enables anyone, even without artistic talent or technical skills, to quickly create their own rugs for The Sim by dragging and dropping pictures and text.
-
More stuff to design than "levels"Level design can be so fun, that some games like The Sims actually have level designers built-in, as an integral part of the game.
The Sims "level designer" (i.e. the architectural tools for editing your house, buying and placing objects) are built into the game, which makes it possible for 8-year-old kids to easily "design levels".
But there's a lot more to customizing and creating you own game than "level design". The Sims also lets you design your own characters and objects, plug them together to tell stories, and even publish the stories online.
The Sims' storytelling ability hinges on the player's ability to add their own characters (skins) and scenery (objects) into the set, to illustrate whatever stories they want to tell.
Thanks to player created content, The Sims becomes more like the open-ended Perky Pat layouts in Philip K Dick's book, The Three Stigmata of Palmer Eldritch.
Tools like Transmogrifier and RugOMatic not only make it possible for characters to customize the game to tell their own stories, but also share their creations with other players, and download objects from the web to play in their own games.
High quality subscription web sites like SimFreaks actually pay talented artists to create beautiful sets of themed objects, like the Christmas Gingerbread House set.
Some experienced artists are generous enough to freely teach other Sims players how to create their own objects, by publishing step-by-step tutorials in the principles of object making for the complete novice, at sites like The Bunny Wuffles School of Sims Transmogrification.
The celebrated designers at the Cultural Heritage Foundation have made names for themselves by using Transmogrifier and other tools to create all the necessary scenery to build amazing historical recreations, like The Palm House, Kew Gardens, London England, the Isambard Kingdom Brunel Theme, and the Turkish Baths.
Maxis has created a wide range of objects for The Sims, which are included with the original game, the seven expansion packs, and numerous free downloads. But the player created object outnumber the Maxis created objects by an order of magnitude.
The Sims also opens up opportunities for programmers as well as artists: third party software developers like SimPrograms and SimsTools have created a market for tools that enable players to manage their Sims objects, and artists to make even more of them.
I'm developing some easy-to-use tools that automate the Transmogrification process, and open up Sims object creation to wide range of people. RugOMatic enables anyone, even without artistic talent or technical skills, to quickly create their own rugs for The Sim by dragging and dropping pictures and text.
-
Things That Happen When You Say X-WindowsI was digging through some old papers, and ran across a 15 year old "XNextEvent" newsletter, "The Official Newsletter of XUG, the X User's Group", Volume 1 Number 2, from June 1988. Here's an article that illustrates how far the usage of the term "X Windows" has evolved over the past 15 years. (Too bad The Window System Improperly Known as X Windows itself hasn't evolved.)
Someone on slashdot asks, " Why is it still called X-Windows?".
The following definitive guide to the consequences of saying "X Windows" is from the June 1988 "XNextEvent" newsletter, "The Official Newsletter of XUG, the X User's Group", Volume 1 Number 2:Predictably, the first reply says: "It isn't. It's called 'The X Window System.' Or simply 'X'. 'X Windows' is a misnomer."
He didn't ask why it is "X-Windows". He asked why it's called "X-Windows". You're wrong that it isn't called "X-Windows". It is! It's just that it isn't "X-Windows". Being something is independent of being called something.
The answer to the question 'Why is it still called X-Windows?' is: It's still called X-Windows in order to annoy the X-Windows Fanatics, who take it upon themselves to correct you every time you call it X-Windows. That's why it's called X-Windows.
Things That Happen When You Say 'X Windows'
THE OFFICAL NAMES
The official names of the software described herein are:
X
X Window System
X Version 11
X Window System, Version 11
X11Note that the phrases X.11, X-11, X Windows or any permutation thereof, are explicitly excluded from this list and should not be used to describe the X Window System (window system should be thought of as one word).
The above should be enough to scare anyone into using the proper terminology, but sadly enough, it's not. Recently, certain people, lacking sufficient motivation to change their speech patterns, have fallen victim to various 'accidents', or 'misfortune'. I've compiled a short list of happenings, some of which I have witnessed, others which remain heresay. I'm not claiming any direct connection between their speech habits and the reported incidents, but you be the judge... And woe betide any who set the cursed phrase into print!
You are forced to explain toolkit programming to X neophytes.
Bob Schiefler says, "You should know better than that!"
The Power Supply (and unknown boards) on your workstation mysteriously give up the ghost.
Ditto for the controller board for the disk on your new Sun.
Your hair falls out.
xmh refuses to come up in a useful size, no matter what you fiddle.
You inexplicitly lose both of your complete Ultrix Doc sets.
R2 won't build.
Bob Schiefler says "Type 'man X'".
Your nifty new X screen saver just won't go away.
The window you're working in loses input focus. Permanently
-Don
-
Spirit Flips the First Bird on MarsWalk all over these free Martian Rugs for The Sims:
Spirit Flips the First Bird on Mars
Downloadable Sims Object:
Price: 100 Simoleans
NASA's Spirit Rover tests its defensive mechanisms against aggressive Martian Robots Gone Wild, by Flipping the first Bird on Mars [image censored by NASA]. NASA has assured the public that at this time, no Martian Robots Gone Wild have been detected by Spirit, and this is simply a standard diagnostic procedure.http://marsrovers.jpl.nasa.gov/gallery/all/2/p/00
4 /2P126721799EFF0200P2215R2M1.JPGDownload: http://www.donhopkins.com/blog/SimsObjects/2004/0
1 /09/mars_3x3_544938.iff-Don
-
Spirit Flips the First Bird on MarsWalk all over these free Martian Rugs for The Sims:
Spirit Flips the First Bird on Mars
Downloadable Sims Object:
Price: 100 Simoleans
NASA's Spirit Rover tests its defensive mechanisms against aggressive Martian Robots Gone Wild, by Flipping the first Bird on Mars [image censored by NASA]. NASA has assured the public that at this time, no Martian Robots Gone Wild have been detected by Spirit, and this is simply a standard diagnostic procedure.http://marsrovers.jpl.nasa.gov/gallery/all/2/p/00
4 /2P126721799EFF0200P2215R2M1.JPGDownload: http://www.donhopkins.com/blog/SimsObjects/2004/0
1 /09/mars_3x3_544938.iff-Don
-
PieMenus started as Postscript!
Don Hopkins wonderful Pie Menus idea got it's start as an add-on for Sun's aborted NeWS window manager. One of the NeW things about NeWS was that you wrote UI parts in Postscript! P.S. That's not Don in the movie, although he is the one doing the voice-over during the demo.
-
Postscript, Java, NeWS ConnectionsPostscript is surprisingly closely connected to Java. Back in the 80s at Sun, James Gosling (known for his Emacs version) and David Rosenthal wrote the Network Extensible Windowing System, NeWS, in Postscript. Don Hopkins describes it as "It's a multithreaded PostScript interpreter with extensions to draw on the screen, handle input events, with an object oriented programming facility." It's a cool, elegant window system, though a bit resource-hungry for its day, preferring to be on machines with at least 6-8MB of RAM. Sun spent a while pushing it instead of X Windows, and John Gilmore's Grasshopper Group (and a few other people like Wedge) ported it to things like Macs and Sun3/60s. Some of the cool things about NeWS were
- You could make intelligent decisions about what services ran in the client vs. the server, unlike X.
- You could download programs to the server, unlike X. This meant that if your application was very mouse-interactive, it didn't need to put up with the communications lag of getting back to the client, but could happen all on your screen, so mouse tracking tended to be rocking fast.
- The drawing model was Postscript, so what you saw REALLY WAS what you'd get when you printed it, not some bad font approximation. This meant that fonts scaled CORRECTLY, and printing just worked, and you'd get pleasant surprises like the PSterm terminal emulator, which iconified itself by shrinking down to a little window with 1-pixel characters, live, not just a GIF, so you could see that your application was or wasn't doing things even though you obviously couldn't read anything except banner(1) output.
- Because the programs were Postscript, not C, they were hard to debug, and an utter nightmare to do security for, because they tended to let programs leave bits of themselves installed in places they shouldn't be because there wasn't much in the way of memory protection. While this may not be any surprise to Windows programmers, and the only reason it might surprise Palm programmers is that nobody's deliberately malicious on Palms, it was pretty annoying to people used to Unix and X, which *were* cleaner.
- The security and debugging issues were a major design influence on one of Gosling's later projects, a language called OAK, which you might know of as Java. The "do the work where you want it, whether that's client or server" capability was another important thing that Gosling kept.
I did some Postscript programming back in the day, enough to print cool things on the printer and replace the NeWS splash screen with "Don't Panic" in nice friendly letters, and as other people have said, it's pretty much like Forth, a Reverse Polish sort of thing that lets you define functions that draw stuff. While Forth's inventors may have had an overblown estimate of his creation's validity (he basically reinvented the subroutine crudely and differently) it was a good language for very small environments, like toasters and embedded systems. It wasn't real clean, but it was very memory-efficient, and this made it tend to be pretty fast.
-
Where are they now?Google to the rescue...
Simson Garfinkel eventually became a hermit and withdrew from public life after too many people mistook him for Art Garfunkel. He now lives in a cave in southern California.
Daniel Weise went on to work at Microsoft. He distinguished himself as the first non-Samoan to ever pick up Bob Barker after winning the Showcase Showdown on "The Price Is Right."
Steve Straussman (no website, sorry -- anyone?) left the Unix-Hater's list after it was revealed that he had fallen in love with a woman who loved Unix. He has come to terms with the past, and now teaches "How to Shell Script in Linux" classes at his local community college.
John Klossner went on to a successful career making cartoons for Lucas' Skywalker Sound company newsletter, until fired for printing one that suggested an unnatural intimacy between Luke Skywalker and Chewbacca.
Donald Norman won the coveted "Golden C< Prompt" award and retired from public life.
Dennis Ritchie became something of a celebrity on the web for his many and varied contributions of photos to Engrish.com.
Scott Burson became a monk and moved to Iceland.
Don Hopkins ran for office in Lousiana and lost. He is now a semi-successful insurance salesman, and plays harmonica regularly.
That was all I could find out about -- anyone got any more?
-
Re:ForthI've landed some interesting jobs programming Forth (like a summer internship at Sun in 1987), and used it for many projects (although not recently). Today I use Python instead of Forth, for many of the same reasons, but without most of the problems.
One of the most widespread contemporary uses of Forth is the Open Firmware boot ROMs used in Suns, Macs and even Linux. It's even defined by IEEE standard 1275-1994.
It was based on Langston and Perry's Forth83, and developed by Mitch Bradley at Sun, who is a major Forth guru and hardware guy. When you hit L1-A on a Sun, it dumps you into the Forth boot monitor, which let you do all kinds of things to the hardware and nvram configuration.
The point to having a cross platform bytecode dialect of Forth in firmware, is so hardware devices can have drivers, diagnostics and configuration interfaces in ROM that will execute on any system, no matter what the processor. That was implemented long before Java was ever invented.
-Don
-
Until you're read the book: http://www.ZipIt.comYou have no real clue on Wolfram because you obviously haven't read the book.
YOU ARE NOT QUALIFIED TO COMMENT if all you've read are the reviews. So please shut up until you read the book.
For only $45 from Amazon, A New Kind of Science is physically one of the best deals I've ever seen in a book. Its size is enormous (well over 1200 pages), and the quality of the paper, binding and printing process is extremely excellent, because the high resolution illustrations required it.
"Many of the pictures in this book have a rather different character from things that are normally printed. For unlike traditional diagrams consisting of separate visible elements -- or photographs involving smooth gradiations of color -- they often for example contain hundreds of cells per inch, each in effect independently black of white. And to capure this properly required careful sheet-fed printing on paper smooth enough to avoid significant spreading of ink."
... "The book was printed on 50-pound Finch VHF paper on a sheet-fed press. It was imaged directly to plates at 2400 dpi, with halftones rendered using a 175-line screen with round dots angled at 45 degrees. The binding was Smythe sewn."Even if you never read this book and only use it as a paper weight or prop to pick up girls, it's still the highest quality paper weight or chick magnet you'll ever find for the money. If Springer-Verlag had published A New Kind of Science, it would probably cost at least $250, be printed on cheap K-Mart toilet paper, and they wouldn't have even considered putting a fresh ribbon in the typewriter.
If you do bother reading the book before trying to write a review or refute its contents by personally attacking the author, it will certainly change your view of the universe.
-Don
PS: Here's a dynamic cellular automata snowflake generator that I wrote a while ago, inspired by Margolis and Toffoli's "Cellular Automata Machines: A New Environment for Modeling" [MIT Press, 1987]:
AethOTron: http://www.DonHopkins.com/AethOTron -
Reality check from a game developerI worked full time at Maxis on The Sims for three years, and all that time I kept the idea of porting The Sims to other platforms in mind. So I wrote code as portably as I had time to, and thought a lot about what would need to be done.
I evangelised to my co-workers and managers at Maxis about how I thought Loki would be the ideal company to port The Sims to Linux. Since there really isn't much demand for a Linux port, I proposed doing a Mac port in a way that would facilitate them both. Before The Sims was ever released, I wrote and sent a proposal around Maxis, outlining how to port The Sims to the Mac and Linux, using SDL and Open GL.
I met Scott Draeker at the Game Developers conference on March 7 2000, about a month after The Sims shipped on Feb 4. I suggested that Loki port The Sims to Linux, because I was optimistic that it was going to be a popular game. He didn't seem to think so, and brushed me off, with a "go away kid, you're bothering me" attitude.
But I gave Scott Draeker the benefit of the doubt, that he was just tired after a long day in the trade show booth, and not really as curt and indifferent to the idea as he seemed.
Once The Sims shipped, I left my full time job at Maxis to work on some of my own projects, but I kept working on The Sims for Maxis as a contractor. I worked on content creation tools, developed Transmogrifier and other stuff. I still have legitimate access to The Sims source code, and I keep Will Wright up to date on what I'm doing.
As a proof of concept, I started porting The Sims to Linux on my own time. I hoped to overcome the skepticism of some people at Maxis, as well as Scott Draeker at Loki, by demonstrating that it was indeed possible, and experimenting to find the best approach empirically.
My goal was to find the best approach to getting The Sims to run on Linux. Not just to use one particular technology or another. The end result is what matters most, not the way it's implemented.
Thanks to the encouragement of John Gilmore, I certainly did consider using Wine, but at the time it was nowhere near sufficient. (But since then, Transgaming has made astounding progress with Wine, and it's now obviously quite sufficient, to my delight.)
So I used SDL to do a native port of The Sims to Linux, and got most of the game running quite well, except for drawing the people and roofs (which would require hacking a system memory back end to Mesa), and sound (which would require using OpenAL, with which I hoped Loki would have been able to help me).
I was actually quite surprised at how quickly I was able to get a native port of The Sims running on Linux. My previous experience porting SimCity to Unix took a lot more time. But the tools are much better and computers are way faster now. And of course I was more familiar with the code base.
I offered the results of my work to Loki on reasonable terms. They didn't seem interested. I talked to some people at Maxis about it, and they said that Loki had been discussing it with Maxis, but they hadn't heard back from them in a long time.
I finally got some brusque uninformative email from Scott Draeker, and we talked briefly on the phone, but he said that he was really busy, he had a lot of paperwork in progress that had to be finish, and he'd get back to me some time. So I stopped working on the port, and waited to hear back from him...
I considered approaching other Linux game companies about porting The Sims to Linux, but decided to wait, because I still believed Loki was the best company to do it, and I did not want to undercut their ongoing negotiations with Maxis. Just the opposite -- I encouraged Maxis to quickly reach a fair deal with Loki, because I believed we could work together to get it to market fast. But Maxis wasn't the only company dragging their feet.
Months later, I finally read on the net that Loki had decided not to port The Sims to Linux, because "Maxis wanted too much money". By that time, The Sims had been topping the charts for months, so of course Maxis was asking a lot for it.
What I didn't know at the time, was that Loki was soon to declare Chapter 11. So it was actually a combination of Maxis wanting a lot for it, and Loki not having any money. But of course Draeker didn't mention that fact at the time.
But fortunately, my time and effort porting The Sims to Linux was not wasted, because Maxis needed The Sims to run on Linux, as the multi-player game server for The Sims Online.
So I used the original port at a guide, and more cleanly ported and optimized the newer Sims Online code to Linux again, making a headless build without all the graphics (removing SDL and DirectX). But the Linux build of the code is for Maxis's internal use on their servers, not as a commercial product for Linux.
I made the same code base compile on both Windows and Linux, and both with or without graphic. The SDL graphics code still works on Linux, but it's only used for diagnostic and debugging purposes, and not for production.
It's nice to run the graphical build of the Linux server in order to see what the server's doing during development. But the production server can't require a connection to an X server, and doesn't read in any graphics, because many must run on the same machine in parallel.
Even though Loki blew their chance to port The Sims to Linux, I still wanted to see it happen anyway. But because so much time had passed since the release of The Sims, I would rather put my efforts into finishing porting The Sims Online client to Linux, and work with some other company than Loki.
But I discussed it with Will Wright, and he explained to me in his reasonable, thoughtful, well considered manner: a native port of The Sims Online client to Linux would not be practical as a commercial product, because of its nature as a dynamically updated online game.
The way The Sims Online and many other online games work, is that the server and the clients all run the same deterministic simulation in lock step, funneling any user requested changes through a central "headless" server, so the actions can be scheduled to happen at the same time in all parallel universes.
So the server simulation and protocol must be *EXACTLY* the same as the clients, or all hell will break loose. Any online game, no matter what the architecture, requires that the client and the servers be in sync. That's not so hard if the game is trivial like Othello or Quake, but The Sims network protocol is much more complex and quite sensitive to incompatibilities.
So there is absolutely no way to support any more than one client executable, because the clients and servers must be updated together in real time by downloading patches, just like Ultima Online and other games.
In order for there to be a Linux port (or a Mac port), it would necessarily have to be done in-house at Maxis, built off of the same code tree, developed in parallel.
It is simply not possible for a third party developer like Loki to stay in sync with the ongoing development at Maxis of The Sims Online. That would require enormous overhead and resources on the part of Maxis, all for an extremely negative return on investment: it would extremely complicate and slow down the development process, require extra programmers, quality assurance people with Linux skills, etc.
Cross platform development requires a LOT of overhead -- please believe me if you haven't tried it. The gross income from selling Linux clients would be infintesimal, and would never outweigh the enormous cost of development. There is absolutely no way EA would ever allow Maxis to flush their stock holders' money down the toilet like that.
That is the harsh, real, undenyable reason that Wine is the most practical and economical way to run games on Linux.
I am quite pleased that Transgaming has developed Wine so far that it can now actually run The Sims! What's wrong with one Linux company coming up with a free and practical implementation of a great idea, that puts another Linux company out of business? Think of it as evolution in action, to quote somebody whose name doesn't deserve mentioning.
The way Transgaming has improved Wine is so generally beneficial, that running The Sims Online on Linux the very day it's release on Windows, is now practically in the bag! With Loki's pace and approach, there was never any hope of that.
The thing that matters most is the fact that a game DOES run on Linux, not HOW it's implemented. Real People in the Real World don't care about religious issues like if it's running under Wine or if it's a native port. It takes over the whole screen anyway, so what does it matter? The end experience is the same.
Thanks to the generality of Wine, now there exists a whole spectrum of solutions, from binary emulation, to recompilation, all the way to native porting. Wine could be an extremely useful tool in the process of doing a fully native port.
Those irrational people who reject Wine for purely political reasons, are doing much more damage to Linux than Wine will ever do. They're trying to argue that trivial invisible implementation details matter so much to users, that they would reject Linux if their favorite games weren't native ports, even if they ran under Wine. That's totally ridiculous.
The fact that a game runs on Linux at all, is MUCH more important than whether or not it's a native port.
Another advantage to Transgaming's Wine approach, is that all the existing free external tools like Transmogrifier, SimShow, Facelift, Art Studio, Home Crafer, Menu Edit, File Cop, and the many third party tools, will all probably run under Wine. And if they don't, Transgaming considers it a bug in Wine, and wants to fix it. Most of those tools will never be ported native to Linux, so the only way to use them is though Wine.
I just can't believe that people would attack Transgaming for all that they've done and given back to the community. The alternative is for Linux to simply hold its breath and go without most games.
The consequences of that alternative are dreadful, and much more harmful to Linux than the imaginary consequences of Wine. Now that Wine has been improved enough to run games like The Sims, it has so many other wonderful uses as well. Why would you ever consider sacrificing all that?
It's not worth attacking Wine out of political correctness, in order to wait around forever for native ports that will never happen. Please don't cut off your nose to spite your face.
-Don