Noutați

Ambitious art: How Mistwalker fulfilled their magnificent vision for FANTASIAN

Tell us about the Dimengeon system and how you worked on the design. At first glance, it seems to be a great innovation for random encounters. But after looking more closely, it appears specifically useful for mobile players, who wouldn’t typically be able to engage in long or complex battles. Nakamura: This was Sakaguchi’s idea. In FANTASIAN, if you touch a treasure chest in the distance where you can’t see the route, NavMesh will automatically take you there. We talked about how new and exciting this was, but the problem was that it became stressful when interrupted by encounters along the way. So we came up with the idea of a dimension system, where encounters are stored. This system was initially created for field exploration. Still, it led to the exhilaration of defeating many enemies at once by curving magic trajectories in battle. It also made the humble task of leveling up more efficient. I think it’s a very unique and innovative system.   How did you ensure that the visual effects, lighting, and shadows would work with the data captured from the dioramas to maintain your artistic style? Nakamura: The most effective way to achieve harmony centers on the texture of the characters and the atmosphere. First of all, for the characters, we tried to create a figure-like texture that’s not entirely realistic. I adjusted this until the end to fit with the miniature, handmade feel of the diorama. The lighting was also handled with a stronger ambient to bring out this figure-like feel. We added a customized vignette post-effect to create a natural atmosphere. Vignetting is an effect that darkens the corners of the picture, but in FANTASIAN we used it to add color to the image’s corners, as if it were a fog. It’s easier to add color in 2D than in a fog that depends on the diorama’s depth. As FANTASIAN uses photographs, the depth of information is not perfect. That’s why we aren’t as good at depth-based post-effects like fog or depth of field (DOF).   Do you have any tips to share with Unity developers looking to create their own JRPG-style games? Nakamura: JRPGs are simple in structure, but they tend to be significant in volume. We needed many assets, so the most important thing was to manage them effectively. For FANTASIAN, we set up rules for naming and folder structure and then used import scripts to automate the process to a certain extent. This helped us manage the assets. Debugging is also essential. The simplicity of the structure means that crash bugs are unlikely to occur, but bugs such as flagging errors that prevent the story from progressing are more likely. It’s a good idea to have debugging tools in place to detect and reproduce such bugs.   Lastly, we would love to know if there are any fun facts or secrets behind the game to share with fans and other developers? Nakamura: Sakaguchi is quite flexible and open to individual ideas. Many of the storylines and characters have been changed based on the opinions of our team members. For example, we didn’t have a female character named Valrika at first, but the artist wanted to create a mature female character, so we added her in. He also agreed to make one character […]

Read More

Top 10 Webinars: C++ And C++Builder

