All Projects → Mathijs-Bakker → Zenject Hero

Mathijs-Bakker / Zenject Hero

Licence: mit
Zenject 7 - Game example (WIP)

Projects that are alternatives of or similar to Zenject Hero

Service Pattern Go
Simple clean Go REST API architecture with dependency injection and mocking example, following SOLID principles.
Stars: ✭ 449 (+920.45%)
Mutual labels:  solid, dependency-injection
Qframework
Unity3D System Design Architecture
Stars: ✭ 2,326 (+5186.36%)
Mutual labels:  unity3d, dependency-injection
Factory
Factory for object creation and dependency injection. Works with normal C# apps or under Unity3d
Stars: ✭ 50 (+13.64%)
Mutual labels:  unity3d, dependency-injection
solid
Solid Android components
Stars: ✭ 33 (-25%)
Mutual labels:  solid, dependency-injection
Solid
Книга о принципах объектно-ориентированного дизайна SOLID
Stars: ✭ 280 (+536.36%)
Mutual labels:  solid, dependency-injection
aspnet-mvc5-starter-template
Asp.Net MVC 5 Starter Kit is a S.O.L.I.D, clean and globalized template with all the necessary boilerplate, ready to go.
Stars: ✭ 39 (-11.36%)
Mutual labels:  solid, dependency-injection
No Framework Tutorial
A small tutorial to show how to create a PHP application without a framework.
Stars: ✭ 1,357 (+2984.09%)
Mutual labels:  solid, dependency-injection
Vcontainer
The extra fast, minimum code size, GC-free DI (Dependency Injection) library running on Unity Game Engine.
Stars: ✭ 308 (+600%)
Mutual labels:  unity3d, dependency-injection
Number Wizard Ui Original
Introducing basic User Interface in the Complete Unity C# Developer 2D course (http://gdev.tv/cudgithub)
Stars: ✭ 18 (-59.09%)
Mutual labels:  solid, unity3d
Nex
Aiming to simplify the construction of JSON API service
Stars: ✭ 35 (-20.45%)
Mutual labels:  dependency-injection
Gulp Di
gulp-di is a dependency injection framework for the Gulp streaming build system.
Stars: ✭ 40 (-9.09%)
Mutual labels:  dependency-injection
Easyanimation
一套操作极简轻量的Unity UGUI动画控制小工具,适用于Unity5.x以上
Stars: ✭ 35 (-20.45%)
Mutual labels:  unity3d
Unity 3mx
Load 3MX/3MXB format LOD model files generated by Bentley ContextCapture into Unity.
Stars: ✭ 38 (-13.64%)
Mutual labels:  unity3d
Grubo
Audio visual experience with Roland Groovebox MC-101 and the Unity game engine
Stars: ✭ 41 (-6.82%)
Mutual labels:  unity3d
Picobox
Dependency injection framework designed with Python in mind.
Stars: ✭ 35 (-20.45%)
Mutual labels:  dependency-injection
Bepinex
Unity / XNA game patcher and plugin framework
Stars: ✭ 1,001 (+2175%)
Mutual labels:  unity3d
Go Starter Kit
Go Rest API starter kit / Golang API boilerplate base on Chi framework
Stars: ✭ 35 (-20.45%)
Mutual labels:  solid
Inversifyjs
InversifyJS is a lightweight inversion of control (IoC) container for TypeScript and JavaScript apps. An IoC container uses a class constructor to identify and inject its dependencies. InversifyJS has a friendly API and encourages the usage of the best OOP and IoC practices.
Stars: ✭ 8,399 (+18988.64%)
Mutual labels:  dependency-injection
Unity Core Project
Core Framework for Unity
Stars: ✭ 42 (-4.55%)
Mutual labels:  unity3d
Chasingplanes unity3d
A "Missiles" game replica, 2D fun mobile game about avoiding missiles while flying a plane.
Stars: ✭ 42 (-4.55%)
Mutual labels:  unity3d

Zenject H.E.R.O. (WIP)

