Music 31st August 2012
Since getting sound effects working my immediate thoughts turned to getting music into the game, which was a problem because I haven't written any music since Pro Tracker on the Commodore Amiga in the 1990s. Seemed like a good time then to update my music making skills and learn how to make music on the PC. I did look into the PC tracking scene but was unimpressed with the programs I found, mostly due to inconsistent or obtuse user interfaces, and the steep learning curves that would cause, so I decided to bite the bullet and look into Digital Audio Workstations instead.
DAWs are basically the software used to make music in studios, except now you can get them for your home PC. I tried a few different packages but the one that stood out as having the best UI, workflow and downright funkiness was Ableton Live 8 (aka Live). So I've spent the last few months learning to use it, with the help of Sonic Academy's video tutorials, which I would highly recommend. I could only afford the limited Intro version of Live but it's still well up to making some game music. I've also purchased the Korg Legacy Collection and the Sonic Academy ANA synth, which are basically software plug-in instruments to use in your DAW of choice (technically they're called VST plugins).
Below is a video of one of the first pieces of music I've produced using Live 8 Intro and those VSTs, along with Lives built-in instruments. There's also a bit of real guitar in there I recorded with the Novation Nio 2/4 USB audio interface I purchased. The track isn't actually intended for the game, it's just a piece of 90s style dance music. I'm not really into dance music so I couldn't tell you the exact genre, but it's better than the stuff I used to make on the Amiga. I much prefer the experience of making music with a DAW versus a tracker, more visual, more consistent, quicker, and less idiosyncratic.
The track starts 1 min 20 seconds into the video, I'm just showing the clips/instruments at the beginning.
Options Menu and Sound Effects 26th May 2012
to make steady progress implementing the basic functionality my game
needs. The first thing I've done is add sound effects via the
FMOD library, which was quick and easy to get working. The actual
sound effects themselves are just placeholders made in a short period
with a software synth, so they sound pretty bad at the moment (although
I have improved them since I recorded the video below).
I've made is to remove one ammo type, since it was confusing having
ammo and enemy bullets the same colour. There's a lot of stuff
flying about on the screen and a lot of stuff to collect too, so having
enemy bullets a separate colour from any of the pickups makes the players
job a little easier.
I'm tempted to turn the game into a twin-stick shooter (move on the keys, aim with the mouse, for players without a gamepad) instead since they seem to be more popular these days, and straight-up shooters don't play so great on just the keys. Meanwhile the next thing I'm planning to implement is some larger enemies and bosses.
Level transitions, shop and font class 29th April 2012
Below is a video of the latest updates to my scrolling shootem up game I'm writing. The game now supports multiple levels, so when the end of the enemy spawn list is reached and the last enemies have either died or left the screen, the game will transition to the shop screen, where credits can be spent on a few basic items, like lives, smart bombs and ammo, before the next level is launched. The other thing I've added is a font class, which lets me display text, which was necessary for the shop and will be needed for the options menu. It's quite a flexible system supporting multiple fonts, varying text size and centered or left aligned text. I've replaced all the art based text in the game like the main menu and paused menu with the new font text.
Obviously I've shortened the levels so I could show the shop in the video.
Lots still to do, like shadows (which requires vertex/pixel shaders), and sound (which will require sound effects and music), and of course all the assets here (meshes and textures) are still placeholders.
Quick progress update 18th April 2012
quick update on the new stuff I've added to my game. I've improved
the main menu, added a pause menu, a loading screen (which awaits user
input before starting the game), a 'Level One' and 'Game Over' on-screen
message, and I've shrunk the interface icons so they look nicer. I've
also added ammo bars which are filled by gathering the 4 coloured ammo
pickups, and the correct ammo is needed to fire 2 of the 3 weapons now
(one of which is a new beam laser). Animated explosions are now
implemented so enemy deaths look more interesting now, and I've fixed
quite a lot of bugs and control issues. Last thing I added would
be a 2nd type of smaller gray asteroid.
Development Update #2 29th March 2012
Another look at how my game is progressing. There's now a basic menu in place and an in-game interface, showing score, credits, lives and smart bombs. I've also implemented a particle system and xbox360 controller support. The next major job is sound, for which I'm probably going to use FMOD, but there's a lot of little jobs to take care of before that.
I'm happy with how the game performs though. Despite no real effort at optimization yet, it runs at over 1,900 FPS on my desktop system (I5-760, GTX560 TI) and over 600 FPS on my laptop (T8300, 8600 GT). I've also switched to Visual C++ 2010 Express which is a much better compiler than the old Visual C++ 6 Pro I was using before.
Hopefully in a month or so the game will have progressed to the point where I can upload a demo here.
Developement Update 19th March 2012
No updates here in a long time but I'm getting back into some Direct 3D programming at last. Instead of making demos I want to make a complete playable game. The indie scene on PC has really grown in the last 5 years and there's a lot more opportunities these days to get a project published. Anyway I decided to make some sort of scrolling shootem-up since it's fairly straight forward from a programming point of view and doesn't need too much in the way of animation. Below is a little look at how it's coming so far. Everything you can see here in tems of assets are placeholders, I'm working purely on functionality at the moment. When that's done I'll pick a theme and start making models and textures.
Obviously it's early days and there's still a lot of stuff to figure out, like shadows, a particle system, sound etc.
3D Modelling 19th March 2012
Just a quick look at some projects I did in 3dsmax last year. I've been trying to improve my 3D modelling skills by going through the 3D Buzz 3dsmax Fundamentals course, which I would highly reccommend to anyone wanting to learn 3dsmax. First up is a reactor animation, reactor being the in-built physics system in 3dsmax.
And the 2nd is a Buggy model I made. I used a variety of different source images of 4x4 vehicles, which is why it looks roughly like a Jeep but not a particular model. It took around a month to make this model and it has 133K polys. The point of making this was just to get better at modelling and I'm satisfied with how it turned out.
And here is a couple of Light Tracer renders of the same model. Click the pics to see the 1280*720 renders.
Bug Fixes 22nd April 2008
Just a quick update to say I've fixed bugs in Aqua Breakout, 3D Breakout, Direct3D Terrain 0, Direct3D Terrain 1 and Terrain 3 which prevented users from exiting the programs via the Escape key. No idea where the issues arose from since the programs always used to work fine and suddenly stopped without me even changing a line of code - maybe something Microsoft did in a windows update or DirectX update. There is still a problem with the shutdown code in Aqua Breakout making it hang on exit which I will sort out soon, but the program does at least exit now.
Geo-MipMapping 14th October 2006
I've recently been continuing my exploration into the world of terrain programming, and in particular William H. de Boer's Geometrical MipMapping concept. I've written my own interpretation of his ideas, generating my terrain per frame rather than generating and storing the terrain in memory at runtime, which means the memory footprint of my program is small and the terrain can be altered in realtime, but it also offers good performance, rendering a patch of terrain from a 1025*1025 height map at around 350-500 frames per second on my system.
I'm also using triangle strips stitched together with indices rather than triangle fans, and I've come up with a new terrain shadowing technique which while inflexible, at least doesn't slow rendering down at all. The program also includes slope lighting and procedural texturing.
I will be uploading a demo when it's been optimized and polished a little more but in the meanwhile heres a screenshot.
New Terrain Demos 20th April 2004
I've added two new programs - D3D Terrain 0 and D3D Terrain 1.
D3D Terrain 0 shows a full detail section of terrain generated from a 512*512 height map at run-time. Although it's a very nice looking program in it's own right it was done mainly to show the problems with terrain rendering in full detail. Even with a modest 512*512 grid, the program is rendering up to 524,000 triangles per frame and the vertices alone use 16 Mb of video memory. A 1024*1024 height grid would use 64 Mb of video memory. Hence anything bigger is not feasible with this rendering method, hence the need for LOD algorithms.
D3D Terrain 1 shows a couple of interesting terrain lighting / texturing techniques, Slope Lighting (which D3D Terrain 0 also uses) and Procedural Texture Mapping. Slope Lighting shades the terrain so sections facing away from the sun will appear in shadow. The technique has no impact on frame rate though. Procedural Texture Mapping makes the terrain colour depend on it's height, so higher sections appear white as if covered by snow, whereas middle sections are green and the lowest section are sandy coloured. The procedural texture map is generated at run-time from the height map. The program also uses a detail map and multi-texturing.
Download them from the demos page.
Music Update 8th June 2003
Thanks to a fantastic little program called Disk2FDI written by Vincent Joguin, which can read Amiga discs onto the PC, without the need for an Amiga, I've been able to recover all my old music mods from when I used to write and sequence music on the Commodore Amiga. Hence I've been able to record all the music that was on the music page again in perfect quality using the Amiga emulator WinUAE.
Details on the music page.
Breakout Games Update 25th November 2002
I've changed the controls for both Aqua Breakout and D3D Breakout. They are both now played on the mouse which I think is a big improvement. Check out the demos page for the new versions.
Windows XP support 20th November 2002
After fixing some small problems with Aqua Breakout, D3D Breakout, D3D Maze and D3D Grass I can now confirm that all the programs should now work under Windows XP.
Slow Progress 16th September 2002
Things have been going slow round here, mainly thanks to driving lessons and my driving theory test, which I've now passed. With that out of the way I'm now learning proper collision detection and working on a demo that will show it in action. The ability to detect collisions between bounding boxes, spheres, elipsoids, and any scene geometry should greatly enhance the range of programs I'm able to create, and the content of those programs.
Demos Update 23rd May 2002
I've uploaded the new version of Aqua Breakout with the realistically animated water. As always, you can get it from the demos page.
Aqua Breakout Improvements 19th May 2002
Despite saying that Aqua Breakout was finished, I've been busy making some big improvements to the water. Instead of being programmed by a simple sine wave, the water now reacts to the movements of the game objects (barrels, bat and ball) in a realistic and convincing way.
Software Rendering Demo 12th May 2002
I've added a simple software rendering demo, including source code, which you can find on the introduction page for the tutorials. The demo and code may prove useful for anyone trying to learn the techniques described in the tutorials. The code shows a simple DirectDraw / DirectInput / Win32 initialization, and then shows the 3D pipeline, matrices, 3D transformations, back-face culling and triangle filling in action.
Aqua Breakout Finished 11th May 2002
The final version of Aqua Breakout is now available on the demos page. The last things I added were a few bits and pieces to make the garden look more interesting - a swing, some patio furniture, a dirt border and a garden rake, and I also made a new pillar for under the game arena. In the future I will probably add sound-effects, power-ups and multiple levels to turn it from a 3D demo into a game with more substance, but that will have to wait while I work on other projects. As the program stand though, it's certainly a lot more attractive than it was a few weeks ago, and I'm pretty pleased with how it's turned out.
Demos Update 10th May 2002
Another new version of Aqua Breakout has been uploaded with some added details behind the fences - a shed, some hedges and a nice backdrop. I've also improved a few areas in the garden, fixed a couple of bugs and improved in-game framerates.
Demos Update 9th May 2002
Although it still needs some final tweaking and some areas still need a little work, I've uploaded the new version of Aqua Breakout. Same program fundamentally, but visually much improved. You can download the new version on the demos page.
Also a reminder that the demos are intended for Win98 and WinME and haven't been tested on Win2K or WinXP. Also they all need DirectX 8.1 to run, and the D3D programs need a decent 3D card.
Aqua Breakout Update 7th May 2002
Work continues on Aqua Breakout. I've added a house with door and windows, a patio with wooden decking, and a stone wall. I've also found a much better sky texture and added environment mapping (where supported) on the water and window glass which gives it a nice shimmer. The new version should be available in the next week or so.
Demos Update 29th April 2002
I've updated the D3D Maze program. The program can now cope with task switching and you don't have to choose your settings every time you run it. I've also reworked the controls, adding mouse support and changing the keys to traditional FPS keys. Check it out on the demos page.
I've also been working on Aqua Breakout, although I haven't uploaded the new version yet. I've added surrounds to the play arena: a garden with grass, path and fence and also some sky.
New Features Added 29th April 2002
Welcome to the news page on sbdev. In the future you'll be able to see when I've updated the site just by checking this page. The other changes I've made are to move the demos to their own page, plus there's a new guestbook.
I would also like to thank everyone who has contacted me about either the site, the demos or the tutorials in the past. It's been fascinating to hear what everyone thought of the demos. In particular I've enjoyed hearing from other programmers who are learning the same things as me. It's been a pleasure to read and reply to all the e-mail's.
Enjoy your visit.
All content copyright © Simon Brown 1999-2008.