Shape type


We took a break from games for some time in order to focus on the actual product, it would give me time to think about the next game. We wanted to create something that unrelated with typography, so I brainstormed a bit with my co-founder (and partner) about our next step. We settled on a game of color.

Again, we posted it to Reddit and Hacker News where it quickly gained steam and went viral again. It had nearly 400,000 uniques in two weeks, this time the surprise came from Tumblr, which had even more referrals than Twitter.

Color burned me out a bit. We had mocked up the game mechanics for an initial game, and after two weeks I had a pretty functional prototype. The problem was that it was incredibly boring. Our previous games gave the sensation of creation, even if you are just moving letters or nodes around you end up with a nice looking result. With our initial prototype you would just click on colors and get a score, it felt too much like a quiz.

We went back to the drawing board and made some one-day iterations on ideas, but they turned out either too difficult to implement or too subjective to be scored automatically. We settled on what is essentially a timed color picker with some cool features, such as colorblind assistance. This time I used D3 in addition to Raphael. It took me an additional two weeks to push this out of the door, so in total I used four weeks part-time to launch this game.


ИмяName Обязательный или необязательныйRequired/Optional Тип данныхData type ОписаниеDescription
ClassTypeClassType НеобязательныйOptional VariantVariant Строка, содержащая программный идентификатор для создаваемого объекта.A string that contains the programmatic identifier for the object to be created. Необходимо указать либо класстипе , либо filename.You must specify either ClassType or FileName. Если указан класстипе , то filename и Link игнорируются.If ClassType is specified, FileName and Link are ignored.
FileNameFileName НеобязательныйOptional VariantVariant Файл, из которого создается объект.The file from which the object is to be created. Если путь не указан, используется текущая рабочая папка.If the path isn’t specified, the current working folder is used. Необходимо указать аргумент класстипе или filename для объекта, но не то и другое одновременно.You must specify either the ClassType or FileName argument for the object, but not both.
СсылкаLink НеобязательныйOptional VariantVariant Значение true , чтобы связать объект OLE с файлом, из которого он был создан.True to link the OLE object to the file from which it was created. False , чтобы сделать объект OLE независимой копией файла.False to make the OLE object an independent copy of the file. Если указано значение для класстипе, этот аргумент должен иметь значение false.If you specified a value for ClassType, this argument must be False. Значение по умолчанию — False.The default value is False.
DisplayAsIconDisplayAsIcon НеобязательныйOptional VariantVariant Значение true , чтобы ОТОБРАЗИТЬ объект OLE в виде значка.True to display the OLE object as an icon. Значение по умолчанию — False.The default value is False.
IconFileNameIconFileName НеобязательныйOptional VariantVariant Файл, содержащий отображаемый значок.The file that contains the icon to be displayed.
IconIndexIconIndex НеобязательныйOptional VariantVariant Индекс значка в иконфиленаме.The index of the icon within IconFileName. Порядок значков в указанном файле соответствует порядку, в котором значки отображаются в диалоговом окне Изменение значка (доступ к диалоговому окну » объект » при установленном флажке «в виде значка «).The order of icons in the specified file corresponds to the order in which the icons appear in the Change Icon dialog box (accessed from the Object dialog box when the Display as icon check box is selected). Первый значок в файле имеет индекс 0 (ноль).The first icon in the file has the index number 0 (zero). Если в _иконфиленаме_отсутствует значок с заданным номером индекса, используется значок с номером 1 (второй значок в файле).If an icon with the given index number doesn’t exist in IconFileName, the icon with the index number 1 (the second icon in the file) is used. Значение по умолчанию: 0 (ноль).The default value is 0 (zero).
IconLabelIconLabel НеобязательныйOptional VariantVariant Метка (Подпись), которая будет отображаться под значком.A label (caption) to be displayed beneath the icon.
LeftLeft НеобязательныйOptional VariantVariant Положение (в ) верхнего левого угла нового объекта относительно левого верхнего угла документа.The position (in ) of the upper-left corner of the new object relative to the upper-left corner of the document. Значение по умолчанию: 0 (ноль).The default value is 0 (zero).
TopTop OptionalOptional VariantVariant Положение (в пунктах) верхнего левого угла нового объекта относительно верхнего края документа.The position (in points) of the upper-left corner of the new object relative to the top of the document. Значение по умолчанию: 0 (ноль).The default value is 0 (zero).
WidthWidth НеобязательныйOptional VariantVariant Исходные размеры объекта OLE (в пунктах).The initial dimensions of the OLE object, in points.
HeightHeight НеобязательныйOptional VariantVariant Исходные размеры объекта OLE (в пунктах).The initial dimensions of the OLE object, in points.


