Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411423 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 19, 2024, 02:02:25 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsSuper Battlelands [TBS]
Pages: [1] 2 3 ... 12
Print
Author Topic: Super Battlelands [TBS]  (Read 34313 times)
danieru
Level 2
**



View Profile WWW
« on: June 24, 2014, 07:42:39 PM »

Latest screenshot:



---------------------------------------------

Super Battlelands! is a turn-based strategy game featuring city capturing, unit building, and tactical battles. All wrapped in a pixelart-like-3d package.

The game will feature 13 units, a 10+ map campaign, and stand-alone skirmish maps. I am planning to release it for Windows and Linux sometime in late 2015.

If you've ever played Advance Wars or Famicom Wars you should find yourself right at home with Super Battlelands.

---------------------------------------------

Stay updated!
Every week I send out an email updating everyone on our progress! If you're interested in receiving these updates please do subscribe!

---------------------------------------------
Images!







---------------------------------------------

Past email updates:

---------------------------------------------

FAQ!
Superbattlelands.com now has a large FAQ!

---------------------------------------------

Units!
---------------------------------------------




« Last Edit: February 07, 2016, 08:23:57 AM by danieru » Logged

danieru
Level 2
**



View Profile WWW
« Reply #1 on: June 25, 2014, 05:48:33 PM »

ORIGINAL 1ST POST


Express Wars (no idea if title is final) is my attempt to recapture what I loved about Advance Wars as a kid. I loved  building a strategy and playing through to dominate the AI.

Map Overview



More game-like level of zoom


