- multliple platform ability (iOS, Windows and so on)
- better controls (zoom, pan, button clicks and so on features)
- less crash (many is because of the current image rendering library)
- hopefully faster loadup, and faster AI turn
- better multiplayer management
- better online multiplayer (when u see other player's move)
- rotate phone option
- possibility to 3D things in game (eg. particles, like smoke effects - anything)
i started to collect the modules - (there are many more i just started to think)
Phase I (Manual):
- Json reading (units, effects, maps, init, graphics, terrain and so on)
- random maps,terrain handling
- units, effects
- Game UI
- manual move/attack/spells
- Menu (account, basic help, units help, play hotseat)
Phase II (AI):
- AI
- Campaigns, skirmish maps agaisnt AI
- Triggers
Phase III (publish point?)
- Shop
- Donations
- Music
- Sounds
Phase IV (Multiplay)
- Multiplayer (Offline)
- Cosmetic units (they can be used in multiplayer games)
- Chat
Others
- Map market
- Map editor
- Gifts
- Friends
- Achievements
- Cosmetic: Loading screens
- Help - unitlist
- Online multiplayer
- how to get gems - other options.
Furute/Fiction:
- possibility to make a realtime alternative of the game with same unit stats.
... and so on ideas.
Status of this Unity thingie: (this text below is not updated since second half of 2022), so since this last update the game progressed much much more - it have already working multiplyer
I can now load
- terrain.json
- const.json
- maps json
- and all unit types
- all effects
- and individual campaign maps form json
what works
Gamplay:
- terrain and decoration appears,
- terrain affinities are applied to units
- units also drawn, unit image autotileing works now(eg. wall image changes)
- animating (idle animation) of units is working now
- unit coloring
- unit HP indicator is there 100%
- i can select individual units, now it is only colored to full red - 50%
- on unit selection the possible move target places shown
- you can move your units, units animate to target places, movement consumed
- unit can attack, by melee, and ranged (projectiles are not rotated yet though)
- damaged units show HP change, and they can die properly, also shows indicators (eg. burning)
- unit can use abilities, cast spells (i tested only enchantments though), effect icon appears on target
- i converted 80% of effects handling - not tested though
- unit names appear (and other texts are also available now)
- fog of war about 50% (ready but the explored is ugly, grid like)
- worker constructing and meding buildings are ready
- showing occupied image on buildings eg. TC is also ready.
- TC current production callout bubble is ready (same as android however we could rework the appearance if u have idea)
- Multiselect features:
-- on PC you can use hold LSHIFT to multiselect, on phone a button can switch multiselect ON/OFF
-- (new feature, android does not have this) Instant movement of multiple units by setting waypoint for them (little ugly waypoint flag though - needs some idea of rework)
-- (new feature, android does not have this) Instant attack of multiple units with a new attack button when multiple units are selected.
- on unit selection the attack and ability ranges are shown.
- Trigger logics 95% (have a few flaws eg. messages not showing as they shold) but mostly it is in - so campaigns can work now fully.
- units can build terrain objects too (eg. trench)
Ai:
- Most of the AI logics (except bridging) is converted - ATM it is not in thread so that will still need tweaking - lets say 90%
In-game Ui:
- Little ui exparimentations with buttons, the normal in-game buttons/sprites/texts (except ability buttons) are in - no functionality yet under them
- Ability buttons also appear and working
- Started UI interaction eg. delete unit, the confirmation dialog (not yet skinned) is in - not completely ready
- Started the carrier dialog (80%)
- The buildables list (for factory productions and worker buildlist) is ready. (the image list)
- fog of war about 70% (explored is nicer than android as runtime moving but the thick fog is same as on android - only shown after movement)
- unit stats button is working, the whole templating engine war ported to c# - took days...
Menu:
- CAMPAIGN_LIST: First graphical (however visually shitty yet) version of CAMPAIGN LIST view ready (showing selectable campaigns - for now, first 5 only will need scrolling maybe?), clicking on a campaign opens MAP LIST - here i wait ideas on this thread: https://www.ageofstrategy.net/viewtopic ... 56&t=11748
- MAP_LIST: First graphical version of MAP LIST view ready (showing maps in eg. a campaign), clicking on a map open the Game to play
- SINGLEPLAYER_MENU: First draft version of campaign lists menus (like easy camopaigns and such, in multilevel hierarchy option)
General:
- I transferred a big part of code about 63%
(this is the about 50% of the core engine relevant part, the UI is not convertible, that needs to be built from scratch in Unity)
------------
I tried starting it and faced infuriating problems here - i need to solve if ever i want to get over with this unity engine
Not yet solved:
# Wikipedia images are "rotated":
Yes, some images (eg. AOS "catapult" image from wiki) appears rotated in Unity version, as i would need to check somehow the EXIF data for rotation and make a rotate.
having lack of time i just wrote it here as not Top prior thingie.
here is a solution,
https://forum.unity.com/threads/texture ... s.1073684/
i just need a method making it from a texture2d object (if exif info is still there), if not i need a different download than this
Code: Select all
IEnumerator DownloadImage(string MediaUrl)
{
UnityWebRequest request = UnityWebRequestTexture.GetTexture(MediaUrl);
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
Debug.Log(request.error);
else {
image.sprite = GraphicalTools.MakeSpriteFromTexture2D(((DownloadHandlerTexture)request.downloadHandler).texture, null, 0);
}
}
# requiring .NET 4.x: below i overcome json problem but maybe with big tradeoff as the Newston library works only on .NET 4.x and i have no idea what phone or OS types i lose by requiring it (i posted here: https://answers.unity.com/answers/1830570/view.html)
# 9PathDrawables: in android version many dialog backgrounds are 9patch drawables - find a way to use them - or a unity way to do that.
# INTERNAL: SparseArrayToGson - > proper nullable results.
Solved/Worked around:
# Nice unit filtering: the units are now little ugly as they are not scaled with a good filter - should be figured out how to but without losing the possibility of teamcolor changing! (i think the solution to use some shader to make teamcoloring not the current pixel by pixel replacement.)
Solution: Using bilinear filtering on units - sadly on terrains i can not atm as there are big texture bleeding
# HTML displaying library: i need one that works for all platforms (android/iOS/Windows), the unit help and map intro texts are all htmls - it can be a paid library - i just need one
solved, the purchased one:
Solution: UniWebView, Platforms: https://docs.uniwebview.com/guide/#supported-platforms
# tree hierarchies kills json decoder: insane... i can not have a Unit reference inside a Unit object as the decoder will generate imaginary never-ending levels and quits... And all solutions they say on net: "not to have such references - and flatten all data" or something... insane... -> solution: this seems working by https://www.newtonsoft.com/json alias JSON .NET For Unity instead of internal json utility (i hope it will be compatible to all platforms iOS/Android/Windows atc - not sure)
#Json decoder can not read multidimensional arrays: ??? nice... -> I needed to re-open the json with another parser (a clumsier one) and make a special reading of that structure... New solution: with "JSON .NET For Unity" it works
# crashing on all unit definition: i can not overcome the problem it can not load all unit types, actually unity is swiped from memory without any error. it stops after loading about 300 unit types and we have much more on all alternatives... i have no idea now, i tried loading scene Asyncronously, - i tried threads - no good yet.-> it came out - was very hard to find out without any error message - that the toJson - fromJson calls killed it (to serialize-deserialize) objects for cloning - so i made custom clones for objects, again nice from Unity having a problem and quitting without error...
# JSON file extensions: In unity Resources can not have file extensions, worse, they have and if they are not proper for the "needy" engine, they
will not get read. eg: you can not have a json file called .map as unity will not read it ... -> workaround: renaming all .map files to eg. .json files (or .txt files) so the stupid unity will make me a Text out of it... (ASSET manipulation)
# directory filenames can not be listed in resources: again nice... -> workaround: so i made a textfile with all filenames listed in it (ASSET manipulation)
all "(ASSET manipulation)" will need to be changed on all asset sharing with android version.