В приведенном ниже примере показано горизонтальное отражение фигуры и фигуры с именем Rectangle 1 в мидокумент.The following example horizontally flips shape one and the shape named Rectangle 1 on myDocument.

Каждой фигуре назначается имя по умолчанию при добавлении в коллекцию Shapes .Each shape is assigned a default name when you add it to the Shapes collection. Чтобы присвоить фигуре более понятное имя, используйте свойство Name .To give the shape a more meaningful name, use the Name property. В приведенном ниже примере показано, как добавить прямоугольник в мидокумент, присвоить ему имя красного квадрата, а затем задать основной цвет и стиль линии.The following example adds a rectangle to myDocument, gives it the name Red Square, and then sets its foreground color and line style.

В приведенном ниже примере задается заливка первой фигуры в выделенном фрагменте в активном окне, предполагая, что в выделенном фрагменте есть хотя бы одна фигура.The following example sets the fill for the first shape in the selection in the active window, assuming that there’s at least one shape in the selection.

Референсные подборки и мудборды

Референсная подборка (design reference) создается в начале работы над визуальным дизайном и представляет собой компиляцию изображений, на которые затем дизайнер будет опираться при создании дизайн-макета. В нее могут входить примеры цветовых схем, шрифтов, оформления отдельных блоков, фотографий в интерфейсе, компоновки и отдельных графических элементов.

Подборка может быть структурированной (каждый блок подписан, назначение каждого примера однозначно понятно), либо хаотичной (нагромождение картинок, из которого можно считать общее настроение, но не конкретные решения), во втором случае фактически референс превращается в мудборд.

Словом moodboard также часто называют набор изображений, создаваемый до дизайна, с той разницей, что в мудбордах пытаются передать не конкретные дизайнерские решения, а эмоции, настроение, которое должно возникать у тех, кто будет взаимодействовать с финальным дизайном.

Понятия иногда используют взаимозаменяемо.

Что это, описание

C-shape channel (си-шейп каналы) образуются в устье и всей корневой системе в виде С-образной щелевидной формы, которая часто расположена в нижней челюсти, во вторых молярах.

Такое расположение требует особого подхода во время диагностики, дезинфекции и лечения.

В некоторых случаях C-shape channel могут быть обнаружены:

  • в первых премолярах;
  • нижнечелюстных первых молярах;
  • третьих молярах;
  • верхних первых молярах;
  • вторых молярах верхней челюсти.

Как правило, С-шейп канал располагается апикально к уровню соединения эмалево-дентинной границы в виде одноленточного отверстия в 180°, напоминающего букву «С», отсюда и пошло его название. Впервые был описан в 1979 году.

Основной причиной возникновения си-шейп каналов является срастание корней со стороны щеки мезиальными, медиальными или дистальными контактами и между внутренней частью зубов и языка (язычная) из-за разрушения эпителиального гертвиговского влагалища.


Объект Shape является членом коллекции Shapes .The Shape object is a member of the Shapes collection. Коллекция Shapes содержит все фигуры в книге.The Shapes collection contains all the shapes in a workbook.


