Comments (3)
Yes. I had this video sitting around for a while from since I was working on that project. I haven't touched the code for it in a really long time, and yes it's real.
from reframework.
That's really interesting! Is it possible to release this code even if it's unfinished? I'd like to take a look at it if you don't mind. Syncing entities in N:A is a bit tricky and your approach appeared flawless? Amazing!
from reframework.
Unfortunately no. At least, not in its entirety. There's a private library it's using that I'm not willing to make public. I wasn't developing it with other people in mind at the time. If it was developed with all open source libraries, I'd have open sourced it a long time ago. If I end up coming back to the project, I'd probably end up remaking it with all open source libraries.
To answer a few questions:
- It uses enet for packets.
- Player syncing involves keeping track of key state variables for the player (buttons, position, facing, etc...), as well as any animations. This is easy if you know where to find all this stuff, but since this is a mod, there's hooks all over the place to keep track of this data. Just a whole lot of reverse engineering on this part.
- The last thing I was working on was syncing of NPCs. I managed to get them to spawn, and sync their position and health, but that's about it. I didn't know how to control their AI routines and whatnot. This part was also kind of unstable and would crash sometimes.
Here's a little snippet of what exactly is synced:
namespace nier_client_and_server {
struct PlayerData : public PacketT<ID_PLAYER_DATA> {
bool flashlight;
float speed;
float facing;
float facing2;
uint32_t weaponIndex;
uint32_t podIndex;
uint32_t heldButtonFlags;
Vector3f position;
};
struct AnimationStart : public PacketT<ID_ANIMATION_START> {
uint32_t anim;
uint32_t variant;
uint32_t a3;
uint32_t a4;
};
struct ChangePlayer : public PacketT<ID_CHANGE_PLAYER> { };
struct Buttons : public PacketT<ID_BUTTONS> {
uint32_t buttons[Entity::CharacterController::INDEX_MAX];
};
}
namespace nier_client {
}
namespace nier_server {
template<uint32_t idT>
struct EntityPacket : public PacketT<idT> {
uint32_t guid;
};
struct EntitySpawn : public EntityPacket<ID_SPAWN_ENTITY> {
char name[0x20];
uint32_t model;
uint32_t model2;
EntitySpawnParams::PositionalData matrix;
};
struct EntityData : public EntityPacket<ID_ENTITY_DATA> {
float facing;
float facing2;
uint32_t health;
Vector3f position;
};
}
from reframework.
Related Issues (20)
- REFramework Caused RE4 To Crash Even After Using Fresh Download HOT 6
- Resident Evil 4 Remake Crashes
- RE4R crash
- DD2 Random Crashes with 816 HOT 2
- RE8 controllers doesn't work HOT 1
- Can't change the camera to first person in RE 8 DLC Shadow of Rose VR
- WHOLE PC freeze after using REFramework on RE4 HOT 3
- DD2 : Crash on launch if i remove openvr and openxr on Linux/Proton HOT 1
- DD2 - Returning sdk.create_managed_string(str) crashes the game. HOT 1
- imgui.input_text boxes deselect, preventing text input HOT 4
- RE2 reframework does not initialize "exception thrown" HOT 2
- re4 Game crashes when opening HOT 10
- How to turn off VR-controllers vibration
- RE8: How to stop horizontal camera movement?
- RE8 Crashes on Startup
- RE7 crashes on logos
- RE4 Crashing With Scope Deinterlacing HOT 1
- RE7 Main Menu unusable - cutscenes unwatchable HOT 5
- [MHR] - Inputs being registered to the game at all times (with Input Passtrough off)
- Re , Re 7 and Village , dev mode pd upscaller #900 + dlss crash the game
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reframework.