SEGA Mega Drive Assembly Programming Workshop at GameCity Festival

I’ll be running a workshop teaching the basics of 68000 assembly language and the SEGA Mega Drive at this year’s GameCity festival! It’s on Thursday 27th October, 11am – 2pm, at the National Videogame Arcade, Nottingham, and will last for around 3 hours.

Who is the workshop for?

  • Those who have never written a line of assembly before
  • Those with little or no understanding of how a CPU works
  • Some higher level programming experience is required – functions, variables, logic and flow, signed and unsigned numbers
  • Some higher level debugging experience is required – breakpoints, stepping, watch windows, swearing
  • A basic understanding of binary and hexadecimal numbering is recommended (I’ll provide a quick refresher, though)

What will be covered?

  • The basics of the 68000 CPU
  • The basics of 68000 assembly language
  • Writing your first line of assembly
  • Building your first ROM
  • Debugging assembly
  • Basic arithmetic, branching, looping, and logic
  • Initialising the SEGA Mega Drive
  • The Mega Drive Video Display Processor
  • Programming the VDP
  • Palettes, tiles, maps and sprites
  • Turning the screen pink!
  • Creating a font
  • Displaying “Hello, World!”
  • Porting Crysis 3

What will you need?

Tanglewood Tech Demo 0.0.11

I’m pleased to announce the very first tech demo release of Tanglewood!

The demo represents the first milestone in Tanglwood’s development. It is a proof of the engine, editor, toolchain and content pipeline, the basic mechanics of the game, controls and platforming behaviour, the art and animation styles, and some early puzzles.

These two levels have been a sandbox for mechanics and puzzle testing since development of the game began, and with a little work they’ve been turned into functional showcases for Tanglewood’s early progress.

tech_demo_titles

tech_demo_screen1

This is a prototype of a game in its very early stages of development. Some assets are placeholder, and all tech is a work in progress. The look, feel, quality and feature set may not be representative of the final product.

The tech demo contains tests of the following features:

– Nymn: basic movement and platforming, sleep/wake up behaviour, running, walking, jumping, pushing (animation missing), rolling, gliding, death
– Fuzzls: all alert states, physics, and rolling behaviour
– Djakk monsters: initial encounter logic, A.I. behaviour tree, tracking, attacking, search patterns
– Colour abilities: yellow (glide) and green (time slow/cloak)
– Flues: varying output velocities and hold durations, multiple occupants, linked flues
– Boulders: physics, rolling behaviour, cracking and respawning
– Director Cam cutscenes
– Time of day system
– Static blockades

tech_demo_screen2

tech_demo_screen3

It’s an early tech demo/prototype, so expect to see these problems and more:

– Missing fall animation
– Missing push animation
– Framerate drop during Djakk monster encounter in Level 1
– It’s possible to get Fuzzls stuck against walls if they’re rolling fast enough to jump over flues
– It’s possible to get the Fuzzls in Level 2 stuck by rolling them back to the flue at the start
– The Djakk in Level 2 can reach the flue on the right-hand side if left alone in search state for a long time
– It’s possible to get Nymn to sleep in mid-air by jumping at the end of a level
– It’s possible to push the boulder in Level 2 whilst using time-slow ability (boulder won’t animate)
– Footstep sound effects take priority over others, which may result in some SFX cutting out whilst running (ambience, Fuzzl SFX)
– Many known sprite/background draw priority glitches, and tile flipping errors
– Dead Djakks use the older placeholder palette (yellow feet/teeth)
– Occasionally the wrong instruments are chosen for an SFX (emulator only)
– Double-tapping C with the cloak ability will choose the wrong palette

tech_demo_screen4

tech_demo_screen5

Download link over at the Tanglewood forum

Tanglewood: Introducing Djakk Monsters

Introducing Djakk Monsters

There’s a reason our friend Nymn is so keen to get back home before dark. That reason is a huge, snarling, fearsome beast that emerges from its cave at night, with the blood of its last victim still dripping from its teeth, and an insatiable appetite for Nymn’s face.

djakk_0Djakk monsters have been a threat to Tanglewood for as long as its inhabitants can remember. The lore speaks of an ancient tribe of hunters who saddled them up and rode them right to the edge of the forest, hunting the Djunn kind for as far as they could smell. Long gone are the bad rulers of the lands, but their big ugly pets remained.

A Djakk fight is a long and drawn out challenge, they are expert trackers and will chase Nymn to the ends of the Earth for a taste of his innards. As the player you must be quick, be forever wary of the Djakk’s presence (however much you think you’ve lost it underneath you), and never underestimate their ability to break through obstacles or foil your traps. They’ve seen it all before.

Getting rid of a Djakk will need to be done in different ways for each encounter. In the demo I’ve been working on, a precariously placed boulder is primed ready to drop on the unsuspecting beast’s head, but that’s just a set-up scenario to show off the mechanics quickly. The monster will roar on sight, then immediately give chase, but if he loses you he will wander over to the last place Nymn was spotted to sniff out your tracks. This can be used very much to your advantage, as a way to coax a Djakk into standing on a particular spot – as long as you’re cunning in your escape.

djakk_3

I have plans for some of the Djakk encounters to last entire levels, and maybe more. They provide an interesting narrative reason for keeping the forest floor out of bounds until the creature has been defeated. Flues, Fuzzls, and all other tricks and traps inhabiting the surface would be unusable, making whole sections of the game, pickups and secrets inaccessible unless Nymn figures out a way to dispose of his unwelcome companion. More importantly, Nymn is looking for somewhere to sleep to wait out the rest of the night terrors, and with this thing around it’s unlikely there will be anywhere safe to rest.

djakk_4

The Djakk posed quite an early technical challenge for the game engine; it’s the largest sprite sheet in the game so far, which is costly both in subsprite count and bandwidth to transfer animation frames. Many of the routines featured in my Mega Drive coding tutorials for sprite management were too slow and naïve in implementation, and it’s taken me quite a while to rewrite them to cope with these huge creatures. The work has certainly paid off, I’m quite proud of our Djakk so far.

Future plans for the Djakk include the ability to traverse the terrain, perhaps being able to leap across a crevasse or run up a ramp to reach higher. There’s also the possibility of weak tree branches, both as an added threat to Nynm and an advantageous point to coax a Djakk onto, to see it fall to its death. For the moment we’ll be keeping it simple, this huge sprite sheet is tricky for our artist to maintain, so we’ll squeeze what we can out of the animations available first.

See the ugly fellow in action in this short demo video:

Matt

Tanglewood: Colour Switching

Colour is everything in Tanglewood. It is a life force that can be given, shared, stolen, or used as currency.

Every animal and plant in Tanglewood has a distinct colour, and that colour may play an advantage or disadvantage to the player. The organic world may respond in a positive manner if Nymn is a matching colour. For example, a length of twisted vines blocking your way may open up for Nymn if you find a way to switch to the same colour, or even move or entice a matching coloured creature to sit next to it.

Monsters may behave differently depending if you are a matching or opposing colour, and will either give chase or hang back on the assumption that you are a member of their pack.

In Nymn’s case, his colour is his power. Born a red fellow, he can’t do many things by default, but when transformed into a blue, green or yellow creature his world is opened up to bigger and better possibilities.

In the previous article I mentioned that the humble little Fuzzls will reward Nymn for helping them back to their nests. A Fuzzl will allow Nymn to take its colour for himself, transforming Nymn to match, and allowing him to use the special ability provided by that colour.

colour_switch

This week we’ve been implementing Nymn’s first power colour – yellow. This particular colour gives Nymn the ability to glide over long distances to previously unreachable areas.

Here’s a clip:

Matt

Tanglewood: Introducing Fuzzls

Introducing Fuzzls

Tanglewood’s world is alive with the strangest of creatures, from little to large, good to evil. The Fuzzl is a neutral, furry, confused, and easily startled member of the club.

fuzzl_64_blueFuzzls began life in a tech demo for a physics game written back in my University days, and since then they’ve been crammed into almost every game design I’ve been a part of, but until now have never made it past the concept stage and to fruition. They’ve finally found their permanent home in Tanglewood, or not, seeing as they too are lost from home, and need Nymn’s help to get back to their nests.

Fuzzls sleep at night, come back during the day!

Fuzzls sleep at night, come back during the day!

Nymn can roll these little ones (if they’re awake…) back to their nests. The Fuzzls dish out handsome rewards for your efforts, but those details will come in a later post. They can also use Flues; if you drop a terrified and unsuspecting Fuzzl into one, they’ll fling sky high up into a tree branch!

Fuzzls aren’t the smartest of creatures, but they play a large role in Tanglewood, and have quite a history. They were once domestic pets of various races, including the Djun. Some of the more advanced – but now extinct – species used Fuzzls to power contraptions, as counterweights for lifts and hoists, and even to hug for stress relief, but now they’re left alone to live out their lives sleeping, or getting startled by their own shadows.

Nobody knows what they do, what they eat, how they mate, what goes on in their little minds, if they can communicate, or how they still exist as a species without being able to perform basic functions of their own. They just… are.

I’ve captured a short video showing a Fuzzl’s basic behaviour. It’s in its early prototype stages so there are a few quirks to sort out, but the basics are all working. Enjoy!

Matt

Tanglewood: Introducing Nymn

Introducing Nymn

Nymn is Tanglewood’s protagonist, a shy creature from a family-oriented species called the Djun race, who survive in packs, live underground, and only emerge during daylight. Night time is dangerous for Nymn and his fellow Djun, since many of Tanglewood’s less desirable characters emerge after dark to chase, intimidate, hunt and eat any strays who should have retreated underground.

Unfortunately, this is exactly the situation Nymn has found himself in. Lost, alone and missing his family, Nymn is desperate to find a way to get back to his underground pack before nightfall sets in and he becomes the victim of a sadistic hunting game, which will almost certainly end in his demise.

Controlling Nymn

NymnThe small teaser video from last week showed Nymn walking through the world for a small glimpse of the environment, but the gameplay itself will be faster paced; Nymn is a quick and nimble creature who can walk on two legs, and scurry along quickly on all four. The platforming experience of Tanglewood is one that I’ve spent a lot of time perfecting – it’s important to me that Nymn’s controls and physical behaviours are accessible and familiar to fans of both legacy Mega Drive titles and the modern platforming games by which Tanglewood was inspired. Since my initial platform code demos in January I’ve added a whole suite of movement features, and spent many hours tweaking and perfecting movement behaviour and response.

There are a lot of variables at play here – walk acceleration, run acceleration, max walk velocity, max run velocity, floor drag, in-air drag, gravity, critical mass, walk-to-run transition speed, forced deceleration, jump impulse, step heights, multiple jump ground heights… you get the idea. There’s a few bits left to do, too, such as a separate acceleration value for controlling Nymn’s left/right movement whilst in air; a practice that has dwindled in favour of physical realism, but was synonymous with platforming games at the time and would be sorely missed.

nym_run

Nymn’s animations are something that we are very proud of. The character design has been through several iterations, and endured many tiny tweaks in order for it to appear as smooth as the hardware allows, and we hope it shows. There’s still a lot of work left to do to iron out some of the creases, but we’re getting there.

I’ll leave you with a small sample of Nymn’s basic movements:

Matt

 

Follow Tanglewood on Twitter: @tanglewoodgame