Blender and Unreal Engine

Bookcases made in Blender by me

   

     A friend of mine was showing me some cool stuff he was doing with Blender and Unreal Engine and it got me motivated  to get into the Blender class I bought on Udemy a while back. I made a bookcase and showed it to some friends. Someone mentioned that I could probably make a bookcase more easily using Unreal Engine. Then I thought to myself, hey, I have made a bookcase on Unreal Engine before and the comment got me wondering if it was really true that Unreal was easier than Blender, at least with respect to bookcases..

     So why am I making bookcases? This is mainly because I am a nerd who loves to collect books. I should say that I used to collect books but unfortunately, I have found it financially prudent to sell them off a couple times in my life. The first time was when Ebay first came out and I was fascinated with the auction process. I sold a bunch of books and all my old Transformer toys from the 80s. Then I bought a car, not a great car but a functional one. Why? Because I really wanted a car, and I was 22 and didn’t have one yet. The books and toys had just been sitting around at my parents house for years anyway. The second time I sold all my books involved downsizing after a career change and in preparation for a move. I was able to replace most of my old yard sale furniture with new stuff. The third time was just after moving into a new house. I had a lot of books at this point, the moving team was quite surprised at the extra workout. The new house needed about 60k in renovations, so I sold all my books except for a few special ones that were signed specifically for me by the authors. Did the books pay for all the renovations? Well no, but they covered most of it.

      So I really love books, however, it became apparent after having a kid and lots of expected and unexpected house guests over the years that rebuilding the book collection in this particular home would not be practical. For this reason one of the early projects I’d like to work on in Unreal Engine is creating a virtual man-cave where I can have all the cool gee-whiz stuff that I can’t afford and don’t have space for in real life. This shall of course include a virtual library.

     The bookcases I have built so far in Blender and Unreal Engine are not anything exciting or fancy. I am at the beginning stages of both and I am basically just joining rectangles together. I had an easier time in Unreal because I did not fill the bookcase with books and it is very easy to drag and drop a wood material onto the bookcase to color it. I still haven’t figured out how to color stuff on Blender, mostly because my class hasn’t gone there yet. However, I didn’t see an easy drag and drop option like UE.

     During the process I learned that materials on Unreal Engine do not always drop on at the right size for some reason. With a little research I found out that I could open the material blueprint and add a texture coordinate node and attach it to the uv part of the material texture sample. Then you can adjust the  u tiling and v tiling to change the relative size of the texture. This technique may be handy for another project I’m thinking about.

     The Blender bookcase was a result of me practicing some of the stuff I had learned in the Udemy class. There was a demo where the instructor used a lot of basic shapes combined with scaling and rotation to create a little scene including a house, some trees and even some blocky cars. I followed along for a little while, but I really wanted to try a bookcase and some books. The bookcase was a simple affair of five rectangles for the main structure and a bunch of duplicated rectangles for the shelves. The books were four rectangles which included the spine, front and back cover and the pages joined together. I used scaling along the various axes to make books of different sizes, joined them and filled the shelves. This took a lot longer than expected as getting the books to all line up correctly and then aligning them on the shelves was tougher than I thought. There is probably an easier way to do it, but I didn’t know how to move the camera so I actually moved the bookshelf around a lot so I could see what I was doing. I also couldn’t figure out how to get the books to just snap to the shelves. What I did get, was a lot of practice with the hotkeys for grabbing and moving along the x,y, and z axis and switching the isometric views with the number pad. I am looking forward to making more bookcases with higher level skills.

My goal is to really leverage what I understand about this software in the next few months. It seems like Blender and UE really are like the peanut butter and jelly of game design. Blender is the cool free software that lets you sculpt, model and animate whatever you want. Then you can take these toys to Unreal Engine’s playground and create game rules and interactions around them.

The Basics of Artificial Intelligence

Image by LJ

