carlfoxmarten: (Default)
I may have mentioned that I've been working on building a prop for a local theatre company on here, though not as much as I've talked about it on a forum I frequent. Anyway, progress on that has pretty much stopped due to several factors, mostly stemming from the fact that I don't have a base to work from and have to build the whole thing from scratch.

Anyway, this year's panto is Beauty and the Beast, and since my boss has started to refuse me Saturdays off, I'm not able to participate in the same way anymore. Apart from that, I'd also noticed that the script mentions a magic mirror. Many movie versions depict the magic mirror as glowing shinily when activated and used, so why not add some LEDs to the prop so it does some cool effects like that?

So I've been given the task, about two weeks ago, and now I'm almost done building the prop! =^.^=

Nearly instrumental was a lady at a higher-end secondhand store around here that helped me find a cheap kid's racquet made of plastic. A layer or two of tape on each side got rid of the annoying bounce sound from the plastic sheet in the middle, and foam board is doing very nicely for fleshing out the back side.

To use the mirror, you're supposed to "polish" it three times, then it flashes and shows you a glistening image of what you want to see.

To provide the lighting effects, I'm using NeoPixels, individually-addressed LEDs with the LED driver chips built right into them. See the article for more info. Anyway, what that allows me to do is to control the RGB colour of each LED independently of each other, but only use a single data line for an entire string, instead of having three separate control lines per LED.

Finally, to provide the brains of the operation and effects, I'm using a Pro Trinket, a tiny microcontroller by the same company as the NeoPixels, that uses the same software development toolkit as the very popular Arduino series of boards. They're very easy to write code for, all the way through to programming the board itself, as well as being fairly cheap to buy, running around $16CDN each.
(compare that to $40 and up for the official Arduino boards)

Power will be supplied by a cheap dollar store USB power bank, which provides a reliable 5V supply, which both the LEDs and control board needs. Plus, it's cheap, around three bucks. Pity I can't find any more for the moment, so as soon as I do, I'll be buying a whole bunch.

So far, I have a semicircle of wire with the LEDs spaced out around it that fits just inside the outer edge of the racquet, and a temporarily wired up microcontroller, with a program that is about 90% of the way to being what I understand we want thus far. Once I have it properly attached to the mirror frame, I'll be bringing it to the next rehearsal for more feedback.
carlfoxmarten: (default)
Warning: Gets very technical, so beware!

So, the very first magic wand the theatre company I'm involved with had caused some electrical burns to its original operator due to malpractices by the original creator.
I think it might be fortunate that he's dead now, though I think it was more due to age than an accident with his contraptions.

The second version (that I'm aware of) was the one that our current fairy queen broke this year taking last year's decorations off it, so the third version was the one I fixed up and improved.

The fourth version, which this post is about, is one I've been asked to build to replace our old one.
The fifth version, and there will be one, will have even more features than V4, so we'll either be able to choose which features to enable, or which wand to use for each year after, depending on what features we want to use that year.

Very technical details are here... )
carlfoxmarten: (default)
So, my room is somewhat small, and rather frustrating due to the sloped ceilings, but also very cluttered.
This means that any projects I work on are either on my computer, or worked upon on my bed, which is very much not a desirable thing.

A somewhat more thorough examination of the furniture in my room yielded a kneehole-type writing desk, built by my grandfather to excellent standards of quality, but quite impractical for me to use as a workbench.
Also, due to age and current excellent condition, it's not something I'd ever consider modifying.
I was almost horrified when the clerk I was talking to at a local contractor supply store suggested I start with its table top and work from there... =0.o=

Fortunately, I've been watching numerous videos dealing with woodworking, and the variety of wood available is very wide, so ideas were starting to come together in my mind quite readily.
It was also a good idea that this first trip was merely a scouting trip, as I was nowhere near having a solid decision for the exact design, dimensions, and wood selection.

Since it's primarily going to be a workbench for doing electronics work on, pine is a good enough choice, especially as it won't be for hammering and other such heavy work.

