Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Sunday, January 3, 2021

Alex Duran: Object Systems: Features, Trade Offs & Pitfalls

In 2016, I posted up some slides from a Doug Church talk about Object Systems (with examples from Thief) from around 2003 or so.

I've now found another great talk called "Building Object Systems: Features, Trade Offs & Pitfalls" by Alex Duran from GDC 2003.  Alex worked at Looking Glass on Thief 2, and later at Ion Storm on Thief 3 and Deus Ex 2.

The talk focuses on his experience writing the Object System for Thief 3 and Deus Ex 2, which is largely based on the earlier Thief Object System, work done by Marc LeBlanc and Doug Church, etc.

For the ease of following and understanding this talk, I have assembled a video that combines the audio and the slides together in one place.  Enjoy!



Notes:

The original AUDIO can be found here on the GDC Vault.

The SLIDES that accompany the talk can be found here.

It was hard to find the slides, so I've presented them together here in a cleaned up format, for people to enjoy!


Friday, December 13, 2019

World Generation Project: Exploring generated islands on foot

Continuing work on a World Generation Project in Unity!


I've got it to the point now where I'm fairly happy with the basis of my world generation.

It's generating X number of islands on startup, grabbing from a randomised selection of Biome profiles I've made, so some might be Jungles, others full of Medieval Buildings, some with Cottages, another with Autumn Trees.

I've also got some basic wildlife happening, although they don't have much in the way of AI currently.

World Generation - Exploring a variety of generated islands on foot!



Saturday, September 16, 2017

Ecology - Dev Video #2

Ecology - Dev Video #2

Here I've added a basic day-night cycle, and some more different types of animals.

Monday, January 9, 2017

ROMACK: Dev Log 003 - Ragdolls, Doors, NavMesh Obstacles

I had fun this past weekend adding some new features to my Thiefy / Quakey prototype.



I added doors which open away from you (depending which way you approach them from).

The doors are also Navmesh Obstacles, which carve into the Navmesh when closed, thus blocking the AIs from going through.

Ultimately, I plan to make it so the AIs can open and close the doors where logical.

I'm thinking of swapping out the Quakey stuff and focussing on Thiefy stuff as I keep going on the AI.  I might use the Thief guard voices as my placeholder sounds, so I can check off the AI states as I get them into my implementation...  things like...

  • "Dum da dum..." -> Idle / Patrol between patrol points.
  • "Hey, did I see something?" -> Suspicion.
  • "You there!  You're dead meat!" -> Chase and attack.
  • "Hey, where did they go?" -> Lost sight of you.
  • "I'll find you!" -> Suspicious, searching for you (cooling down).
  • "Hmmm, gone now, I guess..." -> Given up, lost track of you.



Monday, November 21, 2016

Werewolf in the Wild: Birds, Humans & Mood

I enjoyed doing another weekend's work on "Werewolf in the Wild", adding better Bird AI, and modeling, animating and bringing to life a simple human.  These humans scour the terrain with crossbows.

You can download the latest build here (version 2016-11-20th-2200 as of this post)!
https://muzboz.itch.io/werewolfwild

Here's a video of the Birds coming to life...

 


Currently, there's still no interactions between the elements, I'm still working on mood and basic navigational AI.  Because I'm generating the terrains and level objects randomly each time, I can't use NavMesh, so I'm using a roll-your-own approach with Raycasts to avoid obstacles, and Sin waves to have the players move more organically and scan their environment more like real creatures.

Here's a video of the Humans coming to life...

 


I'm enjoying learning more C#, it's making me feel like I'm really starting to grasp the underlying language of games.  :)

It also features more ambient sounds, especially around the towers.  I'm very interested in exploring ways of imbuing the world with narrative, without it actually being specifically scripted.

And here's a video of the overall mood of the world, shot from the perspective of the creatures themselves, at the end of the 2nd weekend working on it.  :D



More updates to come!  

I'd love to hear your feedback and thoughts, so drop a comment below for me.  :D


Saturday, October 8, 2016

Doug Church: Object Systems, Immersive Sims

Here's a presentation by Doug Church (Looking Glass, Valve) from about 2003, about designing Object Systems for games.  

I've reformatted it a bit to make it easier to read, and included it here because I love the Thief games, and thought others might be interested in it too.

It is written (I assume) with an eye towards immersive sims, and other games where you want rich interactions and emergent gameplay possibilities.

Here's the Google Slides, and here's a PDF.

I wish I had an audio recording of the presentation, but I don't think any such thing exists.

Enjoy!


PS: Here's a little preview of a few of the slides from the presentation...

















Saturday, October 1, 2016

Adventures in GW Basic: The Podigan

When I was a kid, our family got an IBM Compatible PC.  

We got it in about 1983, I think, and man-oh-man it changed my life!

It introduced me to Digger, Alley Cat and King's Quest...  
...but importantly, we also got GW Basic!

The video below shows my GW Basic exploits, including a bit of graphics drawing, a maths program, and the biggest thing I ever wrote...  PODIGAN!

Podigan was an infamously unfinished sci-fi space-fantasy text adventure, inspired by the likes of Space Quest, King's Quest and Transylvania...

Check it out in this video!




Here's a screenshot of PODIGAN in action!






I think I was about 11 or 12 years old when I wrote it.  
It was about 1990.  

I remember sitting up in our old pine walled computer room, on the PC.




The whole thing was just made up of a few simple variables and tons of GOTO commands. ie:
10 IF input "Get dagger", GOTO 1050

I craved to be able to do more advanced programming, to make games like the ones I was playing...  King's Quest and Digger.  

I had no proper idea of what GW Basic was fully capable of, or how to do anything with functions or classes, or anything that might have the appearance of object oriented programming!

I knew I really needed to write SYSTEMS that could repeat themselves, and iterate over data.  But all I could figure out was to write IF THIS, THEN GOTO sort of statements.  :)

I would have to say that writing this was a pretty clear sign that I really wanted to make computer games.  It was very time consuming, and required lots of testing and iterating. And I enjoyed those things!

I tried to imbue the story with humour, even in the way the silly PC Speaker soundtrack was composed.

The game was never finished (surprise!).  You can play through the first section of the game, and then it suddenly ends.  You know the deal.

You can download my GWBasic folio here.  The ZIP includes DosBox, GWBasic, and a handful of my GWBasic projects, including a Menu that lets you load up each one.  


But frankly, it's much easier to just watch the video above!  Enjoy.  



Wednesday, April 15, 2015

Arcad-o-moid (Breakout)

I'm learning to program with C# in Unity.  Here's a simple game I made from scratch, with no built-in physics.  It's a breakout game with over-the-top screenshake, so I called it Shakeout!  :)  Try to get the quickest time to clear all the blocks!