Giter Site home page Giter Site logo

love-lonelyatoms's Introduction

love-lonelyatoms

Overview

A package that includes game engine code that I have written for the Love2d framework.

A few highlights:

  • A lua-based entity-component system, and a number of common components
  • Basic AI steering behavior
  • Real-time audio synthesis
  • Simple scene-system

The "game" packages I have created, mainly to test and play around with the engine, are detailed below.

Requirements: Love2d

The warpinggrid project runs very slow without the version of Love compiled with Luajit. The easiest way to get that is probably to search the forums for the latest 0.8.0 build.

Package Structure

Directories:

  • Games: Directory holding game projects
  • Scraps: Possibly working, probably obsolete and not-working games.
  • Shared: Game engine code shared across games

To Build and run a game

Directories are organized to make it easier to have multiple game projects. To create a new game, add a new directory to the "games" folder. To build, run:

./build.sh {gamename}

ex:

./build.sh juicy

This script will build a .love package, put it into a "distro" directory, and automatically run the .love package.

Games

Automata

automata

Minimalist "Game of Life" implementation with some pretty colors.

Bullettest

bullet test

Test game for shotting bullets, placing them in a quadtree, and testing an (invincible) opponent with AI steering behaviors.

Juicy

juicy breakout

An implementation of some of Martin Jonasson & Petri Purho's "Juice It Or Lose It" features in Love2d. Somewhat updated version of what I wrote up here.

EchoBreakout

echo breakout

A port of "Echo Breakout", a music hack day project by Brian Fife and I did one year.

Quadtreetest

quadtree

Code to visually test my implementation of quadtrees

Soundtest

soundtest

Test implementation of real-time audio synthesis. Press up or down to change wave types, and press "w" or "s" to change note.

Soundtiles

soundtiles

An audio toy that uses real-time audio synthesis and a looping window to create and play simple set of notes/chords. Click on a square to set a note. Press up or down to change wave types.

Tile Test

tiletest

Test implementation of mapping the screen into tiles

Warpinggrid

warping

A 3d warping grid projected onto a 2d plane, a la Geometry Wars.

Press enter or space to warp the grid.

Concepts drawn from http://gamedev.tutsplus.com/tutorials/implementation/make-a-neon-vector-shooter-in-xna-the-warping-grid/ and ported to lua.

Water

water

Moderately dissatisfactory experiment in using springs to simulate water effects. Based on http://gamedev.tutsplus.com/tutorials/implementation/make-a-splash-with-2d-water-effects/

Shared Libraries

I'll fill this out with more details on the code here at some point.

Directories:

Audio

Real-time Audio Synthesis in lua.

Implementation drawn from:

http://www.headchant.com/2011/09/20/sound-synthesis-with-love/

http://gamedev.tutsplus.com/tutorials/implementation/noise-creating-a-synthesizer-for-retro-sound-effects-core-engine/

Collections

Port of some java-style collections

Entity

Basic Entity-Component framework inspired by Artemis and posts by Adam Martin. Just about everything in the game is an Entity; every data attribute is packaged in a Component; and everything that happens to update or react to those Components happens in a System. For an overview of the theory behind this, check out this post

External

External Libraries:

Game

Some generic game code. Directories:

  • AI: Steering behavior ai
  • Automata: Cellular automata
  • Generic: Generic behaviors
  • Warpinggrid: 3D warping groud source

love-lonelyatoms's People

Contributors

jimfingal avatar

Watchers

 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.