Artificial Intelligence is the development of computer systems to perform tasks that usually require a human being. These tasks include learning, reasoning, problem-solving, perception, speech recognition, and language translation. AI systems aim to mimic human cognitive functions, enabling machines to adapt and improve their performance over time. Let’s explore the different types of AI, the practical applications and overall concerns.

Narrow AI or Weak AI is designed and trained for a specific task. Unlike General AI, which would possess human-like intelligence across a broad range of activities, Narrow AI excels within a well-defined domain. This specialization makes it highly efficient and effective for particular applications.

One of the defining features of Narrow AI is its focused expertise. It is tailored to perform a specific function or solve a particular problem, whether it’s image recognition, natural language processing, or playing board games. Narrow AI operates within a limited scope, meaning it does not possess the versatility and adaptability associated with human intelligence. 

Training is a critical aspect of Narrow AI development. These systems rely on large datasets specific to their intended application to learn patterns and make predictions or decisions. The quality and diversity of the training data significantly impact the system’s performance.

Virtual personal assistants like Siri, Alexa, and Google Assistant are classic examples of Narrow AI. They excel in voice recognition, language understanding, providing information or executing specific commands. Applications that can identify objects in images or transcribe spoken words leverage Narrow AI. This technology is widely used in photo categorization, facial recognition, and voice-to-text conversion. Many online platforms use Narrow AI algorithms to analyze user behavior and preferences, offering personalized recommendations for content, products, or services. This includes streaming services, e-commerce websites, and social media platforms. The AI systems in autonomous vehicles are another example of Narrow AI. These systems are specialized in tasks like identifying obstacles, interpreting traffic signs, and making real-time decisions based on sensor data.

Strong AI, or General AI, represents the theoretical concept of artificial intelligence possessing the ability to understand, learn, and apply knowledge across a wide range of tasks at a level comparable to human intelligence. Unlike Narrow AI, which specializes in specific domains, Strong AI aims to exhibit a broad spectrum of cognitive abilities, allowing it to perform any intellectual task that a human can. The hallmark of Strong AI would be versatility. It would not be confined to a specific domain or set of tasks; instead, it could comprehend and adapt to diverse situations, displaying human-like cognitive flexibility. Strong AI would have the capacity to learn from experience and reason across various domains. It could apply knowledge gained in one area to understand and solve problems in entirely different contexts. In the realm of Strong AI, the idea of self-awareness and consciousness is considered. This implies that the AI system not only processes information and performs tasks but also has an awareness of its own existence and the ability to reflect on its experiences.

Despite the potential benefits and the intriguing concept of Strong AI, several significant challenges stand in the way of its realization. Replicating human-like intelligence requires a deep understanding of the complexities of human cognition, including perception, memory, reasoning, and consciousness. This understanding is still limited. As AI approaches human-level intelligence, ethical and philosophical questions arise. Issues related to consciousness, moral reasoning, and the ethical treatment of AI entities become crucial considerations. Achieving Strong AI requires immense computational power and sophisticated algorithms. The complexity of emulating human intelligence poses a substantial technological challenge that for now remains firmly in the realm of science fiction.

           Machine Learning is a subset of artificial intelligence that focuses on the development of algorithms and statistical models that enable computers to perform tasks without explicit programming. The core idea behind machine learning is to empower machines to learn from data, identify patterns, and make decisions or predictions based on that learning. It plays a pivotal role in various applications, ranging from recommendation systems to image recognition and natural language processing.

Data is the lifeblood of machine learning. ML algorithms learn from historical data, which is used to train the model. The quality, quantity, and relevance of the data directly impact the performance of the machine learning system. In supervised learning, a common type of machine learning, the algorithm learns from labeled data. The software uses input variables called features, and the goal is for the code to learn the mapping from the features and create outputs, which are known as labels. Machine learning algorithms are mathematical models that learn patterns from data. These algorithms can be categorized into various types, including linear regression, decision trees, support vector machines, and neural networks. The choice of algorithm depends on the nature of the problem and the characteristics of the data. During the training phase, the machine learning model is exposed to labeled data, and it adjusts its internal parameters to minimize the difference between its predictions and the actual labels. This process continues until the model achieves a satisfactory level of accuracy. Once trained, the model is tested on new, unseen data to evaluate its performance. 

