BOOKS - Game Development Patterns with Unity 2021
Game Development Patterns with Unity 2021 - David Baron July 1, 2021 PDF  BOOKS
ECO~29 kg CO²

3 TON

Views
64276

Telegram
 
Game Development Patterns with Unity 2021
Author: David Baron
Year: July 1, 2021
Format: PDF
File size: PDF 6.1 MB
Language: English



Pay with Telegram STARS
Book Description: Game Development Patterns with Unity 2021 Unity's coding model and architecture require knowledge of common software design patterns to optimally code a game in the same way as other engines. This second edition introduces the core principles of reusable software patterns and how to employ them to build components efficiently. The book covers the overall design of the core game mechanics and systems, using classic design patterns to utilize Unity's unique API features, and overcoming the negative impacts of bad architectural decisions with simple yet effective practices. By the end of the book, readers will be able to develop Unity games in a structured, scalable, and optimized way. The Need for Studying Technological Evolution Technology has evolved at an unprecedented rate in recent years, and it continues to shape our world in ways we never thought possible. As humans, it is essential that we understand the process of technological evolution to ensure our survival and the unity of people in a warring state. The development of modern knowledge is the key to our survival, and it is crucial that we adapt to these changes to stay relevant. The Importance of Developing a Personal Paradigm To survive in this rapidly changing world, we need to develop a personal paradigm for perceiving the technological process of developing modern knowledge. This means understanding the underlying principles of technology and its impact on society.
Шаблоны разработки игр с Unity 2021 Модель и архитектура кодирования Unity требуют знания общих шаблонов разработки программного обеспечения, чтобы оптимально кодировать игру так же, как и другие движки. Во втором издании представлены основные принципы многократно используемых шаблонов программного обеспечения и способы их использования для эффективного создания компонентов. Книга охватывает общий дизайн основных игровых механик и систем, используя классические шаблоны дизайна для использования уникальных функций API Unity и преодолевая негативные последствия плохих архитектурных решений с помощью простых, но эффективных практик. К концу книги читатели смогут разрабатывать игры Unity структурированным, масштабируемым и оптимизированным способом. Потребность в изучении технологии технологической эволюции развивалась беспрецедентными темпами в последние годы, и она продолжает формировать наш мир так, как мы никогда не думали возможным. Как люди, важно, чтобы мы понимали процесс технологической эволюции для обеспечения нашего выживания и единства людей в воюющем государстве. Развитие современных знаний является ключом к нашему выживанию, и очень важно, чтобы мы адаптировались к этим изменениям, чтобы оставаться актуальными. Важность развития личностной парадигмы Чтобы выжить в этом быстро меняющемся мире, нам необходимо выработать личностную парадигму восприятия технологического процесса развития современных знаний. Это означает понимание основополагающих принципов технологии и ее влияния на общество.
Modèles de développement de jeux avec Unity 2021 modèle et l'architecture de codage Unity nécessitent une connaissance des modèles de développement de logiciels communs pour coder le jeu de la même manière que les autres moteurs. La deuxième édition présente les principes de base des modèles de logiciels réutilisés et la façon dont ils sont utilisés pour créer efficacement des composants. livre couvre la conception générale des principaux systèmes et mécaniques de jeu, en utilisant des modèles de conception classiques pour utiliser les fonctionnalités uniques de l'API Unity et en surmontant les effets négatifs des mauvaises solutions architecturales avec des pratiques simples mais efficaces. À la fin du livre, les lecteurs seront en mesure de concevoir des jeux Unity de manière structurée, évolutive et optimisée. besoin d'apprendre la technologie de l'évolution technologique a évolué à un rythme sans précédent ces dernières années, et elle continue de façonner notre monde d'une manière que nous n'aurions jamais cru possible. En tant qu'êtres humains, il est important que nous comprenions le processus d'évolution technologique pour assurer notre survie et l'unité des personnes dans un État en guerre. développement des connaissances modernes est la clé de notre survie et il est très important que nous nous adaptions à ces changements pour rester pertinents. L'importance de développer un paradigme personnel Pour survivre dans ce monde en mutation rapide, nous devons développer un paradigme personnel de la perception du processus technologique du développement des connaissances modernes. Cela signifie comprendre les principes fondamentaux de la technologie et son impact sur la société.
Plantillas de desarrollo de juegos con Unity 2021 modelo y la arquitectura de codificación de Unity requieren el conocimiento de plantillas de desarrollo de software comunes para codificar el juego de manera óptima al igual que otros motores. La segunda edición presenta los principios básicos de las plantillas de software reutilizables y cómo usarlas para crear componentes de manera eficiente. libro cubre el diseño general de las principales mecánicas y sistemas de juegos, utilizando plantillas de diseño clásicas para utilizar las características únicas de la API Unity y superar los efectos negativos de las malas soluciones arquitectónicas con prácticas simples pero efectivas. Al final del libro, los lectores podrán desarrollar los juegos de Unity de una manera estructurada, escalable y optimizada. La necesidad de estudiar la tecnología de la evolución tecnológica ha evolucionado a un ritmo sin precedentes en los últimos , y sigue dando forma a nuestro mundo de una manera que nunca pensamos posible. Como seres humanos, es importante que comprendamos el proceso de evolución tecnológica para garantizar nuestra supervivencia y la unidad de los seres humanos en un estado en guerra. desarrollo del conocimiento moderno es clave para nuestra supervivencia y es muy importante que nos adaptemos a estos cambios para seguir siendo relevantes. La importancia de desarrollar un paradigma personal Para sobrevivir en este mundo que cambia rápidamente, necesitamos desarrollar un paradigma personal para percibir el proceso tecnológico del desarrollo del conocimiento moderno. Esto significa comprender los principios fundamentales de la tecnología y su impacto en la sociedad.
Modelos de desenvolvimento de jogos com Unity 2021 Modelo e arquitetura de codificação Unity exigem conhecimento de modelos de desenvolvimento de software compartilhados para codificar o jogo da mesma forma que outros motores. A segunda edição apresenta os princípios básicos dos modelos múltiplos de software e as formas de utilizá-los para criar componentes eficientemente. O livro abrange o design geral dos principais mecânicos de jogos e sistemas usando modelos clássicos de design para usar as funções exclusivas da API Unity e superar os efeitos negativos de más soluções arquitetônicas através de práticas simples, mas eficazes. Ao final do livro, os leitores poderão desenvolver os jogos Unity de forma estruturada, escalável e otimizada. A necessidade de explorar a tecnologia da evolução tecnológica evoluiu a um ritmo sem precedentes nos últimos anos, e continua a formar o nosso mundo como nunca pensámos que seria possível. Como seres humanos, é importante que compreendamos o processo de evolução tecnológica para garantir a nossa sobrevivência e unidade das pessoas num estado em guerra. O desenvolvimento do conhecimento moderno é a chave para a nossa sobrevivência, e é muito importante que nos adaptemos a essas mudanças para nos mantermos relevantes. A importância de desenvolver um paradigma pessoal Para sobreviver neste mundo em rápida transformação, precisamos desenvolver um paradigma pessoal para a percepção do processo tecnológico de desenvolvimento do conhecimento moderno. Isso significa compreender os princípios fundamentais da tecnologia e seus efeitos na sociedade.
Modelli di sviluppo di giochi con Unity 2021 Il modello e l'architettura di codifica Unity richiedono la conoscenza di modelli di sviluppo software condivisi per codificare al meglio il gioco come altri motori. Nella seconda edizione vengono illustrati i principi fondamentali dei modelli software riutilizzati e le modalità di utilizzo per la creazione efficiente di componenti. Il libro comprende il design generale dei principali meccanici e sistemi di gioco, utilizzando i modelli di design classici per utilizzare le funzionalità Unity API Unity uniche e per superare gli effetti negativi delle cattive soluzioni architettoniche attraverso pratiche semplici ma efficaci. Al termine del libro, i lettori potranno sviluppare i giochi Unity in modo strutturato, scalabile e ottimizzato. La necessità di studiare la tecnologia dell'evoluzione tecnologica si è evoluta a un ritmo senza precedenti negli ultimi anni, e continua a formare il nostro mondo come non avremmo mai pensato. Come esseri umani, è importante che comprendiamo il processo di evoluzione tecnologica per garantire la nostra sopravvivenza e l'unità delle persone in uno stato in guerra. Lo sviluppo delle conoscenze moderne è la chiave della nostra sopravvivenza ed è fondamentale che ci adattiamo a questi cambiamenti per rimanere aggiornati. L'importanza di sviluppare un paradigma personale Per sopravvivere in questo mondo in rapida evoluzione, abbiamo bisogno di sviluppare un paradigma personale per la percezione del processo tecnologico di sviluppo della conoscenza moderna. Ciò significa comprendere i principi fondamentali della tecnologia e il suo impatto sulla società.
Game Development Templates with Unity 2021 Das Modell und die Codierarchitektur von Unity erfordern Kenntnisse über gängige Softwareentwicklungsmuster, um ein Spiel genau wie andere Engines optimal zu codieren. Die zweite Ausgabe stellt die Grundprinzipien wiederverwendbarer Softwaremuster und deren Verwendung zur effizienten Erstellung von Komponenten vor. Das Buch behandelt das Gesamtdesign der grundlegenden Spielmechaniken und -systeme, indem es klassische Designvorlagen verwendet, um die einzigartigen Funktionen der Unity API zu nutzen und die negativen Auswirkungen schlechter architektonischer Entscheidungen durch einfache, aber effektive Praktiken zu überwinden. Am Ende des Buches werden die ser in der Lage sein, Unity-Spiele strukturiert, skalierbar und optimiert zu entwickeln. Die Notwendigkeit, die Technologie der technologischen Evolution zu studieren, hat sich in den letzten Jahren in einem beispiellosen Tempo entwickelt und prägt unsere Welt auf eine Weise, die wir nie für möglich gehalten hätten. Als Menschen ist es wichtig, dass wir den Prozess der technologischen Evolution verstehen, um unser Überleben und die Einheit der Menschen in einem kriegführenden Staat zu gewährleisten. Die Entwicklung modernen Wissens ist der Schlüssel zu unserem Überleben, und es ist sehr wichtig, dass wir uns an diese Veränderungen anpassen, um relevant zu bleiben. Um in dieser sich schnell verändernden Welt zu überleben, müssen wir ein persönliches Paradigma für die Wahrnehmung des technologischen Prozesses der Entwicklung des modernen Wissens entwickeln. Dies bedeutet, die Grundprinzipien der Technologie und ihre Auswirkungen auf die Gesellschaft zu verstehen.
Gra Development Szablony z Unity 2021 Model kodowania i architektura Unity wymagają znajomości wspólnych szablonów rozwoju oprogramowania, aby optymalnie zakodować grę w taki sam sposób jak inne silniki. Druga edycja wprowadza podstawowe zasady wielokrotnego użytku szablonów oprogramowania oraz sposób ich efektywnego tworzenia. Książka obejmuje ogólną konstrukcję głównych mechaniki i systemów gry, wykorzystując klasyczne wzory, aby wykorzystać unikalne cechy API Unity i pokonując negatywne skutki słabych decyzji architektonicznych poprzez proste, ale skuteczne praktyki. Pod koniec książki czytelnicy będą mogli rozwijać gry Unity w ustrukturyzowany, skalowalny i zoptymalizowany sposób. Potrzeba badania technologii ewolucji technologicznej ewoluowała w bezprecedensowym tempie w ostatnich latach i nadal kształtuje nasz świat w sposób, który nigdy nie był możliwy. Jako ludzie, ważne jest, abyśmy zrozumieli proces ewolucji technologicznej, aby zapewnić nam przetrwanie i jedność ludzi w stanie wojennym. Rozwój nowoczesnej wiedzy jest kluczem do naszego przetrwania, i to jest kluczowe, aby dostosować się do tych zmian, aby pozostać istotnym. Aby przetrwać w tym szybko zmieniającym się świecie, musimy opracować osobisty paradygmat postrzegania technologicznego procesu rozwoju nowoczesnej wiedzy. Oznacza to zrozumienie podstawowych zasad technologii i ich wpływu na społeczeństwo.
Templates פיתוח משחק עם מודל קידוד וארכיטקטורה של אחדות 2021 דורש ידע של תבניות פיתוח תוכנה נפוצות לקודד באופן אופטימלי משחק באותו אופן כמו מנועים אחרים. המהדורה השנייה מציגה את העקרונות הבסיסיים של תבניות תוכנה הניתנות לשימוש חוזר וכיצד להשתמש בהן ליצירת רכיבים ביעילות. הספר מכסה את העיצוב הכללי של מכניקת משחקים ומערכות גדולות, באמצעות תבניות עיצוב קלאסיות כדי למנף את המאפיינים הייחודיים של Unity API ולהתגבר על ההשפעות השליליות של החלטות ארכיטקטוניות גרועות באמצעות שיטות פשוטות אך יעילות. עד סוף הספר יוכלו הקוראים לפתח את משחקי האחדות בצורה מובנית, מאוזנת ומיטבית. הצורך לחקור את טכנולוגיית האבולוציה הטכנולוגית התפתח בקצב חסר תקדים בשנים האחרונות, והוא ממשיך לעצב את עולמנו בדרכים שמעולם לא חשבנו שהן אפשריות. כבני אדם, חשוב שנבין את תהליך האבולוציה הטכנולוגית כדי להבטיח את הישרדותנו ואת אחדות האנשים במדינה לוחמת. קידום הידע המודרני הוא המפתח להישרדות שלנו, וזה קריטי שאנחנו מסתגלים לשינויים האלה כדי להישאר רלוונטיים. החשיבות של פיתוח פרדיגמה אישית כדי לשרוד בעולם המשתנה במהירות, אנחנו צריכים לפתח פרדיגמה אישית לתפיסה של התהליך הטכנולוגי של התפתחות הידע המודרני. משמעות הדבר היא הבנת העקרונות הבסיסיים של הטכנולוגיה והשפעתה על החברה.''
Unity 2021 ile Oyun Geliştirme Şablonları Unity'nin kodlama modeli ve mimarisi, bir oyunu diğer motorlarla aynı şekilde en iyi şekilde kodlamak için ortak yazılım geliştirme şablonları hakkında bilgi gerektirir. İkinci baskı, yeniden kullanılabilir yazılım şablonlarının temel ilkelerini ve bunların bileşenleri verimli bir şekilde oluşturmak için nasıl kullanılacağını tanıtır. Kitap, büyük oyun mekaniği ve sistemlerinin genel tasarımını, Unity API'sinin benzersiz özelliklerinden yararlanmak ve basit ama etkili uygulamalarla zayıf mimari kararların olumsuz etkilerinin üstesinden gelmek için klasik tasarım kalıplarını kullanarak kapsar. Kitabın sonunda, okuyucular Unity oyunlarını yapılandırılmış, ölçeklenebilir ve optimize edilmiş bir şekilde geliştirebilecekler. Teknolojik evrim teknolojisini inceleme ihtiyacı son yıllarda benzeri görülmemiş bir hızla gelişti ve dünyamızı asla mümkün olmadığını düşündüğümüz şekillerde şekillendirmeye devam ediyor. İnsanlar olarak, hayatta kalmamızı ve savaşan bir durumdaki insanların birliğini sağlamak için teknolojik evrim sürecini anlamamız önemlidir. Modern bilgiyi ilerletmek hayatta kalmamızın anahtarıdır ve alakalı kalmak için bu değişikliklere uyum sağlamamız çok önemlidir. Kişisel bir paradigma geliştirmenin önemi Bu hızla değişen dünyada hayatta kalmak için, modern bilginin gelişiminin teknolojik sürecinin algılanması için kişisel bir paradigma geliştirmemiz gerekir. Bu, teknolojinin temel ilkelerini ve toplum üzerindeki etkisini anlamak anlamına gelir.
نماذج تطوير الألعاب مع نموذج الترميز والبنية Unity 2021 تتطلب معرفة نماذج تطوير البرامج الشائعة لتشفير اللعبة بشكل مثالي بنفس طريقة المحركات الأخرى. يقدم الإصدار الثاني المبادئ الأساسية لنماذج البرامج القابلة لإعادة الاستخدام وكيفية استخدامها لإنشاء المكونات بكفاءة. يغطي الكتاب التصميم العام لميكانيكا وأنظمة الألعاب الرئيسية، باستخدام أنماط التصميم الكلاسيكية للاستفادة من الميزات الفريدة لواجهة برمجة التطبيقات Unity والتغلب على الآثار السلبية للقرارات المعمارية السيئة من خلال الممارسات البسيطة ولكن الفعالة. بحلول نهاية الكتاب، سيتمكن القراء من تطوير ألعاب الوحدة بطريقة منظمة وقابلة للتطوير ومحسنة. تطورت الحاجة إلى دراسة تكنولوجيا التطور التكنولوجي بوتيرة غير مسبوقة في السنوات الأخيرة، وتستمر في تشكيل عالمنا بطرق لم نكن نعتقد أنها ممكنة. كأشخاص، من المهم أن نفهم عملية التطور التكنولوجي لضمان بقائنا ووحدة الناس في حالة حرب. يعد تطوير المعرفة الحديثة مفتاحًا لبقائنا، ومن الأهمية بمكان أن نتكيف مع هذه التغييرات للبقاء على صلة. من أجل البقاء في هذا العالم المتغير بسرعة، نحتاج إلى تطوير نموذج شخصي لتصور العملية التكنولوجية لتطوير المعرفة الحديثة. وهذا يعني فهم المبادئ الأساسية للتكنولوجيا وأثرها على المجتمع.
Unity 2021 Unity의 코딩 모델 및 아키텍처를 갖춘 게임 개발 템플릿은 다른 엔진과 같은 방식으로 게임을 최적으로 인코딩하기 위해 공통 소프트웨어 개발 템플릿에 대한 지식이 필요합니다. 두 번째 버전은 재사용 가능한 소프트웨어 템플릿의 기본 원리와이를 사용하여 구성 요소를 효율적으로 만드는 방법을 소개 이 책은 고전적인 디자인 패턴을 사용하여 Unity API의 고유 한 기능을 활용하고 단순하지만 효과적인 관행을 통해 열악한 건축 결정의 부정적인 영향을 극복하는 주요 게임 메커니즘 및 시스템의 전반적인 디자인을 다 이 책이 끝날 무렵 독자들은 구조적이고 확장 가능하며 최적화 된 방식으로 Unity 게임을 개발할 수 있습니다. 기술 진화 기술을 연구 할 필요성은 최근 몇 년 동안 전례없는 속도로 발전해 왔으며, 불가능하다고 생각한 방식으로 세상을 계속 형성하고 있습니다. 사람들로서, 우리는 전쟁 상태에있는 사람들의 생존과 통일성을 보장하기 위해 기술 진화 과정을 이해하는 것이 중요합니다. 현대 지식을 발전시키는 것이 생존의 열쇠이며, 이러한 변화에 적응하여 관련성을 유지하는 것이 중요합니다. 빠르게 변화하는 세상에서 살아 남기 위해서는 개인 패러다임 개발의 중요성이 현대 지식 개발의 기술 프로세스에 대한 인식을위한 개인 패러다임을 개발해야합니다. 이것은 기술의 기본 원칙과 사회에 미치는 영향을 이해하는 것을 의미합니
Unity 2021を使用したゲーム開発テンプレートUnityのコーディングモデルとアーキテクチャには、他のエンジンと同じ方法でゲームを最適にエンコードするための一般的なソフトウェア開発テンプレートの知識が必要です。第2版では、再利用可能なソフトウェアテンプレートの基本原則と、それらを使用してコンポーネントを効率的に作成する方法を紹介します。この本は、Unity APIのユニークな機能を活用し、シンプルで効果的なプラクティスを通じて建築上の悪い決定の悪影響を克服するために古典的なデザインパターンを使用して、主要なゲームメカニクスとシステムの全体的な設計をカバーしています。本の終わりまでに、読者は構造化されたスケーラブルで最適化された方法でUnityゲームを開発することができます。近、技術進化技術を研究する必要性はかつてないペースで進化しており、これまで考えられなかった形で私たちの世界を形作り続けています。人々として、私たちが技術進化のプロセスを理解し、戦争状態にある人々の生存と団結を確保することが重要です。現代の知識を進歩させることは私たちの生存の鍵であり、これらの変化に適応して関連性を保つことが重要です。個人的なパラダイムを開発することの重要性急速に変化するこの世界で生き残るためには、現代の知識の発展の技術的プロセスの認識のための個人的なパラダイムを開発する必要があります。これは、技術の基本原則と社会への影響を理解することを意味します。
Unity 2021遊戲開發模板統一模型和編碼體系結構需要了解通用軟件開發模板,以便以與其他引擎相同的方式對遊戲進行最佳編碼。第二版介紹了可重復使用的軟件模板的基本原理以及如何將其用於有效創建組件。該書涵蓋了核心遊戲機制和系統的整體設計,使用經典的設計模式來利用Unity API的獨特功能,並通過簡單而有效的實踐克服了不良架構解決方案的負面影響。到書結束時,讀者將能夠以結構化,可擴展和優化的方式開發Unity遊戲。近來,對技術進化技術的需求以前所未有的速度發展,它繼續以我們從未想過的方式塑造我們的世界。作為人類,我們必須了解技術進化的過程,以確保我們在交戰國的生存和人類團結。發展現代知識是我們生存的關鍵,我們必須適應這些變化以保持相關性。發展人格範式的重要性為了在這個瞬息萬變的世界中生存,我們需要發展個人範式來理解現代知識的技術發展過程。這意味著了解技術的基本原則及其對社會的影響。

