PDA

View Full Version : Random Notes (28/7)


Pazolli
2002.07.28, 09:39 AM
Greetings all,

The music engine is now functioning and working significantly better than QuickTime. Despite that, we could still use a few speed improvements.

I think it's almost time for a new milestone release, however before we do I think we should complete this task (https://sourceforge.net/pm/task.php?func=detailtask&project_task_id=55267&group_id=31218&group_project_id=13463). Is anyone up to completing it? Absolutely anyone is welcome to give it go (you don't need to be a current project member) and I'll be happy to help out if necessary.

Special thanks to AndyWan who implemented the High Score name memory so now none of us have to re-enter our name each time we get a High Score.

I've also implemented the help screen. Check it out (if you can compile from the source).

If you have any questions or comments on Hooptie in its current state (or just about the project generally) feel free to use this thread.

Cheers,
Mark.

furballphat
2002.07.28, 10:09 PM
Teensy weensy suggestion here, in the Hooptie new high score field, it would be nice if your user name was used instead of anonymous. All that would be need is for the following line to be added to awakeFromNib in gamescores.m [namePanelName setStringValue: NSFullUserName()];

Pazolli
2002.07.29, 05:47 AM
Thanks fullbarphat that was a great idea (and is now implemented). Could I interest you in completing this task (https://sourceforge.net/pm/task.php?func=detailtask&project_task_id=55267&group_id=31218&group_project_id=13463). I don't think it's that difficult to complete and it would score you a place in the credits. Plus I'm happy to assist you in completing it where-ever necessary. If you don't want to complete it however there's no pressure. Either way if you have any additional suggestions we warmly welcome them.

Also on a more general note to all our members, I think we might move to using QuickDraw to render graphics. This would probably result in Hooptie being way faster than it is at present and I think we can do it without too many changes. Though I still intend to maintain the Quartz renderer (how I'm not yet sure) since it represents an important example on using Quartz and soon with improvements to both software and hardware, the performance difference between the two may be less noticable.

edit: Actually having replayed Hooptie I think performance is alright for now. I'll lay off the changes until the user-review stage. When I'll implement it if users complain about speed.

Cheers,
Mark.

furballphat
2002.07.29, 10:07 AM
I'm confused by all this level packages stuff. As far as I can see there are four level files, none of which are in packages. I'm guessing this was a recent change and the version on my machine (0.2.1) isn't up to date enough for that. Other than that, I would be happy to at least attempt this task. My sourceforge id is furballphat as well (as it is on everything).

Pazolli
2002.07.30, 07:03 AM
Hi again furballphat,

As you seem to have worked out the reason you can't find anything about level packages is because they weren't implemented in Hooptie 0.2.1. So you'll need to use the latest version of the code to complete this task. Getting this latest version is rather complicated but instructions on how to achieve this are provided here (http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/inkubator/hooptie/obj-c/documentation/cvs_access.rtf). Ironically you may well find getting access to the CVS the hardest part of this task but please don't hesitate to ask for assistance if you need it. Once you've got the code from the CVS you can make your changes to it and commit them back to the project by using "cvs commit". A good point I should make is that once you get the CVS working for Inkubator you can access any SourceForge CVS in a similiar fashion.

Good luck with the task. Please don't hesitate to ask for help.

Cheers,
Mark.

furballphat
2002.07.30, 04:18 PM
I've written the code and committed the CVS. How do I mark the sourceforge task as being done? I sniffed around the sourceforge documentation but it was useless.

I think I left a memory leak in setScoresPath of GameScore.m (coming from a Java background all this taking any notice of memory management is new to me). Can anyone verify?

Pazolli
2002.07.30, 10:04 PM
You don't tick tasks done, that's my job. :-) It works nicely because it reminds me to look over contributions which means I can look for things like memory leaks, etc. Unfortunately, I'm not on my Mac at the moment but I will take a look at your work tonight. That said, congratulations on completing the task. I'll make sure to add your name (Adam Chatterley) to the credits. I guess with that done we're almost ready for another milestone release.

Many thanks for your work,
Mark.

flipflop
2002.07.31, 10:20 PM
Originally posted by Pazolli

Also on a more general note to all our members, I think we might move to using QuickDraw to render graphics. This would probably result in Hooptie being way faster than it is at present and I think we can do it without too many changes. Though I still intend to maintain the Quartz renderer (how I'm not yet sure) since it represents an important example on using Quartz and soon with improvements to both software and hardware, the performance difference between the two may be less noticable.


Another option is to create an openGL renderer. Of course you can take it one step further and create a renderer plugin architecture and the user can choose which renderer to use. A small excercise and a good example for other on how to use different technologies. ;-)

Back to the level editor...
- John

geezusfreeek
2002.07.31, 10:25 PM
I'm learning OpenGL right now. I'm not technically helping out with this project, but I still say you guys should go OpenGL. It's too easy to ignore.

Kjurtyl
2002.07.31, 11:21 PM
OpenGL - too easy to ignore? Don't tempt me, I just might.

I, for one, do not support moving to QD for drawing. I strongly believe the work we have with Quartz is worthwhile and important. It is understandable to be thinking of QD because of its speed, but to me it feels just not "native OS X" enough. I'm not against QD drawing being "added" to Hooptie, the facts are that is mostly Mark's decision since he'll be doing the coding..

Despite my first comment, I think OpenGL is a worthy alternative, but yet again, allow me to reiterate that we have a drawing system that works with decent speed as it is. I REALLY would like Hooptie to improve in other ways than drawing speed and I question the relevance of rewriting the pipes so close to Jaguar when there is so much still to be done in other areas.

I'm happy with the mix we have right now (Quartz/Cocoa/CoreAudio), and I don't think this is the right time to change the fundamental underpinnings of Hooptie.

Here's to healthy bickering,
- Kjurtyl

Pazolli
2002.08.01, 04:44 AM
Firstly thanks furballphat, changes work great though I did make a few adjustments to improve memory handling.

I have no knowledge of OpenGL but if it doesn't support Mac OS X fonts then it's really not an option. Also, I'm not too familiar with OpenGL, so that's another reason I'm not too keen on it.

I'm happy to stick with Quartz for the moment at least until the user-evaluation period. As for the OS-Xishess of QuickDraw I think you might find it hard to spot the difference if we make the change. Remember it's not the whole program that's going Carbon (just what's drawn in the view).

