Alexander Orefkov

Members
  • Content count

    24
  • Joined

  • Last visited

Community Reputation

186 Neutral

About Alexander Orefkov

  • Rank
    Member

Personal Information

  1. Hot Beach Volleyball

    Screenshot from alpha-version of "Hot Beach Volleyball" mobile game.
  2. Hot Beach Volleyball screenshots

    Screenshots from developed by me game "Hot Beach Volleyball"
  3. Hot Beach Volleyball - developing

    Hi All! I started developing a mobile game for android and I want to share the results already achieved. Game - Beach volleyball. I really like beach volleyball. Well, at least, look how the girls play in it What else to dream in a snowy Russia, how not about the sun, the sea, hot sand and beautiful girls in a bikini? Therefore, I wanted to have in my phone a game that allows me to pleasantly pass the time, throwing a virtual ball through a virtual net. Modern smartphones already allow the use of powerful graphics, and I expected to easily find a similar game, but when I tried to find games about beach volleyball on my Android device, I was disappointed. Existing games had either bad graphics or bad gameplay. And most often both at once. So I decided to do it myself (if you want something to be done well - do it yourself). When creating the game, I'm inspired by such games as "Summer Heat Beach Volleyball" and "Dead or Alive Xtreme Beach Volleyball". Of course, with the amendment to the fact that the game will have to work on mobile devices. The main idea of the game concept is a fast and fun gameplay, with large plans for the playing field, so that the characters and the field itself occupy most of the screen. Smooth and intelligent movement of the camera, giving the most profitable overview of the game moments. Possibility of slowmo replay of game moments and viewing them from any point of view. There will be approximately 3-4 different game locations and 6-10 characters, from which the player will be able to compose commands arbitrarily. Part of the locations and characters are initially locked and open as the game progresses. Each character has its own values of the game characteristics. For fans of the strategic direction of the game will be the ability to develop the characteristics of each of the characters and lead the management of teams, as the characters will also have different coherence when playing in a team with other characters. This is the current stage: This is the screencast of the current alpha version of the game. There is work on the playing according to the rules. While the bots simply beat the ball back with the addition of a random change to the speed of the ball. Worked the order of the serves, the presence of the goal, the change of the court, counting scores. The game is up to 5 points with a matchball. After the victorious dance, a new party begins. Video sometimes slows down due to the recording of the video itself. When the recording is not conducted, the FPS is stable 55-60. Device Yotaphone 2 (2014 year, Qualcomm Snapdragon 800, Adreno 330, 2GB RAM), FullHD. Just now you can not control characters, only pause game and move camera by joystick in pause state. Who wants - can download apk. For creating game I used Urho3D engine. Models was created in Makehuman and Blender, animations are standard from mixamo. In the future I plan to make mocap with kinnect for animation. To raise funds for the game, I started a campaign on Indiegogo Please, if possible, share links to the campaign, so that as many people can learn about the upcoming game. My main site
  4. Chaining methods for host api objects.

    In my host app I have simple ostream'like object with metods, returning reference for self, for chaining methods. For example class MyBuffer { MyBuffer& operator<<(const string& s) { ... return *this; } MyBuffer& operator<<(int i) { ... return *this; } }; I register it as RegisterObjectMethod("MyBuffer", "MyBuffer& opShl(const string&in)".... and so on. Another object has member with type MyBuffer. For example, class Responce { .... MyBuffer body; .... In script I write function which I call from app: void handler(Responce@ res) { res.body << "Hello " << 1 << " world!" } But even in for first call for string "Hello" - AngelScript attemp create temp copy of MyBuffer and call method of temp var instead of real object. asEP_ALLOW_UNSAFE_REFERENCES is on. How I can implement chainig of methods call?
  5. Enumerate factories behaviours

    O, many thanks!
  6. Enumerate factories behaviours

    I create script api dumper and use that code: for (asUINT m = 0, mc = type->GetBehaviourCount(); m < mc; m++) { asEBehaviours bh; asIScriptFunction* pM = type->GetBehaviourByIndex(m, &bh); if (bh == asBEHAVE_CONSTRUCT || bh == asBEHAVE_DESTRUCT || bh == asBEHAVE_FACTORY) Log::WriteRaw(String(pM->GetDeclaration(false, false, true)) + ";\n"); } But for references types their factories not appear in list. I explore the code in GetBehaviourByIndex - in behaviours list include only ctors: // For reference types, the factories are also stored in the constructor // list, so it is sufficient to enumerate only those if( index - count < beh.constructors.GetLength() ) { if( outBehaviour ) *outBehaviour = asBEHAVE_CONSTRUCT; return engine->scriptFunctions[beh.constructors[index - count]]; } else count += (asUINT)beh.constructors.GetLength(); But I can not find , where the factories is pushed to ctors list.  
  7. Array with objects handles

    Many thanks!
  8. Array with objects handles

    I was used 2.30 version and has that code: interface ISomeIface { ... }; array<ISomeIface@> ifaces; void func(ISomeIface& i) { ifaces.insertLast(i); } And that work fine. Now I upgrade to last svn version, and code become fall with exception. I debug it - in CScriptArray::SetValue value sended as pointer, not as handle, but template subtype has asTYPEID_OBJHANDLE flag and do unreference, that broke all. It worked, if I change code as: void func(ISomeIface@ i) { ifaces.insertLast(i); } or void func(ISomeIface& i) { ifaces.insertLast(@i); } What wrong in my first code? Why behavior is changed? Seems early compiler automatically convert value to handle, based on template type.
  9. Support for unicode identifiers

    Andreas, for my purposes, it works very well. But there was a small problem. Writing using non-English identifiers, together with English keywords frequently makes changing the keyboard layout. Is it possible to make the registration of a callback that will be called when parsing identifiers to identify the key words? Then I and my users to be able to use non-English translation for keywords.
  10. Support for unicode identifiers

    Big thanks!
  11. Support for unicode identifiers

    O, thanks! Accept any characters above 128 as valid - is good enought for me. At now I have to make each time the same changes to the sources in my projects.
  12. Support for unicode identifiers

    Hi, Andreas. Is it possible - add in lexer support for  identifiers with unicode class "letter" symbols? I planned write little orm for database, and some fields has cyrillic symbols in his names. On JavaScript, C#, or modern C++ we have not problem wrote "someObject.????? = 10", but on AngelScript it is impossible :(    
  13. Does parameters names stored?

    O, it works!!! Many thanks, Andreas!
  14. Does parameters names stored?

    Hi. I try use this code to get param names: ... asIScriptFunction* pMeth = pType->GetMethodByIndex(i); for (unsigned l = 0, m = pMeth->GetParamCount(); l < m; l++) { const char *name, *pDef; int typeID; pMeth->GetParam(l, &typeID, 0, &name, &pDef); ... but has no param names, no default values. How I can get it?
  15. Register system function after build

    Thanks for reply, Andreas. I will try some redisign my architecture for it. I create some extention/plugin programm for some commercial app, which not have public documented api, and their "liver" little changed from version to version. And users may have and worked with any different version of that app, sometimes even at the same time. At first I wrote in C++, but now support interoperability with multiple versions at the same time - has turned into hell - changed func address, signatures, virtual table order, offsets in structs and many others. So I decided to port my software to the AngelScript. Now core of my programm first created some intermediate layer for call native function from extending app, and than run script on AngelScript. And intermediate layer partially prepared with module on AngelScript too - I was simply register in script engine some of their "RegisterNNN" func :)   For example: int registerObjectType(const CStringMy& objectName, unsigned size, unsigned typeFlags) { return asEngine->RegisterObjectType(CStringA(objectName), size, typeFlags); } AS_FUNC(regType_as, "int registerObjectType(const string& in,uint,uint)", &registerObjectType); int registerMethodByAddres(const CStringMy& object, const CStringMy& method, unsigned addr, unsigned cc) { if (object.IsEmpty()) { return asEngine->RegisterGlobalFunction(CStringA(method), asFUNCTION(addr), cc, 0); } else { asSFuncPtr p(3); *(unsigned*)p.ptr.dummy = addr; return asEngine->RegisterObjectMethod(CStringA(object), CStringA(method), p, cc, 0); } } AS_FUNC(regMetAddr_as, "int registerMethodByAddress(const string& in,const string& in,uint,uint)", &registerMethodByAddres); First I created "compatible" module and run it, it register API functions depending on version of running parent app, and than I create main module, which do main work. But now I have developed some kind of declarative description for the creation of an intermediate layer for different versions, and the need for such a decision unnecessary.