Conflict 3049 - new game available - in active development

Started by Matty, January 28, 2025, 10:59:25

Previous topic - Next topic

Derron

Glad we do not have a syntaxbomb-RTS-competition running ... you develop the game too fast (competition game states can be more "raw" than a polished release version).



@ late game progress
Adding research (or "skill trees") etc will require a lot of "balancing out" time.
But yeah, research and maybe "experience / veteran ranks" will add a bit of more game play depth.


@ late game "tank traps"
What I mean is: if you had a rather "flat" ground then units will be more easier to "spot" (for you as player!) but the more "walkable" ground foliage you add the more "covered" the units will be.


bye
Ron

Matty

Hello Naughty, no idea about the heightmap resolution - I don't use a heightmap and I don't think Raylib has support for things like that 'out of the box' - you have to build it yourself.

At Derron - the way I'm doing 'research' is it simply progresses over time from the start of the mission at various rates...so for example after 60 seconds you'll have research 'x', and so on...in terms of balancing - I've already built in difficulty levels in the options page, I plan to allow the user to specify things like 'fast research/slow research times' and such to customise their gameplay experience...if they want a longer or a shorter game.

Derron

Hmm I would have thought "research" is what you could do "individually".

These "fixed time" progress things ... I think this suits well to "defend position until reinforcement arrived" things. Think "Sudden Strike" (90s game?) had these air strikes "timed". So eg every x minutes you can "request" reinforcement and they get dropped (transporter ship arrives, lands, units are "placed").

Individual Research could also be "delayed" by giving research points on fixed time spots ... and these points can be spend freely on a research "tree" (or ease the tree by providing the upgrades building specific ... so barracks increase attack, defense, range, ... of ground soldiers etc).

Research points can also be just things you need to "collect" on the map (if you were to colonize a planet you might eg find "alien artefacts of ancient populations")).


Another maybe interesting option is to have "training buildings". Send units into it and they "train" (eg increase range, better hit rate, ...) so "freshly produced" units are less experienced / trained and thus lack certain abilities. This would create a more "realistic" approach compared to "each unit is the same" you see in default casual RTS games.


If your units gain XP and can "level up" in ranks, than some nifty quick effect will not just look nice (eg some "circles" moving from ground to top of the unit ... movement interpolation based .. quad in, ease out ... or so) but also increase your "parentship" level to them ... if you see units "become better" you will be more intrigued to keep them alive.

A damaged ship can have some small "fire effect" here and there on the ship ("damaged") ... such stuff.
They are not just eye pleasers but indicators of damage.


I am sure you are aware of many things but yeah, better note them down than forgetting them at the end.


bye
Ron
 

Matty

What you say is true, and I've already built some of these features in but they're a bit too subtle at the moment.

My game isn't a traditional RTS. It's more a single scenario "last stand" quick 'snack' style game...play for a short burst of frenetic activity with rts gamestyle mechanics sort of.

Matty

I'm out at the library near my home at the moment, so no development work right now but....

I'm planning on re-exporting all the 'bad guy' soldiers when I get home with some changes to their model:

I'm thinking of adding little spikes to the helmet and shoulder pads, and a bayonet on the end of the weapon, just to differentiate them a little more from the player's soldier models. 

I'm thinking of adding scorch marks to the landscape when an explosion hits it.

I might also add particle effect smoke and sparks that are emitted from broken down tanks and other dead vehicles.

I'm going to have a semi random scale modifier to the enemy soldiers on foot to make them seem more like an irregular bunch of sorts.

I've already implemented some other features this morning before I went to the gym for a coffee but haven't updated the itch.io site yet.

The game on the itch.io site has a difficulty setting in the options page and a research timing setting.

If I were redoing all the code from scratch for this I'd replace the gui and unit loading with reading from text files. Because it was written to prototype an idea fast I ended up building and building upon hardcoded values for a lot of stuff. But realistically I'd be better designing it to read all those values in from text files, like I normally do. That's what happens when I do an experimental game idea - I often just build stuff as I go directly into the program, until it often ends up becoming large enough that reverting it to data file input means too much of a design change to the system to be bothered, so I keep on going with the hardcoding. At least compiling doesn't take long.