I'd also like to have some interesting electrical work on it, including two desk lamps, one on each side, with LED bulbs in them for focused light, two pairs of switched outlets, one on each side, so I can leave my soldering iron plugged in, but turned off, a strip of diffused LED lights under a strip of wood on the top of the bench's back.

I did pick up a book on electrical wiring to help when the time comes, as well as had a good long look at the various outlets, switches, etc, that are currently available, so I have a pretty good idea of how I want things when I finally get that far.

Fortunately, I'm not planning on anything terribly difficult, but I'm still feeling rather tentative about the whole thing, which is probably a good sign.
Actual dimensions will depend on several factors, including how high I want the benchtop, how much extra space I can squeeze out of the other furniture, how wide and/or tall each piece of wood will be, and stuff like that.
carlfoxmarten: (default)
So, apparently I've done so well with repairing our current magic wand that I've been asked to make our next one! =^.^=

Further talks and research into what people would like and would find useful and/or helpful has yielded a pretty good amount of information.
For example, since our director of 25 years has somewhat retired and her son (who has also been with us for a very long time) has taken over as director, he has quite a lot of ideas that could make things even better, including our future magic wand.

Our previous wand was only capable of flashing when charged and turned on, so there is a lot that can be done to improve on that.
In fact, our current wand is now capable of glowing when charged and on, which is already a great improvement.

He'd mentioned that what he'd like a very capable wand that can do a lot, but the various features can be turned on or off as desired each year.
He did also say that it would probably require a user's manual because of all the features, but we do make sure our fairies are able to use the wand well before the show starts.

