{"author_link":"\/users\/m-1","author_name":"M-1","author_uid":"1010194","comments":[{"author_name":"geeitsomelaldy","author_uid":"1001048","time":"2018-08-14T11:05:28Z","epoch":1534244728,"modified":1534244728,"text":"Would be nice if you could use the keyboard to scroll the window rather than moving your mouse to the edge","likes":1,"format":"md"},{"author_name":"Tony Redmer","author_uid":"1079490","time":"2018-08-14T15:04:28Z","epoch":1534259068,"modified":1534259068,"text":"The camera felt too zoomed in, and I was able to dig the hole without any enemies coming. That being said the music is lovely, and I like the direction with the concept! ","likes":1,"format":"md"},{"author_name":"JK studio","author_uid":"1098577","time":"2018-08-14T15:12:39Z","epoch":1534259559,"modified":1534259559,"text":"nice idea and the music was very nice but I missed to zoom in and out and also it wasnt very interresint (animation would have helped but as you said you run out of time)","likes":0,"format":"md"},{"author_name":"PeachTreeOath","author_uid":"1006470","time":"2018-08-16T07:07:08Z","epoch":1534403228,"modified":1534403228,"text":"There are 2 genres I'm impressed at seeing in an LD: RTS and fighting game. I think I've only seen 1 of each in the past few years... The ambition is admirable and it's unfortunate there isn't a Rating for elegant code :). I ended up where Tony was which was staring into the abyss of the hole I had made, pondering my life and soul. Hope to see the updated version soon, I'll definitely give it a shot!","likes":1,"format":"md"},{"author_name":"M-1","author_uid":"1010194","time":"2018-08-17T11:44:28Z","epoch":1534506268,"modified":1534506268,"text":"@geeitsomelaldy, @tony-redmer, @jk-studio Thank you for the tips.\n\nKeyboard camera-control and zoom tweaking is definitely necessary and planned in a future release.\n\n@peachtreeoath Code elegance would not probably work as a regular voting category due to few (zero?) people actually looking at the code. Maybe a special sub-competition consisting of self-nomination followed by jury voting would be more appropriate. But LD is not mainly a programming-beauty competition - fortunately for most participants including myself (previous LD entries). :grin: ","likes":1,"format":"md"},{"author_name":"Andrei9","author_uid":"1099670","time":"2018-09-03T11:38:30Z","epoch":1535974710,"modified":1535974710,"text":"I liked the Graphics, and the Gameplay was fun, Nice Game. :thumbsup: ","likes":0,"format":"md"}],"format":"md","images":["ld42\/114853-20ed29cef39958b21d805a7a40173475.png"],"links":[{"url":"https:\/\/m-1.itch.io\/kingdom-of-spades#game_drop","text":"HTML5 (web)"},{"url":"https:\/\/m-1.itch.io\/kingdom-of-spades#download","text":"Windows"},{"url":"https:\/\/m-1.itch.io\/kingdom-of-spades#download","text":"macOS"},{"url":"https:\/\/m-1.itch.io\/kingdom-of-spades#download","text":"Source code"}],"metadata":{"g_key":"52090","g_author":"1010194","g_event":"LD42","g_eventkey":"73","g_subevent":"JAM","g_urlkey":"237254","g_title":"Kingdom of Spades","g_status":"USEAR3","g_place":"99999","g_commentcount":"6","g_site2_node_id":"114853","g_hide":"N","g_has_icon":"Y","g_rqueue":"0","g_random":"0"},"nds":{"n_key":"114853","n_urlkey":"237254","n_parent":"97793","n_path":"\/events\/ludum-dare\/42\/kingdom-of-spades","n_slug":"kingdom-of-spades","n_type":"item","n_subtype":"game","n_subsubtype":"jam","n_author":"10194","n_created":"1534199049","n_modified":"1534258553","n_version":"341507","n_status":"COMMIT"},"node":{"id":114853,"parent":97793,"superparent":9,"author":10194,"type":"item","subtype":"game","subsubtype":"jam","published":"2018-08-14T08:18:25Z","created":"2018-08-13T22:24:09Z","modified":"2018-08-14T14:55:53Z","version":341507,"slug":"kingdom-of-spades","name":"Kingdom of Spades","body":"*A real-time strategy game prototype made in 3 days.*\n\n\n![map.png](\/\/\/content\/2d7\/2\/z\/1903f.png.916x573.fit.png)\n![start.png](\/\/\/content\/2d7\/2\/z\/19044.png.916x573.fit.png)\n![ingame.png](\/\/\/content\/2d7\/2\/z\/1904f.png.916x573.fit.png)\n\n[\/\/]: # ( ![map.png](\/\/\/raw\/2d7\/2\/z\/1903f.png) )\n[\/\/]: # ( ![start.png](\/\/\/raw\/2d7\/2\/z\/19044.png) )\n[\/\/]: # ( ![ingame.png](\/\/\/raw\/2d7\/2\/z\/1904f.png) )\n\n# Instructions\nLeft click: selection - select\/deselect an object\n\nRight click: command - send selected unit to given position, attack given enemy, build\/repair a building or dig a hole\n\nMove mouse to the edge of a screen: scroll the viewpoint\n\nGoal:\n1. Dig a hole to find a hidden gem.\n2. Do not get killed by enemies crawling from the hole.\n\n\n# Theme\nAs always, our game sticks to the *Running out of space* theme only very loosely. Because starting with the exact official theme is too mainstream (and would probably lead to our game being very similar to many other games), we started elsewhere, working our way to the original theme. The phonetic similarity of *Running out of space* and *Running out of spades* led to an idea of digging a hole with spades\/shovels, which break often, inspiring me to make a resource management real-time strategy. Additional idea bringing the game more to the official theme was to move the soil from the hole to other place(s) on the map, possibly causing troubles when walking around it. The theme has also projected into the Worker's inventory size, which is relatively small, requiring the Worker to do many trips when harvesting a material.\n\n\n# Development\nSomebody once told me programming real-time strategy games is difficult. Well, I should have listened better. After spending actual (time-tracker-measured) 25 hours and 25 minutes programming and reaching just the state you can see, I can confirm it is true. The total length of the source code, consisting of 49 files (with Unity scripts, classes and enums), is 2140 lines.\n\n(Next time I will make an open-world battle-royale MMORPG with completely realistic graphics and physics. That ought to be easier than an RTS. :neutral_face: )\n\n\n# Results\nAlthough the game is not finished, we managed to create:\n- Solid code base for an RTS game:\n  - hybrid hierarchical finite state machine-based behaviours combined with behaviour trees\n    - walk, build, fight, harvest, ...\n    - non-trivial behaviour combinations such as \"repeat: find nearest object of given type (e.g. a unit, a building or any more concrete type) belonging to given player, within a set diameter, go towards it, then keep attacking it, handling it running away\"...\n    - due to the decomposition into a hierarchy of behaviour classes, each behaviour or combination of behaviours is relatively simple\n  - object model of the \"game world\"\n    - e.g. MonoBehaviour -> MapObject -> Unit -> Worker or MonoBehaviour ->MapObject -> Building -> FactoryBuilding -> Center\n  - GUI (status bar with selected object info, and object's inventory)\n  - miscelaneous scripts and utilities\n    - VisualSwitcher: a flexible script, switching on\/off children GameObjects based on parent's health level, requiring no setup (only correct naming of the children)\n    - PhotoShoot: a scene and a script for automatic (therefore deterministic\/reproducible) batch generation of icons\/sprites from 3D objects by automatically rendering them (on a GPU, using Unity) in a prepared environment, placing the results into the Assets folder\n    - ...\n  - (The code works almost without dirty programming hacks. I could say I am *almost* proud of it.)\n- Minimalist graphics:\n  - 3D objects composed of a few geometric primitives.\n- and last but not least: Nice music with a classic AoE vibe.\n\nAll the code\/graphics\/music was made during the 72 hours of \"Jam\" LD with one exception: the Singleton class, which was used from a previous project.\n\n\n# Future work\n- Commands bar (build a building, make a worker) is work in progress.\n  - Debugging an issue with button-clicks not being registered took the most valuable time just before submission and it had to be disabled.\n- Handle object reaching 0 HP - block unit behaviour, disable commands.\n- Add more buildings (e.g. barracks) and units (e.g. soldiers).\n- Implement actually using (and using up) spades as a required tool when digging.\n- Implement moving of the dug-out soil elsewhere (do not let it just disappear).\n- Implement path finding and obstacle avoidance.\n- Implement enemy spawning and more high-level\/global AI such as estimating player's units' strength and attacking only when we (enemy) are stronger.\n- Balance the gameplay difficulty (adjust maximum health of each object, spawn just-enough enemies to keep the player busy but not overwhelmed).\n- Make better visuals (especially the Worker).\n- Make SFX (tool-wood, tool-rock, tool-soil hits; click sounds, object selection noises and unit \"taunts\" when receiving commands; ...).\n- Add animations (walk, attack, idle, harvest tree, harvest iron, dig).\n- Add logo, menu, gameover\/win screens, ..., level editor, multiplayer, battle-royale mode and become #1 game on all possible application stores :wink:\n\n\n# Credits\nMusic: @cheeslo\n\nEverything else: @M-1\n\n\n---\n\n## **Please let us know what you think - what you like or don't like about the game. Any feedback is welcome!**\n\n---\n\n(An LD website bug is making unfinished game browsing inaccessible - a game named \"Unfinished\" is displayed instead - so I posted the game as a Jam entry, although it is not finished. I will put it back to Unfinished once the bug is fixed.)","meta":{"author":[10194,26788],"link-01-tag":"42336","allow-anonymous-comments":"1","link-01":"https:\/\/m-1.itch.io\/kingdom-of-spades#game_drop","link-02":"https:\/\/m-1.itch.io\/kingdom-of-spades#download","link-02-tag":"42337","link-03":"https:\/\/m-1.itch.io\/kingdom-of-spades#download","link-03-tag":"42339","link-04":"https:\/\/m-1.itch.io\/kingdom-of-spades#download","link-04-tag":"42332","cover":"\/\/\/content\/2d7\/2\/z\/19035.png"},"path":"\/events\/ludum-dare\/42\/kingdom-of-spades","parents":[1,5,9,97793],"love":0,"notes":6,"notes-timestamp":"2018-09-03T11:38:30Z","grade":{"grade-01":10,"grade-02":10,"grade-03":10,"grade-04":10,"grade-05":10,"grade-06":10,"grade-07":9,"grade-08":9},"magic":{"cool":81.940745141143,"feedback":8,"given":5.875,"grade":9.75,"grade-01-average":2.438,"grade-02-average":1.875,"grade-03-average":2.125,"grade-04-average":2.125,"grade-05-average":1.813,"grade-06-average":3.313,"grade-07-average":2,"grade-08-average":2.286,"smart":0.63898413738649}},"text":"*A real-time strategy game prototype made in 3 days.*\n\n\n![map.png](\/\/\/content\/2d7\/2\/z\/1903f.png.916x573.fit.png)\n![start.png](\/\/\/content\/2d7\/2\/z\/19044.png.916x573.fit.png)\n![ingame.png](\/\/\/content\/2d7\/2\/z\/1904f.png.916x573.fit.png)\n\n[\/\/]: # ( ![map.png](\/\/\/raw\/2d7\/2\/z\/1903f.png) )\n[\/\/]: # ( ![start.png](\/\/\/raw\/2d7\/2\/z\/19044.png) )\n[\/\/]: # ( ![ingame.png](\/\/\/raw\/2d7\/2\/z\/1904f.png) )\n\n# Instructions\nLeft click: selection - select\/deselect an object\n\nRight click: command - send selected unit to given position, attack given enemy, build\/repair a building or dig a hole\n\nMove mouse to the edge of a screen: scroll the viewpoint\n\nGoal:\n1. Dig a hole to find a hidden gem.\n2. Do not get killed by enemies crawling from the hole.\n\n\n# Theme\nAs always, our game sticks to the *Running out of space* theme only very loosely. Because starting with the exact official theme is too mainstream (and would probably lead to our game being very similar to many other games), we started elsewhere, working our way to the original theme. The phonetic similarity of *Running out of space* and *Running out of spades* led to an idea of digging a hole with spades\/shovels, which break often, inspiring me to make a resource management real-time strategy. Additional idea bringing the game more to the official theme was to move the soil from the hole to other place(s) on the map, possibly causing troubles when walking around it. The theme has also projected into the Worker's inventory size, which is relatively small, requiring the Worker to do many trips when harvesting a material.\n\n\n# Development\nSomebody once told me programming real-time strategy games is difficult. Well, I should have listened better. After spending actual (time-tracker-measured) 25 hours and 25 minutes programming and reaching just the state you can see, I can confirm it is true. The total length of the source code, consisting of 49 files (with Unity scripts, classes and enums), is 2140 lines.\n\n(Next time I will make an open-world battle-royale MMORPG with completely realistic graphics and physics. That ought to be easier than an RTS. :neutral_face: )\n\n\n# Results\nAlthough the game is not finished, we managed to create:\n- Solid code base for an RTS game:\n  - hybrid hierarchical finite state machine-based behaviours combined with behaviour trees\n    - walk, build, fight, harvest, ...\n    - non-trivial behaviour combinations such as \"repeat: find nearest object of given type (e.g. a unit, a building or any more concrete type) belonging to given player, within a set diameter, go towards it, then keep attacking it, handling it running away\"...\n    - due to the decomposition into a hierarchy of behaviour classes, each behaviour or combination of behaviours is relatively simple\n  - object model of the \"game world\"\n    - e.g. MonoBehaviour -> MapObject -> Unit -> Worker or MonoBehaviour ->MapObject -> Building -> FactoryBuilding -> Center\n  - GUI (status bar with selected object info, and object's inventory)\n  - miscelaneous scripts and utilities\n    - VisualSwitcher: a flexible script, switching on\/off children GameObjects based on parent's health level, requiring no setup (only correct naming of the children)\n    - PhotoShoot: a scene and a script for automatic (therefore deterministic\/reproducible) batch generation of icons\/sprites from 3D objects by automatically rendering them (on a GPU, using Unity) in a prepared environment, placing the results into the Assets folder\n    - ...\n  - (The code works almost without dirty programming hacks. I could say I am *almost* proud of it.)\n- Minimalist graphics:\n  - 3D objects composed of a few geometric primitives.\n- and last but not least: Nice music with a classic AoE vibe.\n\nAll the code\/graphics\/music was made during the 72 hours of \"Jam\" LD with one exception: the Singleton class, which was used from a previous project.\n\n\n# Future work\n- Commands bar (build a building, make a worker) is work in progress.\n  - Debugging an issue with button-clicks not being registered took the most valuable time just before submission and it had to be disabled.\n- Handle object reaching 0 HP - block unit behaviour, disable commands.\n- Add more buildings (e.g. barracks) and units (e.g. soldiers).\n- Implement actually using (and using up) spades as a required tool when digging.\n- Implement moving of the dug-out soil elsewhere (do not let it just disappear).\n- Implement path finding and obstacle avoidance.\n- Implement enemy spawning and more high-level\/global AI such as estimating player's units' strength and attacking only when we (enemy) are stronger.\n- Balance the gameplay difficulty (adjust maximum health of each object, spawn just-enough enemies to keep the player busy but not overwhelmed).\n- Make better visuals (especially the Worker).\n- Make SFX (tool-wood, tool-rock, tool-soil hits; click sounds, object selection noises and unit \"taunts\" when receiving commands; ...).\n- Add animations (walk, attack, idle, harvest tree, harvest iron, dig).\n- Add logo, menu, gameover\/win screens, ..., level editor, multiplayer, battle-royale mode and become #1 game on all possible application stores :wink:\n\n\n# Credits\nMusic: @cheeslo\n\nEverything else: @M-1\n\n\n---\n\n## **Please let us know what you think - what you like or don't like about the game. Any feedback is welcome!**\n\n---\n\n(An LD website bug is making unfinished game browsing inaccessible - a game named \"Unfinished\" is displayed instead - so I posted the game as a Jam entry, although it is not finished. I will put it back to Unfinished once the bug is fixed.)","title":"Kingdom of Spades"}