<commit_before>Swift Engine
===

This project is a game engine designed for the iPhone platform. It is built in Apple's new [Swift programming language](https://developer.apple.com/swift/), and uses the Entity-Component-System architecture. The project was originally written in Objective-C (see the [old project](https://github.com/thelukester92/ecs-engine-for-iphone/)).

The purpose of this project is to provide the functionality required to create simple 2D games. In addition to the basic ECS framework, the project will implement common systems required by most games, such as physics and rendering, so that game developers can jump right into the design and implementation of their games. Abstracting away those common functions will facilitate rapid game development.

**This is a work-in-progress!** This engine is in early alpha, which is why there are no instructions as to how it works yet. Once all of the core functionality is implemented, some basic instructions will be found here.

For more information, go to [the devblog for this engine.](http://devblog.lukesterwebdesign.com/)

***

# Current Features

* Entity-component-system framework
* Rendering system that uses SpriteKit by mapping the position component to a SKSpriteNode position
* Sprite system for displaying textures and sprites with animated states
* Physics system for basic platformer physics

The engine right now can render textures, simulate gravity and collisions, and accept single-tap input to test out different sprite states (jumping and idling).

***

# Todo

[ ] Fix first frame so that it doesn't display nonpositioned entities
[ ] Create a camera system
[x] Reimplement tile system.
[ ] Reimplement player input system.
[ ] Reimplement Lua support.
[ ] Stop sprites from fetching a new texture every frame if the texture isn't changing
[ ] Sprites may not always need states (i.e. tiles only have one frame always)<commit_msg>Updated README.<commit_after>Swift Engine
===

This project is a game engine designed for the iPhone platform. It is built in Apple's new [Swift programming language](https://developer.apple.com/swift/), and uses the Entity-Component-System architecture. The project was originally written in Objective-C (see the [old project](https://github.com/thelukester92/ecs-engine-for-iphone/)).

The purpose of this project is to provide the functionality required to create simple 2D games. In addition to the basic ECS framework, the project will implement common systems required by most games, such as physics and rendering, so that game developers can jump right into the design and implementation of their games. Abstracting away those common functions will facilitate rapid game development.

**This is a work-in-progress!** This engine is in early alpha, which is why there are no instructions as to how it works yet. Once all of the core functionality is implemented, some basic instructions will be found here.

For more information, go to [the devblog for this engine.](http://devblog.lukesterwebdesign.com/)

***

# Current Features

* Entity-component-system framework
* Rendering system that uses SpriteKit by mapping the position component to a SKSpriteNode position
* Sprite system for displaying textures and sprites with animated states
* Physics system for basic platformer physics

The engine right now can render textures, simulate gravity and collisions, and accept single-tap input to test out different sprite states (jumping and idling).

***

# Todo

* [ ] Fix first frame so that it doesn't display nonpositioned entities
* [ ] Create a camera system
* [x] Reimplement tile system.
* [ ] Reimplement player input system.
* [ ] Reimplement Lua support.
* [ ] Stop sprites from fetching a new texture every frame if the texture isn't changing
* [ ] Sprites may not always need states (i.e. tiles only have one frame always)
{'fraction_non_alphanumeric': 0.06055900621118013, 'fraction_numerical': 0.0015527950310559005, 'mean_word_length': 4.700589970501475, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2158002', 'n_tokens_mistral': 952, 'n_tokens_neox': 912, 'n_words': 520}