Here's a list of some example effects that we'd like a new wand to do:
  • Pulsate or cycle through a rainbow when the fairy is invoking a spell.
    (this is a very straightforward effect that can be easily done with about fifteen dollars-worth of parts, and is programmable to boot)
  • A ‘disco ball’-like effect of dots of light rotating slowly around inside the bulb.
    (this is going to be tricky, as we can't have any shadows on the front of the bulb)
  • A sort of ‘chaser’ effect, with columns of light spinning around the bulb.
    (this should be relatively straightforward. Just a few LEDs with fins between each pair so their light doesn't interfere with each other)
Quite an interesting list, though I'm quite sure it's not complete yet.
Though I'm not sure that would be possible to have all those effects on the same wand, not without having multiple wand tips anyway.

I also don't think I'm ready to try putting all that together my first time making a new wand, so I'll likely be making at least two wands, with the first one being rather less capable than the later one(s).
Hopefully I can get the first one done before February 27th, as that's when my theatre company is having its cast party...
carlfoxmarten: (default)
Well, the magic wand our pantomime's fairy queen uses was handed back to our director for final structural repairs before it gets handed back to our props mistress (who is also our fairy queen, and is also the person who broke it in the first place), so it's quite literally out of my hands now.

Fortunately, it was in excellent working order before then, so I'm pretty happy about that right now.

Next up is to write some documentation on working with and repairing it, should I not be around when such things need to happen.
Plus, it would be a good idea to mention that it's, oh, I dunno, dangerous what with the high voltages involved.

Anyway, because the flash unit (which I'd made removeable) is hard to describe with words, I just know that I'm going to need pictures.
The downside to that is that I need pictures.
Despite having taken a number of photos while I still had it, I need to improve their legibility, which means I have a fair bit of processing work ahead of me.

Unfortunately, this is not something I already know how to do, and so I'll need to learn as I go.
There are many techniques that might possibly help, but I won't know until I get to that point.

For example, I can draw vector graphics overtop the image to recreate the images with far more control over how it looks than other methods, or I could painstakingly draw lines around the edges of objects and manually adjust their colours and shading.
Both are still very hands-on, lengthy operations however...
carlfoxmarten: (default)
Okay, just one prop.

But it's a rather interesting problem, and one that's taken me two weeks to get to even a moderate understanding what the problem is...

I've already mentioned on here about the idea I'm working on for a remote sound-effect trigger system.
Well, our director noticed how (seemingly) adept I am with electronics, and on November 8th approached me with a supposedly simple problem.

You see, we feature our fairy queen with a magic wand prop, which gives off a bright flash when its button is pressed. The flash is bright enough to be seen in the back rows of the theatre, but not bright enough to blind the fairy.
Anyway, apparently our current fairy queen was taking last year's decorations off the wand when she accidentally broke the ball off the end.

You know, the ball that contains a flash circuit board from an old film camera?
She broke the wires off the circuit board, and the question was how to get it back in working order.

My initial response: Yeah! Sure! I'll have it done by next week!

Yeah, no.

The circuit board was taken from an old film camera, and therefore not intended to be used in the manner we have been, so the pads I'm supposed to solder the wires back onto are not marked, which in turn meant that I had to follow the traces on the PCB by hand.
(yes, I checked. The part number on the board didn't show up anywhere online)

Anyway, after finding about half-a-dozen different schematics for various brands of old xenon-type flash units (none of which matched mine), I finally (thought) I'd figured it out and decided to move all the components to a new board.
Unfortunately, it didn't work, and I then moved only the parts responsible for charging the capacitor back to the original board, where it worked again.
(turns out I'd missed a connection)

My current plan is (as I'm still not finished it yet) to use both boards to make it a more compact package, incorporating a plug and socket between the wand itself and the flash unit so we can have a backup flash unit.
(and hopefully this won't happen again)

I wired the whole thing up again in a temporary manner on my workbench (aka, my bed with a board overtop) and it works again! =^.^=
Next up is to move the charge LED (now a bright white one instead of a tiny green one) next to the flashbulb, lower the value of the resistor right beside it, and wire the boards together properly.
carlfoxmarten: (podium)
The theory behind my latest project is as follows:

An inexpensive fob (partially disassembled to save space) is hidden inside a prop gun. The trigger presses a given button on the fob, which sends a radio signal to a receiver.

In this case, the receiver is a rather generic device, intended to trigger almost anything with its relay (which can handle up to 10 amps) from garage doors to lighting. For our purposes here, it works just fine to pull an input line low.

The microcontrollers I've been testing with are all Arduino-compatible, so I'm able to take advantage of the dead-easy (for a programmer) development environment that is used for Arduino boards.
The first board I used was an Adafruit Trinket, a very small microcontroller with a miniscule five digital I/O pins, two of which I needed to use for the USB connection to the computer.
The second was a spare Arduino Leonardo that I have other designs on, though it works well enough for testing purposes.
(the nice thing about the process I'm using at this point is that it's all practically breadboarded, and everything can plug-in and unplug easily, so I haven't wasted any hardware doing testing just yet)

When the microcontroller detects that a relay has been activated, it acts as a generic USB keyboard and sends a key-pressed signal to the computer it's plugged into.
I spoke to the person who's in charge of running the sound-effects for the theatre company I'm involved with, and was told that two channels are the best option at the moment.
Anything more than two just gets confusing, and can be easily handled with gunshots mixed into an audio file and played in the background.

On the whole, it's a very simple process, but the programming for the microcontroller can be tricky if you haven't figured out how to separate the two channels effectively.
In that case, you must figure out how to handle press/release and key-down/key-up properly, and without putting the processor into a locked state while waiting for a release event.

I'm pretty sure I have enough code done to do a good enough job, I just need to do a more thorough testing.

Theoretically I should have enough of the project together to be able to demonstrate the project to my director friend so she can get a good idea of how it will perform, though there's still the issue of supplying power.

Under most conditions, I'd be able to draw all the power necessary from the USB cable.
Unfortunately, it only supplies 5V of power, and the wireless relays I'm using require a bare minimum of 9V, though the documentation states that it requires a 12V supply.

I'd like to stay well away from batteries for this, as they're going to have a hard enough time trying to find replacement 12V batteries for the fobs when they eventually run out, so I'll need to go with a "wall wart" style power adapter.
This also means that I need to find one of those things, along with a jack to plug it into...
carlfoxmarten: (podium)
It's actually quite fascinating knowing a theatre director. You get to learn all sorts of things, and get a bit of an "in" to see even more stuff.

For example, I was able to see what you might call a minimalist production of “Hound of the Baskervilles” that used three males actors and a two-sided fireplace, and was later invited to usher the same show at another venue.
(we joked about starting a new theatre company called Three Men and a Fireplace. It would work! Honest!)

Anyway, there were a few scenes where one of the actors had a small plastic gun they had to fire a series of shots from, but the shot sound effects were part of an audio file played through the sound system, so they had to synchronize their hand motions to the audio file, which didn't work very often.
(well, not to me, anyway)

So I decided that there ought to be a better way to do this.

I found out that they use a program to cue up all the sounds that make up the sound effects portion of the show into a sort of audio script.
It's triggered somewhat like PowerPoint, just keep pressing a key to trigger the effects.

You can also trigger particular effects via other keys on the keyboard if your script isn't actually a single linear progression.
This is important, because it makes what I'm trying to do possible.

I also found out that you can buy a hobbyist-oriented four-button key fob and wirelessly-activated relay.

Put these two thoughts together, and you get a key fob whose relay activates a key on the guts from a USB keyboard.

Now, while you can get USB keyboards pretty cheap nowadays, there is an issue with most of their circuit boards.

The pads used to connect the board to the key matrix do not actually accept solder.
In fact, the one board I'd tried actually had the hot solder roll around on top of it, and broke right back off easily after letting it cool and harden.

Second option was to use any of a multitude of microcontrollers, small very low-end computers that are (usually) easily programmed to do simple tasks.
Well, there aren't too many things simpler than pushing a button when an input changes, so it should work fine, right?

First test was with an Adafruit Trinket, a small ten-pin micro microcontroller that has three data pins and a bunch of power pins. Useful for small projects.
Plus I was able to have it emulate a USB keyboard! =^.^=

Unfortunately, I need about six I/O pins or so (might be up to eight, I'm not sure yet), so while it was great as a temporary test rig, it won't be useful in the long run.

Because the Trinket is compatible with Arduino microcontrollers (as are many microcontrollers nowadays, much to my relief), I'm currently mocking up some software on my recently-purchased Arduino Leonardo (one of their latest official boards) before I choose a smaller board to 'port it over to.

Ideally, I want to put as much of the parts as possible into a small plastic project case so it all looks fairly professional.
(with the added benefit of preventing connections from getting bumped)

Anyway, I'd tried to show my progress to my director friend, and she and her husband (who does the music and sound effects for her shows) are both quite happy about the possibilities.
Unfortunately, due to a faulty cable, I wasn't able to actually demonstrate the project to them, but I will have a working model to show them later.
(honest! =^.~=)
carlfoxmarten: (podium)
Yeah, I know, it’s weird to be a guy and do yarn crafts, but hey, I never claimed to be normal.
I’m probably one of the least normal people I know of, but that really isn’t saying much...

Read more... )
carlfoxmarten: (podium)
So, back in October of last year, I attended a showing of Hound of the Baskervilles, a lighthearted take on the Sherlock Holmes classic.
It didn't take itself seriously at all (much to my great amusement), and surprised me at how well it did for a somewhat minimalist show.
(having only three actors and one stagehand, along with a small array of props and set pieces)

In fact, I enjoyed it so much I saw it a second time! =^.^=
(fortunately, as I was involved with a pantomime at that point, I was only charged ten dollars a ticket instead of the twenty-five it ordinarily cost)

The only thing I noticed that could be improved upon (and there was damn little of that, aside from seating and visibility) was the synchronization of gunshots to the actor's hand motions.

Having spoken with a couple of people involved with the production of the show, I learned that they had a soundboard program doing the sound effects.
Pretty simple setup, you press a key and the associated sound effect played.
I was told that the gunshot effect was manually triggered, so the actor with the gun had to be in sync with the sound person triggering the shots.

Now, I put my thinking cap on for this and tried to come up with a way to make it easier to keep the sound tied pretty closely to the actor's motions.
One option I came up with involves a cheap USB keyboard, a wireless relay, and a wireless key fob.

The key fob activates the wireless relay, which in turn closes over one of the keys on the keyboard, sending the key-pressed message to the computer.

It's pretty simple, and requires very cheap parts.
Ought to take less than thirty dollars, I'm guessing.
I already ordered the remote and relay, now all I need are the cheap keyboard and some kind of power supply.

Looks like the trick's going to be the power supply at the moment, mostly because I'm not sure where exactly to look.
Lee's Electronics has something that should work for less than ten bucks, but I'd still need some kind of socket to plug it into.

Ah well, still at the drawing board...
carlfoxmarten: (podium)
Well, it's been a while since I used this journal to post about the status of my Android games, so it's probably about time now.

I have two of these on the go right now.
The first is called “Dig Site&rdqou; and is a connect-three matching game where you slide the lines of objects around instead of swapping them.
The second doesn't really have a name just yet, so the working title is “Electrical Connections’. In this one, you work against the computer, trying to connect two electrical bars to each other by putting smaller bars between posts, while the computer tries to block you after each of your moves.

Dig Site work has stalled due to the extremely high amount of graphical code that needs to get massaged to have things working well.
Currently, it's playable, automatically stores your game, has four levels of difficulty, and needs far better graphics than it has right now.

Electrical Connections is currently only a Java prototype, but has passable graphics (for a prototype) and will detect when the current game is over, who won, and will start a new one on the next mouse click.
Currently I'm somewhat stuck on the computer's AI algorithm.

The game has to choose the best place to put a blocking piece based on the grid as it stands after each move the player makes.
This is in no way a trivial operation, as I have to take into account both the best move the player can make as well as the best move the computer can make.
If the best plan of action the computer can make requires more moves to complete than the player's best plan of action, then the computer needs to block the player's next perceived move instead of its own best move.

Despite the fact that I was able to articulate the above, it still hasn't gelled in my head in such a way that I can put it in code.
I think I need more time in front of a whiteboard so I can closely examine what makes this algorithm tick and how it needs to work.

This is particularly important due to the fact that it's this algorithm that will make or break the entire game.
It won't matter if the graphics are awesome, the sound effects perfect, and the music (if any) fit together well.
If the algorithm is too hard or too easy, the game won't be much fun.
carlfoxmarten: (Default)
Sometimes I surprise myself with how quickly I can put together a small program.

Case in point: Yesterday I was playing an online Scrabble-like game called Popotamo, and had been using an online word-search tool to find the highest-scoring options (the longest words, in this case), but kept running into problems when the board got pretty full.

So I decided to grab a copy of the SOWPODS dictionary (the dictionary used by the game I've been playing) and try to write a simple program to provide suggestions based on the tiles I had already, as well as providing an option for specifying constraints for the words.

As it turns out, it was actually a rather simple program to write, taking less than four hours to complete, most of which was spent trying to figure out how to design the User Interface.

Originally, I'd written it in Python, an easy-to-use scripting language, but realized that it's not a very fast language, nor is it terribly portable.
So I decided to rewrite it in Java, which took less than two hours, most of which was spent trying to remember how Java does GUIs...
However, the advantages Java has over Python were threefold: First, it was fast, which is great when processing long lists of words. Second, it is entirely platform-independent, which means that it can run on any type of computer that has a Java implementation. Third, the program can be packaged up into a single file, which means that you don't have to fiddle around with the dictionary file, because it's wrapped up in the single file.
(also, if I so chose, I could embed it in a web page, but I've decided against that for the moment)

Anyway, I was quite surprised at how fast it came together, and once I've found an appropriate place to host the file, I'll be posting a link here so others can use it too.
carlfoxmarten: (Default)
In today's modern age of computer programming, extremely few projects start out with nothing to base their work on.
This means that just about every programmer, whether they realize it or not, has an immense library of code they can pull from.
Due to the cross-platform compatibility we've been striving towards in recent years, that library is even larger.

One of the many ways to think about this is to imagine that all the code available to the programmer as parts that can be connected together.
If all the pieces the programmer needs are readily available, then it's simply a matter of plugging them together, with maybe a few lines of code for each connection that must be made.
(of course, it does require knowing what to use and how they fit together, but that's what documentation is for)

Where this breaks down, however, is when something isn't handled by the code available.
When the programmer needs to write a new section of code that does more than just interface between two other sections.

This is where I am right now on my Dig Site game.
I've decided that a particular feature would be a very good idea, and would mean I wouldn't need quite so many different block types/shapes/colours as I would have otherwise.

Unfortunately, this means I'll need to add a whole bunch of code that is based on concepts that I'm still a little fuzzy on.
Namely, probability tweaking.

Up until this point, it has been entirely random what block types are added to replace matched blocks, and the likelihood of each type getting chosen has been equal.
Now, I want to make the game harder by picking block types that are less useful to the player as play goes on.

This means that I need to figure out what block types would be most useful to the player and make them less likely to show up.
Not only that, but I don't want this calculation to have much effect at the start of the game, and gradually increase its effect the longer the game is played.

It's taken me a day or two to figure out the logic needed behind the setup, and another couple of hours to make sure that the code was right.

Unfortunately, I still don't know if it's anywhere near right yet, as I'd stepped away from the computer about half-way through writing this section, and when I came back, the computer had "kernel panicked" on me.
(the Linux equivalent of blue-screening)

Fortunately, I had saved what I'd managed to complete up to that point, so I won't have to rewrite anything yet.
I'll take another crack at it tomorrow.

Also posted to my Tumblr blog.
carlfoxmarten: (Default)
In much happier news, work on my Dig Site game is progressing very nicely.

It took me a day (only! Yes, this surprises me) to add support for checking to see if the board contains any valid moves.

I've delayed adding this before because I thought that it would be overly complicated, take too much time to run, and/or be nearly impossible.

As it turns out, the code is actually relatively simple (so far as concept goes, anyway), it doesn't take much time to run, and it was actually easier to write than I thought.
(most of the time was spent figuring out how it should be structured and what checks should be in place)

In addition, I've added support for some form of difficulty levels, which I'm managing by increasing the number of block types the higher the player's score gets.

This also means that I need more colours for block types.
Last time I tried to add more colours, colour was the only way to tell some blocks apart, and certain colours were difficult to tell apart.

I was thinking that it might work to overlay black outline versions of the tiles I'm thinking of using over top the coloured rounded square I have right now to give it a flavour of what I've been working towards.

Still not sure about it, but it would solve a couple of problems I have.
carlfoxmarten: (Default)
A Refreshing of Direction.

My Android game will be delayed a bit further, as I've been reminded that the best indicator of how successful a game will be is how much fun the designer has playing it.
(particularly, does the designer still play after it's been released?)

I've detailed how I hope to extend game-play in my Tumblr article, though I'll also comment on it here in case somebody wants to provide me some feedback.

My original design had the game awarding the player fragments of artifacts at random during play.
Once you had enough pieces to put one artifact together, you could sell it to the museum (or before, if you were desperate), then use the resulting money for "power-ups" and bonuses.
Some power-ups I've thought of so far include hammers (breaks a single block), bombs (destroys a radius of blocks), paint brushes (changes a block's type), and hint bonuses.

All of this is going to take a fair amount of time to code up, so my official release date has to get pushed back significantly.
(all the better to get a good product, you know)
carlfoxmarten: (Default)
Whatever my normal is...
(no! Seriously! Sometimes I don't know what my normal is!)

So, now that my sister is married off, I'm next in line by age.
Fortunately, my mother has said that she'll hold off on nagging me to get married until I get a job, so I'm relatively safe on that score for now.

What I hope to work on this week is my Dig Site game for Android (you can visit the official blog for my projects of that sort on my Tumblr site), redoing some of the fan-art I've been in the process of creating for Darc Sowers' Codename: Hunter comic, and trying to have another look at moving back a version of Ubuntu.
(I've found altogether too many reasons to avoid Ubuntu Oneiric Ocelot, it is no longer something I know I can easily ignore)

If I think I can, I might try working some more on my Prolog adventure game framework.
My interest has been piqued after a friend expressed interest in the language's current status.
carlfoxmarten: (Default)
I know, I know, I should be posting this to my Tumblr blog, but I thought I'd post it here first, as the comment locks are rather restrictive over there.

This past Friday, I'd showed what I currently have off to my mentor, an instructor at my university's closest campus, and got rather positive feedback on it.

He pointed out several very helpful things that I hadn't thought about, like putting the highscores page right in the main menu, some alternative suggestions for handling scoring, several very interesting "bonus/penalty" concepts, and recommended that I write a very simple story to help answer some questions players might have about gameplay, such as "Why am I doing this?", "Am I doing this legally?", and the like.

The story doesn't have to be anything very large, it could even fit on half a page.
Something like "You are an archaeologist at a dig site in [insert area here], looking for relics and artifacts to take back to the museum that hired you." may suffice, though I'll have to think about this for a bit first.


Posted via m.livejournal.com.

carlfoxmarten: (Default)
I've created a Tumlbr account for the projects that I'll be releasing publicly:
http://dvh-dev.tumblr.com/

Note that this has my real name attached to this, not this one.
(I use Carl Foxmarten for my artistic pursuits)

I'll be posting updates at least once a week until Dig Site is released, then I'll be using it for some other projects of similar scope.
carlfoxmarten: (Default)
I've started to post bits of the backstory behind the game I'm writing on the Cross Time Cafe forums, so go have a read if you're interested, and post some comments if you have them.

These story clips will be part of the backstory in the game's distant past, and most of it won't directly affect the first instalment, but will help inform the design and story within the game.

They will set up the technology, the culture, and set the stage for each instalment.

I may have mentioned it before, but the first instalment will have a human (the player) discover the islands on Earth where the alien race built a settlement that (at first) is inexplicably devoid of intelligent life, which will culminate in the player travelling to the Age where the aliens have their main base so you can tell them what happened.
The second instalment will start from there.
(yes, I don't have anything for that part yet)

If you have comments or feedback, please leave them either here or on the forum entry.
carlfoxmarten: (Default)
I never realized just how much knowing about different programming languages would affect my knowledge of other programming languages.

For instance: I learned C, Java and C++ before I attended university, where I learned more about them and programming in general.

While at university, I learned that the above languages were all the same type of language, namely, they're all Imperative languages, which means you give the processor a list of instructions that it executes pretty much directly.

I also learned about two more types of programming languages, such as Logic Programming, which is where you construct a solution to a problem and let the built-in logic solver solve the problem itself, without specifying the exact sequence of instructions, as well as Functional Programming, which is similar to Imperative Programming, without giving you any form of global state, which means that every function returns the exact same result when given the exact same parameters.
(Functional Programming is often used for low-level systems programming, such as for low-level Operating System functions and BIOSes)

I learned about these programming language types by learning about programming languages that implement these types, such as Prolog and Erlang.

While designing the Event system for my Tetris Power project, I started to realize just how using a Logic Programming language would simplify the core of the system.

For instance, many events more-or-less directly trigger other events, like a "block_land" event might trigger a "row_full" event, which itself triggers a "score_add" event, which then has to add a floating score to the screen.

Theoretically, it should be relatively easy to do something like this if I use Prolog (the only Logic Programming language I know at present), though it could be a little awkward in places, due to the extra layer between the game logic and the rendering system.

I'm going to be examining this more fully and even starting a new branch to work on this to see what happens in practice.

More will be posted as I learn about it.

Profile

carlfoxmarten: (Default)
Carl Foxmarten

April 2017

S M T W T F S
      1
2345678
910111213 1415
16171819202122
23242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 23rd, 2017 06:53 pm
Powered by Dreamwidth Studios