Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: Groogy's Development Environment  (Read 5646 times)

0 Members and 1 Guest are viewing this topic.

Groogy

  • Hero Member
  • *****
  • Posts: 1469
    • MSN Messenger - groogy@groogy.se
    • View Profile
    • http://www.groogy.se
    • Email
Groogy's Development Environment
« on: August 24, 2011, 07:19:48 pm »
Hi! Got a little addition to the Wiki. I've placed it under projects but it is not a project of it's own. It's an "environment" for use when developing applications with rbSFML making it much more easier.



The main feature is that it allows the developer to code while the application is running and the environment will adapt to the new code changes that has been made. So let's say we are sitting and moving a small sprite around a few pixels left and right trying to find the perfect place, this will let us do the change all in one go without having to restart the application.

I'm very open from other ruby users anything they would feel that could help their development. An idea is that I might eventually add a console window where you can attach watches easily to see the values of variables be changed at real time.

Example of it all in action:
[/img]

Youtube video: http://www.youtube.com/user/sirvogelius?feature=mhee
Developer and Maker of rbSFML and Programmer at Paradox Development Studio

Nexus

  • SFML Team
  • Hero Member
  • *****
  • Posts: 6286
  • Thor Developer
    • View Profile
    • Bromeon
Re: Groogy's Development Environment
« Reply #1 on: August 24, 2011, 11:51:49 pm »
Quote from: "Groogy"
The main feature is that it allows the developer to code while the application is running and the environment will adapt to the new code changes that has been made. So let's say we are sitting and moving a small sprite around a few pixels left and right trying to find the perfect place, this will let us do the change all in one go without having to restart the application.
That sounds very useful, unfortunately I'm not using Ruby ;)
Zloxx II: action platformer
Thor Library: particle systems, animations, dot products, ...
SFML Game Development:

Groogy

  • Hero Member
  • *****
  • Posts: 1469
    • MSN Messenger - groogy@groogy.se
    • View Profile
    • http://www.groogy.se
    • Email
Re: Groogy's Development Environment
« Reply #2 on: August 25, 2011, 12:10:09 am »
Quote from: "Nexus"
That sounds very useful, unfortunately I'm not using Ruby ;)
You should ;)
Well if you use purely C++ then that does exist for Visual Studio, kind of, don't always work.

I got the idea while watching Notch livestream for his Ludumdare project and noticed that he had the window for the game up while he was coding and when saved, the game was updated without him having to restart. Thought it was cool and since I saw it in action I really saw the usefulness and I thought "Why doesn't Ruby have it?" and made it :D

It was nice for like when doing the movement code for the camera you could instantly see the difference in the change. Or when programming enemies you can see their behaviour change directly without having to restart and walk the whole way there or code in special start conditions.
Developer and Maker of rbSFML and Programmer at Paradox Development Studio

Groogy

  • Hero Member
  • *****
  • Posts: 1469
    • MSN Messenger - groogy@groogy.se
    • View Profile
    • http://www.groogy.se
    • Email
Groogy's Development Environment
« Reply #3 on: August 28, 2011, 03:02:52 pm »
Alright added consoles and a resource loader to the environment.

Consoles let you easily display debug information and the like. I use it for instance in my loading screen to display what is currently being loaded and the progress.

And that leads to resource loader which will easily handle your loading in another thread without you having to worry. You can check in from time to time to see the progress and it should handle all types as long as it responds to the #load_file message. The advantage from this module is that you won't get huge pauses when loading and you will even be able to load while already in-game without any penalties(the thread is set to lowest priority so won't steal time from the main thread)

Here's example of them both being used in my game:
https://legacy.sfmluploads.org/file/61
But the loading thread has been manually slowed down for the clip so we can actually see it make progress. If I didn't then it would be done in less than half a second.
Developer and Maker of rbSFML and Programmer at Paradox Development Studio

Groogy

  • Hero Member
  • *****
  • Posts: 1469
    • MSN Messenger - groogy@groogy.se
    • View Profile
    • http://www.groogy.se
    • Email
Groogy's Development Environment
« Reply #4 on: September 30, 2011, 09:19:46 pm »
Alright been working some more and as time goes by I see more and more things that can be added to easy my development and then of course I include these into GDE.

Except for fixes I've added a Debugger module and Garbage thread.

Debugger Module
Should come up with a better name but for now it's called Debugger. What it lets us do is print common data to the screen at real time showing us the performance of the application. So far it is capable of showing us the FPS and the memory usage by ruby.

Garbage thread
Is now possible to create a thread that forces the garbage collector to be run from time to time. Because of the GIL we will loose a tiny bit of performance when using this but if you are creating a lot of temporary objects this is more or less necessary to keep a steady memory usage. Without it my basic application went up to 1mb pretty fast from few poltergeist objects.
Developer and Maker of rbSFML and Programmer at Paradox Development Studio