Posts

Machine-Learning Agents: First Steps Towards Building a Model for Testing (Part 1)

Image
Initial plans have started for a project with my teammate Athanasios "Thanos" Athanasiadis on a project which uses Machine Learning using either heuristics or reinforced learning methods and implements an agent that would be able to react to player actions and playstyle. We hope that we can create a series of scenes to test a variety of agent models. Our rough timetable for the coming weeks will include research in conjunction with constant development of the scenes. These are not set in stone and can be subject to change depending on changes in scope and development on a weekly basis. (Alternative links to the spreadsheet here). Early production has begun on our project on Unity, using Unity's own Collaborate internal tools. While the toolset is relatively new to the team, it is similar to Git based options. We have begun creating some basic scenes to test behaviors. Implementation will begin once agents have been trained and brains developed. We will s

4200 - Areas of Improvement and Future Aspirations (Blog 4)

For the future, I would like to get into honing my skills towards specific areas. I'm still not too sure where I'd fit it, but I'd like to narrow it down to specific specialties. Areas of Improvement These would definitely include full confidence in usage of all the data-types, how they affect memory usage and how best they can be used. Further I'd like to look more into data structures used in conjunction with the items mentioned above. Aspirations Gameplay programming: an area I always felt weak at, but had the most passions for. It also seems like the most challenging of what I've attempted. AI: Another area I'm passionate about, namely goal-oriented type of agents and how to set them up. I want to eventually have a library of my own with my own implementation of path-finding and decision-making functionalities.  Rendering: An area I would like to further expand my knowledge. Rendering will always be an ever present aspect of development. 

4200 - Strengths and Weaknesses (Blog 3)

Strengths and Weaknesses Strengths Strong Communications skills.  Good understanding of the discipline, patterns and data types.  Willingness to tackle challenges in an effort to learn and further strengthen skills. Good in teams Good understanding on where to start when tackling errors and issues Never content with where I am at a time with current skillsets and understanding, in an effort to keep pushing myself. Weaknesses Bad when working individually as a sole contributor to a single project. I like working around people more as it gives me more motivations. I need to ask twice to ensure I've gotten something right. Might not be compatible with all types of personalities.  Currently not very satisfied with where my foundational knowledge. I still need some more practice in some areas to get a complete understanding of things I've forgotten. Uncertainly of applying certain patterns or how to correctly apply them, which can sometimes lead to over redundant a

4200 - Previous Experience (Blog 2)

Prior to joining the 4200, I had some experience with projects ranging from group projects to individual ones. The programming languages I've covered throughout the years are C++, C#, Java, Python 3 & 5 and HTML5. I'd definitely consider C++ the one I'm most familiar with. The projects I've worked on range from published work on appstores from when I worked at KillerBlitz and VectorDojo studios, ranging from working with the Android SDK to Unity. Majority of my other projects are on Github with those consisting of OpenGL and DirectX, with decent familiarity with said APIs. I've also had good familiarity with IDEs such as VisualStudios and Oracle for multitude of different projects. -Amir

4200 - Introductions (Blog 1)

An Introduction Welcome again, Amirali Mohayaee here. I'll be dedicating this sub-section of this blog to the 4200-specific items, which will be tagged under the 4200 label. My main goal for starting this blog was as I had mentioned in my initial post on the blog, was and still is to document my work and what I go through and to also comment interesting and relevant articles and information. While initially I had mentioned a select types of projects back in 2017, I will be deviating from those as they are both outdated and not very viable and attractive as portfolio pieces. I would rather have very good and impressive work-examples to show instead. One can't really learn by not branching or avoiding pitfalls. What I'd aspire to be is someone with a solid foundational knowledge base and keen eye and discipline for solving problems. I would also like to reach for a high-level understanding in framework development, making use of the right patterns and data types, rat

A Small Look at Constructor Data-member Evaluation Order (C++)

I have a habbit of regularly going back to basics and doing a form of high-speed review of whatever in relation to general programming. I tend to forget small details, but if left for too long, these items add up and people can end up subconsiously forgetting entire topics and/or functionalities. One interesting thing that may be a small and rather overlooked feature of C++ would be the way the constructor, or rather the compiler would package data memebers of a constructor in the order the class member variables are listed. Ctor::Ctor( GameType& gtRef ) : randomizer( rand() ), gameObj0(x(randomizer), y(randomizer)), gameObj1(x(randomizer), y(randomizer)) { flag = false; }  In the above example, everything seems fine, however in the class body, there was something wrong when debugging the issue. private: MainWindow& wnd; Graphics gfx; // Game Objects GameObject gameObj0; GameObject