Jump to content
  • Advertisement

UnshavenBastard

Member
  • Content Count

    947
  • Joined

  • Last visited

Community Reputation

376 Neutral

About UnshavenBastard

  • Rank
    Advanced Member

Personal Information

  • Role
    Amateur / Hobbyist
    Level Artist
    Programmer
  • Interests
    Art
    Audio
    Design
    Programming
  1. Nitpick about C#: You are not forced to have everything in an object. You can have static classes and say "using static" if you like, so from a usage standpoint, there's hardly a difference between that and putting free functions in namespaces.
  2. UnshavenBastard

    UDP reception - CPU load and packet loss

    Hey, thanks for the reply! 50% CPU, now that you're asking, I didn't pay attention to that detail, lol! I stared at the top of "htop", perhaps it was only 1 core. It was shown with my process at the top, eating most of it, though. I have to look into "time", and kernel level profilers sounds interesting, too, but probably quite involved to set up? Cache coherency or rather its lack... there rings a bell, I think that problem is there. While it does seem very plausible that my CPU just hasn't got enough horse power, I still wonder what iperf is doing better (if not exactly impressively), and why that one day, it seemed consistent zero packet loss after I set 8 MB buffers (4MB was barely not enough, there seemed to be a roughly proportionate effect). I will try out what happens with only one system call! Edit: Ok, I tried it with only receive, without poll, and checking for timeout in a low frequency thread. That reduced the CPU load at best slighty. I wonder why it's not always the same - sometimes the core0 is, given my goal data rate, at 95..99% and then there is no packet loss, but when it gets to 100%, not surprisingly, there is. Core1 is mostly < 2% busy. I disabled the LXDE desktop completely to see whether the barely enough CPU (99%) would be more repeatable then, but it's not. I'll look into whether all parts of my gear supports jumbo frames, to reduce the number of packets/sec I get... => Too bad, the iMX6 won't go above 1500 MTU. Another edit: I tried 2 things now, the second is semi-successful. 1) had a NVIDIA TK1 board in the drawer - unlike my iMX6 device, that thing allowed me to set the MTU to 4000, no 9000 but hey... my Windows PC also, and the switch maker also claims my switch support it. But... that ran much worse than the iMX6, for some funny reason, and I saw kernel mesages about no memory for gluing packets together or something... Anyway: 2) Next to setting rmem_max and rmem_default to 8MB (instead some KB defaults), I also set the CPU core affinity of my process to core1. You mentioned that probably all those interrupts run on core0 only, so I thought, how about doing whatever else possible on the other core - and bingo: Now I have 30...55% CPU core load for both cores, no maxing out anymore, and no packet loss - unless I use the default buffer values instead my magical 8MB. I guess getting the 4x core version then would leave me to actually do some things besides fetching the data Don't know yet if that's a real option.
  3. Howdy, I have an ARM Cortex A9 CPU, the NXP iMX6, dual core, on which runs a bare bones Linux (kernel 4.1.44). I'm trying to receive data over its Gigabit ethernet interface. goal throughput is ~ 40 MByte/s (320 Mbit/s) my default UDP payload is ~ 1350 bytes, I've experimented with sizes from 300 to 16k Bytes the ARM board is connected, via one Gigabit switch, to my PC nothing else on the switch on the PC runs the UDP client, sending data continuously the ARM runs the server which binds a socket to a port and then basically only does while(true) { poll( socket, ...); recv( socket, ...); } there is some other stuff going on like loop time jitter histogram and crude data integrity check, but commenting that out yields no difference in the problematic behavior I.e. I'm using the socket library as available on Linux. Now, according to what I've read, poll(..) blocks (in a non-busy manner) until there is data. I use it because it has timeout functionality. So from that, I should not be seeing the near maxing out of the CPU (90..99 % for my process) that I unfortunately do. Unless that throughput really is too much for that ARM CPU. But I doubt that, as iperf (2.0.5) eats "only" 50..56% CPU at ~ 40MB/s datarate. I'm not sure what exactly it does, though, looked briefly at the code and saw some fiddling with raw sockets, not sure I want to go that route... I have hardly any experience with network stuff. Also, there was this strange effect of high packet loss, despite this short connection, while a second PC as UDP receiver has no packet loss. I'd get it if the CPU were at 100% all the time, but it's slightly below - and iperf much less, which still can get like 2..4% loss. I then found some Linux settings: net.core.rmem_max and net.core.rmem_default, which I set to 8 MB each via sysctl, instead of some KB it had prior. Then the packet loss went to zero (still around 90+ % CPU load). Today I tried to replicate this, put I have packet loss again. I had also put the cheap plastic switch somewhere else, now I'm suspecting that that thing may be unreliable... yet to test. Can switches be a problem source like that? Any ideas about why the CPU load is so high? Or, in other words, am I doing this totally wrong? What would a proper implementation of relatively high speed UDP reception look like? Regards, - UB
  4. UnshavenBastard

    Sound FX HW in PC games today

    Howdy folks. I've been out of the loop for many years. I remember the glorious days when I played Unreal 1 with my SoundBlaster-Live! and headphones, and it all sounded so real like I was really "in there", all the stuff those things emulated. Fast-Forward maybe 15 years or so. Then the last thing I remember reading that as of some Windows versions ago, EAX (and similar) is dead, not supported, and that's it. I haven't followed the development of what came out of that. Then we have today. Now I wonder mainly about 2 things: 1) Is everything that those dedicated hardware cards did years ago, done in software these days, presumably by a few big middleware flavors, as you can just throw a CPU core at it? 2) I see you can still buy expensive dedicated sound cards e.g. by Creative for more money than some people pay for their PC mainboard. What do they actually do vs. on-board sound "cards" (mainboard)? - unshaven
  5. "Any international Internet forum works for" teaching you at best partially subtly *wrong* English ;-) Properly edited books do (hopefully) not have that problem. Some people might think "who cares" or "what's 'wrong' anyway". Well, I'm with Weird Al on that one, and she is too :-D  
  6. Hey there. My mother never learned English in school. (in Soviet Germany, English learned you! No wait, that joke doesn't work here... Nastrovie!) She started to learn English a while ago, with some app on her Android phone. In the long run, I'm sure it makes more sense for her to actually read (and "fight through") texts, not just little examples, and esp. not the mere "tourist English" kind of stuff. Can any of you recommend books with simple enough English for that to not be *too much* of a challenge? I'm pretty sure she wouldn't even mind children's books ;-) One of her major hobbies is painting in all sorts of techniques, though. She even started fiddling with computer based painting recently. I wouldn't reckon there to be any interesting books about those topics in beginner-friendly English, but what do I know what one-of-a-kind of book may exist that e.g. some of the artists on here may know about, so I just mention it. I guess also hearing English makes sense, although being able to read text is most important. If any simple-ish English films or other media come to mind, don't hesitate to mention them!   Thanks in advance, - unshaven  
  7. By the way, if I was to try out DX11 - is it feasible to do that within .NET / C# ? I saw there's a still developed (from the looks of it) wrapper called "SharpDX". Is that well usable, or as cumbersome and more of bricks in the way like some other .NET wrappers to e.g. OGL that I've seen? Programming the scaffolding that does something with DX graphics experiments, and debug helpers and all that, would be so much nicer in C# than C++ ;-)  
  8. Whoa, this thread looks more filled than when I looked last time! :-) Quite some thought food to ponder, thanks guys. Heh, well I have been doing some bare metal stuff within the last couple years (as in microcontrollers with realtime OS. Well yeah I did that, doesn't mean I'm an expert ;)), although only single core, so no "real multi threading", but I guess getting used to putting barriers here and there would not be like an ice bucket challenge to me, I have a rough idea of the problems involved. Then again, I'm not going to be making AAA games, so from what I gathered now, investing the time to actually get all those nasty things right may not be worth it for me. Actually getting something done in very limited spare time would be nice indeed ;) So I think DX12 and vulkan are out. From there, I still need to decide (god, do I hate that). As for "you don’t need school to get into the industry". Well, I guess it depends on *what* industry exactly we are speaking of. Let's face it. I am well over 30. I will not get into the *game* industry again, for a wage that I would be sane for to accept at my age and other options in industries which pay real money (in Germany) - and I even doubt they would hire a guy as old as me for lower positions which are supposed to be positions for really young, really quick-learning people to grow from. And then there's the country thing. Maybe in the US it's as easy to get hired and fired again as those things are comparably hard here, employers are more weary. There are some companies who are *open* to try out software devs without degree. Alas, the likelihood that such a company is afflicted by at least one out of a set of typical problems which are not conducive to the quality of live of anyone involved, is rather high. But anyway, it is much more of a fight to get even looked at without a degree, at least here, for the kind of jobs I have been interested in so far, and talking a lot to people with degree and much less experience than I have.
  9. Ah, I see. Thanks for the pointers so far. RenderDoc looks like something I'd really would have loved to have when I was using OpenGL 13 years ago or so :-D As for "not as cross platform as I think". Well, to be frank, although it's a big market, I'm kind of "meh" about the whole Apple thing. You know, those people, with their, what I call "developer harassment program", thinking they can make you jump through all sorts of hoops all the time to be granted the privilege to (continue to) take part in their oh so magnificent platform, well I feel like I kinda rather take a pass on that. I've been through a good taste of it at work. Luckily, there is no economic pressure for me to succumb to their BS, nor buy their ivory coated products (they got to be, right?) /rant
  10. Howdy. I have done some 3D graphics programming many years ago, some simple software rendering stuff and then Fixed Function OpenGL. I have not written one shader program. I'm interested to get into that subject again, learning how things are done today. It's not fixed that it has to be OpenGL (or Vulkan?) - I heard D3D has become a nice API, OO and all. OTOH, I guess it's still true that OpenGL/Vulkan opens doors to more platforms, which is a could-be-nice thing, but the main thing will remain desktop, and if D3D is so much nicer of an API, also debugging wise (?) ... But *if* I were to go the "open software" route - is OpenGL a dead end now, because of Vulkan? I'm not sure I'd like to "do everything myself" as is said about vulkan, with pages of boilerplate for everything. Let's face it, I won't create the next Cry engine, I probably won't need extreme control of everything. As it's spare time stuff, one of the most important aspects here is not spending too much time for not very good reason (cost / benefit). But investing time into a dead end would be bad.   Sorry for seeming / being a bit confused here, I have not yet made up my mind about some things, apparently ;-) So, what kind of resources do you suggest I consume on those subjects? Is there some "best book", or really good online resources - something allowing me to start from zero again, and get some results?   As an aside: Are there concepts, functions in old OpenGL which are still valid today? Next to my job of quite some years as a degree-less developer, I am also working on actually getting a BSc degree*. They offer a computer graphics course which uses really old OpenGL (< 2.0), ok it gets credit points, but otherwise probably a waste of time?   * (it does matter, at least here in Germany. For those wondering: Their program allows me to do only some cources in a semester, spreading the whole thing over more years... but less work load next do day job) Regards, - unshaven
  11. UnshavenBastard

    Spring couplings

    Heh! Exactly that had long occured to me, sure it would be nicer to only replicate the action where it happens, not all the stuff before that. But for that, you'd have to actually have such an organ. Do you have an idea how monstrous those things are? And not exactly cheap either. If I had a house, I might buy one, but I haven't ;)
  12. UnshavenBastard

    Spring couplings

        You mean like a big rubber band?  That would work like a torsional spring.   The motor would twist it up (apply torque), the springiness would untwist it,  applying torque to the connected axle. Assuming the backward turning resistance of the engine always exceeded the turning resistance of the axle, the spring would turn the axle, not the motor.   Coil springs use F=k*s. I don't recall the analogous formula for tortional springs,. You can look it up. So your engine will input a torque into the spring system, then your spring will output a torque to the axle.   Eventually it should hit a steady state where the spring has "loaded up" and is essentially a solid link for purposes of forward thrust over smooth surfaces. IE torque in = torque out.     Ah, silly me, I could have included illustrations.   I only now discover the two springs on the left, holding the disc on the motor together with what I guess is a flywheel - yet another coupling I overlooked. I was initially talking about a coupling like on the center right of the image. You can see (red arrow) the 90° bent end of the coil spring stuck through a hole in the small disk, so rotational force will turn that spring. The whole apparatus has several of couplings like that, but since that's the main axle, this one is especially big.   As for that funky motor, here's a gif of how it works: Pay attention to the flipping of the poles of the electro-magnets. A 1-phase sine voltage is applied, with opposite polarities, to those two coils, i.e. the fields repeatedly flip. The fixed magnets on the rotor are relatively low in number, you can imagine how that thing will output not a constant,  but rather "pulsating" torque. (it can't even start by itself, needs a starter motor) EDIT: Also, this is driven directly by mains voltage frequency, which also has some fluctuation. What is all this? It is a electro-mechanical, "tonewheel" organ (e.g. Hammond). I am currently going along all routes which I suspect provide reasons for why my emulation sounds so much more sterile than the real thing. There are groups of {2 tonewheels sharing one axle}, and each tonewheel is coupled by an own spring to that axle. Then, each of those 2-tonewheel-axles is coupled by 2 gears with a certain ratio to another axle, which is in turn coupled to the motor by that big spring. (or maybe it's even more complex, I haven't seen a complete system drawing, only pieces here and there) You see, the whole system is quite a bit more ;) So in my initial post I started with subsets of it to start getting the hang of that first.   Well, there has to come some variation from somewhere in there, to produce that lively sound (and I don't mean the rotational speaker cabinet). I suspect that all that multiple spring loaded monstrosity has some minute variations in the movement of each single tonewheel (each one has different mass and spreading of that mass into space, so fluctuations in torque may not make them react exactly the same on their springs). Maybe I'm wrong and the effect of this is so minute that it does not actually contribute to the sound, but I'd like to explore this :-)
  13. UnshavenBastard

    Spring couplings

    Hey there. Up front: I've not done physics calculations beyond school stuff, so pointers to what to get acquainted with in the first place are also welcome ;) Bear in mind I may use weird terminology (also because English is not my first language)   Now the actual question:   Let's say we have: - coil shaped spring couplings - springs *not* used to be expanded or compressed, but rather to couple 2 axles (correct word for longish cylinders within bearings allowing them to rotate?) - so it's about rotational coupling. I.e. the driven axle will somewhat lag behind the driving one, most of the time. - for now, say we have 2 axles, one on the motor, and one which is to be driven - the special motor outputs periodically *varying* torque - connected by such a spring to the other axle - The motor also has a flywheel attached - The 2nd axle has a disc weight on it, rather small compared to the motor's flywheel   How to calculate the reactions of this system, e.g. the rotational movements of the 2nd axle depending on the unsteady motor output? And if we then make the system more complicated by introducing - a 3rd and 4th axle - the 3rd is coupled by 2 gears, probably with a small amount of backlash, to the 2nd, - and the 4th is coupled by another spring to the 3rd one. - Also, the disc weight is now on the 4th axle, not the 2nd. How does the 4th axle behave, pertaining to rotation angle over time? As may be obvious, the flywheel and springs are there to dampen any unevenness in rotation at the target axle. But it's probably not doing so perfectly, and I'm interested in the remaining unsteadiness. At least in my funny mind, the springs and flywheel are sort of an equivalent to low pass filters, which dampen the pulses coming out of the motor, but then perhaps there's also some sort of ringing going on or other effects, at least not 100% of the higher frequency content removed by the "filters".  
  14. UnshavenBastard

    Nintendo DSi game for 1200 points - please recommend :-)

    Okay, so I realized when starting the dsiware shop on my DSi, in the premium list, there isn that much. About 80 games. I ended up downloading "Elite Forces: Unit 77", looks the most like a "real game" coming from a pc gamer ;) Now I have 400 points left for really small stuff ^^
  15. Some years ago I was involved in the development of two nintendo DS(i) games, but never owned a DS(i). Well, as it often happens, that company went bankrupt. As I recently heard that Nintendo DSiWare will cease to exist by the end of this year, I got myself a used DSi XL and bought the one DSi game we made back then, for nostalgia I guess ^^   Now the nintendo points card I bought still has 1200 points left. So I better buy a game or two before it doesn't work anymore. I already have, as modules (*if* there are DSi versions, I won't need them them): - Orcs & Elves - Metroid Prime Hunters (and with that I got thrown in - King King and some - Star Wars game, not looked at them yet)   So, now, please do recommend some nice games, preferably those that really squeeze out everything of that weak "GPU" of the DS (while not sucking gameplay wise), unless there's a 2D game in that price range that's so incredibly awesome that I must buy it ;-)   To roughly outline my tastes, here some games I used to like when playing more regularly: (not quite console-y, that's b/c I never owned one, but your fun-taste-ical intuition will deal with that I'm sure) - kyrandia - shannara - tex murphy - ultima underworld - realms of the haunting - sanitarium - lands of lore 1,2,3 - Warcraft 1, 2 (, 3) - C & C - Red Alert - UFO: terror from the deep - Diablo - Outcast - Undying - severance - vampires (the masquerade, bloodlines) - max payne 1, 2 - deus ex - delta force - project IGI - SWAT 3 - rainbow six 1, 2, 3 - Stalker 1, 3 - Alan Wake - Fear (the spooky mumbo jumbo aspect was rather annoying in the way it affected gameplay) - Risen - The Witcher 1 Thanks in advance!  
  • Advertisement
×

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!