Jump to content
  • Advertisement
The search index is currently processing. Activity stream results may not be complete.

All Activity

This stream auto-updates     

  1. Past hour
  2. Don't worry, you're doing fine. Just try to be as concise as you can (because everyone here offers their help for free) and don't mistake people recommending against certain techniques for them actively disliking them. I'm going to have to keep this short as I'm on the way out, but here's what I think: Your cut-down example is a lot better. I still think it's slightly too ambitious because there are several unknowns in here, such as what the outputs from the learning algorithm are, and from there, what data you need to gather in order to inform that learning algorithm, and then, what the choice of learning algorithm is. These things aren't insurmountable but they probably involve you doing a lot of reading around the subject very quickly. You say "Another reason for a Goal-oriented approach is that fulfilling a need might be several steps away. (Grow Crops -> Make Flour -> Make Bread -> Eat)" and this is a reasonable observation. However, you don't strictly need this. You can make the planning implicit by providing each activity separately with priorities that cause a plan to 'emerge', so to speak. A simple prioritised rule list might be: If I am hungry: If I have bread, eat it, stop. If I have flour, make bread, stop. If I have crops, make flour, stop. If I have seed, grow crops, stop. Get seed By following the rules in order, you'll see that a character with nothing in their possession will initially pick the Get Seed activity, and when that succeeds, they'll do the Grow Crops activity, etc etc. The plan is implicit in the priorities of the activities. Is it as flexible as a full planning system? No. Is it as complex as a full planning system? Again, no. I would strongly recommend that you consider whether you can create the system without a planner involved. The idea to "to build a Utility-based AI as a Teacher, and make the Imitation Learning algorithm learn from that. That way I would have theoretical infinite data for the basic behavior" is quite a good idea, with only one flaw - there's no practical application for it. (Having said that, if you're not doing a PhD, this is less of an issue.) If you can already create the behaviour one way, there's little point trying to make a second system that can mimic it. There is, obviously, merit in making a system that can mimic a player's behaviour and then extrapolate that, but you have to start looking into the "less cool" algorithms because you're working with a lot less data. Things like N-grams, Bayesian classifiers, and Markov Chains come to mind. The thing about a player's belief system... I don't think I explained myself well there. The point I wanted to make is that the idea that a certain choice of action might be smarter or not is entirely in the player's head and has zero bearing on what the learning system does or should do. The player's assessment might not even be correct. A system that imitates a player is going to imitate the behaviour regardless of whether the player made the 'right' choice or not. Therefore it's important not to confuse "picking the best behaviour under the circumstances" with "picking what we think a player would do under the circumstances" because the former is not relevant. Regarding further simplification, I think that you just need to draw out the feedback loop that you're hoping to see, and then consider the technology options at each point and how they work together. If you can't answer those questions at least on a rough level then you can't code it. I would probably start with a simple utility system working based on character needs, and one action for each of the needs, and the utility function is something with a value you can tweak to make the action more or less appealing. It might be as simple as a small constant you add to an otherwise linear function which can be increased or decreased. Or it might be something like u(need) = pow(need, w) where need ranges from 0..1 and w is the weight, initialised to 1, but which can go down towards zero or up towards infinity. Your learning algorithm would check all the need levels and any other necessary context when a player chooses a behaviour and adjust the weights to make it more likely the AI would choose similarly in those conditions.
  3. Maxime Audfray

    Some great Youtube channels

    I find David Bruce very interesting too. He is more on the classical type of music, but he makes it very accessible for everyone, and he present things that can be used in a lot of contexts, especially on game music. Here is the link to his channel : https://www.youtube.com/user/davidbrucedotnet
  4. SoldierOfLight

    DirectInput GUID compare

    A GUID is 128 bits. A DWORD is 32 bits. You can't assign a GUID to a DWORD.
  5. RoKabium Games

    SAMA

    Images & screenshots from "Something Ate My Alien" game by RoKabium Games.
  6. SillyCow

    WHO recognising 'gaming disorder'

    TV is definitely an addiction in my book, and worse than videogames because unlike video games, children pick it up from their parents. ( Although that might change for video games now that gamers are becoming parents). Books I think are less of a problem because it takes effort to read them. I think there are less people addicted to books, then there are to computers. I think digital addiction is on a scale which merits a discussion much larger than books. A cool solution might be to establish a digital "etiquette" instead of going straight for treatment. Just like has happened with Alcohol, Sex, and Drugs.
  7. Scouting Ninja

    WHO recognising 'gaming disorder'

    With books like Digital Cocaine in the bestseller list it was inevitable that this would happen. It's not like I even fully disagree with the points made in these books and by these conferences. What I do disagree with is that one of the key arguments people have for declaring games a addiction is the time factor. Apparently playing 5-6 hours games a day is too much. However watching TV or reading books for 5-6 hours is fine? Yes, there is too much games using skinnerbox to addict players. Yes, creating games that forces players to play, instead of allowing them to live there life is bad. Hopefully this will lead to less skinner box games and higher standards in games; instead of being used as a tool to define what midea consumers should be using.
  8. Today
  9. WitchLord

    Set up class members from c++

    I'm not familiar with how Unity works so I'm not entirely sure what you're trying to accomplish, but in AngelScript you can create instances of script classes from C++ side and initialize the members manually if you wish. You can use the engine->CreateUninitializedScriptObject then enumerate the members and set their values. The serializer add-on can potentially be used to help understand how to do this.
  10. SillyCow

    WHO recognising 'gaming disorder'

    I think this is a controversial topic in psychology, and like many others it will be used to treat and misused to control people. I do see extensive gameplay as a compulsion. Mostly because it's a isolating hobby without a real community. (I don't value online interactions in the same way I value real world ones) Are all gameplay sessions negative? No! Are most gameplay hours compulsive? I don't think so... Do I know a lot people (especially children) who spent unhealthy amounts of time playing computer games? Yes. Do I know what the World Health Organization's mandate is? No 🙂 Using this as my base assumptions, my 2 most prevalent questions would be: 1. How are psychologists /psychiatrists planning to help these people, and is the treatment proven? 2. How can this decision negatively impact gamers who are falsely diagnosed with this condition? This could be very good if someone actively seeking treatment can now get his medical insurance to pay for it. This could be very bad if it amounts to parents/teachers "persecuting" their children to stop gaming. It could also spawn a bunch of lawsuits: Bad: People could launch frivolous lawsuits against game companies. Good: Maybe someone will instate some good regulation over "whale" exploitation. (the same way some states legally limit the amount of money you can lose in a casino in a day) Another important insight about being old anachronistic, and behind the times: Gaming-phobia is such a 90s thing. I would think that more people today have an internet surfing compulsion than anything else. I would theorise that In this day and age more people are wasting their time (compulsively) on 4chan and facebook then on gaming. I would go as far as to say that gaming got targeted because it's an older phenomanon, but it's not the most prevalent problem of today's times.
  11. Hi, I'm working on Warriorb for about 2,5 years now and recently we made a playable version of the first part of the game. There are still some elements missing (mostly vfx and sfx) but most of it is close to final. I would love to hear what do you think about our game so far. Any critique, feedback, idea or tip is appreciated. If you are interested send me a pm and I will give you a steam key for the game. I'm eager to receive your feedback: Gézu
  12. Ideas: - tone map to LDR, color correct, then inverse tonemap back to HDR, then tonemap to HDR10. I guess this is what you're doing now though... Maybe it wouldn't fail as bad with a better tonemapper? - HDR10 has a fixed range of 0-10000, where ~200 is traditional white (and actually a displayable range of more like 0-1000 on current TV's), so you could simply tonemap to HDR10 range, divide by 1000, color correct, then multiply by 1000. - use scRGB as your post processing color space, port color correction to this new workflow. Tonemap from full range HDR to 0-125 scRGB range (corresponds to 0-10k nits). Then color correct. Then if not doing HDR10, tonemap a second time down to 0-1 sRGB range. But this violates your request to not change the color correction workflow
  13. I assume many of you have already seen on the news or social media, the World Health Organization (WHO) now recognise 'Gaming Disorder' as a mental health condition, defined as: This has understandably been quite controversial. I'd like to hear what our community thinks about addiction, and the WHO's classification. I do have some of my own thoughts, but I'd like to see how others feel without colouring initial discussion with my own opinion.
  14. hello guys , i have some questions what does glLinkProgram and glBindAttribLocation do? i searched but there wasnt any good resource
  15. That makes sense. So basically you divide/multiply the value with the exposure (to bring the value down into a smaller range) and let the tonemapper handle the values which are >1 to bring them also into the LDR range. Correct? So here is what i did: First the shader starts like that: void main() { vec3 color = texture2D(texture_diffuse, vTexcoord).rgb;//floating point texture with values from 0-10 It looks like that: Obviously the values are mostly outside the range of 0-1. Then i divide this value by "exposure". color = color/uExposure;//exposure (in this case uExposure is manually set to "7") This brings the values down while still maintaining HDR. Now i apply the Uncharted Tonemapper: color = Uncharted2Tonemap(color); And this results (again) in a darker image. I'm not sure if this is correct, but i tried to increase the values by dividing the tonemapped color with (unchartedtonemap(vec3(1,1,1)). Given that the tonemapper seems to converge to 1 (but veeeeeeeery slowly) this is very likely wrong (this might not be nessecary with other tonemappers?): //color = Uncharted2Tonemap(color); color = Uncharted2Tonemap(color)/Uncharted2Tonemap(vec3(1,1,1)); Which results in this image: No idea if that's the correct approach. (probably not in case of the tonemapper division.)
  16. Hello Guys! Please share your experience, where is it better to find sales manager specialists for indie team of 6 + people(remotely)? Maybe someone has a good experience of cooperation with finding projects through sale managers(USA and Canada)? In our team more than 6 developers. We are working since 2014 now we are looking for projects mainly on upWork and Unity Connect. But that's not enough This is the site of our team https://www.sixteensq.com/ https://www.behance.net/Dezignw136f Thank you Best Regards Alex Vovk Co-Founder of Sixteen Squares Alexander_Vovk@outlook.com
  17. I'm not in the the EnumObjects callback function, I'm shimming GetProperty function, what takes in &propRange.diph So I try to access it from the DWORD variable propRange.diph.dwObj which is assigned to instance->guidType from caller.
  18. MikhailGorobets

    HDR tonemapping/exposure values

    Yes. I have to count the general lighting of the scenes and divide into this co-factor. I've just picked it up
  19. you are missing a fundamental detail!... as others said, the point of tone mapping is to bring down your color values from high range to the displayable low range, but... that high range changes every frame! so you must first compute it to generate an exposure value, usually by getting an average luminance of the current frame... just think about it, if the exposure was the same for every frame with a fixed and constant range, you could just scale all your values in a precomputation step to ensure decent results in the traditional low range... which is basically what was done intuitively before
  20. Your second picture looks like the correct output. And using matrixes for this is fine. However, i would build the system so that the camera facing quads already have a precalculated vertex buffer so it faces the camera. that way you dont need any matrix multiplication on the cpu/gpu. You can just add the position to the vertex buffer and get the desired location. For your second picture, if you move that quad somewhere over the tile grid you will see that it matches but you have scewd outlines in the texture itself, this is no hard problem becuase you can change the texture to match pixel perfect. Im also not sure now what you exactly see as the problem since the second picture does get you the right output.
  21. Hey your ID solution would probably be fine. *something* has to be sent between players so it has the potential to be mixed up anyway. What you should look into though is serialisation. To give you a quick summary this would basically take your Weapon object which has all its references to different attachments and essentially save it down into an encoded piece of memory or a file, so it could be a chunk of 1s and 0s. You then send that across to the other player, their client de-serialises it and hey presto they can re-create your original Weapon object!
  22. We’re going to talk about the new enemy and some balance changes that will appear in the upcoming update. Mad Mage Even among mages there are criminals and undesirables that need to be taken care of and the nobles certainly do not allow for more than one transgression against their power. Due to their inherent magical talent it is a lot more difficult to keep them as slaves but dwarves of the alchemist’s guild made some progress in said direction. The serums they use erode free will as readily as they erode sanity, making these spellcasters particularly unstable. But as long as the profits outweigh the losses, there is no reason to worry about a bunch of miners drying to an errant spell here and there. Bone Golem The ferocious appearance of the Bone Golem is hiding equally ominous power, that can destroy every living thing in its path. Just look at this. Work Process We’re still working on balance and also changing some abilities. We would like to underline some developments that will be included in the next update. Dark Knight won’t move anymore when using skills “Hollow Stare” and “Futile Hopes”. He will thereby be more effective in the rear via stress attacks. Our Skeleton is a nice little fella, so we decided to increase his initiative. This change will allow you to increase the damage of your allies right at the beginning of the combat or to use skeletons control skills. It’s up to you. We decided to nerf the Mummy’s ability “Cursing Touch”. Now the target will lose 100% luck for two actions, not until the end of combat. We’re going to change abilities of the Lich to make him more playable as a support in the 4th position. For example, his skill “Sacrifice” will not require an action, just like Vampire’s ultimate ability. The Head Hunter was starting to move closer and closer to the role of a “Glass Cannon”. His low durability will be offset by his high damage output that is definitely going to be a problem for your enemies. This time we will change the following abilities: “Catch’ Em” will ignore the block of the target; “Feel’ Em” will double physical damage and stress; And finally, the damage of “Contract” will be increased, but now you need 2 souls to use it. That’s all. We will be happy to answer your questions! Previous Devblogs
  23. Kryzon

    How to make art like that?

    That's interesting, I assume you mean that vector looks better? If the device has a fixed resolution then you don't need raster graphics with more resolution than what the device can display (this is related to DPI and such, like the size of objects on screen, if you can zoom in etc.). In order to accommodate different devices with many resolutions you'd have to ship your game with assets of the biggest fidelity possible, then load each and downscale them to save memory (in-game), at the cost of having a large install size from all this high-def stuff. Something that could help with that is to ship your game with vector assets (which are just kilobytes in size, really small) and use a software library in your game during load time to rasterise the vectors into textures that will always be at an ideal resolution -- having the same DPI as the device, looking pixel perfect. An example of such a library is the cross-platform Skia: https://skia.org/ I think there are some commercial Unity plugins that do that.
  24. Dominus is a Sandbox game all about the player teaching multiple AI agents, one at a time, to perform better at gathering resources, building a town and getting happier. The player does so by briefly taking control (dominating) over an AI agent, showing the agent how to act by example. When control is released, the influence of the player’s behavior should be noticeable in the agent’s behavior henceforth. Sections 1 and 2 describe the motivation, why I want to make this bachelor thesis in this way. I see now that you, as helping people, do not need that information. I understand that reading this wall of text is frustrating and cumbersome. I did not mean to be disrespectful and thank you for pointing that out. My actual problem at hand: Choosing the right technology to achieve what is aimed for. The aim here, next to the teaching of behavior mentioned above, is to have a prototype able to scale well with new content created either by a developer or (wishful thinking, so optional) by a presumable player community. Another reason for a Goal-oriented approach is that fulfilling a need might be several steps away. (Grow Crops -> Make Flour -> Make Bread -> Eat) Learner’s question: Why would it be maleficial? What’s so bad about Coroutines? I get that a lot. I already assumed the project to be overscoped, but I thought I might personally learn more that way. Also, I went away from trying to create a huge economy to an Apple, a Tree, a House. Is that the kind of simplification of model you speak about? Off-the-shelf tools was UnityML Imitation Learning, but you already criticized it, too. For this reason, I intended to build a Utility-based AI as a Teacher, and make the Imitation Learning algorithm learn from that. That way I would have theoretical infinite data for the basic behavior. But it does not fix this problem: This is exactly the reason why I was feeling skeptical about ML as a solution for the problem, but I could not lay a finger on it. Also, this insight of yours on the matter is the reason for this thread. Thank you! I am not sure, where my mistake here is? When do I confuse the two? And how? I was sure that the player’s belief system would be paramount to the project, so the “ability of the computer” has to be created in dependence to that. I do see, however, that I am indeed confusing something. I hope I was able to clarify that. Where do you see potential for simplification? I can do that (is that the simplification?) Do you have any resources, you could spontaneously provide? I know, that is part of the work I am supposed to do, but it can’t hurt to ask, can it? If you shove me to a rough direction, that would awesome! Now an apology is in order: I did not mean to be disrespectful. I do see your point. I guess, I read and saw so much of him and about him that I mistakenly felt a more personal relationship than there actually is. That, in turn, tempted me to this impudent and provocative statement. It was very unprofessional and I apologize to him and to any reader. I am sorry. Should I, in any way, misstep in proper forum etiquette, or should you seriously dislike any styling of my post (e.g. many quotes in there today), please do not hesitate to tell me, so I can learn.
  25. davejones

    Remove VR split screen

    The VR version of a 3D game that is made for windows platform.
  26. Hi and thanks for reading, I have an issue with this reactive crosshair script, everything works fine until I start changing the offset. Give the script a go and you will see what I mean, when I do SetOffset(0f); it doesnt always set back to the origional state, if anyone can spot a fix I'd be super appreciative! using System.Collections; using System.Collections.Generic; using UnityEngine; public class ReactiveCrosshair : MonoBehaviour { [SerializeField] GameObject c_limb_prefab; private float center_offset = 0f; private float current_offset = 0f; private float max_offset = .5f; private int number_of_limbs = 4; private float limb_length = .05f; private float limb_width = .005f; private List<GameObject> c_limbs = new List<GameObject>(); public void SetupCrosshair(){ for (int i = 0; i < number_of_limbs; i++) { GameObject line_go = (GameObject)Instantiate (c_limb_prefab); line_go.transform.SetParent (this.transform); Vector3 limb_pos = new Vector3 (0f,0f,0f); //line_go.transform.position = limb_pos; line_go.transform.localPosition = limb_pos; LineRenderer line = line_go.GetComponent<LineRenderer>(); line.startWidth = limb_width; line.positionCount = 2; line.SetPosition (0, line_go.transform.localPosition + new Vector3(center_offset, 0f, 0f)); line.SetPosition (1, line_go.transform.localPosition + new Vector3(center_offset + limb_length, 0f, 0f)); line.useWorldSpace = false; c_limbs.Add(line_go.gameObject); } if (c_limbs != null) { OrientLimbs (); SetOffset (0f); } } public void OrientLimbs(){ for (int i = 0; i < c_limbs.Count; i++) { float rotation_step = 360f / (float)c_limbs.Count; c_limbs [i].transform.RotateAround (c_limbs[i].transform.position, c_limbs[i].transform.forward, 90f + (rotation_step * (float)i)); } } public void SetOffset(float _current_spread){ float offset = Mathf.Lerp (0f, max_offset, _current_spread); for (int i = 0; i < number_of_limbs; i++) { if (offset > current_offset) { Vector3 pos = c_limbs [i].transform.position + (c_limbs [i].transform.TransformDirection (Vector3.right) * offset); c_limbs [i].transform.position = pos; } if (offset < current_offset) { Vector3 pos = c_limbs [i].transform.position - (c_limbs [i].transform.TransformDirection (Vector3.right) * offset); c_limbs [i].transform.position = pos; } } Debug.Log ("SetOffset() offset: " + offset.ToString () + " _current_spread: " + _current_spread.ToString() + " localPos: " + c_limbs[1].transform.localPosition); current_offset = offset; } }
  27. So, as the title says i am trying to figure out a good way sync all that information with other players in Unity. My problem is that i can't come up with a good solution since i am used to creating classes for everything e.g. attachments are its own class and then the weapon would save a reference to that attachment. But since you can't send custom classes over [Command] & [ClientRPC] i am a little stuck. A solution for this would be giving each attachment for a slot a unique ID and then passing the ID to other player but i feel like that is very error prone if other ppl add a new attachment or the IDs get mixed up. Is there a "standard" way that this is usually done that i am missing? I am fairly new to programming so any help is appreciated!
  1. Load more activity
  • Advertisement
×

Important Information

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

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!