Существует три объекта, представляющие фигуры: коллекция Shapes , которая представляет все фигуры в книге; Коллекция ShapeRange , которая представляет заданное подмножество фигур в книге (например, объект ShapeRange может представлять фигуры с одним и четырьмя в книге, или может представлять все выбранные фигуры в книге); Объект Shape , представляющий отдельную фигуру на листе.There are three objects that represent shapes: the Shapes collection, which represents all the shapes on a workbook; the ShapeRange collection, which represents a specified subset of the shapes on a workbook (for example, a ShapeRange object could represent shapes one and four in the workbook, or it could represent all the selected shapes in the workbook); and the Shape object, which represents a single shape on a worksheet. Если вы хотите работать с несколькими фигурами одновременно или с фигурами в выделенной области, используйте коллекцию ShapeRange .If you want to work with several shapes at the same time or with shapes within the selection, use a ShapeRange collection.

Для возврата…To return… Используйте…Use…
Объект Shape , представляющий одну из фигур, вложенных соединителемA Shape object that represents one of the shapes attached by a connector Свойство бегинконнектедшапе или ендконнектедшапе объекта ConnectorFormat .The BeginConnectedShape or EndConnectedShape property of the ConnectorFormat object.
Недавно созданная полилинияA newly created freeform Методы буилдфриформ и адднодес для определения геометрии новой полилинии и используют метод конверттошапе для создания полилинии и возврата объекта фигуры , который представляет ее.The BuildFreeform and AddNodes methods to define the geometry of a new freeform, and use the ConvertToShape method to create the freeform and return the Shape object that represents it.
Объект Shape , представляющий одну фигуру в сгруппированной фигуреA Shape object that represents a single shape in a grouped shape Граупитемс (index), где index — это имя фигуры или номер индекса в группе.GroupItems (index), where index is the shape name or the index number within the group.
Новая созданная Группа фигурA newly formed group of shapes Метод Group или REGROUP объекта ShapeRange для группировки диапазона фигур и возврата одного объекта Shape , представляющего новую группу.The Group or Regroup method of the ShapeRange object to group a range of shapes and return a single Shape object that represents the newly formed group. После того как группа сформирована, вы можете работать с этой группой так же, как и с любой другой фигурой.After a group has been formed, you can work with the group the same way that you work with any other shape.
Объект Shape , представляющий существующую фигуруA Shape object that represents an existing shape Shapes (фигуры ) (index), где index — это имя фигуры или номер индекса.Shapes (index), where index is the shape name or the index number.
Объект Shape , представляющий фигуру в выделенном фрагментеA Shape object that represents a shape within the selection Выбор. ShapeRange (index), где index — это имя фигуры или номер индекса.Selection.ShapeRange (index), where index is the shape name or the index number.


Существует несколько классификаций по рассадке C-shape channel, которые были приведены в 1991 г. и 2004 г. С изучением этого вопроса постепенно появляются новые формы и типы.

По Мелтону выделяют 3 типа:

  • сплошной, непрерывный канал в виде буквы «С»;
  • с-shape channel образованы в виде одной точки и двух срощенных в один, похожий на запятую;
  • в виде трех отдельных точек.

По Fan:

  • непрерывный канал от устья до зубного канала, соединяющего с твердой поверхностью зуба;
  • в виде двух каналов с разницей в 60 градусов, напоминающих точку с запятой;
  • два или три с-shape channel расположены по одиночке с разницей в 60 градусов;
  • щель образуется в виде овала или круга;
  • канал не виден, только ближе к апексу.

Также существуют классификации по углу отклонения (2004 г. S.S. Schneider), сложности обработки (1990 г. Ю.А.Винниченко) и сложности лечения (1976 г. J.I.Ingle).


We were high on the success of KernType, so trying to take advantage of the momentum I quickly mocked up a new game where you control bezier curves to match the shape of a letter. We released it three weeks after KernType and promptly posted it to Reddit and Hacker News. Both tanked.

Fortunately it still took life on it’s own, and it was a moderate success on it’s own right. It had 300,000 uniques in little over two weeks, the big surprise now being StumbleUpon and

