Part I – Creating a Digital Hexagonal Tile Map

HexagonalTileMap

Author’s Notes: 
This article is written for experienced developers using the C# language and the Monogame Framework. Monogame is in active development with a new release just published recently. This piece is highly technical and requires that developers be proficient in their chosen language of choice. Therefore there is no information that will enable new programmers to work with the sample code easily.
The title prefix, “Part I”, indicates an expectation that as this project progresses into a war game I hope to develop over time that simulates a major conflict of the 18th century, it is hoped that as new code is developed additional articles will be published with the intent of guiding developers in such a difficult form of game development.
Because this piece is published on both Microsoft and Java Community sites, there is information in this piece that should make it easier for Java developers to develop similar code for their own projects.  However, the Java information is limited since such a piece cannot provide code and explanations for both languages as the libraries used are completely different from each other
It should also be noted that there is code in the provided project that is no longer currently used but was left as reminders for further development as the project progresses.  Such code is noted in this piece.
Due to the length of this piece, a downloadable Word document is available at the following link…
https://1drv.ms/w/s!AnW5gyh0E3V-g12SlguqkHrRVyq8
 The complete project for this paper can be downloaded from the following link…
                      https://1drv.ms/u/s!AnW5gyh0E3V-g1uRrePYv0XEquRq
 To submit questions to the author regarding the provided information, please email the author at…
support@blackfalconsoftware.com

 

Overview

One of the most difficult aspects of developing a game is one in which the genre you would like to develop for is such a niche area of development that standardized tools have yet to be created for it.  With the popularity of 3D graphic art and gaming the 2D aspect of this creative endeavor hasn’t kept pace with current technologies to the same degree.  For 3D game development there are several popular genres that have a wide degree of support; first-person-shooters, simulations (ie: racing, flying), adventure games, and strategic simulations, which are in many cases simply war games on steroids without the thought provoking challenges that a turn-based game of the same genre can provide.  For such development there are excellent tools freely available, the most popular being “Unity”, which also has a wide array of 3rd party support in the form of add-ons that provide tools for all the mentioned game types.

With 2D development, scrolling games have been developed to the point that there are many excellent articles describing how to implement one with quite a bit of sample code along with a few very good toolsets to help a developer in his or efforts.

The one genre in 2D development that has gotten very little or rather uneven exposure in the development area is that of the original turn-based, hexagonal map, war game.  And beside the original style of adventure gaming whereby the “maze like” foundations were quite thought provoking, war gaming itself has been considered the top of all such mental challenges and at one time was even promoted for the “over educated”.

However, with a lack of some level of standardized tools for such development, this realm of gaming has probably become one of the most difficult areas in creative activity within the game development field.  There are several reasons for this that has been described in a number of texts on the subject.

For starters, the computer AI in such games is at a terrible disadvantage compared to the Human opponent since the Human opponent can take as long as he or she likes to develop tactics and strategies that if done carefully over time will not only defeat the computer AI but yield weak spots in it that can aid the player in increasing their battlefield wins somewhat consistently.

In an article describing such a situation within the “Civilization” series of games it was found in one case that players were able to defeat the AI in one significant area of lumber yields by repeating the creation of forests in a single hex, deforesting the hex through lumber production, and then seeding a new forest to start the cycle over again.  The AI in the game could not do this giving the Human player a significant advantage in such production, which in turn allowed the Human player to build wooden-based entities more quickly than the AI could.

Though Firaxis Games has openly admitted that their “Civilization” AI cheats (and pretty unfairly as well), when they realized this weakness (called “lumberjacking”) in their AI, they issued a patch placing the AI and the Human opponent on equal footing in this part of the game, making “lumberjacking” no longer possible by the Human player.

The result of this drawback in turn-based war games is that the AI implemented in such games has to be quite good in order to make the game not only enjoyable but repeatable as well.  Thus, turn-based war games require above average AI implementations that are more than just what any pre-made tools can offer.

In addition, the AI implementation has to be suited for the level of war game being developed.  In such games there are three primary types of AI that can be used, strategic (large unit formations such as divisions), tactical (medium sized unit formations such as regiments), and squad based where each unit represents a single piece of equipment or a soldier.  And in each case the AI implementation, as mentioned, has to be done quite well.

This is not the same as with RTS games (real time strategy) where the Human player is at a disadvantage being that he or she must stay on their toes to do battle with an aggressive AI whereby studying the battlefield for any length of time is not an option.  The result is that most such games are not very realistic in terms of technique since in reality, as fast as it may occur, war would never be as fast as a computer emulation would propose unless it was designed to be such as with in-depth military training emulations.  The lightning fast movements for example in the “Battlefield” franchise could never occur since Humans cannot react at such speeds normally.

The next area of difficulty in the development of turn-based war games are the graphics employed.  With the exception of some tile mapping tools that provide the ability to create maps using hexagonal tiles, the developer still has to use original programming to control the map and the units portrayed on it once it is loaded.  And since such maps can have a variety of sizes, no one code base offered will necessarily be able to provide the mathematical calculations for the chosen sizes for any individual developer.  That being said, one of the most popular mapping tools is “Tiled” (http://www.mapeditor.org/), which will allow a developer to create large hexagonal maps through a visual interface.

“Tiled” creates maps using the “TMX” format, which is actually code that describes a map to a graphics system.  Both “Monogame (with the Monogame.Extended plugin)” (http://www.monogame.net/) for C# and VB.NET developers and “libGDX” (http://libgdx.badlogicgames.com) for Java developers support this file type allowing a developer to display his or her maps somewhat easier than if one were to do it on using just the graphics engine and their tiled images.

This article then will describe one way that a hexagonal map can be created and displayed at the lowest level; using the “Monogame” graphics engine only with individual tiled images.

Read more of this post

The Dark Arts: Game Development & the State of the Gaming Industry

Doom

The State of the Industry

 One of the most alluring aspects of software development is the creation of one’s own game or a utility to support a game genre.  Many software developers whether they are hobbyists or professionals have investigated at some point during their tenure as developers the possibility of writing a game that they may either sell or simply enjoy on their own.  I have been one of those professionals who was bitten by this “bug” many years ago and since then have investigated just about every aspect of game programming I could come across.  However, in the end of each research foray I always returned to the development of turn-based strategic games as a result of my deep interest in military history and the fact that I was a fan of such games years ago when they were still played on printed map boards with cardboard counters.

Through all of these years, game development has steadfastly remained a “Dark Art” in the software development industry whether it was done on an individual basis or by a commercial company.

Whatever the interest, game programming, even today, still remains one of the most difficult types of programming one can attempt.  For starters, a majority of the terminology you are used to dealing with in terms of business development, if that is how you have been trained, will be completely foreign to you and those aspects that will be familiar will play “second fiddle” to your core development endeavors.  For example, the database aspects of game development take a relatively minor back-seat to the majority of the work required while such work is a major component in today’s business applications.  Most database support required will be done with desktop databases such as SQLite unless you are part of a group that is developing a multiplayer game with an expected large degree of concurrency.  In this case, you can expect to be using a more suitable database for such purposes.

Nonetheless, actual game development itself will require a good knowledge of graphics programming whether you use one of the foundational libraries such as DirectX or OpenGL or a higher level library that makes the use of the underlying libraries slightly easier to work with.  The only difference here is that the properties and methods of the various classes have a slightly less arcane set of names but the overall difficulty is still there.

Other than a good foundation in graphics, game development will also require an understanding of a different type of event driven programming in that much of what you will design for a user interface for a game will require your own efforts to make the necessary events work properly.  Modern event programming in business applications is a cakewalk in comparison.

Read more of this post

The “War Game” and Understanding Complex Application Development

GettysburgWargameMasterScreen

Author’s Note…

Please note that the use of the words game, war game, and simulation are all used interchangeably through this paper.

Merriam-Webster Definition: “War Game”…

a military training activity that is done to prepare for fighting in a war

a simulated battle or campaign to test military concepts

           

Preface

This piece is a somewhat more radical departure from those that I have written before as it is both a sociological and technical one at the same time.  This writing attempts to demonstrate the use of a completely unrelated subject to assist in the development of one’s mind to allow it to understand and encompass large-scale complexities that are most often the underlying foundations in similarly large application development.  This piece uses the somewhat forgotten genre of the historical simulation or war game to promote this concept.

To be sure there are a variety of other pastimes and hobbies that can provide the same orientation.  Writing for example, is one of them.  However, for the technically oriented mind and also from my own experiences, I have found the war game to be an excellent departure from studying technology to learning something completely new and possibly alien that will help younger development professionals grasp the complexities of their careers from a different point of view.

There are many types of war games that are available to the public as well as several commercial versions of military-grade training simulations that can show how actual military officers are trained in the matters of violent conflict.

From still popular board-games that require face-to-face interaction with players to computer-based simulations with increasingly powerful artificial intelligences that also offer Internet and Play-By-Email (PBEM) options, there is literally something for any period in history one may be interested in studying, recreating, or altering…

Read more of this post

Military Siege Theory & the Cloud

SiegeOfPilsen

The Siege of Pilsen 1618 (https://en.wikipedia.org/wiki/Siege_of_Pilsen)

 

The Cloud – Another Trend to the “Dark Side” & Ancient Aliens

There isn’t a day that goes by in the technical presses and communities where vendors aren’t hawking their Cloud Services as the new way to store and process data while claiming to improve costs to the IT organization’s bottom line.

On the surface and mixed with the prevalent trends in business technical developments this sounds well and good but no trend occurs in a vacuum.  Since 2010, the Cloud has become a new buzz-word for professional developers as well as consumers where literally anyone can store anything they like “up there”.  And the name, “The Cloud”, has an almost surreal-like sound to it while ignoring the fact that it was designed by some slick marketing outfit to attract anyone with a penchant for cool sounding idioms.

But what really is “The Cloud” but a glorified hosting service where one can store files, host web applications and databases amongst a repertoire of other implementations that have all become rather standard for most hosting and storage services that already exist.  And since the name of “hosting services” sounds too technical for most people we now layer it over with a soft sounding acronym, “The Cloud”, a place where giant puffs of large white, majestic cumulus puffs of vapor hang silently in a deep blue sky always waiting for their next passenger to serenely float through them.

Yet, there is a “Dark Side” to this majestic wonderland of hosted technologies; cumulus clouds can often turn dark and foreboding and it is this “Dark Side” that this piece will discuss.

As I mentioned, no trend occurs in a vacuum, though professionals in many fields tend to see things that way.  In technology today, it appears that a majority of the Human race cannot see past it’s nose when it comes to the next “new thing”.  One look at the popular “Ancient Aliens” show on the American History Channel will convince many that aliens are guiding Humanity to it’s true path; back to the stars.  And they support this contention with the many examples of universities and companies all researching and developing technologies that will allow us to do this along with other propositions demonstrating how aliens have been working on their Human project for many years.

Except here is where “reality bites”…  Humans cannot exist in space for too long due to the massive exposure to radiation; so long trips into it’s farthest reaches just is not feasible unless someone devises some form of radiation proof material that can be used on rocket-ships and clothing.  Also, let’s not forget the high speed debris that is whizzing all over the place out there that can penetrate just about anything it hits with the velocities they are traveling at.  Not too cool for pressurized cabins…  So the suggested alternative is to develop robotic bodies that have the capacity to be completely manipulated by Human thought processes if not encompass Human consciousness altogether.  However, if one South Korean scientist is correct in his theories based on quantum mechanics, Human consciousness is not housed within the brain; now there is a gigantic “Oops!” for the whole concept leaving us with the use of robots who many scientists fear will turn upon the Human race; another big “Oops!”…

This is a rather humorous example but it does demonstrate how even many scientists are rushing to develop something that simply may not be possible with the given facts and possibilities since they are not considering the limitations imposed on them by realities that may be irreconcilable.

This is also true for all of the current hype surrounding the use of the “The Cloud” by business organizations.

Read more of this post

Encryption as Insurgency

EncryptionAsInsurgency

Note: The concepts for this piece are based upon Bernard E. Harcourt’s new thesis on surveillance, “Exposed: Desire and Disobedience in the Digital Age”.

It is almost paradoxical to see the current spat between the FBI and Apple rage on about the latter’s use of strong encryption to protect their customers’ privacy.  Though this conflict has become a political one with other overtones, and the FBI has recently claimed that they have successfully broken the encryption of a San Bernardino shooter’s iPhone, thus no longer necessitating Apple provide them with a solution, this new conflict is far from over.

Historically, it has always been a rather small or seemingly irrelevant event that changes the current trends in a society or even the world; an event that comes on the heels of many previous trends that have reached a climatic point.  Or sometimes change has come from events that people have completely distorted as the reason for such change, which then foments societal memes that have little to do with reality.  The following examples of misconstrued beliefs about historical events provide some context for the history that follows…

Distorted Histories

In the 1950s we had Senator McCarthy riling about Communist infiltrators into American society while leading the charge to find any so-called Communist agents among a variety of professional fields in the United States.  In fact, he wasn’t completely wrong (ie: Julius Rosenberg), he just went about it the wrong way.  Yet, when he targeted a young army officer who had a spotless record for his patriotism, McCarthy’s pursuit of Communist bogeyman around every corner was stopped in it’s tracks by the US Army. The bubble of self-induced fear that McCarthy fomented and many Americans latched onto exploded into nothingness leaving him and his ravings to fade away; though the legacy of the irrational fear of Communism in the United States has remained even to this day.

Many have been taught for decades that it was the assassination of the archduke Ferdinand by a Serbian national that initiated WWI.  It is touted as if it were a standard historical axiom.  However, this event was not the actual cause of the conflict.  European royals had been assassinated fairly regularly prior to this tragedy for 20 years without a world conflict erupting.  It was instead the rather innocuous mobilization of the Russian Armed Forces for Serbia’s defense, though they played little to no part in such an endeavor, which up through WWII, was an indication to all that a country was going to war that actually initiated these hostilities, which changed the world forever.  And the reason it couldn’t be stopped is for the lack of telephone technology that European diplomats adhered to as a result of tradition that diplomacy was done face to face or via formal dispatch… though many tried to in fact stop the coming trauma.  Kaiser Wilhelm of Germany desperately tried to stop what he knew to be coming but failed to reach the Russian Czar, a cousin of his, in time.

And though many luminaries like to tout the idea that social movements can change the world as they did during the 1930s when Roosevelt’s “New Deal” was initiated in response to social demands, nothing could have been further from the truth.  The “New Deal” was developed to stop the US citizenry from taking up arms against the government as a result of the Great Depression while the government desperately wanted to save capitalism.  The “New Deal” was actually the barest of plans that would assuage an angry populace headed to the extremes of violent revolution.

Read more of this post

ASP.NET WebForms… Redux

AspNet

ASP.NET & “Classic ASP”

ASP.NET WebForms was introduced commercially by Microsoft as a part of the .NET development environment in 2001.  Up until around 2010 it was the dominant web development environment in the Information Technology industry.

It was designed to replace what is now called “Classic ASP” in order to make web development easier to accomplish and learn.  And that it did do very successfully.  Since 2010 however, a movement spurred on by the Open Source Community has primarily turned the clock back to the days of “Classic ASP”, which was unfairly maligned by ASP.NET promoters both from Microsoft and the development community.  The same has happened to ASP.NET WebForms by similar promoters from the Open Source Community and the younger professionals, many who have never learned the capabilities of ASP.NET WebForms but have instead concentrated on the newer web technologies, which in reality are not all that new.

“Classic ASP” was at one time the best web development environment available to professional developers.  The emerging Java web development standards of the day, due to their inherent complexity could never compete with the development efficiency which a “Classic ASP” application could be built.

No doubt, “Classic ASP” had its disadvantages that were eventually promoted to allow it to be replaced by ASP.NET WebForms but in it’s day nothing could match it’s dominant ease-of-use construct.

“Classic ASP” was in effect a mirror image of the current bandwagon of technologies without all the bells and whistles that have been added to them.  It allowed one to create both mixed-code modules where HTML, markup script, and dynamic scripts could be implemented.  For those that wanted code-only modules, this option was as much an option as the mixed-code one.  In this type of code-base, HTML and markup script were simply made as constants to Request.Response statements while still being able to access and process dynamic script either implemented with VBScript or JavaScript.

Read more of this post

“Digital Crack” – A Self-induced Nightmare

DigitalCrack

By now many are aware of the ongoing fight between the FBI and Apple over the FBI’s request to have Apple devise a version of it’s iOS operating system that will include some form of encrypted backdoor access to all of the company’s customers’ iPhones and iPads.  Oddly enough, the same request hasn’t been made for Apple’s desktop systems or their laptop line.  If it has, it so far has not been mentioned in the press.  Nor has a similar request been made to Samsung (at least not as publicly if it has been made), most likely a result of it being a foreign corporation.

The reaction has been, and rightly so, quite fierce from the technical community who see such a request as compromising the security of customer devices for the possibility of having complete access by the FBI if it deems it warranted.  Similarly, the CIA has weighed in, in the FBI’s favor on this matter.

Considering that the NSA is already scooping up every electronic transmission it can get it’s hands on, both within the United States and outside of it, the request by the FBI appears to be rather redundant though criminals with any brains, would not electronically transmit any incriminating information in the first place and as such, probably would not hide such information on a device that can be easily stolen or lost.

Yet, the FBI request in question appears to center around access to the smart-phones of the San Bernardino shooters only a few months ago.  And here the local police have demonstrated that such access would probably yield little if any worthwhile information since they had pieced together all of the needed information through normal investigative means.

Whether you believe that the San Bernardino attack was a “False Flag” operation or not (and there is some evidence to suppose that it was), the mainstream media presentation of the situation has already been founded on the acquisition of data through normal investigative channels.  For example, the police investigators have found absolutely no links between these shooters and any radical terrorist organizations, though they may have been influenced by the propaganda from such groups.  If there are no links found in any avenues of normal investigative procedures, it is unlikely that such contradictory information would be found on one or two smart devices in the shooters’ possession.

Being that as it may, allowing any government or business organization to have an open-door pathway into one’s privacy at such a level is somewhat ridiculous given the technical challenges it poses and the fact that once provided leaves such a path also open to those who are part of the criminal mindset that the FBI is trying to get information on in the first place.  In this case, you simply can’t “have your cake and eat it as well”.

Read more of this post

%d bloggers like this: