Grey Alien SUPERSTRICT Game Framework V1.09
Community Forums/Showcase/Grey Alien SUPERSTRICT Game Framework V1.09
| ||
Hi everyone, OK so I've just released a SuperStrict compatible version of my awesome BlitzMax Game Framework on my forum due to popular demand. You can find it here in the Framework Downloads forum if you are a registered customer: http://www.greyaliengames.com/forum/ You can find out more details about my framework and download a demo in this thread: http://www.blitzbasic.com/Community/posts.php?topic=75097 There are loads of changes in this release but I don't have time to list them all right now, so here are the main ones: - It's now SuperStrict compatible! - TButton now supports a TImageFont or TBitmapFont caption! Very useful for localising button captions instead of having to generate graphics for each one. - TSprite and TParticle enhancements. - TKeyRepeat and TMouseRepeat added and TListBox uses them. - TImageBank, TSoundBank and TGameText now use TMap instead of TList for speed. - Lots of tweaks and some bugs fixes to CommonTypes. - Slow motion/speed up ability added to TFixedRateLogic. - TBitmapFont data files now no longer need to be edited before use. - Few CommonCode tweaks and new functions. - Moved examples from AOTMG into a special Examples folder. - Updated BasicSetup.bmx to use AOTMG graphics so that it can be compiled straight away. - Bug fix in AOTMG TPlayer.Die(). - Possible Fix to "No Sound on Mac" issue. - Mac Shared Data path fix. Enjoy! btw, my new game is due out in November and will be using this framework, so keep an eye out for it. It will hopefully be another top 10 hit. |
| ||
Yay for SuperStrict! Has anyone had any success combining the framework with miniB3D? |
| ||
Nice! |
| ||
hey nice looking update thanks Jake. @ Beaker i haven't personally tried minib3d let alone with the framework yet, but atleast one person has had some success with the two. http://www.greyaliengames.com/forum/viewtopic.php?t=153 |
| ||
I will never understand SuperStrict. I much prefer a compiler that just gets the gist of what I'm trying to get it do. Is SuperStrict faster because it's more explicit? |
| ||
Yes, apparently the compiler is able to make a few more optimisations because of SuperStrict. |
| ||
Cool! > I will never understand SuperStrict. Yes, yes, you will. :) |
| ||
Now I use superstrict I feel like a casual drug users who's moved onto the hard stuff, or a hard rock fan who's moved into death metal ;-) |
| ||
I Guess We Are takling full ON capitalis(z)ation an' all:) Actually I can't wait to get using this stuff !!!!! |
| ||
I Guess We Are takling full ON capitalis(z)ation an' all:) Nope, just have to declare every variable and it's scope plus function returns. <edit> ... but you knew that. Didn't you? |
| ||
Yeah I've only done what Tonyg says, but that took hours of mindless editing. I just stuck on some Slayer and got on with it - converted my current game too. |
| ||
Slayer?? |
| ||
Yeah it's fast-paced so good to do something mindless to. Specifically Reign in Blood and Christ Illusion. |
| ||
Another update, cool. Keep up the good work Grey, I'm moving positions at work Monday so should be less coded out by the evening - which'll be nice. Might get my hobby coding MOJO back. |
| ||
Is superstrict code also faster at runtime? |
| ||
Grisu. Yes, a lot specially if you're using object to integer casting like:MyList = New Tlist You're assigning a TList to an integer. This is just terrible performance-wise, as the compiler has to add re-casting operations. And this is jsut a small example of some of the things that work better on SuperStrict or Strict modes. Additionally, code is easier to mantain as it is less ambigous. Local MyList:Tlist = New TlistLooks much better, you know the scope of the variable and the kind of variable, as instance. |
| ||
Just a fast example:Strict Local m:Int = MilliSecs() For Local x:Int = 0 To 100000 Local list:TList = New TList list.AddFirst("Hello") list = Null Next Print "Time: " + (MilliSecs() - m) this prints 63 on my computer Local m = MilliSecs() For x = 0 To 100000 list = New TList ListAddFirst(list, "Hello") list = null Next Print "Time: " + (MilliSecs() - m) This prints 1544 as time, so it is about 24 times slower on non super strict. |
| ||
Thanks Ziggy! |
| ||
ziggy: Your top example is not using superstrict, just strict and the framework was always strict, I just made it superstrict... |
| ||
i'm not saying that it was not strict, I was just answering a Grisu question! |
| ||
Wow... just tried Ziggy's example... didn't know it made such a difference, although I alway declare the variable and type before using them. On my machine, when you declare the variable type I get 35 and without it I get 531. (15x slower) If you remove the Strict (or Superstrict it doesn't matter in this example) the timing is the same, as we are still declaring the variable and it's type. Superstrict just forces that you declare your variables and their type before you use them... so GA now your framework is Superstrict and you have declared all your variable types it should be quicker ;-) |
| ||
i'm not saying that it was not strict, I was just answering a Grisu question! Not exactly.. he asked if SuperStrict was faster at runtime, your code did not properly test this theory - Strict <> SuperStrict!EDIT: Yeah it's fast-paced so good to do something mindless to. Specifically Reign in Blood and Christ Illusion. Huh.. I would have thought something like Bach, something that calms for those occasions that cause you to go insane. Different types of people, I suppose :) |
| ||
Just noticed... GA you might want to update your signature... *** Want to make games that rock in 2008? Get the BlitzMax Game Framework (V1.06 out now!)*** |
| ||
@Ziggy: Anyway it was a great example with an AMAZING speed different, thx. Huh.. I would have thought something like Bach Funny you should say that as I listened to the Brandenburg concertos right afterwards and then some Mozart too :-) I have a wide taste and pick what I feel like at the time.@therevills: Thanks, although V1.09 is not an official "full" release, but I'll change it anyway. |
| ||
Grey, I just purchased your framework, but I am a little confused as to the best way to work with it, what is a 'screen' and when should it be used etc... Was there some kind of guide or tutorial that I should have read in the package? |
| ||
Hi Boomboom, thanks for the purchase! OK some things you need to check out: Did you download V1.09 and install it over 1.06 yet? In 1.09 there is an examples folder which has a project called ExampleTitleScreen. That is a good place to get started. Also in Docs there is a doc called Creating a Basic Setup which has two screens. And you should check out gettingstarted.html which explains how TGame changes screens and also how to make your own TScreen with a menu. If you have any more questions, post them on the framework forum as there are loads of helpful people on it, and also when I answer, then everyone can benefit from the answer. Hope this helps! |
| ||
Thanks Grey. I look forward to using the framework and suggesting some improvements :) |
| ||
Example Title Screen sounds like an interesting new addition, I've almost got my hobby coding MOJO back ....... a change of employ is doing me the power of good! |
| ||
Example Title Screen sounds like an interesting new addition Actually that's been around for ages but I moved it from the AOTMG folder into the new Examples folder. |
| ||
I'm away for 3 days in Seattle from Tues 7th Oct to Thurs 9th Oct so won't be able to process any orders of offer support until I return. |
| ||
hmmm from Tues 7th Oct to Thurs 7th Oct |
| ||
hmmm He's off fighting daleks. Or he's away until 2010.from Tues 7th Oct to Thurs 7th Oct Or he typed it wrong. |
| ||
lol the "I'm away for 3 days" part makes it pretty obvious what he means, i just thought it was funny how 'WE ALL' make silly mistakes like that. i know i've done that before. |
| ||
He's off fighting daleks... This is why I love being amongst fellow programmers. Delightful smartasses, hahaha! His hasty note felt rather like he was on a plane back to his amish village and had to shut down and leave behind all electronic devices. ...but seriously, I'm impressed and happy for him, that he gets so many orders that he's afraid to be away for 3 days. Or I'm sad to hear that he's not getting enough orders to see to an automatic solution for that part of the business. Either way, it makes me all emotional! ;) Thanx for the laugh, GfK! |
| ||
Ahem, fixed, thanks all! :-) I do get quite a lot of orders and don't want to let people down who may be sitting there twiddling thumbs for 3 days. I never got round to automating framework sales, sorta wished I had. |
| ||
...and stop buying your annual calendars in Poundland bargain bins. :) |