Credit for the art style goes wholly to the generous Kenney (http://www.kenney.nl/). The placeholder 3d models are courtesy of Sketchup's 3d Warehouse.

ORIGINAL 2ND POST

A few days ago I implemented a basic animation system. The intersting aspect of express wars' architecture is that the subsystems share no runtime data, all data passing occurs through deferred function calls.

The deferred architecture was designed with animating in mind. All the animator needs to do is intercept the "unit_move" calls that would otherwise go to the renderer. Then every frame the animator builds a partial "unit_move" call to renderer. Meanwhile the game logic is none the wiser that renderer has a delayed understanding of the state.

First here is what animations are supposed to look like:
http://a.pomf.se/jodvav.webm


And this is what happens if you make the animator animate unit moves slower than logic is moving units:
http://a.pomf.se/oflkjw.webm

If you look close you can see units being killed despite not being next to their attacker. As well units are sliding as if on ice. All because animations are playing at half the simulation speed.
« Last Edit: July 14, 2014, 04:26:33 PM by danieru » Logged

Lycaon
Guest
« Reply #2 on: June 25, 2014, 05:52:49 PM »

Oh man, Advance Wars is fantastic. Excited to see where this goes :D
Logged
danieru
Level 2
**



View Profile WWW
« Reply #3 on: June 26, 2014, 05:54:33 PM »

Thanks Lycaon! I'm glad to hear others remember AW fondly.

Today I played around optimizing the draw calls. Before today all terrain tiles were separate vertex buffers, which I thought would help since tiles of the same type would share a vertex buffer. Instead merging all the geometry into one vertex buffer cut the rendering time in half.

Now Express Wars runs at 60fps on my Nexus 5. This is despite running at 4k downscaled to 1080p, on a phone!


Don't worry about the text size bugs. The health text works by rendering to a canvas which gets exported as a texture. This breaks on mobile browsers because 16px text is not true 16px, everything is scaled by the PPI on mobile.
Logged

MAVW
Level 0
***



View Profile WWW
« Reply #4 on: June 26, 2014, 06:43:09 PM »

This art style is very appealing, looks like a board game with plastic little pieces. I don't know if you're going to keep it but you should consider Smiley
Logged

danieru
Level 2
**



View Profile WWW
« Reply #5 on: June 26, 2014, 10:04:38 PM »

Thanks MAVW, in fact there is good news on the art style front.

Today Uberren partnered with me to handle Express Wars' visuals. Uberren is a brilliant low-poly 3d artist active on the polycount forums, who happens to also love Advance Wars.

So we can expect the art style to change for the better  Beer!

Uberren has a beautiful 3d pixel art style and I encourage everyone to give to give his thread at polycount a look: http://www.polycount.com/forum/showthread.php?t=124847
Logged

danieru
Level 2
**



View Profile WWW
« Reply #6 on: June 27, 2014, 04:22:43 PM »

Added option for synchronous animations. Now units can move one by one.

Logged

MAVW
Level 0
***



View Profile WWW
« Reply #7 on: June 27, 2014, 04:35:00 PM »

I think I've seen his 3D models somewhere, really fond of this low-poly-pixel-3d thingy the kidz do these days  Wizard
I haven't really played Advence wars but I do like turn-based
Looks like a good start already, keep it up Smiley
Logged

danieru
Level 2
**



View Profile WWW
« Reply #8 on: June 28, 2014, 08:43:04 PM »

Testing battle scene animation system. Not final animations  Smiley

« Last Edit: June 28, 2014, 09:00:55 PM by danieru » Logged

danieru
Level 2
**



View Profile WWW
« Reply #9 on: June 29, 2014, 07:32:31 PM »

Uberren created six ( Coffee ) fantastic tree models, with matching textures. So my job now is to build us an art import pipeline. This is where I envy the Unity with their fancy asset bundles. To keep our draw calls reasonable I need to merge the textures and rewrite models' UVs.

Today we get primitive texture importing. Since they had no UVs the procedural generated models needed fake ones.


Here is what happens when the fake UVs point to real parts of the texture. I like how saturated it looks. In contrast the existing terrain colors look drab.


The solution above was to stick the UVs outside of the textures (which would otherwise cause them to wrap) and checking for this in the shader. Long term when all terrain has a texture this won't be necessary but it works well during the migration.
« Last Edit: July 03, 2014, 08:50:59 PM by danieru » Logged

danieru
Level 2
**



View Profile WWW
« Reply #10 on: July 03, 2014, 09:05:50 PM »

I hope no one minds but these screenshots are a few days old. With Uberren on the team the I cannot help but work harder to match his enthusiasm. He almost has the terrain all redone! I'll show off his revamp once he gives the ok. For now please enjoy these morsels.

Testing terrain scaling
Still running at 240FPS with 40,000 tiles. The magic of drawing all tiles with one draw call. Even still most of our overhead is draw calls. If I can merge the units into a single draw call we should be even faster! This should be possible if we abuse the vertex colors and communicate all unit movement through a texture. Then the vertex shader can perform the actual movements GPU side.



Debuging a UV remapping bug
Bug turned out to be that THREE.JS reused the UV objects which caused us to re-apply the translation a second time.
Logged

danieru
Level 2
**



View Profile WWW
« Reply #11 on: July 14, 2014, 05:48:07 PM »

Wow, Uberren is productive. I'm having a hard time keeping up with him Shrug I'll get one of his things in game, start work on a new feature, and he'll have another thing ready!

By Friday last week Uberren had replaced all of my programmer terrain art and the game's style began to show through. Now by this point I was worried Express Wars was just too similar to Advance Wars. So I asked Uberren if he had any good names in mind Blink  which he did not.   Beg

Saturday night we sat down and after 3 hours we had ourselves a game and company name. Now we're Super Enjoy Games and our game is Super Battlelands. Smiley

Sunday I throw together placeholder sites at http://superbattlelands.com and http://superenjoygames.com.

So in three weeks what has changed? I'm likely to forget a bunch but of what I remember:
  • Players can now move their units
  • A unit's moveable area is now shown
  • Removed the procedural terrain models
  • Rewrote the random map generator
  • Bunch of optimizations, draw calls are even cheaper
  • Rewrote the user input to be real time and not framerate locked
  • Rewrote the animation system to not be framerate locked
  • Fixed mipmaps blurring faraway texture tiles
  • Removed the grid lines
  • Refactored the simulation state management into a shared class
  • Added new HUD
  • Made HUD change with active team
  • Picked country names: Azure Isles, Lavender Lands, Rose Republic, and Lumos Alliance.
  • Texture Atlas support, including remapping UVs

So here is what we have as of right now:
« Last Edit: July 14, 2014, 05:58:32 PM by danieru » Logged

danieru
Level 2
**



View Profile WWW
« Reply #12 on: July 16, 2014, 10:32:11 PM »

Got Uberren's tank ingame:
Logged

danieru
Level 2
**



View Profile WWW
« Reply #13 on: July 18, 2014, 02:56:17 PM »

Fixed how the engine handles orientations, took more work than I wish to admit.  Screamy

Made the overlay show friendly units and show attacks within range.



Uberren decided to redesign the Azure Isles style for a scalloped look:

« Last Edit: July 20, 2014, 02:49:00 PM by danieru » Logged

danieru
Level 2
**



View Profile WWW
« Reply #14 on: July 21, 2014, 11:05:17 AM »

This week we added a few big features. Both map importation and player controls now exist in some basic form.

We also noticed that people were interested in our game but found following the tigsource thread was inconvenient. So we setup a newsletter people can subscribe to on our website (http://superbattlelands.com/). Our plan is to send out weekly updates (like this week's: http://eepurl.com/ZqbXn) so we don't lose fan's attention during development.

Photo time!

Current in-game


Our map creation pipeline in Tiled


When generating random maps we needed lots of code to handle orienting roads, rivers, and shipyards. I was able to reuse this existing code with map importation. This way the map maker does not need to rotate roads or buildings. It should also make any in-game map creator easier to use.

Current unit asset line-up


Possible faces, we decided to use #5


Done this week:
- Created newsletter
- Added newsletter signup form to superbattlelands.com
- Rewrote texture atlas handling to support multiple atlases
- Added unit texture atlas
- Added tank model with 4 team specific textures
- Fixed flipped mapping of arrow keys to map positions
- Made movement overlay show friendly units that can be moved through
- Made overlay show units within attack range
- Added fighter model with 4 team specific textures
- Made partial map creation tileset
- Added basic map importation
Logged

poe
Guest
« Reply #15 on: July 21, 2014, 05:48:41 PM »

The art looks fantastic! Really looking forward to seeing this one finished.
Logged
danieru
Level 2
**



View Profile WWW
« Reply #16 on: July 21, 2014, 09:04:39 PM »

The art looks fantastic! Really looking forward to seeing this one finished.

Thanks Poe!

Would you be willing to tell me what you think of this HUD? Is it easy to understand at a glance?



Logged

danieru
Level 2
**



View Profile WWW
« Reply #17 on: July 28, 2014, 10:32:40 AM »

This week I added proper path finding with Dijkstra's algorithm. I had read one other developer hit performance troubles with their Dijkstra implementation so I was worried. In the end performance was not a problem. I tested pathing on a 200x200 map and we had near instant path generation across the entire map. All despite being 100% javascript.

I also tried my hand at making a shader-based wavy capture animation:

The wavy animation is just sin(pixel's height + time) with adjusted period and depth.


Code talk:
The central game-logic enforcer also saw a minor rewrite to now use the same simulation core as the Ai and Human players. I'll likely make rendering also use the simulation core just to keep code duplication to a minimum.

I suppose I haven't talked about the corebases's architecture. A short explanation is that all sub-systems talk to each other through event-like function-call objects placed on a stack. For example if the game-logic manager wants AI to perform their turn it will put a "plan_turn" object on the stack, then game-logic will return. The main game loop will check what is at the stack's top and call who ever the object is addressed to. So in our example once game-logic returns the main loop will call the AI and pass the object as an argument.

The entire scheme is modeled like a giant recursive program, just without the inevitable stack overflow.

The biggest benefit of this scheme is a sub-sytem like animation can control when to render a frame. A more traditional setup would have a fixed order to every sub-system including rendering. Instead our system works well because we're modeling a turn-based gameflow.

Anyway because every system is decoupled they cannot share knowledge of the game state. Thus each major subsystem must maintain its own simulation state. Beforehand a few systems had their own code for maintaining state but I'm trying to unify this code.

Art Talk:

Uberren completed the infantry:



For the infantry we splurged and gave each team unique models. Regular units will just get unique textures.


The game now looks like:

Logged

danieru
Level 2
**



View Profile WWW
« Reply #18 on: August 04, 2014, 07:37:01 PM »

This week I implemented support for city capturing in the simulation core. Still no game logic attached but that's next week's task.


Meanwhile Uberren completed lots of art so I'll just steal his polycount post:

---------

Hi all, This is Uberren

I managed to do quite a lot this week.

I made some coat of arms / ensigns for each of the countries of the game:

Azure Isles



Lumos Alliance



Lavender Lands



Rose Republic


I also finished my favourite looking unit so far:

Battleships


Along with the heavy tanks:

Logged

Savick
Guest
« Reply #19 on: August 04, 2014, 07:51:05 PM »

For the HUD you shouldn't use light yellow on white for lack of readability/clarity.

You've got some nice looking models and I really like those banner logos.
« Last Edit: August 04, 2014, 08:13:52 PM by Savick » Logged
Pages: [1] 2 3 ... 12
Print
Jump to:  

Theme orange-lt created by panic