Skip to main content


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 - Fat Cerberus

Off-Topic Discussions / Re: C#/C plugins for Sphere
I have to say, I'm not liking this whole fat plugin idea.  It's great from the point of the view of someone using the editor, as they can just install one DLL and have it automatically work in the engine, but the issue comes with distribution.  When I go to distribute my game, do I really want to add bloat by including design-time code with the engine?  Probably not.  Let's not forget that more code is usually needed for the IDE side than the engine side...

This is one of the reasons recent versions of Visual Studio actually seperated the design-time components from the runtime stuff, to reduce the size of the redistributables.
Projects / Re: Spectacles: Bruce's Story
I made a repo for Spectacles on GitHub if anyone wants to check it out:

You can run it, but right now it's little more than a tech demo for the textbox system and Scenario, and it doesn't even really leverage the full power of the latter yet.
I don't know if I would split out the script editor myself--just sounds pointlessly idealistic for no real gain. The main strength of plugins is that you can pick and choose which ones you want to use based on your needs, but I can't think of a single use case where it makes sense to disable the script editor!  ???

For the old editor's font-to-RFN, I was mostly fine with changing Windows' rendering settings before conversion. If you're going to force a particular rendering method in the conversion I really think you should allow the user to choose the setting (even through a simple toggle) instead of forcing one (the Adobe Font Folio version of Helvetica Neue, for example, will almost always look better at small sizes when rendered with anti-aliasing instead of turning it off; don't know if Adobe or Linotype updated the hinting since, but at least until Font Folio 11 this is the case).

Keep in mind that allowing certain methods of anti-aliasing may not be supported outside of Windows. This is where something consistent like FreeType would come in handy, and if I ever add font conversion to my phoenix-based app I'll use it myself.

Antialiasing is one thing; you never want ClearType used for a TrueType-to-raster conversation, however, as the conversion invariably looks like crap if rendered at a different resolution or on a different background.  ClearType is something that has to be done in realtime for it to work as intended.  And we can't exactly ask every Sphere user to turn it off manually when generating fonts for Sphere!

Also, the method I figured out for doing this is a standard part of the .NET framework (specifically, the System.Drawing namespace), so there's no reason it shouldn't work in, e.g., Mono.  So I wouldn't be too worried about cross-platform issues in this particular case.
One minor change to make it perfect: Change that from SingleBitPerPixel to SingleBitPerPixelGridFit.  The latter uses hints in the TT file to make the resulting text look much, much better.

Edit: Hm, looks like characters are being cut off due to not enough space at certain point sizes.  I think I'll experiment some more and see if I can fix all the bugs... :)
Sleep is overrated... I figured out how to solve the ClearType issue without changing the OS settings:
Code: (csharp) [Select]
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel
One more bug report, then I need to get some sleep: If two files have the same filename and you have one of them open, Sphere Studio gets confused if you try to open the other and just switches to the existing tab, even when the files are in different folders.

Oh, and you're not supposed to commit the .csproj.user files!  Those are machine-specific I believe, similar to the hidden .suo file but at the individual project level instead of the solution.

Alright guys, v1.1.4.0 is out, here's some of the changes:

- added mirror modes to the image drawer
- fixed alpha not updating on color switch in image editor
- added bg to color box to see alpha colors
- optimized image switching, no need to redraw bg if same sized images
- changed folder browser for sphere executables to use a file dialog
- added font editor to tree view
- added error handling to the font editors, (it didn't filter for TT fonts)
- fixed not enough margin for folding on larger script files.
- made project tree show up first on project loads
- quick fix for pausing the modification of the tree view when engine runs.
- added an outline when drawing invisible rectangles in the image editor.
- minor fixes and changes

Get while it's hot! Thanks to some of LordEnglish's suggestions I think it's a bit more comfortable to use now.

Haha, you even fixed a few bugs I noticed but forgot about!  Thanks for the tree view font switcher Radnen, you're a lifesaver! :) Changed it to 10-point Segoe UI, now it's perfect! You should probably consider using Segoe UI as your default project tree font instead of MS Sans Serif, as it's much easier on the eyes.  Oh, and speaking of fonts, the Sphere font generator is basically useless right now because it renders the characters anti-aliased, which makes the resulting font look blurry when displayed at a lower resolution.  Any way of fixing that?

Oh, regarding the folding margins though... you should probably scale those based on the font size; 10 point is fine in the new version, but up that to 12 and the fold arrows overlap the line numbers again.

Edit: I cloned the spherestudio repo and checked out the code, and it appears you might be able to fix the antialiasing issue by adding...
Code: (csharp) [Select]
g.SmoothingMode = SmoothingMode.None;

...before drawing the characters.  I couldn't test it though as when I went to run the editor I immediately got a null reference exception on TreeContent.Activate();.  I don't know if it's because I'm missing files or what (I had to disable the ClickOnce signing just to run it), or just because I compiled it with VS2012 instead of VS2010, but yeah, couldn't get my own build to run.
Libraries / Re: Scenario 3.0
Well, in any case I implemented the cascading scene composition to be unveiled with Scenario 3.1. It required a single line of code: return this; at the end of defineCommand(). I wish all features were that easy to implement!
Libraries / Re: Scenario 3.0
The long-awaited Scenario 3.0 is finished!  I did some major refactoring on the codebase, documented the important methods in the JS file, and as per alpha123, added diagonal support to facePerson.  I refrained from incorporating the diagonal support in movePerson (renamed from walkPerson in 2.1.1) as it would require modifications to the way the step count is calculated, as walk speed is implemented as a vector with independent X and Y speeds.  Maybe that'll make it into 3.1...
Then you should be using an OpenFileDialog instead of a FolderBrowserDialog anyway! :)

Also, a bug (or maybe just an annoying "feature" ;) ) I found: Running the project collapses all folders in the project viewer, every single time.  VERY annoying.  I swear there was another bug I found, but I can't remember what it was now... oh that's right, you can't open a file from the project explorer by pressing Enter, it just dings at you instead.

Oh, and maybe add an option to change the font for the project tree?  Again, the default one is too small on my 1920x1080 laptop display.  Speaking of which, thanks for changing the default for the script editor from Courier New to Consolas, the latter is a much nicer font for programming.
Libraries / Re: [Script] Tweens
Wow, this is nice, much more powerful than the version of this I did for Specs ("Fader"), which is exclusively linear.  I think I'll end up using this instead!
Hey, I figured out a solution to the folder dialog issue: Just use an OpenFileDialog with the filter set to only show the correct filename--engine.exe or config.exe.  I've seen a couple apps do this when the executable to be located has a known filename (e.g. foobar2000 with encoders).
I read well...  :-[. Haha, thanks, now I can finally ditch the old-as-hell default editor!
That automatic mirroring functionality looks handy!  Your editor is already miles ahead of the stock editor, Radnen, and it keeps getting better. :). Now all it needs is the ability to change the script editor font and tab size and I'll use it exclusively...