Skip to main content

News

Topic: TurboSphere (Read 193296 times) previous topic - next topic

0 Members and 6 Guests are viewing this topic.
  • N E O
  • [*][*][*][*][*]
  • Administrator
  • Senior Administrator
Re: TurboSphere
Reply #240
Whoa.

Re: TurboSphere
Reply #241
That's what happens when all TGA-reading applications don't follow the spec for origin specification (so it's read back swapped horizontally, rather than vertically), and you use the run-length from vertically-flipped rows to encode the image.

In other news, screenshots now work (I fixed that craziness), and can save as PNG, BMP, and TGA files (the format used is configurable).
TS now has masking for BMPFonts, screen clipping rectangles, and preliminary blend mode support.
  • Last Edit: September 21, 2013, 02:18:30 am by Flying Jester

Re: TurboSphere
Reply #242
TurboSphere can now run Tung's startup game (with a couple minor graphical errors).

I've added a system for plugins to add to the script Surface prototype directly through the SDL_GL_threaded plugin (which allowed for surface.drawText, the last thing I needed to run Tung's startup game).

  • Radnen
  • [*][*][*][*][*]
  • Senior Staff
  • Wise Warrior
Re: TurboSphere
Reply #243
I too get graphical errors on tung's startup game and I don't know exactly what's wrong. Not the one in your screenshot, but a different one that changes the background color of the text on surfaces (surface.drawText works in all cases but this one).
If you use code to help you code you can use less code to code. Also, I have approximate knowledge of many things.

Sphere-sfml here
Sphere Studio editor here

Re: TurboSphere
Reply #244
Looks like a blendmode/alpha channel problem. I have a couple of those kinds of problems still too.

Usually the fix in SDL is changing the surface creation flags, and being sure to always set a blend mode on surface creation.

EDIT: Just fixed a similar problem in TurboSphere. Lovely blend modes.

That first screenshot actually was rendering almost right, except for the outline of the scroll bar. It seems that Tung's game gets just a little confused if there is no games folder.
  • Last Edit: September 21, 2013, 07:24:13 pm by Flying Jester

Re: TurboSphere
Reply #245
I like FLTK.
Going with C/C++ was the right thing to do for the config tool. The configuration program can read out what functions, variables, and types a plugin provides for script, as well as what functions it provides for other plugins to use and what plugins it depends on.

Plus, I can read and write the config files with the same library that is used in the engine.

  • DaVince
  • [*][*][*][*][*]
  • Administrator
  • Used Sphere for, like, half my life
Re: TurboSphere
Reply #246
Very nice indeed, good work. Sounds useful, especially if it could download dependencies for you.

(...But add some padding on the tabs and "plugin information" pane, dude! And make that Refresh list take up the full width you have left. And fix the fact that the padding in the list is bigger on the left side than it is on the top! :P)

Re: TurboSphere
Reply #247
It could download dependencies, yes. But I kind of think that should be the job of a dedicated game manager--the plugins are dependencies of games, or of another plugin, or are explicitly installed. Like how packages and groups work for package managers like Yum, Pacman, and Aptitude. But in the end, I don't download libpng because I love having libpng, I download it so that programs can read png images. I think it should be game-centric. I just might be working on a way for games to specify what plugins they really need, too...

On the other hand, it may be good to have a utility like this to handle plugin dependencies. The game manager could be engine-independent, and then tell the configuration utility what it is doing. The config utility could then, say, change settings for the game to handle, for instance, engine differences (like TurboSphere using constructors instead of functions for engine objects by including additional scripts, or the opposite for a game designed for TurboSphere but being run in another engine), download plugins if necessary, etc.

It would be cool to have the plugins' function and variable lists act as a sort of 'provides' list (like in Yum), so you could use alternative plugins if you wanted, or if you already had a plugin that provided the functions you wanted installed but the game specified a different plugin by default you could just use the plugin you already have.

But that's a ways off. Once one of the Sphere Next Generation engines is done, I may just look into this kind of utility to make it easier to use any of the engines you want. Of course, that would mean all the engine devs would have to come together and agree on standards for these things...or one of us could just blaze forward, and the others would be inclined to adopt it. I wouldn't mind that, I don't especially like creating standards myself.

