Skip to main content

News

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - FBnil

76
Engine Development / Re: minisphere 1.2
Nice work, thanks!

Quote

Will try to get the git and compile it myself...

Forgot to mention: make sure you get the "unstable" 5.1 version of Allegro. ;)
77
Hellos and Byes / Re: FBN is back... a bit...
I've been reading up a lot for 2 days now. Had to open up a mindmap to write down all active forks we have for Sphere... a whopping 7!
I'm trying not to get sucked into the engine again, and actually start doing something about the game coding I had planned... uhm... more than 10 years ago... when I found Sphere 1.3
For now I'm testing each fork for neatness and functionality. Once I settle for one, Ill start writing test cases. Once that is done, Ill start reading my old libraries again, undusting them, and start again on the project. It is hard, because my latest were on a laptop that blew up... I connected the harddisk to a usb interface and it went poof. I have backups, but they are never the latest. And so, the storyboard is incomplete, and I lost lots of plot ideas.  No matter, they were cheesy anyway, but still I had funny ideas....
78
Hellos and Byes / Re: I say Hello, you say...
More than a year late, but still: Welkom Rahkiin! Good to see you have the drive we had in the past.
79
Engine Development / Re: Sphere 1.5, 1.6 beta
Is there someone who has compiled 1.6 and has it stable? Is there a place I can read up on compiling in Linux? (seems like the wiki is gone?)
80
Engine Development / Re: minisphere 1.2
Not only with parallax enabled, if we take sully chronicles, the palmtree leafs on the upperlayer go everywhere too.
Another bug is an offset with the collision box. See image.

I also attach TechDemo_Lithonite2.2 (it has a mirror demo to the topright of the screen, the rest is the same. It has a newer version of Lithonite, 2.2 with a few bugfixes)
81
Polygon() existed back in the old 1.5 version. But there was no easy way to detect if one polygon was touching another polygon. There also is no polygon editor. And so, nobody really used it.
Until I found a fast algorithm for http://www.visibone.com/inpoly/, published in 97 in the Linux Journal. In fact, the article contains several of these algorithms and puts them somewhat side by side. The code is small, fast and brilliant. And fortunately, still around. And worth the read, so check the URL out.

At that moment in time, I was more concerned with writing good interface code, than understanding the algorithm, that is why in the sources you still can see this comment:

Code: [Select]
inside=!inside; // I nod and smile...


Yes. It is not always easy to "understand" the code. The focus and effort was more on following all JS guidelines to not leak memory (it does not leak). And getting all glue functions, documentation, testing, etc. together to add a function. At a mere 173 lines of code, it was the stepping stone for the much bigger sfxr sound generator, that was added later on.
82
Ah, yes. Legacy code. we didnt touch it because it wasnt broken. However, feel free to change it in the main branch.
For good code, check out standard32.c optimal usage of quaternions, iirc.
83
Engine Development / Re: minisphere 1.2

Did you try the Lithonite tech demo I included with the engine?

Of course, and also one I had lying around. All I can think of is that I grabbed the wrong zip.
84
Engine Development / Re: minisphere 1.2

That begs the question... why? The native Linux version functions perfectly fine. :P

Because I was testing minisphere 1.2 (and the zip contains only a windows build?). I am a bit lost though, lots of reading/catching up to do in 1 year. And all interesting posts, so I can not skip along...

Thanks for the welcome back! Good to see you guys again! Hope you are all doing well.

I attached a fog demo. Just run up, and you see the fox moving too fast, then, behave normally once the sprite is centered.

Will try to get it on a windows 7 machine to test it there. For now, no luck getting zones running. Just in case, can you point me again to the binaries... just in case (I grabbed them from the first post, that was updated... but...)
85
Engine Development / Re: JavaSphere Redux
The J in the icon with swords should be fatter and more prominent. Maybe even centered, and behind one of the swords? Also the font is too plain, use something more epic (but keep it readable).
I like the colour. Not too screamy, blends in with the soft grays.
86
Engine Development / Re: minisphere 1.2
Somehow... I rechecked the version: 1.2 does contain 2 binaries: 64 bits and 32 bits. Can not run it on VM Windows XP SP3 (64bits is not executable, as expected. and the 32 bits abends with "minisphere was unable to create a display window"). On wine, the 32 bit runs. But zones do not work. Packaged binaries are from Jun  6 01:35

I also detected a problem with layers that move automatically: When next to a map border, the map does not move, but the sprite does, instead of staying in the center of the screen, while the map moves, it is the sprite that moves while reaching a border. In those cases, the layers moves away from the cursor keys, as if the map was still moving. (need a example game for that?)
87
Engine Development / Re: Sphere SFML v0.90
I applaud your efforts Radnen, but yes, if we are going to pull off another release, we will need consensus about the engine (the editors, I like them to be numerous, as each user using them can see which one is more comfortable. For *.js coding I do not use the editor, I use notepad++, the graphics I edit in other programs, and paste them into the editor. Especially with fonts, where I export to a PNG, edit it, then use a converter program to put that back into a .fnt file. While other would prefer to only use one tool...). But the engine... we should concentrate efforts on one. Especially because our numbers are dwindling.

