GithubHelp home page GithubHelp logo

the-nightfall-recurrence's Introduction

Unity Nightfall Incident Port

If you haven't heard of The Nightfall Incident, it is an excellent turn based strategy flash game that lego sponsored a games company to make, way back in 2003.

I hope to emulate it (in meaning of "to match or surpass, typically by imitation") offering extensibility, in terms of levels and programs/enemies. I'm also thinking about an online repo for levels/enemies and other customisations that will be accessible in game.

I'm currently using Tiled to store and create levels because it's fairly accessible (therefore allowing user created content) and is quite mature.

Progress report

A while ago I completely overhauled the project to make it more maintainable and in doing so, I began using a MVC (Model-View-Controller for those not in the web develosphere) framework simply called MVC. Unfortunately I found that framework a little restrictive for my tastes and decided to change. Now I'm using, and have contributed to, a project called Karma, which was created by a web developer and is more or less exactly what I was looking for. Also, dependency injection. Nice!

The bulk of the initial work I did on moving to the first MVC framework was directly useful for Karma, but inevitably I had to discard some. I last worked on this project a couple of months ago (committed, but not pushed) but have wanted to finish the code for my blog update, which is now complete, until I change my own mind again. This should be my free time programming focus but I'm going into my final year at university, so there may not be much of that (unless I can weave it into an assignment somehow).

Todo

  • Storage/metadata
    • Programs (software tools)
    • Vanilla program information (stats, attacks, etc.)
    • Levels
    • Vanilla map features (Credits with different values aren't currently possible because of this issue - I may consider modifiying Tiled or the XML to achieve this)
    • Vanilla levels (the levels from the original)
    • Saving progress
  • Rendering
    • Map geometry
    • Programs
  • AI
    • Movement (A*)
    • Turn decision making
  • GUI
    • Single level
      • Grids
      • Overlay (attack range, etc.)
    • Level selection

the-nightfall-recurrence's People

Contributors

sacredskull avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

the-nightfall-recurrence's Issues

Tag for elements that are not vanilla

The game needs to have a vanilla toggle (obviously off by default...) that prevents elements not present in the original from loading or appearing.

Yet another reason to create a custom map format and editor instead of using Tiled!

http://stackoverflow.com/a/10602624/1160528

Also, to do this properly, need a way of overriding XML properties. Off the top of my head, the current system throws a tantrum if it finds more than one of the same string_id in any of the entity XML files.

Change this behaviour to overwrite BASED ON THE VANILLA TOGGLE SETTING! (Obviously custom changes should not override if it's turned on)

Decouple GameController

If Lovecraft was a programmer, he'd call the GameController class a cyclopean monolith. It has far too much responsibility as of right now.

Noted elements to decouple (italics: class/implementation/ugly mess doesn't currently exist):

  • XML

Abstract so this can be mocked or even replaced with a full database- GameController doesn't want the dirty details)

  • Grid populator

This simply doesn't seem appropriate for GC, which should control interactions between significant units rather than provide them - listening for the GridChange events in GC is obviously appropriate, so long as the handler is delegated to a renderer class.

  • Sprite loading

  • Renderer

It'd be laughable to call this class a renderer in a less abstracted engine, but it's fair game for Unity.

  • Sound

I'm thinking of a sound queue. If a sound is playing and is asked to play again, the call should probably be ignored. Maybe create a class extending sound to define whether or not the sound can stack or not (with a safe minimum time between stacks), as multiple sources of audio of the same frequency increases the volume (ouch).

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.