IF C++ and C++Builder are part of your development repertoire (and even if they aren’t), we invite you to enjoy our top 10 webinars around both, plus a bonus video with a rather influential figure in the history of C++ (scroll to the bottom to find out who it is).         Why C++Builder? C++ has consistently dominated “Top Programming Languages” lists worldwide this year. With such a strong demand, C++ developers are well-positioned to experience a good problem: too much work. Join presenter and C++Builder Product Manager, David Millington, to explore the features and functionality that set C++Builder apart by helping C++ developers worldwide build stunning apps faster. Additionally, get an exclusive sneak peek into the powerful updates coming soon to C++Builder. Watch Webinar           Installing C++Builder 10.4.2 CE – Summer Camp 2021 Installation of and introduction to C++Builder 10.4.2 CE Part of the Learn to Code Summer Camp 2021 Watch Webinar           Migrating and Modernizing C++ Projects Learn more about Embarcadero Technologies products at https://embarcadero.com Try the latest version of C++Builder for FREE Watch Webinar           Migrating your C++Builder Projects to Unicode, with Al Mannarino This session focuses on helping you migrate your legacy C++Builder apps to Unicode. CodeRage XII, Session 1. Migrating your C++ Builder Projects to Unicode, by Al Mannarino. Watch Webinar           Rapid C++ Development, with Rob Swindell – C++Builder GUI Development Rapid C++ Development, featuring Embarcadero MVP Rob Swindell.Chapter 8: Comparing GUI Development Part 2 – C++Builder VCL Watch Webinar           Quick C++Builder CRUD with FireDAC and InterBase A C++Builder multi-device FireMonkey application connecting to InterBase using FireDAC and displaying data in a TGrid using LiveBindings with simple create, read, update, and delete (CRUD) functionality. Watch Webinar           Using C++ Builder to Extend the Reach of Delphi – with David Millington Many people know you can mix C++ and Delphi in one app. But not everyone knows how, or even why you might do it. But there are lots of reasons – faster app performance for critical code, using the vast number of open source C or C++ libraries, even just the options a different language approach can give you to solving a programming problem. Join this talk to learn what C++Builder can offer to your Delphi app, and how you can easily make use of it from what feels like native Delphi code. Watch Webinar            Catch Leaks in Delphi and C++ Builder [On-Demand] How to find leaks in RAD Studio 10.4 Sydney, Delphi and C++Builder Watch Webinar           Python for C++ Developers with David I. & Kiriakos Vlahos – Webinar Replay David I. has a fantastic blog post on using Python4Delphi with C++Builder. This was inspired by our previous webinars on the topic. and is the result of his collaboration with Kiriakos (AKA PyScripter), the maintainer of Python4Delphi, who also made some changes in the library to work better with C++Builder. By popular request, David and Kiriakos have also agreed to run a Python for C++ developers webinar where you can learn to leverage Python from your favorite C++ developer tools. Watch Webinar           LLDB […]

Read More

What You Need To Start Windows Development For IoT Devices

Just recently I was invited by fellow MVP and Serge Pilko, CEO of Embarcadero tech partner Softacom to discuss Windows development to work with IoT devices. IoT, or “the internet of things” is a hot topic right now. Devices like Arduino and Raspberry Pi have opened up a whole new market of very low-cost devices which can control, sense and record all sorts of things from air pressure to moisture content of soil and can perform all sorts of incredible real-world functions. It’s a beguiling and addictive subject and, as you’ll see in the video, once you start looking into it you may soon find yourself hooked! How do I get started in IoT Windows development? Serge and I discuss the basics of what is meant by an IoT device, what does IoT really mean, and what can an IoT device do. I brought along a selection of different IoT devices, ranging from commercial biometric units like fingerprint readers and face scanners to tiny tag-like Bluetooth Low Energy (BLE) tags. How to program an IoT device and link it to a Delphi program In the video I show how I program a really cool tiny Arduino-based computer, smaller than my thumb, and then write a short Delphi program to respond to button pushes on that midget computer on my Windows development PC. This all happens with just a few lines of code. It’s the really cool thing about Delphi, how it enables low code Windows development of all sorts of apps. What sort of IoT devices are shown in the video? In the video I show a BLE device from Blue Charms which is detected using Delphi’s BLE device scanner sample app. Serge and I also talked about a really great internet and cloud-connected relay from Shelley. I showed the Shelley 1PM which can be found here. You can get your Delphi app to communicate with the Shelley device either via REST – the Delphi REST Debugger helps a lot with that – or protocols like MQTT and Windows sockets. What is the Arduino IDE and how can it be used for IoT Windows development? The real star of the show is the super tiny, smaller than my thumb M5StickCPlus. Serge and I talked about quite how amazing this tiny device is and how easy it is to program. It is based on the mighty Arduino system, and you can use the Arduino IDE to send down your own code to it. How do I make an IoT device talk to a Delphi app? Once the IoT code, written in embedded C, is sent down to the M5Stick it registers itself on the free to use Mosquitto MQTT server found at http://test.mosquitto.org I used the MQTT component from Embarcadero tech partner TMS Software to handle the actual technicalities of communicating using the MQTT publish and subscribe protocol. It made it easy and in only a few lines of code I was receiving messages from the IoT device and making it beep every time I pressed the button on the M5Stick. Simple, really. As always, Delphi makes IoT Windows development pretty easy. Watch the whole IoT Windows development video between Serge and Ian Barker The whole IoT video can be found here. Ignore the “Baker” on the thumbnail – Serge gets […]

Read More

Unity Art tools: A new era of creativity