ShapeType took about one week to program. Even though it was more challenging than KernType I had gained fluency in Javascript, but my knowledge about geometry wasn’t up to par and I had to spend a lot of time learning about bezier curves and I struggled mightily with simple stuff like the Pythagoras Theorem.

Описание Samsung SyncMaster 2253BW

Широкоэкранный монитор с великолепным качеством изображения Samsung SyncMaster 2253BW может успешно использоваться как дома, так и в офисе. Внешний вид 2253BW отличается плавностью линий, а характеристики ЖК-панели отвечают всем требованиям. Быстрая матрица со временем отклика 2 мс и динамической контрастностью 8000:1 обеспечит великолепное качество изображения в компьютерных играх, фильмах или мультимедийных приложениях.



программируемая кнопка управления
энергосбережения: VESA DPMS
Размеры, вес:
514x400x219 мм, 5.10 кг
Потребляемая мощность:
при работе: 45 Вт, в режиме ожидания: 1 Вт, в спящем режиме: 1 Вт
Блок питания:
ЖК-монитор, широкоформатный
1680×1050 (16:10)


300 кд/м2
Динамическая контрастность:
Шаг точки по горизонтали:
0.282 мм
Шаг точки по вертикали:
0.282 мм
Время отклика:
2 мс
Область обзора:
по горизонтали: 170°; по вертикали: 160°
Максимальное количество цветов :
16.7 млн.
Покрытие экрана:


Частота обновления:
строк: 30-81 кГц; кадров: 56-75 Гц
Основные технические характеристики
Технология TFT

Диагональ 22 »
Разрешение (макс.) 1680 x 1050

Формат экрана 16:10

Яркость 300 кд/м²
Контрастность динамическая 8000 :1
Время отклика (GTG) 2 мс
Угол обзора горизонтальный 170°

Угол обзора вертикальный 160°

Габариты и вес
Ширина 51.3 см
Высота 35.2 см
Глубина 6.1 см
Ширина (с подставкой) 51.3 см
Высота (с подставкой) 40 см
Глубина (с подставкой) 21.9 см
Вес (с подставкой) 5.1 кг
Ширина (в упаковке) 59.3 см
Высота (в упаковке) 43.3 см
Глубина (в упаковке) 13.2 см
Вес (в упаковке) 6.5 кг

6.3 Константы и переменные

Это значит что эту вариативность мы изначально предусматриваем и создаем набор вариантов логотипа, знака, цветов, форм и т.д. То есть мы не подразумеваем что будут какие-то новые вводные данные, мы просто прописываем где и как будут использоваться те что есть. Это может быть система знаков, которая может сформировать экосистему суб-брендов и так далее. Может быть различная изменчивость, но при этом она не будет меняться в процессе.

Бренд модельного агенства. Вариативность в логотипе F, где-то это след от помады, а где-то просто штрих. Не учитывает контекст, этим и отличается от предыдущих примеров.

При этом система достаточно статична

Свайп как элемент фирменного стиля: ребрендинг мобильного разработчика Touch Instinct

Логотип подразумевал вариативность, но выбрали один ключевой, большое количество здесь не было нужно, компании нужно было просто донести идею. Заложили вариативность, но закрепили ключевой логотип. Шрифтовая система классическая (UBUNTU+PROXIMA NOVA). Цвет тоже образ — градиент передает силу нажатия на экран, пошло от тепловых карт. Градиент имеет константы, которые удобно использовать. Вариативность заключается в графике. Идея хорошо переносится в рекламу.

Идея хорошо переносится в рекламу.

