Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411507 Posts in 69374 Topics- by 58429 Members - Latest Member: Alternalo

April 26, 2024, 03:45:52 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsGarbage Collector
Pages: 1 [2] 3
Print
Author Topic: Garbage Collector  (Read 17464 times)
Arne
The Pantymaster
Level 6
******



View Profile WWW
« Reply #20 on: December 23, 2009, 01:17:06 PM »

Like a moth drawn into the flame. Actually, in my book, finishing without feature creep is as much a failure as failing to finish because of feature creep. I wouldn't want to play a game which has no depth.

Hand Thumbs Up Left Luckily, my new solution is scalable. I've partitioned my universe/playfield to contain just a single solar system, which will work nicely for testing / making a game with a smaller scope. My camera now works (it was more complicated with buckets of different size). I've popped in my old debris ring generation system, and coupled it with a new solar system class (with instances), which keeps track of general solar system information. I have also made a sun color feature, which I use to color objects and backgrounds depending on distance to sun. Also, while moving the asteroids in orbits around the sun is out of the question at this point, I can move the planets (or rather calculate their position based on game timer) because they are so few. The solar system class would do this. Right now I don't have any planets though.

An instance of the solar system class could also keep track of instances of space stations, trading lists, and such, but I won't work on that, yet.

Now I have to integrate my old entities/debris/ships classes into my new huge universe class structure. Most of my old classes are somewhat independent / encapsulated, so I hope there won't be too much trouble.
Logged
Tanner
Level 10
*****


MMPHM *GULP*


View Profile WWW
« Reply #21 on: December 23, 2009, 10:11:40 PM »

oh man, i've missed the thumbs-up devlogs. this looks interesting arne! let's hope you finish this one. Wink
Logged

carnalizer
Level 0
*


View Profile
« Reply #22 on: December 24, 2009, 03:59:50 AM »

Agree with Tanner. I think you should have a personal brute to slap you around a bit for every unfinished project.

Actually I just registered here to ask (if you'd be so kind) if you can explain what you mean by bucket? I might be revealing the infinite depth of noobness here, but I'm curious to see if my guess is correct.

Cheers!/Henrik
Logged
Arne
The Pantymaster
Level 6
******



View Profile WWW
« Reply #23 on: December 24, 2009, 12:58:46 PM »

Re: Buckets

http://en.wikipedia.org/wiki/Bucket_array

Since I quad trees are a bit too much for me, I prefer doing simple 2D arrays of buckets. In this case though, I have made a tree structure of sorts. I just don't reevaluate its structure/resolution based on moving populations of game entities.



This is not the resolution I'll use. I have 128^2 sectors per solar system. I might make the rest of the universe really small until I get a game up and running. If I choose to make an Elite game later, I might do 256^2 solar systems per galaxy and 256^2 galaxies. I'd leave most of the space empty though, especially between galaxies. Empty space still gets a list for stray entities.

While I really only update the active (moving) entities, there are still memory and save file constraints so a hundred thousand entities might be my budget. It gives me 4 galaxies of 500 stars with 50 entities per solar system (not an even distribution - many solar systems will be almost empty and other will have dense asteroid fields). I don't think I'll be seed generating that much, because I like persistence. There might be a way to use seeds and then override certain things with changes made by the player (mining asteroids and such), but that's not something which I'd want to code now.


More thoughts on the Elite type setting
By putting the game 2.2 billion years in the future I can have some more fun with the setting (less luggage). Perhaps humans travelled to another galaxy in cryo stasis, or as seeds. Something went wrong and a lot of time passed. Or there are no humans.

I want the universe to be massively wasteful. Lots of red dwarfs, hot gas planets too close to their sun, barren waterice dwarf planets, black holes, in-between galaxies generation ship derelicts, a large population of Dyson spheres (technological singularities) which suggest that most civilizations end up like that quickly. This is why there are so few contemporary aliens. Maybe these Dyson spheres make up a part of the dark matter population, absorbing all radiation, making them invisible). 2.2 billion years into the future, there could be a lot of them. for some reason, the space faring guys now have rejected the idea of Dyson-sphering themselves.

