Skip to content

Commit

Permalink
Merge pull request #23 from AdaEngine/feature/tilemaps
Browse files Browse the repository at this point in the history
Add tile maps
  • Loading branch information
SpectralDragon committed Jun 3, 2024
2 parents b8acdb9 + ad4c81b commit f5338a3
Show file tree
Hide file tree
Showing 120 changed files with 4,705 additions and 1,762 deletions.
2 changes: 1 addition & 1 deletion .bazelversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7.0.2
7.1.1
Binary file added Assets/AdaEngine.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/tilemap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ import AppKit
// }
//}

final class PlayerComponent: ScriptComponent {
final class PlayerComponent: ScriptableComponent {

@RequiredComponent var body: PhysicsBody2DComponent

Expand Down
6 changes: 3 additions & 3 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Copyright (c) 2021 Vladislav Prusakov.
Copyright (c) 2021 Ada Engine contributors (cf. AUTHORS.md).
Copyright (c) 2021-present Ada Engine contributors (cf. AUTHORS.md).
Copyright (c) 2021-present Vladislav Prusakov.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand All @@ -17,4 +17,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.
2 changes: 1 addition & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ module(
bazel_dep(name = "rules_swift", version = "1.16.0", repo_name = "build_bazel_rules_swift")
bazel_dep(name = "rules_apple", version = "3.2.1", repo_name = "build_bazel_rules_apple")
bazel_dep(name = "apple_support", version = "1.11.1", repo_name = "build_bazel_apple_support")
bazel_dep(name = "rules_xcodeproj", version = "1.16.0", repo_name = "rules_xcodeproj", dev_dependency = True)
bazel_dep(name = "rules_xcodeproj", version = "1.17.0", repo_name = "rules_xcodeproj", dev_dependency = True)
bazel_dep(name = "swift-syntax", version = "509.1.1", repo_name = "SwiftSyntax")
bazel_dep(name = "zlib", version = "1.3.1")
bazel_dep(
Expand Down
4 changes: 2 additions & 2 deletions Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-docc-plugin",
"state" : {
"revision" : "9b1258905c21fc1b97bf03d1b4ca12c4ec4e5fda",
"version" : "1.2.0"
"revision" : "26ac5758409154cc448d7ab82389c520fa8a8247",
"version" : "1.3.0"
}
},
{
Expand Down
4 changes: 2 additions & 2 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ let package = Package(
defaultLocalization: "en",
platforms: [
.iOS(.v14),
.macOS(.v11),
.macOS(.v13),
],
products: products,
dependencies: [],
Expand All @@ -284,7 +284,7 @@ package.dependencies += [
.package(url: "https://github.com/apple/swift-collections", branch: "main"),
.package(url: "https://github.com/jpsim/Yams", from: "5.0.1"),
// Plugins
.package(url: "https://github.com/apple/swift-docc-plugin", from: "1.2.0"),
.package(url: "https://github.com/apple/swift-docc-plugin", from: "1.3.0"),
.package(url: "https://github.com/apple/swift-syntax", from: "509.1.1")
]

Expand Down
68 changes: 41 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,50 @@
# AdaEngine
<p align="center">
<a href="https://adaengine.github.io">
<img src="Assets/AdaEngine.png" width="200" alt="Ada Engine logo">
</a>
</p>

AdaEngine is a game engine fully written in Swift. The main idea is to encourage Swift developers to use this game engine to create fast and impressive games and user interfaces using Swift as their main language. We hope that AdaEngine can become as popular in the GameDev community as Rust and C# are.
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/AdaEngine/AdaEngine/blob/main/LICENSE)

## What is AdaEngine?

AdaEngine is a game engine fully written on Swift. The main idea is to encourage Swift developers to use this game engine to create fast and impressive games and user interfaces using Swift as their main language. We hope that AdaEngine can become as popular in the GameDev community as Rust and C# are.

![Screenshot from test game SpaceInvaders](Assets/tilemap.png)
![Screenshot from test game SpaceInvaders](Assets/space_invaders.jpeg)

# Features
## Design Goals

* **Capable:** Offer a complete 2D feature set.
* **ECS:** AdaEngine is based on the data-oriented paradigm using a self-written ECS. The AdaEngine has been inspired by Apple's RealityKit framework.
* **Simple:** AdaEngine is easy to use, and our main goal is to enable a quick start and deliver quick results.

## Docs

* **[Tutorials](https://adaengine.github.io/adaengine-docs/tutorials/adaengine/)**: AdaEngine's offical tutorials with how to start your first project.

## Getting started

1) AdaEngine is based on the data-oriented paradigm using a self-written ECS. The AdaEngine ECS has been inspired by Apple's RealityKit framework. ECS provides a fast way to work with the game world because it is more friendly to CPU caches.
2) AdaEngine is easy to use, and our main goal is to enable a quick start and deliver quick results.
We recommend checking out the **[Create your first project guide](https://adaengine.github.io/adaengine-docs/tutorials/adaengine/createproject)** for a brief introduction.

## Roadmap for AdaEngine v0.1.0
To draw a plain window with standard functionality use:

In the first release, we have the following milestones:
```swift
import AdaEngine

1) Full 2D support with basic models and materials
2) Support for iOS, macOS, and tvOS devices
3) Metal render backend (for now)
4) 2D Physics using Box2D
5) Standard support for inputs from the keyboard/mouse and touch
6) Event System
7) Audio System
8) Embeddable views (you can insert AdaEngine into your own projects that use UIKit/AppKit/SwiftUI)
9) Asset management, loading assets from files and executing them
10) Documentation and tutorials
@main
struct AdaEditorApp: App {

## Roadmap for AdaEngine v0.2.0
var scene: some AppScene {
GUIAppScene {
Window()
}
.windowMode(.windowed)
.windowTitle("AdaEngine")
}
}
```

1) UI interface for games and apps
2) Vulkan and GLSL support
3) 3D capabilities
4) 3D Physics
5) More documentation and tutorials

## Contributing to AdaEngine

Expand All @@ -40,10 +54,10 @@ You are welcome to contribute to AdaEngine. Currently, it is under development,

Currently we use Bazel and Swift Package Manager as build tools.

* Bazel
#### Bazel

Bazel is major build system for project, SPM maybe will be removed in future versions. To build project for development download [Bazelisk](https://github.com/bazelbuild/bazelisk). To generate xcproject, use `make xcproj` command in terminal.
Bazel is major build system for project, SPM maybe will be removed in the future versions. To build project for development download [Bazelisk](https://github.com/bazelbuild/bazelisk). To generate xcproject, use `make xcproj` command in terminal.

* Swift Package Manager
#### Swift Package Manager

Use Xcode 15 or Visual Studio Code with the [Swift VSCode Extension](https://www.swift.org/blog/vscode-extension/) and then open `Package.swift` file from the root directory.
Use Xcode 15.3 or Visual Studio Code with the [Swift VSCode Extension](https://www.swift.org/blog/vscode-extension/) and then open `Package.swift` file from the root directory.
6 changes: 2 additions & 4 deletions Sources/AdaEditor/AdaEditorApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,10 @@ import AdaEngine

@main
struct AdaEditorApp: App {

let gameScene = SpaceInvaders()


var scene: some AppScene {
GameAppScene {
try await gameScene.makeScene()
TilemapScene()
}
.windowMode(.windowed)
.windowTitle("AdaEngine")
Expand Down
Loading

0 comments on commit f5338a3

Please sign in to comment.