aether-engine 1.0.2__tar.gz → 1.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. aether_engine-1.0.4/PKG-INFO +149 -0
  2. aether_engine-1.0.4/README.md +108 -0
  3. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/engine.py +3 -3
  4. aether_engine-1.0.4/aether_engine.egg-info/PKG-INFO +149 -0
  5. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether_engine.egg-info/requires.txt +5 -10
  6. aether_engine-1.0.4/setup.py +76 -0
  7. aether_engine-1.0.2/PKG-INFO +0 -500
  8. aether_engine-1.0.2/README.md +0 -449
  9. aether_engine-1.0.2/aether_engine.egg-info/PKG-INFO +0 -500
  10. aether_engine-1.0.2/setup.py +0 -132
  11. {aether_engine-1.0.2 → aether_engine-1.0.4}/LICENSE +0 -0
  12. {aether_engine-1.0.2 → aether_engine-1.0.4}/MANIFEST.in +0 -0
  13. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/__init__.py +0 -0
  14. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/ai/behavior_tree.py +0 -0
  15. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/ai/navmesh.py +0 -0
  16. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/animation/skeleton.py +0 -0
  17. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/assets/asset_pipeline.py +0 -0
  18. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/audio/__init__.py +0 -0
  19. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/audio/audio_manager.py +0 -0
  20. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/audio/music.py +0 -0
  21. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/audio/sound.py +0 -0
  22. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/__init__.py +0 -0
  23. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/achievement_system.py +0 -0
  24. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/application.py +0 -0
  25. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/config.py +0 -0
  26. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/console.py +0 -0
  27. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/event_bus.py +0 -0
  28. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/input.py +0 -0
  29. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/plugin_system.py +0 -0
  30. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/save_system.py +0 -0
  31. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/time_manager.py +0 -0
  32. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/core/window.py +0 -0
  33. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/editor/gizmo.py +0 -0
  34. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/editor/imgui_integration.py +0 -0
  35. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/environment/environment_system.py +0 -0
  36. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/__init__.py +0 -0
  37. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/camera.py +0 -0
  38. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/framebuffer.py +0 -0
  39. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/light.py +0 -0
  40. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/lod_system.py +0 -0
  41. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/material.py +0 -0
  42. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/mesh.py +0 -0
  43. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/mesh_factory.py +0 -0
  44. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/particle_system.py +0 -0
  45. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/post_process.py +0 -0
  46. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/renderer.py +0 -0
  47. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/shader.py +0 -0
  48. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/shader_library.py +0 -0
  49. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/sky_atmosphere.py +0 -0
  50. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/terrain.py +0 -0
  51. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/texture.py +0 -0
  52. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/graphics/water.py +0 -0
  53. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/network/network_manager.py +0 -0
  54. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/physics/__init__.py +0 -0
  55. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/physics/bullet_backend.py +0 -0
  56. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/physics/collider.py +0 -0
  57. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/physics/physics_world.py +0 -0
  58. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/physics/raycast.py +0 -0
  59. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/physics/rigidbody.py +0 -0
  60. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/platform/steam_api.py +0 -0
  61. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/resources/__init__.py +0 -0
  62. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/resources/asset_database.py +0 -0
  63. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/resources/loaders/obj_loader.py +0 -0
  64. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/resources/loaders/texture_loader.py +0 -0
  65. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/resources/resource_manager.py +0 -0
  66. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/resources/serialization.py +0 -0
  67. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/scene/__init__.py +0 -0
  68. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/scene/component.py +0 -0
  69. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/scene/entity.py +0 -0
  70. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/scene/scene.py +0 -0
  71. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/scene/scene_graph.py +0 -0
  72. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/scene/scene_manager.py +0 -0
  73. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/ui/__init__.py +0 -0
  74. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/ui/button.py +0 -0
  75. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/ui/canvas.py +0 -0
  76. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/ui/text.py +0 -0
  77. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/utils/__init__.py +0 -0
  78. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/utils/logger.py +0 -0
  79. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/utils/math_utils.py +0 -0
  80. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/utils/object_pool.py +0 -0
  81. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether/utils/profiler.py +0 -0
  82. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether_engine.egg-info/SOURCES.txt +0 -0
  83. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether_engine.egg-info/dependency_links.txt +0 -0
  84. {aether_engine-1.0.2 → aether_engine-1.0.4}/aether_engine.egg-info/top_level.txt +0 -0
  85. {aether_engine-1.0.2 → aether_engine-1.0.4}/examples/01_hello_cube.py +0 -0
  86. {aether_engine-1.0.2 → aether_engine-1.0.4}/examples/02_sphere_scene.py +0 -0
  87. {aether_engine-1.0.2 → aether_engine-1.0.4}/pyproject.toml +0 -0
  88. {aether_engine-1.0.2 → aether_engine-1.0.4}/setup.cfg +0 -0
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.4
2
+ Name: aether-engine
3
+ Version: 1.0.4
4
+ Summary: Полноценный 3D игровой движок на Python с OpenGL
5
+ Home-page: https://pypi.org/project/aether-engine/
6
+ Author: entiti937
7
+ Classifier: Development Status :: 4 - Beta
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Programming Language :: Python :: 3.14
13
+ Requires-Python: >=3.10
14
+ Description-Content-Type: text/plain
15
+ License-File: LICENSE
16
+ Requires-Dist: numpy>=1.24
17
+ Requires-Dist: glfw>=2.6
18
+ Requires-Dist: PyOpenGL>=3.1.7
19
+ Requires-Dist: Pillow>=10.0
20
+ Provides-Extra: audio
21
+ Requires-Dist: pygame-ce>=2.5; extra == "audio"
22
+ Provides-Extra: physics
23
+ Requires-Dist: pymunk>=6.0; extra == "physics"
24
+ Provides-Extra: full
25
+ Requires-Dist: imageio>=2.31; extra == "full"
26
+ Requires-Dist: freetype-py>=2.4; extra == "full"
27
+ Requires-Dist: trimesh>=3.21; extra == "full"
28
+ Requires-Dist: pyyaml>=6.0; extra == "full"
29
+ Requires-Dist: pygame-ce>=2.5; extra == "full"
30
+ Requires-Dist: pymunk>=6.0; extra == "full"
31
+ Dynamic: author
32
+ Dynamic: classifier
33
+ Dynamic: description
34
+ Dynamic: description-content-type
35
+ Dynamic: home-page
36
+ Dynamic: license-file
37
+ Dynamic: provides-extra
38
+ Dynamic: requires-dist
39
+ Dynamic: requires-python
40
+ Dynamic: summary
41
+
42
+ AETHER ENGINE
43
+ ============
44
+
45
+ Полноценный 3D игровой движок на Python с OpenGL 4.6
46
+ Автор: entiti937 | Версия: 1.0.4 | Лицензия: MIT
47
+ PyPI: https://pypi.org/project/aether-engine/
48
+
49
+
50
+ УСТАНОВКА
51
+ --------
52
+
53
+ Базовая:
54
+ pip install aether-engine
55
+
56
+ С аудио:
57
+ pip install aether-engine[audio]
58
+
59
+ С физикой:
60
+ pip install aether-engine[physics]
61
+
62
+ Полная:
63
+ pip install aether-engine[full]
64
+
65
+
66
+ БЫСТРЫЙ СТАРТ
67
+ -------------
68
+
69
+ from aether.core.engine import Engine
70
+ from aether.scene.scene import Scene
71
+ from aether.scene.entity import Entity
72
+ from aether.scene.component import Transform, MeshRenderer
73
+ from aether.graphics.mesh_factory import MeshFactory
74
+ from aether.graphics.material import Material
75
+ from aether.graphics.camera import Camera
76
+
77
+ engine = Engine(width=800, height=600, title="Моя игра")
78
+ scene = Scene("MainScene")
79
+ camera = Camera(position=(0, 2, 8))
80
+ scene.set_main_camera(camera)
81
+
82
+ cube = Entity("Player")
83
+ cube.add_component(Transform(position=(0, 1, 0)))
84
+ cube.add_component(MeshRenderer(mesh=MeshFactory.create_cube(), material=Material()))
85
+ scene.spawn(cube)
86
+
87
+ engine.load_scene(scene)
88
+ engine.run()
89
+
90
+ Управление: WASD - движение, мышь - поворот, ESC - выход.
91
+
92
+
93
+ ВОЗМОЖНОСТИ
94
+ -----------
95
+
96
+ - PBR-рендеринг с HDR
97
+ - Система Entity-Component
98
+ - Физика (AABB, Sphere, Box, pymunk)
99
+ - Скелетная анимация
100
+ - Система частиц
101
+ - Террайн с LOD
102
+ - Вода с волнами и отражениями
103
+ - Небо и атмосфера
104
+ - Система окружения (погода, время суток, сезоны)
105
+ - AI (NavMesh, деревья поведения)
106
+ - Сетевой мультиплеер
107
+ - Steam API
108
+ - UI система
109
+ - Аудио система
110
+ - ImGui редактор
111
+ - Консоль разработчика
112
+ - Профилировщик
113
+
114
+
115
+ ЗАВИСИМОСТИ
116
+ -----------
117
+
118
+ Обязательные: numpy, glfw, PyOpenGL, Pillow
119
+ Аудио: pygame-ce (автоматически)
120
+ Физика: pymunk (автоматически)
121
+ Опционально: freetype-py, imgui-bundle, pyyaml, imageio, trimesh
122
+
123
+
124
+ ПРИМЕЧАНИЯ ПО ВЕРСИЯМ PYTHON
125
+ ----------------------------
126
+
127
+ Python 3.10-3.12: все пакеты доступны
128
+ Python 3.13+: pygame-ce вместо pygame
129
+ Python 3.14+: pymunk вместо PyBullet
130
+
131
+
132
+ СИСТЕМНЫЕ ТРЕБОВАНИЯ
133
+ --------------------
134
+
135
+ Python 3.10+
136
+ OpenGL 4.6
137
+ Windows 10+ / Linux / macOS
138
+
139
+
140
+ ИСТОРИЯ ВЕРСИЙ
141
+ --------------
142
+
143
+ 1.0.4 - Исправлен порядок аргументов Engine, убраны проблемные зависимости
144
+ 1.0.3 - Автоопределение pygame-ce/pymunk
145
+ 1.0.1 - Исправлен импорт Engine, документация
146
+ 1.0.0 - Первый публичный релиз
147
+
148
+
149
+ Автор: entiti937
@@ -0,0 +1,108 @@
1
+ AETHER ENGINE
2
+ ============
3
+
4
+ Полноценный 3D игровой движок на Python с OpenGL 4.6
5
+ Автор: entiti937 | Версия: 1.0.4 | Лицензия: MIT
6
+ PyPI: https://pypi.org/project/aether-engine/
7
+
8
+
9
+ УСТАНОВКА
10
+ --------
11
+
12
+ Базовая:
13
+ pip install aether-engine
14
+
15
+ С аудио:
16
+ pip install aether-engine[audio]
17
+
18
+ С физикой:
19
+ pip install aether-engine[physics]
20
+
21
+ Полная:
22
+ pip install aether-engine[full]
23
+
24
+
25
+ БЫСТРЫЙ СТАРТ
26
+ -------------
27
+
28
+ from aether.core.engine import Engine
29
+ from aether.scene.scene import Scene
30
+ from aether.scene.entity import Entity
31
+ from aether.scene.component import Transform, MeshRenderer
32
+ from aether.graphics.mesh_factory import MeshFactory
33
+ from aether.graphics.material import Material
34
+ from aether.graphics.camera import Camera
35
+
36
+ engine = Engine(width=800, height=600, title="Моя игра")
37
+ scene = Scene("MainScene")
38
+ camera = Camera(position=(0, 2, 8))
39
+ scene.set_main_camera(camera)
40
+
41
+ cube = Entity("Player")
42
+ cube.add_component(Transform(position=(0, 1, 0)))
43
+ cube.add_component(MeshRenderer(mesh=MeshFactory.create_cube(), material=Material()))
44
+ scene.spawn(cube)
45
+
46
+ engine.load_scene(scene)
47
+ engine.run()
48
+
49
+ Управление: WASD - движение, мышь - поворот, ESC - выход.
50
+
51
+
52
+ ВОЗМОЖНОСТИ
53
+ -----------
54
+
55
+ - PBR-рендеринг с HDR
56
+ - Система Entity-Component
57
+ - Физика (AABB, Sphere, Box, pymunk)
58
+ - Скелетная анимация
59
+ - Система частиц
60
+ - Террайн с LOD
61
+ - Вода с волнами и отражениями
62
+ - Небо и атмосфера
63
+ - Система окружения (погода, время суток, сезоны)
64
+ - AI (NavMesh, деревья поведения)
65
+ - Сетевой мультиплеер
66
+ - Steam API
67
+ - UI система
68
+ - Аудио система
69
+ - ImGui редактор
70
+ - Консоль разработчика
71
+ - Профилировщик
72
+
73
+
74
+ ЗАВИСИМОСТИ
75
+ -----------
76
+
77
+ Обязательные: numpy, glfw, PyOpenGL, Pillow
78
+ Аудио: pygame-ce (автоматически)
79
+ Физика: pymunk (автоматически)
80
+ Опционально: freetype-py, imgui-bundle, pyyaml, imageio, trimesh
81
+
82
+
83
+ ПРИМЕЧАНИЯ ПО ВЕРСИЯМ PYTHON
84
+ ----------------------------
85
+
86
+ Python 3.10-3.12: все пакеты доступны
87
+ Python 3.13+: pygame-ce вместо pygame
88
+ Python 3.14+: pymunk вместо PyBullet
89
+
90
+
91
+ СИСТЕМНЫЕ ТРЕБОВАНИЯ
92
+ --------------------
93
+
94
+ Python 3.10+
95
+ OpenGL 4.6
96
+ Windows 10+ / Linux / macOS
97
+
98
+
99
+ ИСТОРИЯ ВЕРСИЙ
100
+ --------------
101
+
102
+ 1.0.4 - Исправлен порядок аргументов Engine, убраны проблемные зависимости
103
+ 1.0.3 - Автоопределение pygame-ce/pymunk
104
+ 1.0.1 - Исправлен импорт Engine, документация
105
+ 1.0.0 - Первый публичный релиз
106
+
107
+
108
+ Автор: entiti937
@@ -33,10 +33,10 @@ class Engine:
33
33
  return cls._instance
