-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
351 lines (341 loc) · 19.4 KB
/
index.html
File metadata and controls
351 lines (341 loc) · 19.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content="Ignite v0.5.2" />
<title>AdaEngine</title>
<link href="/css/bootstrap.min.css" rel="stylesheet" />
<link href="/css/prism-xcode-dark.css" rel="stylesheet" data-highlight-theme="xcode-dark" />
<link href="/css/prism-xcode-light.css" rel="stylesheet" data-highlight-theme="xcode-light" />
<link href="/css/prism-plugins.css" rel="stylesheet" />
<link href="/css/bootstrap-icons.min.css" rel="stylesheet" />
<link href="/css/ignite-core.min.css" rel="stylesheet" />
<link href="https://adaengine.org/" rel="canonical" />
<link href="/images/favicon.png" rel="icon" />
<script>(function() {
function getThemePreference() {
return localStorage.getItem('custom-theme') || 'auto';
}
function applyTheme(themeID) {
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
const lightThemeID = document.documentElement.getAttribute('data-light-theme') || 'light';
const darkThemeID = document.documentElement.getAttribute('data-dark-theme') || 'dark';
const actualThemeID = themeID === 'auto' ? (prefersDark ? darkThemeID : lightThemeID) : themeID;
document.documentElement.setAttribute('data-bs-theme', actualThemeID);
document.documentElement.setAttribute('data-theme-state', themeID);
}
function applySyntaxTheme() {
const syntaxTheme = getComputedStyle(document.documentElement)
.getPropertyValue('--syntax-highlight-theme').trim().replace(/"/g, '');
if (!syntaxTheme) return;
document.querySelectorAll('link[data-highlight-theme]').forEach(link => {
link.setAttribute('disabled', 'disabled');
});
const themeLink = document.querySelector(`link[data-highlight-theme="${syntaxTheme}"]`);
if (themeLink) {
themeLink.removeAttribute('disabled');
}
}
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', e => {
const currentTheme = getThemePreference();
if (currentTheme === 'auto') {
applyTheme('auto');
applySyntaxTheme();
}
});
const savedTheme = getThemePreference();
applyTheme(savedTheme);
applySyntaxTheme();
})();
</script>
<meta property="og:site_name" content="AdaEngine" />
<meta property="og:title" content="AdaEngine" />
<meta name="twitter:title" content="AdaEngine" />
<meta property="og:url" content="https://adaengine.org/" />
<meta name="twitter:domain" content="adaengine.org" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:dnt" content="on" />
<link href="/styles/main.css" rel="stylesheet" />
<meta media="(prefers-color-scheme: light)" name="theme-color" content="#FFFFFF" />
<meta media="(prefers-color-scheme: dark)" name="theme-color" content="#00000066" />
</head>
<body>
<header class="header">
<div class="container content-restriction header-container">
<a href="/" class="header-logo link-plain"><h2>AdaEngine</h2></a>
<div class="burger-container">
<div id="burger">
<div class="bar topBar"></div>
<div class="bar bottomBar"></div>
</div>
</div>
<ul class="navigation">
<li class="navigation-item"><a href="/blog" class="navigation-item-link link-plain"><span>Blog</span></a></li>
<li class="navigation-item"><a href="/learn" class="navigation-item-link link-plain"><span>Learn</span></a></li>
<li class="navigation-item"><a href="/community" class="navigation-item-link link-plain"><span>Community</span></a></li>
<li class="navigation-item donate-button"><a href="/donate-page" class="link-plain">
<div class="navigation-item-link" style="color: rgb(255 255 255 / 100%); padding: 7px; background-color: var(--donate); border-radius: 12px" onmouseover="this.unhoveredStyle = this.style.cssText;
this.style.backgroundColor = 'var(--donate-darker)'" onmouseout="this.style.cssText = this.unhoveredStyle;">
<div class="text-center color-inherit hstack" style="gap: 2px">
<p class="mb-0 align-self-center">Donate</p>
<i class="mb-0 align-self-center bi-heart-fill" style="margin: 0px"></i>
</div>
</div></a></li>
</ul>
</div>
</header>
<div class="container content-restriction safe-area-insets">
<div>
<div class="vstack" style="height: 100.0%; padding-bottom: 100px; gap: 20px">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="/images/ae_logo~dark.svg" />
<img src="/images/ae_logo.svg" alt="AdaEngine Logo" class="img-fluid ae-logo-header mb-0 align-self-center" style="height: 200px" />
</picture>
<div class="mb-0 align-self-center vstack" style="gap: 20px">
<p class="ae-header-title mb-0 align-self-start">A simple and scalable Game Engine built in Swift.</p>
<p class="mb-0 align-self-start" style="font-weight: 400; font-size: 1.2em">AdaEngine built by Developers, for Developers. Feel the new experience of Swift coding with powerful 2D and 3D capabilities.</p>
<p class="mb-0 align-self-start" style="font-weight: 700; font-size: 1.2em">AdaEngine Free and Open Source Forever.</p>
<div class="mb-0 align-self-start hstack" style="padding-top: 20px; gap: 30px">
<a href="/learn/" class="header-buttons mb-0 align-self-center link-plain">Get Started</a>
<a href="https://github.com/AdaEngine/AdaEngine" class="header-buttons-github mb-0 align-self-center link-plain"><i class="bi-github" style="height: 20px; padding-right: 10px"></i><span id="main-page-callout-stars-count">... stars on GitHub</span></a>
</div>
</div>
</div>
<div class="carousel-container">
<div id="carouselyIxdx" class="carousel slide carousel-fade" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" class="active btn" data-bs-target="#carouselyIxdx" data-bs-slide-to="0" aria-current="true" aria-label="Slide 1"></button>
<button type="button" class="btn" data-bs-target="#carouselyIxdx" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" class="btn" data-bs-target="#carouselyIxdx" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active" style="background-color: black">
<img src="/images/main/tilemap.png" alt="" class="d-block w-100" style="height: 100%; object-fit: cover; opacity: 1" />
<div class="container">
<div class="carousel-caption"></div>
</div>
</div>
<div class="carousel-item" style="background-color: black">
<img src="/images/main/space_invaders.jpeg" alt="" class="d-block w-100" style="height: 100%; object-fit: cover; opacity: 1" />
<div class="container">
<div class="carousel-caption"></div>
</div>
</div>
<div class="carousel-item" style="background-color: black">
<img src="/images/main/duck_hunt.png" alt="" class="d-block w-100" style="height: 100%; object-fit: cover; opacity: 1" />
<div class="container">
<div class="carousel-caption"></div>
</div>
</div>
</div>
<button type="button" class="carousel-control-prev btn" data-bs-target="#carouselyIxdx" data-bs-slide="prev"><span class="carousel-control-prev-icon" aria-hidden="true"></span><span class="visually-hidden">Previous</span></button>
<button type="button" class="carousel-control-next btn" data-bs-target="#carouselyIxdx" data-bs-slide="next"><span class="carousel-control-next-icon" aria-hidden="true"></span><span class="visually-hidden">Next</span></button>
</div>
</div>
<p class="text-center" style="font-weight: 400; font-family: Primary; font-size: 3.0rem; padding-top: 100px; padding-bottom: 100px">Features</p>
<div class="features-container">
<div style="padding-top: 20px">
<div class="engine-info-item-container row justify-content-center row-cols-1 row-cols-md-4" style="row-gap: 20px">
<div class="engine-info-item-text col-md-6 align-self-center">
<h2>Data Driven</h2>
<p style="font-weight: 400; font-size: 1.2em">AdaEngine build around custom Entity Component System.</p>
<ul>
<li><strong>Simple to use</strong> - easy to understand and use</li>
<li><strong>Fast</strong> - optimized for performance</li>
<li><strong>Cache-friendly</strong> - optimized for memory usage</li>
</ul>
<p></p>
</div>
<div class="engine-info-item-content col-md-6 align-self-center">
<pre><code class="language-swift">@Component
struct Player: Entity { }
struct PlayerSystem: System {
func update(context: UpdateSceneContext) { }
}</code></pre>
</div>
</div>
</div>
<div style="padding-top: 20px">
<div class="engine-info-item-container engine-info-item-container-reverse row justify-content-center row-cols-1 row-cols-md-4" style="row-gap: 20px">
<div class="engine-info-item-content col-md-6 align-self-center">
<img src="/images/icons/ic_duck.png" alt="2D Renderer" class="img-fluid" />
</div>
<div class="engine-info-item-text col-md-6 align-self-center">
<h2>2D Renderer</h2>
<p style="font-weight: 400; font-size: 1.2em">Supports real-time 2D rendering for your games and apps.</p>
<ul>
<li><strong>Extendable</strong> - Write your own shaders, materials and render pipelines</li>
<li><strong>Sprite Sheets</strong> - Built-in support for Sprite Sheets and Sprite renderer.</li>
</ul>
<p></p>
</div>
</div>
</div>
<div style="padding-top: 20px">
<div class="engine-info-item-container row justify-content-center row-cols-1 row-cols-md-4" style="row-gap: 20px">
<div class="engine-info-item-text col-md-6 align-self-center">
<h2>2D Physics</h2>
<p style="font-weight: 400; font-size: 1.2em">AdaEngine supports Box2D v3 physics.</p>
<ul>
<li><strong>Parallel calculations</strong> - optimized for multi-core processors</li>
<li><strong>Lightweight</strong> - optimized for memory usage</li>
<li><strong>Fast</strong> - optimized for performance</li>
</ul>
<p></p>
</div>
<div class="engine-info-item-content col-md-6 align-self-center">
<img src="/images/icons/ic_box2d.svg" alt="2D Physics" class="img-fluid" />
</div>
</div>
</div>
<div style="padding-top: 20px">
<div class="engine-info-item-container engine-info-item-container-reverse row justify-content-center row-cols-1 row-cols-md-4" style="row-gap: 20px">
<div class="engine-info-item-content col-md-6 align-self-center">
<img src="/images/icons/ic_render_graph.svg" alt="Render Graphs" class="img-fluid" />
</div>
<div class="engine-info-item-text col-md-6 align-self-center">
<h2>Render Graphs</h2>
<p style="font-weight: 400; font-size: 1.2em">Construct your own render pipeline using powerful of render graphs.</p>
</div>
</div>
</div>
<div style="padding-top: 20px">
<div class="engine-info-item-container row justify-content-center row-cols-1 row-cols-md-4" style="row-gap: 20px">
<div class="engine-info-item-text col-md-6 align-self-center">
<h2>Custom UI Engine</h2>
<p style="font-weight: 400; font-size: 1.2em">Create your own UI using similar to SwiftUI approach.</p>
</div>
<div class="engine-info-item-content col-md-6 align-self-center">
<pre><code class="language-swift">struct MainView: View {
@Environment(\.scene) var scene
var body: some View {
Text("Hello, World!")
.onEvent(CollisionEvent.Began.self) { _ in
scene.add(entity: Player())
}
}
}</code></pre>
</div>
</div>
</div>
<div style="padding-top: 20px">
<div class="engine-info-item-container engine-info-item-container-reverse row justify-content-center row-cols-1 row-cols-md-4" style="row-gap: 20px">
<div class="engine-info-item-content col-md-6 align-self-center">
<img src="/images/icons/ic_ldtk.png" alt="LDtk Integration" class="img-fluid" />
</div>
<div class="engine-info-item-text col-md-6 align-self-center">
<h2>LDtk Integration</h2>
<p style="font-weight: 400; font-size: 1.2em">Import your LDtk projects and use them in your game.</p>
</div>
</div>
</div>
<div style="padding-top: 20px">
<div class="engine-info-item-container row justify-content-center row-cols-1 row-cols-md-4" style="row-gap: 20px">
<div class="engine-info-item-text col-md-6 align-self-center">
<h2>Audio</h2>
<p style="font-weight: 400; font-size: 1.2em">Play music and sound effects with ease.</p>
<ul>
<li><strong>Spatial sound</strong> - add 3D sound to your game</li>
<li><strong>Load audio files as Assets</strong></li>
<li><strong>Play audio Assets using Audio entities</strong></li>
</ul>
<p></p>
</div>
<div class="engine-info-item-content col-md-6 align-self-center">
<img src="/images/icons/ic_headphones.svg" alt="Audio" class="img-fluid" />
</div>
</div>
</div>
<div style="padding-top: 20px">
<div class="engine-info-item-container engine-info-item-container-reverse row justify-content-center row-cols-1 row-cols-md-4" style="row-gap: 20px">
<div class="engine-info-item-content col-md-6 align-self-center">
<img src="/images/icons/ic_opensource.svg" alt="Free and Open Source" class="img-fluid" />
</div>
<div class="engine-info-item-text col-md-6 align-self-center">
<h2>Free and Open Source</h2>
<p style="font-weight: 400; font-size: 1.2em">AdaEngine is 100% free for you. Licensed by MIT. Learn, modify or use.</p>
<ul>
<li><strong>No up-front cost</strong></li>
<li><strong>No licensing cost</strong></li>
<li><strong>No royalties</strong></li>
<li><strong>No runtime fee</strong></li>
</ul>
<p></p>
</div>
</div>
</div>
</div>
</div>
<script src="/js/fade_appear_effect.js"></script>
<script src="/js/github_stars.js"></script>
</div>
<footer class="footer">
<div class="container content-restriction safe-area-insets">
<div class="footer-container">
<div class="footer-columns row justify-content-center row-cols-1 row-cols-md-4" style="padding-bottom: 40px; row-gap: 40px">
<section class="col-md-3 align-self-start">
<h5>Ada Engine</h5>
<div class="vstack" style="padding-top: 16px; gap: 8px">
<a href="https://github.com/AdaEngine/AdaEngine/releases" class="mb-0 align-self-start">Download</a>
<a href="/documentation/adaengine/" class="mb-0 align-self-start">Documentation</a>
<a href="/features/" class="mb-0 align-self-start">Features</a>
<a href="https://github.com/AdaEngine/AdaEngine" class="mb-0 align-self-start">Source code</a>
</div>
</section>
<section class="col-md-3 align-self-start">
<h5>Project</h5>
<div class="vstack" style="padding-top: 16px; gap: 8px">
<a href="blog" class="mb-0 align-self-start">Blog</a>
<a href="community" class="mb-0 align-self-start">Communities</a>
</div>
</section>
<section class="col-md-3 align-self-start">
<h5>Foundation</h5>
<div class="vstack" style="padding-top: 16px; gap: 8px">
<a href="#" class="mb-0 align-self-start">About</a>
<a href="/donate-page" class="mb-0 align-self-start">Donate</a>
<a href="https://github.com/AdaEngine/AdaEngine/LICENSE" class="mb-0 align-self-start">License</a>
</div>
</section>
<div class="col-md-3 align-self-start">
<div class="ms-auto" style="height: 20px"></div>
</div>
</div>
<hr />
<div class="footer-bottom">
<div class="row justify-content-center row-cols-1 row-cols-md-6" style="row-gap: 16px">
<div class="col-md-6 align-self-center" style="font-weight: 400; font-size: 13px">
<div class="font-inherit vstack" style="gap: 8px">
<p class="mb-0 align-self-start">© 2021-2025 Vladislav Prusakov and contributors. All rights reserved.</p>
<a href="https://github.com/AdaEngine/ada-website.git" class="mb-0 align-self-start">Website source code on GitHub.</a>
<p class="text-center mb-0 align-self-start">Created in Swift with <a href="https://github.com/twostraws/Ignite">Ignite</a></p>
</div>
</div>
<div class="col-md-4 align-self-center">
<div class="ms-auto" style="height: 20px"></div>
</div>
<div class="col-md-2 align-self-center">
<div class="footer-social-icons hstack" style="gap: 12px">
<a href="https://github.com/AdaEngine/AdaEngine" class="mb-0 align-self-center link-plain"><i class="bi-github"></i></a>
<a href="https://iosdev.space/@vladprusakov" class="mb-0 align-self-center link-plain"><i class="bi-mastodon"></i></a>
<a href="https://www.reddit.com/r/AdaEngine/" class="mb-0 align-self-center link-plain"><i class="bi-reddit"></i></a>
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
<script> (function(){
var burger = document.getElementsByClassName('burger-container')[0],
header = document.querySelector('header');
burger.onclick = function() {
header.classList.toggle('menu-opened');
}
}());</script>
<script src="/js/bootstrap.bundle.min.js"></script>
<script src="/js/syntax-highlighting.js"></script>
<script src="/js/ignite-core.js"></script>
</body>
</html>