Tam Toucan
Psychedelic Coder Chef
Monitor
Cracked Actor
   
Huggles: 5
Achievyments: 
Posts: 711
Thank You
-Given: 4
-Receive: 6
Am I walking backwards or forwards?
|
 |
« Reply #15 on: June 28, 2009, 05:21:38 PM » |
|
Day 24 The ghost of James Doohan watches me code for a bit and then says "You cannae change the laws of physics ya numpty". He was born half an hour down the road and sometimes stops by. Just to hassle me mostly. You'd think ghosts would show more respect to the living, but regardless of the tone I can't fault his statement; I'm useless when it comes to physics.
Moment of inertia, mass, torque, gravity, angular velocity, damping constant,... I have over a dozen different values to play with to try and make something that "feels fun". So far I've got a collection blooper videos that would earn me 250 quid from "You've Been Framed" except they're all buses falling over instead of babies/puppies/kittens.
Still trying not to think about gameplay...I did briefly for about 2mins and came up with about 20 things that I could put in the next game. "Good grief", says Charlie Brown*.
However if I don't get something that "feels fun" soon I may have to take drastic action. Ideas include, but are not limited to 1) A puzzle game - "Guess the values of these 14 numbers that make a fun game" 2) A RPG - "Create you own unique Bus. Click to re-roll" 3) An avatar generator - "Type your name to watch a video of your bus falling down, or up!" 4) A political game - "Public transport sucks!" 5) An art game - "This game sucks!"
Who knows, maybe I'll get lucky and Einstein with stop by.
*No idea. My house seems to be some sort of ghost magnet. Even for fictional characters.
|
|
|
|
|
Logged
|
35 39 36 66 37 35 32 30 37 33 36 31 36 34 32 30 36 37 36 39 37 34 32 65 32 30 34 37 36 35 37 34 32 30 36 31 32 30 36 63 36 39 36 36 36 35
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
Cracked Actor
   
Huggles: 5
Achievyments: 
Posts: 711
Thank You
-Given: 4
-Receive: 6
Am I walking backwards or forwards?
|
 |
« Reply #16 on: July 06, 2009, 07:02:05 PM » |
|
Day 27 A couple of days randomly changing numbers forced me to call an impromptu seance. Einstein didn't show, but Reg Varney did and between us we got something that, whilst still a long way from fun, gives me something to play with. But play at what?
Day 29 Two days refactoring, a sure sign of denial. Still at least the chipmunks have a ChipmunkWorld instead of that Level they were in before. And I can sleep better too knowing that any object can have a spring, instead of a single global hack. Of course I only have one object and one spring, but it's the principal that counts...
I think I need to put something out to spur me on. A pre-alpha litter tray release*
*Sort of like a sandbox, but full of crap.
|
|
|
|
|
Logged
|
35 39 36 66 37 35 32 30 37 33 36 31 36 34 32 30 36 37 36 39 37 34 32 65 32 30 34 37 36 35 37 34 32 30 36 31 32 30 36 63 36 39 36 36 36 35
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
Cracked Actor
   
Huggles: 5
Achievyments: 
Posts: 711
Thank You
-Given: 4
-Receive: 6
Am I walking backwards or forwards?
|
 |
« Reply #17 on: July 21, 2009, 02:10:09 PM » |
|
Day 31 Pop quiz. What kind of idiot would draw text using their own individual 3D objects instead of some off the shelf library? The same kind of idiot that would then use 3D co-ords to position the letters so that you get perspective problems (move an object closer to make it bigger, but it's screen Y will change as well depending on it's current 3D Y position).
Six hours to get some really crappy menus. More time than on anything else. Oh, and don't start me on wanting to show the current selection in a different color....The same idiot that designed the above also hard linked the 3D models to their materials. So to draw text in a different color I'd have to load two fonts.
Sigh.
In the idiot's defense, the idea was the menus would exist in the 3D world and the user move/fly about they selected options. Text would also be used in game e.g. monsters could shout "OUCH" in big 3D letters which were actual objects in the game. The materials thing? No excuse, it was the first code I wrote and I simply didn't think about it.
|
|
|
|
|
Logged
|
35 39 36 66 37 35 32 30 37 33 36 31 36 34 32 30 36 37 36 39 37 34 32 65 32 30 34 37 36 35 37 34 32 30 36 31 32 30 36 63 36 39 36 36 36 35
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
Cracked Actor
   