Cheers,
Mark.

OneSadCookie
2002.08.01, 06:59 AM
Apple has a sample showing how to use Cocoa to render text to an OpenGL texture. It's very easy, and the results are visually indistinguishable from the Quartz renderings of those same fonts.

OpenGL will also make your transparency easy, something that QuickDraw would make a bit of a headache.

Not, I think, that there's anything wrong with the existing Quartz code.

Pazolli
2002.08.01, 10:08 AM
Thanks OneSadCookie.

I'm glad to hear most people find speed in Hooptie reasonable enough.

'night all :-)

flipflop
2002.08.01, 11:42 AM
I agree with everyone else that Hooptie runs just fine. I'm curious if we will see a performance increase with Jaguar and Quartz Extreme. Unfortuanately not everyone will be able to benefit using Quartz Extreme...

Does the current code base have a means of displaying FPS? It might be interesting to add the code so we can see where we are at today and what it will be when Jaguar arrives. Is Quartz Extreme really extreme? ;)

Have a good morning.
- John

geezusfreeek
2002.08.01, 04:46 PM
Yes, I agree. Hooptie seems to have fine speeds right now. Just saying that if you, for some reason or another, were to change the renderer, OpenGL would be your best bet over QuickDraw, IMHO.

Kjurtyl
2002.08.01, 05:52 PM
What I dislike most about Carbon is that it uses a different handling method for its callbacks, that's what caused problems with mixing QT and multithreading. I anticipate the same problems will surface if we make calls to QD. If it hinders multithreading, I'm worried it might hinder other future plans as well. It's not the front-end of QD, it's the back-end that concerns me.

For those who will be able to use Quartz Extreme, they'll end up with OpenGL under their feet whether we switch the drawing to it directly or not. Jaguar without Extreme is supposed to bring its own speed increases across the board.

I'd be interested to know what our FPS are today versus what they will become too. I agree with John that it'd be nifty to implement it although I don't have the know-how.

What's missing till the next milestone release?

- Kjurtyl.

Pazolli
2002.08.05, 11:30 AM
Greetings everyone,

I'm really glad most of you are finding Hooptie running at acceptable speeds. If you're running a version prior to music being implemented, you'll probably find performance drops quite a bit when you use music and I imagine, in the end, some of you might find it better to play without the music.