After all this work with T5, I looked at some of the code that is in the engine's support libraries. And I don't like what I see! It's some of the first C++ I ever wrote, and the quality and methods are about what you'd expect given that. The configmanager needs serious work (not that it doesn't work, it's just not pretty, clean, or particularly logical), and I need to finally put all the graphical algorithms inside graphicalg. That's what its' there for!

I know the interface isn't too nice right now...but that doesn't cause it to segfault, (whereas opening a file with T5 before calling T5_Init does, for  example), so I haven't done much for it yet :)
  • Last Edit: September 29, 2013, 09:52:26 pm by Flying Jester

Re: TurboSphere
Reply #248
I have created an RPM of the version V8 that TurboSphere uses. I got really, really sick of rebuilding V8 because it takes one million years and is tricky enough that I usually mess it up (and then have to wait another million years to recompile it).

I must warn anyone who uses it: I make no guarantee about this package, except that it MAY break any other application that uses V8 as a shared library (this DOES NOT include Chrome or Chromium). The version of V8 provided by Fedora is 3.14, which is over a year old. In fact, it's older than TurboSphere. I suspect the reason is that almost no other programs use V8 as a shared library except node.js, which uses 3.14. Which certainly explains that, doesn't it?

Fortunately, node.js was packaged well enough that it my V8 rpm and they are recognized as being in conflict by the package manager.

Edit:
A T5 rpm is also up. I'll probably just end up making a linux binary release soon.
  • Last Edit: October 02, 2013, 08:18:18 pm by Flying Jester

Re: TurboSphere
Reply #249
I've replaced the SGM-parsing code in TurboSphere--which was the oldest code I've written that was in TurboSphere! SGM-parsing now uses T5, which means it can much more easily parse in any non-standard fields in the SGM file.

I'm working on finally getting a proof-of-concept plugin that uses a language other than C or C++ for its backend. I know it is possible, but I'd really like to get a C# plugin going...and that requires me to learn the intricacies of linking .NET and CLI code and still exposing C-linkage functions.


And just guess what the third result is on Google when you search for "C linkage in C++/CLI". I seem to be making a bit of a name for myself...so long as you look for the same anwsers I do.
  • Last Edit: October 07, 2013, 09:34:18 pm by Flying Jester

Re: TurboSphere
Reply #250
Hey, nice to see the progress here. Since some weeks I am again a bit more active, playing around with javascript and turbosphere and/or html5. I could not find any clue in the docs: Can I draw an image/surface on an image/surface in turbosphere? Or is this still work in progress? This would really help me creating a small js based map engine ;)

Re: TurboSphere
Reply #251
Only if you have Linux :(

I just got Windows on a computer after a long time, so the Windows binary releases are getting pretty old. In addition, the last Windows release was really buggy, but was fine in Linux.

I'm working on porting all the new stuff back to Windows, which includes suface.blitSurface support. And rawfiles, bytearrays, a MapEngine on par with TS's 0.1.0 plus spriteset and basic person support, more graphics primitives including circles, a proper EvaluateScript and RequireScript, GetGameList, basic BlendModes (REPLACE, RGB_ONLY, ALPHA_ONLY, and BLEND), and a lot of other stuff. I recommend either waiting, or, if you have Linux, compiling from the source on github.

The function list is generally up to date for the latest Windows release.
  • Last Edit: October 08, 2013, 09:20:31 pm by Flying Jester

  • N E O
  • [*][*][*][*][*]
  • Administrator
  • Senior Administrator
Re: TurboSphere
Reply #252
Hey dude, once you make some more progress with the TS map engine can you go to the Developing a Sphere-compatible engine wiki page and add some more of your experiences to it?

Re: TurboSphere
Reply #253
Yes, I certainly can! Most of what needs to be done are things that I need to test to find the correct behaviour--which is exactly what that page needs. It would be good for all involved to have more of that information fleshed out, there's no need to rediscover these things again and again.

I can easily add a bit about what I've got so far. Especially for spritesets, it took me a minute to make sense of them on the engine-side, mostly based on the file spec.

Re: TurboSphere
Reply #254
Ok, I will wait for a proper windows release :) Thanks for the info!