Giter VIP home page Giter VIP logo

shenanijam-2019's Introduction

Shenanijam 2019

TODO: Update README

Backlog

  • ๐ŸŽ‰ Gameplay loop closes
  • ๐ŸŽ‰ Game is Playable
  • ๐ŸŽ‰ Game's done!

Checklist

  • Windows build
  • Web build
  • Make Itch.io page

Sounds

  • 
    

Polish Things

  • Intro info screen
  • Main menu
  • Metagame for spending points after dying
  • Camera zooms in for DNA collection
  • Better enemy sprites lol
  • Monsters flip horizontally

Stretch Goals

  • Save / Load your points from disk
  • Save / Load into into the cloud

This is a project template for getting up-and-running quickly for game jams. It is configured for creating 2D games in Unity. Included are a bunch of common plugins, code and prefabs that I use when developing games. This is to save on overhead that would otherwise occur during the jam, setting up a new project and copying over any specific library code from other games.

The code included is all focused on automation and making code easier to write, it does not "pre-code" any features or mechanics.

Contents

The project currently includes:

Plugins

  • Zenject
  • NotNullAttribute
    • A C# attribute for marking Serialized properties in the Unity inspector as required.
    • A console error is logged, and the game is prevented from running at all (not just when your GameObject enters the scene) whenever any "Not Null" fields are null.
    • Very useful for reducing errors in the Unity Editor, especially for non-programmer contributors.

Scripts

  • A small Easing library
    • Written by me, for adding juice to your game.
  • A bunch of utility extension methods
    • Vector extensions for fluently manipulating vectors
    • Texture extensions for performing common operations on textures
    • Rigidbody extensions for performing common physics operations on Rigidbodies and their attached colliders
  • A small Debug Drawing library
    • For drawing dots, lines etc. on the screen
  • PathStack
    • Class for easily working with FileSystem paths
    • Removes need for string operations, references to "Path separator" constants, etc.
  • PointService
    • A service for easily generating points in games
  • ThreadedCoroutine singleton
    • A singleton for easily offloading work to REAL background threads
    • Reminder: You cannot do any operations on Unity objects from a background thread
  • MasterInstaller
    • An "Installer" instance for Zenject that wires up a few simple concepts
    • Sets up Singleton reference to ThreadedCoroutine
    • Has some quick dependency injection hooks for injecting sibling components, instead of calling GetComponent<T>() all the time

Prefabs

  • _SceneContext
    • An object to add to your scene to pre-configure Zenject stuff

Scenes

  • Game.unity
    • Basic scene set up and ready to go for development, contains a _SceneContext instance and things.

Folder Structure

The project has the following structure:

  Assets/
  โ”œโ”€โ”€โ”€ Audio/
  โ”‚    # files and music
  โ”‚
  โ”œโ”€โ”€โ”€ Materials/
  โ”‚    # Physics or Visual materials
  โ”‚
  โ”œโ”€โ”€โ”€ Media/
  โ”‚    # Image assets, textures, etc.
  โ”‚
  โ”œโ”€โ”€โ”€ Plugins/
  โ”‚    # Any kind of addon to Unity
  โ”‚
  โ”œโ”€โ”€โ”€ Prefabs/
  โ”‚    # Prefabs
  โ”‚
  โ”œโ”€โ”€โ”€ Scenes/
  โ”‚    # Scenes
  โ”‚
  โ””โ”€โ”ฌโ”€ Scripts/
    โ”‚  # Your code
    โ”‚
    โ”œโ”€โ”€โ”€ Components/
    โ”‚    # Scripts for extending the functionality of GameObjects
    โ”‚    #   e.g. "PlayerHoldable" etc.
    โ”‚
    โ”œโ”€โ”€โ”€ Config
    โ”‚    # Configuration scripts e.g. Zenject Installers
    โ”‚
    โ”œโ”€โ”€โ”€ Entities
    โ”‚    # Scripts specific to certain objects in your game
    โ”‚    #   e.g. "PlayerController", etc.
    โ”‚
    โ”œโ”€โ”€โ”€ Singletons
    โ”‚    # Singleton objects
    โ”‚
    โ””โ”€โ”€โ”€ Util
         # All sorts of raw coding logic that exists as
         #   a utility for other code

shenanijam-2019's People

Contributors

peabnuts123 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.