Many artists have told us that they find the tools and pipelines for digital content creation fragmented. Not only do they require excessive manual work, they don’t always lend themselves well to effective collaboration. Success with these tools, then, primarily requires the removal of the barriers caused by those fragmented datasets and disjointed creation systems. Over the past two years, Unity has been developing and refining its existing artistry tools to bring content authoring technologies together and remove those barriers from the creation process. This is a major priority moving forward, as Ziva Co-founder and Academy Award Winner James Jacobs notes: “We have worked really hard to make sure that creators have the best possible experience.” For Unity, this means accelerating solutions to the hard problems that artists face and making iteration of content creation more approachable than ever. “I’m super excited about 3D art expanding beyond just simple assets and modest ambitions.” Bay Raitt, the talented creator of Gollum’s facial animation system for the LOTR trilogy, and now a developer at Unity, provides direct insight into why this artist-first mentality is crucial for building out our professional artistry toolkit: “It was always a little frustrating that [some content creation tools] are landlocked… When you move away from that studio you think, ‘oh, these fragmented pieces don’t have to be done in separate ways. They can be done in this sort of networked way, in concert together.’”

Read More

Enter the Skia4Delphi GUI Beauty Contest

TL;DR: Make a cool demo using Skia4Delphi and Delphi 11.1 Alexandria, post it on GitHub, be the envy of all your friends, and maybe win a prize! We all know Delphi is the best tool when it comes to making amazing GUI applications. Use Skia4Delphi to take it to the next level in this contest. Skia is a super powerful, high performance, open source, cross platform 2D graphics library. Thanks to Skia4Delphi you have full access to Skia’s amazing features. Combine that with Delphi 11.1 Alexandria and you can create amazingly beautiful applications on Windows, macOS, Linux, iOS, and Android, all with the same code base. Skia4Delphi works with VCL and FMX. With FMX, you can switch to Skia as your rendering engine to improve the performance of your FireMonkey application, and unlock smoother animations with a single line of code. uses System.StartUpCopy, FMX.Forms, Skia.FMX, Unit1 in ‘Unit1.pas’ {Form1}; {$R *.res} begin GlobalUseSkia := True; Application.Initialize; … uses   System.StartUpCopy,   FMX.Forms,   Skia.FMX,   Unit1 in ‘Unit1.pas’ {Form1};   {$R *.res}   begin   GlobalUseSkia := True;   Application.Initialize;   … Review the webinar, install Skia4Delphi, and impress the world with your creative genius! To explore the amazing potential of Skia4Delphi in your applications we are hosting a contest. The requirements are straightforward. Install Skia4Delphi – it is available via GetIt or on GitHub. Use Delphi 11.1 Alexandria to create or update a VCL or FMX application using Skia4Delphi. Record a short video demonstrating your application in action.  Post it on YouTube, Vimeo, or other video hosting platform. Capture a few screenshots of your beautiful user interface. Post your code on GitHub.  Include the images and a link to your video in the readme. Include an overview of your project, details on how to build it, a description of what it does, why’s it cool, and how Skia4Delphi makes it amazing in the readme.md!  Use the topic tags: Delphi, Skia, Skia4Delphi, and others (FMX, VCL, Android, etc.) as appropriate. Include links to this blog post, Skia4Delphi, and Delphi’s home page. Share your entry on social media, tagging Embarcadero on Twitter, Facebook, LinkedIn, etc. Fill out the official entry form. Stay tuned to this post and our blog for updates and more details. Prizes Grand Prize is an Apple M1 Mac Mini so you can take advantage of the great new support for Apple Silicon in Delphi 11 Alexandria.  We will feature some of the entries we like best in blog posts and social media. Other prizes may be added depending on the number of entries received. Rules You are free to use any other 3rd party libraries, components, etc., but don’t include that code on GitHub. Make sure you include links and details on where to get them in your description. Feel free to use external graphical resources to make your user interface look great. If your project is complicated to build then be sure to include a pre-built binary as a release.  Skia4Delphi doesn’t officially support C++Builder yet, but you are welcome to use C++Builder in this contest if you want to make it work. Yes, you need to post your code, but you can use any license you want. We recommend MIT or BSD, but the choice is yours. The video doesn’t need to be anything fancy, just show off your application in action. […]