I don't subscribe to the idea that everything should be easily available to the player once it has been put into the game. This makes a poor exploration game, because it feel depleted very soon. The sense of wonder works best if it's difficult to acquire the exotic things. Noctis is designed like this, afaik. Many of us might have memories of trying to find things in games which were really rare or not there at all. Now I'm older and know how the Zelda mazes were laid out (cleverly in that 32x32 something grid), but with this project I can create a universe where it will be difficult to map the entire thing.



Ship names
Now to the question of ship names (I'm at the point where I need to start coming up with data to fill my data structures with). Elite mostly used snake names. I'd like to use a theme too, but don't know which.

Weapons
Kinda cool, or 'cool'.
+ Mace
+ Halberd
+ Katana
+ Sai
+ Shuriken
+ Sabre
+ Glaive
+ Dagger
+ Bolt
+ Spear
...


Water creatures
Feels a bit too earth centric.
+ Toad
+ Turtle
+ Manatee
+ Hydra
+ Shark
+ Whale
+ Carp
+ Salamander
+ Piranha
...


Bugs (types)
Could perhaps be used as classification names for alien species as well.
+ Millipede
+ Ant
+ Mantis
+ Beetle
+ Flea
...


Anime characters
Breaks fourth wall in a silly/geeky way.
+ Aegis
+ Tron
+ Saber
...


Gods
+ Shiva
+ Yaweh
+ Zeus
+ Tor
+ Baalzabil
...


Astronomy names
While my game would take place far into the future, probably in a different galaxy, perhaps these names have survived.
+ Orion
+ Sirius
+ Vega
+ Betelgeuse
+ Mars
+ Venus
+ Jupiter
+ Draconis
+ Centauri
...


Nonsense or conjunctions
This is good because it makes it easier to google for the things in the game. Feels a bit silly though. But then again, I want to put skeletons into the game because they are awesome and especially so if piloting spaceships.
+ RayShark 3000
+ B-5 Eedlewoop
+ GaarSnork Plus
+ Aarbex T-90
+ Tri-Trex
+ Gerbavox mk.III
...





Aliens
I found an old text file with silly descriptions of aliens. Not sure if I'll use it, but I though I'd post it. The home world of an alien race could have special needs (trading lists), and the mixed worlds have the standard industrial/agriculture/entertainment (party world) thing going.

BIOTS
The Biots are organic machines. They don't say much, but seem to be friendly. One thing is sure however, they love to party with other species, and often invade in massive numbers. Because they get very exited and deliriously sprawl their long legs, it soon becomes too crowded and chaotic, and the others are forced to leave. This makes the Biots very sad since they hate to party alone.

KOPARS
The Kopars are shelled creatures who enjoy the ways of a strict militaristic society. Their 'superior' parties are very choreographed and ordered establishments (some would call them incredibly stale) where spontainious outbursts are a capital offense. The Kopars believe that throwing 'fun parties' will make them seem less stale, but the effect is often the opposite.

The Kopars wish for nothing more than complete and utter domination of the galaxy, forcing people to obide by their laws, and partying their way. Because of their small stature, slow reactions and failure to execute their plans, the Kopars are often a subject of ridicule.

HEN-TAI
The Hen-Tai are squid creatures that evolved in the ocean but were 'uplifted' by the CyberDolls by genetic manipulation. Disgusted by the decadent desires of their masters, they rose against them and fled to the planet they are now inhabiting. There they are free to enjoy philosophy, science and arts, and of course decent parties.

CYBERDOLLS
The CyberDolls love to party!

ROOTS
The Roots are a species so alien and so strange that it's hard to say anything about them, other that they like to party. At least, that's what it looks like they are doing because they are wearing party hats. When 'partying' they wave their stalks around in a manner so alien and so strange that only themselves and absolute experts on their species have a clue what's going on.

RUPIES
The Rupies are crystal beings, and an advanced and wise race, although somewhat patronizing and authorative. They look down on the ways of other species as 'childish', but when no one's looking they's secretly throwing parties themselves. 'The pond' is their favourite partygame. Each participant gets a rod with a string tied to it. The string is lowered behind a blue veil, where the hidden wise elder attaches a bag of candy to the string and yanks it.

GREYS
The Greys are a mysterious species that have been known to interfere with the natural progression of things. They even claim to have gone back in time to change the shape of the partyhat from cubic to conical, and this way they hope to be able to claim the partyhat patent (by prior art).

SKELETONS
The skeletons are creatures from another dimension. Their mad, grinning, yet empty expression, and 'garhgly hiss' can scare some party guests away. Because of their static facial expression, and stale body language, it's hard to tell whether the skellies are actually enjoying to party, or if they are there doing something else. When not scaring other guests away, the skellies are mostly left standing by themselves, as they are not particularly fun to interact with with their limited vocabulary.
« Last Edit: December 26, 2009, 12:14:39 PM by Arne » Logged
Epitaph64
Level 1
*



View Profile WWW
« Reply #24 on: December 24, 2009, 03:36:20 PM »

Sounds pretty awesome. I hope that you finish this, since I love games that you can play until you get bored without a drawn ending.
Logged

Arne
The Pantymaster
Level 6
******



View Profile WWW
« Reply #25 on: December 24, 2009, 05:28:27 PM »

I really need to research Elite a bit better. Frontier had some sort of ending, but I never even got near it. The first Elite game has a more interesting universe, but I have never managed to get into it. There was a novella too.

Updated image above with a Tribble and Thargoid, uh, I mean, Trybbol and Wargoid. The Thargoids are interesting. In Frontier there were none, so you just shot down a buttload of pirates. It felt a bit strange to blast so many valuable ships and not gain much of a reputation. Also, most of the ships were needlessly destroyed with not much cargo surviving. Thargoids live in the warp or something and you don't expect them to drop loot or such in the same way as with pirates.

I think it would be interesting to have a mechanic where defeated ships just don't vanish. They could be crippled easily but take more effort to fully destroy. A crippled ship could be touched (docked with), allowing the player to transfer cargo and equipment (Shield units, engines, the works). Maybe the hulls aren't all that valuable, and can broken up or compacted into a cube (like cars are on a junk heap). I already have a piece of code which deals with compacting space junk (all of my entities already know their mass, density, volume, value, gibs and other such details). Since my simulation is persistent, old debris would stay put, unless someone else picks stuff up that is.

Tomorrow I think I'm finally gonna tackle the art, so I can replace those dots and circles.
Logged
mokesmoe
Level 10
*****



View Profile WWW
« Reply #26 on: December 25, 2009, 12:09:54 AM »

Wouldn't a destroyed spaceship just be debris? I do think that raiding stuff from a crippled ship is a good idea though. "See that powerful ship over there? If you can stop it without destroying it, you can take all their cool stuff."
I think you should have to do something special to just cripple it though, not just some dame to cripple then some more to destroy. You should have to shoot out their engines or use a tractor beam to board them. Having a little minigame where you have to kill the rest of the crew would make sense too, but you wouldn't have to make this too complicated.
Logged
Arne
The Pantymaster
Level 6
******



View Profile WWW
« Reply #27 on: December 25, 2009, 07:23:55 AM »

There are plenty of reasons, some personal, why I wouldn't like to see enemy ships explode into tiny chunks or nothing at all.

 Hand Shake Right Because I work with 2D, I now have an engine which can handle the persistence. I want to do something other games can't or won't. I have a large universe so the screen cluttering up with corpses is not a concern.

 Hand Shake Right It bugs me when stuff just explodes and goes off frame in movies. It cheapens the effect of a real explosion, diluting its awe. In games it's worse because everything explodes as soon as the HP bar reaches zero. Even Zelda enemies.

 Hand Shake Right The force needed to shred an entire vehicle into medium sized gibs is quite high and probably overkill. Why would a pirate want to use such force anyways, when the target is more valuable intact? Sure, captains without self preservation could have self destruct things aboard to deter pirates, but pirates could deter the use of those by blowing up the ships out of spite.

On top of that, there could be 'nice' pirates who simply disable trader ships and steal certain goods. Traders could repair their ships or call for help, and return another day to be robbed. Perhaps more valuable to the pirates that way. Other pirates (with larger ships) could be more ruthless, disabling ships, stripping them bare, then compacting the hull and take that too, leaving nothing. Threat of violence could work too. Stop and prepare to be boarded, or face destruction. If the pirate ship looks really powerful, then surrendering could be a reasonable compromise.

This way, pirates could be more than guys with no humanity who fly around, blowing stuff up, earning next to nothing.

 Hand Shake Right Seeing a stack of corpses gives me a sense of achievement. A score counter only has one dimension.

 Hand Shake Right A graveyard of slain enemies creates a visual reminder of the history, and land marks to navigate after. I don't like playing an FPS, running around a bunch of corridors, then not quite remembering where I have been because all the corpses have magically disappeared. It takes away from the immersion.

 Hand Shake Right Disabled ships gives rise to emergent economies, such as vultures/scavengers.

 Hand Shake Right It bugs me to see expensive vehicles be used as space invaders type enemies which are just thrown at the player to create some kind of game'y resistance. In Elite you destroy thousands of very expensive pirate ships and can barely afford one yourself.

It would be difficult to make an engine where you can target different parts of the ship, since some parts are internal and you can't really aim that well anyway... you're lucky if you hit the enemy at all. It would be easy to check if a ship was hit within a certain 'pie' angle though, e.g. the butt/engines. I don't want to write AI for that though, and I think it's a bit too Boolean and game'y.

An EMP device could be used to disable ships, perhaps, or you just put a bullet through it once the shields are down. There are many ways for a car to break down.

Ships in Elite has both Shield and Hull health. Both can be repaired in mid flight. On top of that the equipment aboard the ship can be damaged (including the engines).

Anyways, those are my personal prefs on the subject of exploding things in games.

I've seen most episodes of SG-1 (and all movies). Bit of a Sci-Fi nerd I am. Can't say I made the connection though. SG-1 is more of an X-Com deal, I think. Took them a decade to out-tech the aliens. X-Com was faster though.
« Last Edit: December 25, 2009, 07:55:46 AM by Arne » Logged
Massena
Level 4
****


Satisfied.


View Profile
« Reply #28 on: December 25, 2009, 12:24:01 PM »

Finishing without feature creep is as much a failure as failing to finish because of feature creep. I wouldn't want to play a game which has no depth.


Those are the words great games are made from.
You are an eloquent and wise game developer.

CARRY ON
Logged

carnalizer
Level 0
*


View Profile
« Reply #29 on: December 25, 2009, 03:08:31 PM »

Thx for the link! Love the sketches as usual. Keep it up! There are way too few 2d space games out there.
Logged
Hempuliā€½
Level 10
*****


Sweet potatoes.


View Profile WWW
« Reply #30 on: December 26, 2009, 03:03:19 AM »

There are way too few 2d space games out there.

Let's not say that. Let's say, There are way too few 2d free-to-roam space games out there or something. Smiley
Logged

Arne
The Pantymaster
Level 6
******



View Profile WWW
« Reply #31 on: December 26, 2009, 11:03:26 AM »

I don't know what I'm doing anymore. Elite has a Novella, so I decided to write something too, despite not being able to write.

---

A large orbital station exits the shadow of the planet Nox-3. The warm light of Nox, a G class sun, picks out the details of the hexagonal space station, and its name, "Bebeba".

The sun light filters through one of Bebeba's many view ports, but doesn't light up the cargo hold inside much, artificially lit as it already it is. Two eyes, human in appearance, takes brief notice of the sunrise.

Zadri, a female humanoid cyborg, sits on top of one of one of the many large crates littering the room, dangling her legs. She is the captain of the cargo ship the Vectrex Pride, a flat polygonal ship which stands 20 meter away on a large airlock hatch.

The exterior of the ship bears a single large scar from a 25mm pulse gun. The hit caused spalling, which destroyed the radar box of the ship. Zadri is a skilled pilot, but even her skills doesn't make up for flying blind in this region of space. Fortunately, Nox is one of the better systems around here to stop for repairs. A large population of Biots, skilled micro mechanicians, inhabit this system. Something which looks like their tongues, but probably isn't, can branch into a tree structure, allowing them to manipulate very small objects. Other than that, the Biots are pretty much just a head with legs.

Half bored, Zadri watches half a dozen Biots take no notice of the "maneuver carefully" warning stripes on the hangar floor, as they busily skitter around on their long and seemingly ungainly legs. Their absurd tripod-like construction had probably been perfect for the task which they had been made for, but no one can even guess what that task could have been. The Biots are the sole surviving remnants of the Failed Dyson Sphere.

Most of the remaining intelligent life forms are like the Biots in a way, Zadri reflects.

Remnants of something.

Without purpose.

Kind of weird.

Perhaps this is what was stopping them from "Dyson-Sphering", unlike most of the naturally evolved species which do it soon after reaching the technological plateau.

Her own mother species, the Homo Sapiens, had constructed the technological singularity (which universally leads to the construction of a Dyson Sphere) mere centuries after going nuclear. Before doing so however, they had, like many other species afraid of "keeping all of the eggs on one basket", sent out ships to colonize the stars. Still, ultimately the solution seems to be to put all the eggs in a single very safe and very large basket.   

Zadri never quite knew what to say when people asked about her age. Half a century ago, the Biots had found an ancient "seed ship" at the outskirts of this galaxy. Based on its trajectory and velocity, it was estimated that it had been traveling for 2.2 billion years. The databanks onboard seemed to confirm it.

It had been an advanced ship, and its dissection had yielded many discoveries, Zadri and her kind being one of them.

They were never meant to be fully human, just some sort of durable, barely intelligent scout. The real payload of the ship, the real human seed, had been lost forever in some incident long ago. Some theorize that the humans themselves wiped the seed remotely, right before entering their technological singularity.

Zadri had never liked the label on her kind - "CyberDoll", but apparently the name had come from an entry in the seed ship database. The first CyberDolls which were grown behaved more like non-sentient robots. Turning on autonomy had been easy, once you knew where to look. It was the meddling Greys who had figured where. Other members of the Milieu, such as the Crystalline Rupies and Testudine Kopars wish that they hadn't.

The new, autonomous CyberDolls are considered... eccentric, some would say completely decadent and nonproductive. Still, the CyberDolls are now members of the Milieu, and it's not like the other members aren't eccentric either.

The Biot which had just fallen in front of her was a confirmation of this idea, as it lay there looking silly with its legs sprawling wildly in the air. It reminded her of how the Biots had crashed and ruined her 30th activation party a few years ago.

Yadri wondered if the Failed Dyson Sphere have had some kind of system which specialized in erecting fallen Biots. Actually, the Biots could get up on their own - they just weren't very good at it.

The flex-metal soles of her shoes made an audible clang as she dropped down onto the hangar bay floor.

The flailing long striped legs of the Biot irritatedly got in her face right before she helped it up. Once upright, the Biot responded by curiously blinking twice with it's 3 large eyes before scurrying away across the floor, without saying thanks. It's not like it could anyways. The Biots had their own language of... hollow mechanical clucking sounds, and this particular Biot didn't have a translator.

A group of Biots stood frozen by her ship, studying her briefly before before suddenly moving off in unison. Looks like the repairs were finished. She didn't have enough credits to repair the hull yet. As if caressing, she moves her hand across the surface of the crate she had been guarding, and thinks out loud.

"You're gonna make me rich".

---

Might not be continued.

Edit: Pinup, rough.
« Last Edit: December 26, 2009, 11:58:53 AM by Arne » Logged
Arne
The Pantymaster
Level 6
******



View Profile WWW
« Reply #32 on: December 26, 2009, 12:42:12 PM »

I've updated these images on the previous page. Nudging aliens around. Made the skeleton space suit worn brown because it's more earth colored, and it allowed me to use the standard metal color. Teal+brass felt out of place.






The ships will basically just be line art with color and top down light. Sparky and I discussed the idea of blending a few images with different light to produce in between light angles. I do have the shadows (light) separate in a layer when I paint, but it seems like too much work for not much, and it might not even look that good anyways. Specular points wouldn't look right for one.

A simple line art+color + simple flat shade might produce a feel similar to that of the Amiga Elite, which looked gorgeous. I wasn't a fan of the textured versions of the Elite. People who do remakes of the models tend to greeble up the ships too much too. I like how they are polygonal, pretty smooth, ufo shaped with cut off butt where the engine holes go. It seems efficient. Elite ships are just hulls which you fill with stuff. Most other sci-fi's have spaceships which are weirdly shaped masses of nonsense greeble, or are some kind of elaborate masturbation of spline line design.



Above: delicious planetary bodies from Elite II Frontier. Simple flat colors, a single shadow color. Very graphical.



Paper models from another abandoned project of mine. The scales of the ships were quite off, so they didn't look nice next to each other. I rescaled them according to their volume, but it felt like I wasn't faithful. For this project I'll probably use model clay to estimate internal volume for my ships. It bothers me when these kind of values are off.

Ship ref sheet, Frontier.

Some versions of Elite had a nice clean interface. I've never been a fan of buttons and frames which look like computer chips / greeble. Well, I did at one point but I was... young. Here are some screenshots from the Spectrum version apparently. I've never played it. Not the best font though.



Some more ref: a Jumbo jet simulator of some sort. I saved it because it looked nice.



---

I've also been thinking some about art assets which I need to do. Made a big list. Maybe that was a mistake, because now it looks like a lot. Still, doable before new year, in a parallel universe where I actually work.
« Last Edit: December 26, 2009, 12:45:42 PM by Arne » Logged
MaloEspada
Guest
« Reply #33 on: December 26, 2009, 12:44:09 PM »

New America?  Undecided
Logged
Arne
The Pantymaster
Level 6
******



View Profile WWW
« Reply #34 on: December 28, 2009, 06:49:59 PM »

 Hand Thumbs Down Left My plans in ruin!  Crazy

It seems BlitzMax can only Shl and Shr signed integers (4 bytes). I have used Long (8 byte) and need that space. This means none of my present code is going to work for the universe size I'm doing. The solution is to find an alternative Shl/Shr that works with 8 bytes, use the slower * or / math, or somehow program a coordinate system with relative 0,0 coordinates for each sector.  Angry
Logged
Arne
The Pantymaster
Level 6
******



View Profile WWW
« Reply #35 on: December 28, 2009, 07:35:01 PM »

Hand Thumbs Up Left Solution on horizon. Seems that I need to explicitly say that I want a Long returned.

1 Shl 33

assumes I want a signed int (4 bytes) back

Long(1) Shl 33

gives me the proper 8 byte number back.

Corny Laugh
Logged
Alehkhs
TIGSource Editor
Level 0
******


...why not?


View Profile WWW
« Reply #36 on: December 28, 2009, 11:46:26 PM »

Give me my Elite-like!!!!


Logged
carnalizer
Level 0
*


View Profile
« Reply #37 on: December 29, 2009, 02:18:57 AM »


Let's not say that. Let's say, There are way too few 2d free-to-roam space games out there or something. Smiley

Of course, but I feel that is implied. Schmups and other twitch deviants are not really space games are they? Smiley

Yes, give me my elite-like now! :D
I wish I knew a way to help out. Sadly I'm a worse writer, musician, artist and coder than the pantymaster.
Logged
Arne
The Pantymaster
Level 6
******



View Profile WWW
« Reply #38 on: December 29, 2009, 11:14:29 AM »

 Hand Thumbs Down Right This is getting rather annoying. I'm thinking that I need to switch language. BlitzMax doesn't give you enough... variable declaration control. The floating point stuff in inaccurate, and all of these prints out 705032704.

Print 5000000000
Print Long(5000000000) '// Long = 8 bytes signed
Local fiveb:Long = 5000000000
Print fiveb

I have constants which I can use to inflate the universe (everything scales), but when I go over (signed) 32 bit, well, some stuff doesn't and it's difficult for me to check what.
Logged
Loren Schmidt
Level 10
*****



View Profile WWW
« Reply #39 on: January 06, 2010, 04:48:14 PM »

I hope everything's still going well, I really like the look of this project.
Logged
Pages: 1 [2] 3
Print
Jump to:  

Theme orange-lt created by panic