След от пальца, который учитывает как держат визитку. Отдельная для японцев, которые подают визиту двумя руками.


  • AdjustmentsAdjustments
  • AlternativeTextAlternativeText
  • ApplicationApplication
  • AutoShapeTypeAutoShapeType
  • BackgroundStyleBackgroundStyle
  • BlackWhiteModeBlackWhiteMode
  • BottomRightCellBottomRightCell
  • CalloutCallout
  • ChartChart
  • ChildChild
  • ConnectionSiteCountConnectionSiteCount
  • ConnectorConnector
  • ConnectorFormatConnectorFormat
  • ControlFormatControlFormat
  • CreatorCreator
  • УкрашенияDecorative
  • FillFill
  • FormControlTypeFormControlType
  • GlowGlow
  • GraphicStyleGraphicStyle
  • GroupItemsGroupItems
  • HasChartHasChart
  • HasSmartArtHasSmartArt
  • HeightHeight
  • HorizontalFlipHorizontalFlip
  • HyperlinkHyperlink
  • IDID
  • LeftLeft
  • LineLine
  • LinkFormatLinkFormat
  • LockAspectRatioLockAspectRatio
  • LockedLocked
  • Model3DModel3D
  • NameName
  • NodesNodes
  • OLEFormatOLEFormat
  • OnActionOnAction
  • ParentParent
  • ParentGroupParentGroup
  • PictureFormatPictureFormat
  • PlacementPlacement
  • ReflectionReflection
  • RotationRotation
  • ShadowShadow
  • ShapeStyleShapeStyle
  • SmartArtSmartArt
  • SoftEdgeSoftEdge
  • TextEffectTextEffect
  • TextFrameTextFrame
  • TextFrame2TextFrame2
  • ThreeDThreeD
  • TitleTitle
  • TopTop
  • TopLeftCellTopLeftCell
  • TypeType
  • VerticalFlipVerticalFlip
  • VerticesVertices
  • VisibleVisible
  • WidthWidth
  • ZOrderPositionZOrderPosition

2.7 Типографика как элемент системы идентификации

Как именно работает типографика? Когда она является образом, когда интонацией? Как можно средствами шрифта, типографики, верстки или рукописных приемов донести то сообщение, которое хотим донести до аудитории?

Шрифты выбираем по тому же принципу по какому выбираем любой элемент коммуникации бренда. Опираемся на характер бренда.

Чаще всего при выборе шрифтов речь идет о шрифтовой паре. Один — акцидентный, который несет характер бренда. Один — наборный, который не обладая очень яркими элементами, сочетаясь с акцидентным шрифтом, выполняет служебные задачи, им набирают основной объем текста, делают дополнительные надписи. где не нужно показыать дополнительный характер, а нужно сказать сообщение.

Таким образом выбираем шрифты. Это один из приемов, которым пользоваться лучше всего, так как он во многом облегчает работу и сразу фокусирует на нужном направлении и не дает возможности растеряться.

The aftermath

All in all, we have amassed more than 2.1 million unique visitors; 200K FB likes and 200K tweets and we are very pleased with the results.

The accumulated referrals are quite a sight, the amount of traffic that social media sends our way is just mind blowing, it dwarfs the accumulated traffic from aggregators, which come in at a distant second

We have 20,000 sign-ups for people to be notified when we launch. The conversion rate is a bit on the low side, but it is deliberate as we didn’t want to push too hard on notifications. Method of Action will rely on community generated content, so the quality of our product depends on the quality of our users. I could have easily added a sign up form at the end of each game, but we linked to our landing page instead. By doing this we—hopefully—filter those truly interested learning about design.

What we did wrong

We discussed our last game too much before implementing it. I didn’t realize it, but pitching a game is a tricky proposition. If you think about it, Tetris is a puzzle where you must accommodate colored blocks to form lines. Angry Birds is a game where you sling birds into blocks, which then collapse to crush pigs. Doesn’t sound like too much fun.

There is no point in discussing how a game will work, unless it’s very similar to an existing game. It is better to simply implement your idea as soon as you can and iterate from there.

From a SEO perspective, another mistake was putting the games in their own subdomains. I believe that self-standing content that doesn’t share navigation or purpose is meant to have a different Top Level Domain, or if it’s related but not within your main audience or purpose then it should reside in it’s own subdomain. Domains such as or are good examples of this.