In supervised learning, the model is trained on a labeled dataset, meaning it learns from input-output pairs. The goal is to predict the output for new, unseen inputs accurately. Unsupervised learning involves training models on unlabeled data. The algorithm discovers patterns or structures within the data without explicit guidance on the output. Reinforcement learning is centered around agents that learn to make decisions by interacting with an environment. The agent receives feedback in the form of rewards or penalties, guiding it toward optimal decision-making.

Companies like Netflix and Amazon use machine learning algorithms to analyze user preferences and recommend movies, products, or content tailored to individual tastes. Machine learning powers facial recognition systems, image classification, and speech recognition technologies. Applications range from security systems to virtual assistants. In healthcare, machine learning is used for disease prediction, medical image analysis, and personalized treatment recommendations based on patient data. Machine learning algorithms analyze financial data to make predictions about market trends, stock prices, and investment strategies. Natural Language Processing applications use machine learning to understand and generate human language. This includes chatbots, language translation, and sentiment analysis.

Machine learning models are only as good as the data they are trained on. Biases in the data can lead to biased predictions, and insufficient or low-quality data may result in inaccurate models. Some machine learning models, especially complex ones like deep neural networks, are often considered as “black boxes” because understanding how they arrive at specific decisions can be challenging. Balancing the complexity of a model is crucial. Overfitting occurs when a model learns the training data too well but struggles to generalize to new data. Underfitting occurs when a model is too simple to capture the underlying patterns in the data. Machine learning systems can inadvertently exacerbate existing biases in the training data. 

Deep Learning is a specialized subset of machine learning that revolves around the concept of artificial neural networks. It aims to emulate the human brain’s structure and functionality, allowing machines to learn and make decisions in a manner similar to how humans do. The term “deep” in deep learning refers to the use of deep neural networks with multiple layers, enabling the system to automatically learn hierarchical representations of data.

At the core of deep learning are neural networks, which are composed of layers of interconnected nodes or artificial neurons. These networks are inspired by the structure and functioning of the human brain, with each layer extracting progressively more abstract features from the input data. Deep neural networks consist of an input layer, one or more hidden layers, and an output layer. Each layer contains nodes, also known as neurons or units, which process and transform the input data. The hidden layers allow the network to learn intricate patterns and representations. Activation functions introduce non-linearities to the neural network, enabling it to learn complex relationships within the data. The connections between nodes in a neural network are defined by weights and biases. During the training process, these parameters are adjusted to minimize the difference between the predicted output and the actual output, allowing the network to learn from data. Deep learning models undergo a training process where they learn to map input data to the desired output. This involves feeding the model with labeled data, adjusting the weights and biases, and optimizing the model to make accurate predictions. 

The simplest form of deep learning architecture is Feedforward Neural Networks, where information travels from the input layer through the hidden layers to the output layer. Convolutional Neural Networks are optimized for image processing, and use convolutional layers to automatically and adaptively learn spatial hierarchies of features from input images. Just to clarify; a convolutional layer is a special layer in a computer program that looks at different parts of a picture at a time, finding specific patterns like edges or shapes to help understand what’s in the picture. Recurrent Neural Networks are more suitable for sequence data, and have connections that form directed cycles, allowing them to retain information from previous inputs in the sequence.

 Deep learning has significantly improved the accuracy of image recognition tasks, allowing systems to identify and classify objects in images. It has also revolutionized speech recognition technologies. In Natural Language Processing deep learning models are used for tasks such as language translation, sentiment analysis, and chatbots. Deep learning is applied to medical image analysis, diagnosis prediction, and drug discovery. It helps detect abnormalities in medical images and assists in personalized treatment plans. Deep learning powers perception systems in autonomous vehicles, enabling them to recognize and respond to the surrounding environment. Deep learning is employed in gaming for character animation, object recognition, and procedural content generation. It enhances the immersive experience in virtual reality environments.

