• Register

Shallow Space is a 3D Real Time Strategy game inspired by Nexus: The Jupiter incident and Homeworld. Shallow Space focuses on organised mass RTS space combat in a fully 3D environment. Ships in Shallow Space are nearly always grouped into Flotillas and Wings, and orders issued to these structures cascade to the subordinate members. Rather than stressing out clicking on the units or dragging selection boxes during the heat of battle, standing orders are issued in advance leaving you to zoom around, activating abilities and arranging support and reinforcements. Should the tide turn in battle traditional control is still available.

Post news Report RSS The Child in Me

So over the last ten days I've started down the journey of procedural generation, as well as giving the sectors and furniture a more natural feel its a blatant short-cut for me in that I can set a few parameters, hit play and marvel at the complete uniqueness...

Posted by on

Slightly longer since my last update this time, but no less busy here I assure you. My closet friend sat me down the other day and said to me 'do you think you're perhaps working a little hard?' He might be right but I can't help it, I'm onto something here I can feel it and I'll be a lot more comfortable when there's something out there gathering me a response. Until then I said to him; I'll work my poor fingers down to stumps if I have to.

So over the last ten days I've started down the journey of procedural generation, as well as giving the sectors and furniture a more natural feel its a blatant short-cut for me in that I can set a few parameters, hit play and marvel at the complete uniqueness, of course it also means that everyone gets to enjoy a fresh experience everytime they boot up the game - win win all round.

Of course the child in me thought, oh my look at what I've created and then proceeded to create a 1000km x 1000km x 500km sector and fill it full of proc gen goodness, the result? 9 fps - hmmmm I thought and went up stairs with USB drive in hand, I loaded the game onto my gaming PC and hit play and the result? 7 fps.... oh dear I thought to myself. So I did some deep profiling and made some important discoveries, firstly: You could run the game (in that state) on a GMA4000 graphics card but if you haven't got a high end processor you likely aren't going to get far and secondly; there can be absolutely no room for bad code.

Its not all my fault, Unity doesn't yet support multi-threading which I think might help a bit, I'll be sure to snap that up when Unity 5 arrives later this year. So anyways I went back to the code, scoured it removing unnecessary loops, added references in place of costly built-in functions and the result? A whopping 45% improvement in performance. More than that I did some deep refactoring so now all ships now share the same base code so the enemy can use things normally reserved for the player like Orbit for example and i've also coded in the faction mechanics in that I can now change the level of hostility.

A cheap trick to capture your attention ;)

There is only so much I can do to optimise the engine and i'm going to have to get smarter still about delivering the impressive visuals, sure it's nice to have all the projectiles and asteroids driven by actual physics but there might have to be less of them. The more ships on screen the more the load increases, almost exponentially in fact, so expect the weapons to change as development progresses.

Other than that it's all good, I have to manage your expectations regarding fleet sizes because some people are getting very excited but fear not, my MacBook Pro i7 with ATI 4750M (1Gb DDR5) is still pushing 60FPS at just below medium settings with 50-60 ships on screen and over 350 physics governed asteroids and I haven't reached the end of the book of tricks yet.

Since writing this further optimisations have proved fruitful, wiping out much of the issues with CPU hogging and increasing the scalability much past my indications. Very exciting stuff indeed, to give you an idea: after more performance tweaks I expect that confusion will be the only real limitation of scale.

So more revolutionary progress over the last couple of weeks, as its starting to actually look like a game I'm going to turn up the marketing. I've got together with the guys and decided that it's probably best to wait until after E3 now to crowdfund (for obvious reasons) but in the next couple of weeks the first closed alpha will begin (codenamed: Archer,) with it being pushed to the public some weeks after that.

In other news: If you haven't seen it already you must watch the promo vid below because it's sexy, Brian over at Space Game Junkie has put up a Q&A you might find interesting, Sam over on Britgaming has started eluding to the plot, quite exciting and on the subject of the plot; Aaron has come back with some excellent concept art over on the backstory page.

You can really help us out here, see the sharing links on the side of the page? Please use them - we're not a huge games house with limitless resources, we are but 1 lad with a good idea (and fast fingers) and 2 other lads running to catch-up, we need your help to spread the word.

Thanks for reading,

James

Post comment Comments
Xankar
Xankar - - 37 comments

"50-60 ships on screen and over 350 physics governed asteroids"