Hooptie doesn't have a traditional frame-rate in the sense that the better the performance the greater the frames per second. Rather Hooptie has a maximum number of changes in the game that can take place each second. Ideally each of these changes should be matched with a redraw of the screen, but sometimes, if the computer can't match the required peformance, Hooptie will, say, do two changes and then redraw the screen. In that case it could be said that one frame was skipped.

Recently I committed some changes to the CVS which allow you to guage the number of skips per 50 frames. The guage itself would consume a bit of the frame time and can be enabled/disabled in the Preferences dialog. When enabled, a frequency table is then kept for the number of skips in all 120 or more sets of 50 frames in a game (you can play multiple games to refine your data). Upon quitting this data is then stored in a file "Hooptie Frame Skips.xls" saved to the parent directory of the application. Though this file opens easily in Excel, it's actually just a tabulated text file. (Also note that the file is overwritten if it exists each time you quit).

Obviously, if you're doing something complex in the background (like 3D rendering) during play the number of skipped frames per 50 will increase on average. What I'm interested in is what is acquired during general play (with minimal background activity) of the deployment build (see build styles underneath the Hooptie target for how to set the build to deployment).

In my case with a 256 MB 400 MHz PowerBook G4 the skipped frames per 50 were:

0 - 59.1%
1 - 30.4%
2 - 7.8%
3 - 1.7%
4 - 0.0%
5 - 0.9%

In a nutshell the performance on my machine was actually pretty good though certainly not perfect. Would anyone else like to throw their results into the ring?

(You'll need to check out the latest version of Hooptie from the CVS and please make sure to specify your machine specs).

Cheers,
Mark Pazolli

Kjurtyl
2002.08.05, 01:25 PM
Ok, here are my results, my machine is a G3 350mhz with 383 MB of ram...

it analyzed around 136 sets, but these are the first five:

0 - 12.5%
1 - 19.1%
2 - 17.6%
3 - 14.0%
4 - 6.6%
5 - 2.9%

a solid 30 of the 136 sets had a frameskip rate of 0%.

By what method are the sets ordered?

My results would suggest that I'm getting better performance than a G4, must be all that ram and the lack of altivec support ;) .

- Kjurtyl.

DaFalcon
2002.08.05, 02:29 PM
Don't your results show a higher frequency of skipped frames ... ? I think you're confused by what the numbers meant :-)

Kjurtyl
2002.08.05, 05:41 PM
That entirely depends on what the first five sets of data means, as I said before, most of the data I collect was at 0%.

For the first five, my percentages are certaintly more evenly distributed, but not one single stat ever reaches anything close to 50%, or even 30%.

So you tell me what the numbers mean.

- Kjurtyl.

DaFalcon
2002.08.05, 06:01 PM
I think that 12.5% of the time, no frames were dropped in a 50-frame set, 19.1% of the time only one frame was dropped, 17.6% of the time two frames were dropped ... etc.

(So in Mark's tests, no frames were dropped more than half of the time.)

This seems to be in line with the distribution of the numbers and the fact that a 350 G3 should have more dropped frames than a 400 G4 in theory... I could be confused though :-)

Kjurtyl
2002.08.05, 06:08 PM
Oh I see...

Under that light, the results make that much more sense.

I had the impression that it worked in a completely different way..

the line that throws me off is the following:
When enabled, a frequency table is then kept for the number of skips in all 120 or more sets of 50 frames in a game

I thought the numbers represented the sets of 50 frames.

- Kjurtyl

edit: I've tried Hooptie without music to see what would happen, these are the results:
0 - 59.3
1 - 27.0
2 - 9.5
3 - 1.1
4 - 2.1
5 - 0.5

Which is closer to Mark's result, although if music was on for his tests, I'd rather have his CPU. :)

Pazolli
2002.08.05, 09:26 PM
Yes, DaFalcon's intepretation of the results are correct.

If anyone has looked at my code for the guage you'll realize it chews up excessive memory and a bit more processor time than it should, this is because originally I designed it so that the skipped frames of the last 50 would be updated to screen every frame, but then decided the frequency table would provide a much better means of analysis. I'll fix that up tonight (no need to obtain fresh results I suspect the effect on them will be minimal).

Kjurtyl's results, which show that more than 25% of the time more than 10% of the frames in a set were skipped (with music on) are enough to encourage me to think about further performance optomizations, though I think I'll leave QuickDraw alone for a while.

Cheers,
Mark Pazolli

DaFalcon
2002.08.22, 10:01 PM
Originally posted by Pazolli
I think it's almost time for a new milestone release...

