Coder Social home page Coder Social logo

chringo / ssp Goto Github PK

View Code? Open in Web Editor NEW
10.0 15.0 0.0 250.09 MB

Large game project at the Blekinge Institute of Technology

License: Apache License 2.0

C++ 78.39% C 16.67% Objective-C 4.57% HLSL 0.17% CMake 0.19% Lua 0.01%
bth blekinge institute technology directx game

ssp's People

Contributors

acemice avatar apakakan avatar chringo avatar draculavid avatar galthukan avatar martinclementson avatar murbruksprodukt avatar pistonnoob avatar pixet93 avatar relinkz avatar soetfisk avatar surethang94 avatar tobbethestalker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ssp's Issues

Feature Request Camera function Center-Based-On-Ray/Vector

As a level editor dev, i want a function that receives a ray consisting out of 2 XMVector3's (maybe also overload taking XMFLOAT's) that when called, centers in the directions of that ray. this feature may just require the direction of the ray and not the origin.

Three questions of Physics Data.

1: What type of information needs to be communicated?
2: How will the information be communicated?
3: How will the information be received, interpreted and possibly stored?

Repository maintenance preparing for decentralised workflow

With this issue, a project page called "Task board" has been introduced. Its' purpose is to list tasks created via issues or simple notes created directly on the project page. Notes should be created at minimum and only for very minor tasks.
The course has ended and the semester is nearing its' last days. This means that nearly everything will be done digitally on our Discord channel and here. This is the "decentralised workflow" which the git repository must be enabled for, hence, the new project page and the future tasks created on it. Please put your issues on it accordingly, making them public. Perhaps there are others that would like to aid you?
If you have any suggestions or would like to discuss the task board or the future working process for this repository, feel free to add a comment here or on Discord.
In any case, this is our legacy of SSP which I believe will grow slowly but steady with time. Good luck with your careers!

Figure out a solid solution exporting logic from editor and importing it to ssp

In SSP, entities communicate with each other by being subjects and observers. A lever, button or any other trigger entity is the subject for other entities. These other entities are observers to this entity and are added to the subjects' list.
Hypothetically in the editor, entities are linked with each other with a tag index. Entities that should observe an entity such as a button has the same tag index as the button. It's believed that the tag index is used only in the editor and in the process of importing a level which happens in level state.

Hypothetically in SSP during the import of a level, we want to import the subject with a tag index and if an entity is observing this tag index we want to connect these by adding the observer to the subject.

Degree or Radian?

Syncing between the different components and parts of the system when using in this case: rotations.
The Editor uses degree and physics uses radians. This is now part of a bug where platforms graphic component is rotated (unintentionally) but the bounding boxes are not.

The IDs are not consistent between connected systems

The situation is the following:

Both the Host and Clients systems is identical:
Player1 EntityID = 1
Player2 EntityID = 2
Ball1 EntityID = 3
Ball2 EntityID = 4

The way we update them over the network is by sending the update together with the ID of the entity.
Then when the client receives the packet, it will check the ID and do one of the following things:
if ID == 1
Player2->GivePacket()
if ID == 2
Player1->GivePacket()
if ID == 3
Ball1->GivePacket()
if ID == 4
Ball2->GivePacket()

untitled
The problem is that if we have a condition like this:
if (Player1 && Ball1)
//Do something

it will mean different things on other machines since the object that got moved on one system is not the one moved on the other system.

This is NOT that great of a deal currently since this only involves ONLY the Player1,Player2,Ball1,Ball2 variables in 'LevelState'. The only place we currently uses Fields is to change level between maps, and then the condition is only if both players is inside the field, which both will be on both systems.

NOTE: I only put up this issue to clear this up. If you still have question on what to or not to do, just come and ask me.

How shall the resource handler be used in the engine?

Currently the graphics handler uses the resource handler to get data for rendering.

But there has been talk about using the resource handler in other places of the engine. For example, the animation handler will need animation data quite frequently. And the game(engine) should trigger the "load level" events when moving to a new level.

Currently the resource handler is a singleton. but we might face big issues going forward if we access the data on multiple threads.

Need confirmation check

Security check to see that I didnt break Everything in the cleanup I've done in the EditorCleanup branch

Resource Lib: Expanding a resource handlers data holder makes data go away

Every handler has a set amount of resource containers at start. When this is exceeded it is expanded.

every handler has a vector that holds the data.
Then an unordered_map that holds pointers to that data.

When pushback happends in the dataVector. Every element is copied into new elements.

This makes the pointers in the unordered_map completely obsolete.

How can i get around this?

Camera yaw

Sometimes the mouse input wont register yaw, im on it. Just restart the game if it happens. Let me know if it becomes too much of a problem.

Velocity on ball and ragdoll state

If the player is left in ragdollstate on a moving platform and the players ball is resting on that platform, the player will not be able to leave ragdoll state

Intersect correction bug

There is a bug that causes the object to dissapear when an object has great force and are stuck between two AABBs.

Screen tearing in dev

There is screen tearing in the development branch. One probable reason is the introduction of dynamic objects in LevelState.

Gravity is too low

I noticed when the character is supposed to fall down he falls too slow. This allows for the character to run in the air, which allows him to run over gaps, such as the gap at the end of the intro level. The forward velocity is greater than the velocity down i think.

Shaders needs to move to Assets folder

In order to make an installationfile we need to get some spring cleaning done, the only one remaining are Shaders. This is for the moment read from "SSPSolution/graphicsdll/Shaders" instead of "SSPSolution/Assets/Shaders".

I've changed so that the hlsl are read from the Assets folder in the shader code but DirectX screams in agony if I remove the "SSPSolution/graphicsdll/Shaders" folder. The linker is dependent on something here

RAGDOLL physics components can get stuck

When the player is in animation state, the physics components is not updated with the along with the animation components. This can be problematic when objects interact with this. Possible frame drops

How do we integrate animations in the system?

The dependencies that are to be required for the animations is the ResourceLib (to gain access of the skeleton and animation data). The overall structure of handling animations in the engine is currently none. Several people are required to solve this matter,

Animation bug: BALL_IDLE to IDLE when pickup

When a player pick upp the ball of the other player, the player will after a prief period leave BALL_IDLE state and play IDLE state. This will be reset when the player moves

Clean up the editor

There is some major issues due to unstructured code in the level editor. This needs to be attended to.

Prepare the project for release-build

There are probably several unknown problems that prevent us from running it in release-build. The more we stall this issue the harder it will get to solve it.
If you encounter a problem or solved something that helps us build in release, please log it in this issue so that we can perhaps run it in release eventually.

std::map is slow

It might be a good idea to change std::map in Subject to something else since it is really slow.

Issue with running skeletal animations in Release mode.

Many crashes happens with handling XMMATRIX and std::vectors in functions like InterpolateKeys, to play and interpolate animations. Looking at the animation components, they seem to be fine, although further checks with these need to be made, to further isolate what the problem might be.

Any ideas what could possible cause these crashes? Could the data I get from resources be corrupt or could just handling XMMATRIX and std::vectors be an issue.

Do we need to upload files compiled in the editor?

There are a few files that are generated each time we build the editor beginning with moc_*. We might not need to include these in the repository if they are generated at each build. However, they might be needed if we're supposed to run the editor outside of VS. This would mean that we commit these "moc"-files at each release.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.