Deep learning models often require large amounts of labeled data for training, and obtaining such datasets can be challenging in certain domains. Training deep neural networks can be computationally intensive, requiring powerful hardware. Understanding how deep learning models arrive at specific decisions, especially in complex architectures, remains a challenge.  

Deep Learning has emerged as a revolutionary force in the realm of artificial intelligence, enabling machines to learn intricate patterns and representations from data. As the field continues to evolve, the applications of deep learning are expanding across diverse domains, pushing the boundaries of what machines can achieve in terms of perception, understanding, and decision-making. The ongoing research and advancements in deep learning hold the promise of transforming industries and shaping the future of intelligent systems.

While AI overall brings about numerous benefits, it also poses challenges, including ethical concerns, bias in algorithms, job displacement, and the potential for misuse. As AI continues to advance, it’s crucial to address these challenges and ensure responsible development and deployment. Artificial Intelligence is a transformative force reshaping industries and societies. Understanding its basics empowers us to appreciate the positive and negative aspects of this technology. As we navigate the evolving landscape of AI, staying informed and engaged will be key to harnessing its benefits responsibly.

Sampling

Image by pixabay

Through the course of research and learning I am slowly discovering more of what I need to know. I can see why a background in computer science is required by many potential employers. Since I have neither the time or money to get a computer science degree at this time I am figuring out how to gain as much knowledge as possible using free or less expensive resources.

I have listened to Cyber security for Dummies and Artificial Intelligence for Dummies and I’m almost finished with Data Science for Dummies. All of these books are free on Audible. Cyber security quite frankly scares the crap out of me. It was stressful just listening to it. I think a job in that field would be too high-liability for my tastes. I’m already stuck in an industry like that and not interested in taking my chances on another. Artificial intelligence is interesting and I definitely want to learn more about it. In the end, however, I’m more interested to see how this technology can make my games better, than being on the cutting edge of development. Data science is interesting and I feel like I need to know more about it. Even though I feel pretty strong in math, a lot of the terminology they were using went over my head. It’s also such a broad topic, I feel the need to dive into some specifics.

I have also started taking some free classes including the CS50 intro to computer science from Harvard through edX. The main instructor is very engaging and easy to understand. I’m not crazy about the edX user interface or the way they keep prompting me to upgrade to an accredited version of the course. It’s still a free class with lots of good info and professional instruction so I feel like you can’t go wrong.

I started a Coursera class on machine learning and realized I was in over my head from the beginning. I have put that class on hold until I can get a little more background. My latest Udemy class on Unreal Engine RPG building is a little more C++ intensive than I had originally thought, so I may have to put it on hold as well until I can practice with visual studio some more.  This class is also a wake up call on how much space you need on your hard drive for Unreal Engine. The first part of the class had me do a modest download of 20 gigs to get started with some terrain and trees and such off Quixel Bridge. The next part of the lesson asked me to download Valley of the Ancients, which is over 200 gigs, to use some of its geologic features.  On a somewhat related note, I recently found out my internet service provider only allows so much free data per month before they start charging me extra.

I feel like I have a little more direction after listening to some audio books and dipping my toes in a few classes. As I rework my goals I will rework my blog to accommodate as needed. I am feeling energized as retirement draws closer and the new world of employment opens up. I know that my goals of a stay at home game development job are far off but I’m not discouraged yet, and believe me, there are a lot of naysayers. I’m also a pragmatic realist and have lots of backup options. An upgrade, however, is doing something that makes me happy, and that is still a goal worth shooting for.