-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
71 lines (58 loc) · 2.67 KB
/
README
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
libhellstorm
============
C++ game framework for iOS (in future possibly Mac/Win/Linux/Android). Features a component based entity system.
Copyright
=========
(C) 2011 by Leon Szpilewski (http://nntp.pl)
CocosDenshion, Particle System (C) by their respective authors
This code comes with no warranty!
License (where not stated differently)
======================================
License (framework): LGPL
License (example game): GPL
License (art assets): proprietary
Features
========
- Over engineered C++ code base.
- Component based entity system
- Scene stack management
- 2D rendering through OpenGL ES 1.1 (compatibility header for OpenGL included)
- Sprites, Atlas Sprites
- Particles
- Simple UI system
- Bitmap fonts (Angelcode and Hiero FNT compatible)
- Sound output through CocosDenshion (will be replaced by pure OpenAL in the future)
- Input abstraction for touches (mouse, other devices planned)
- Particle system (based on 71squared particle designer, http://particledesigner.71squared.com/). Will be reimplemented in C++ in the future.
- UI System (supports only buttons and labels ATM)
Sample Game Features
=================
- Complete iPhone game which was submitted to the app store (http://itunes.apple.com/us/app/texxno-pilzzz/id427962932?mt=8)
- Features Game Center integration for hiscores
- Dr Mario clone
How To use
==========
Examine the example game (dr mario clone). Docs to be done yet. Sorry :)
Where to start with the game?
-----------------------------
You start in hellstormViewController.mm in line 137. After that your scene will be updated every frame.
So the game itself starts in startup_scene.cpp in init(). Each frame update() is called.
After the startup is done, a menu_scene is activated. Look into menu_scene.cpp
The game itself is handled in game_scene.cpp (take a look into the subsystems for game logic, etc)
To see how entities are created take a look into game_factory.cpp
How to create a new project?
----------------------------
Create a new iOS OpenGL app. Call hs_game_init(scene) after you set up everything. Call hs_game_tick() and hs_game_render() in your drawFrame/update/render method.
Take a look into hellstormAppDelegate.h/mm, EAGLView.h/mm, hellstormViewController.h/mm to see how setup, input passing, etc. is done. Reuse those files - they are fairly general and should stay the same for every game.
Take a look into hs_wrapper.h/cpp to get a idea what you need to call to make the game work.
Todo
====
- Documentation
- Audio system rewrite
- Particle system rewrite
- UI system extension
- Ports for OS X, Windows, Linux. (Either with SDL or SFML)
Contact
=======
You can contact me by email leon.szpilewski at gmail dot com
http://jsz.github.com