I do have to add some icons to the buttons for the razor wire and tank traps. I also probably should improve the tank trap model.

I also need to add icons to the patrol and disperse command buttons.

I should probably add icons to the build fighters, cruisers, bombers, toggle between space/earth buttons too.

There's a tonne of stuff that really should be done, and even more than I'm not even aware of.

I should add sound and music, more than what I have. Sound effects for selecting units, ordering units, and general chatter during battle, getting decent voice acting is hard though, and in my opinion until I get actually good sound it's not worth adding it since it will just ruin the experience if the sound/music is crap.

I have thought about adding some flowers, alien flowers and the like to the landscape, near the trees and rocks. I might do that, I have models for it, they do need a bit of tidying though.

If I had the ability I might add some dirt and grime texturing effects to the gui buttons and panels as well.

I'd like to make this one level as good as I can for a game that's just about a single scenario. But that will take time.

I've been working on this game for a bit more than a week, so that's not bad in that time.

I've added a silly feature of sorts that as the friendly soldiers earn experience, as they go up in experience level they slightly increase in size - it does become noticeable when the fighters get quite powerful....it lets you see at a glance who the good fighters are because they're a bit bigger than the others.

I took out the blur and other visual effects - they're still in the code, but I disabled the option that enables those functions - so the user can't set them on unless they edit the config file.

I added health bars instead of 500/500 for the building health.

I added coloured circles instead of green cubes beneath the selected units' feet.

A thought just occurred to me that perhaps I should alpha the trees when the units are beneath them - since often you can't see your units beneath the trees although you can hear them firing at the enemy and such.

Scorch marks will just be shaped decals, kind of star shaped decals that will appear whenever an explosion is created on the ground. I already have craters that form (and give cover to the units within them, like trees etc).

I've added a feature that users can supply their own music to the game by simply placing their own music into the media/audio/music folder and the game will randomly play these songs during gameplay - this is really not that difficult, my games typically just play the songs in certain game folders semirandomly anyway...so it's not difficult to just replace audio files and the game will play different sounds and audio instead.

I have toyed with the idea of - like original Starcraft - limiting the number of units a player can select at once to make it a little more tactical. It is possible to give orders while the game is paused, already - which changes the experience somewhat. Pressing space bar pauses the game, and if you want to take it slowly you can pause the game, give orders, unpause and continue - I leave it to the user to decide if they want to do that or not.  Command and Conquer and a lot of RTS games let you select every unit in the game at once and tell them 'attack here', but other games like Starcraft limit you to a small number at once, - there's benefit in both approaches.

The tanks have three firing modes - high explosive, armour piercing and machine gun which they choose automatically as needed depending on their target, but I'm thinking of adding a 'change weapon mode' delay as sometimes when your tank spawns, if there's an enemy tank on the field it gets blown apart immediately by AP fire.  I should probably have a 'targeting delay' of sorts for the armour piercing rounds, since accuracy is more important.

The infantry - some of them - have grenades which they use against foes who are in cover.  They get close, do a little throwing grenade animation, and do a small attack with splash damage against other infantry in cover.  The grenades are limited though. And I've deliberately given the enemy soldiers a lot less of these.

The razorwire and tank traps aren't yet as effective as I'd like, so I should improve them. (They inhibit movement of infantry and tanks respectively, walkers ignore them), they also inhibit firing of infantry stuck in them.

At a later date once I'm happy with how it all works I might implement a 'night fighting' version, and a 'fog fighting' version for different environmental effects - but I'd like to get the game at a certain level first.

The little lasers that fire need to have some randomness added to their velocity - some scatter of sorts, as at the moment without it when two infantry are facing off against each other it's hard to see their own laser fire because they often fire along the same line effectively.

