{"id":346,"date":"2023-11-24T14:52:31","date_gmt":"2023-11-24T14:52:31","guid":{"rendered":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/?p=346"},"modified":"2023-11-24T14:52:31","modified_gmt":"2023-11-24T14:52:31","slug":"bsc2a-c-practice","status":"publish","type":"post","link":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/2023\/11\/24\/bsc2a-c-practice\/","title":{"rendered":"BSc2a C++ Practice"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">[This is a copy paste from my unstructured dev log so far]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before prototyping these ideas, I\u2019m yet to write a single line of C++ code which isn\u2019t good at all considering we\u2019re 7\/20 weeks into the project. For the brief,\u00a0 I need to create a hypercasual game, partake in games jams as well as create a \u2018personal planning folder\u2019 for industry related tasks, a list is also provided in the brief, it is not explained it\u2019s just there so I assume it\u2019s a list of things to practice in C++:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Creating new actors in Unreal Engine<\/li>\n\n\n\n<li>Debugging Unreal Engine projects<\/li>\n\n\n\n<li>Input mapping and character control<\/li>\n\n\n\n<li>Collision Detection<\/li>\n\n\n\n<li>Camera movement<\/li>\n\n\n\n<li>Attaching items to sockets<\/li>\n\n\n\n<li>Character AI and behaviour trees<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It feels overwhelming starting with this, I selected \u2018Edit in C++\u2019 on one of the third person template character components and felt shocked trying to break down what I was looking at \u2013 It would be ideal to start small and work from the list really.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First, I aim to create a new actor in unreal engine using C++, the easiest part of the process so far.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I wanted to see how different a new C++ character class would compare to the actor class as well but in the file, it seems to just be input binding.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"298\" height=\"216\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-2.png\" alt=\"\" class=\"wp-image-347\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019ve got my actor but now I need to do something with it, I think I should give it a cube body, physics, place it in the world, maybe even make it bounce up when it lands via a function call on collisions. Looking at the actor <a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/ProgrammingAndScripting\/ProgrammingWithCPP\/UnrealArchitecture\/Actors\/#:~:text=An%20Actor%20is%20any%20object,code%20(C%2B%2B%20or%20Blueprints).\">documentation<\/a> to understand what\u2019s going on, I\u2019m ashamed to say I didn\u2019t look at this last year and it\u2019s explained a crucial bit such as how USceneComponent gives actors transforms. I\u2019ll want this as the actor\u2019s root component and then the static mesh.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.youtube.com\/watch?v=FBpnOuCgHu4\">https:\/\/www.youtube.com\/watch?v=FBpnOuCgHu4<\/a> This tutorial by Ryan Laley seems to be a really good run though, though I need to greatly avoid solely going through video tutorials demonstrating how to do things this year, there\u2019s a lot of C++ theory and concepts covered on VLE however for a lot of it I\u2019m just unsure how to apply it to the engine, I think once I\u2019ve got the ball rolling with this tutorial I\u2019ll feel more comfortable and have a better idea where concepts apply such as what points I\u2019d want to be using class and function declarations and working with variables. I got a little hazy trying to understand how to set a static mesh component to a class.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ryan explains some good ideas aswell such as tools programming vs designer where the programmer works mostly on the C++ cpp and h files while the designer sets everything up in the engine editor, the programmer may want to make variables read only in blueprint so it can be read but not changed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"74\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-3.png\" alt=\"\" class=\"wp-image-348\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-3.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-3-300x24.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-3-768x60.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"214\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-5.png\" alt=\"\" class=\"wp-image-350\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-5.png 786w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-5-300x82.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-5-768x209.png 768w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I made a variable in C++, and you can see and change the value in the editor!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And now, read only!<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"56\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-6.png\" alt=\"\" class=\"wp-image-351\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-6.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-6-300x18.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-6-768x46.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"738\" height=\"88\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-7.png\" alt=\"\" class=\"wp-image-352\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-7.png 738w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-7-300x36.png 300w\" sizes=\"auto, (max-width: 738px) 100vw, 738px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">With new mediums I guess you do have to start somewhere, Andy Warhol who lead the pop art movement was ecstatic when <a href=\"https:\/\/www.artsy.net\/article\/artsy-editorial-steve-jobs-andy-warhol-computer-lesson\">he drew a simple circle on a Macintosh Computer in 1984<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now he\u2019s going through writing functions in C++ and calling them in blueprint.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"112\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-8.png\" alt=\"\" class=\"wp-image-353\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-8.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-8-300x36.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-8-768x92.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"414\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-9.png\" alt=\"\" class=\"wp-image-354\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-9.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-9-300x132.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-9-768x338.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For my own practice, say we couldn\u2019t change value A and B in editor but only through functions, I made 2 to increment value A and B.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"135\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-10.png\" alt=\"\" class=\"wp-image-355\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-10.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-10-300x43.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-10-768x110.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"249\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-11.png\" alt=\"\" class=\"wp-image-356\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-11.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-11-300x79.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-11-768x203.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"84\" height=\"95\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-12.png\" alt=\"\" class=\"wp-image-357\"\/><figcaption class=\"wp-element-caption\">Magical<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now for events.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"55\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-13.png\" alt=\"\" class=\"wp-image-358\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-13.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-13-300x18.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-13-768x45.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Part of the trouble here was getting the hot compiler to work while making changes in the IDE I kept getting this error despite following exact same as the tutorial \u00a0but only when the event function wasn\u2019t commented out, and I couldn\u2019t identify the cause from the compiler or code. I deleted the blueprints that called the other functions from before, commented out the event in the .cpp file, compiled fine, uncommented the function and the compile worked.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"29\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-14.png\" alt=\"\" class=\"wp-image-359\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-14.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-14-300x9.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-14-768x24.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Event call added to on calculate function, print function added to event in blueprints but. It\u2019s not working like it just wont call. I threw an extra 5 minutes in debugging like making sure the prints weren\u2019t bugged, I ended up retyping \u201cBlueprintImplementableEvent\u201d which fixed it despite carefull making sure there were no typos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now that I understand how the language is applied more in engine, the cpp and h file for the pre-written character in engine make sense for the most part now, and I can see how components for actors are created after seeing the camera boom for the character.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"124\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-15.png\" alt=\"\" class=\"wp-image-360\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-15.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-15-300x40.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-15-768x101.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I am struggling real bad with this. I\u2019m going to do the other subjects to clear my head.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"893\" height=\"823\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-16.png\" alt=\"\" class=\"wp-image-361\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-16.png 893w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-16-300x276.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-16-768x708.png 768w\" sizes=\"auto, (max-width: 893px) 100vw, 893px\" \/><figcaption class=\"wp-element-caption\">What Rich&#8217;s daily to-do list looks like, not sure if I&#8217;m allowed to share card contents but it&#8217;s a good reference for how to imagine work would look in Industry, and I may end up using this formula in the game jam.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Rich: it&#8217;s all about completing tasks in a job, you get them done (nice little insight into what the the work is like which is obvious in hindsight, a good guide I recall seeing on discipline was to keep digging when tackling a problem in coding until you get it and to keep working at it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s time to start properly planning out what I need to do for this project: Timewise I have mid-unit review this week, an interchange next week and after that begins a games jam then one week left of uni before 3 weeks off for Christmas. I\u2019ll return to 2 more weeks of uni, 1 more games jam then 3 more weeks ending with the submission. To summarise, this leaves 12 more weeks until submission where 2 are games jams, 3 are Christmas break, 1 interchange week and 6 standard weeks of uni, each should be I won\u2019t be able to work much when I go home for Christmas for a week and those 2 games jams weeks will be dedicated entirely to the games jam part of the submission so this really leaves 9 weeks to complete my unreal tasks, essay and presentation. As urgent as I want to work on both the essay and presentation no ideas or thoughts are fresh in my head, the presentations are on the VLE and I don\u2019t have another lesson until after the games jam so for now I\u2019m planning on working on them after the games jam.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019ll be using ToDoIst to help manage the overall brief and my time management while, I\u2019ll be using Trello to manage the hypercasual game once I start working on a chosen approved concept.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"423\" height=\"211\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-17.png\" alt=\"\" class=\"wp-image-362\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-17.png 423w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-17-300x150.png 300w\" sizes=\"auto, (max-width: 423px) 100vw, 423px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For now, I\u2019m going to go over some tutorials again to practice then try this concepts out on my own.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Andrew shared this guide and it\u2019s exactly what I\u2019ve been looking for:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.unrealengine.com\/5.0\/en-US\/spawning-and-destroying-unreal-engine-actors\/\">https:\/\/docs.unrealengine.com\/5.0\/en-US\/spawning-and-destroying-unreal-engine-actors\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Main way I understand this is that it\u2019s setting up the components for the actor in code, I had trouble wrapping my head around this before but it makes a lot more sense from this tutorial. The C++ file is setting up all components as well before.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*Had to restart this as I forgot the starter content class, looks better now but the first time I typed everything manually, second time I copied and pasted everything over. Got up to making the first actor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"409\" height=\"620\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-18.png\" alt=\"\" class=\"wp-image-363\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-18.png 409w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-18-198x300.png 198w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">MAGIC<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide has demonstrated how to do a lot, it\u2019s shown:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>How to make a C++ class and use it in engine.<\/li>\n\n\n\n<li>How to create and set up components for actors.<\/li>\n\n\n\n<li>How to set up action mappings to trigger functions.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">?How could I develop these concepts further? What is worth doing in the Unreal Editor vs in C++?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">!Using C++ you have more control over the code, and runs a lot faster than blueprint so ideally you\u2019d want as many functions as possible to be in C++, however something may take much longer than they\u2019re worth to setup in C++ such as widgets.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C++ events can be set up to run blueprint code as well to get around this.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"727\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-19.png\" alt=\"\" class=\"wp-image-364\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-19.png 940w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-19-300x232.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2023\/11\/image-19-768x594.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I wanted to run it again but I now have this happening every time I compile :c<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[This is a copy paste from my unstructured dev log so far] Before prototyping these ideas, I\u2019m yet to write a single line of C++ code which isn\u2019t good at all considering we\u2019re 7\/20 weeks into the project. For the brief,\u00a0 I need to create a hypercasual game, partake in games jams as well as&hellip; <a class=\"more-link\" href=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/2023\/11\/24\/bsc2a-c-practice\/\">Continue reading <span class=\"screen-reader-text\">BSc2a C++ Practice<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-346","post","type-post","status-publish","format-standard","hentry","category-uncategorised","entry"],"_links":{"self":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts\/346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=346"}],"version-history":[{"count":1,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts\/346\/revisions"}],"predecessor-version":[{"id":365,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts\/346\/revisions\/365"}],"wp:attachment":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}