34
34
 
35
35
  def __init__(self,
36
- config: Optional[EngineConfig] = None,
37
36
  width: int = 1920,
38
37
  height: int = 1080,
39
- title: str = "Aether Engine"):
38
+ title: str = "Aether Engine",
39
+ config: Optional[EngineConfig] = None):
40
40
 
41
41
  if hasattr(self, '_initialized'):
42
42
  return
@@ -49,7 +49,7 @@ class Engine:
49
49
  self.config.graphics.width = width
50
50
  self.config.graphics.height = height
51
51
 
52
- print(f"[Aether] Initializing Engine v1.0.0...")
52
+ print(f"[Aether] Initializing Engine v1.0.4...")
53
53
 
54
54
  self.window = Window(
55
55
  self.config.graphics.width,
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.4
2
+ Name: aether-engine
3
+ Version: 1.0.4
4
+ Summary: Полноценный 3D игровой движок на Python с OpenGL
5
+ Home-page: https://pypi.org/project/aether-engine/
6
+ Author: entiti937
7
+ Classifier: Development Status :: 4 - Beta
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Programming Language :: Python :: 3.14
13
+ Requires-Python: >=3.10
14
+ Description-Content-Type: text/plain
15
+ License-File: LICENSE
16
+ Requires-Dist: numpy>=1.24
17
+ Requires-Dist: glfw>=2.6
18
+ Requires-Dist: PyOpenGL>=3.1.7
19
+ Requires-Dist: Pillow>=10.0
20
+ Provides-Extra: audio
21
+ Requires-Dist: pygame-ce>=2.5; extra == "audio"
22
+ Provides-Extra: physics
23
+ Requires-Dist: pymunk>=6.0; extra == "physics"
24
+ Provides-Extra: full
25
+ Requires-Dist: imageio>=2.31; extra == "full"
26
+ Requires-Dist: freetype-py>=2.4; extra == "full"
27
+ Requires-Dist: trimesh>=3.21; extra == "full"
28
+ Requires-Dist: pyyaml>=6.0; extra == "full"
29
+ Requires-Dist: pygame-ce>=2.5; extra == "full"
30
+ Requires-Dist: pymunk>=6.0; extra == "full"
31
+ Dynamic: author
32
+ Dynamic: classifier
33
+ Dynamic: description
34
+ Dynamic: description-content-type
35
+ Dynamic: home-page
36
+ Dynamic: license-file
37
+ Dynamic: provides-extra
38
+ Dynamic: requires-dist
39
+ Dynamic: requires-python
40
+ Dynamic: summary
41
+
42
+ AETHER ENGINE
43
+ ============
44
+
45
+ Полноценный 3D игровой движок на Python с OpenGL 4.6
46
+ Автор: entiti937 | Версия: 1.0.4 | Лицензия: MIT
47
+ PyPI: https://pypi.org/project/aether-engine/
48
+
49
+
50
+ УСТАНОВКА
51
+ --------
52
+
53
+ Базовая:
54
+ pip install aether-engine
55
+
56
+ С аудио:
57
+ pip install aether-engine[audio]
58
+
59
+ С физикой:
60
+ pip install aether-engine[physics]
61
+
62
+ Полная:
63
+ pip install aether-engine[full]
64
+
65
+
66
+ БЫСТРЫЙ СТАРТ
67
+ -------------
68
+
69
+ from aether.core.engine import Engine
70
+ from aether.scene.scene import Scene
71
+ from aether.scene.entity import Entity
72
+ from aether.scene.component import Transform, MeshRenderer
73
+ from aether.graphics.mesh_factory import MeshFactory
74
+ from aether.graphics.material import Material
75
+ from aether.graphics.camera import Camera
76
+
77
+ engine = Engine(width=800, height=600, title="Моя игра")
78
+ scene = Scene("MainScene")
79
+ camera = Camera(position=(0, 2, 8))
80
+ scene.set_main_camera(camera)
81
+
82
+ cube = Entity("Player")
83
+ cube.add_component(Transform(position=(0, 1, 0)))
84
+ cube.add_component(MeshRenderer(mesh=MeshFactory.create_cube(), material=Material()))
85
+ scene.spawn(cube)
86
+
87
+ engine.load_scene(scene)
88
+ engine.run()
89
+
90
+ Управление: WASD - движение, мышь - поворот, ESC - выход.
91
+
92
+
93
+ ВОЗМОЖНОСТИ
94
+ -----------
95
+
96
+ - PBR-рендеринг с HDR
97
+ - Система Entity-Component
98
+ - Физика (AABB, Sphere, Box, pymunk)
99
+ - Скелетная анимация
100
+ - Система частиц
101
+ - Террайн с LOD
102
+ - Вода с волнами и отражениями
103
+ - Небо и атмосфера
104
+ - Система окружения (погода, время суток, сезоны)
105
+ - AI (NavMesh, деревья поведения)
106
+ - Сетевой мультиплеер
107
+ - Steam API
108
+ - UI система
109
+ - Аудио система
110
+ - ImGui редактор
111
+ - Консоль разработчика
112
+ - Профилировщик
113
+
114
+
115
+ ЗАВИСИМОСТИ
116
+ -----------
117
+
118
+ Обязательные: numpy, glfw, PyOpenGL, Pillow
119
+ Аудио: pygame-ce (автоматически)
120
+ Физика: pymunk (автоматически)
121
+ Опционально: freetype-py, imgui-bundle, pyyaml, imageio, trimesh
122
+
123
+
124
+ ПРИМЕЧАНИЯ ПО ВЕРСИЯМ PYTHON
125
+ ----------------------------
126
+
127
+ Python 3.10-3.12: все пакеты доступны
128
+ Python 3.13+: pygame-ce вместо pygame
129
+ Python 3.14+: pymunk вместо PyBullet
130
+
131
+
132
+ СИСТЕМНЫЕ ТРЕБОВАНИЯ
133
+ --------------------
134
+
135
+ Python 3.10+
136
+ OpenGL 4.6
137
+ Windows 10+ / Linux / macOS
138
+
139
+
140
+ ИСТОРИЯ ВЕРСИЙ
141
+ --------------
142
+
143
+ 1.0.4 - Исправлен порядок аргументов Engine, убраны проблемные зависимости
144
+ 1.0.3 - Автоопределение pygame-ce/pymunk
145
+ 1.0.1 - Исправлен импорт Engine, документация
146
+ 1.0.0 - Первый публичный релиз
147
+
148
+
149
+ Автор: entiti937
@@ -4,20 +4,15 @@ PyOpenGL>=3.1.7
4
4
  Pillow>=10.0
5
5
 
6
6
  [audio]
7
- pygame>=2.5
7
+ pygame-ce>=2.5
8
8
 
9
9
  [full]
10
- trimesh>=3.21
11
- imgui-bundle>=1.0
12
- noise>=1.2
13
- pymunk>=6.0
14
- pyyaml>=6.0
15
10
  imageio>=2.31
16
- pygame>=2.5
17
11
  freetype-py>=2.4
18
-
19
- [imgui]
20
- imgui-bundle>=1.0
12
+ trimesh>=3.21
13
+ pyyaml>=6.0
14
+ pygame-ce>=2.5
15
+ pymunk>=6.0
21
16
 
22
17
  [physics]
23
18
  pymunk>=6.0
@@ -0,0 +1,76 @@
1
+ """Aether Engine - 3D Game Engine"""
2
+ from setuptools import setup, find_packages
3
+ import sys
4
+ import subprocess
5
+ import importlib.util
6
+
7
+ with open("README.md", "r", encoding="utf-8") as f:
8
+ long_description = f.read()
9
+
10
+ python_version = sys.version_info
11
+
12
+ def is_installed(package_name):
13
+ name = package_name.split(">=")[0].split("[")[0].replace("-", "_")
14
+ return importlib.util.find_spec(name) is not None
15
+
16
+ install_requires = [
17
+ "numpy>=1.24",
18
+ "glfw>=2.6",
19
+ "PyOpenGL>=3.1.7",
20
+ "Pillow>=10.0",
21
+ ]
22
+
23
+ print(f"Python {python_version.major}.{python_version.minor} detected")
24
+ print("Checking available packages...")
25
+
26
+ audio_requires = ["pygame-ce>=2.5"]
27
+ print(" audio: pygame-ce")
28
+
29
+ physics_requires = ["pymunk>=6.0"]
30
+ print(" physics: pymunk")
31
+
32
+ imgui_requires = []
33
+ if is_installed("imgui_bundle"):
34
+ print(" imgui-bundle: already installed (skipping imgui dependency)")
35
+ else:
36
+ print(" imgui: not required (install imgui-bundle manually if needed)")
37
+
38
+ full_requires = audio_requires + physics_requires + [
39
+ "freetype-py>=2.4",
40
+ "pyyaml>=6.0",
41
+ "imageio>=2.31",
42
+ "trimesh>=3.21",
43
+ ]
44
+
45
+ full_requires = list(set(full_requires))
46
+
47
+ extras_require = {
48
+ "audio": audio_requires,
49
+ "physics": physics_requires,
50
+ "full": full_requires,
51
+ }
52
+
53
+ print(f"Audio: {audio_requires}")
54
+ print(f"Physics: {physics_requires}")
55
+
56
+ setup(
57
+ name="aether-engine",
58
+ version="1.0.4",
59
+ author="entiti937",
60
+ description="Полноценный 3D игровой движок на Python с OpenGL",
61
+ long_description=long_description,
62
+ long_description_content_type="text/plain",
63
+ url="https://pypi.org/project/aether-engine/",
64
+ packages=find_packages(),
65
+ install_requires=install_requires,
66
+ extras_require=extras_require,
67
+ python_requires=">=3.10",
68
+ classifiers=[
69
+ "Development Status :: 4 - Beta",
70
+ "Programming Language :: Python :: 3.10",
71
+ "Programming Language :: Python :: 3.11",
72
+ "Programming Language :: Python :: 3.12",
73
+ "Programming Language :: Python :: 3.13",
74
+ "Programming Language :: Python :: 3.14",
75
+ ],
76
+ )