The heavy weapons icon needs to change, but technically I'm not going to bother with that at the moment because the entire gui could do with being done by a proper artist instead of by me. (I'm not all that keen on fixing certain graphical problems when if I had the money I'd simply pay an artist to do a good looking version that's 1000x times more better looking than anything I'll ever create).

Eventually I'll add my localStorage routines from my other games so that I can save preferences from session to session (it's as simple as copying my localStorage object from my other C# games to this one, changing a parameter and then it's done).

Eventually I'll add my 'translation' routines from my other games so I can simply replace all the in game text with whatever language the game is chosen to be played in.

I might add some keyboard shortcuts and hotkeys for in the battle, but I might not - I like keeping it simple at the moment, no need to overcomplicate it.

Anyway...that's enough for now...a lot of reading material/writing material. That's more than enough to keep me occupied developing this game for a while yet.


Current screenshot: 



Derron

>  before I went to the gym for a coffee

Thought people do different things in a gym than having a coffee :D



@ health bars
Yeah ... This, and then the numeric details (in addition) when hovering or selecting (some people just want numbers ... but for a quick glance the green/red-health bars will do better I think).


@ alpha transparency on trees when occluding units
Very good idea!



@ exporting models / modifying models
They are small, so some spikes might just get unnoticed. Just give them a "unique" color (like a black metal army - so ground color is simply differing to yours). Just check how space marines / board games tint their amor to make team colors.
Unit types then differentiate by the weapon (flame thrower, "medi bag", ...) and maybe a bit on the sturdyness look of the amor (bigger shoulder pads or so).


I think way more important is to have a play with "gltf" (import your models to blender, export as gltf) as this would allow for a way easier modification than exporting 100 "objects" to animate things. You can import animations (mixamo etc) and thus easily get death animations, idling, "at your command"-salutes, ...

once you got that gltf-stuff working I guess you could even animate buildings a bit (to make them look like actually "doing things") ... useful if you allow "building buildings" (so eg "towers" of a building grow out of the ground until the final building appears ... just making things look "interesting").


That gltf-route is also important if you decide to move on from raylib: other engines (godot ?) support it too. So it just paves the way for you to a new world (of models, engines, ...).


bye
Ron

Matty


Matty


Matty

Note: The graphical glitches you see with the overlapping alpha transparent items will be fixed in the next upload that becomes available (in a few minutes hopefully).

I was doing something wrong with the rendering, it's fixed now, or will be as soon as the upload is finished.

I've altered the balance, reduced the damage output of all units to about 20% of their original, makes the combats go longer....less of a mess.

But balance will be an issue for a while at this stage.

But yeah - the z-fighting and overlapping stuff will be fixed in the update that will be available in a few minutes.

Derron

I enjoy skipping through your videos and seeing the progress :-)


regarding ships "turning" ... they still turn in "angle steps" ... is there a reason to do so? What I mean is: if an entity has a "target rotation" and a "current rotation" you can lerp between these things easily ... right? so Transitions can be smooth any time (just ensure to "stop" rotating once the rotation is "reached" or "almost reached" to avoid jittering back and forth :D).

once you add "smooth movement/rotation" it is just a matter of changing the "interpolation" function to have animations with an "effect" (start fast and become slow / start slow, become fast and end slow ..., ...).

Unit movement: give the buildings a "bouncing box" and use this to avoid units "moving into buildings" - but pay attention to always have enough "space" for movement between buildings.


@ "damage" effects
I think the effects for the "holes on the ground" are not superb but kinda do the job (can still be improved but first steps are done). If it blends in a bit nicer I think it can add a lot to the atmosphere

@ explosions
Most look "smooth" but sometimes they are "pixelated" (like scaled up 8x without "smoothing") ... 


@ "entering your sector"
Why do you use the image of a ship there - compared to the soldier 3d model in other cases?

As the model quality is not the best for "close ups" you might consider adding some "distortion/noise effect" (bad data transfer from orbit to earth or on battle field) on the screen ... something to "cover" a bit the model quality for now.


bye
Ron

Matty

