19.12.2019 Views

syntax#1

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

74

BUGS AND BEASTIES

But then more and more little annoyances, limitations and bugs were

reported. Functionality needed to get rewritten, breaking other

functions and so forth. If you are a self-taught coder, you were surely

putting your feet into the shiny glaring trap right ahead of you.

Fixing bugs and rewriting functions is what most of us would describe

as boring and so motivation declined more and more. Progress became slower and formerly

active people focused on other things.

Having hard-coded settings in your application hides a lot of trouble you else will have to face.

I left the secure haven of hard-coded stuff I was required to code some proper GUI elements.

People like to rename their player chars, to select from drop down lists and all the little basic

functionality people of today just expect. Using BlitzMax meant easy access to graphics, sound

and other important stuff. But it did not provide access to a game GUI fitting to what I planned.

While writing the GUI stuff and other game functions I was also coding helper

functions to allow manipulating graphics in software. There was no „Render to

texture“ functionality abstracting the bindings to DirectX and OpenGL, so I needed

to do certain stuff on raw pixel data. At the end I was able to replace all “gray”

parts of an image portion with a colorized version. So player figures were drawn in

gray across all parts requiring colorization and then I was able to tint it properly.

Elements which were to display in gray were not possible without a little hack: a

slight tint (adding 4 to the blue channel). Having a GUI consisting of many single

image textures made the performance drop on the older computers some

people used for TVTower. So I‘ve read about sprite atlases. BlitzMax did not

offer support for sprite atlases per-se but allowed rendering parts of an image.

I utilized this in a custom sprite class which also handled animation setups and

special drawing variants. Having written all the helper functions increased

performance quite a bit and the game even drew tinted assets back to the

sprite atlases.

Next to the graphical parts the game required some proper data storage for the

game data , and so we switched from regular TXT files to XML.

The game became more and more playable. A lot of the game core mechanics

were working. It felt really playable. A big important step then was that another

user approached to me ...

In 2007 another German fellow applied for coding the AI in Lua. I gladly

accepted especially as BlitzMax offered Lua support already. Just needed to

learn how to make the AI be able to access game information. Months passed

and the AI started to move around in the building and to do simple

program schedule planning. Things got more and more complex and a

lot of requests were created. Instead of extending the game play

functions I was again just coding internal stuff nobody except the AI

would ever see. People loose interest if stuff does not change for

months. And I cannot expect the players to keep waiting for the game

for years.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!