As you might remember, the big problem with 1.6 was stability of the build. I was never able to duplicate the stability 1.5 had.... even with 1.5 sources. Which meant that the MSVC compiler was either buggy, or I could not find the perfect settings. Even after rewriting parts to remove warnings, the build was never stable. A shame too, I saw Anatoli write the best optimized code for displaying. And was in awe at what the particle engine could accomplish.

I guess goals are lower now, and it is to recreate the Sphere 1.5 functionality. But we have 3 options:

1. Keep going with the 1 man - 1 Sphere fork. I can help with the requested test cases, will start this week.
2. Choose one, and work together on that one to get it up to par. (basically what the Verge team did with IKA)
3. change scope and hope for new users and developers. (very hard to pull off)

I like the fact you are using node.js as networking glue. I like the fact Sphere had networking, and somebody actually made a webserver back in the day....  (doing what node.js does now, but way earlier)
Sphere still is unique. It works like imagemagick, in that you can generate graphic images with external data. Ten years ago, I created performance graphics that way at work. (combined with irfanview batch processing to convert the graphics to smaller jpg's (both in size as well as dimensions))
It works as javascript test case software. Where I coded ITM5 monitors (IBM Tivoli Framework) in Sphere. Using mock input, and knowing the expected output, I used it as testcase-first programming. Then moved the tested functions into the monitor template, builded it, and did the real test with real data. As I could program it everywhere, I could work on the train, and test each change with arrow up + enter (commandline sphere). Fast iteration = Very productive hours.
Granted, there is better software now to do what I did back then with Sphere, but it was used that way, by me, on purpose.
Oh, and a primitive mathjs viewer, where you could actually display values, plot them or save them to file. But now, browsers have come a long way: http://mathjs.org/examples/browser/plot.html

My  main question (better asked in another post, but why not here) is if we have to put efforts into the main branch... making it compatible with the new JS, which has renamed quite a few functions... at least to try to see if it is fast as V8?
88
Engine Development / Re: minisphere 1.2
Congrats on the new release. I took it for a spin. Impressive.
Using Linux with wine. I had Full screen issues, due to the keyboard not binding to the screen, had to alt+tab out and in again.
Very much interested in seeing zones working. (saw a post in march that is was enabled... but 1.2 does not have it?)

About the speed with S1.5. It was build with JS1.4 (or was it JS1.5?). I succesfully tested JS1.6, 1.7 and 1.8rc1 through the years (before that fateful day my laptop blew up) and JS wise, they were faster, and also allowed new JS functions, but did nothing to the FPS of games (unless you were not using the mapengine, but most did), while using up much more RAM. A the moment, the API of JS changed so much (see the releasenotes from JS31) that lots of interface calls have to be rewritten. As Spidermonkey gets up to par with V8, I expect more from it now. But am discouraged, as I am not even getting zlib compiled without errors. (switched to MSVC++2010, God knows where my bought DVD is... never got to use it). Any way, the easiest way was ripping JS from old Firefox distro's. Some required also a NS4 dll, next to JS32.dll and some of those builds were slower.

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/31

For now, I think spending time on testcases is much more fruitful. I can not even get zlib to compile at the moment...  (zlib\src\contrib\masmx86\inffas32.asm(649): error A2070: invalid instruction operands)... so that is... bad... of course, I got a new MSVC, and do not remember what I required to set up to get it all working again. If somebody can point me to a wiki that works...
89
This is what I had back in 2014. I have not done any work on it. I will delve into surfaces (Radnen request), and isolate/remove all 1.6 tests so that it works in classis Sphere 1.5, to serve as a testbed. Unfortunately, it uses a few complex functions, and I am not sure all Sphere derivates can handle them... we will see...

Log opened: Sat Sep 27 17:50:10 2014
Sat Sep 27 17:50:10 2014 -- COLOR(toJSON()):assertEquals OK
Sat Sep 27 17:50:10 2014 -- COLOR(read red component):assertEquals OK
Sat Sep 27 17:50:10 2014 -- COLOR(read green component):assertEquals OK
Sat Sep 27 17:50:10 2014 -- COLOR(read blue component):assertEquals OK
Sat Sep 27 17:50:10 2014 -- COLOR(read alpha component):assertEquals OK
Sat Sep 27 17:50:10 2014 -- COLOR(clamp alpha createColor()):assertEquals OK
Sat Sep 27 17:50:10 2014 -- *COLOR(clamp red assigned):assertEquals FAIL: (new Number(0))!=(new Number(255))
Sat Sep 27 17:50:10 2014 -- *COLOR(COLOR):NOTE FAIL: No good assertion results, rewrite either the test or the code! false
Sat Sep 27 17:50:10 2014 -- COLORMATRIX(toJSON()):assertEquals OK
Sat Sep 27 17:50:10 2014 -- COLORMATRIX(assign rn):assertEquals OK
Sat Sep 27 17:50:10 2014 -- COLORMATRIX(assign negative rg):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(bytearray length):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(convert back to string):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(deflate actually compresses):assertTrue OK
Sat Sep 27 17:50:10 2014 -- FLATE(deflate to correct object):assertEqualType OK
Sat Sep 27 17:50:10 2014 -- FLATE(inflate to same ByteArray):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(inflate to same string):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate 9):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate 8):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate 7):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate 6):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate 5):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate 4):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate 3):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate 2):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate 1):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate 0):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(bytearrays):assertEqualType OK
Sat Sep 27 17:50:10 2014 -- FLATE(reflate too small buffer):assertNotEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(not equal bytearrays by data):assertNotEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(ByteArray clone):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(length read-only):assertEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(not equal bytearrays by length):assertNotEquals OK
Sat Sep 27 17:50:10 2014 -- FLATE(not equal bytearrays):assertNotEquals OK
Sat Sep 27 17:50:10 2014 -- SPHERE16(Sphere 1.6):assertEquals OK
Sat Sep 27 17:50:10 2014 -- SPHERE16(Sphere v1.6):assertEquals OK
Sat Sep 27 17:50:10 2014 -- SPHERE16(GVS() is string):assertString OK
Sat Sep 27 17:50:10 2014 -- GetGlobalConfiguration(GetGlobalConfiguration 0):assertNumber OK
Sat Sep 27 17:50:10 2014 -- GetGlobalConfiguration(GetGlobalConfiguration 0):assertInteger OK
Sat Sep 27 17:50:10 2014 -- GetGlobalConfiguration(GetGlobalConfiguration 1):assertNumber OK
Sat Sep 27 17:50:10 2014 -- GetGlobalConfiguration(GetGlobalConfiguration 1):assertInteger OK
Sat Sep 27 17:50:10 2014 -- GetGlobalConfiguration(GetGlobalConfiguration 2):assertNumber OK
Sat Sep 27 17:50:10 2014 -- GetGlobalConfiguration(GetGlobalConfiguration 2):assertInteger OK
Sat Sep 27 17:50:10 2014 -- GetGlobalConfiguration(fraction not integer):assertString OK
Sat Sep 27 17:50:10 2014 -- GetGlobalConfiguration(fraction not integer):assertBoolean OK
Sat Sep 27 17:50:10 2014 -- SFXR(test type):assertEquals OK
Sat Sep 27 17:50:10 2014 -- SFXR(Same):assertEquals OK
Sat Sep 27 17:50:10 2014 -- SFXR(not same):assertNotEquals OK
Sat Sep 27 17:50:10 2014 -- SFXR(toJSON):assertEquals OK
Sat Sep 27 17:50:10 2014 -- SPRITESETS(isbase):assertType OK
Sat Sep 27 17:50:10 2014 -- SPRITESETS(setpersonbase):assertEquals OK
Sat Sep 27 17:50:10 2014 -- APROX(assertAprox):assert OK
Sat Sep 27 17:50:10 2014 -- APROX:passed OK
Sat Sep 27 17:50:10 2014 -- TOTAL goodfunctions:1
Sat Sep 27 17:50:10 2014 -- TOTAL badfunctions:1
Sat Sep 27 17:50:10 2014 -- TOTAL totalRequiredFunctions:0
Sat Sep 27 17:50:10 2014 -- TOTAL totalgoodRequiredFunctions:0
Sat Sep 27 17:50:10 2014 -- TOTAL coverage:NaN%
Sat Sep 27 17:50:10 2014 -- TOTAL succeeded:52
Sat Sep 27 17:50:10 2014 -- TOTAL fails:2
Log closed: Sat Sep 27 17:50:10 2014
fbnil@sphere:~/Documents/mygame/sphere/Sphere16$ cat dotest.sh
wine engine.exe -game auto_test
cat games/auto_test/logs/unittest.log
90
Hellos and Byes / FBN is back... a bit...
Hi there y'all.  ;D

I want to do unit-tests... I find that non taxing (you sit down, write one for one hour, and it works for ever!) and important work. With some sources I have.

It is nice to see so many still here. I will try to get more involved, but alas, I have very little time (and with all the hanging projects, like WoaS, even less).

Anyway.... HELLO!