I don't know if that task Mark said needed to get done was ever completed, but if anyone who's not hard at work on a uDevGame entry has some time . . . I agree that its about time for a new milestone release :-)

Pazolli
2002.08.22, 11:24 PM
The task was completed (quite successfully) by furballphat but up until now I had forgotten to tick it as done. Your flying aliens are also up and running on the CVS. I've been wanting to get a milrestone release out for a while now and get a thread running on all the sprites we should implement (and changes we should make) before Hooptie's final release but I've been rather busy. I really really appreciate your work and I'm sorry I haven't been more active in recent times, but rest assured I will return (hopefully sooner rather than later).

Meanwhile some ideas for tiles are ice blocks that crack if you stand on them too long. Or a sprite that can't be squashed but must be trapped or thrown into a pit before completing the level. If someone wants to start up a thread to discuss these ideas (or others) it would be most welcome.

I also need to add Adam to the credits (remind me if I forget) and it would be really great if someone could find (but not necessarily make themselves) some more sound effects for Hooptie.

Mark.

ededed
2002.08.27, 04:35 PM
I am nothing to do with hooptie but I really like it so far, I was just wondering if the final source code would be released for the finished version.
If so where should I go to get it when it is out?

Pazolli
2002.08.27, 08:30 PM
Originally posted by ededed
I am nothing to do with hooptie but I really like it so far, I was just wondering if the final source code would be released for the finished version.
If so where should I go to get it when it is out?

Yep, Hooptie will definitely remain open source past its final release but it's difficult to estimate when exactly we'll finish Hooptie. That said, hopefully we'll make another milestone release soon which will mean all the latest code will be available for download from:

http://sourceforge.net/projects/inkubator/
(the code up there at the moment is quite old)

That said, it's really great to hear positive feedback on Hooptie. It keeps me (and probably a lot of other members) motivated.

Cheers. :)

ededed
2002.08.29, 12:29 PM
I played hooptie and it is really great. Im really glad to see some freeware on in a while, thanks and for another great free game check out http://www.snakequest.com.

Chris Burkhardt
2002.08.29, 01:26 PM
hehe, funny you should mention SnakeQuest as another good freeware game, because it just so happens that both projects share the same artist: DaFalcon (AKA Alan Carr) :cool:

DaFalcon
2002.08.30, 12:15 AM
lol, yeah, ededed's been lurking in the Snake Quest Forums as well as here recently... and it sounds like he's hard at work on a Snake Quest level set too, that should be interesting. Thanks for the plugs and support, ededed ... I'm glad you like Hooptie and Snake Quest :-)

.. And I'm still waiting for that next milestone release of Hooptie ... :-)

Josh
2002.09.12, 09:00 AM
I thought that you guys may want to know that I just compiled Hooptie and ran it on my beige G3/266. Without the music and sound it ran suprisingly well. Once I turned them on however... but still, it runs on probably one of the slowest systems that Mac OS X will run on. Good job, it is sadly addicting :( How am I going to get ANYTHING done if I always feel the need to beat the game?

DaFalcon
2002.09.12, 02:22 PM
Wow, that is good news! A testament to open source and all the hard work everyone's been putting in :)

I couldn't imagine trying to run OS X on my old Lime iMac 333 ...

Pazolli
2002.09.14, 05:33 AM
Originally posted by jabber
I thought that you guys may want to know that I just compiled Hooptie and ran it on my beige G3/266. Without the music and sound it ran suprisingly well. Once I turned them on however... but still, it runs on probably one of the slowest systems that Mac OS X will run on. Good job, it is sadly addicting :( How am I going to get ANYTHING done if I always feel the need to beat the game?

Thank you for the kind feedback Jabber. :) It's nice to know Hooptie can waddle fairly well on a G3/266.

Mark.

Pazolli
2002.09.14, 09:57 PM
And now for my iBook G3 300 MHz (Mac OS 10.1.x) no music frame skips table:


00 - 52 - 41.9%
01 - 19 - 15.3%
02 - 14 - 11.3%
03 - 03 - 02.4%
04 - 05 - 04.0%
05 - 04 - 03.2%
06 - 08 - 06.5%
07 - 05 - 04.0%
08 - 02 - 01.6%
09 - 05 - 04.0%
10 - 01 - 00.8%
11 - 03 - 02.4%
12 - 02 - 01.6%
13 - 01 - 00.8%


Mark.