Huggles: 5
Achievyments: 
Posts: 711
Thank You
-Given: 4
-Receive: 6
Am I walking backwards or forwards?
|
 |
« Reply #18 on: July 21, 2009, 02:18:28 PM » |
|
Day 32 Putting in my one tap input system. This was an idea I had when I saw the Game For Helen category of the 2008 RR Compo. It's a layer between the user input (keyboard, mouse, joystick) and the input to the game. The idea is to separate the user input from the game action so you don't make assumptions about how the user wants to do things e.g. press left to go left.
It defines "switches" which have an associated "screen area". The switch has a "trigger" (mouse, keyboard, dwell, enter/leave screen area) and raises game "events" (pause, fire, explode any alien named Geoff) on different "actions" (press, release, hold press, hold release, enter, leave).
Some simple examples might help.
On trigger=ESCAPE_KEY in screenArea=ANYWHERE event=SHUTDOWN when action=PRESS
On trigger=ENTERLEAVE in screenArea=BOTTOM_MIDDLE event=PAUSE when action=ENTER
On trigger=ENTERLEAVE in screenArea=BOTTOM_MIDDLE event=RESUME when action=LEAVE
Screen Areas are just boxes defined as percentages of the screen size and can have a color, a highlight color and a graphic. Events are game specific, but there are also standard ones for changing the current active screen area (mouse can obviously be used as well) and for switching "trigger group" i.e. the set of triggers can be grouped into a context so they are only active at certain times.
e.g. Press P, event=PAUSE and triggerGroup=MENUS. Can then have a whole bunch of triggers, screen areas and events which are only active when paused.
The point of all this is to have a completely flexible input mechanism making no assumptions about the users requirements. E.g. Space Invaders where putting the mouse on a big "L" or "R" or "S" box sets the left/right/stop movement of the ship, but it only moves when the mouse is in bottom third of the screen (RTS Space Invaders anyone?).
Ok, so that's a silly example, but remember the game can still be normal space invaders, this layer is separate to that. With some additional game options (auto fire when below an enemy, rapid fire, bullet size etc) it should be possible to make the same game accessible to anyone. And by adding creative game events you can completely change the game for almost no cost.
E.g. Split the play area up into grid of screen areas where the dwell trigger is "move to next area" and the press event is "destroy invaders in current area". So the "cursor" automatically moves through the grid of screen areas (which can have a highlight color to show where it is) and pressing (key/mouse/etc) destroys the invaders. You now have a "whack-a-mole" type Space Invaders controllable with a single switch.
Change the dwell event to "destroy invaders in current area" and you have head tracker support where the user can dwell or press to shoot. The number of screen areas and their size can be small or big depending on the accuracy of the player. They could be a complete row or column if the user only has movement in 2 directions.
Remember, other than adding the "destroy invaders in current area" event, the above all comes from free "just" by configuring this mediator layer.
The point was to try not to assume anything and to cater for the minimum input of a "tap" (in my terms a "switch" can be pressed, held and released giving the user 3 inputs. A "tap" can only be pressed so the user has a single input). Again, maybe this is a silly example, but say the user can only "release" the input e.g. "SPACE is pressed" constantly and the user can time when they will release it (but not how long they will release it). This layer allows for that since the input trigger (key=SPACE, action=RELEASE) is separated from what to do (event=WIN GAME).
This is really simple code* and it doesn't change the game logic in any way (checking event=FIRE is no different from checking keypress=SPACE)....so why is there nothing like this in most other games? What's really sad is it's 25 years since Dark Star let you have the flexibility of having the same keys for fire as for movement giving you auto-fire when moving and yet we don't even get re-definable keys in lots of commercial games.
Think about that....TWENTY FIVE YEARS and we still force people to use cursor keys when you could let them define four screen areas that when the mouse is in raise UP/DOWN/LEFT/RIGHT events, automatically giving at least some head-tracker support**
Not saying this is perfect and obviously each game has limits on how much use it can make of it, but it's completely reusable and given the millions spent on game development you'd have thought we'd be have something better than the current state of affairs.
* My configuration of it through text files or a completely unusable set of menus (remember the menus have to be one tap compatible), is horrendous, but at least that's "just" a set up problem, and canned configurations can help.
** Ok, that's not perfect since you may want dynamic screen areas e.g. UP/DOWN/LEFT/RIGHT of the current ship position, not a fixed area.
|
|
|
|
|
Logged
|
35 39 36 66 37 35 32 30 37 33 36 31 36 34 32 30 36 37 36 39 37 34 32 65 32 30 34 37 36 35 37 34 32 30 36 31 32 30 36 63 36 39 36 36 36 35
|
|
|
hatonastick
Supercreep
Huggles: 1
Posts: 282
Thank You
-Given: 0
-Receive: 0
Amstrad CPC 6128
|
 |