That's alot of ships; is there going to be a fleet size limit or are the fleets going to be going into the hundreds maybe thousands of ships?

Reply Good karma Bad karma+2 votes
mawhrin-skel Author
mawhrin-skel - - 522 comments

Naaah most PC's will croak at around a 100 ships at the minute with so much going on, collision avoidance, turret tracking, turret limiting, target allocation, distance scanning, movement mathematics, physics - all this stuff together thrashes the processor. Turrets are the expensive, i'm going to be looking at maybe reducing or ditching them on the small ships.

50-60 ships isn't a lot btw, the player will have up to 25-30 ships (excluding wings) there are 6 factions each with say 2-3 packs flying round (5 craft on average) plus support craft so it's be around 140 in area. The PC's really struggle when the sectors are in a state of total war although again I have a few tricks up my sleeve yet.

Reply Good karma+1 vote
pavlosG
pavlosG - - 9 comments

we have the same issue in our game, although we haven't that many ships around: the programmer our our projects says that the turrets are the main CPU hogs :)

An idea: perhaps you can group turrets' targeting, tracking and stuff with a fire director station thing.
See, on ww1-ww2 ships, there were 1-2 fire control stations that took care of groups of turrets: they did the range, movement (etc) calculations and then fed the coordinates to the turrets. Why don't you do the same ? At long range, the angles delta should be minimal, and perhaps you can save some CPU.
Fire directors can also act as filter or priority setters.

Ditching turrets will complicate movement I am afraid: you will then have to mix absolute movement, targeting, cooldown time etc... (how do I prioritize firing/ targeting over pure movement?)... With turrets you can both move AND fire.

Reply Good karma Bad karma+1 vote
mawhrin-skel Author
mawhrin-skel - - 522 comments

Good to know i'm not alone, I tell you what worked for me dude - limit the targeting on the update cycle so that it only runs every 1-2 seconds - this gives the CPU enough time to process the backlog and drastically increases performance, also use a singleton collection to enumerate potential targets rather than using something hideous like 'FindObjectsWithTag'

Your suggestion would work, but in my game the player doesn't really have direct control over which enemy ships are targeted. This is because the way I see it in space, with 3 dimensions of movement, the tactical stations would fire on any and all targets of opportunity with little input from the captain to maximise their fire potential - this sort of realism i'm folding in as standard.

Complicate movement? Not so in my case chum, but then i've already accounted for fixed position weapons in my movement routines, I just haven't added them in yet. :P

Reply Good karma+1 vote
mawhrin-skel Author
mawhrin-skel - - 522 comments

It's worth adding to paragraph 2 that the fighters and bombers are my players main method of delivering assured damage in busy situations. There will be far too much going on to expect the player to assign targets to each of the bigger ships otherwise...

Reply Good karma+1 vote
pavlosG
pavlosG - - 9 comments

you damn renegade, you thought of everything :)

Reply Good karma Bad karma+1 vote
pavlosG
pavlosG - - 9 comments

Are you going to use some kind of formations in the game ?

Reply Good karma Bad karma+1 vote
mawhrin-skel Author
mawhrin-skel - - 522 comments

I've played all of these games over the years - I had resigned to my career choice but then when X-Stillbirth came out I thought sod this, it's all going to ****.

Anyways absolutely, formations are cool! The basics of which are again already in. Also going to be doing division formations, so when the enemy wants to attack a space station he isn't going to float up there with a single pack and get popped - instead he'll shout out to his chums who will make a formation including several packs who themselves are already in formation.

Complicated to explain, but its going to look bloody cool on-screen - again I already have the basics of that working, but i'm holding back as i'm continually combing for bugs. That mechanic won't make in into Alpha 1 (Archer)

Reply Good karma+1 vote
imphenzia
imphenzia - - 1 comments

"My closet friend sat me down the other day and said to me 'do you think you're perhaps working a little hard?'"

I'm jelous your friend used the word "work" as opposed to my friend refering to my game development as "wasting time" :) Game looks great! Keep it up =)

Reply Good karma Bad karma+1 vote
mawhrin-skel Author
mawhrin-skel - - 522 comments

Cheers, yeah he also thinks its a waste of time btw, but I don't think that would have read as well! Is there money in game development now I don't know, I know i'm going to keep my options open but hopefully we'll both prove our mates wrong!

Reply Good karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: