Atom Project: The hybrid server

Page 39 of 56 FirstFirst ... 29313233343536373839404142434445464749 ... LastLast
Results 571 to 585 of 838
  1. #571
    Account Upgraded | Title Enabled! Xavi. is offline
    MemberRank
    Jul 2010 Join Date
    At Home.phpLocation
    708Posts

    Re: Atom Project: The hybrid server

    Alright, I'm looking forward to more updates :) I like following this as it progresses

  2. #572
    Atomic Developer lab-hotel is offline
    MemberRank
    Apr 2007 Join Date
    261Posts

    Re: Atom Project: The hybrid server

    Updates

    Atom, Retro Rails
    During these days without any access to the interwebs, I've remade the entire GUI engine of the old Retro Rails, so I've ported it to Mac and made the basic controls classes (TextEntry, Button, etc.). And I've made a remote installer to Atom that will be available when you download the server. In the installer you can create the admin user, select through Habbo versions etc. And the installer will do all the work you need, such as creating MySQL tables, etc. The code will be released so developers can build their own multiplatform installers to their applications.

    Developer Information
    Even if the Mac version of the GUI is made in Objective-C, you don't need to know it to build your application, as the GUI has three layers:

    1. Frontend (C++)
    The project that contains the application windows, etc. This projects depends on gui_controls and gui_core

    2. Controls (C++) - gui_controls
    The static library (.lib/.a) that contains the controls such as Button, Frame, TextEntry, etc. code. It will be linked to the Frontend

    3. Core (C++/Objective-C) - gui_core
    The dynamic library (.dll/.dylib) that contains the core code, this project will communicate directly with the Operating System.


    The GUI API is very easy to use, and all the controls (including windows) derives from Panel class.
    Code:
    class Panel : public IBaseClient
    {
    	GPANEL gpanel;
    public:
    	GPANEL GetGPanel() { return gpanel; };
    
    
    	void SetStretchFlags(int flags);
    	void SetName(const char* name);
    	const char* GetName();
    	void LoadControlSettings(char* filename);
    	bool IsPopup();
    	void SetPopup(bool state);
    	SurfacePlat* Plat();
    	void SetPlat(SurfacePlat* plat);
    	virtual void Paint() { };
    	void PaintTraverse();
    	void Invalidate();
    	void SolveTraverse();
    	int GetChildCount();
    	GPANEL GetChild(int i);
    	GPANEL GetChild(const char* name);
    	void Solve();
    	GPANEL GetParent();
    	void SetParent(GPANEL panel);
    	bool IsVisible();
    	void SetVisible(bool state);
    	void GetSize(int &wide, int &tall);
    	void GetAbsPos(int &x, int &y);
    	void GetPos(int &x, int &y);
    	void SetSize(int wide, int tall);
    	void SetPos(int x, int y);
    	GPANEL GetPanelAt(int x, int y);
    	HCursor GetCursor();
    	void SetCursor(HCursor cursor);
    	virtual void SetProp(KeyValues* prop) { };
    	virtual void MousePressed(int key, int x, int y) { };
    	virtual void MouseMoved(int x, int y) { };
    	virtual void MouseReleased(int key, int x, int y) { };
    	virtual void OnChar(char c) { };
    	virtual void GotFocus() { };
    	virtual void LostFocus() { };
    
    
    	bool HasFocus();
    
    
    	void InternalMouseMoved(int x, int y);
    	void InternalMouseReleased(int key, int x, int y);
    	void InternalMousePressed(int key, int x, int y);
    	void PostActionSignal(KeyValues* message);
    
    
    	virtual MessageMapItem_t* GetMessageMap() { return 0; };
    	Panel(void);
    	~Panel(void);
    };
    The main procedure:
    Code:
    int main(int argc, char* argv[])
    {
    	AlertCWD();
    	
    #if _WIN32
    	CSysModule* gui = ::Sys_LoadModule("C:\\hpm\\gui_core\\Debug\\gui_core.dll");
    #else
    	CSysModule* gui = ::Sys_LoadModule("libgui_core.dylib");
    #endif
    	CreateInterfaceFn factory = Sys_GetFactory(gui);
    
    
    	bool bb = GUI_InitInterfaceList(&factory, 1);
    
    if(!bb)
    return 0;
    
    
    	CAtomInstallWizard wiz;
    	wiz.SetPos(100, 100);
    	wiz.SetSize(465, 540);
    
    
    	surface()->CreatePopup(&wiz);
    	while(true)
    	{
    		surface()->RunFrame();
    	}
    }



  3. #573
    beep Bui is offline
    MemberRank
    Jan 2012 Join Date
    United KingdomLocation
    459Posts

    Re: Atom Project: The hybrid server

    Why not just use a cross-platform UI solution?

  4. #574
    Atomic Developer lab-hotel is offline
    MemberRank
    Apr 2007 Join Date
    261Posts

    Re: Atom Project: The hybrid server

    Quote Originally Posted by Funixeh View Post
    Why not just use a cross-platform UI solution?
    Because when I did it, I was without internet access. (and, in fact, i like to write my own code)
    Anyway, developers can use any GUI system they want.

  5. #575
    Account Upgraded | Title Enabled! Xavi. is offline
    MemberRank
    Jul 2010 Join Date
    At Home.phpLocation
    708Posts

    Re: Atom Project: The hybrid server

    Any updates? Still looking forward to the release of alpha

  6. #576
    JustLikeMeForNoReason Kaan2106 is offline
    MemberRank
    Nov 2007 Join Date
    282Posts

    Re: Atom Project: The hybrid server

    Uh la la nice updates, Lab!
    i can't wait, it's soooo OMG.... :D

    after the release i'll hug you so hard it hurts >:D

  7. #577
    Atomic Developer lab-hotel is offline
    MemberRank
    Apr 2007 Join Date
    261Posts

    Re: Atom Project: The hybrid server

    Updates

    Atom
    I'm fixing some issues that appeared out of nowhere and I plan to open the test server again before the Alpha release since I have changed most of the server classes
    Rewritten Plugin engine. Kernel classes are no longer exposed to plugins. Instead, class wrappers (abstract classes) are exposed, so the plugin cannot access and/or change critical functions and fields like user rank, password etc.

    By the way, I'm coming back to school tomorrow, so I will have less time to keep Atom updated.
    Last edited by lab-hotel; 01-08-12 at 01:16 AM.

  8. #578
    Valued Member Crup is offline
    MemberRank
    Aug 2010 Join Date
    147Posts

    Re: Atom Project: The hybrid server

    I hope you'll return and continue with the project.

  9. #579
    Atomic Developer lab-hotel is offline
    MemberRank
    Apr 2007 Join Date
    261Posts

    Re: Atom Project: The hybrid server

    Updates

    Atom
    Fixed a bug on Mac systems that would cause a FileNotException at launch time due to a statically allocated SimpleDateFormat (seems to be a Java runtime bug)
    Implemented database cache. Room loading time with average items amount jumps from 130ms to 19ms.
    Fixed several bugs on database cache.


    @Crup
    I'm not going to stop updating Atom, but updates will be made in a larger timespan.
    Last edited by lab-hotel; 01-08-12 at 04:01 AM.

  10. #580
    Alpha Member Zak© is offline
    MemberRank
    Oct 2007 Join Date
    2,693Posts

    Re: Atom Project: The hybrid server

    Quote Originally Posted by Ethicks View Post
    It's only been asked by a million people, it's best to close your mouth and wait for the release instead of being a pesty child.
    Nothing wrong with asking...

    Anyhow the developer has asked me to run this beauty one more time, so expect a test hotel soon.

  11. #581
    Atomic Developer lab-hotel is offline
    MemberRank
    Apr 2007 Join Date
    261Posts

    Re: Atom Project: The hybrid server

    During this long time without updates, I was running Atom in a home server that received a stress test with many connections, bots mounted as normal users walking, surfing through rooms and talking randomly.

    Updates

    Atom
    Made several changes to the MySQL database engine that should make items, rooms and etc loading much faster.
    Fixed a bug where MySQL would stop working with a large amount of active connections.
    Fixed a bug where walking to a non existent position on the room (x < 0 || y < 0 || x >= maxX || y >= maxY) would lead the room to crash.

    The next test session will be focused on stress testing as local stress testing is a lot innacurate. I will see if I can place the server in one computer and the MySQL server on another. (I would probably need two VPSes on the same network)
    Last edited by lab-hotel; 12-08-12 at 04:53 PM.

  12. #582
    Account Upgraded | Title Enabled! AWA is offline
    MemberRank
    Feb 2008 Join Date
    1,320Posts

    Re: Atom Project: The hybrid server

    x >= maxY?

  13. #583
    Old Habbo Developer AresCJ is offline
    MemberRank
    Jan 2009 Join Date
    USALocation
    1,183Posts

    Re: Atom Project: The hybrid server

    Quote Originally Posted by AWA View Post
    x >= maxY?
    If I'm not mistaking that's x coordinates greater than or equal to the max Y coordinates of the room.

  14. #584
    Atomic Developer lab-hotel is offline
    MemberRank
    Apr 2007 Join Date
    261Posts

    Re: Atom Project: The hybrid server

    Quote Originally Posted by AWA View Post
    x >= maxY?
    Quote Originally Posted by AresCJ View Post
    If I'm not mistaking that's x coordinates greater than or equal to the max Y coordinates of the room.
    My mistake. Should be x >= maxX.

  15. #585
    Alpha Member Caustik is offline
    MemberRank
    May 2011 Join Date
    LondonLocation
    1,837Posts

    Re: Atom Project: The hybrid server

    Lab, if you need a server, you could use a dedi I have (not sure how long it lasts for, though).
    Just PM for further details :).



Advertisement