Unity3D project using a dependency injection framework.

Example game with Zenject 7, DiContainer, Installers, Factories, MemoryPools, Signals, etc.

Remember H.E.R.O.? An ancient 8 bit game by Activision made famous on the Atari 2600. Watch on YouTube. Because of the 'simple'game mechanics I chose to recreate this game while learning Zenject.


(images from the original game)

SOLID Principles

Dependency Injection

Dependency injection is a technique whereby one object supplies the dependencies of another object. A dependency is an object that can be used (a service). An injection is the passing of a dependency to a dependent object (a client) that would use it.

This fundamental requirement means that using values (services) produced within the class from new or static methods is prohibited. The client should accept values passed in from outside. This allows the client to make acquiring dependencies someone else's problem.

The intent behind dependency injection is to decouple objects to the extent that no client code has to be changed simply because an object it depends on needs to be changed to a different one.

Dependency injection is one form of the broader technique of inversion of control. As with other forms of inversion of control, dependency injection supports the dependency inversion principle. The client delegates the responsibility of providing its dependencies to external code (the injector). The client is not allowed to call the injector code. It is the injecting code that constructs the services and calls the client to inject them. This means the client code does not need to know about the injecting code. The client does not need to know how to construct the services. The client does not need to know which actual services it is using. The client only needs to know about the intrinsic interfaces of the services because these define how the client may use the services. This separates the responsibilities of use and construction.

What is Zenject?

Zenject is a lightweight dependency injection framework built specifically to target Unity 3D (however it can be used outside of Unity as well). It can be used to turn your application into a collection of loosely-coupled parts with highly segmented responsibilities. Zenject can then glue the parts together in many different configurations to allow you to easily write, re-use, refactor and test your code in a scalable and extremely flexible way.
Source: Zenject ReadMe

Getting Started

Download and open the project in Unity3D.

Built With


(Screenshot from this game)

H.E.R.O.

H.E.R.O. (standing for Helicopter Emergency Rescue Operation) is a video game written by John Van Ryzin and published by Activision for the Atari 2600 in March 1984. It was ported to the Apple II, Atari 5200, Atari 8-bit family, ColecoVision, Commodore 64, MSX, and ZX Spectrum. Sega released a version of the game for its SG-1000 console in Japan in 1985. While the gameplay was identical, Sega changed the backpack from a helicopter to a jetpack.

The player uses a helicopter backpack and other tools to rescue victims trapped deep in a mine. The mine is made up of multiple screens using a flip screen style.

Gameplay

The player assumes control of Roderick Hero (sometimes styled as "R. Hero"), a one-man rescue team. Miners working in Mount Leone are trapped, and it's up to Roderick to reach them.

The player is equipped with a backpack-mounted helicopter unit, which allows him to hover and fly, along with a helmet-mounted laser and a limited supply of dynamite. Each level consists of a maze of mine shafts that Roderick must safely navigate in order to reach the miner trapped at the bottom. The backpack has a limited amount of power, so the player must reach the miner before the power supply is exhausted.

Mine shafts may be blocked by cave-ins or magma, which require dynamite to clear. The helmet laser can also destroy cave-ins, but more slowly than dynamite. Unlike a cave-in, magma is lethal when touched. Later levels include walls of magma with openings that alternate between open and closed requiring skillful navigation. The mine shafts are populated by spiders, bats and other unknown creatures that are deadly to the touch; these creatures can be destroyed using the laser or dynamite.

Some deep mines are flooded, forcing players to hover safely above the water. In later levels, monsters strike out from below the water. Some mine sections are illuminated by lanterns. If the lantern is somehow destroyed, the layout of that section becomes invisible. Exploding dynamite lights up the mine for a brief time.

Points are scored for each cave-in cleared and each creature destroyed. When the player reaches the miner, points are awarded for the rescue, along with the amount of power remaining in the backpack and for each remaining stick of dynamite. Extra lives are awarded for every 20,000 points scored.
Source: Wikipedia

Authors

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].