You may also be interested in:

Game Development Patterns with Unity 2021
Learning C# by Developing Games with Unity C# Programming for Unity Game Development , 2nd Edition - 2020
Unity Game Development Cookbook Essentials for Every Game, 1st Edition
Unity Game Development A Beginner|s Guide to Game Programming - 2nd Edition
Unity Game Development A Beginner|s Guide to Game Programming - 2nd Edition
Introduction to Game Design, Prototyping, and Development From Concept to Playable Game with Unity and C#, 2nd Edition
Introduction to Game Design, Prototyping, and Development From Concept to Playable Game with Unity and C#, 3rd Edition
Unity Development Cookbook Real-Time Solutions from Game Development to AI, 2nd Edition
Unity Development Cookbook Real-Time Solutions from Game Development to AI, 2nd Edition
Hands-On Unity 2020 Game Development: Build, customize, and optimize professional games using Unity 2020 and C#
Holistic Game Development with Unity 3e An All-in-One Guide to Implementing Game Mechanics, Art, Design and Programming 3rd Edition
Unity Game Development Cookbook: Essentials for Every Game
2D Game Development with Unity
The Art Of Game Development With Unity
Learning Unity 2D Game Development by Example
Practical Game Development with Unity and Blender
Unity in Action, Third Edition: Multiplatform game development in C#
Unity in Action Multiplatform game development in C# Second Edition
Mobile Game Development with Unity Build Once, Deploy Anywhere
Beginner|s guide to game development Programming concepts and video game design principles with Unity, Unreal Engine, and Godot. Let|s turn your hobby into a profession
Beginner|s guide to game development Programming concepts and video game design principles with Unity, Unreal Engine, and Godot. Let|s turn your hobby into a profession
Unity in Action Multiplatform game development in C#, 3rd Edition
Learning Design Patterns with Unity: Craft reusable code with popular software design patterns and best practices in Unity and C#
Unity Game Development in 24 Hours, Sams Teach Yourself, 4th Edition
Unity Game Development Cookbook From the Basics to Virtual Reality (Early Release)
Unity 2018 Game Development in 24 Hours, Sams Teach Yourself, 3rd Edition
Basic Math for Game Development with Unity 3D: A Beginner|s Guide to Mathematical Foundations
Sams Teach Yourself Unity Game Development in 24 Hours, 4th Edition (Rough Cuts)
Basic Math for Game Development with Unity 3D A Beginner|s Guide to Mathematical Foundations, 2nd Edition
Basic Math for Game Development with Unity 3D A Beginner|s Guide to Mathematical Foundations, 2nd Edition
Unity game programming Learning C# and coding in Unity for beginners
Mastering Augmented Reality Development with Unity Create immersive and engaging AR experiences with Unity
Mastering Augmented Reality Development with Unity Create immersive and engaging AR experiences with Unity
Game Development Patterns with Unreal Engine 5: Build maintainable and scalable systems with C++ and Blueprint
Mastering Unity 2017 Game Development with C#: Create professional games with solid gameplay features and professional-grade workflow, 2nd Edition
iOS Swift Game Development Cookbook Simple Solutions for Game Development Problems, 3rd Edition
Game Development with Gamemaker A Primer on Game Development and Design, 2nd Edition
Game Development with Gamemaker A Primer on Game Development and Design, 2nd Edition
Unity 5 from Zero to Proficiency (Intermediate) A step-by-step guide to coding your first game in C# with Unity
3ds Max Basics for Modeling Video Game Assets Volume 2 Model, Rig and Animate Characters for Export to Unity or Other Game Engines