Yeah..Ill get to each of these.  Unfortunately unscheduled power outages today all day on and off means I cannot touch the computer until the power becomes reliable again.

Matty

Thanks Derron for all the feedback, it helps me improve my content a lot.

Here's another video showing some of the options and defensive structures.

Oh...you'll notice the tanks turn smoothly now..... ;-)


Derron

"smooth rotation"
Thanks :D ... it still looks kinda "jittering", maybe this is the screen recording or you are rotating during "update-calls" and "update calls happen less often than render calls". If you separated update and render calls, and also call them at different rates, then drawing needs to incorporate "tweening" (it knows how much time has passed since "last update call" and knows how much is left till "next". So it could interpolate values ... and thus eg. do an additional "virtual xx% step").


"unit selection circles"
I thnk these circles are way better than the cubes ... maybe you should use a bit more vibrance ... and maybe simply use a "green" based color for friendly units, and a "red-ish" one when selecting (eg for observation) a foreign one. green/red is a classical friend/enemy color choice.


"tank traps"
yes, they need to be "bulky" and they are "industrial products" so will look the same (size, shape) but you might:
- rotate things a tiny bit (not too much to avoid too chaotic looks)
- offset the razorwire (?) texture on them here and there
- maybe the lighting does not do justice there (harsh "black shadows" on the right/rightbottom area) thus making them look on the one hand colored similar to the ground but then these dark shaded sides "pop out".



idea:
I see you a lot "selecting groups" ... do you consider allowing group definitions? Eg you select a bunch of units. Then click "ctrl + [1-3]" and it creates a "selection group" for the pressed key. If you now hit "1" it selects all the units (still alive) of that group. "Shift 1" will add it to an existing "our active group selection" (so temporary).
Of course one could also make it graphically by adding 3 buttons which are empty (eg empty rectangles, so not fully opaque etc) which is half-overlayed by a small "|+|" button (so the "-" of the "+" is over the border of the underlaying button). This could also allow a one-handed gameplay with just the mouse  (to dissolve a group selection the "|+|" could be replaced with a "|x|" button to disband a selection).

idea 2:
if you limited a group selection artificially you can create some party/raid frames for your groups with very small healthbars etc ... that way you are able to watch your units "die" (or survive) and thus add some ... more "dashboard" feeling (some might enjoy it).  but could of course add too much clutter to the screen. dunno.


suggestion:
The top left contains a very ... bulky "message box" ... maybe the timer could be still there (with background ... top left etc ... so the begin of a "top"-interface-bar) but the "action log" could simply be on a transparent element. Yyou might make it "more opaque" when clicking on it with the left mouse button - as a right mouse button is traditionally used as context-action -> move-to, attack-this... When leaving the area it will fade out into transparent-background rather soon.

For now that text there is always replaced quickly by "a new message" ... maybe simply make it a scrolling log.



@ "bug" (?):
when you click the checkerboxes in your options screen, the screen flickers - but this is only for "on off" checkboxes. If it is a "radio button" (so choice of 3 variants...) it does not flicker. Is this on purpose?


bye
Ron

Matty

Thanks for pointing out that bug, I knew it was there I just didn't do anything about it yet - I had a return inside a drawing function that shouldn't have been in that spot....

Matty

Planning to add the following features:

1. Wave delay - a breather between waves of enemies to allow the player to resupply, repair units.

2. Upgrade options along the base of screen - a tech tree of sorts that lets the player enhance their units globally in game during battle.

3. Limited ammo - when it runs out damage is cut to a third normal damage, but player can press an icon that appears above the units' head indicating 'ammo low' to resupply which takes a few seconds but restores player damage output to normal.

4. Parachutes for the enemy infantry when they spawn in....land on the edge of the map with a parachute, rather than walk onto the field of battle.

5. Eventually build in the smoke canisters feature I've been meaning to add for a while so that units can take cover in open ground if they have smoke canisters available to them which causes little areas of smoke to form near the soldiers and tanks...only happens in open ground, if they have more than 0 smoke canisters on their person, and if they're fired upon.