Tam Toucan
Psychedelic Coder Chef
Monitor
   
Huggles: 6
Achievyments: 
Thank You
-Given: 10
-Receive: 16
|
 |
« on: June 14, 2009, 05:00:01 PM » |
|
This will become a "proper" WIP soon, honest, but with no game design and no screen shots there's not a lot to say...The only thing that won't change is the 4 letter acronym since I used it for my code namespace. Oh and the stuff below is real. It is a blog of my current work. Diary of Confessions of Wannabe Hacker OO Programmer - Age 38 27/73Day 717 years since I finished something and that was because I was getting paid. Time to squeeze one out before the end of the decade. Simple plan. Hack, hack, hack. Get it done quick. So what went wrong? How did I end up with ModelStores, WorldItems and ChipmunkFactories? Has 15 years in a corporate cube taken the bedroom programmer out of me? When float model[][3] becomes World::init(const CFG::Info& config) { pLevel->load(m_pFactory, config); pFactory->getRecords(m_levelItems); for_each(m_levelItems.begin(), m_levelItems.end(), addToWorld(this)); I think even my cat knows the answer. "Know thyself" says the cat. With renewed vigor from those sage words I sit down and start a template'd GenericHandler to use for an EventProcessor class... Day 10The Chipmunks were giving me trouble, but once I separated them from the PolyModels and wrapped in a ChipmunkItem class they settled down. Day 12You know, sitting here surrounded by PhysicalItemFactory's, ModelInfo's and LevelFile's it's easy to think I've lost the plot. But this is how I work, just keep creating stuff...I have an abstract RNG interface with SIX implementations ffs...never with any plan of a game. Why? Well ideas for a game are easy. Too easy. By the second day I can have a huge epic with the flood of stuff that comes. But 2 hours a day to code means stick to the small stuff that needs done. Forget about the game. So I just hack one class at a time with no thought of a bigger picture. Which means of course the bigger picture is a tangled web woven by one of those spiders on LSD. Should still catch flies though. Course, even a trippin' spider knows it's building a web, so I've got my design plan to remind me in case I get lost down some inheritance tree. Who knows, may have a screen shot next week!
|
|
|
|
|
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
|
|
|
RobF
Admin-o-tron
   
Huggles: 29
Achievyments: 
Thank You
-Given: 43
-Receive: 34
|
 |
« Reply #1 on: June 14, 2009, 05:03:25 PM » |
|
Buses. Definitely.
|
|
|
|
|
Logged
|
|
|
|
dano
Wonderful Person
Huggles: 2
Thank You
-Given: 3
-Receive: 3
|
 |
« Reply #2 on: June 14, 2009, 05:15:47 PM » |
|
Personally I'd add hedgehogs to the list. Just to keep the chipmunks company.
|
|
|
|
|
Logged
|
|
|
|
Maupin
Wonderful Person
Huggles: 3
Thank You
-Given: 0
-Receive: 1
|
 |
« Reply #3 on: June 14, 2009, 05:19:39 PM » |
|
That's the way kids do it these days. You can't actually see what you got until all the little pieces are ready. Like how you can make a bridge of three knives resting on three upside down cups, just by cleverly using one knife to support one of the other knives while it's in turn supported by the other. Until you get three knives it won't work, so the challenge is in the preparation and all the while you're gathering knives you have no idea if it will work or not. Here in the U.S. we can't take knives on buses because of fear of terrorists. And personally I refuse to fly ever again because if I wanted to listen to red-faced goons shout at little old foreign ladies I'd just imagine it.
|
|
|
|
|
Logged
|
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
   
Huggles: 6
Achievyments: 
Thank You
-Given: 10
-Receive: 16
|
 |
« Reply #4 on: June 20, 2009, 07:10:08 PM » |
|
Day 14Supplies running low. Still no sight of land. Day 17No chipmunks left....My god! What have I done? Day 18...well more sort of "faller".
|
|
|
|
|
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
|
 |
« Reply #5 on: June 20, 2009, 07:31:27 PM » |
|
I think that is my new favourite youtube video. 
|
|
|
|
|
Logged
|
|
|
|
RobF
Admin-o-tron
   
Huggles: 29
Achievyments: 
Thank You
-Given: 43
-Receive: 34
|
 |
« Reply #6 on: June 20, 2009, 07:34:29 PM » |
|
SUPERB!
|
|
|
|
|
Logged
|
|
|
|
Sokurah
Wonderful Person
Huggles: 16
Achievyments: 
Thank You
-Given: 4
-Receive: 13
|
 |
« Reply #7 on: June 20, 2009, 07:37:00 PM » |
|
Beautiful bus. I can see you programmed a real authentic driver for it... ...it drives just like the they do in real life. 
|
|
|
|
|
Logged
|
Tardis Remakes => Sir Lancelot, Omega Race, Spiky Harold, Jack'o'Roid, A.S.S. (Orion), Rip Off, Project Future, Zektor, Space Fury, Dingo, Omega Race 2009, X-Quest 2 (in progress), Psycho Pigs UXB (in progress). " Little piggy goes BOOOM!!!..."
|
|
|
Maupin
Wonderful Person
Huggles: 3
Thank You
-Given: 0
-Receive: 1
|
 |
« Reply #8 on: June 20, 2009, 10:09:25 PM » |
|
Looks great so far. Fill that pit with struggling chipmunks, put a score readout in the corner, and you've got a game! Maybe spin a gimongous wheel with all the chipmunks' names on it before each level starts to randomly choose one chipmunk as bus driver.
(Also, I thought these buses were open on the 2nd deck, with a few tourists. Might want to double-check with your artist.)
|
|
|
|
|
Logged
|
|
|
|
Lobo
Wonderful Person
Huggles: 9
Achievyments: 
Thank You
-Given: 0
-Receive: 4
|
 |
« Reply #9 on: June 20, 2009, 11:31:39 PM » |
|
Excellent, no need for game anymore~everything is right there in the video!
|
|
|
|
|
Logged
|
|
|
|
RobF
Admin-o-tron
   
Huggles: 29
Achievyments: 
Thank You
-Given: 43
-Receive: 34
|
 |
« Reply #10 on: June 21, 2009, 12:07:06 AM » |
|
Yeah, I'd perhaps add in keyboard controls to rotate the bus but other than that, it's perfect.
|
|
|
|
|
Logged
|
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
   
Huggles: 6
Achievyments: 
Thank You
-Given: 10
-Receive: 16
|
 |
« Reply #11 on: June 21, 2009, 07:01:53 PM » |
|
Day 19Wish I hadn't eaten all the chipmunks. They were weighing the bus down.
|
|
|
|
|
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
|
 |
« Reply #12 on: June 21, 2009, 09:31:06 PM » |
|
I don't think I can stand much more awesomeness than that! 
|
|
|
|
|
Logged
|
|
|
|
|
Ian
|
 |
« Reply #13 on: June 22, 2009, 01:11:22 AM » |
|
Nothing fills a hole like a Double Decker  Someone did this for real -
|
|
|
|
|
Logged
|
I came, I saw, I played.
|
|
|
Minion
Wip Master general
Admin-o-tron
   
Huggles: 4
Thank You
-Given: 7
-Receive: 19
|
 |
« Reply #14 on: June 22, 2009, 06:23:47 AM » |
|
Games like this arnt as much fun completing thepuzzles as seeing what stupid things you can do with them (like that last vid) ... we need more stupid-do-games .... like how we play L4D
|
|
|
|
|
Logged
|
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
   
Huggles: 6
Achievyments: 
Thank You
-Given: 10
-Receive: 16
|
 |
« 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
   
Huggles: 6
Achievyments: 
Thank You
-Given: 10
-Receive: 16
|
 |
« 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
   
Huggles: 6
Achievyments: 
Thank You
-Given: 10
-Receive: 16
|
 |
« 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
   
Huggles: 6
Achievyments: 
Thank You
-Given: 10
-Receive: 16
|
 |
« 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
Thank You
-Given: 0
-Receive: 0
|
 |
« 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
   
Huggles: 29
Achievyments: 
Thank You
-Given: 43
-Receive: 34
|
 |
« Reply #20 on: July 28, 2009, 05:58:26 AM » |
|
|
|
|
|
|
Logged
|
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
   
Huggles: 6
Achievyments: 
Thank You
-Given: 10
-Receive: 16
|
 |
« 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
|
 |
« 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
Thank You
-Given: 2
-Receive: 4
|
 |
« 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
|
"Lean,mean,sand in the Vaseline!"
|
|
|
Tam Toucan
Psychedelic Coder Chef
Monitor
   
Huggles: 6
Achievyments: 
Thank You
-Given: 10
-Receive: 16
|
 |
« 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
|
|
|
|