CP - Alen Breed Remake - 6

Community Forums/Showcase/CP - Alen Breed Remake - 6

Rob Farley(Posted 2004) [#1]



Download site

On-Line Todo list


Recent Updates:
10-10-04 :
Rob
- Updated player.bb added better collision for player/player alien/player also updated the strafe/turn mode so if you're surrounded by aliens so you can't move your player will still rotate even if you're firing.
- Updated Alien.bb, all new Ai and Control code using the same collision system as in player.bb, aliens now have a speed variable in their type so you can have fast and slow ones, and indeed static ones.
- Updated Utils.bb, added new collision system in.
- Added debuglines.bb, just a new thing for putting all debug stuff in one place, just basic utils for drawing lines, text and circles.
- Added global debugmode to player.bb (and debug drawing) for easy debug info on and off
- Updated all player gfx, updated all alien gfx.
- Split media.zip as it was getting too big.

06-10-04 :
Rob
- Updated Player.bb with a new map (looks like the intex system now) with some of Rims code too
- Updated player.bb to deal with different characters with differect graphic sets and speeds
- Updated Engine.bb to get draw order correct.
- Added explode function to weapons.bb, updated bullet type to account for this. Usage explode(x,y)
- Added explode to the script and remove(collision) to script too
- Added a barrel object type that explodes
Rims
- Updated Player.bb (damagetile function) to fix vis problem


To Do:
Improve collision alien/walls and player/walls
Add more alien types
Add more player types
Front End


Paul "Taiphoz"(Posted 2004) [#2]
can you not just create one zip file.


Perturbatio(Posted 2004) [#3]
no because then people would be downloading about 5 MB every time there's a code update, 56k'ers would not be happy chappies if we did that would they?


Erroneouss(Posted 2004) [#4]
... alen breed?
you mean alien breed?...lol ;D


(tu) ENAY(Posted 2004) [#5]
Big it up for Alen Breed ;)


wizzlefish(Posted 2004) [#6]
I can't believe you guys are on your 6th thread.....


Rob Farley(Posted 2004) [#7]
Updated code and Gfx zips ^^^^^

11-10-04 :
Rob
- Updated player.bb to include blood splats when player is hurt
- Added robot enemy and static cannon
- Added aliens ability to fire
- Added more particle gfx
- Added more fields to alien type to allow for different sounds and effects on a per alien basis. This reduces hard coding these things into alienhit and aliendie functions.


Come on guys!


Perturbatio(Posted 2004) [#8]
I'll be back to it soon, but not tonight and probably not tomorrow, I'll be out all day.


coffeedotbean(Posted 2004) [#9]
This is coming along nicely.

Would you guys want a map editor written in B+ or are you keeping it to B2D\3D so every 1 can add to the editor? I can make sure I only use gadgets\flags that are in 1.1 or whatever the demo version is.

Cus I could make a kick ass easy to use Editor in B+.

Let me know.


Perturbatio(Posted 2004) [#10]
We kind of decided to stick with B3D since the majority of Blitzers use it (I don't have B+ for instance).


Matthew Smith(Posted 2004) [#11]
Rob,

The changes you have made are great! Well done


Rob Farley(Posted 2004) [#12]
Well would you believe it... I just got an email from Rico Holmes at Team 17...

To: rob@...
Subject: Alien Breed Copyright infringement
============================================================
HA! Just pulling your leg. :D

I just heard of the Alien Breed clone you guys are trying to put together in
BlitzBasic! Excellent stuff I must say!
Hehe.. It's been years since we made it, but still a game I'm intensely
proud of. Glad to hear it's still alive in a way.

I tried logging in just to say "Hi" and see if you wanted any input from
the original game, but I need to be a
BlitzBasic owner (reg code) to get on the forums.

Ah well - pass on a "Hi" to the lads, and that I'd love to see what you
come up with.

Cheers for now,

-Rico



Foppy(Posted 2004) [#13]
That's a nice e-mail! And the game so far looks good too, I will download it when I get home.

(And I bet that e-mail subject gave you a scare!)


Rimmsy(Posted 2004) [#14]
Sorry guys, It's been stressful at the moment. I'm changing jobs and I've had little time to contribute anything. But it's all sorted now so I'll be back tonight. Rob what are the immediate TODOs (specifically) so I can get coding/drawing straight away tonight.


Rob Farley(Posted 2004) [#15]
* Sort collision with player/walls alien/walls (although I think that's a job for me as it's mostly my code in those bits)

* Death of individual players

* Differences in the players so they can't all pick up all the weapons for example (ie, fast people can't carry the heavy weapons).

* Front End.

I think we're dangerously close to having to create levels and start actually playing the game.


Perturbatio(Posted 2004) [#16]
Ok, the OnTimer aliens are a big problem, so many spawned that it ground the game to a halt for me. Perhaps have a count property for them so that it will spawn a maximum number and then stop (or have a limit on the number of aliens that can be in existance at the same time).


Rob Farley(Posted 2004) [#17]
Pert I think I broke something there, they seem to spawn even when they in an invisible area. I think you're right with the spawn count so that each spawner only creates x before dying.

Also in the editor it needs to be more flexible for the creation of the aliens, as it's only geared up for types 0 and 1, we should make it so that there's a spawner or an alien and you set what type it is, I think this would be more flexible than having to have seperate objects for each alien type.


AndyBoy_UK(Posted 2004) [#18]
I might be able to create a few levels for you if you like, I assume the editor is in the code or should I wait until the file format is finalised?

[edit]
I was going to offer my services with the editor itself but realistically I did not have the time that I wanted to put into it, especially at the very impressive pace that you all have been doing.

Top work everyone.

Will the manual have all the script commands, etc in there and an option to test the level in the game engine? That would be tops.
[/edit]

A


Rob Farley(Posted 2004) [#19]
You're more than welcome to have a go at levels although I think we need to create a manual for the editor as it's got quite a lot to it now with destructable blocks, script objects and so on. I'll see if I can knock one up this evening.


Rob Farley(Posted 2004) [#20]
This thread might be of interest


Rimmsy(Posted 2004) [#21]
- TileTimers only repeat 5 times. You can change this by altering the function runOnLoadScripts() in script.bb
- Players are loaded via the "kind$" param at the end of the player_create function. This gives them classes
- Players are given certain weapons they can carry using flags. So a player with 1+2+4 can carry the first three weapons. A player with 1+32 can carry the lightest and heaviest weapon. These are set in the player_create function.



Here're the updates:

engine.bb (The player_Create has a new param)
btext 40,200,"Creating player/s...":Flip
;Player Initialization - name, x, y, id
Player_Create.player("player2",player_one_start_x,player_one_start_y,1,"light")
;Player_Create.player("player3",player_two_start_x,player_two_start_y,2)

players.bb
; add this to the player type:
Field weaponsAllowed ; flags 1,2,4,8,16,32

; new function
Function allowPlayerToHaveTheseWeapons(p.player,weapons=32) ; 32=all
	If p = Null Then Return
	p\weaponsAllowed =weapons
End Function

;update:
Function Player_Create.player(Name$,X%,Y%,id%,kind$="light")
	Local pl.player = New player
	
	pl\name = Name$
	
	Select Lower(kind)
		Case "light":
			filename$="gfx/player1.png"			
			allowPlayerToHaveTheseWeapons(pl,1+2+4) ; all weapons
			speed#=1.5
			
		Case "medium"
			filename$="gfx/player2.png"
			allowPlayerToHaveTheseWeapons(pl,4+8+16) ; all weapons
			speed#=1.0
			
		Case "heavy"
			filename$="gfx/player2.png"
			allowPlayerToHaveTheseWeapons(pl,8+16+32) ; all weapons
			speed#=0.7			
	End Select	
	
	playergfx(id) = LoadAnimImage(filename,64,64,0,128) : MaskImage playergfx(id),255,0,255
	pl\x = X
	pl\y = Y
	pl\frame = 0
	pl\health = 100
	pl\fpause = 0
	pl\dir = 0
	pl\id = id
	;Ammo stuff
	pl\Clip = 2
	pl\ammo = 15
	pl\lives = 5
	pl\speed=speed
	
	CheckVis(Floor(pl\x/32),Floor(pl\y/32))	
	
	Player(id)=pl
	Return pl
End Function

script.bb

Also, I wrote a help file for the editor a while ago. You can find it here: www.3030deathwar.co.uk/downloads/ab/editor.txt

I think that's everything. it's getting a little hard to update as there are bits here and bits there to be changed. I'll be back with more in a few minutes.


(tu) ENAY(Posted 2004) [#22]
Team17! EXCELLENT! You're famous Rob :)
Glad to hear that the lawyers won't be coming out.

I can remember applying for a job at Team17 a few years back but my work must have been crap as I didn't get a reply at all ;)

So when's the 4 player Gauntlet style mode going in?


aab(Posted 2004) [#23]
Enemies need to slide off a bit when they push you up against a wall: once you get stuck your there till death!


AndyBoy_UK(Posted 2004) [#24]
Rob, are you looking to recreate the old levels from the games or a whole set of new ones? I admit I only ever played the demo back on the Amiga so I dont know the story or anything.

Im sure I can make something up though.

As a suggestion, if the maps and scripts were self contained files, you could add the files to a directory and the program could scan for a friendly name in the header of each one, then the user could do a "switch data file" and get given a list of available files (games/mod/etc) that are available.

You could even take this as far as letting them skin the menu's, add an animated intro (slideshow with a few sound effects per slide), add more of these small slideshow anims and execute them from the game script language (this will allow the story to progress - for single player modes)

How does it work at the moment (roughly)?


Rimmsy(Posted 2004) [#25]
- players are given default weapons upon creation
- Players can die and leave behind a temporary dead body (they fade away) Edit: There used to be a seperate deadbody.bb file but then I realised I could just use your particles..

Re-jig the order in the engine.bb with these bits: The weapons get created before we make the players so we can equip the weapon when we create the players.

Change this bit in players.bb. It gives the player their default weapon depending on their class:


add this to the top of the particles.bb
Global dead_body_1 = LoadImage("gfx\body.png"): MaskImage dead_body_1,255,0,255



Update this bit in players.bb->affect health
If p\health =< 0 Then
		; rebirth
		p\health = 100
		p\lives=p\lives-1
		
		DebugLog "player "+p\id+" dies..."
		; create dead body here
		createparticle(p\x,p\y,0,0,5000,0,0,dead_body_1,ImageWidth(dead_body_1)/2,1)
	
		; create death splat *temp*
		n=Rand(20)+5
		For i=1 To n
			d=Rand(359)
			f=Rand(12,15)
			createparticle(p\x,p\y,Sin(d)*2,Cos(d)*2,Rand(10,100),f,f,particles,16)	
		Next
		
		; move then to the start position
		If p=First player
			p\x=player_one_start_x
			p\y=player_one_start_y
		Else
			p\x=player_two_start_x
			p\y=player_two_start_y		
		EndIf
			
		; should we allow the player to keep their weapons or 
		; make their weapons drop onto the floor so they can pick them up?		
		
		; play spinny animation here
		If p\lives=0
			; replaced with end of game bit
			Cls
			Print "End of game"
			WaitKey
			End
		EndIf		
	EndIf	
End Function

Also, you might want to change this in the script.bb->handleRunningScripts functions to only draw when in debugmode
		If debugmode 
			dcircle(i\x*32,i\y*32,32,255,0,0)
			dtext(i\x*32,i\y*32,i\l+"/"+i\loops)	
		EndIf



Rob Farley(Posted 2004) [#26]
Big bugger!




Richard5mith(Posted 2004) [#27]
It's looking great, but the new player animation never looks like he's facing in the direction you're going.

For example, the screenshot above is obviously facing up from the bullet direction, but he looks like he's facing diagonally up/right.


Rimmsy(Posted 2004) [#28]
It's just the way he's holding the gun, richard but I understand your concern.
Rob. Where did you get that beasty? And why? I've already soiled my trousers.


Rob Farley(Posted 2004) [#29]
All the models are from polycount, I've emailed the authors to make sure it's ok to use them, I'm sure it'll be fine but it's always good to check these things out.

Richard, the thing is if you're holding a gun from the hip you're going to be side on. Quite frankly when you're playing the game it's not really an issue, the gun should be pointing forward the whole time, but it doesn't look right when you're running. There should be a version of the aninmation for shooting where the gun is pointed straight ahead, it wouldn't be a problem doing it apart from the memory usage for the animations.

I'm not sure what limit we should use really, as in the grand scheme of things with 64mb+ cards we shouldn't worry. Maybe we should think about minimum specs and not go over it.

The big beasty up there is 128x128 x 8 frames x 16 rotations, as a 256 colour png it's 0.5mb which isn't really that much.

So question... do we set a minimum spec? 16mb? 32mb? Discuss.

Oh, I'll upload a new version tomorrow, everything's been a bit hectic this evening as I had to take the cat to the vet!


(tu) ENAY(Posted 2004) [#30]
> So question... do we set a minimum spec?
> 16mb? 32mb? Discuss.

Once the conversion to quads and Blitz3D has been implemented then it will be 128x128 x 8 frames x 1 rotations :)

> take the cat to the vet!

Awwww! Poor puddy cat. Get well soon puss.


Matthew Smith(Posted 2004) [#31]
What sort of assistance could we ask from Rico? Some more level gfx, sound effects, music?

I have also been thinking about the player firing - Rob, maybe you look at firing animation - re-coil type stuff??

The beast looks awesome!


Rob Farley(Posted 2004) [#32]
>> Once the conversion to quads and Blitz3D has been implemented then it will be 128x128 x 8 frames x 1 rotations :)
Enay, the problem with that is the lighting wouldn't work then. I don't think I would ever swap these for quads, I'd be happier swapping them with 3D models.


(tu) ENAY(Posted 2004) [#33]
So the lighting is different in each of the 8 directions? Ah I see exactly what you mean now.


Rob Farley(Posted 2004) [#34]
Enay, the sprites are lit from 1 direction (top left), therefore as it turns in all 16 directions the lighting is different.


Mark Tiffany(Posted 2004) [#35]
My cat has to go to the vet too. Because he's stressed (again). And yes, that is for eal, and yes that is their official diagnosis - I have a stressed pussy. ;-)

As for asking for help from Rico - how about the official nod to create a true remake using their original gfx? sfx? music? If so, might that impact on our previous decision to release this as open source (i.e. they might donate us the original gfx, etc if it's closed source?)

And as to the question of levels, I definitely agree with the idea of enabling 'mods', then we can work on an exact remake and our own game based on the original idea (which I think is where we were heading). Or if not us, anyone else can...


Rob Farley(Posted 2004) [#36]
I don't think it's possible for us to have exact levels as the original because I think they had some diagonal corridors (if memory serves) and our engine isn't up to the task of that.

Regarding help from Rico he hasn't actually offered anything and quite frankly I don't think we need it. I asked Team17 for help regarding media, maps etc right at the beginning and got nothing back. Now we've got a basic tile set and characters I don't think we need further assistance. I think he was just flattered that people were still insterested in it.

There are plenty of forums available to us for people willing to do mapping, LemonAmiga, Team17, RetroRemakes, BlitzCoder, BlitzBasic, DarkBASIC(?) (maybe get Rico to do one!). So I don't think level creation is going to be a problem, once we've got one or two levels made I think others will pour in.

I think we're in danger of losing sight of what we need to do. We need to concentrate on getting the engine sorted. I've just written the wall collision code so that works properly now.

ToDo:
Editor - Need to make it so we can specify what alien is spawned by alien type number. likewise with respawners.
- The levels need objectives, this would be collect object x, destory object y, go to position z, activate object a. These need to be assigned with boolean type stuff so you'd have something like:

(pick up object x or object y)
and
(destory object v)
and
(gotoposition x,y or gotoposition x-1,y or gotoposition x+1,y)

Something like that anyway.
This stuff needs to be implemented into the game itself too (obviously). Once we've got this stuff in I think we're very close to a game. You will have a level, with bad guys, pick ups, and objectives. That sounds very much like a game to me. Then all you need to do is multiply the level count by several.

Something that has been said is the non-linear approach would be really good, so maybe have the choosing of the level done by having an outside scene where you can enter different buildings (like tower assault)

Intex systems need to be looked at too, although I think this is going to be pretty simple. And of course a front end needs to be added with redefining keys and such like.

I think this is enough for one post.

This evening I'll grab all the code of this thread, I've got a fair few updates I've added on my computer too. Then we'll have a fresh code and gfx zip for everyone to enjoy!


Rob Farley(Posted 2004) [#37]
Just noticed a bunch of hits to my site coming from remakes.org... Anyway... On their front page about half way down there is this bit of news...
Alien Breed remake ? Do i hear a big YES. Well a team has formed calling themselves Mental Illusions and they are in the middle of a blitz based remake. Its a community effort for them, you can see some screenshots of their work so far and read how well its going in this rather long thread. Keep an eye on it !
OK, not strictly accuarate, but there it is!


(tu) ENAY(Posted 2004) [#38]
Heh. Cool. But there's only you Rob with the mental illusion ;)
Heheh. BAPS!


Mark Tiffany(Posted 2004) [#39]
Am looking at setting up an online todo list to track what's left, and who's doing what. My (admittedly slightly crappy) Lycos account allows PHP and MySQL, and am looking at some SourceForge ToDoLists...

By the way, gfx.zip just downloaded as a broken archive - you in the middle of updating rob?


Mark Tiffany(Posted 2004) [#40]
Ah yes, that'd be why! (crosspost)


Rob Farley(Posted 2004) [#41]
Speaking of sourceforge still had no word back :(


Mark Tiffany(Posted 2004) [#42]
Agree on the death thing, just die once, people are gonna save and reload most times that they die, and it doesn't make contextual sense if we have any kind of RPG elements - even just the basic inventory of weapons keys. Lives is a bit of an arcade hangover that most games can (and should do without).

On that note, we'll need save and load functions sometime soon (although the map structure is in place, and unlikely to change now, we probably need to think a bit more about player structures and inventories / progress in each level, etc.). Also, should we allow saving at any point, or just at the start of a level, or at any intex system, or...? I quite like the idea of just auto-saving when you start a new level.

When doing the save/load, we must make it very easy and quick to reload the last saved game (I hate having to wait for a reload, it really prevents you from staying immersed in the game).

On non-linearity
================
How about: On starting the game (and loading), you see a world map (the image is defined per game module). Available locations appear on this map, and you can choose where to go. Different locations take you a start level, which then is a linear progression of any number of levels. Finding stuff in the levels can then unlock other levels on the map.

This gives the benefits of non-linearity (choice of order to do things, ability to try something else if you get stuck), but without having to worry too much about it when building a 'location' which may consist of 5 levels which you make your way through in a largely linear fashion. Obviously player classes, etc will allow a limited amount of non-linearity within a location (i.e. different solutions to same problem), but essentially they remain linear. Never played tower assault (I know, I know!), so don't know if that's close?

Also, this structure might have an impact on our save/load options - we could restrict saving / loading to only be on the world map, and partial progress in individual locations is NOT remembered, just completion of locations. On death in a level, we simply reset the entire level back to it's original state. It's a simple approach, but makes our save function dead easy...

[snipped another crosspost re: todo lists and sourceforge tasks]


Mark Tiffany(Posted 2004) [#43]
Okay, I've set up "todolist.php" on my site. I've only had a quick play, but it looks okay.

TODO

Feel free to add it to the top post, although better hosting may be in order if we want to use it in anger (get rid of those adverts!). But again, if we do get sourceforge hosting, we may not need it.

UserIDs.
robfarley, Rims, Perturbatio, Matt, Rico, ENAY

Passwords are that four letter word that Rob is so fond of...please change it once you are in, and set up your email if you want notifications. There are two separate projects: Engine & Editor. Go ahead and create all the tasks we can think of!

Anyone else want access?


Rob Farley(Posted 2004) [#44]
The todo list is good! Simple, but fine, although I already appear to have added 2 tasks to one thing :(

Bah, never mind! It's a darn sight better than what we've got!

Can you add a user of No-One so tasks can be added unassigned to anyone so people can just pick them up?

Also is there a way to make it so there is a view only version that just shows what's outstanding for Joe Public to look at?


RiK(Posted 2004) [#45]
why not just add a read-only user so us spectators can be nosey?

If not, can I be nosey anyway?

:)


Mark Tiffany(Posted 2004) [#46]
To be honest I didn't have any time to play with it. I kind of assumed tasks could be left unassigned - if not, then sure, I'll add a no-one.

I don't think there's a read-only mode, however I know a bit of PHP / MySQL, so I'll try to knock up a simple read-only task list view for anyone to view tonight.


Mark Tiffany(Posted 2004) [#47]
A Mr Unassigned Task has been created.


Rob Farley(Posted 2004) [#48]
IDEAS:

Loads/Save, I think should just be at the beginning/end of levels it'll make life loads easier.

Editor: Definately each level needs to hold a slide show type thing (as andy said) and what levels it unlocks once that one is complete.

Non-Linear: If you always start on level one, everyone has to do that, then level one unlocks levels 2,4,6 say which you can then choose from, level 2 once complete unlocks 3,5 and level 4 unlocks 5... etc etc, this way you can work your way through the levels in certain orders but give it some kind of story so you don't have to do all the levels say, and you can choose what order you do them in to a certain extent. Dicuss...


Matthew Smith(Posted 2004) [#49]
Guys,

Been working a little on getting more of the intex working. Rob, I have sent you an email with a new font to try.

So update the following:

Add:


Update:


Update:



Perturbatio(Posted 2004) [#50]


Non-Linear: If you always start on level one, everyone has to do that, then level one unlocks levels 2,4,6 say which you can then choose from, level 2 once complete unlocks 3,5 and level 4 unlocks 5... etc etc, this way you can work your way through the levels in certain orders but give it some kind of story so you don't have to do all the levels say, and you can choose what order you do them in to a certain extent. Dicuss...


This could be done by allowing multiple exit and entry points.
You can simply store the spawn point of another map as the destination.


Rob Farley(Posted 2004) [#51]
That sounds like a good idea pert. You could have an overall map that shows how the different levels fall together so you could enter different maps from either side of it for example, that sounds really cool.

Matt, got the email, I'll put your stuff in this evening. What does it all do exactly?!


Matthew Smith(Posted 2004) [#52]
Rob,

A couple more things in the menu are working and I have been tiding up other stuff. You can now view the 'Radar Service' (map) from the menu.

I will hopefully do a bit more tomorrow night after cricket training. Want to try and get the Tools and Weapon supplies finished. Do we want to buy weapons?

Time for bed


Rob Farley(Posted 2004) [#53]
Do we want to buy weapons?
Guns... Lots of guns...

I'll come up with the graphics at some point soon for the weapons, again, I'll download some weapons off polycount and render them for the game.


Matthew Smith(Posted 2004) [#54]
Sounds good - the gfx are working out really well.

I just updated the code for intex-new.bb again to add a menu to the radar service.

Bye for now!!!


Rob Farley(Posted 2004) [#55]
Zips updated:

13-10-04 :
Rims:
- Start of front end
- update of players and death (only one life now)
Matt:
- Update intex systems, put map inside intex now
Rob:
- Update front end, added more artwork
- Bit of house keeping



Rob Farley(Posted 2004) [#56]
And so the emails keep on coming...

Date: Thu, 14 Oct 2004 09:55:27 +0100
To: rob@...
Subject: best of luck...
...with your breed remake. Be sure to send us a build.

Martyn Brown,
Team17 Software Limited.



Matthew Smith(Posted 2004) [#57]
It's great to see a software house give support to a remake rather than try and close it down!!! Team 17 have always been great


AndyBoy_UK(Posted 2004) [#58]
I just had a bash at the latest zips and its all good for alittle while then it drops back to the menu, and once its back at the menu, it doestn let you start a new game or anything.

Is that a known bug?

A


Rob Farley(Posted 2004) [#59]
Yes! It drops back to the main menu when you die! And gets stuck there. The structure of the game needs re-arranging for this to work correctly.

We need to do a bit more balancing on how much health loss the aliens inflict etc etc.


Matthew Smith(Posted 2004) [#60]
Andy,

Rob has justed added that in and has jet to complete it - we need to re-initialise the required objects on the restart. He will probably have an update out soon...

Does anyone like the Intex font? Been having a play the FontText and it seemed to be the nicest one I have done so far.


Rob Farley(Posted 2004) [#61]
Um... Actually I preferred the old font Matt... I think the new one looks a bit 80s. Sorry mate.


Matthew Smith(Posted 2004) [#62]
No worries about the font - just having a play to see if I could squeeze a bit more in. I think we might need to go wide-screen plasma style!!!

Have made a bit more progress on the Intex System (bit more of a tidy also) as you can now go in and buy some of the stuff from the tool supplies - check it out below.

Also with the weapons - I think we need to store the ammo for each weapon separately, which would also mean we need to have a number of different ammo collections - what does everyone think? If so, I will have a look.

Intex-new.bb - replace


Function Player_Create.player add:
	pl\credits = 20000



Rob Farley(Posted 2004) [#63]
Also with the weapons - I think we need to store the ammo for each weapon separately, which would also mean we need to have a number of different ammo collections
I totally agree! I'll take a look at the new intex this evening when I get home. Regarding making it a different shape, that's no problem at all. Change the size of the intexbg.png image and intexframe and the halfbright function will just work as it picks up the size of the intexbg image.


Matthew Smith(Posted 2004) [#64]
I'll take a look at the weapons over the weekend. And I'll go back to the AB Intex font and extend it out a little.

I really like that halfbright function!


Rob Farley(Posted 2004) [#65]
Yeah I like it too... Not sure how well it'll handle on lower spec machines as it's pretty intensive, I'm sure we'll find out soon enough!

Have you got any timing code on the intex systems yet? I found that on my work PC the more letters on the screen that appeared the slower it got.


Rob Farley(Posted 2004) [#66]
Something else I've just thought of editor-wise:

There should be a sort of compile option that takes a look at all the aliens in the level and when it's loaded into the game only those aliens are loaded. Just a little optimisation.

And, a thought... Should we have a multiple tile sets?

Maybe have a tileset for the transparant layers (detail and over) and a different set for the base layer. I just think this will make the tilesets more manageable.
The only problem I can forsee is working out what tile set you're using on each square... would you set the tileset for the entire level or would you set it per tile? If it were set per tile it would mean an extra layer to describe what tileset you're using. Per level would be much easier.
It just means if we have different themed levels you could set the different base tileset...? Discuss.


Mark Tiffany(Posted 2004) [#67]
I suspect we're going to need a whole bunch of extra level data in addition to the map structure. I suggest that for now we create a further file level.lvl (to go with level.map and level.obj) that can contain all this stuff. Things like which tileset to use (I suggest we do define it once per level), completion criteria, intro graphic (movie?), intro text, whatever.

Once all the file formats are settled we can then compile these back up into a single file (with simple encryption to stop cheats rather than hackers). Or possibly all levels in to a single data pack...

One point for Matt (and anyone else), please use the codebox tag when posting large chunks of code, not the code tag. this will give you code in a smaller scrolly, and prevent oversized web pages! Ta!

Oh, and damned nice to get an email from Martyn Brown. I always liked their stuff on the 'miggy. *misty eyes*


Rob Farley(Posted 2004) [#68]
Zips updated.

I've set up a basic framework for the players, each player has their own directory for holding their sounds, graphics and player info (Should probably set something like this up for the aliens too). The player info and sounds isn't in yet but the way I plan to use it is there will be a txt file or something similar that holds the player speed, weapons they can hold, how much damage aliens inflict on them (effectively how strong they are), their max health and so on, we probably need to work out what their stats might be. The sounds will be default sounds for hurt, death, taunts?

As I said, it would probably be a good idea to do the aliens this way too, then we don't have to hard code this stuff like we've been doing, it makes expansion and modding much easier.

The intex systems have been updated a little thanks to Matt, and I've done a bit of optimising and housekeeping on a bit of the code.

The game itself still needs to be converting into a function that gets called from the frontend, I don't think it'll be that difficult a task once we've got all the bits and pieces in for the level.

I've tidied up the graphics set a little and removed more tile graphics from decals so we've got more detail stuff.

Finally I've updated the map and editor a little so when you add a barrel it automatically sets the hit points and collision layers too, maybe we should have an extra file for defaults like this, or just hard code it into a case statement.

Anyway... that's about it!


Matthew Smith(Posted 2004) [#69]
Ok, have tidied up the engine.bb code to initialise eveything correctly (may have missed some types). Also set a framework around this so it's structured a little better.

I'll have a look at the timer code for the intex system on the weekend.


Engine.bb - replace



Rimmsy(Posted 2004) [#70]
Code changes have been minor but spread across files. Download the most updated version below. I'll let rob update the history and keep the final version, this is primarily for him when he wakes up tomorrow.

Uploaded and updated: 3:53 am GMT
www.3030deathwar.co.uk/downloads/ab/code.zip
www.3030deathwar.co.uk/downloads/ab/gfx.zip

I've updated the code to reflect the desired changes. There's a fully functioning menu system now. You can go into a game and press ESC to get back to the menu. From there you can resume or create a new game, or load a game, etc.

- Menu systems fully works. It's a bit tricky to understand but it works
- Load menu is ready
- When you die you go directly to the load menu
- LoadGameFromSaveGame is ready for the save game format
- Fixed ammo reloading
- You can restart the game again cleanly
- Added menu constants for ease of use
- Clean up of engine.bb now only important loop() and draw() stuff is in there
- HUD, tiles and weapons are loaded at the very beginning of the game. This means they don't need to be reloaded between loads. Multiple tilesets for specific levels will be loaded when called for. This can be done by seeing what tileset we need when loading then freeing the current one and loading the new one.
- Added initalise.bb to control the running game and menu interactions.

[edit: is it me or is the todo list thing a bit temperamental. I seems to have added the same things three times.


Rimmsy(Posted 2004) [#71]
More, more, more:

- Added a basic save game file format. (.breed) which saves a small screenshot of the level you are starting.
- Haven't finalised the format yet. We should all discuss it.
- Fixed health not being given to you bug. (was it a bug?)
- Check out the Load game menu. There are some save games there that I saved a tests. Ctrl+S will save a game at any time. I know we're going to save at the end of levels, but it's only to test at the moment.

updated: 5:03 am (I am not getting any sleep tonight!)
www.3030deathwar.co.uk/downloads/ab/code.zip


Matthew Smith(Posted 2004) [#72]
Rims,

Here is the health code that will read from the script settings. Very nice changes by the way!




Rob Farley(Posted 2004) [#73]
Bloody hell, you guys work overnight!

What do you make of the player and alien folders idea?

I'll look at these changes this evening!

I've just realised I've got webspace with NTL and I don't think there's any bandwidth limit on it so I'll build a little Alien Breed site. No idea if it does anything like PHP but I'll find out this evening.


Rob Farley(Posted 2004) [#74]
Just downloaded the bits and pieces, I hate the hearts in the corners and bullets flying up from the bottom of the screen. I was hoping that bullet gfx was going to be a homing missile or something!

I'll have a proper look tonight to give a more balanced view but I look at it and don't really know what's going on.

The screen shake thing is pretty cool though.

I need to look at all the bits of code in some detail this evening... still early... not had a cup of tea yet...


Perturbatio(Posted 2004) [#75]
Somewhere along the way, the ability to lower the hit points on a dynamic collision appears to have been removed:

editor.bb - hitpoint layer section
		
		;hitpoint layer
		If MouseHit(1) And activelayer = LayerHits Then 
			If map(xpos,ypos,LayerCollision) >1 Then
				;if left control is held
				If KeyDown(29) Then IncVal = 5 Else IncVal = 1 
				If map(xpos,ypos,LayerHits) < lhMaxHits Then map(xpos,ypos,LayerHits) = map(xpos,ypos,LayerHits) + IncVal
				;limit the maximum value for a dynamic collisions hit points
				If map(xpos,ypos,LayerHits) > lhMaxHits Then map(xpos,ypos,LayerHits) = 0
			EndIf
		EndIf
		If MouseHit(2) And activeLayer = LayerHits Then
			If map(Xpos, YPos, LayerCollision) > 1 Then
				If KeyDown(29) Then DecVal = 5 Else DecVal = 1
				map(xpos,ypos,LayerHits) = map(xpos,ypos,LayerHits) - DecVal
				If map(xpos,ypos,LayerHits) < 1 Then map(xpos,ypos,LayerHits) = 1
			EndIf		
		EndIf



Rob Farley(Posted 2004) [#76]
OK, I don't hate the new hud... however... I'm not a fan.

Instead of a heart how about a heart moniter bing.. bing.. bing type screen?

The bullets flying up I think is disctracting, that's really not good.


Rimmsy(Posted 2004) [#77]
yeah, but bullets... flying. you know you love it. It distracts in a really "this situation's out of control" type of way.

But if you don't like it you can take it out. In weapons.bb->FireWeapon, just comment the createFlyingBullet line. As for the heart, yeah, it was 4 in the morning. A heart monitor would be a lot better, I agree.


(tu) ENAY(Posted 2004) [#78]
What's wrong with the energy bars?


Mark Tiffany(Posted 2004) [#79]
We might want to consider an inventory screen / window to show detail of what keys, weapons, ammo, other objects that you have. We'll need this for carrying 'other objects' if we want to add some puzzle elements. e.g. find circuitboard and use it in broken down computer to access another area. The inventory screen can also provide the 'use' function to support this.

I think we just need to show the currently selected weapon on the HUD, with ammo count for it, and enable quick switching without entering the inventory. I don't think keys actually need to be shown on the HUD at all, but if we do that, we may need to tell the player they need a specific key when they try to open a door and don't have the key? I'm tempted to say not...as it's pretty damned obvious!

As for inventory, I say NEVER restrict 'other objects' to a fixed number / space. Let 'em carry everything. But we could consider only letting them carry one or two weapons at a time?


Rob Farley(Posted 2004) [#80]
Mark, I agree, we could have a single button for the inventory for both players, the inventory screen would just overlay down each side of the screen, half the screen wide (or less) to allow both players to player to play with inventory at the same time if necessary.

The weapons are already accounted for with the player type.

Regarding the doors I'll get my girly Hannah to say things like "Red Pass required" and then stick loads of reverb on it to make it sound cool!! Actually speaking of speaking... We could do with a list of possible things doors / computers will say so I can get her to do it all in one sitting!

Red pass required
Blue Pass required
Green pass required
Yellow pass required [or (yellow security level required)?]
Shut down sequence initialised
Start sequence initialised
Self destruct sequence initialised
Please evacuate the building
30 seconds
20 seconds
10 seconds
9
8
7
6
5
4
3
2
1

Suggestions please!


I was thinking about ammo, and if we don't have traditonal weapons (ie machine gun) we could have them all as energy weapons and different guns use up more or less energy.?!?


Mark1nc(Posted 2004) [#81]
This game is shaping up really nicely. Keep it up guys!

I noticed that there are two entries for addhealth in runscript().
There should only be one, right?

			Case "addhealth"				
;				pv.pickedup = New pickedup
;				pv\player = pl\id ; allowing for multiple players
;				pv\obj = 2
				Player_GiveHealth(pl,50)

			Case "addhealth"				
				;Give health to player
				Player_GiveHealth(pl, si\param)




Rimmsy(Posted 2004) [#82]
Mark, thanks for spotting that. I think I just forgot to comment out one of them. Do we want to keep health packages as inventory items or simply use them when you move over them. In the heat of a firefight I think I'd prefer the later.

I like the energy weapon idea, it'd mean picking up ammo would be a lot less complicated. Also, the half a screen invenetory idea is spot on. Also, if both players had their inventory open you could use the mouse to drag things from each other's inventory. That'd be cool. "Here, you have the circuit board", etc.

Get hannah to say "you now have 2 minutes to reach minimum safe distance" I'm not sure why, but it'd be cool if we had a level with a time limit to escape within. You now have 30 seconds to reach minimum safe distance.

There's a slight problem with the frontend at the moment. If you go into a game then esc and go to load... then go back, it takes you back to the main menu rather than the "resume game" menu. I'll fix that though.


Rimmsy(Posted 2004) [#83]
Oh, and yes, I like the player directory idea. We could package them up into one file later on.


Rob Farley(Posted 2004) [#84]
Just knocked up a little thing to add to utils for the player info stuff... Copy this and call it testfile.bb!




Rob Farley(Posted 2004) [#85]
Just created a mini website for the AB project. Link at the top ^^^ and don't you just love the way sites don't work properly on IE.


Rob Farley(Posted 2004) [#86]
Zips updated.

15-10-04 :
Rims:
- Updated player.bb
- New HUD (gfx and code)
- Shakey cam
Rob:
- Players now get their stats from a their player.txt file
- Added readitem function to utils
Mark Incitti:
- Lil' bug fix on script



Mark Tiffany(Posted 2004) [#87]
Rob, the todo list link (and full history, etc.) have gone AWOL in your topmost post. Also you might want to mention Team17 on the site to make it clear they owned the original. Also, is *all* of the imagery on the web site *ours*? In particular, the alien gfx in the background?

As for health pickups, and whether they act instantly or not, I'd prefer not.

For one - consistency. If we're going to have objects to pick up like a circuit board, it will be inconsistent not to allow players to store health until it's actually needed.

For another, by using this mechanism, you'll likely end up needing to leave health pickups in non-sensical places. i.e. just after you kill a whole host of aliens, and you are on your last legs, it turns out they were hoarding health packs. WTF? Why?!? I'd rather we hide health packs away in med rooms. I also tend to think the same kind of logic should apply to (some) keys, although it'll be harder to apply. Keys don't just get left lying around in the corridor, but it's reasonable they might be in offices / side rooms / hidden behind the plant pot / whatever.

Having said all that, what I *do* propose is that if the player gets down to near-zero health, we automatically apply any health packs for them. Why make the player work on trivial tasks? They're gonna do it anyway, and if not, they'll just be annoyed that they didn't get to the 'use health pickup' key fast enough. (yup, another of my pet hates in modern videogames...uneccesary drudgery...)


Mark Tiffany(Posted 2004) [#88]
Also, extra things to be recorded:
Welcome to Intex?

Intruder Alert -some alarm system stuff would be neat - maybe a (basic) sneak ability for some player classes? Laser trip wires to be gotten past either by tripping them and shooting, or using a skill / item?

'Some kind of under attack' alert. Might be quite cool to get halfway through exploring a level, and then get this alert and aliens flood in from where you've just come from...


Rob Farley(Posted 2004) [#89]
Mark, I told Martyn Brown that we'd lifted a couple of box images and he didn't reply so I can only assume he's fine with it. I've updated the site a little, added links, made the team 17 connection clear etc. Let me know if you have any other ideas about content etc. NTL webspace doesn't support PHP which means we can't have the todo on there and it means everything is hand cranked which sucks :(

I have to agree if we're going for an inventory system with the ability to use items, health packs should be items that get used as and when they are needed.

Also the keys thing can be sorted with level design. You don't have 100s of keys lying around, you have a coloured door to get through to the next secure area then beyond that most of the doors are keyless. This way you'd only have a handful of red, green and yellow doors throughout the entire level. No reason why they shouldn't be added to your inventory and auto-used when you press a door though.

The 'Some kind of under attack' alert can be done nice an easily with an invisible object with an on-touch trigger.

I think sneak ability is taking the game a little over complicated, after all, it's basically a blast-a-thon with a bit of puzzle solving. Laser trip wires are cool, just have an object at the side that you need to blow up first, this on-destory will delete a bunch of laser objects stemming from it. If you touch a laser object it triggers x,y and z.


Mark Tiffany(Posted 2004) [#90]
On the sneak thing, I'm not thinking it needs to be massively complicated. Just having the odd puzzle that can be gotten around either by a 'sneak' type of approach, OR all out assault. And not all sections of the game need to hold to that "two ways to do everything" approach, just some, as I think it adds to the feeling of being able to do things your way.

For example with the laser trip wire, you could provide objects to let the player either
1) just run it and set the alarm and blast loads of aliens
2) find the passcode and control device to turn it off
3) find access to the aliens hiding place (a grille in the wall) and gas them, then just run the laser trip wire with the aliens dead.
4) set up a mine in advance of the trip wire, then throw something at the tripwire, aliens come out and get slaughtered...

I'm not suggesting we have all those on a single tripwire, just putting forward ideas for alternative approaches that it'd be neat to allow (or even require?) on separate levels. All of this should be possible using objects / triggers as you say...


aab(Posted 2004) [#91]
Those ideas are pretty sweet!


Rob Farley(Posted 2004) [#92]
Just so you know... I'm about to go to bed!

However, been working on alien classes so we don't have to hard code them into the game. When the aliens are spawned a list is checked to see if it's gfx has been loaded yet, if it has it attaches itself to that image if not it loads the gfx and adds it to this list.
This means that if you have a level with only 2 types of alien in it only 2 alien gfx sets are loaded, ie It loads stuff as it needs it.

Anyway, the alien class thus far is:
; Alien Class outline

; gfx stuff
<gfxsize>64</gfxsize>
<gfxframes>128</gfxframes>

<health>10</health> ; start health of the alien
<fdelay>10</fdelay> ; speed of animation (higher is slower)
<frameTotal>8</frameTotal> ; The total number of frames in the animation
<speed>1</speed>   ; The speed the alien can move
<radius>20</radius>  ; The size of the alien
<offset>32</offset>  ; The pixel offset, ie a 64x64 sprite needs to offset 32 pixels to centre
<bloods>0</bloods> ; first particle to use as blood
<bloode>7</bloode> ; last particle to use as blood
<hurtsound></hurtsound> ; sound for when the alien is hurt
<deathsound></deathsound> ; sound for when the alien is killed
<canshoot>0</canshoot> ; if the alien can shoot
<bullettype>0</bullettype> ; bullet type if the alien is a shooter
<shootdelay>0</shootdelay> ; speed of shooting the higher the slower the shooting
<turnspeed></turnspeed> ; ** not yet implemented ** how fast the alien turns around

The turnspeed is a new one so the big aliens don't turn round as fast as the smaller ones... still got to code this lot in but it's getting there.


Rob Farley(Posted 2004) [#93]
Zips updated:

17-10-04 :
Rob:
- Aliens now have a class.txt file attached. All alien stats are loaded from this file, also aliens are only loaded if they get spawned. Changes to Alien.bb, engine.bb, and initialise.bb

15-10-04 :
Rims:
- Updated player.bb
- New HUD (gfx and code)
- Shakey cam
Rob:
- Players now get their stats from a their player.txt file
- Added readitem function to utils
Mark Incitti:
- Lil' bug fix on script



Rob Farley(Posted 2004) [#94]
Continued Here