EVGA NVIDIA GTX 1070 & 1080 Benchmarks

I’m back with another PC upgrade. It was the beginning of 2015 I upgraded to a 4790k Devil’s Canyon Intel chip and I haven’t had any issues since. Motherboard kicked the dust for a bit after I moved, but the chip has been great. Now it’s time for the bigger upgrade. The GPU. We’re going to look at some NVIDIA GTX 1070 & 1080 Benchmarks!

Pascal from Nvidia is finally here and it’s really awesome. I ended up getting the 1070 and then switching to the 1080 after some delayed shipments from Amazon. Needless to say, I benched both! Read past the break for the numbers.

Continue reading

1 Year Work Anniversary

*kazoo*
I have not blogged in over a year. This is why. ūüėõ
I also have not played many games besides Grand Theft Auto 5, League of Legends, and currently The Division so I haven’t updated my games list either. Sadly, almost no board game fun either.

One day I’ll come up with something interesting to write. Maybe C# 6 stuff or another silly, drippy game opinion.

Today I Learned: Tail Call Elimination

Who said interviews were just about testing knowledge? In some cases, it can be a bit of a learning experience for everyone involved. Case in point, I was asked about what kind of compiler optimization may be made from the following code:

int CountOccurences(LinkedNode const * const head, int const dataToCount, int occurences)
{
	if (head == nullptr)
	{
		return occurences;
	}
	if (head->data == dataToCount)
	{
		++occurences;
	}
	return CountOccurences(head->link, dataToCount, occurences);
}

My initial reaction was that maybe the compiler would attempt to do something to our const vars on the stack, considering they never change in the function. Turns out, there is something more going on here.

Continue reading

Games Played 2015 Page

I have a new page up¬†under the¬†Reviews tab where I will be noting games I’ve played in 2015 to completion, close to, or ones worth noting in either a good or bad way. Each will be accompanied by a tiny blurb about my experience with a game. It will be my way of keeping track of games this year while also doing “reviews” of each in some way without losing interest and time in writing a huge blog about each. I hope someone besides me finds it helpful.

Devil’s Canyon 4790k Benchmark

Happy New Year!

I’ve had the same desktop hardware for over 5~ years. I recently upgraded my motherboard and CPU, redid the whole build. Pictures will come soon once I tidy things up. But for now, lets see the 4790k benchmark and tests perform! Also, overclocking goodness.

Was it worth the $350?

Continue reading

“Bunduru” Chess AI

For Marist Artificial Intelligence, my buddy Phil and I had to make a Chess AI. The professor hosted a server that would manage teams and a 2D display of games. AIs had to manage gamestates and submit moves to the server, as well as receive new moves when it wasn’t the AI’s turn. The server managed whether moves were valid or not and would update the 2D display when the AIs submitted their turn. After several weeks of development, all the teams competed their AIs against each other.

And we won!

Read on to learn about our AI.

Continue reading

Operating System

ctOS – 6502 TypeScript Operating System

For my Operating Systems class, I was tasked with making an Operating System simulation using basic OS architecture and 6502 operations.

Using TypeScript, I implemented a CPU, CPU scheduler with 3 scheduling methods, memory manager for RAM, kernel interrupt and ready/resident queue, hard drive and hard drive driver with swap virtual memory. I also added neat features like achievements, boot video, step mode, and tons of little special commands.

It was one of my favorite projects of all time in my education. It was a lot of fun to implement new achievements into something like an Operating System and the design for ready queues/CPU scheduling was really interesting. I also found a new language to love. TypeScript¬†is a JavaScript transpiler that gives type checking and more to JS, made by none other than Microsoft. I’m a strict type kind of guy, and it has been my biggest pet peeve of JS for a long time. TypeScript was¬†a god send, and will be what I use whenever I have to write JS now. Combined with native debugging in Visual Studio, it can be extremely powerful and helpful. It makes Object Orientated programming in JS to be a breeze.

There are a bunch of built in programs to ctOS you can find in the sidebar, but feel free to make your own. There was discussion on how it would easily be possible to read/write executable programs to the hard drive, and with a few more op codes, you could have the simplified 6502 CPU do some pretty legit algorithms like merge sort and stuff. Its a fun Operating System.

Feel free to check it out here:
http://anthonyb28.github.io/ctOS/

Source & Readme:
http://github.com/anthonyb28/ctOS/

Rubiks Cube AI Part 1 – Parity

Rubiks Cubes! I cant solve them to completetion for the life of me. But now I can just solve them using an AI.

But before jumping into heuristics, A* algorithms, and all kinds of solving. First, let us consider a random Rubiks Cube itself. Is the cube actually solveable in the first place? Can we go from the random state pictured above to a solved cube?

The answer is no. The Rubiks Cube parity has been altered!

Continue reading

Recommended Viewing: Ubisoft CppCon 2014

Checkout these two great talks from Ubisoft @ CppCon 2014 featuring multicore C++11 development and how C++ is used to develop AAA games at Ubisoft. I briefly met Nicolas Fleury and learned many tips from blurbs he’s written about good C++ practices and such. He’s very talented.

 

 

Programming a Boggle Algorithm

Recently had to figure out how to program¬†a Boggle algorithm. Boggle is a simple board game I never had the pleasure of playing by itself, but have played plenty of related variations of. These kinds of algorithms are pretty interesting and I had a lot of fun programming different solutions. I’ll share 2 solutions.

Boggle is relatively simple. I never had the pleasure of playing by itself, but have played plenty of related variations of.

You have a square game board with dice of various letters that is n x n. The board gets shaken/randomized and a timer starts. The player scores points by finding valid words on the board that are longer than 3 characters, with longer words scoring more points. The rules are that letters have to be adjacent or diagonal to the last letter in the word to continue. And you can never repeat a letter you’ve already used, so while you can have multiple of the same letter, its the die itself you can’t return to.

I decided to tackle it in C++.

Continue reading