380 likes | 392 Views
Wave Engine is an exceptional game engine written in C# that supports 2D & 3D graphics on multiple platforms such as iOS, Android, Windows, and more. Learn about its component-based architecture and features for game development.
E N D
Wave Engine Team @waveengineteam http://waveengine.net Víctor Ferrer @VicFerGar vferrer@plainconcepts.com
Whatis Wave? • ComponentBasedGameEngine • 2D & 3D graphics • C# as default language • Multiplatform • Cross-PlatformAPIs Anabsolutelybrilliantgameenginewritten in C# -Miguel de Icaza (Xamarin)
Multiplaform • SupportedPlatforms • iOS • Android • Windows 10 (UWP) • OUYA • Windows (desktop) • MacOS • Linux
Installation • Prerequisites • DirectXredistributable • .NET Framework 4.5.1orhigher • GTK# • Microsoft Build Tools 2015 • Visual C++ Redistributablefor VS2012 Up4 https://github.com/WaveEngine/Documentation/wiki/
Navigation Bar Menu Bar Tools Bar Assets Manager Entities Manager 2D/3D Viewport Console
ComponetBasedArchitecture • Scenes • Entities • Components
Scene • Yourgameismade of 1+ Scenes • It’sthe top of the “hierarchy” • Can have 2D & 3D elements • Has itsown Content • ManagedbytheScreenContextManager
Entities • Logical-leveldefinition of theScene’selements • Componentscontainers, whichaddfunctionality • ManagedbytheEntityManager
Components Behaviors Components Drawables
2D Components Behavior Drawable Component • Transform2D • Camera2D • Sprite • SpriteAtlas • Material2D • ParticleSystem2D • Joint2D • Collider2D • RigidBody2D • TouchGestures • Animation2D • AnimationUI • FreeCamera2DBehavior • SpriteRenderer • SpriteAtlasRenderer • ParticleSystemRenderer2D • TextRenderer2D
Drawing a Sprite Entity Transform2D Sprite SpriteRenderer
Drawing a Sprite Entity sprite = newEntity("mySprite") .AddComponent(newTransform2D()) .AddComponent(newSprite(WaveContent.Assets.Wheel_png)) .AddComponent(newSpriteRenderer(DefaultLayers.Alpha)); this.EntityManager.Add(sprite);
Sprite & SpriteRenderer Debug GUI Additive Alpha Opaque
Collisiondetection Collider2D • RectangleCollider2D • CircleCollider2D • PolygonCollider2D
Extensions: Spine http://esotericsoftware.com/
Services • Itdoesnotdependonthescenes. • Itis accesible fromanywhere in yourcode • Multiplatform API
Services • Assets • CameraCapture • Dispacher • FastRandom • GraphicsDevice • InAppPurchase • Input • Layout • Microphone • MusicPlayer • Platform • Random • ScreenContextManager • SoundPlayer • Storage • Taskscheduler • TimerFactory • TouchPanel • VideoPlayer
Hackaton: Tips & tricks • Brainstormingisreallynecessary • First ideas are neverthegoodones • Listen to otherintegrants • Organization • ListtasksToDo and neededassets • Use a simple task manager (likeTrello) • Schedule your time. Restwhenneeded and clearyourmind • Use coderepository and commit and pushoften • Dontforgetmusic and SFX: Those are VERY important
Hackaton: Tips & tricks • Keepit simple: • 2D games are fast to develop, easy to find/do assets • MMO are notanoption • Use placeolders to test themechanicsfirst • Somecodepatterns are notrecommended • Demo withfewlevels • Avoidadvancedfeaureslike online gameplay, IAP, leaderboards, etc.
Hackaton: Tools • Shoebox • Tiled Editor • Audacity • BFXR • Jukedeck
Hackaton: Links • www.kenney.nl • www.gameartguppy.com • www.lostgarden.com • www.opengameart.org • www.freesound.org • www.indiegamemusic.com • www.belenalbeza.com
Hackaton: Quickstarters & Samples https://github.com/WaveEngine
http://waveengine.net /wavecrossplatform /waveEngineTeam /waveengine C/ Gabilondo Nº 2347007, Valladolid