Read More

How To Save Money On Cross-Platform Development Frameworks

Are you considering developing a mobile application? Your thoughts immediately turn to native app development. Still, before you decide, it is critical to understand that native apps are designed for something like a specific platform, such as iOS or Android, with a different codebase. Cross-platform apps, on the other hand, can target multiple platforms with a single codebase. Here in this brief article, you will learn about how to save money on cross-platform development frameworks. Because of the numerous advantages of having apps which can work on multiple devices – both desktop and mobile, developers worldwide embrace cross-platform app development. Today, there’s a great choice of frameworks to allow developers to create apps for multiple platforms using shared code to reduce the amount of additional work needed to address the differences the devices may have. In this article we explore what we mean by the term cross platform development and how we go about creating apps that can work for our users no matter what their choice of target whether it be desktop or mobile. What is cross-platform development? Software that can run on multiple devices and operating systems can be an example of a cross-platform application. Moreover, as a developer, you can define cross-platform apps by building a cross-platform app out of the same source code without changing so much on the core.  For instance, Delphi provides a cross-platform development ecosystem with its set of tools and libraries. The FireMonkey framework is the core tool for creating cross-platform and native applications using the same code. by Adding FMXLinux you can deploy to Linux powered platforms and also create Web Apps FireMonkey framework is one of the leading visual frameworks for creating cross-platform apps. Its architecture lets you create high-performance and secure applications.  Screenshot of a Game built with Delphi – RAD Studio Do you really need to use a cross-platform development framework? Not all cross-platform development tools provide you with the best experience when creating it or a great user experience for the users. Because cross-platform applications utilize layers of abstraction to make the thing work and sometimes you might not get the true native app feeling. For instance, apps built with hybrid technology or web technologies do not provide security over your product. Furthermore, there may be a problem when accessing hardware functionalities.  Nevertheless, Delphi, with its promising FireMonkey framework, is the solution for all. With FireMonkey visual framework and Delphi IDE, you can design GUI apps in no time and build/deploy them to Windows, macOS, Android, iOS and Linux devices quickly. Moreover, you can access any device or the operating system feature with built-in helper functions. Microsoft also has a new technology called MAUI, which is similar to FireMonkey’s architecture. However, it is still in preview, and as you can see, FireMonkey has been in active development for more than a decade and is the most stable cross-platform visual framework. Create Multi-Device Native Application using a Single Code Base Are cross-platform frameworks the future of app development? This is no secret that most companies, primarily startups, choose cross-platform development frameworks to target several markets easily. That’s why we may say that these cross-platform frameworks are in demand, and over the years, it has shown that cross-platform app development can help reduce cost and engineering time dramatically. We can […]

Read More

Expanding the robotics toolbox: Physics changes in Unity 2022.1

Rigidbody uses both interpolation and extrapolation to give an impression of smooth motion while simulating at a comparatively low frequency. Internally, this is implemented by calculating the transform poses every update. In the case of interpolation, the last two simulated poses are used to calculate a new transform pose for this frame. In the case of extrapolation, the last simulated pose and velocity are used instead. Since it is designed to be lightweight, however, we don’t communicate these poses back to the physics engine. The poses are only presented to the systems outside of physics (e.g., graphics and animation). Because of that, for instance, a raycast won’t detect a body at the interpolated pose.  To keep physics from noticing the transform changes, the mechanism was to have a Physics.SyncTransforms() call each update right before pose write, followed by an internal method call to clear all transform updates for physics. That caused two classes of problems: If a scene has at least one interpolated body, all the transform changes to all the physics components were synced with the physics engine each update (even though they’re mostly needed once per FixedUpdate); and If a change was made to a transform that had a Rigidbody component with interpolation on it, interpolation for this object broke because the user-made transform change was propagated to the physics engine and effectively changed the last simulated pose (the pose is not stored separately – it’s just the pose that the physics engine uses currently). To address these problems, we updated the interpolation code so that it doesn’t need to sync all transforms for each frame. This change also improves performance; the new interpolation code runs faster than before (depending on the scene complexity).

