Have an interview in an hour with the software group here: I already know everyone fairly well where I work so its not terribly stressful, but I'll still find a way to get anxious. Lack of schooling means that my "resume" was effectively just a quick timeline of my programming experience, plus a bullet-point list of my programming experience.
Could be working on some really cool stuff, though. Even neater than the last thing I mentioned I'd be working on, so here's to hoping it all goes well and I return in a few hours with a full time job offer
Been working on a shitty software rasterizer (Win32 BitBlt/HDC/CreateWindowEx) using Bresenham algo and a .map (Quake3/Wolf:ET/vCoD maps) loader for my engine using 3 plane intersection
[[url]http://mattn.ufoai.org/files/MAPFiles.pdf[/url]]
(I really hate math but I figured it out with some help from a friend who's pro in math was using the dotproduct in the plane distance as float instead of vector and some other stuff, only the UV's are flipped/rotated but for rest it's working) and I added CEF to render on a brush (uv's are set to another texture just swapping texid atm)
[video]https://youtu.be/-a5Y8Ueivls[/video]
I've been looking for that song for 4 years.
What the fuck is it?
I wish C++17 conformance was full on all three platforms, I'd finally feel motivated to start working on my library again.
Then again we still don't have two phase lookup on MSVC, but there's workarounds.
[QUOTE=Adelle Zhu;52609685]I've been looking for that song for 4 years.
What the fuck is it?[/QUOTE]
[url]https://www.youtube.com/watch?v=Q6omsDyFNlk[/url]
[QUOTE=war_man333;52608772][...]
I like this result but the code is a mess. Making AI isn't super easy without resulting to some gross if/else stuff. Any tips?
[...][/QUOTE]
I noticed the URL moved, but here's the new links: Read [URL="https://github.com/SSYGEN/blog/issues/3"]this[/URL] and [URL="https://github.com/SSYGEN/blog/issues/4"]this[/URL] for an AI model that supports easy composition.
It translates well to most other languages, though native coroutine support helps a lot. I made a C# port but changed a few things around because [I]Task[/I]s work differently and using generators for this is messy in .NET.
[QUOTE=WTF Nuke;52609967]I wish C++17 conformance was full on all three platforms, I'd finally feel motivated to start working on my library again.[/QUOTE]
And here I am, waiting for Microsoft to implement even C99 (let alone C11) :v:
[QUOTE=WTF Nuke;52609967]I wish C++17 conformance was full on all three platforms, I'd finally feel motivated to start working on my library again.
Then again we still don't have two phase lookup on MSVC, but there's workarounds.[/QUOTE]
What is your library if I may ask?
[QUOTE=Quiet;52610800]And here I am, waiting for Microsoft to implement even C99 (let alone C11) :v:[/QUOTE]
Can't you use mingw or cygwin?
[QUOTE=phpz;52609471]Been working on a shitty software rasterizer (Win32 BitBlt/HDC/CreateWindowEx) using Bresenham algo and a .map (Quake3/Wolf:ET/vCoD maps) loader for my engine using 3 plane intersection
[[url]http://mattn.ufoai.org/files/MAPFiles.pdf[/url]]
(I really hate math but I figured it out with some help from a friend who's pro in math was using the dotproduct in the plane distance as float instead of vector and some other stuff, only the UV's are flipped/rotated but for rest it's working) and I added CEF to render on a brush (uv's are set to another texture just swapping texid atm)
[video]https://youtu.be/-a5Y8Ueivls[/video][/QUOTE]
That looks really useful, how much of a performance hit does it have?
[QUOTE=Naelstrom;52611042]Can't you use mingw or cygwin?[/QUOTE]
The last time I tried mingw, it was on quite an old version of GCC and I immediately encountered a compiler bug. cygwin would probably work. I just like Microsoft's compiler, since from my (admittedly, very little) testing, it produces significantly faster code on Windows than (a pretty old version of) GCC.
[QUOTE=VIoxtar;52611565]That looks really useful, how much of a performance hit does it have?[/QUOTE]
Not getting really a performance hit by using CEF (but maybe if i use single process or other options, different websites), altough the SSAO when using higher kernelsize has a bit of performance issue in the video.
look at the bug I made when working on random number generation in a path tracer:
[video=youtube;xpHkiycPYHk]https://www.youtube.com/watch?v=xpHkiycPYHk[/video]
[QUOTE=JWki;52610964]What is your library if I may ask?[/QUOTE]
It's an entity component system framework: [url]https://github.com/Yelnats321/EntityPlus[/url]. I'm looking to up the version and with that add some stuff but also want to get rid of a lot of C++11/14 cruft that can be replaced with C++17.
Use something a little better like Msys2 then
added textures to raycaster
[img]http://i.imgur.com/y5wtNIv.png[/img]
[editline]25th August 2017[/editline]
[url]http://collin.moe/ray/[/url]
[QUOTE=war_man333;52608772]
I like this result but the code is a mess. Making AI isn't super easy without resulting to some gross if/else stuff. Any tips?
I have my NPC which is the 'brain', and then I separated lumberjackin' stuff into its own class for now.[/QUOTE]
I'm working on a Half-Life bot where there were no classes and lots of conditionals and am moving all the bot logic into a single class - there are still conditionals but less than before. The behaviours are just methods.
[QUOTE=Quiet;52610800]And here I am, waiting for Microsoft to implement even C99 (let alone C11) :v:[/QUOTE]
Don't wait. Their product is a C++ compiler so C support is mostly limited to what C++ requires.
[QUOTE=Rohans;52613140]Don't wait. Their product is a C++ compiler so C support is mostly limited to what C++ requires.[/QUOTE]
It's not strictly a C++ compiler, .c files are automatically compiled as C and you can explicitly set which language you're working with. Some features of C are incompatible with C++ and they work as you'd expect. They've been (very) slowly adding C99 features.
[editline]26th August 2017[/editline]
But I do get your point, I think Microsoft have explicitly stated in the past that they don't really care about C.
[QUOTE=Quiet;52613843]It's not strictly a C++ compiler, .c files are automatically compiled as C and you can explicitly set which language you're working with. Some features of C are incompatible with C++ and they work as you'd expect. They've been (very) slowly adding C99 features.
[editline]26th August 2017[/editline]
But I do get your point, I think Microsoft have explicitly stated in the past that they don't really care about C.[/QUOTE]
If you care about C I suggest using gcc.
[QUOTE=tschumann;52613130]I'm working on a Half-Life bot where there were no classes and lots of conditionals and am moving all the bot logic into a single class - there are still conditionals but less than before. The behaviours are just methods.[/QUOTE]
Hmmm. I would prefer not putting everything into one place though.
I've been thinking about having 1 NPC class and then having different submodules that handle everything. So if I want to switch from woodcutting to combat, I switch the submodule. It doesn't make sense to be cutting wood and fighting at the same time in my eyes.
[QUOTE=war_man333;52614854]Hmmm. I would prefer not putting everything into one place though.
I've been thinking about having 1 NPC class and then having different submodules that handle everything. So if I want to switch from woodcutting to combat, I switch the submodule. It doesn't make sense to be cutting wood and fighting at the same time in my eyes.[/QUOTE]
What's the point of the game if the trees don't uproot and try to murder the NPCs.
[QUOTE=war_man333;52614854]Hmmm. I would prefer not putting everything into one place though.
I've been thinking about having 1 NPC class and then having different submodules that handle everything. So if I want to switch from woodcutting to combat, I switch the submodule. It doesn't make sense to be cutting wood and fighting at the same time in my eyes.[/QUOTE]
Whatever works I guess - I'm working from an existing library (never done this sort of thing from scratch) and it made sense to me to have it all in one class.
[QUOTE=helifreak;52614879]What's the point of the game if the trees don't uproot and try to murder the NPCs.[/QUOTE]
But then you just switch into combat mode. The guy still has an axe as a weapon :D I'm tempted to include that into the game now thanks
[QUOTE=war_man333;52615064]But then you just switch into combat mode. The guy still has an axe as a weapon :D I'm tempted to include that into the game now thanks[/QUOTE]
I would look up the book "Artificial Intelligence for Games (Ian Millington)" and have a look at hierarchical state machines, where the behaviour you want can without too much horror be modeled I think :v:
(it also covers tons of others techniques and is a literal goldmine for techniques on how to structure logic-based AI like that of in games with info on steering behaviours, behaviour trees, rule systems etc).
[QUOTE=war_man333;52614854]Hmmm. I would prefer not putting everything into one place though.
I've been thinking about having 1 NPC class and then having different submodules that handle everything. So if I want to switch from woodcutting to combat, I switch the submodule. It doesn't make sense to be cutting wood and fighting at the same time in my eyes.[/QUOTE]
A FP user, adnzzz (I think that's how their username was spelt) posted a neat thing on their github pages about [url=https://github.com/SSYGEN/blog/issues/3]Behaviour Trees[/url] - to me they seem like a much neater and more easily extensible/modifiable way of implementing character AI than state machines.
[t]https://puu.sh/xk0Eg/1acba0ef63.png[/t]
Working on FBX import stuff - just got submeshes to work correctly with their transformations (with the exception of one model that I tested for some reason).
Quite happy about OpenFBX existing, it's quite a bit more lightweight than the FBX SDK. Less functionality and documentation though.
[QUOTE=war_man333;52608772][img]http://i.imgur.com/Um8oCNd.gif[/img]
A* path-finding is interesting to set up, still haven't figured out if I'm doing it right or not. Maybe I should read the manual more thoroughly.
I like this result but the code is a mess. Making AI isn't super easy without resulting to some gross if/else stuff. Any tips?
I have my NPC which is the 'brain', and then I separated lumberjackin' stuff into its own class for now.[/QUOTE]
I like to use a combination of coroutines and delegates for my AI behaviours.
For example in unity
[CODE]
void Start(){
StartCoroutine(SimpleAILoop());
}
Tree FindTree(){
//Tree finding code
}
IEnumerator SimpleAILoop(){
while(true){
Tree Tree = FindTree();
yield return StartCoroutine(WalkTowards(Tree));
yield return StartCoroutine(CutWood(Tree));
}
}
IEnumerator WalkTowards(GameObject Target){
//Walking code goes here
}
IEnumerator CutWood(Tree Tree){
//Cutting code goes here
}
[/CODE]
Assuming all functions work properly, the AI actor will now walk towards a found tree, and start cutting it, in an endless loop.
But this is pretty linear, so you can break it up by having WalkTowards fire a delegate, which you can then listen to and do stuff with.
[CODE]
delegate void OnArrivedAtTargetDelegate(GameObject Target);
OnArrivedAtTargetDelegate OnArrivedAtTarget;
void Start(){
StartCoroutine(SimpleAILoop());
}
Tree FindTree(){
//Tree finding code
}
IEnumerator SimpleAILoop(){
OnArrivedAtTarget += (GameObject Target) => {
if(Target == Tree)//simplified
CutWood(Target);
}
while(true){
Tree Tree = FindTree();
yield return StartCoroutine(WalkTowards(Tree.transform.position));
OnArrivedAtTarget(Tree);
}
}
IEnumerator WalkTowards(Vector3 Position){
//Walking code goes here
}
IEnumerator CutWood(Tree Tree){
//Cutting code goes here
}
[/CODE]
Don't mind the complete lack of casts and stuff, can't be bothered to write that much, there's also issues now with the AI always walking towards a newly found tree, but this example is just to show you the general idea of what I mean.
Now the code flow is a bit different, rather than always being linear, we can now check in a very isolated scope what kind of object we reached and what to do with that information.
Delegates + lambdas in combination with coroutines is a very powerful tool in your programmer toolbox, so I suggest getting familiar with them as soon as possible.
My friend worked on a game called MAST for school and afterwards he let me and my other friends contribute to the project. This is basically a project of ours that we work on and off with.
The video is a little old, like the script editor is a lot better looking.
[url]https://propslam.com/mast/[/url]
[media]http://www.youtube.com/watch?v=32VnWmHIcpE[/media]
Does anyone else have useful little commands like this in their aliases file
[cpp]# Git
...
alias fuckit="git commit -am 'fuck it'"
alias FUCKIT="git add .; git commit -m 'FUCK IT'; git push origin --all"[/cpp]
Sorry, you need to Log In to post a reply to this thread.