Amiga PD CharitywareAmiga PD is a charityware site - if you download any disk images you are encouraged to donate to our chosen charity - Mencap - at our justgiving page.
Suggested donations are £1 per disk image download as this was the cost of obtaining a disk back in the 1990s. Thank you. |
|
|
INTERVIEW WITH PONTUS LUNDWALLPontus Lundwall is the creative talent behind Brutal Homicide on the Amiga. AmigaPd would like to thank Pontus for agreeing to answer some questions about his programming on the Amiga.
A big thank you also to Lifeschool from the Lemon Amiga forum for carrying out some research for the interview and providing the majority of the questions. How did you get started in computing and programming?I was interested in electronics when I was very young, drawing up schematics I found in books on wooden boards, putting in nails and components and soldering it all together. I can't say I understood all of it, but it was great fun. I scavenged parts from old VCRs and other junk I found in dumpsters.
My programming career began when I was 12 years old - my summer of 1991 was all about hacking Basic on my grandfathers old IBM PC. I did a lot of small test programs and a few quite large and poorly spelled text games. A few years ago I managed to restore all old programs from the old 5.25" floppies, and there was much nostalgia! I got my first Commodore in '92 or so, it was an Amiga 500+. Once the initial hype of games and demos (Budbrain! Enigma!) settled, I wanted to get going with programming for it. I tried coding in AMOS as soon as I could get my hands on it. It was fine for simple games and examples, but as my projects became bigger and closer to actual games, everything always had turned slow and unusable. Somehow I figured out that I had to learn assembly language if I was ever to do anything similar to the games and demos I loved. Everybody that was somebody coded in assembler, not even C would cut close to it. My friend had a disk containing some mail course on Amiga assembly programming and hardware hacking, in Swedish. I printed it out on a crummy old dot matrix printer - on one looong track fed paper - and started reading it over and over, trying every example in there. Through long (and fun!) sessions of trial and error, I started to get the hang of it and could eventually produce my first intro together with two friends. I was 14 at the time I think. Of course it was horribly coded and I had stolen some plasma effect and the music replayer was not my work either, but we thought it looked cool and wrote lots of scroll text for it. Then we continued making a few small intros, but never created any demo scene history worth mentioning. Ever heard of a group called Mud or Cryozone? No? I read somewhere that the aim of Brutal Homicide 1 (BH1) was to "create a 1 or 2 player game in the style of Chaos Engine." - yet the game also seems to borrow heavily from the Alien Breed series of games. What were your intentions and inspirations with BH1? It may not have had much in common with the excellent Chaos Engine, no. The games responsible for inspiring Brutal Homicide the most were probably the public domain games Extreme Violence and Knights, along with Alien Breed as you've noted. I also accidentally came up with almost the same plot as the Schwarzenegger movie Running man, I realised many years later. I'm pretty sure I didn't watch that movie back then.
The '1 player' mode never made it to BH1 - how come??I didn't have any single player mode planned for BH1 as far as I can remember, but the half finished BH2 certainly had those plans. Creating single player content takes a lot of time and effort, regardless of the game. I had already run out of steam, unable to get even the two player mode out of beta, so it just got cancelled with the rest of the game. We planned it as a 1 or 2 player cooperative mode actually, but never got around creating the content to support it.
Do you have any funny stories from creating games on the Amiga?One time I remember using an old blurry black and white 10" camping TV as my monitor. You couldn't even see the edges of the screen, since the frame of the screen was almost elliptical. It was really bad, but I pressed on. I luckily scored a new 1084S the following Christmas.
Another very regrettable thing was that the menus of the shop in first Brutal Homicide were just a few images of text. This led to lots of annoyance every time a price was to be adjusted, since that had to be done in code as well as starting some painting program and copy the pixels of different digits to the correct place, making up the modified price.. Same problem when new items were added. Then finally the updated menu image had to be converted to easier-to-load format. It was just not very flexible! How long did it take you to complete BH1 - start to finish?That's a tough question, I don't really know! I think there were 5 releases of BH1, 1.1 1.95 1.96 1.97 1.971. The initial release was probably early in '95. But I would guess probably close to a year for that first version. Then 1.95 added lots of new content, but I can't remember when it was released. There also was 1.98, never released, which had null modem support. Could never get it working good enough and it was incredible annoying to debug.
BH1 gained a lot of fans were you surprised by the positive response in terms of cards and money?Yeah but it was awesome to come home from school and find post cards from New Zealand, Netherlands or Germany. People put surprisingly lot of effort in their letters too, telling me how they play the game and some even adding photos of their homes.
|
Brutal Homicide 1.97- Pontus LundwallScreenshot taken from Lemon Amiga website
Youtube video of Brutal Homicide 1.97 taken from Youtube - created by knurf79
Brutal Homicide 2 - The Future Forces- Pontus LundwallScreenshot taken from Lemon Amiga website
Latest Version of Project Brutal - Pontus LundwallEarlier version of Project Brutal - Pontus LundwallAbove Video of Brutal Project taken from Youtube - video made by knurf79 .
Brutal Homicide Game File DownloadBrutal Homicide can be download from Aminet.
Extra images provided by Pontus LundwallNew screenshots provided by Pontus Lundwall showing the unfinished cooperative mode of BH2, in daytime and night and the shareware message screen.
|
On reflection did you regret not making BH1 shareware or was financial gain not a motivation at the time?
But it was! 1.95 or 1.96 was a shareware version. It had a nag screen in the start and was limited to three winning rounds max. Think the price was at 50 SEK, 5 EUR or so. But the release didn't spread very well and, well lets just say you could easily count the number of purchases on one hand.. In retrospect, I should probably have given it some more time than a few months I waited before giving up and going free again.
BH2 Development started on the 17th February 1997 - two years after the hey-day of the Amiga. Why did you decide to make a sequel?
Just for the fun of it. There was a lot of things the old code couldn't do. It was poorly designed and very inflexible in may ways. But there was still a lot of things and ideas me and my friends wanted to build, and since no one could afford a PC, we just decided to take it to AGA and hope for the best.
How difficult was it to support yourself during this period, when many of your friends had already left the Amiga scene? You say you often felt the project was "a waste of time." How did you motivate yourself?
I just didn't want to abandon the game and all work that had gone into it, and I knew a few people still were following the project. Didn't have much else to do either, might as well keep going, since coding it was pretty fun in itself. But yeah, it was pretty boring to develop a two player game, seemingly on my own.
You say that during development BH2 became more and more like the old Brutal Homicide (a 2-player versus game). What issues where you facing at this time? Did you have to scrap a few plans?
It would have been easier to aim for a single player mode as I had a hard time getting enough real two player playing time to debug it properly. During BH1 everybody used Amiga around me and we could sit a couple of guys and test the latest build for an entire evening, just for fun. But towards the end of development of BH2, a lot of friends were playing Quake or something else on their PCs instead.
You once were quoted as saying "The Amiga hardware was full of quirks and limitations which halted development and limited the results." Can you give us an idea of how this hampered progress?
This was during the development of my own nostalgic virtual machine, a few years ago. Basically, what I meant was that stuff that isn't hard to do quickly today was complicated and slow on the Amiga. Stuff we take for granted now like floating point support, alpha blending, scaling and rotation was tricky to simulate fast enough. I wanted to have simple and fast access to these features in a Amigaish hardware setting. People would have killed to play with such powerful hardware back then, I thought it'd be cool to live that old dream, sort of.
After BH2 Beta release 5, it seemed your computer development stopped and BH2 was initially put on ice in 1999. A few years later you decided to revive the concept using C++/OpenGL (also with David Hagström) for the PC, but this also appeared to stop before completion in 2009. What were the reasons for these projects not progressing smoothly to completion?
I started working my first full time job in the summer of '99. It was a computer related job and I wasn't very keen on coding after work for a long time. A few years later, Dave and I started making the game we refer to as BH Reloaded, but the main problem was lack of time and motivation. I made poor progress on the game during my spare time. Working as a programmer by day left me pretty much satisfied with programming in the evening. An improved social life with a lovely girlfriend and later also a son didn't help!
You then had the idea to build a 'Super Amiga' Virtual Machine for the PC on which you could build and easily port your own titles. Tell us the story of how a simple 4k games competition got your programming juices flowing again...
My friend and old colleague Notch really enjoys taking part in different game development competitions, and it did look like a fun challenge to create a game in 4k of java code. Once I decided to give it a go, one of my first thoughts was to write the java byte code by hand to squeeze out as much game as possible. But java, as most virtual machines today, are stack based (dalvik for Android being a nice exception) which makes it tough for a human, or at least me, to keep track of the state while programming. At least it wouldn't be very fun. I thought back to my 68000 assembler days and realised I only really used a hand full of very simple instructions to get any job done back then.
Could a super small VM with a memory mapped display and a simple blitter be used to make a very small game? I boiled it down to a minimum instruction set for my CPU, whipped up an assembler that encoded the output in a compressed PNG image and made a small interpreting virtual machine, complete with required hardware in well under 400 lines of java code. The VM compiled and compressed to about 1900 bytes, leaving over 2k for my game code. And it was all just such great fun! I couldn't put the project down for a single moment. Then I started writing the game but hit the 4k barrier hard before the game was anywhere near fun. Might not have been the best of ideas for a game either. It was how ever a complete game with score display, collision detection and simple levels.
The size limitation meant I had to sacrifice speed and make my instruction set a bit clumsy and reduced the abilities of my hardware. Then I thought, what if I shifted focus and instead made it the most awesome game platform with the most fun to code CPU and hardware?
Could a super small VM with a memory mapped display and a simple blitter be used to make a very small game? I boiled it down to a minimum instruction set for my CPU, whipped up an assembler that encoded the output in a compressed PNG image and made a small interpreting virtual machine, complete with required hardware in well under 400 lines of java code. The VM compiled and compressed to about 1900 bytes, leaving over 2k for my game code. And it was all just such great fun! I couldn't put the project down for a single moment. Then I started writing the game but hit the 4k barrier hard before the game was anywhere near fun. Might not have been the best of ideas for a game either. It was how ever a complete game with score display, collision detection and simple levels.
The size limitation meant I had to sacrifice speed and make my instruction set a bit clumsy and reduced the abilities of my hardware. Then I thought, what if I shifted focus and instead made it the most awesome game platform with the most fun to code CPU and hardware?
That brings us to Project Brutal. Can you tell us how this got started and the progress you made with it?
Our last attempt at reviving Brutal Homicide for a modern audience was failing, there was no denying that. The last development session me and Dave had for BH Reloaded in 2009 was just after my attempt at the 4k competition and my tiny virtual machine. At this point BH Reloaded was an over designed, uninteresting, buggy, 900kB pile of C++ code written over the span of way too many years. There wasn't even any point to it being written in C++ anymore, it could just as well have been written in Flash. There was also a surprising amount of code for such a game, looking back at the older Amiga versions of the game, their code base wasn't even half the size of this one while still containing more features. A full compilation of it took minutes on my crappy old laptop and had to be done all too often.
Then I got this crazy idea. What if I was to throw away all of that horrible old boring code and just go nuts hacking it old school on my own utopian platform?
Programmers often face the inevitable urge to rewrite their code just because it's more fun to write new stuff than to maintain something old. Should I try and fight that, again? Well, I really just want to have fun while coding. That's the most important part of it. If it isn't fun, it's just slavery or at best work. Programming that old code base was no more fun than doing taxes for a mid sized company.
There was no joy or love in the code.
I also saw some added bonuses with creating my own simple virtual platform for my game(s), beside being silly fun coding it. I would be able to move all my future games to any physical platform of my choice- iPhone, Android, XBox, Mac.. I wouldn't need to touch the game code and could release updates on any supported platform in parallel. If I ever came to produce more games on my virtual platform, I would be able to move the entire catalog of games to new platforms by just porting the generic emulator (or having some one else port it, even).
So I started putting my motivation to good use and gladly hacked away at my new virtual gaming platform. Once BVM, as it was called, had a basic set of features, I started implementing Project Brutal from scratch on it, adding missing features to the VM as the game required them. It was also nice to be able to reuse much of the graphics produced for BH Reloaded.
Now after a year or so with part time development of Project Brutal, it's my largest assembler based project on any platform to date (but it's still less code than the C++ version). It has been very interesting and I think that assembler isn't all as bad as people will tell you. Much of classic hardware close development seems to consist of constantly working around seemingly stupid limitations in CPU and machine, having an awful time debugging to top that off. I've tried to be more straight forward with my platform to avoid too many such workarounds. The BVM also records all input (physical or network) and thus is able to replay any bug accurately. It also has inline logging and simple but powerful debugging tools. It's just engineered to be efficient and fun to program, directly in assembly language. I love that it is able to assemble all my code (right now >80 files, totalling >43000 lines of code) in ~0.3 seconds.
Then I got this crazy idea. What if I was to throw away all of that horrible old boring code and just go nuts hacking it old school on my own utopian platform?
Programmers often face the inevitable urge to rewrite their code just because it's more fun to write new stuff than to maintain something old. Should I try and fight that, again? Well, I really just want to have fun while coding. That's the most important part of it. If it isn't fun, it's just slavery or at best work. Programming that old code base was no more fun than doing taxes for a mid sized company.
There was no joy or love in the code.
I also saw some added bonuses with creating my own simple virtual platform for my game(s), beside being silly fun coding it. I would be able to move all my future games to any physical platform of my choice- iPhone, Android, XBox, Mac.. I wouldn't need to touch the game code and could release updates on any supported platform in parallel. If I ever came to produce more games on my virtual platform, I would be able to move the entire catalog of games to new platforms by just porting the generic emulator (or having some one else port it, even).
So I started putting my motivation to good use and gladly hacked away at my new virtual gaming platform. Once BVM, as it was called, had a basic set of features, I started implementing Project Brutal from scratch on it, adding missing features to the VM as the game required them. It was also nice to be able to reuse much of the graphics produced for BH Reloaded.
Now after a year or so with part time development of Project Brutal, it's my largest assembler based project on any platform to date (but it's still less code than the C++ version). It has been very interesting and I think that assembler isn't all as bad as people will tell you. Much of classic hardware close development seems to consist of constantly working around seemingly stupid limitations in CPU and machine, having an awful time debugging to top that off. I've tried to be more straight forward with my platform to avoid too many such workarounds. The BVM also records all input (physical or network) and thus is able to replay any bug accurately. It also has inline logging and simple but powerful debugging tools. It's just engineered to be efficient and fun to program, directly in assembly language. I love that it is able to assemble all my code (right now >80 files, totalling >43000 lines of code) in ~0.3 seconds.
Project Brutal is also available to play online - for free - using a Flash port of the game - so that anyone with a computer can play it (http://drugcamp.com/) Now that this online version has gained over 60 thousand plays, what reaction have you had towards this release?
I don't think many older fans have found the game, or realised it's heritage. Players tend to like it, but its way to common that people rage quit early in a newly started multiplayer session, terminating the game for the opponent as well. But it would be less of a problem with a higher flow of traffic I guess.
Do you think Flash/Java makes it possible to have true cross-platform gaming, and is this something you are aiming for?
It's more difficult than that, different platforms have so wildly different features such as controls, display etc. It's down to finding a good common denominator of features in the platforms you want to reach. Neither Java or Flash are supported well on consoles or iPhone right now. Unity (or BVM!) is probably a better choice for true cross platform gaming.
But we're just aiming to make a fun, profitable game on one platform to start with. If it takes off, then we are able to introduce it to other platforms quickly, if it makes sense.
But we're just aiming to make a fun, profitable game on one platform to start with. If it takes off, then we are able to introduce it to other platforms quickly, if it makes sense.
Do you receive any funding or income from the iphone version or other mobile versions? Is the game still free?
There is no version on iPhone or any mobile yet. The initial plan was to charge people for having a user account in Project Brutal, once it felt ready for it. I have not asked or received any money from any of my projects, except for the failed shareware version of BH1 and small voluntary donation or two.
But this time one of the main goals is to make money, preferably enough to support us and be able to go full time with this. That would be awesome!
But this time one of the main goals is to make money, preferably enough to support us and be able to go full time with this. That would be awesome!
Do you have any design sketches for BH1 or BH2 which you are prepared to share?
After some digging around I managed to find the old shareware screen, shown at every game start of unregistered BH1 shareware version.
I also found a couple of screen shots of the unfinished cooperative mode of BH2, in daytime and night. I really loved those light sourced effects, and that you could bash the street lights out with your bat..
I also found a couple of screen shots of the unfinished cooperative mode of BH2, in daytime and night. I really loved those light sourced effects, and that you could bash the street lights out with your bat..
Were there any other Amiga projects apart from BH1 and BH2 you were involved in?
Except a few demo/intros that were pretty horrible, nothing that ever was released.
Tell us about Drug Camp and how you intend to develop this idea in the coming months.
The initial plan was to charge people for Project Brutal once it had a good stable player base, experience points, stats etc, but the Project Brutal model is very dependant on a critical mass of players to keep it alive and fun. We couldn't get enough people to stick around for that. Now we're taking Project Brutal away from that requirement with a transformation into a new game galled Drug Camp. Also, Project Brutal was a pretty bad name which also lacked an available .com domain name.
Drug Camp is like a classical farming game gone evil in a realtime multiplayer/tower defence setting. You have your drug farm where plants must be harvested every once and a while. This will make you money. But pests and robots will always try and shut you down, as will other players. You must build and withhold a defence perimeter with walls, sentries and alike and still try to grow the establishment as much as possible. You can also attack/pillage farms of other players and explore the surrounding forest for resources. If you recruit friends as allies, they will be able to help you defend the farm when attacked by players or robots. So if you are online when attacked, you can help your automated defence rid any intruders more efficiently. Then you have to go in and repair any damages.
Since the game is centred around this ever present farm/camp, the critical mass of players required for a good gameplay experience is not any way near as high as in Project Brutal, which always requires a few other people to be online. The game rides on top of the tested and proven multiplayer core of Project Brutal so it's well on its way already. We hope to be able to take it to open alpha during this year, at best.
Drop us a line if you want to help us out test/balance it, once we make it available. There's still room for a few more testers!
Drug Camp is like a classical farming game gone evil in a realtime multiplayer/tower defence setting. You have your drug farm where plants must be harvested every once and a while. This will make you money. But pests and robots will always try and shut you down, as will other players. You must build and withhold a defence perimeter with walls, sentries and alike and still try to grow the establishment as much as possible. You can also attack/pillage farms of other players and explore the surrounding forest for resources. If you recruit friends as allies, they will be able to help you defend the farm when attacked by players or robots. So if you are online when attacked, you can help your automated defence rid any intruders more efficiently. Then you have to go in and repair any damages.
Since the game is centred around this ever present farm/camp, the critical mass of players required for a good gameplay experience is not any way near as high as in Project Brutal, which always requires a few other people to be online. The game rides on top of the tested and proven multiplayer core of Project Brutal so it's well on its way already. We hope to be able to take it to open alpha during this year, at best.
Drop us a line if you want to help us out test/balance it, once we make it available. There's still room for a few more testers!
Thank you.
AmigaPd would like to thank Pontus Lundwall for taking the time to answer the questions.
AmigaPd Charityware
We hope you enjoyed reading the interview - remember AmigaPd is charityware - please visit our just giving page to support our chosen charity Mencap.