Read More

How we run Red Team operations remotely

At GitLab, our Red Team conducts security exercises that emulate real-world threats. This gives us an opportunity to assess and improve our ability to deal with cyber attacks. These types of exercises require a lot of planning, which is traditionally done by getting folks from multiple departments into the same room at the same time to discuss hypothetical scenarios and expected outcomes. Then, actually conducting the attacks and validating the detection/response capabilities is, once again, traditionally done by people who are physically sitting in the same space. Like many things at GitLab, we are not quite so traditional. Each member of our Red Team is separated from the others by a literal ocean, with about eight hours difference in local time between us. Our entire organization works remotely, and the various groups we need to involve in these exercises are spread across the world. We understand our approach is unique. However, more of the workforce is moving to remote work models, so we recently spent some time writing down what works for us when doing these types of complex exercises asynchronously across time zones. Keep reading to see what we came up with and how you can use it yourself. Take our 2022 DevSecOps survey and get a $10 gift card. Have your voice count! Defining an asynchronous workflow If there is one thing we’ve learned about working remotely, it’s that you need to write things down. In a traditional office, it’s possible to have a back-and-forth conversation in a matter of minutes. Conversations across time zones and departments, however, can take days when you’re not co-located. This is why we use our public handbook as a single source of truth for how we run the company and why we decided to use this same spot to document how our Red Team will work to propose, plan and execute operations. Purple Team process As you can see, we’ve broken down the process of “Purple Teaming” into nine unique stages. Each of these stages is supported with a GitLab issue template that clearly explains what must be completed in order to move to the next stage. At GitLab, we use the term “Purple Teaming” to describe an exercise where emulated attacks are done in the open: Everyone involved knows what the attack is, when it is coming, and exactly what techniques will be involved. When we perform more traditional “Red Team” exercises where stealth is involved, we use roughly the same process; only with less active participants. When we begin planning an operation, we open a new epic on gitlab.com. Inside that epic, we open nine new issues using the templates linked above. Everyone involved in the operation will have access to these issues, and everyone can clearly see what has been completed and what comes next. New Red Team issue While it may seem like a lot of stuffy process, this level of clarity and transparency gives us the freedom to focus more on the interesting work and less on figuring out who should be doing what next. Even better, the process is open source: Anyone with an idea for improvement can simply open a merge request to discuss. This includes you: We would love to hear from the community to continually improve this process. Dive deeper into our workflows […]

Read More

Biden administration accelerates software supply chain security expectations a year into Executive Order

President Joe Biden last year on May 12th signed Executive Order 14028 “Improving the Nation’s Cybersecurity”, which called on public and private sector organizations to improve the nation’s cybersecurity with “bold change” and “significant investments”. “Incremental improvements will not give us the security we need,” the EO states. Since then, the administration has only increased the pressure on agencies, forcing them to take a hard look at their software supply chains and justify their application development decisions, including how they use open source code, test their code, and grant permissions. “The federal government has accelerated its expectations for software supply chain security compliance, yet some organizations are still trying to understand how to broadly and proactively protect their software development,” says Joel Krooswyk, Senior Manager of Solutions Architecture at GitLab. “Agencies and their vendors have been focused on policy management and role-based access, but the federal government wants to go deeper and know where code is coming from and how to better secure it. They are quickly moving down the supply chain.” The interest in the origins of software code stems from the complexity of cyberattacks such as that carried out on SolarWinds, as well as the ongoing log4j and Spring4Shell vulnerabilities. “Intentionally malicious contributions can inject code that is literally opening the doors to hackers,” Krooswyk says. “However, agencies and vendors can’t just stop utilizing open source software and microservices. They need the ingenuity of the open source community.” GitLab is a proponent of open source and believes everyone can contribute. The Biden administration, through its frameworks and mandates, is simply saying, ‘we have to keep a better eye on that,’ especially as more organizations assume a cloud-first posture, according to Krooswyk. For example, earlier this year, the National Institute of Standards and Technology (NIST) published the Software Security Development Framework (SSDF) 1.1, which offers guidance on how to create tighter controls throughout the software development lifecycle. The SSDF 1.1 framework recommends: organizations should be prepared by reviewing permissions all components of software should be safe from tampering and unauthorized access software should be produced with minimal security vulnerabilities in its releases organizations should be able to quickly and sufficiently respond to vulnerabilities Take our 2022 DevSecOps survey and get a $10 gift card. Have your voice count! Code sourcing The next phase in the federal government’s move to secure the software supply chain will be to require reporting and/or attestation. “Agencies and their vendors are being asked if their software is justifiably built using properly sourced code. As a result, organizations may have to explain why they chose to use code from non-mainline repositories,” Krooswyk says. For instance, if a DevOps team chooses code from a non-mainline repository originating in China, they will have to attest to why they did that over sourcing from a mainline repository. The same idea applies to pulling clean containers and not repeatedly using those plagued with existing vulnerabilities, according to Krooswyk. He believes these questions will all be rolled up into a Cybersecurity & Infrastructure Software Agency (CISA) mandate for a software bill of materials (SBOM), which is ​​a list of ingredients that make up software components. “The SBOM will show the list of contributors, known vulnerabilities, results of dependency scans on open source, and more,” he says. “The Biden administration, NIST, […]