« Reply #19 on: July 24, 2009, 09:18:07 AM » |
|
Bizarre. I had a very similar idea about one-switch controls (I still dream of writing a one-switch game oneday..) while playing my usual MMO yesterday (MMO's are typically brain dead easy that it allows the sub conscious to dream away, a bit like watching TV). Fantastic stuff. Look forward to your next entry, reading all of this is highly entertaining. 
|
|
|
|
|
Logged
|
'Skippy the Bush Kangaroo' enters the digital age: *tch tch* What's that Skip? Lassie is bad mouthing you on YouTube again and you need to borrow my laptop and integrated web cam to do a video response?
|
|
|
RobF
Admin-o-tron
Heroes
   
Huggles: 26
Achievyments: 
Posts: 4300
Thank You
-Given: 20
-Receive: 14
Ludofecal Expert
|
 |
« Reply #20 on: July 28, 2009, 05:58:26 AM » |
|
|
|
|
|
|
Logged
|
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
Cracked Actor
   
Huggles: 5
Achievyments: 
Posts: 711
Thank You
-Given: 4
-Receive: 6
Am I walking backwards or forwards?
|
 |
« Reply #21 on: August 03, 2009, 04:56:14 PM » |
|
Day 34 The Freedom For Chipmunks activist group barricaded my house for a week, so little progress. It was only when I summoned the ghost of Terry Nutkins* to plead my case that they left.
*Ok, he's not dead, but he really should be.
|
|
|
|
|
Logged
|
35 39 36 66 37 35 32 30 37 33 36 31 36 34 32 30 36 37 36 39 37 34 32 65 32 30 34 37 36 35 37 34 32 30 36 31 32 30 36 63 36 39 36 36 36 35
|
|
|
caffeinekid
Admin-o-tron
Heroes
   
Huggles: 20
Achievyments: 
Posts: 2569
Thank You
-Given: 2
-Receive: 3
Soo sleepy!
|
 |
« Reply #22 on: August 03, 2009, 08:42:12 PM » |
|
*Ok, he's not dead, but he really should be. Harsh! LOL
|
|
|
|
|
Logged
|
|
|
|
Sweevo
Young Dude
Huggles: 1
Posts: 24
Thank You
-Given: 2
-Receive: 1
|
 |
« Reply #23 on: August 05, 2009, 07:59:09 AM » |
|
Day 34 The Freedom For Chipmunks activist group barricaded my house for a week, so little progress. It was only when I summoned the ghost of Terry Nutkins* to plead my case that they left.
*Ok, he's not dead, but he really should be.
Aww don't diss the "Nutkins" he took a full frontal otter assault and survived (minus a few fingers)Which gives me an idea for a game...How about a harvest moon-esque real time otter management sim featuring our Terry?
|
|
|
|
|
Logged
|
Current projects:Moonwalker 2 (on hold)
"Lean,mean,sand in the Vaseline!"
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
Cracked Actor
   
Huggles: 5
Achievyments: 
Posts: 711
Thank You
-Given: 4
-Receive: 6
Am I walking backwards or forwards?
|
 |
« Reply #24 on: August 09, 2009, 05:22:28 PM » |
|
Day 36 Finished* my Input Controller Layer. Now have menus controllable via OnePress (single key press only), OneSwitch (press or press and hold), HeadTracker (mouse with dwell click) or Standard (keyboard or mouse and button click)....Give yourself a shiny!
Reality is I have several not-very-good control schemes. For instance, menu items scroll with the current item always in the middle. This allows for LARGE font menus (might only have room to show a single option on screen), but most users just want to click on the item they want.
Things like this, plus the fact that I don't have a proper graphics engine (see Day 31) makes it all rather crappy.
Also, fully configurable? Create your own control schemes? Yeah, but no one ever could/would/should, as it's all through horrible text files. Started putting in menus, but the mess of nested options (areas/switches/triggers/events/icons) was like some twisted Steve Jackson book. So currently I don't even have re-definable keys** (other than text files).
It needs is a separate config GUI written using a proper set of widgets, but considering I've yet to actually start the freakin game and this was purely an exercise in showing how "easy"*** it is, I think that's a task best left for another day.
Despite all this, I'm reasonably pleased. I've got 6 different menu input mechanisms****, 2 displays (normal and LARGE) and 1 of my 3 game input schemes done. All without any change to code or game logic (because there ISN'T ANY YET!), just a bunch of config files and it's totally reusable.
Oh, and I just managed to stop myself re-factoring all the hacks currently in the Player class into an EngineManager (changing the functionality ZERO)....Oooo give yourself TWO shinys!
*HAH! **Burn him! ***Easy like the control scheme for bus speed and pause with only a single keypress. ****Haven't actually written the menu options. Sigh.
|
|
|
|
|
Logged
|
35 39 36 66 37 35 32 30 37 33 36 31 36 34 32 30 36 37 36 39 37 34 32 65 32 30 34 37 36 35 37 34 32 30 36 31 32 30 36 63 36 39 36 36 36 35
|
|
|
SmileyMan
Wonderful Person
Cracked Actor
Huggles: 11
Achievyments: 
Posts: 682
Thank You
-Given: 8
-Receive: 12
Registered Loser
|
 |
« Reply #25 on: August 10, 2009, 01:25:48 AM » |
|
It needs is a separate config GUI written using a proper set of widgets, but considering I've yet to actually start the freakin game and this was purely an exercise in showing how "easy"*** it is, I think that's a task best left for another day. I think a seperate config GUI is a better way to go anyway. I know lots of people think that everything should be contained within the game, but from an accessibility point of view, if you use an OS-compliant configuration applet, then you're leveraging all the accessibility stuff that the player's computer is already set up to use. It's not being "lazy", because you still have to support everything in the game itself. Of course, having both would be best of all. On the same note, of leveraging the OS, try having your config being able to save OS shortcuts, so multiple users of different abilities can use the same installation with ease. PS - loving your dilemma with using business-style OO to do games. I have the same problem, which is why I never finish anything. One of my bugbears is just how badly designed most games libraries are; the utter horror of OGRE or CrystalSpace should carry a health warning. But your cat's advice is sound.
|
|
|
|
|
Logged
|
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
Cracked Actor
   
Huggles: 5
Achievyments: 
Posts: 711
Thank You
-Given: 4
-Receive: 6
Am I walking backwards or forwards?
|
 |
« Reply #26 on: August 24, 2009, 08:43:03 AM » |
|
Day 40 Spent 4 hours (2 days) bug hunting. Found it hiding in some 5 year old code. Some of the first I'd written. Not some of the first code I'd written, that was Spectrum BASIC program which eventually had to be abandoned before even being run because I got lost in the mobius strip of goto loops. No, this was just some of the first code from when I started programming at home again.
Five years sitting quietly waiting to steal 4 hours of my life. Patient little bugger. Wonder how many of his friends are still around? Sometimes I marvel that any of this stuff actually works. I did Computer Science at Uni, but programming isn't a science it's an art, and I'm glad it is*.
If a game can be art what of the code below it? What of the craftsmanship that went into creating it? You could call the pyramids "A pile of blocks", just as you could say Forty Niner on the ZX81 "Looks a bit shit"....but you have no soul if you do.
But all art requires it's drudge work. The boring non-creative part. The menus, the titles, the whipping 2000 slaves in the blazing sun. Yet even within that drudgery there is art. A finely crafted loop. A elegantly reused function. Hidden away, unseen and unappreciated except by the coder. Of course without ugly there can be no beauty, and I certainly have my share of ugly. My mutant templated TwoWayMapping class. My inbred, should-have-been-killed-at-birth EventBus that has oozed it's way into every part of my code.
Where was I going with this post? Did I miss the sign for Albuquerque? My writing often goes the way of my programming and I find myself lost in some strange place with only an overloaded ternary operator for company. So where has my programming taken me to these past few days?
- I battled the parameters of glOrtho and won, but it was a Pyrrhic victory since I don't really understand them. - I sacrificed some of my will to life in exchange for menu options which are saved/loaded. - I hunted down and slaughtered an innocuous iterator corruption, but there is little joy in fixing your own stupidity.
Who says programming isn't exciting?
* Except when I'm sitting in a fly-by-wire Airbus.
|
|
|
|
|
Logged
|
35 39 36 66 37 35 32 30 37 33 36 31 36 34 32 30 36 37 36 39 37 34 32 65 32 30 34 37 36 35 37 34 32 30 36 31 32 30 36 63 36 39 36 36 36 35
|
|
|
deps
Cracked Actor
Huggles: 10
Achievyments: 
Posts: 438
Thank You
-Given: 2
-Receive: 0
OMG LOL BBQ ERT!
|
 |
« Reply #27 on: August 24, 2009, 09:05:36 AM » |
|
Your writing reminds me of Why the Lucky Stiff. And the videos are great!  Good luck with it!
|
|
|
|
|
Logged
|
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
Cracked Actor
   
Huggles: 5
Achievyments: 
Posts: 711
Thank You
-Given: 4
-Receive: 6
Am I walking backwards or forwards?
|
 |
« Reply #28 on: September 11, 2009, 05:36:05 PM » |
|
Day 43 Drew a box. Woo-HOO!
Day 44 Drew another box. This one scales!
Day 45 Drew a stretched box on it's side. I think I shall call it a Diamond. Yes, that's a good name.
Day 46 Drew a row of little boxes. Some of them were red.
Day 47 Drew a box with lots of sides. Wikipedia calls this a circle.
Day 48 Ever get it that a common word suddenly doesn't look right? Drew...Drew...Drew? Nope word's lost all meaning.
Day 50 Rod Serling stands in the corner, top lip nailed to his front teeth. "This is story of a man. A man like any other except for one curious quirk. An anomaly. A defect in the wiring of his brain that makes him think he is writing a game, but he has nothing more than some menu options, a poorly drawn bus and a delusional tendency to talk in third person..."
Day 53 This week was Grind Week. Did you buy a flag? I bought lots.
You know sometimes a change ripples through a load of code and you'd almost be quicker training a monkey except you'd have to clean up after it, plus there's the cost of bananas to consider...Actually, 3 hours was grinding, 3 hours was fixing a big hack so I could regenerate the config files for the various input control schemes and the final 17 hours* was annoyance fixing.
"Annoyances" because their nothing major, but sometimes when I've been staring at something for so long that's all I can see. For example, OneSwitch input; hold key => SELECT, press+release => NEXT menu item. But if the SELECT chooses a menu page with a new InputController** then when you release the key it moves the next menu item on new page. Annoying, but nothing to lose sleep over.....
But I do.
It's not like anyone but me is going to care. In fact the first things people would say on seeing the menus are Why don't you... - draw the current item in a different color? - give an indication of dwell time? - show which list item is currently selected? all good valid points, but if I think about them a small black cloud forms above my head and it begins to rain inside my soul***
Indeed I may have created the most inaccessible "accessible" input system ever. Instead of one reasonably polished, usable scheme, I have 6 fairly crap ones. But in the words of Dr Frank'n'Furter..."I didn't make him for you!". Got to draw a line in the sand somewhere I guess.
Well, on with the grind. Those 4 game control systems won't write themselves....how much are bananas these days?
* It certainly felt like that...
** e.g. A TextPage has a different controller since the hold key => SELECT+REPEAT so it will repeated press the scroll menu option (still with me?)
*** I'm using pathos here. Hoping it it will help when the "Donate Now" button appears.
|
|
|
|
|
Logged
|
35 39 36 66 37 35 32 30 37 33 36 31 36 34 32 30 36 37 36 39 37 34 32 65 32 30 34 37 36 35 37 34 32 30 36 31 32 30 36 63 36 39 36 36 36 35
|
|
|
danjo
Teenage Wildlife
Huggles: 3
Achievyments: 
Posts: 51
Thank You
-Given: 0
-Receive: 1
|
 |
« Reply #29 on: September 23, 2009, 09:54:33 PM » |
|
welcome to earth tam. enjoy your stay.
|
|
|
|
|
Logged
|
|
|
|
|