However our games are actually part of our product, so we should have used something such as By not doing this we are missing out on a tremendous amount of PageRank.

1.5 Платформа бренда

Платформа бренда — сводный лаконичный документ, который содержит и описывает основные черты бренда.

В платформу бренда входит:

АКТИВЫ БРЕНДАЧто это?Это все характеристики, которыми обладает бренд. Среди них есть те, которые отличают нас от конкурентов, а есть те, что встречаются у всех брендов в категории. Это функциональные и эмоциональные преимущества.Зачем это нужно?Это основа платформы бренда, то, к чему мы можем оперировать в отношениях с клиентами, то, за что нас любят и ценят.

ОПИСАНИЕ ЦЕЛЕВОЙ АУДИТОРИИ Здесь хорошо приложить фотографиюЧто это?Мы выделяем целевые группы и фокусируемся на тех, к кому наиболее логично обращаться, у кого есть потребность в наших продуктах, услугах и, кто готов работать с нами. Наши клиенты могут быть разного пола и возраста, но им должна быть интересна основная идея и история, которую мы расскажем о нашем бренде.Зачем это нужно?Понимая аудиторию, которой предлагаем наш продукт, мы находим подходящие формулировки и слова, тональность и смысл коммуникации.

ИНСАЙТИнсайт это скрытая потребность аудитории, которую она не всегда формулирует. Формула построения инсайта: драйвер+барьер=поэтому текущее действие.Что это?Это мотив потребителя (драйвер) к покупке, который сталкиевается с некоторой проблемой (барьером), в преодолении которой мы должны ему помочь. в инсайте должен быть конфликт, драма. Это не просто факт, наблюдение, общеизвестная истина.Зачем это нужно?Отвечая на острые проблемы потребителей, мы можем достучатся до их сердец, дать понять, что наш бренд — это то, что они хотели. Проще: задача бренда ответить на инсайты и помочь людям.

РОЛЬ БРЕНДАЧто это?Это описание нашей позиции в отношении проблемы потребителя. Что мы делаем для того, чтобы решить его задачу.Зачем это нужно?Это то, что хочет от нас получить потребитель. Поэтому руководствуясь своей ролью, мы формируем предложения для клиентов.

СООБЩЕНИЕ БРЕНДАСообщение бренда вытекает из роли бренда. Это не обязательно слоган, но это смысл, то что читается между строк.Что это?“Красной линией” через всю коммуникацию проходит сообщение бренда, посыл. Это то, что мы хотим сказать нашей аудитории.Зачем это нужно?Этим сообщением мы можем мерить любую активность бренда, любое его проявление. если оно не соответствует, от него следует отказаться, чтобы сохранить целостность восприятия бренда.

RTB (REASON TO BELIEVE)Что это? Почему люди должны нам поверить? RTB (reason to believe) — дословно “причина верить”

Это доказательство слов на основе реальных преимуществ бренда и активов.Зачем это нужно?Любое даже самое привлекательное сообщение проверяется на практике и способно рассыпаться в глазах потребителя, если не найдет подтверждения.

ХАРАКТЕР БРЕНДАЧто это?Если наш бренд представить как человека, то он будет восприниматься именно так.Зачем это нужно?Это важно, так как потребители выстраивают отношения с брендом в схожей терминологии. Люди привыкли общаться с людьми, а не с предметами, такие взаимоотношения им понятны.Здесь хорошо приложить фотографию.

ЦЕННОСТИ БРЕНДАЧто это?То что действительно важно для бренда

Это принципы, которых вы придерживаетесь во всем.Зачем это нужно?Если ценности бренда и аудитории совпадают, это хороший фундамент для долгих отношений и большой любви.Их не должно быть очень много — около 5 оптимально.