Read More

GitLab Heroes Unmasked: How I am elevating my company using GitLab

A key to GitLab’s success is our vast community of advocates. Here at GitLab, we call these active contributors “GitLab Heroes”. Each hero contributes to GitLab in numerous ways, including elevating releases, sharing best practices, speaking at events, and more. The “GitLab Heroes Unmasked” series is dedicated to sharing their stories. Lee Tickett, director at IT development and support consultancy Tickett Enterprises Limited, is a GitLab hero and Core team member who continuously contributes to GitLab and provides exceptional feedback. In late 2020, he wrote a blog about how he came upon GitLab and began to use it as his company’s platform. At that point, his company was using GitLab in the following ways: for version control with a custom merge request approval process as a custom UI for streamlined/standardized project creation as an integration with our bespoke helpdesk platform as a Windows runner with fairly basic CI This blog picks up where that blog left off and gives insight into how Tickett Enterprises is making the most of GitLab’s One DevOps Platform for its helpdesk, CRM integration, CI/CD, and more. Migrating the helpdesk Quite some time ago, I decided to migrate from the bespoke helpdesk platform and use GitLab for issue tracking. Here’s an epic I created just over two years ago to start discussing my plans. I built a bespoke migration tool using C#, which connects directly to the existing helpdesk database and pushes the data into GitLab using the API. This includes: groups (each company in our helpdesk will become a group in GitLab with a single Helpdesk project) issues (every ticket in our helpdesk will become an issue in GitLab, estimates will be included and quotes converted to weights) notes attachments time logs labels (type, class, department, and “status” will be migrated to labels) Helpdesk workflow After discussing different approaches with the GitLab team and the community, we came up with the first iteration of our workflow process. The status of tickets in our helpdesk system becomes scoped labels in GitLab. It looks similar to the following: We have two relatively small teams so we can also leverage boards to distribute and manage work within the team: We will be leveraging the GitLab Triage RubyGem and Triage Ops project to handle reactive and scheduled automation, such as: opening pending issues once they reach their due date (this field has been slightly repurposed) nudging users when issues have been pended, but no due date has been assigned nudging the team when issues have not been triaged (labeled, estimates/quotes attached, etc.) GitLab triage will run as a scheduled pipeline from inside of GitLab, and Triage Ops (formerly known as Triage Serverless) will run as webhooks in AWS Lambda (triggered by webhooks). We may potentially transition some of our existing customizations from C# to GitLab Triage/Triage Ops, too. Building out CRM One of the biggest challenges moving our helpdesk over to GitLab was the inability to tie issues to Customers. So, roughly a year ago, I decided to start building out a Customer Relations Management (CRM) feature. You can see some of the work that has gone into the CRM so far: CRM Merged MRs. It’s surprising how much work is needed for what seems like a mostly simple feature. Despite careful planning, there were many surprises that caused […]

Read More