Studio I work at has just announced the open beta of Landfall: [url]http://uploadvr.com/landfall-halo-wars-shooter-vr/[/url]
And some multiplayer gameplay:
[media]https://www.youtube.com/watch?v=979cR_dlPtU[/media]
[QUOTE=Asgard;51761718]Studio I work at has just announced the open beta of Landfall: [url]http://uploadvr.com/landfall-halo-wars-shooter-vr/[/url]
And some multiplayer gameplay:
[media]https://www.youtube.com/watch?v=979cR_dlPtU[/media][/QUOTE]
This is fucking awesome. This is essentially exactly what I was imagining making when I first got an oculus rift.
So I took a bunch of pictures of stoneshill from chiv, stitched them together, and used them to test out the map editing tools
[IMG]https://dl.dropboxusercontent.com/u/9317774/smexy2.PNG[/IMG]
Which is fun. I just need to figure out what on earth I'm going to do about the floor in this situation. The assets are ok because even though they're rather hodge podge, they're kept rather together by the flat lighting and non existent texturing, but the floor is fundamentally a texture which will rather clash with everything else. I obviously can't make it a solid colour, but I can't make it not solid colours either due to the rest of the flat lighting/colouring. Anyone know what people normally do here?
[QUOTE=Icedshot;51761804]So I took a bunch of pictures of stoneshill from chiv, stitched them together, and used them to test out the map editing tools
[IMG]https://dl.dropboxusercontent.com/u/9317774/smexy2.PNG[/IMG]
Which is fun. I just need to figure out what on earth I'm going to do about the floor in this situation. The assets are ok because even though they're rather hodge podge, they're kept rather together by the flat lighting and non existent texturing, but the floor is fundamentally a texture which will rather clash with everything else. I obviously can't make it a solid colour, but I can't make it not solid colours either due to the rest of the flat lighting/colouring. Anyone know what people normally do here?[/QUOTE]
[IMG]http://th05.deviantart.net/fs71/PRE/i/2013/243/4/d/3_by_prusakov-d6khb94.jpg[/IMG]
[QUOTE=thejjokerr;51762035]This is my favorite style but I hate how unoriginal it is at the same time.
We need to think of something abstract, new and ~fancy~[/QUOTE]
It looks pretty at first glance, but it gets boring really fast.
[QUOTE=DrDevil;51762254]It looks pretty at first glance, but it gets boring really fast.[/QUOTE]
I think the main 'issue' with it is that this style, like pixel art, has a relatively low skill floor.
If someone who's a really good artist uses it then it will probably turn out good enough not to be bland, but that's not the case for everyone who can make something superficially pretty in these.
[QUOTE=WTF Nuke;51759993]entity component system[/QUOTE]
Is it cache friendly?
[QUOTE=Ziks;51760909][img]http://i.imgur.com/fDSn5uT.png[/img][/QUOTE]
Been playing The Witness lately?
[QUOTE=WTF Nuke;51759993]Ah screw it here you guys go the pre 1.0 release of my Entity Component System called EntityPlus! The github README is out of date and inaccurate, there are no tests except some meta programming ones in improper locations, the sample code is a benchmark attempt, there is barely any documentation, there is no non-exception support, I'm not sure if the exception support works either, I'm not sure if anything works the way it should, I'm not even sure if all the code compiles. The good news is it's header only!
So without further ado, here you go: [url]https://github.com/Yelnats321/EntityPlus[/url]
If you guys have any questions or criticisms I'd love to hear them, been working on this for a while so I'd love some feedback. There's also an event management system that is tied into it but you can probably figure it out (if it compiles and works). There's a lot of template magic so I assume MSVC 15+ needed, and probably any Clang/GCC version. Some dependent typenames may not be qualified too since MSVC is too lenient (but getting better!) so let me know about that too.
A tiny example of how to use the library:
[cpp]#include <iostream>
#include <entity.h>
// Wha wha wha no CRTP?
struct pls {
int x;
};
struct download {
float y;
};
int main() {
// Using verbose typelists has never been funner!
using comps = entityplus::component_list<pls, download>;
using tags = entityplus::tag_list<>;
entityplus::entity_manager<comps, tags> em;
auto ent = em.create_entity();
ent.add_component<pls>(3);
ent.add_component<download>(2.3f);
// Holy crap check out those lambdas that's insane!
em.for_each<pls, download>([](auto ent, auto &p, auto &d) {
p.x += d.y;
});
// What a modular design!
std::cout<<ent.get_component<pls>().x<<"\n";
}[/cpp][/QUOTE]
Speaking of that, some time ago I had an idea(and even tried to implement) a super simple concurrent ecs with systems working in their own threads, and World living in the main thread would just provide a collection of entities with each of them having a corresponding read-write-locked collection of components. So basically it all boils down to implementing a loop for each system to handle those collections. Not sure about the whole idea though.
I had a chat with a Wayland dev on freenode. I've confirmed that it is indeed impossible to screenshot user-specified windows on Wayland. Here's a snippet from our chat that I think sums up developing apps for Wayland currently.
[quote]
SardemFF7: (you could make a perfect DE-independent solution btw, it would be really nice, but really really hard ;-) )
naelstrof: oh you've got me interested
naelstrof: difficulty isn't part of the equation here
naelstrof: could you brief me?
SardemFF7: political and technical security difficulty
naelstrof: lmaoo
[/quote]
I don't know much at all about technical security, or politics. I don't remember either of these being requirements for making a shitty screenshot application. :huh:
[QUOTE=antianan;51763064]Speaking of that, some time ago I had an idea(and even tried to implement) a super simple concurrent ecs with systems working in their own threads, and World living in the main thread would just provide a collection of entities with each of them having a corresponding read-write-locked collection of components. So basically it all boils down to implementing a loop for each system to handle those collections. Not sure about the whole idea though.[/QUOTE]
This is relatively efficient if you use fibres/coroutines instead of full threads, but I have a hunch it wouldn't come close to a system that's manually optimised regarding its cache behaviour.
[QUOTE=LennyPenny;51762829]Is it cache friendly?[/QUOTE]
They are friends with benefits basically. Contiguous data for basically everything that cares about it.
[editline]1st February 2017[/editline]
[QUOTE=antianan;51763064]Speaking of that, some time ago I had an idea(and even tried to implement) a super simple concurrent ecs with systems working in their own threads, and World living in the main thread would just provide a collection of entities with each of them having a corresponding read-write-locked collection of components. So basically it all boils down to implementing a loop for each system to handle those collections. Not sure about the whole idea though.[/QUOTE]
The issue is that almost all systems are coupled with one another so simulating them concurrently is impossible. That's why most real world efficient multithreading uses tasks instead of just diving components into threads.
For the past month or two I've had 30+ servers scraping the Steam Community Market, fetching every point of sales data that exists.
[url=https://plot.ly/~geel9/1/?share_key=C4EKua3OO4erqueaf6Epgs#plot]So this may interest some of you.[/url]
Also hi again
C++ is a fun language once you get into the really cool shit
[QUOTE=TeamEnternode;51764438]C++ is a fun language once you get into the really cool shit[/QUOTE]
Does this look like the function signature of a "fun" language?
[cpp]template <typename... Components, typename... Tags>
template <typename... Ts>
entity_manager<component_list<Components...>, tag_list<Tags...>>::return_container entity_manager<component_list<Components...>, tag_list<Tags...>>::get_entities()[/cpp]
Lets not start that shit again
People can make shitty examples of everything
[QUOTE=WTF Nuke;51764523]Does this look like the function signature of a "fun" language?
[cpp]template <typename... Components, typename... Tags>
template <typename... Ts>
entity_manager<component_list<Components...>, tag_list<Tags...>>::return_container entity_manager<component_list<Components...>, tag_list<Tags...>>::get_entities()[/cpp][/QUOTE]
I've legitimately managed to get type errors on the order of several MB in size, though that's mostly because MSVCs error recovery is garbage and can turn just about anything into a recursive type error explosion. Doesn't always stop at 100 like it's supposed to either.
[editline]2nd February 2017[/editline]
Worst I've seen is 3GB or so from GCC, but that was triggered on purpose with recursion madness.
[QUOTE=Tamschi;51763796]This is relatively efficient if you use fibres/coroutines instead of full threads, but I have a hunch it wouldn't come close to a system that's manually optimised regarding its cache behaviour.[/QUOTE]
[QUOTE=WTF Nuke;51764197]
The issue is that almost all systems are coupled with one another so simulating them concurrently is impossible. That's why most real world efficient multithreading uses tasks instead of just diving components into threads.[/QUOTE]
I partially agree with both of you guys, that's what i've eventually come to as well. You're definitely right about using threads. Or, more specifically, that depends on the tasks, but since from what i've found most of them are happen to be relatively small and lightweight when it comes to ec systems(and also considering how big the number of systems can be), it would probably waste more time sitting on spinlocks or locking mutexes than actually calculating stuff.
As for systems being interconnected, I still think sometimes it's still possible to group systems into logical sets that don't really intersect with one another. For example, there might be creeps running around that players can't interact with. That's the systems i was talking about. And if it's possible to actually separate your systems and the corresponding data into truly independent groups which number is reasonably small, threads may actually come in handy. There might be other bottlenecks though.
[QUOTE=Karmah;51764547]Lets not start that shit again
People can make shitty examples of everything[/QUOTE]
But it's not a toy example, it's actually part of my library.
[editline]2nd February 2017[/editline]
[QUOTE=antianan;51764645]I partially agree with both of you guys, that's what i've eventually come to as well. You're definitely right about using threads. Or, more specifically, that depends on the tasks, but since from what i've found most of them are happen to be relatively small and lightweight when it comes to ec systems(and also considering how big the number of systems can be), it would probably waste more time sitting on spinlocks or locking mutexes than actually calculating stuff.
As for systems being interconnected, I still think sometimes it's still possible to group systems into logical sets that don't really intersect with one another and . For example, there might be creeps running around that players can't interact with. And if it's possible to actually separate your systems and the corresponding data into truly independent groups which number is reasonably small, threads may actually come in handy. There might be other bottlenecks though.[/QUOTE]
If you can separate your data that well you could just run multiple entity managers on different threads. That way they both have the strengths of ECS, but they run orthogonally to one another. When you need to share data you do it the old fashioned way of just mutex/locks.
[QUOTE=WTF Nuke;51764659]
If you can separate your data that well you could just run multiple entity managers on different threads. That way they both have the strengths of ECS, but they run orthogonally to one another. When you need to share data you do it the old fashioned way of just mutex/locks.[/QUOTE]
It's probably still better to allow ecs incorporate all the required features, thus escaping the need to implement everything by yourself. Or probably that would just overcomplicate the design. That's why I told i'm not sure about the whole thing.
[QUOTE=WTF Nuke;51764659]But it's not a toy example, it's actually part of my library.[/QUOTE]
Not exactly how it's declared in your code though :v:. Also it's still a syntactic example since it could become much less scary with some aliases.
[code]
template < typename... Components, typename... Tags >
using entity_manager_t = entity_manager< component_list< Components... >, tag_list< Tags... > >;
template < typename... Components, typename... Tags >
using return_container_t = typename entity_manager_t< Components..., Tags... >::return_container;
template < typename... Components, typename... Tags >
auto entity_manager_t< Components..., Tags... >::get_entities() -> return_container_t< Components..., Tags... >
[/code]
That's true it's not defined exactly that way, but my point sort of stands. Also, you can't have two parameter packs in a row unless it's unambiguous (which those are).
Oh god I can't post anymore until I think of something good for 5k.
Fourier had a great idea (apart from that transformer thingy). I'll update this post until I figure out my 5k post, or more likely forget about it and post in a random thread by accident.
Hey all, just started work on a VR exploration project with holdable figure-like ripped models and explorable maps from various games.
[IMG]https://s24.postimg.org/k8rynzo1x/Screenshot_17.png[/IMG]
A figure of Jack'o from Guilty Gear Xrd Revelator
[IMG]https://s24.postimg.org/gqfyrln5x/Screenshot_18.png[/IMG]
A WIP of Oasis from Overwatch ripped from Overtool.
Can anyone help me on how to texture the entire map? I could only get part of it. :(
Also, I need a coder lol.
[QUOTE=WTF Nuke;51764751]Also, you can't have two parameter packs in a row unless it's unambiguous (which those are).
[/QUOTE]
Oh wait, right. Sorry. Guess i haven't fully woken up yet. Still with defines it indeed can look much less menacing.
After spending the past couple days nearly ripping my hair out over performance issues, I decided to try out Visual Studio's performance profiler.
Within 5 minutes, I discovered a call to File.ReadAllBytes was being called every time a new test iteration was ran. So 5,000 tests means the file gets accessed the same number of times.
Before that, I was micro-optimizing the shit out of my code hoping for a miracle. At least I can safely say my tokenizer isn't the problem. :v:
Oh yeah, and comments are supported now. I wrote those last for some reason...
[t]https://cdn.pbrd.co/images/tphBg5Te3.png[/t]
[QUOTE=WTF Nuke;51764751]That's true it's not defined exactly that way, but my point sort of stands. Also, you can't have two parameter packs in a row unless it's unambiguous (which those are).
Oh god I can't post anymore until I think of something good for 5k.[/QUOTE]
You can edit this post to communicate with us.
[QUOTE=DrDevil;51762254]It looks pretty at first glance, but it gets boring really fast.[/QUOTE]
Check out astroneer for a really good example of this style that looks consistently very nice
[QUOTE=antianan;51763064]Speaking of that, some time ago I had an idea(and even tried to implement) a super simple concurrent ecs with systems working in their own threads, and World living in the main thread would just provide a collection of entities with each of them having a corresponding read-write-locked collection of components. So basically it all boils down to implementing a loop for each system to handle those collections. Not sure about the whole idea though.[/QUOTE]
I'm pretty sure you could reasonably speed things up in a few ways at least, for instance, one could have systems which are specified as internally independent of components within the system (each component only operates on itself, probably rare), so there the given system could run 100% in parallel, dividing the processing of components within the system up amongst threads.
You could also have systems which are not specified as internally independent, but externally independent, ie. they might look at the other components within the system itself, but do not depend on any other system's components. This system probably needs to run linearly (though maybe with locking on each chunk of components divided up, even this could be parallelized, locks might just make it more expensive than running it in serial though).
Now, also with knowledge of what dependencies systems have on eachother (combined with priorities, what order do things need to run in?), you could make a dependency graph which essentially would describe what parts of it are safe to run in parallel, and what parts must be serial.
In this system, I envision "entities" just being indexes into the various systems though, the world being no more than a container of systems, each system having it's own container of components.
I've seen something like it before, so I definitely think it's possible, even if might be more trouble than it's worth :v:
[QUOTE=WTF Nuke;51764751]Fourier had a great idea (apart from that transformer thingy). I'll update this post until I figure out my 5k post, or more likely forget about it and post in a random thread by accident.[/QUOTE]
You actually did it you creep!
Anyway gonna check this post until your count is 5000+
[editline]2nd February 2017[/editline]
Just messing around, I could make Sims-like game.
[IMG]http://i.imgur.com/fBibHfS.png[/IMG]
[QUOTE=WTF Nuke;51764523]Does this look like the function signature of a "fun" language?
[cpp]template <typename... Components, typename... Tags>
template <typename... Ts>
entity_manager<component_list<Components...>, tag_list<Tags...>>::return_container entity_manager<component_list<Components...>, tag_list<Tags...>>::get_entities()[/cpp][/QUOTE]
I don't have any context for this nor do I fully understand what some of the parts actually do (like the elipsis) but this looks like a product of bad design just by looking at it
[QUOTE=TeamEnternode;51766428]I don't have any context for this nor do I fully understand what some of the parts actually do (like the elipsis) but this looks like a product of bad design just by looking at it[/QUOTE]
C++ is easy to make look ugly, especially with templates in templates and so on. It's why alias declarations are so useful!
Sorry, you need to Log In to post a reply to this thread.