КОНЦЕПЦИЯ ПОЗИЦИОНИРОВАНИЯКак результат всего что описано в платформе бренда является концепция позиционирования— сводная единая фраза, в которой все это заключаем.Что это?Кто мы? Суть бренда в одной емкой фразе, компетенции и отличительные особенности. Понимание проблемы и ответ.Зачем это нужно?Так потребители узнают с какими вопросами и задачами к нам обращаться, отличают нас от других.

How to create a successful game for your own product

Before Method of Action I used to create small games and quizzes for my personal blog (in Spanish). I’d read, for example, that people have trouble distinguishing people from a different race than their own, hence phrases like «all asians look alike». So I would gather some pictures off a yearbook and implement the experiment in the browser. You can find the experiment here (Flash SWF, in Spanish). At the very least people were engaged with the quizzes and the point made was very clear, even for the most uninterested users.

What I gathered out of these little exercises is that any kind of information asymmetry can be leveraged into a game. Anything that you know and I ignore can be transformed into a pleasant learning experience.

You have a marketplace for used cars, you could present a photo different car models and let me guess the average price on your site.

You are a stock photo company, and suddenly there are big news about a celebrity. You could let users guess which photo is best-selling at the moment.

You are an architecture magazine with decades in circulation. You can show me photos of houses from old issues and let me guess the year of construction.

These are contrived examples, but I find them immensely more interesting than what big brands are doing today. They pay creative agencies tons of money for what is essentially a generic branded game that has little to do with their domain.

Show respect for your users

Edutainment has reputation as being boring, and for good reason. Most edutainment is mind-numbingly dull, and when you intersect edutainment with marketing it’s a recipe for disaster. One brand of dog food had a game where you had a virtual dog, you could feed it chicken, chocolate, or their own dog food. If you made the wrong choice (you can guess what), the app would lecture you on why it was wrong.

Users don’t want to be lectured, they want to be entertained. Even then, users hate wasting time. When I’m done playing a game I often feel remorse. I should have been doing more important stuff. When you throw education into the mix that feeling disappears because you are actually learning something.

You must also try to find the right difficulty level. I must confess we go by feeling, but it might be a good idea to test on a couple of users before releasing into the wild. A game that is too easy is a boring game, too challenging and your users feel annoyed.

Make it challenging for yourself

I have a developer friend from whom I learned one of the best lessons in programming: for every project you do, incorporate a technology or constraint which you haven’t used before. For KernType it was CoffeeScript and full keyboard support, for ShapeType it was geometry and seeing if I could produce something attractive with an ugly color scheme (still unsure if I succeeded with this!), for Color it was D3 and color blind assistance.

Incorporating new constraints and technologies added the right amount of challenge to the projects, it made them interesting without being frustrating. I have learned a lot along the way.

If you are a programmer you might be surprised to learn that none of the games use Object Oriented Programming, at all. My mind was damaged by Basic decades ago, and my toolset only includes functions, loops and conditions. I’ll make sure my next game uses OOP, even if this is not evident on the font-end it will hopefully improve my delivery times.

Every marketing approach burns out users

You might remember the time when apps used to be invite only, either because of real scaling concerns, policing on community quality, or just plain nasty artificial scarcity. It turned out to be a great marketing tool, people would give them out on their blogs, trade them in forums, or even sell them on eBay. Of course, that approach is now dead, and when I encounter one of these websites I promptly hit my back button.

Nowadays the craze is in the LaunchRock kind of invite: if you share it on Twitter and Facebook, you further along the queue. This approach worked for the first few startups to use it, but frankly users can only get so excited about a product that doesn’t exist yet. I get exasperated every time some of this spam shows up on my timeline.

I’m sure that if many startups used the game approach to launch, interest would decrease. A well made game has value in itself, but time is a limited resource and novelty would wear off, making it a losing proposition.

In summary

Make it entertaining for others, and challenging for yourself. Don’t lecture, entertain. Don’t push too hard on promoting your product, let the context do the promotion.

Ссылка на основную публикацию