<commit_before>﻿# Review 3 - Where we start coding

## Summary

Up to this point, we've been working through some fundamental of setting up 
and building code. We haven't actually made a program that *does* anything.
I've spent a bit of time trying to figure out what our actual review project
would be that is _something_ other than a trivial `Hello World` example. I wanted
it to be something that is both simple, but has some relevance.

Since we all have some interest in graphics, I took around to see what's out there
for simple graphics abstractions. I don't want to go over OpenGL or DirectX just yet;
I've covered both of those, in C# in other tutorials. This set of reviews is about
C++.

There are a *lot* of options out there: [SDL](https://www.libsdl.org/download-2.0.php),
[GLFW](http://www.glfw.org),
[SFML](https://www.sfml-dev.org),
[Cinder](https://libcinder.org),
[Ogre3D](http://www.ogre3d.org),
[BGFX](https://github.com/bkaradzic/bgfx),
[Magnum](https://github.com/mosra/magnum)
... the list is quite large. Don't believe me? Go to [Github](https://github.com/search?l=C%2B%2B&q=graphics&type=Repositories&utf8=✓)
and see the results for yourself. Now, that list includes engines as well as Graphics libraries
but I think it illustrates the point; picking a library isn't a trivial task.

I finally chose Allegro. I'll try out other libraries as well, but I went with Allegro because:

 - It's got a good NUGet integration with Visual C++:  >>[look here](https://wiki.allegro.cc/index.php?title=Windows,_Visual_Studio_2015_and_Nuget_Allegro_5)<<
 - I'm not looking for 3D or complex drawing facilities.
 - I've used it way, way, way back, so there's a bit of familiarity with it.<commit_msg>Adding link to Allegro<commit_after>﻿# Review 3 - Where we start coding

## Summary

Up to this point, we've been working through some fundamental of setting up 
and building code. We haven't actually made a program that *does* anything.
I've spent a bit of time trying to figure out what our actual review project
would be that is _something_ other than a trivial `Hello World` example. I wanted
it to be something that is both simple, but has some relevance.

Since we all have some interest in graphics, I took around to see what's out there
for simple graphics abstractions. I don't want to go over OpenGL or DirectX just yet;
I've covered both of those, in C# in other tutorials. This set of reviews is about
C++.

There are a *lot* of options out there: [SDL](https://www.libsdl.org/download-2.0.php),
[GLFW](http://www.glfw.org),
[SFML](https://www.sfml-dev.org),
[Cinder](https://libcinder.org),
[Ogre3D](http://www.ogre3d.org),
[BGFX](https://github.com/bkaradzic/bgfx),
[Magnum](https://github.com/mosra/magnum)
... the list is quite large. Don't believe me? Go to [Github](https://github.com/search?l=C%2B%2B&q=graphics&type=Repositories&utf8=✓)
and see the results for yourself. Now, that list includes engines as well as Graphics libraries
but I think it illustrates the point; picking a library isn't a trivial task.

I finally chose [Allegro](https://www.allegro.cc/). I'll try out other libraries as well, but I went with Allegro because:

 - It's got a good NUGet integration with Visual C++:  >>[look here](https://wiki.allegro.cc/index.php?title=Windows,_Visual_Studio_2015_and_Nuget_Allegro_5)<<
 - I'm not looking for 3D or complex drawing facilities.
 - I've used it way, way, way back, so there's a bit of familiarity with it.
{'fraction_non_alphanumeric': 0.10629693818601964, 'fraction_numerical': 0.008087810514153668, 'mean_word_length': 4.505564387917329, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 15, 'lorem ipsum': 0, 'www.': 9, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1428329', 'n_tokens_mistral': 1114, 'n_tokens_neox': 1051, 'n_words': 462}