Jump to content
  • Advertisement

kytoo

Member
  • Content Count

    19
  • Joined

  • Last visited

Community Reputation

181 Neutral

About kytoo

  • Rank
    Member

Personal Information

  1. Project-> Properties -> C/C++ -> General -> Additional Include Directories : add the catalog where u header files exist.
  2. Of course, first of all, it is feasible to write a generic framework, but it needs a very long time to work for a generic framework,i am spent a few years time to complete my generic framework.   some advice you can begin your work with other open source framework , it will save you time, and can refer or change it.   the most important that is object[data] management and interface management, you can try to do something, and as the base of you next game.
  3. The best way is to write a component manager to manage these component, his will ensure that all component be added. public class SpartanKing : PlayerShape  { } public class PlayerData : MonoBehaviour  { } public class ComponentManager : MonoBehaviour {     void Start() { Addcomponent<SpartanKing>(); Addcomponent<PlayerData>(); //and so on } } public class Player : MonoBehaviour {     void Start() { Addcomponent<ComponentManager>(); } }
  4. If you decide to go with dynamic linking then and i Suggest you use plugin architectures, and here is a render framework called [Ogre](www.ogre3d.org) using this technology.   If you want your architecture more better, here is a plugin architectures[NFrame] and all code modular in this frame. it require five functions to run a module like this:    virtual bool Init(); virtual bool AfterInit(); virtual bool Execute(const float fLastFrametime, const float fStartedTime); virtual bool BeforeShut(); virtual bool Shut();   You can register a interface of this module to a plugin and not export c++ class, so all logic depend upon abstractions and not depend upon concretions.
  5. some advice:   1: learn how to use a network to establish a connection between two applications.[It is recommended to use TCP] 2:how to transfer a message(safety) between server and client;[ yes, u can use Google Protocol buffers , its a good choose] 3:now you can deal with your agreement, such as pick up item or use a skill; 4:them, u can do some to save data and load data when player online.   there have a opensource solution written by me,it contains those I said above.https://github.com/ketoo/NoahGameFrame
  6. kytoo

    Gaming server

    Some advice : Whether you learn what kind of game servers, network library is need to understand. To learn fastly, u  need't have to study very deep professional knowledge,  we can learn such as how to accept and send a message with a network, them we can learn how to manager some object Scientific and efficient.   As you know these, you can see  this open source project?There have a solution for making a MMo game written by c++(client:Unity and c#), the website: https://github.com/ketoo/NoahGameFrame
  7. and the network in this website: https://github.com/NFGameTeam/NFNET   i have used it in my online game and it easy to learn. //1:init NFINet* m_pNet = new NFCNet(nHeadLength, this, &NFINetModule::OnRecivePack, &NFINetModule::OnSocketEvent); m_pNet->Initialization(strIP, nPort);//as server //m_pNet->Initialization(nMaxClient, nPort, nCpuCount);//as client //2:call it in every frame m_pNet->Execute(fLastFrametime, fStartedTime); there have a demo what how to use the network   https://github.com/ketoo/NoahGameFrame/tree/develop/NFServer/NFLoginNet_ServerPlugin //as server   https://github.com/ketoo/NoahGameFrame/tree/develop/_Out/Server/ClientBin/source  //as client   if u have and question please contact the author.
  8. There have a solution for making a MMo game using Unity,its free and opensource. It have a stablish network(include client's network write by c# and server's network write by c++[libevent] ).   the website: https://github.com/ketoo/NoahGameFrame features:   1: it is easy to use interface oriented design minimise the effort; 2: extensible plugin framework makes getting your application running is quick and simple; 3: clean, uncluttered design, stable engine used in several commercial products; 4: using the actor model has very high performance(by theron); 5: based on the event-driven and attribute-driver can make business more clearly and easy to maintenance; 6: based on the standard c + + development, cross-platform support; 7: with existing c++, c# game client for rapid development;   if u r interest to use this frame, pelased contact the author without hesitation.
  9. kytoo

    MORPG Basic logic

    normally,You can send an event when it happens. but this is very abstract and  there are a lot of work to do.   for example, a palyer or a NPC information changes (for instance 'HP'), you should send it(using network module organized into a package) when it changed(HP =100  -> HP =50).   Here I have a code in disguise, NFIObject* pObject = new NFCObject(NFIDENTID(0, 1), pPluginManager); pObject->GetPropertyManager()->AddProperty(pObject->Self(), "HP", TDATA_STRING, true, true, true, true, 0, ""); pObject->SetPropertyInt("HP", 100); pObject->AddPropertyCallBack("HP", this, &HelloWorld2::OnPropertyCallBackEvent); pObject->SetPropertyInt("HP", 50); int HelloWorld2::OnPropertyCallBackEvent( const NFIDENTID& self, const std::string& strProperty, const NFIDataList& oldVarList, const NFIDataList& newVarList, const NFIDataList& argVarList ) {     //it will be call when 'HP' has changed, u can send message in this funciton, like this:   NFMsg::ObjectPropertyInt xPropertyInt;             NFMsg::Ident* pIdent = xPropertyInt.mutable_player_id();             *pIdent = NFToPB(self);             NFMsg::PropertyInt* pDataInt = xPropertyInt.add_property_list();             pDataInt->set_property_name( strPropertyName );             pDataInt->set_data( newVar.Int( 0 ) );             for ( int i = 0; i < valueBroadCaseList.GetCount(); i++ )             {                 NFIDENTID identOld = valueBroadCaseList.Object( i );                 NF_SHARE_PTR<BaseData> pData = mRoleBaseData.GetElement(identOld);                 if (pData.get())                 {                     NF_SHARE_PTR<ServerData> pProxyData = mProxyMap.GetElement(pData->nGateID);                     if (pProxyData.get())                     {                         SendMsgPB(NFMsg::EGMI_ACK_PROPERTY_INT, xPropertyInt, pProxyData->nFD, NFIDENTID(0, pData->nFD));                     }                 }             }         }    return 0; } this code is my open source engine tutorial code[http://www.yowoyo.com/forum.php?mod=forumdisplay&fid=46] details you can refer at https://github.com/ketoo/NoahGameFrame
  10. if dont use a framework to create from  scratch, it will have a lot of work to do.
  11. kytoo

    best methods: data driven code

    Most of the game to achieve data driven is through configuration files and scripts to do, but I think it would increase the programmer's maintenance costs. In my project, I designed a virtual logic class module, as follows https://github.com/ketoo/NoahGameFrame/blob/develop/_Out/Server/NFDataCfg/Struct/Class/IObject.xml   this website is the cpp code: https://github.com/ketoo/NoahGameFrame/tree/develop/NFComm/NFConfigPlugin   Then I add any configuration dynamically through this file without the need to change any c + + code, but it can capture increases the configuration of the c + + code any changes. The 'cpp class' implement a set of mechanisms through XML configuration files.  you can get calls by registering callback function when these properties changes at run time and not just a static configuration file.   This technology has been used in my game, if u r interested u can download and have a look. https://github.com/ketoo/NoahGameFrame
  12. hi,   if u use unity3d as u client engine u can use my open source as u server frame[write by c++].[https://github.com/ketoo/NoahGameFrame] it has  stable client code[with net module, write by c#] and it has a lot of existing functions, such as account authorize module, switch scene module, the property manager of role, and so on.   u can embedded it into your app easily.
  13. You could build a game server independently not dependent the game center of apple store. there are many other reasons to require you to use your own server.   for example, to support the android game, or adjust different rewards by people'rank when u dont want to recompile the application.
  14. kytoo

    TCP clients-servers-servers

    there have a game server frame maybe suitable for u, it use libevent as netlibrary, maybe u can use it as a reference.   my company use it  to develop a server and support tens of thounsands of people online at the same time in a gameserver's process.   website:https://github.com/ketoo/NoahGameFrame
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!