-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathNotes
997 lines (811 loc) · 37.9 KB
/
Notes
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
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
+--------------------------+
| Todo |
+--------------------------+
Remember: Try to keep things as scriptable as possible. /Everything/ must be scriptable!
New
---
- Make more levels.
- Make more brush textures.
Bugs
----
- Have Key, Switch colors be unchanged in Dimension 2.
- Make Pad objects use convex cast for Player detection
- Teleporter
- JumpPad
- Trap
- FallingBrush
- Switch
- Controller win/lose level timers some times fail.
- Fix shadows (disable-enable causes far-away PSSM levels to fail)
+---------------------------+
| ChangeLog |
+---------------------------+
Tue Apr 28 22:37:30 AST 2009
----------------------------
- Added MyGUI initialisation.
- Added NGF subsystems initialisation.
- Decided on header file include policy.
- Added 'GraLL2GameObject' base.
- Tested Python scripting.
- Exposed GraLL2GameObject physics functionality to Python.
Thu Apr 30 14:14:03 AST 2009
----------------------------
- Added a 'DimensionManager' to manage dimensions.
- Added loading of dimension information from properties, and dimension-specific functionality (make invisible,
collide only with objects from own dimension) required by all GameObjects to GraLL2GameObject.
- Finished the final Player model.
- Cleaned up GraLL2GameObject code.
Sat May 1 11:22:52 AST 2009
----------------------------
- Cleaned up some code.
- Added GraLL 2 to GitHub, as 'grall2'.
Sun May 3 17:31:17 AST 2009
----------------------------
- Converted GraLL2GameObject into it's truly generic base version.
- Began work on the Player GameObject.
- Fixed some problems in GraLL2GameObject now that it has a child to be tested with.
Mon May 4 22:04:36 PDT 2009
----------------------------
- Added StaticBrush GameObject (on the laptop, had power problems on desktop! git FTW!).
Wed May 6 17:30:01 AST 2009
----------------------------
- Added Python event calling to Player, StaticBrush (back on desktop).
Thu May 7 22:40:44 AST 2009
----------------------------
- Added Python console window.
Fri May 8 15:19:59 AST 2009
----------------------------
- Made Console EditBox autofocus.
- Added a few level geometry textures (tiles, metal etc.).
- Made a test level using Blender.
- Exported the level and loaded it up in the game. It works! :-)
- Added simple shadowing.
Sun May 10 22:15:17 AST 2009
----------------------------
- Added some walls in different dimensions in the test level just to check it out, it works as expected.
- Added a 'Light' GameObjects to be able to edit lighting in Blender with the same interface as all other
objects. It works, but there are problems in the lighting itself because the level geometry mesh is bad.
Will fix soon.
Mon May 11 19:07:39 AST 2009
----------------------------
- Added a shader system. Brushes are automatically assigned a material from a manually written material
set that uses shaders. Tested with some shaders, but now a proper shader (Cg or GLSL) is needed to
handle per-pixel lighting, and offset mapping.
Tue May 12 21:43:26 AST 2009
----------------------------
- Started work on the CameraHandler.
Wed May 13 22:50:57 AST 2009
----------------------------
- Finished work on CameraHandler. Now handles third person fully.
- Player physics and controls mostly done.
- Per-pixel lighting added.
Thu May 14 16:44:20 AST 2009
----------------------------
- Fixed the serialisation of CameraHandler. Saving/load works perfectly for all features added till date.
Fri May 15 17:25:33 AST 2009
----------------------------
- CameraHandler is now a single global object instead of multiple instances, and so management of the Camera
is much simpler now. If a new CameraHandler is created, the previous one is destroyed. Now, for example,
getting a third-person view of an object is just a matter of 'MSG_SETTARGET' and 'MSG_SETSTATE' on the
global instance.
- Added a Player and CameraHandler Python interface.
- Made a test cutscene using just scripting, it's cool. :-)
Sun May 17 21:24:34 AST 2009
----------------------------
- Added left/right peeping to CameraHandler.
- Started work on Player opposite dimension checking before switch.
Tue May 19 22:45:35 AST 2009
----------------------------
- Added dimension 2 compositor effect.
- Fixed Player serialisation error that left out one of the members.
Thu May 21 17:20:58 AST 2009
----------------------------
- Added linear interpolating (scriptable) rotation to CameraHandler.
- Modified cutscene to try the lerp rotations.
Fri May 22 21:28:02 AST 2009
----------------------------
- Nearly fixed Player dimension-checking. Now only 'inside-trimesh' checking left.
- Added ability to change view height.
Sat May 23 22:51:59 AST 2009
----------------------------
- Python-scriptable 'Alarm' system added, serialiseable too. Good for a Saturday (have test on Sundays). :-)
Sun May 24 22:40:58 AST 2009
----------------------------
- 'Point' GameObject added for visual location-specification in Blender. Also can be moved using script etc.
- Spline camera tracking added to CameraHandler.
Mon May 25 18:23:48 AST 2009
----------------------------
- Added serialisation of spline in CameraHandler.
- Added 'Trigger' GameObject that can be used for scripted events. Actual physical simulation of collision
and dimension check avoided.
Tue May 26 22:17:15 AST 2009
----------------------------
- Radian/Degree Python types serialisation added (to NGF).
Thu May 28 20:32:26 AST 2009
----------------------------
- Added generic 'RigidBody' object for prop RigidBodies.
Fri May 29 22:11:04 AST 2009
----------------------------
- Added 'MovingBrush' for moving brushes, such as lifts, moving platforms etc. Highly scriptable, as seen
in demo.
Sun May 31 18:17:56 AST 2009
----------------------------
- Added serialisation for MovingBrush path points.
Mon Jun 1 22:57:21 AST 2009
----------------------------
- 'Director' GameObject added for moving object guidance.
Tue Jun 2 20:09:10 AST 2009
----------------------------
- Made Director direction scriptable.
Wed Jun 3 20:38:49 AST 2009
----------------------------
- Normal mapping fixed. Looking beautiful. Yay! :-)
Thu Jun 4 20:37:25 AST 2009
----------------------------
- Parallax mapping added, and heightmap textures added for existing textures.
- Added high-res screenshot taker.
Fri Jun 5 23:12:22 AST 2009
----------------------------
- Tried SSAO. Worked, but not a good effect, ditched.
- Learnt about shadow mapping.
- Addded 'Crate' GameObject.
Sun Jun 7 21:48:12 AST 2009
----------------------------
- Added Crate kinematic dynamics (Sokoban-style push). Puzzles not possible otherwise.
Mon Jun 8 22:19:10 AST 2009
----------------------------
- Completed Crate dynamics. Now affected by gravity, but still kinematic.
Tue Jun 9 16:58:45 AST 2009
----------------------------
- Reworked lighting shaders. Now works multipass to allow more lights and shadowing.
- Added spotlight.
- Began integrating nullsquared's soft shadow code.
Wed Jun 10 20:50:52 AST 2009
----------------------------
- Crate now Python-friendly.
- MovingBrush now can be freed from being directed through script, and scripts can listen for 'director-touched' events.
Thu Jun 11 23:32:16 AST 2009
----------------------------
- Made way for GraLL2 Python library.
- Added Player death.
Fri Jun 12 16:06:44 AST 2009
----------------------------
- Added 'MessageBox' GameObject, which shows message in white text at the bottom of the screen, on a transperent
slightly dark rectangle. Also can be controlled from Python.
- Tested MessageBox with Trigger (useful for help messages, for example).
Sun Jun 14 21:37:54 AST 2009
----------------------------
- Completed Bomb textures.
- Added 'Bomb' GameObject. Dangerous, don't touch. :P
- Made more Crate materials. Each Crate is assigned a random material out of these.
Mon Jun 15 22:56:57 AST 2009
----------------------------
- Fixed NGF bug that made duplicate ID numbers when new GameObjects were created after deserialising previous ones.
- Added 'ParticleEffect' GameObject for... Well... Particle effects. :-)
- Added explosion for when Player touches Bomb. Has lights too.
Tue Jun 16 22:39:11 AST 2009
----------------------------
- Cleaned up materials a bit.
- Added Ice.
Wed Jun 17 22:18:21 AST 2009
----------------------------
- Made Ice look kinda semitransparent.
Fri Jun 19 17:54:32 AST 2009
----------------------------
- Added 'SlidingBrush' GameObject, which moves on a path when in 'forward' mode, and moves back along the path, from
wherever it's at, in 'backward' mode. Highly scriptable. Coupled with MovingBrush and scripting allows for versatile
obstacles and puzzles.
Sun Jun 21 23:04:15 AST 2009
----------------------------
- Made MovingPlatform do Director-check in unpausedTick event instead of collide. Makes smoother movement.
Mon Jun 22 22:38:47 AST 2009
----------------------------
- Exposed more stuff to Python (Dimension switching, World switching)
- Added 'Fader', which handles screen 'fade-in's and 'fade-out's
- Player death now makes World restart.
- Restart after Player death involves fade-in and fade-out of screen.
Tue Jun 23 23:26:57 AST 2009
----------------------------
- Added 'Level' system, which automatically loads game if saved.
- Added ability to automatically detect levels and load them.
Wed Jun 24 22:44:10 AST 2009
----------------------------
- Added 'Checkpoint' GameObject for saving games mid-level.
Thu Jun 25 23:49:43 AST 2009
----------------------------
- Third person camera now fully mouse-controlled. Can look up, down etc.
- 'Settings' added to globals to make setting and retreiving settings easier.
Fri Jun 26 20:32:17 AST 2009
----------------------------
- Created Checkpoint textures.
- Exposed few more properties as settings.
- Reintroduced camera peeping in third person.
- Settings saved and loaded from text file.
Sun Jun 28 23:11:45 AST 2009
----------------------------
- Exposed Ogre graphics settings. 'plugins.cfg', and 'config.cfg' are no more, it's only usr/Settings.ini now!
Mon Jun 29 20:19:29 AST 2009
----------------------------
- Added a few more brush textures.
- Modified Checkpoint mesh for smoother pass-through.
- Created a new test level, and a 'Template Level'.
Tue Jun 30 22:39:22 AST 2009
----------------------------
- Added lots more textures.
Wed Jul 1 22:12:55 AST 2009
----------------------------
- Added even more textures.
Thu Jul 2 23:31:29 AST 2009
----------------------------
- Added more brush textures.
- Begain sound system integration.
Sun Jul 5 23:00:03 AST 2009
----------------------------
- Fixed sound problems.
- Added MusicManager, to manage the playing, volume etc. of music.
- MusicManager exposed to Python.
Mon Jul 6 18:59:18 AST 2009
----------------------------
- Added MovingBomb.
- Random bug fixes.
Tue Jul 7 23:09:59 AST 2009
----------------------------
- Added ability to specify physical shape for 'RigidBody' as a property.
Wed Jul 8 23:53:28 AST 2009
----------------------------
- Added generic 'Switch' GameObject. It's on when Player's on it, off when not. It has a 'p_enabled' Python property,
and calls 'on' and 'off' Python events, allowing great scriptability. Also has a 'built-in' SlidingBrush informer,
so it can tell a SlidingBrush whether to move forward or back.
Thu Jul 10 22:57:23 AST 2009
----------------------------
- Fixed a few bugs in GameObject serialisation.
- Added 'once' Switches.
- Made Switch save name of SlidingBrush targetted instead of pointer because there's a chance that the SlidingBrush
comes after the Switch in the deserialisation list.
- Added 'VideoRecorder' for video recording.
- Recorded and uploaded a new preview video to Vimeo.
(exams, so infrequent)
Thu Jul 16 01:57:04 AST 2009
----------------------------
- Added lights to Checkpoint.
Fri Jul 17 21:55:08 AST 2009
----------------------------
- Delayed-world-switch (to prevent GameObject-suicide) now has a function interface, with 'previousWorld', 'nextWorld'
etc.
(exams end)
Tue Jul 21 20:09:35 AST 2009
----------------------------
- Added 'glow' effects. Works by blurring a 'glow buffer' and then adding it to the original scene render. Objects
can have 'glow-maps' to specify region, colour, brightness, size etc. of the glow.
Wed Jul 22 23:25:11 AST 2009
----------------------------
- Fixed GmaeObject pointer serialisation in NGF and reverted all 'name' based approaches to pointer.
- Allowed 'persistent' GameObjects in NGF for ownership flexibility.
- Added 'floor light' texture with glow.
Thu Jul 23 13:48:33 AST 2009
----------------------------
- Added fallback materials for old hardware.
- Added 'Controller' GameObject.
- Dimension now saved through Controller - way cleaner method than before.
- Saving game now saves music too.
- Added new Switch texture.
Fri Jul 24 11:55:21 AST 2009
----------------------------
- MaterialManager::Listener for 'non-glowing' objects.
Sat Jul 25 16:22:08 AST 2009
----------------------------
- Allowed Switches to have different 'types', 'Toggle', 'Press', 'Once'.
- Added 'Teleporter' GameObject.
Mon Jul 27 23:44:47 AST 2009
----------------------------
- Changed Teleporter offsetting.
(left for India on vacation, will return on September 4th, till then, working on it in India (slowly) )
Thu Aug 6 23:28:43 IST 2009
----------------------------
- Fixed persistent object destroyAll bug.
- Fixed a few serialisation bugs involving MusicManager assuming there's always some music playing (and so
using null-pointers).
Sat Aug 8 14:11:49 IST 2009
----------------------------
- Player dimension-check now uses Bullet 'ghost objects' instead. Hopefully soon it'll be completely fixed.
- Added 'lighting' option in Settings to enable or disable lighting (laptop isn't very powerful, and will work
with lighting disabled).
Sun Aug 9 21:57:16 IST 2009
----------------------------
- Numerous bugfixes relating to MovingBrush and StaticBrush collision checks.
- Dimension setting in GraLL2GameObject now makes sure that other flags aren't disturbed.
- Added change-direction-but-not-velocity Directors.
Mon Aug 10 21:29:22 IST 2009
----------------------------
- Fixed Player dimension test, for all objects, convex as well as trimesh. :-) It's been tested well, but
will probably still need more testing. For now it's labelled as 'done', but if in future there's a problem,
it'll have to be fixed.
Tue Aug 11 23:54:10 IST 2009
----------------------------
- CameraHandler now places Camera in front of any obstructions for a better view in third-person mode.
- Whether or not camera obstruction is handled is now exposed as a setting.
Thu Aug 13 23:55:48 IST 2009
----------------------------
- MainMenu added.
- LevelSelect dialog added.
- Made various changes to the save and level system.
- Added 'user record' system to save scores, highest level reached, etc.
- LevelSelect dialog now can be used to select level, display score etc., remove checkpoints, play selected level.
Sat Aug 15 16:57:07 IST 2009
----------------------------
- Score system added (no display of bonus time on screen yet though :P ).
- Losses are counted on a per-level basis.
- 'record' database, stores level stats on a per-level basis, can be saved/loaded (serialisation).
Sun Aug 16 11:22:13 IST 2009
----------------------------
- Added Credits dialog. Click on 'Credits' in the Main Menu to see it.
Mon Aug 17 23:24:31 IST 2009
----------------------------
- Made logo.
- Added background to Main Menu.
Fri Aug 21 23:30:48 IST 2009
----------------------------
- Made new test level.
- Added 'keys' map to store control keys.
- Controls can now be changed from Python.
- Added Options dialog. For now you can change controls through it.
Sun Aug 23 18:42:20 IST 2009
----------------------------
- Added more options to... Options dialog. :P
- Made save-check and save-delete rely on level records instead.
- Now 'New Game' makes removes all checkpoints too (because default record 'checkpoint' field is false).
Tue Aug 25 15:54:16 IST 2009
----------------------------
- Added graphics options to Options dialog.
- Screen resolution and fullscreen can be set.
- Added lighting and renderer settings too.
(busy with vacation stuff)
Wed Sep 9 16:15:23 AST 2009
----------------------------
- Level select dialog now automatically selects highest level.
- Fixed Crate dynamics. Crates are now grid-aligned, while also keeping Y axis dynamics.
Thu Sep 10 20:00:39 AST 2009
----------------------------
- Added generic 'Door' prefab. The Door has 'repeat' and 'autoClose' options, and a generic condition, which is a string
of Python code that evaluates to a True or False value, run in the scope of the 'collide' function. Thus, each Door
can have a unique condition ('does hey have the key?', 'is he moving fast?', or even, 'is this music track playing?').
- Fixed some more Crate bugs.
Fri Sep 11 21:21:20 AST 2009
----------------------------
- Added Green Bombs (the Crate-sensitive bombs from the original GraLL). Good for fun Crate puzzles. :-)
- Made few changes to Explosion effect.
- Put 'Utils' in their own namespace to keep the global namespace clearer and avoid conflicts.
Sat Sep 12 17:32:00 AST 2009
----------------------------
- Added ability to retrieve object handles in Python console using mousepicking.
- Added Console 'history' (like that in bash).
- Made Crate use cuboid with bevelled bottom to allow them to slide onto Switches.
- Now Crates create an explosion too on GreenBomb encounters.
- Added Python docstrings to both GraLL2 and NGF modules.
Sun Sep 13 14:15:02 AST 2009
----------------------------
- Added 'data prefix'. Made both 'user prefix' and 'data prefix' use compile-time concatenation.
- Made visibility checks rely on 'INVISIBLE' flag, instead of assuming that 'NO_CONTACT_RESPONSE' is invisible.
- Added generic 'Pickup' objects. A Pickup has a string 'type', and the Player has a count of the Pickups he has of each
type. The numbers of Pickups of each type can be examined and modified in Python, opening up great possibilities for
scripting.
- Bug in Door prefab fixed to allow condition testing only on open, and not during move (otherwise poor Player loses all
his hard-earned keys :-( ).
- Made GraLL 2 specific version of NGF Blender exporter which saves dimension information based on Blender 'layers'.
Makes doing dimension stuff much easier and more convenient in levels.
- An attempt to call inexistent PythonGameObject methods now show an error message (instead of silently ignoring).
Mon Sep 14 19:50:25 AST 2009
----------------------------
- Made object clicker show mouse cursor when clicking.
- Revamped Physics flags system. Now it makes more sense, GameObjects
can be parts of 'flag families' (no crate check, no dimension check) etc.
- Fixed a few bugs in the GraLL 2 modified Blender NGF Exporter.
Tue Sep 15 01:02:00 AST 2009
----------------------------
- Fixed GraLL2GameObject Python physics-related 'get' methods to return Ogre-type values for Python compatibility.
- Exposed 'explode' methods of Bomb, MovingBomb and CameraHandler to Python.
- Bomb 'setGreen' method exposed to Python.
- Modified the win/lose animation (although 'win' doesn't have the camera part yet) to make it more decentralised. Now
it's better managed.
Thu Sep 16 16:49:14 AST 2009
----------------------------
- Added 'level text', which displays the level number and caption at start of the level (or whenever scripted).
- Added a glass texture.
- Fixed transparency issues.
Thu Sep 17 14:27:59 AST 2009
----------------------------
- Improved MovingBomb and MovingBrush Director hit detection.
- Fixed bug that didn't allow glowing objects to glow through glass.
- Added 'Turret' GameObject. The Turret alternates between periods of rest and shooting. The switching between these
periods is animated.
- Added 'Bullet' GameObject.
Fri Sep 18 19:39:18 AST 2009
----------------------------
- Cleaned up Physics flag groups.
- Fixed many Turret-related bugs.
- Added more Turret features: 'scan', 'initTime', 'alwaysScan' etc.
- Made Bullet texture fade out at ends for motion-blur effect.
- Added Turret texture.
- Added radius check to Turret.
Sat Sep 19 20:13:48 AST 2009
----------------------------
- Made more test levels.
- Fixed a few Crate bugs.
- Moved global level logic to Controller, to keep the level independent.
Sun Sep 20 01:50:31 AST 2009
----------------------------
- Added Turret enable/disable functionality.
- Fixed Teleporter bug. The Teleporter tried to retreive a pointer to the target point in it's constructor, which would
cause problems if the point was created after the Teleporter. This has now been moved to the 'postLoad' event instead.
- Recorded new video, with voice, and made new level as a result.
Mon Sep 21 16:45:12 AST 2009
----------------------------
- Allowed glowing materials to have per-material glow 'amount'.
Fri Sep 25 14:54:48 AST 2009
----------------------------
- Built and tested dependencies on Windows.
- Built and tested GraLL 2 on Windows.
- Added Windows 'premake-windows.lua' file for Windows building.
Sat Sep 26 21:18:09 AST 2009
----------------------------
- Made generic 'premake.lua' that works for both Windows and Linux.
- Fixed 'Fallback' technique transparency.
Sun Sep 27 14:53:30 AST 2009
----------------------------
- Moved to 'streaming' music load.
- Added loading of resources from 'user' directory to allow user-made content. The 'Content' subdirectory is searched
for user-made content, recursively. The user is free to organise his files any way he wants.
- User can now play 'user levels' (loaded from 'Content' directory). A GUI prompt allows choosing user levels.
- Added test 'user level'.
Mon Sep 28 13:11:02 AST 2009
----------------------------
- User level selection dialog has now been moved to Main Menu to make things cleaner.
- Made .blend file external data paths relative (textures).
Tue Sep 29 21:22:45 AST 2009
----------------------------
- Added a material editor/viewer that allows users to make their own materials and view them in game. The editor can
also save the .material file, which allows the user to then use this material in his own levels.
Wed Sep 30 16:06:10 AST 2009
----------------------------
- Levels no longer need .material files, just .ngf and .mesh files. Material names are simply read from SubMesh material
references. The image name is retreived from the name (Blender TEXFACE), and 'Brushes/<name>' material is assigned.
Thu Oct 1 20:49:14 AST 2009
----------------------------
- Added more properties to MovingBrush, MovingBomb.
- Added more documentation to the Wiki.
Fri Oct 2 23:56:31 AST 2009
----------------------------
- Added a 'canSwitchDimension' property to Player.
- Added Pickup bounce and spin.
Sat Oct 3 17:26:08 AST 2009
----------------------------
- Added a 'KeyY' prefab, like the gold keys from the original GraLL. They keep a count of how many total 'KeyY's were
created, so that you can do a 'other.numPickup("KeyY") == GraLL2.controller.m_numKeyY' test to do the usual
'did he get all the yellow keys' test.
- Player bugfix. Player didn't serialise his 'mPickups' map.
Sun Oct 4 20:46:38 AST 2009
----------------------------
- Level 'first frame spike' bugfix.
- 'Slideshow' added. Plays a slideshow (good for storytelling, for example), each slide can have it's own time.
Completely Python scriptable, and attachable to any event.
Tue Oct 6 21:38:41 AST 2009
----------------------------
- Added scriptable 'Empty' object. Basically, an object type that's empty in it's 'native C++' form, but very scriptable,
to allow 'from scratch Python objects', and fun level scripts.
Wed Oct 7 22:15:19 AST 2009
----------------------------
- Completed physics body and graphics mesh creation, material assignment for 'Empty' GameObject.
- Modified 'Empty' GameObject physics body creation to rely on enums instead of strings for performance.
- Fixed 'Empty' serialisation problems.
- Fixed 'SlidingBrush' bug related to 'point' event being called every frame while waiting on a point.
- Allowed use of bytcode-compiled Python 'code objects' for scripts for performance benifits (especially 'script in
script' objects).
Sat Oct 10 18:36:23 AST 2009
----------------------------
- Added FallingBrush. Falls off after a short interval after the Player touches it.
- Default shader now makes objects fade as they hit the minY.
- Allowed Player to 'leave a corpse' when he dies.
Sun Oct 11 20:25:18 AST 2009
----------------------------
- Can run '.py', '.pyc', '.pyo' files for object scripts. Good for Prefabs (all instances of which have the same code).
- Added slight angular velocity to FallingBrushes when they fall for a cool 'rotating falling block' effect.
Mon Oct 12 22:27:55 AST 2009
----------------------------
- Added 'Trap' Prefab, similar to the 'Trap' from the original GraLL.
- Make 'Bomb' NO_CONTACT_RESPONSE, to avoid Player flying away when it's created in his position. :P
Tue Oct 13 18:21:14 AST 2009
----------------------------
- Added 'above/below' check to Trap and FallingBrush.
- Fixed bug in Empty which caused weird physics problems due to uninitialised properties such as 'friction', 'mass' etc.
- Added 'EndPoint' prefab, which marks the end of the level.
Wed Oct 14 20:34:12 AST 2009
----------------------------
- Added an 'NGF_PY_PARAMS' macro to ease writing Python methods.
- Added 'Acid' prefab, simlar to the Acid from the original GraLL.
- Made Acid a brush type.
- Added editor icons for EndPoint and Acid.
Thu Oct 15 17:58:29 AST 2009
----------------------------
- CameraHandler rotation direction is now random.
Fri Oct 16 11:17:37 AST 2009
----------------------------
- Added ability to change fade colour to Fader.
- Fixed Teleporter bug that assumed Player existed after a Teleport trigger.
Sat Oct 17 19:56:18 AST 2009
----------------------------
- Created Level 1 ('Awakening'), with an opening 'custcene' involving the camera rotating around GraLL, GraLL 2 'waking up',
and blasting through the glass.
- Added CameraHandler relative-timed spline keyframe creation.
- Added 'setVisible' to GraLL2GameObject base.
- Added named enumerations for CameraHandler modes to Python binding.
- Added direct access to current CameraHandler from 'GraLL2.cameraHandler' in Python.
Sun Oct 18 00:14:49 AST 2009
----------------------------
- Added 'saveCheckpoint' and 'loadCheckpoint' to Utils (also in Python) to encapsulate checkpoint-handling.
- Added help messages to Level 1.
- Completed Level 1.
- Fixed Teleporter bug involving dereferencing null Player pointer (yes, again).
Tue Oct 20 23:17:07 AST 2009
----------------------------
- Seperated Trap, Teleporter, Switch and FallingFloor textures.
Wed Oct 21 21:34:10 AST 2009
----------------------------
- Created new Switch textures.
Fri Oct 23 14:56:56 AST 2009
----------------------------
- Added Trap texture.
- Added FallingFloor texture.
Mon Oct 26 12:38:34 AST 2009
----------------------------
- Added 'OneWay' GameObject.
- Created textures for OneWay.
- Moved all loop stuff into loop() in Game, no more Ogre FrameListeners, more 'under control'.
- Fixed MessageBox bug dereferencing null pointer.
Tue Oct 27 18:11:56 AST 2009
----------------------------
- Removed unnecessary OptionsDialog updates when OptionsDialog is invisible.
- Created a new texture for the Teleporter.
Wed Oct 28 21:25:05 AST 2009
----------------------------
- Added 'Magnet' GameObject type. Affects Player, in both 'attraction' and 'repulsion' modes.
- Added 'magnetic' property to RigidBody to allow magnetic (attracted, repelled by magnet) bodies.
Thu Oct 29 23:57:24 AST 2009
----------------------------
- Exposed Magnet properties to Python.
Fri Oct 30 21:58:20 AST 2009
----------------------------
- Added Magnet textures for attraction, repulsion and disable modes.
Sun Nov 1 23:00:36 AST 2009
----------------------------
- Added a HUD system.
- Added dynamic timer display management to HUD system. Can add/remove timers, with colours for each.
- Added bonus time display to HUD system.
- Added ability to add/remove timers from Python.
Mon Nov 2 23:52:01 AST 2009
----------------------------
- Added Pickup count display to HUD. Can add and remove pickup displays dynamically, from script.
Tue Nov 3 22:54:47 AST 2009
----------------------------
- KeyY prefab now uses 'KeyY' Pickup count of Player to keep count.
- Added KeyY counter to HUD.
Sat Nov 7 00:11:59 AST 2009
----------------------------
- Added Ngf states system, inspired by UDK.
- Modified Turret code to use Ngf States system.
Sun Nov 8 21:48:05 AST 2009
----------------------------
- Added serialisation of new states system.
- Made Turret serialise the state of it's state system too.
- Added easy STL container (with elements of serialisable type) serialisation.
Mon Nov 9 10:12:31 AST 2009
----------------------------
- Added GravityManager and 'gravity invert' feature. Inverts world gravity, allows fun puzzles.
- Fixed many places in code that assumed a +Y up axis. Now they work with a -Y up axis too in case
of inverted gravity.
- Created new test level.
- Blender properties now of different types, not just strings. Makes editing in Blender easier
(GUI controls).
Tue Nov 10 13:41:25 AST 2009
----------------------------
- Added 'Startup.py', which is run on game startup to allow some functions, classes etc. to be
written in Python and used in scripts.
- Reworked Camera system to have Camera attached to a SceneNode and manipulate the SceneNode
instead. Allows sound listener to simply be attached to the Camera SceneNode.
- Added test sound effects to Crate, Turret, tested positional audio, attenuation.
Wed Nov 11 23:31:40 AST 2009
----------------------------
- Exposed OgreAL sound stuff to Python.
- Added 'AmbientSound' Prefab for placing level sounds in editor (mostly for atmospheric effects).
Thu Nov 12 22:25:19 AST 2009
----------------------------
- Added custom serialisation for scripted objects (calls 'save', 'load' events in script).
- Added serialisation of AmbientSound, with serialisation of sound offset, etc.
Fri Nov 13 10:44:28 AST 2009
----------------------------
- Added 'Prop' system, for 'pre-made' Brush meshes. Props are made by appending a brush object
to Props.blend, removing 'isBrush' and setting 'brushMeshFile' manually. Props can then be used
in levels by appending from Props.blend. Props can by any kind of brush - StaticBrush,
MovingBrush, or even prefabs, like Generic Door.
- Added icon display to HUD. Can dynamically add, remove and change icons.
- Added dimension icon display (shows current dimension, if Player can switch dimensions).
- Added 'initPlay' property to AmbientSound.
Sat Nov 14 23:53:33 AST 2009
----------------------------
- Fixed bug in Pickup bob.
Mon Nov 16 14:56:37 AST 2009
----------------------------
- Added smooth camera rotation for gravity invert.
- Changed dimension icons.
- Added gravity icons display (shows current gravity state).
Tue Nov 17 18:17:16 AST 2009
----------------------------
- Fixed bug in OgreAL Sound stop().
- Added regulation for gravity inversion ability.
- Improved dimension icon update policy.
- Added setting for gravity switch key.
- Added vertical angle limits for Turret.
- Added Player gravity timer. Player can now be given gravity inversion ability for a certain time,
and the countdown is displayed in HUD.
Wed Nov 18 17:18:20 AST 2009
----------------------------
- Added HUD serialisation. All data displayed in HUD is now saved when the game is saved, and is
restored when the game is loaded.
- Added 'GravityKey' prefab, a pickup which gives Player gravity inversion ability for some amount
of time. Created new material and mesh for it.
Thu Nov 19 21:06:41 AST 2009
----------------------------
- Moved Startup.py execution till after setup.
- Fixed sound gain/attenuation bugs.
- Created a sound effect testing system (bash script to do most tasks).
- Added some more sound effects, added sound effects for Level 1.
Fri Nov 21 21:46:41 AST 2009
----------------------------
- Added some more sound effects.
Sat Nov 22 22:31:16 AST 2009
----------------------------
- Fixed a bug in the camera rotation for gravity switch.
Tue Nov 24 15:11:48 AST 2009
----------------------------
- Crates now don't get pushed when there's no ground under them.
- Added more sound effects.
- Added ability to attach sounds to object SceneNodes from Python (the Python interface doesn't
really know about the SceneNode, you just do obj.attachSound(sound), the object handles it).
Wed Nov 25 20:35:06 AST 2009
----------------------------
- Added ability to write new Python methods for GameObjects from script.
- Added 'open()' and 'close()' functions to Door prefab using the 'make methods in script' feature.
Thu Nov 26 23:17:44 AST 2009
----------------------------
- Added ability to specify that a brush is transparent to prevent it from causing 'camera-fixing'.
Fri Nov 27 15:34:18 AST 2009
----------------------------
- Added 'SpeedBoost' prefab, which boosts GraLL's angular velocity when picked up.
- Added mesh and material for SpeedBoost prefab.
Sat Nov 28 18:02:51 AST 2009
----------------------------
- Added 'JumpPad' prefab.
- Added material for JumpPad prefab.
Tue Dec 1 00:21:56 AST 2009
----------------------------
- Added more sound effects.
Wed Dec 2 22:36:42 AST 2009
----------------------------
- Added more sound effects.
- Added 'persistent' sounds for Player explosion, bomb explosion, etc.
Fri Dec 4 19:07:29 AST 2009
----------------------------
- Added more sound effects.
Sun Dec 5 23:45:59 AST 2009
----------------------------
- Added more sound effects.
Mon Dec 7 22:08:36 AST 2009
----------------------------
- Fixed Crates dynamics bugs. Crates now work perfectly. For now, labelled as 'done', but still needs
testing. If any problems are encountered in the future, it'll be back on the list.
Tue Dec 8 23:05:44 AST 2009
----------------------------
- Added more brush textures.
- Added 'LedgeLamp' prop.
Wed Dec 9 23:55:35 AST 2009
----------------------------
- Added more brush textures.
(long break - exams etc. :-( )
Wed Jan 20 15:24:43 AST 2010
----------------------------
- Made EndPoint pull Player to center once Player wins.
Tue Jan 26 00:58:48 AST 2010
----------------------------
- Added 'MessageTrigger' prefab.
- Added 'MaterialTest' level to test materials.
- Added Level 2, explaining some obstacles.
- Added DoorR, DoorG and DoorB materials.
- Added DoorR, DoorG and DoorB prefabs.
- Added 'massageDict' to prevent having to write long help messages in the Blender properties.
Thu Jan 28 00:59:42 AST 2010
----------------------------
- Added Level 3, explaining more obstacles and presenting a little puzzle.
- messageDict now also stores message times.
- MovingBrush bugfix (Director-missing... Yes, again).
Fri Jan 29 21:19:21 AST 2010
----------------------------
- Updated to latest Bullet version on Windows.
- Crazy Crate bug fixed. For some reason, when GraLL walked on a Crate he was thrown off into space.
Seems this was because Crate friction was 0, and Player friction was infinity. Weird. O_o
Sat Jan 30 15:06:40 AST 2010
----------------------------
- Added LOD levels for shader materials to decrease GPU load.
- Player now has to actually push Crates to get them to move, not just touch them. Decreases chances
of moving Crates unintentially.
Sat Feb 6 01:36:16 AST 2010
----------------------------
- Fixed Turret state machine bug.
- Added ability to enable/disable Directors for even more MovingBomb/MovingBrush fun. :D
- Added Level 4.
Sun Feb 7 23:26:14 AST 2010
----------------------------
- Made default Switch-SlidingBrush name 'noname' instead, to avoid problems if there's actually an
object named 'none'.
- Initial version of Level 5 done (fun puzzle in this one :-) ).
Mon Feb 8 21:49:35 AST 2010
----------------------------
- Further work on Level 5 (lighting, gameplay modifications).
(February 10th - my birthday! :D )
Thu Feb 11 11:37:40 AST 2010
----------------------------
- Completed Level 5. Fun level. :-)
- Fixed FallingBrush serialisation bug - FallingBrushes in the 'falling' state wouldn't be properly
deserialised.
Sun Feb 21 23:04:46 AST 2010
----------------------------
- Added 'mood' and 'group' music system to allow changes in music according to game 'mood'.
Mon Feb 22 18:56:58 AST 2010
----------------------------
- Music bugfix - fixed 'setMood' and 'switchMood' and Controller music serialisation to keep things
smoother.
- Music track filenames are now read from 'Music.ini' file. 'groups' and 'moods' can be set through
the file.
Sat Feb 27 12:49:51 AST 2010
----------------------------
- Made Lights Python-scriptable.
- Added 'playSound' option to Generic Door prefab.
- Started work on Level 6.
Sun Feb 28 23:44:29 AST 2010
----------------------------
- Further work on Level 6 (added Moving Bomb ambush).
- MovingBomb bugfix (vertical movement Director problems).
Mon Mar 1 23:27:10 AST 2010
----------------------------
- Further work on Level 6 (introduced dimension-switching).
Tue Mar 2 20:02:21 AST 2010
----------------------------
- Completed Level 6.
- Added 'getDimension' Python method to GraLL2GameObject base.
Sun Mar 14 23:30:46 AST 2010
----------------------------
- Started work on Level 7.
(AP + 'chillax' break ^_^ )
Wed May 12 20:54:07 AST 2010
----------------------------
- Completed Level 7.
- Added an option for 'Box' collision shapes for MovingBrush.
- Began work on Level 8, 'Vortex', involving a spinning moving platform in a circular void.
Fri May 14 03:18:14 AST 2010
----------------------------
- Added dimension 2 part of Level 8.
Fri May 21 16:07:17 AST 2010
----------------------------
- Added Material preloading feature, to remove mid-game resource-loading hiccups.
- Added Material reloader - changes to material/shader files can be picked up while the game is running.
- Added shader settings feature (normal mapping and parallax mapping can now be enabled/disabled).
- Added shader settings to Options Dialog.
Sun Sep 5 16:00:43 AST 2010
----------------------------
- Made more Linux install-friendly (can use /usr/share/grall2 for DATA_PREFIX or ~/.grall2 for
USER_PREFIX for example).
Tue Sep 7 17:21:57 AST 2010
----------------------------
- Upgraded code to latest Ogre, MyGUI version.
Thu Sep 9 18:38:28 AST 2010
----------------------------
- Can search for 'backup Settings.ini' in DATA_PREFIX.
<ChangeLog not updated in a while, check git log>