#unity ui builder
Explore tagged Tumblr posts
theredmark-dev · 1 year ago
Text
Hello! I make games
My name is Malindu and I make games. I don't want to go into a long intro but I know my inner-writer wouldn't agree. So here's the gist:
Who am I?
I am Malindu Ruwantha Kumaradasa. Since that is a hard name for most of you, I go by the name Mark (MaRK, to be more specific) on the internet. I turn 25 this September (2024). I like games (obviously), music, writing, and dubbing (haven't tried in a professional setting but I definitely would, someday). I still live with my parents while working as a contractor for InforPanacea, UK. I don't always get work and that's where I get my free time to make games. On to the more "game dev" side 👇
What am I?
I'm a graduate of Software Engineering who made games even while doing my unrelated degree. I made a C game on the command prompt, a C# game with visuals, a Js multiplayer game on the browser, and my "Software Engineering" final project using Unity. All this and not finding a permanent job in the software field led me to start working on games. I have currently worked on 2 different game projects: A deck builder similar to Marvel SNAP (project dropped for... reasons) and a tower defense game ("Hyper Towers", a skillset demo, available on itch.io, 5-minute gameplay). Right now, I am working on a game called "Survivesmith", which is a larger game in terms of gameplay and effort. I will write more about this in a different post.
I'll give you one better, Why am I?
I am doing game dev because it had been my passion even before I realized it. At a very young age (probably around 8), I saw some amazing games on TV and on the internet but didn't get to play any of them. I dreamt about those games as a kid and didn't know a lot about how to even play them. I started making games in my head and played them on pen and paper. I made my own art, UI, balancing, stat sheets, and that kinda stuff and played them with the graphics and sound effects turned to the max inside my head.
In school, I made games to be played on our notebooks ("notebooks" here being small A6-sized books where we wrote down our homework for the day). They got really popular among kids in my grade and even in the grade above mine.
All and all, I've always wanted to make games, and I never knew how, until I started learning coding. Now, after 24 years, I'm finally working on something I've always wanted to do instead of what others have told me to. I'd like to invite you to join me on my journey. I might not become a great game developer, but at least I would try to make games that would make me happy, and provide enjoyment to the players at the same time.
Cheers!
3 notes · View notes
tonymattny · 3 days ago
Text
No Code Test Automation Transforms Software Testing Landscape in 2025
Tumblr media
Software testing demands speed and efficiency. ideyaLabs recognizes this critical need. No code test automation emerges as the game-changing solution for modern development teams. Organizations struggle with traditional testing methods that require extensive coding knowledge. Business teams need faster deployment cycles without compromising quality.
Breaking Down Barriers Between Testing and Development
No code test automation eliminates the technical complexity of traditional testing frameworks. Teams create comprehensive test scenarios using visual interfaces. ideyaLabs empowers non-technical team members to contribute to quality assurance processes. Business analysts design test cases without writing a single line of code. Quality assurance professionals execute complex testing workflows through drag-and-drop functionality.
Visual Testing Interfaces Replace Complex Scripts
Modern testing platforms provide intuitive visual builders. Users construct test scenarios by selecting pre-built components. ideyaLabs implements these visual tools to accelerate testing cycles. Teams map out user journeys through graphical representations. Test creation becomes accessible to everyone in the organization.
Rapid Test Creation Accelerates Development Cycles
No code test automation reduces test creation time by 70%. Teams build comprehensive test suites in hours instead of weeks. ideyaLabs helps organizations achieve faster time-to-market. Automated tests run continuously throughout the development process. Quick feedback loops enable immediate bug detection and resolution.
Cross-Browser Testing Without Technical Expertise
Testing applications across multiple browsers requires zero coding skills. Visual test builders handle browser compatibility automatically. ideyaLabs ensures consistent user experiences across all platforms. Teams validate functionality on Chrome, Firefox, Safari, and Edge simultaneously. Mobile responsiveness testing becomes effortless through visual configuration.
Data-Driven Testing Through Simple Configuration
No code platforms support complex data-driven testing scenarios. Users upload test data through spreadsheets or CSV files. ideyaLabs integrates these capabilities into existing workflows seamlessly. Multiple test iterations run automatically with different data sets. Teams validate various user scenarios without manual intervention.
Intelligent Test Maintenance Reduces Technical Debt
Self-healing tests adapt to minor UI changes automatically. Machine learning algorithms detect and update element locators. ideyaLabs leverages these smart features to minimize maintenance overhead. Tests remain stable despite frequent application updates. Teams spend less time fixing broken tests and more time improving quality.
Seamless Integration With Development Pipelines
No code test automation tools integrate with popular CI/CD platforms. Tests trigger automatically with each code commit. ideyaLabs configures these integrations without complex scripting. Development teams receive instant feedback on code quality. Continuous testing becomes a reality for organizations of all sizes.
Collaborative Testing Environments Foster Team Unity
Multiple team members work on test cases simultaneously. Real-time collaboration features enable knowledge sharing. ideyaLabs promotes cross-functional teamwork through shared testing platforms. Business stakeholders review and approve test scenarios directly. Communication gaps between technical and non-technical teams disappear.
Performance Testing Without Performance Engineering Skills
Load testing and performance validation require no specialized knowledge. Visual interfaces allow teams to simulate thousands of concurrent users. ideyaLabs implements performance testing as part of regular quality checks. Teams identify bottlenecks before they impact end users. Application scalability testing becomes accessible to all team members.
Security Testing Democratization Protects Digital Assets
Basic security validations integrate into standard test suites. Teams check for common vulnerabilities without security expertise. ideyaLabs incorporates security testing into every project lifecycle. Authentication flows and data encryption undergo automated verification. Organizations maintain security standards without dedicated security engineers.
Cost Reduction Through Efficient Resource Utilization
No code test automation reduces testing costs by 60%. Organizations eliminate the need for specialized automation engineers. ideyaLabs helps companies optimize their testing budgets effectively. Existing team members handle complex testing requirements independently. Training costs decrease as platforms become more intuitive.
Scalability Meets Growing Business Demands
Testing capabilities are scaled with organizational growth effortlessly. Teams add new test cases without technical constraints. ideyaLabs supports enterprises expanding their digital footprint. Parallel test execution handles increased testing volumes automatically. Infrastructure scales dynamically based on testing requirements.
Real-Time Analytics Drive Continuous Improvement
Comprehensive dashboards display test results instantly. Teams identify patterns and trends in application quality. ideyaLabs provides actionable insights through visual analytics. Test coverage metrics guide testing strategy optimization. Decision-makers access quality metrics without technical interpretation.
Future-Proofing Quality Assurance Strategies
No code test automation adapts to emerging technologies seamlessly. AI-powered features enhance testing capabilities continuously. ideyaLabs stays ahead of technological advancements in testing. Voice interface testing and IoT device validation become standard features. Organizations prepare for future challenges without technical barriers.
Empowering Business Users in Quality Assurance
Product owners create acceptance tests matching business requirements exactly. Marketing teams validate campaign landing pages independently. ideyaLabs enables business-driven quality assurance practices. Customer support teams reproduce and document issues effectively. Quality becomes everyone's responsibility across the organization.
No code test automation revolutionizes how organizations approach software quality. ideyaLabs leads this transformation by making testing accessible to all. Teams deliver higher quality software faster than ever before. The future of software testing lies in democratization and accessibility. Organizations embracing no code test automation gain competitive advantages in 2025's fast-paced digital landscape.
0 notes
linuxgamenews · 2 months ago
Text
Nordhold Update: What You Need to Know
Tumblr media
Nordhold first major content update for the tower defense game on Linux, Steam Deck, Mac, and Windows PC. Thanks to the creative minds at StunForge, Nordhold is packed with nonstop strategy fun. Which you can find on both Steam and Humble Store. Gather ‘round, warriors! If you haven’t already marched into the frosty world of Nordhold, now might be the perfect time to grab your sword (or mouse) and join the defense. Since its launch in late March, this tower defense and city builder hybrid has taken the strategy crowd by storm — and yes, that includes Linux and Steam Deck players too! With over 130,000 copies sold and a “Very Positive” rating from more than 1,700 players, which is proving it’s not just another snow-covered village waiting to fall. Now, Nordhold, the first major content update has landed—and it’s not just some minor patch notes buried under technical jargon. No, this update is a full-on siege of new features, rebalancing, and fresh reasons to jump back into the fight.
Let’s talk banners—because you’ve earned them.
The all-new Banner System also now rewards players who aren’t afraid to switch up their strategies. Want to experiment with different hero setups, tower builds, or city layouts? Now the game gives you love (and loot) for it. It’s a small change with massive implications for replayability.
New Nordhold Season, new leaderboard reset.
Yes, your climb to Valhalla begins anew. The stakes are higher, the competition fiercer, and now’s your shot to carve your name into the frosty leaderboard. Whether you’re out for global glory or just trying to outscore your Discord crew, now’s the time.
Game-wide rebalancing is in.
Endless mode got a serious tune-up, especially the spells, making long runs more thrilling and less predictable. Every fight feels more fair—and more dangerous. Heroes now feel sharper, towers more reactive, and your decisions carry even more weight.
Nordhold - Official Trailer
youtube
Performance boosts & quality of life fixes? Yup.
Less lag, smoother gameplay, better UI feedback—it’s all in there. The devs at StunForge and HypeTrain Digital clearly listen to the community, and it shows. Playing on Linux? The experience runs great, and the Unity engine handles like a dream. But if you’re new to Nordhold, here’s the pitch that’s got thousands of strategy fans hooked: It’s not just about building a village—it’s about surviving wave after wave of chaos. Over 20 unique buildings let you shape your economy, defenses, and playstyle. Eight towers come with their own quirks and upgrades, and you’ll find yourself tinkering with more than 100 custom upgrades as you search for that perfect build. Stack up powerful relics, test your limits in Endless mode, and choose from a wild roster of hero combinations. No two runs feel the same. And unlike other strategy titles that make you feel like you’re studying for an exam, Nordhold keeps things tight and intuitive. Strategy fans get the depth they crave without drowning in complexity. So whether you’re a die-hard tower defense fan or just looking for something fresh that respects your time and challenges your mind, it's worth your gold. And with the Nordhold first major content update, it’s never been a better time to return—or to start your journey. Enemies are coming. Are you ready to defend your village—and your honor? Which you can find on both Steam and Humble Store with a price of $14.99 USD / £12.56 / 14,99€, including the 25% discount. while offering support for Linux, Steam Deck (playable), Mac, and Windows PC.
0 notes
ludoonline · 3 months ago
Text
Essential Game Development Tools for Every Mobile App Development Company
As mobile apps continue to evolve, user expectations are skyrocketing. It’s no longer enough for an app to function—it needs to engage, entertain, and retain. That’s why more mobile app development companies are turning to game development tools to supercharge user experience.
Whether building a full-fledged game or adding gamified elements to a business app, the right tools can make all the difference. In this blog, we’ll explore some of the essential game development tools every mobile app development company should know and use in 2025.
Why Game Development Tools Matter for Mobile App Development
Gamification is now a dominant trend across industries. From fitness and education to e-commerce and finance, apps that apply game mechanics like rewards, levels, and interactivity see higher retention rates.
Game development tools offer frameworks, engines, and environments that enable developers to build immersive and responsive experiences without starting from scratch. For mobile app development companies, these tools unlock creative freedom, reduce development time, and deliver better results.
Top Game Development Tools to Consider
1. Unity
Unity is arguably the most popular game development platform in the world. It supports both 2D and 3D mobile game development and is compatible with iOS and Android.
Why Mobile App Developers Love It:
Easy integration with AR/VR
Massive asset store
Multiplatform support
Strong community and documentation
2. Unreal Engine
Known for stunning graphics and high-performance gameplay, Unreal Engine is a go-to for more advanced or visually rich mobile games.
Ideal For:
High-end games
Simulation-based apps
Apps requiring photorealistic visuals
3. Cocos2d-x
Cocos2d-x is a free, open-source engine best suited for 2D game development. It’s lightweight and efficient, making it perfect for fast-loading mobile apps.
Best Use Cases:
Casual games
Educational apps
Simple UI animations in non-game apps
4. Godot
Godot is gaining popularity for being beginner-friendly and open-source. It’s great for companies building custom mobile games or gamified app features on a budget.
Perks:
Node-based architecture
No royalties or licensing fees
Ideal for prototyping
5. Buildbox
Buildbox is a drag-and-drop game builder designed for developers who want to create simple mobile games without extensive coding.
Why It’s Great:
Quick MVP development
Fast prototyping for gamified features
Intuitive interface for designers
How Game Development Tools Enhance Mobile App Development
Even outside of traditional games, these tools can:
Improve user interface interactivity
Enable reward systems and loyalty points
Create animated progress tracking
Support mini-games inside functional apps
Deliver cross-platform consistency
Game Development Services Meet Mobile App Innovation
Many game development companies in India now offer integration services specifically for mobile apps. By partnering with a game development company like ApperStudios, mobile developers can seamlessly add features like AR experiences, real-time multiplayer functionality, or gamified onboarding.
For example, a mobile app development company creating a fitness tracker might integrate Unity-based animation to guide users through workouts, or a fintech app might include spin-to-win reward games using Cocos2d.
Final Thoughts
Incorporating the right game development tools is no longer just a tactic for game studios—it's a strategic advantage for mobile app development companies aiming to boost user engagement and retention. Whether you're building a game, a business app, or something in between, these tools are key to staying ahead of the curve.
0 notes
bluebraintechnologies · 7 months ago
Text
Emerging Technologies in UI Development: Shaping the Future of User Experiences
In the ever-evolving world of web and app development, User Interface (UI) design continues to be a focal point for enhancing digital experiences. The introduction of new technology in UI development is transforming the way users interact with digital platforms, making them more intuitive, accessible, and visually engaging.
Tumblr media
1. Artificial Intelligence and Machine Learning in UI Design
AI-powered tools are changing the game in UI development.
Predictive Interfaces: AI learns user behavior to offer personalized layouts and suggestions.
Design Automation: Tools like Adobe Firefly or Canva’s AI design assistants streamline repetitive tasks, allowing developers to focus on creativity.
AI-Powered Chatbots: Integrated seamlessly into interfaces, these provide instant support and enrich user interactions.
2. Motion UI for Dynamic Experiences
Motion UI brings life to digital interfaces through animations and transitions.
Micro-Interactions: Subtle animations, like button clicks or loading indicators, improve user engagement.
Smooth Navigation: Transition effects between pages or sections enhance the flow and keep users engaged.
Feedback Loops: Dynamic responses to user actions (e.g., hover effects or error indicators) improve usability.
Tools like Framer Motion and Lottie are gaining popularity for creating sophisticated motion UI elements.
3. Advanced Front-End Frameworks
New front-end frameworks and libraries are simplifying complex UI designs:
React.js and Vue.js Enhancements: Continuous updates make these frameworks faster and more efficient for building interactive UIs.
Svelte: An emerging framework known for its lightweight architecture and exceptional performance.
Web Components: Facilitates the creation of reusable, encapsulated components, reducing development time.
4. Progressive Web Apps (PWAs)
PWAs bridge the gap between web and mobile experiences by providing:
App-Like Interfaces: Responsive and intuitive designs that mimic native mobile apps.
Offline Functionality: Allowing users to access content even without internet connectivity.
Faster Loading: Lightweight UIs enhance performance, especially on low-bandwidth networks.
5. Voice-Activated Interfaces
Voice UI (VUI) is becoming integral to modern applications, thanks to advancements in natural language processing (NLP).
Hands-Free Interaction: Useful for accessibility and smart devices.
Multimodal Experiences: Combines voice commands with visual feedback for richer interactions.
Popular Tools: Alexa Skills Kit and Google Assistant SDK help integrate voice capabilities.
6. Dark Mode and Adaptive Themes
User demand for customizable UIs has driven the adoption of dark mode and adaptive themes.
Energy Efficiency: Reduces screen brightness to save battery life.
Eye Comfort: Reduces strain, especially in low-light environments.
Dynamic Adaptation: Themes that adjust based on user preferences or system settings.
CSS variables and modern browser APIs make implementing these features easier for developers.
7. Augmented Reality (AR) and Virtual Reality (VR)
AR and VR are unlocking new possibilities in UI development:
Immersive Interfaces: AR-based UIs overlay digital elements on the real world.
3D Navigation: VR-driven UIs create interactive environments for gaming, e-commerce, and education.
Development Platforms: Unity and WebXR are popular tools for building AR/VR interfaces.
8. Low-Code and No-Code Platforms
Low-code and no-code tools are democratizing UI development:
Drag-and-Drop Builders: Enable rapid prototyping without extensive coding knowledge.
Customization Options: While simplifying the process, these platforms still allow tailored designs.
Popular Platforms: Webflow, Bubble, and Figma are leading this space.
9. Accessibility-First Design
Inclusivity is at the forefront of modern UI development.
Assistive Technologies: ARIA (Accessible Rich Internet Applications) roles make interfaces more navigable for screen readers.
Color Contrast Checkers: Tools ensure visuals meet accessibility guidelines.
Keyboard Navigation: Designs now prioritize non-mouse interactions.
10. Advanced Design Systems
Comprehensive design systems are streamlining UI development:
Reusable Components: Libraries like Material Design and Ant Design standardize UI elements.
Cross-Team Collaboration: Design systems bridge gaps between designers and developers.
Scalability: Ensures consistency across platforms as projects grow.
Final Thoughts
The future of UI development lies in its ability to merge cutting-edge technology with user-centric design principles. From AI-driven customization to immersive AR/VR experiences, the potential to create exceptional digital interactions is endless.
As new technologies continue to emerge, staying updated and adaptable is key to delivering interfaces that not only meet but exceed user expectations. Whether you’re a developer, designer, or business owner, embracing these innovations will keep you ahead in the ever-evolving digital landscape.
Tumblr media
0 notes
krunnuy · 9 months ago
Text
Top Technologies and Frameworks for Building a Ludo Game App
Tumblr media
The surge in popularity of cellular gaming has made ludo game improvement one of the most sought-after opportunities within the gaming industry. Building a successful Ludo game app involves more than simply an extraordinary layout; it requires the right mixture of technology and frameworks to ensure seamless overall performance, cross-platform compatibility, and a tremendously engaging user experience.
In this article, we’ll explore the pinnacle technologies and frameworks utilized in Ludo sport improvement. Whether you’re a developer or a business trying to release a Ludo game app, expertise in those gears will help streamline your task and create a triumphing product.
Essential Technologies for Ludo Game Development
When it comes to ludo game development, selecting the proper technologies is crucial for ensuring your recreation performs well and appeals to a huge range of users. From game engines to programming languages, every element plays a crucial position within the development technique.
Game Engines for Ludo Game Development
Game engines form the backbone of any sport, which includes Ludo. They offer the necessary tools for rendering photographs, managing physics, and coping with sports logic. Here are a few top recreation engines used in ludo sport improvement:
Unity
Unity is one of the most popular recreation engines, especially for mobile video games. It helps each 2D and 3D recreation improvement and is understood for its strong functions, move-platform competencies, and good-sized asset keep. Unity makes it smooth to create Ludo sports apps for multiple structures like Android, iOS, or even WebGL.
Unreal Engine
While Unreal Engine is often related to excessive-end portraits for AAA titles, it's also an effective device for Ludo game improvement. Unreal Engine gives superior rendering talents, which can be a completely unique selling factor for Ludo games looking to stand out with stunning visuals and immersive environments.
Cocos2d
Cocos2d is an open-supply game engine that is especially nicely perfect for 2D games, making it a first-rate choice for Ludo. It is lightweight and clean to use, with integrated aids for a couple of platforms. For builders looking for a price-powerful solution, Cocos2d is an exquisite choice.
Programming Languages for Ludo Game Development
Selecting the right programming language is fundamental to building a solid and scalable Ludo recreation app. Different languages serve extraordinary functions; however, all aim to make the improvement manner extra green.
JavaScript
JavaScript is a great preference for Ludo game development, particularly in case you’re growing a browser-based version of the game. With the help of game libraries like Phaser or Babylon.Js, JavaScript may be used to address each game's logic and front-end rendering.
C#
C# is the preferred language for developers to use Unity. It affords a high level of functionality for handling sports mechanics, player interactions, or even multiplayer functions. Its robust integration with Unity makes it an apparent desire for Ludo sport improvement.
Python
Python, although much less common in massive-scale recreation improvement, is ideal for prototyping and scripting in Ludo video games. Its simplicity permits for fast improvement, and its libraries like Pygame offer beneficial gears for primary sport creation.
Top Frameworks for Ludo Game Development
Choosing the proper frameworks for ludo game improvement can significantly improve your sport’s overall performance, speed up development, and make certain compatibility across diverse platforms. Let’s take a look at a number of the exceptional frameworks available.
Cross-Platform Frameworks for Ludo Game Development
With the developing demand for cross-platform games, developers want frameworks that permit them to put in writing code once and install it across multiple operating structures.
Flutter
Flutter is a UI toolkit from Google that permits developers to create natively compiled programs for mobile, web, and desktop from an unmarried codebase. Its warm-reload function speeds up the improvement procedure, and its noticeably customizable widgets ensure the introduction of visually appealing, high-performance Ludo sports apps.
React Native
React Native is a famous choice for go-platform Ludo game improvement. It permits builders to create cellular apps using JavaScript and React, which might be easier to analyze and put into effect. The framework supports actual-time updates and affords smooth animations, making it ideal for interactive gaming studies.
Xamarin
Xamarin, powered by Microsoft, allows for go-platform cell app improvement in the usage of C#. With Xamarin, developers can proportion about 90% of their code across systems, reducing improvement time and costs. Its seamless integration with local libraries guarantees excessive performance, making it a very good choice for ludo recreation improvement.
Multiplayer Networking Frameworks for Ludo Game Development
For a game like Ludo, which is regularly played with a couple of gamers, having a reliable multiplayer framework is essential. Here are some top frameworks that make multiplayer integration simpler.
Photon
Photon is one of the most generally used multiplayer networking frameworks for mobile games. It is extraordinarily scalable, reliable, and supports real-time multiplayer functionalities. For Ludo recreation development, Photon guarantees clean conversation among players, improving the gaming experience.
Colyseus
Colyseus is an open-supply multiplayer framework that is straightforward but powerful. It integrates seamlessly with popular game engines and makes developing multiplayer capabilities sincere. With Colyseus, builders can quickly set up real-time participant connections and cognizance extra on gameplay mechanics.
SmartFoxServer
SmartFoxServer is another powerful multiplayer framework that supports a huge variety of structures. It is enormously scalable, making it ideal for Ludo games that anticipate huge numbers of gamers. SmartFoxServer’s capabilities encompass real-time messaging, matchmaking, and superior room management, all of which contribute to an immersive multiplayer experience.
Other Important Tools for Ludo Game Development
Beyond the core technologies and frameworks, several other gear play a key role in a success-ludo game improvement. These include UI/UX design equipment and backend improvement equipment.
UI/UX Design Tools
User interface and revel in are important in retaining players engaged. Tools that facilitate UI/UX design make sure the game is visually attractive and easy to navigate.
Adobe XD
Adobe XD is a powerful tool for developing interactive prototypes and wireframes for cell recreation packages. It allows developers to layout consumer interfaces with precision, ensuring an unbroken gaming revel for Ludo gamers.
Figma
Figma is a cloud-based design tool that makes collaboration easier. Designers and developers can work collectively in real-time, ensuring that the game’s UI/UX isn't always the most effective functional, but additionally visually lovely.
Sketch
Sketch is extensively used for mobile app design because of its easy-to-use interface and powerful vector-modifying talents. It's an incredible device for designing the consumer revel in of a Ludo game, mainly in terms of icons, buttons, and layouts.
Backend Development Tools
Backend improvement tools make sure that your Ludo game app runs easily behind the scenes, handling records, player profiles, and real-time updates.
Node.Js
Node.js is a popular desire for building scalable backend structures. It is ideal for Ludo game development because it handles actual-time statistics transmission efficiently, making it perfect for multiplayer video games.
Firebase
Firebase gives a backend-as-a-service (BaaS) that simplifies the development system. It offers actual-time database management, consumer authentication, and cloud storage, all of which are crucial for the easy operation of multiplayer Ludo video games.
AWS Lambda
AWS Lambda is a serverless computing carrier that allows developers to run code without provisioning servers. This ensures scalability, as AWS mechanically scales your backend based on the wide variety of energetic users.
Conclusion
In the end, deciding on the right technology and frameworks is important for a successful Ludo game improvement. Game engines like Unity, move-platform frameworks that include Flutter, and multiplayer answers like Photon make sure your recreation is engaging, scalable, and fun for users across the globe.
If you’re looking for professional steerage for your Ludo game project, contact AIS Technolabs these days for top-notch Ludo recreation improvement services.
FAQ
Q1: Which game engine is first-rate for Ludo sport improvement?
Unity is one of the fine recreation engines for Ludo sport development, offering pass-platform competencies and an extensive range of gears to beautify the gaming experience.
Q2: Can I use Flutter for Ludo recreation development?
A: Yes, Flutter is a first-rate framework for building cross-platform Ludo games, offering a single codebase for both Android and iOS platforms.
Q3: What are the important multiplayer frameworks for Ludo recreation improvement?
A: Some of the pinnacle multiplayer frameworks for Ludo sport improvement include Photon, Colyseus, and SmartFoxServer.
Q4: How critical is backend technology in Ludo recreation improvement?
A: The backend era is critical for managing real-time facts, user authentication, and multiplayer interactions, ensuring the clean operation of the sport.
Blog Source: https://justpaste.it/b7xyq
0 notes
hydralisk98 · 10 months ago
Text
Angora (software toybox dev 2024-09.2)
Tumblr media
LibreVast Ideadump
(first do with minimal narrative, no multiplayer and fewest stats so no RPG, no VN, no MMO... yet)
Learn my way into "Level Design" with TTRPG addventure modules and video game-design AnarchyArcade, Valve games...
Turn-based 2D top-down exploration addventure (C#/F#/GDScript) and then progress it towards a first person puzzler experience
PuzzleTree + LDtk (2D Gridmap) -> Codex Level Builder (early 3D Gridmap) -> Doom BinarySpacePartitioning with Spatial-Hashing & Verlet-Integration -> FuncGodot & Juicy FPC (UE5 Nanite + Red Eclipse-like?)
Educational & Edutainment game dev akin to Zachtronics
RealTimeStrategy? (Starcraft2-like)
TurnBasedStrategy? (FreeCiv-like)
TurnBasedTactics? (XCOM-like)
Overworld + Shopping Mall Gridder? (DungeonMaster?)
Roguelike? (RougeTide)
FirstPersonController Puzzler? (Frames-like)
ShootThemUp? (Cooperative)
KartRacing? (top-down Arcade Racing)
Starnest/Starvast as StatRaiser? (Videotome Heartbreak?)
Art RPG / VirtualPetSite?
Raycaster -> Raymarching?
SVG MazeWars?
Solo adventuring...
Party-based CRPG?
MultiUserDomain?
LegendOfZelduh1?
Metroidvania?
MiniRadarGame?
InfrastructureBuildingSystems
Ecosystem Simulationism
Persistent Ecosystems (Logistics, Bases, Factions, Agency)
Procedural and Handmade Quests
Emergent Behaviors
Open-er Exploration
Alternative routes & sidetrack puzzle tasks
Checklists hiding option
No grind (minimal mechanical labor)
Few final end-states & making losing fun
Collectibles & inventory tracking in orthogonal and restrained manners
Female likable main characters
Studying Europa Universalis 4
Studying Civilization 5 CE Maskoch-modpack
Studying Tyranny
Studying OpenTTD
Studying (Ironwail + Trenchbroom) Quake 1
Studying Doom
Studying Ken Sivlerman and their corpus (Duke Nukem 3D, BUILD2...)
Studying Raycasting (Wolfenstein 3D)
Studying Gridders (Maze Wars & Dungeon Master)
Studying Wizardry & Ultima 1-3
Studying Cyberpunk RED
Studying NOVAverse
Studying d20System (mostly Pathfinder 2E & D&D 3.5)
Studying GURPS corpus
Studying Paradise
Studying iXe
Studying Tarot, Dice & other procedural generators
Daggerfall Modding?
Transformation-based game, module or quest
Custom data-banking system
Infinite rich HTML virtualized canvas?
Chunk World-wrapping methods (X-wrap?)
Phonebook System
Boids & Statistical / procedural crowds agentive System (Monte Carlo-based?)
Economy System
Job / Career System
Factions System
Multilingual System
Skill Trees
Virtual Snapshot-ting Realmscapes + with SourceLevelVersionControlSystems
Chunk loading, unloading, saving and exporting
Vector-based territorial domains management (estate infrastructure and automation games)
TextParserAddventure? (Zork+AMFV?)
HypermediaAddventureStorytelling (Addventure?)
Narrative RPG?
MassivelyMultiplayerOnline World?
Retro Usbourne 8-bit CRPG FreeBASIC implementation
Trial Engine (MultiAgent SocialLifeSim Systems?)
QGIS+OSM+Planetile for Angora worldbuilding
Unity game demos with MegaOCEAN + ExtendedZodiac NPC Agents (Love/Hate pkg), Political intrigues (Quest Machine pkg), Multilingual?
Turing Complete Modding Suite
Complete Character Sheet Party/Batch Customization Suite (AgentBankGen)
Customizable theme pack (KDE Plasma) as responsive UI/UX design system
Paper sketch batches to modular SVG sheets
0 notes
howtomakegamesinunity · 4 years ago
Link
Start menu in Unity - unity ui
C#,unity,script menu unity,unity ui tutorial 2020,créer un menu unity 2d,option menu unity,unity button start,unity ui builder,menu system unity,unity pause menu,
1 note · View note
yudiz123blog · 5 years ago
Link
Unity has recently added the new UI builder for designing and creating better user interfaces of interactive apps, games, and experiences. There are necessary components of UI Like Button, text field, scroll, etc. are already given. So, we can Drag and drop those components to design our UI documents (.uxml files) and for color and styling, a stylesheet (.uss file) is created. If you are familiar with XML, CSS, and C#, you can also design through code.
0 notes
dangersam · 2 years ago
Text
Hey everyone, quite a few fixes and improvements have accumulated since the last demo update, so I decided it was worth releasing another one.
Release notes:-
Many optimisations to UI, overlays, and indicators. Improves performance especially with a large number of parts / constructions.
Minor tweaks to builder tool:-
Click and drag "threshold" now only applies to move manipulator.
Prevented dragging the part selection's pivot point below ground.
Increased targeting distance.
Removed "Prevent Interpenetration When Attaching Parts" toggle from "advanced options" (still available in the demo by setting "PartPenetrationTestEnabled" to false in the debug console).
Added toggle to "advanced options" to disable the centre of mass indicator.
Modified control wheel part behaviour to check for player distance and facing direction.
Added option to light part behaviour settings for disabling shadow casting.
Implemented copy paste for part behaviour settings.
Improved part resizing indicator to show numbered unit dimensions.
Gear engagement indicators now shown for all gears in part selection when aligning.
Added settings to controls options to invert horizontal and / or vertical mouse rotation of the part selection.
Updated help UI screen.
Bug fixes.
Upgraded to Unity 2021.3.26.
4 notes · View notes
kerbaldevteam · 6 years ago
Text
Kerbal Space Program 1.8: “Moar Boosters!!!” is now available!
Tumblr media
Hello everyone!
New gadgets are coming from the Research and Development facility, the kind that will get Kerbals screaming: MOAR BOOSTERS!!! A brand new update is here and with it comes better performance, fresh new features, improved visuals, and new parts being added to our players’ creative repertoire!   
Kerbal Space Program 1.8: Moar Boosters!!! is an update focused on making the game perform and look better, all while introducing more quality of life features that will improve the overall player experience. We’re also bringing some new solid rocket boosters to the VAB, as well as introducing some exclusive treats for owners of the Breaking Ground Expansion.
Let’s go through some of the update’s highlights below:
Unity Upgrade
Moar Boosters!!! brings an upgrade to the underlying engine of the game to Unity 2019.2, which helped us implement performance and graphics improvements, as well as better rendering performance and a reduction of frame rate stutters. With the new tools that this upgrade provides, we’ll be able to continue refining the game in upcoming updates.
Celestial Body Visual Improvements  
Mun, Minmus, Duna, Ike, Eve and Gilly have new high-quality texture maps & graphic shaders, and now look sharper and more realistic! You will also be able to select the celestial bodies’ shader quality in the settings and set them to low (legacy), medium or high, with improvements being visible across the board. These are just part of the first batch of celestial bodies being overhauled, slowly but surely we will continue this endeavor.
Tumblr media
Map Mode improvements
Map mode received some adjustments too! Now you can use docking mode and stage your craft whilst in map mode. The stage display button (formerly stage mode) now serves as a toggle to show and hide the stage stack, whether you’re in flight or map view, and selected map labels will now persist when going back and forth between map and flight mode. 
New SRBs!
A range of new solid rocket boosters have been added to the game. From the tiny .625m stack size Mite to the titanic 2.5m wide, 144ton Clydesdale, these new boosters will offer a range of versatile solid-fuel options. Making History owners get an extra bonus here too with the “Pollux” and a 1.875m nose cone to fit on top of it.
Tumblr media
Breaking Ground Exclusives
Kerbal Space Program 1.8: Moar Boosters!!!  also includes some exclusive content for owners of the Breaking Ground Expansion. A new set of fan blades and shrouds will continue to push the creativity of KSP players even further. Use them to create drones, ducted fan jets, or anything you can imagine. 
Improvements to the helicopter blades and the robotic part resource consumption have also been included. The latter will now have better info on consumption and improved options for power-out situations.
Tumblr media
And more!
To learn more you can read the full Changelog here:
=============================v1.8.0=========================== 1.8.0 Changelog - BaseGame ONLY (see below for MH and BG changelog)
+++ Improvements
* Upgrade KSP to Unity 2019.2.2f1 version. * Standalone Windows build now uses DX11 Graphics API. Many visual improvements to shaders and FX. * Implement Unity Incremental Garbage Collection. * Implement new celestial body shaders and textures for Mun, Minmus, Duna, Ike, Eve, Gilly. * Update Main Menu Mun terrain shader. * Add Terrain Shader Quality graphics setting. * Improve the TrackingStation load time. * Implement ability to edit Action Groups in flight. * Performance improvements to the VAB/SPH scenes. * Performance improvements in the flight scene. * Performance improvements in the Tracking Station scene. * Add ability to edit resource values in PAWs using the key input. * Add Warp to node button on dV readout in NavBall display. * Add enable/disable wheel motor Actions to all wheels. * Add ability to limit the maximum size of PAWs via settings.cfg. * Improve the Action Groups/Sets UI. * Add PAW_PREFERRED_HEIGHT to settings.cfg for players to set a prefered max height. * Made staging and docking UI available in map view * Pinned labels in map view now persist pinned even when leaving and re-entering map view * "Delete All" functionality for messages app has been implemented. * Improve the KSC grass and asphalt texture and shader to reduce tilling. * Improve textures for the VAB building on level one. * Model revamp for the level one and level two Research and Development nissen huts. * Increased precision for eccentricity in advanced orbit info display. * Upgrade VPP and improve wheel and landing leg function. * Expose global kerbal EVA Physics material via setting. * Add do not show again option to re-runnable science experiments. * Add actions for same vessel interactions functionality. * Implement per-frame damage threshold on destructible buildings. * Add vessel name title to flag PAWs. * Add a confirm dialog with the option of “Don’t display again” when a kerbal removes a science experiment data. * Disable Pixelperfect on UI Canvases to improve performance - available to configure via settings.cfg. * Increase precision for numerical editing of maneuver nodes. * Kerbal position on ladders and command pods improved. * Add ability for users to add their own loading screen pictures to the game. Folder is KSP/UserLoadingScreens
+++ Localization
* Fix incorrect naming of The Sun. * Fix Action Sets text in VAB/SPH for some languages. * Fix Text in dV KSPedia pages in Japanese. * Fix Chinese Localizations. * Fix dV readout for Chinese language.
+++ Parts
New Parts: * S2-33 “Clydesdale” Solid Fuel Booster. * S2-17 “Thoroughbred” Solid Fuel Booster. * F3S0 “Shrimp” Solid Fuel Booster. * FM1 “Mite” Solid Fuel Booster. * Protective Rocket Nosecone Mk5A (“Black and White” and “Gray and Orange”). * Add rock/dirt debris FX to the Drill-O-Matic and Drill-O-Matic Junior.
Updated Parts (reskinned): * Service Bay (1.25m). * Service Bay (2.5m).
Color Variants: * Protective Rocket Nose Cone Mk7 (New “Orange” color variant) * Protective Rocket Nose Cone Mk12 (New “Orange” color variant)
+++ Bugfixes
* #bringbackthesandcastle - Fix the Mun sandcastle easter egg from not appearing. * Fix Maneuver editor so that the mouse wheel adjusts the node now in the contrary direction (same behavior as dragging down/up). * Fix a null reference error when player threw away a vessel with fuel flow overlay turned on in the editor. * Fix an input lock when switching between Editing the vessel and the Action groups menu. * Fix user created vessels disappearing from the vessel spawn dialog. * Fix the random selection of Mun vs Orbit scene when returning to Main Menu. * Fix input field rounding on Maneuver Node editor fields. * Fix a Null reference in the Editor when selecting a part and opening the Action Part Menu. * Fix pressing Enter key confirms the game quick save dialog. * Fix PAWs will now scale downwards from the header keeping more consistency on the fields.  * Fix an input lock issue where some PAW buttons disappeared when editing a numeric slider field. * Fix Menu Navigation was missing in the quicksave dialog. * Fix Mini Settings had some items that would be skipped when navigating with the arrow keys. * Fix for remove from symmetry causing NRE in flight scene. * Fix the FL-A10 collider no longer mismatching its geometry. * Fix Control Surface and Aero Toggle Deploy Action not working in all situations. * Joysticks and gamepads on Linux are again recognized and usable. * Fix Action Groups UI and Color issues. * Fix the LV-T30 Reliant Liquid Fuel Engine ́s bottom attach node. * Fix a texture seam on the Probodobodyne Stayputnik. * Fix a z-fighting issue on the destroyed VAB at level 3. * Fix the Z-4K Rechargeable Battery Bank ́s bottom attach node. * Fix the concrete tiling texture of the SPH at level 3. * Fix a grass texture seam in front of the VAB at level 3. * Fix missing texture and animation on the level one  Administration Building flag. * Smoothened Kerbal IVA expression transitions to avoid strange twitching. * Make the LV-TX87 Bobcat exhaust FX more appropriate. * Fix kerbal portraits when launching vessel with multiple kerbals in external command chairs. * Fix drills operating when not in contact with the ground. * Fix thrust center on the Mainsale engine. * Add bulkhead profile to LV-T91 Cheetah, LV-TX87 Bobcat, RK-7 Kodiak and RE-I12 Skiff. * Fix re-rooting of surface attach nodes. * Fix kerbal IVA expression animations transitions. * Fix shadows at KSC and in flight. * Fix “sinker” warning during game load. * Fix lengthy Map Transition when lots of vessels in the save. * Fix overlap in vessel type information window. * Fix a Null Reference when copying parts with alternative colours. * Fix an error where the custom crafts were not loaded in the Load Craft dialog after navigating the tabs. * Fix a null reference when clicking the Remove Symmetry button on some parts. * Motorized wheels no longer keep generating torque even when the motor is set to ‘Disabled’ * Re-centered an off center scrollbar in the mini settings dialog. * Rebalance decoupler, MK1-3, MK1 lander can, MK2 lander can, separators costs, crash tolerances, weight.
+++ Mods
* Target framework now .NET 4.x. * DXT3 DDS formatted textures are not supported by Unity or KSP any more. You must convert to DXT5. * Added UIPartActionWindow.UpdateWindowHeight to allow mods to dynamically set the PAW max height * MapviewCanvasUtil.GetNodeCanvasContainer created as more performant method than MapViewCanvasUtil.ResetNodeCanvasContainer. Use the rest one only when you need to force a scale reset * ModuleResourceAutoShiftState added that can be used for startup/restart of parts based on resource availability. * VesselValues are now cached per frame. Can use ResetValueCache() to reset the cache.
1.8.0 Changelog - Making History DLC ONLY
+++ Improvements
* User can now click and drag and release to connect two nodes in the mission builder.
+++ Parts
New Parts: * THK “Pollux” Solid Fuel Booster
Updated Parts (reskinned): * Kerbodyne S3-14400 Tank * Kerbodyne S3-7200 Tank * Kerbodyne S3-3600 Tank
+++ Bugfixes
* Craft Thumbnails are not shown/generated for stock missions. * Fix Kerbals spawning on EVA in missions spawning on their sides (very briefly). * Fix Intermediate and Advanced Tutorial becoming stuck. * Fix Typos in some part descriptions. * Fix vessel width and height restrictions on Woomerang and Dessert in career games. * Fix camera becoming stuck if in IVA mode when a vessel spawns in a mission set to change focus to that vessel. * Fix hatch entry colliders on the M.E.M. lander can.
+++ Missions
+++Miscellaneous
+++ Mods
1.8.0 Changelog - Breaking Ground DLC ONLY
+++ Improvements
* Add renaming of Deployed Science Stations. * Add alternators (producing electric charge) on LiquidFuel Robotic Rotors. * Add propeller blade AoA, lift and airspeed readouts to their PAWs. * Add Reset to built position button in PAWs of Robotic parts which causes them to reset their Angle, RPM or Extension. * Add shutdown/restart function to robotics parts based on resource availability. * Add preset curves functionality to the KAL controller. * Add part highlighting on mouseover in KAL. * Improve Robotic Part Resource usage info in editor. * Add interact button to open PAW for Deployable Science parts. * Added new KSPedia slides for Grip Pads, Propellers and Track Editor. * Improve Robotics Parts Resource usage to use less resources when moving slower. * The PAW button “Reset to Launch Position” for robotic parts now reads as, “Reset to build:” + Angle, RPM or Extension depending on the robotic part to avoid confusion.
+++ Localization
* Fix description text on R7000 Turboshaft Engine in English. * Fix localization of resource name in robotic part PAWs. * Fix KAL help texts.
+++ Parts
New Parts with Variants: * S-062 Fan Shroud * S-12 Fan Shroud * S-25 Fan Shroud * R-062 Ducted Fan Blade * R-12 Ducted Fan Blade * R-25 Ducted Fan Blade * Readjusted the liftCurve, liftMachCurve and dragCurve values on the propellers and helicopter blades.
Rebalanced Robotic Resource Consumption values: * G-00 Hinge * G-L01 Alligator Hinge * G-11 Hinge * G-L12 Alligator Hinge * G-W32 Hinge * Rotation Servo M-06 * Rotation Servo M-12 * Rotation Servo M-25 * Rotation Servo F-12 * EM-16 Light Duty Rotor * EM-32 Standard Rotor * EM-64 Heavy Rotor * EM-16S Light Duty * Rotor, EM-32S Standard Rotor * EM-64S Heavy Rotor * 1P4 Telescoping Hydraulic Cylinder * 3P6 Hydraulic Cylinder * 3PT Telescoping Hydraulic Cylinder * R121 Turboshaft Engine  * R7000 Turboshaft Engine 
+++ Bugfixes
* Fix Deployed Science Log and Message system spam. * Fix Deployed Science parts sometimes exploding when coming off rails if in contact with another part (kerbal, etc). * Fix Deployed science parts being visible during the astronaut complex when opening that scene from the Editor. * Fix Robotic Parts using EC when moving to initially set position on launch. * Fix slider numeric values in some PAW fields could go out of range. * Fix autostrut processing for some use cases regarding root part being robotic part. * Fix autostrut delay when vessel comes off rails for vessel with robotic parts. * Fix Actions at the end of KAL track not firing in Play Once mode. * Fix separation of the blades when attached to an active rotor. * Fix rotation of cargo parts in extended tooltips. * Fix cargo part icons appearing in Astronaut Complex when pinned. * Fix drag on pistons. * Fix cargo parts now rotate at the same speed as in the Editor on the inventory grid during Flight. * Fix mirroring of hinges and rotation servos. * Fix KAL Window not closing when vessel goes outta range. * Fix incorrect naming of the Sun in science experiments. * Fix mirrored attaching to rotor side nodes.
+++ Miscellaneous
+++ Modding
Kerbal Space Program 1.8: Moar Boosters!!! is now available on Steam and will soon be available on GOG and other third-party resellers. You will also be able to download it from the KSP Store if you already own the game.
Click here to enter the Grand Discussion Thread for this release.
Happy launchings!
By the way, you can download the new wallpapers of the Moar Boosters!!! art here:
1080x1920p (Most Phones)
1080x2048p (Galaxy S9)
1440x2560p (iPhone X)
Desktop 1920x1080p
Desktop 2048x1080p
Desktop 2560x1440p
44 notes · View notes
blubberquark · 6 years ago
Text
Things To Think About Before You Implement Online Multiplayer
Sometimes people ask “how do I make an online multiplayer game?“ and then somebody answers “you don’t, you haven’t even made a game as simple Tetris yet“, and somebody else answers: “I never made an online game, but you should use TCP/IP. Here’s a link to the socket documentation.”
That’s just terrible. Sockets are low-level and tricky to get right.
Or maybe somebody links that poor sod to this YouTube video about how modern 3D shooter games do netcode. That’s also bad, but slightly less so. Game netcode is complicated, but not every game needs real-time shooting action.
Maybe you use Unity3D, and you just use the standard Unity networking tools that let a player host a game and automagically synchronise the state of game objects between all players. I think they changed that recently. Maybe the Unity3D multiplayer features are not at all what you need. Maybe you are in luck and you need something much simpler.
If you’re an experienced programmer, you already know how much of a hassle low-level networking can be, or you’re a beginner and would rather use a readymade networking layer for your engine. How do you evaluate which system is right for your game?
Sometimes a game can be easily made into an online multiplayer game, except for one or two features. It can help if you think about how game mechanics are interacting with online multiplayer while you design the game. If you design your game from the ground up to be easy to adapt to online multiplayer, you will have an easier time later. Multiplayer is like AI in that regard. Rather than making your AI smarter, you can also make your game world easier for simple algorithms to navigate.
This post will not teach you how to make multiplayer games. That is very much on purpose. It’s more general than that. This post is meant to make you think about what kind of multiplayer system your game needs. If you understand that, you can look at tutorials, protocols, libraries for networking, or prefab high-level multiplayer systems, and evaluate whether these are a good fit for your game.
Time Scale, Turn Structure
Real-Time: All players are in the game at the same time, seeing and interacting with each other. Waiting/standing around thinking might mean losing the initiative. Examples: Quake, StarCraft.
Turn-Based: Whichever way the turn order is decided - alternating players, active time battle, simultaneously, alternating units a la Worms - players have time to think their turn through, and don’t need to have fast reaction times. Players need for their opponents to finish their turns, but there can be a turn timer or a chess clock/byoyomi. Example: Advance Wars, Hearthstone.
Turn-Based (Play By E-Mail): This is like turn-based, except players don’t actually wait their turn inside the game. Instead they get an e-mail notification that their opponent made a move, have a couple of days to make their move, start the game, make their move, close the game, and wait for another e-mail. Example: Chess 2: the Sequel, Laser Squad Nemesis, Frozen Cortex.
Slow Real-Time: The game happens in real-time, but there is no real bad consequence for taking hours to perform an action. When you attack another player, it takes a day or so for the army to arrive. When you build a house, construction takes two hours. Many actions are instantaneous, but have half-hour cool-downs. You cannot really lose. It’s long-term and low-stakes in the short term. Examples: BattleNations, OGame, Pokemon Go.
If you’re doing real-time multiplayer, you might have to use UDP or a UDP-based networking system like ENet. If you’re making a turn-based game, you can get away with TCP, and if you’re making a slow or play-by-email game, you will be more concerned with saving game state to a database than with optimising network latency, so you can use a high-level RPC library on top of TCP or even a REST API on top of HTTPS.
This stuff is really important to figure out early: If your game is slow real-time, you probably need a database, but you don’t need any client-side prediction. It’s fine if some actions, like building a house in a city-building game, take half a second. You can hide the delay pretty easily. And when the actions by other players arrive ten seconds late and out of order, it doesn’t matter either. If you make an online city-builder game for the iPad, you don’t need the lag-reducing tricks used in Halo, but you will need to worry about saving the cities somewhere when users log off.
But imagine a one-second lag in a tennis game, or imagine your game nice and responsive, but then you hit the ball from your perspective only, and not in the view of the other player! In that case, you need something that’s both fast and accurate.
See also:
https://gafferongames.com/post/what_every_programmer_needs_to_know_about_game_networking/
Players vs World Size
Small World: The level is small, and over one play session, you will see the whole level and encounter all the other players. Examples: GangBeasts, Quake, raid dungeons in World of WarCraft.
Large World, Few or Independent Players: The world is big, and you are unlikely to encounter most players in a play session. Maybe most players are not even online. You interact only with a fraction of the world at any time. Examples: MineCraft, World of WarCraft (PvE).
Large World, Many Interacting Players: Examples: Fortnite, Destiny
In a small world, you can send everything other players do, and everything that happens everywhere to all other players.
In a large world, you can compartmentalise, or just send to each player the part of the world that he or she needs to see. Or you can have players cache the world locally. Maybe the map is static, so it can be stored locally, and maybe inventory items or crate contents can be handled server-side. Maybe mob AI runs locally if only one player interacts with a mob.
If many players interact with mobs and each other, state needs to be shared and synchronised, or actions must be handled server-side, which necessitates a round-trip. Destroying a block in Minecraft usually necessitates a round-trip, a confirmation from the server, and if you have high ping or packet loss it takes a noticeable while for the block to actually disappear. Chunks are saved or loaded from disk on the server, but also sent from the server to the client. It’s not necessary for the server to send the game state (players, mobs, items, blocks) for the whole world to all clients.
Pokemon Go has a large world, but players only interact inside arenas.
In Tetris 99, there are 99 players interacting in real time, but if somebody sends his lines half a second later, it’s not a big deal. There is a lot of state to share, but the players are mostly independent from one another.
Perspective
Shared View: All players have the same camera perspective. Example: Super Smash Bros
Fog of War: Players have the same camera perspective, but do not look at and cannot see the same things. Example: StarCraft
Different Perspectives: Players are looking from a first- or third-person perspective. Example: Quake
If all players share the same perspective, then discrepancies become very noticeable. In a shooter with different perspectives, it matters whether the shot hits from the perspective of the player who shot it. In a fighting game, everybody sees the same perspective, so a discrepancy in player positions can cause the game to look like a punch connects in the perspective of one player, while it doesn’t connect in the perspective of the other. In a game with one-hit K.O (Samurai Gun, TowerFall), such discrepancies are game-breaking.
In real-time strategy games, consistency is even more important. A single unit or a small initial tactical advantage can turn into a large material advantage quickly. You can often trade-off high lag for better consistency, and then hide the input lag behind the UI. Clicks should register in the UI immediately, even if it takes a while for the commands to be processed over the network. Usually, the game state between the players is 100% consistent, and the fog of war is calculated only locally.
In turn-based games, you never have to trade off input lag against consistency. First-person shooter netcode is necessarily very different from fighting game netcode or real-time strategy netcode.
Games like Halo or Fortnite can look different for different players and they won’t notice. A game like StarCraft must never look different for both players. It should look the same for both players, and the same as it will later look in the replay.
A game like Skullgirls will be unplayable with the slightest amount of lag. A game like Hearthstone can have a responsive UI, and just send things with a bit of lag, and it’s fine. You can’t interact with your opponent’s cards when it’s not your turn anyway.
If the game has a shared perspective, but players don’t interact directly, like in BrowserQuest, you don’t need to keep the state completely synchronised.
Connection Problems
Bandwidth: How many bits can go through the connection per second? 
Packet Loss: What fraction of packets arrives at the destination unharmed?
Latency: How long does it take for one packet to arrive?
Even high-bandwidth connections to the Internet can have high latency and packet loss, especially mobile and wireless. If you make a game, think about all three, and test how your game runs under suboptimal conditions! If the game becomes unplayable with a connection that is slow, low-bandwidth, or unreliable, consider checking and warning the player before entering a game!
High packet loss will probably lower both your bandwidth and your latency. If a player has a low ping most of the time, but lost packets introduce round-trips and lag spikes, then you need to work around that somehow.
You could send the updated player state to the server with every packet, and the updated game state to the player. This way, if one packet gets lost, and the server gets the next one, it will just take the newest state and apply that. If the older packet then arrives later anyway, it would just be discarded. You need to number your packets for this to work, but it’s easy enough to implement. But if you decide to use this method, players could hack their game client and just jump around on the map!
What do you do if there is a spike in lag, and then everything is fine again?
How do you detect that your game is running behind? If you use TCP for networking, packet loss means the packet is re-sent, and you will have to wait until the data arrives.
If you use plain UDP, you will have to deal with packet loss yourself. Both approaches have drawbacks.
What to Send
Input Data: Raw keyboard events, gamepad button presses, mouse movements, and joystick positions are sent to the server. The server decodes the input.
Abstract Actions: Commands like “(deal 5HP damage to player #7), (tell unit #5 attack F1)“
Differences: Send only the things that changed. This might necessitate a naming scheme to refer to game objects that changed and game objects that stay the same. For example: “(create Sprite #101 at (500, 0)), (update Sprite #3 position=(321, 10)), (destroy Sprite #1)“
Whole Game State: This can make sense if the whole game state is small anyway.
Maybe your server will send different data to the client than vice versa: The client could send abstract actions to the server, while the server sends back the whole game state.
This ties into the next point: If you send abstract actions to the clients, they need to apply them client-side. If you send input data to the server, the server can use it to compute the next game state, and send the game state back to the clients, or the server can bundle and relay client inputs to other clients.
If your game is something like two-payer Tetris, or Tetris 99, it might be simpler to occasionally send the state of the whole arena, instead of the movements of the falling pieces.
Simulation
Server-Side Only: The game runs on the server, and the clients don’t run code that implements the game mechanics, only things like UI, input, and rendering. Frequent round-trips might cause lag. Usually used in MUDs.
Server-Side (with Client-Side Prediction): The game runs on the server, but also on the clients. The clients simulate the game mechanics based on local game state, but the server has the final say. The clients calcualte the game state based on local inputs in order to reduce lag, but when the server data conflicts with the locally calculated game state, the server-side game state wins out. This minimises input lag, but might cause inconsistent game states. Players who lag behind have a disadvantage. Usually used in modern shooter games with cloud servers.
Client-Side (Peer-To-Peer): The game runs on every client, and every client keeps the game state of its own player. Inconsistencies happen, but game code is executed on each player’s client based on that client’s view of the world. This is susceptible to cheating. Used to be common in shooter games, and is still used in retro shooter games like Cube/Sauerbraten.
Client-Side (Lockstep): The game runs on every client, and every client has exactly the same game state at all times. If one client lags behind, the game slows down for everyone else, or that client drops out and has to re-synchronise its game state. The game state is too large to be sent over the network frequently, so only (abstract) player inputs are sent over the network. The game engine must run completely deterministically for this to work, or at least the gameplay mechanics. Things like animation and particle effects may have some nondeterminism. This method is used in real-time strategy games with lots of units, if it would take too much bandwidth to send the position of every unit during every frame.
This is not an either-or thing. Often some important but less frequently updated aspects of a game could be handled completely server-side, like quests, inventory, and player stats (especially currency and experience points), while movement and combat have client-side prediction. Some MMO games use Peer-To-Peer communication in certain areas and between friends, but server-side simulation in others.
Some games use client-side game simulation running in lockstep, but still relay all data through a central server. This way, the server can synchronise the inputs and ensure that input data data is received by all clients at the same time - if one client receives a click even one frame late, the simulations wouldn’t be running in lockstep any more!
When you are running multiple simulations in lockstep, or even doing normal client-side prediction with high-precision numeric calculations, you need to take special care to ensure that the floating point calculations on different processors and operating systems are numerically stable and deterministically reach the same results.
If you are using different floating point maths for graphics on different clients, maybe a difference in rounding results in a texel being one pixel to the left, or in different patterns of z-fighting. But if you have different floating point behaviour in gameplay code, small rounding errors can add up quickly. You can avoid such errors by always using integers internally, always using exact decimals or fractions, or by using a server-authoritative architecture with robust conflict resolution. In this case, you can have either side use whatever floating point type is fastest, but you need to send the server state to the client frequently, and provide a conflict detection or resolution method in case the client diverges too far.
If you have some things, like inventory and experience on the server, you have to think about where to draw the line. If a mob drops an item, does that happen on the client or on the server? If a player picks up an item, or uses an item from the inventory, that needs to happen on the server, or to be confirmed by the server.
Related links:
https://gafferongames.com/post/networked_physics_2004/
https://www.forrestthewoods.com/blog/synchronous_rts_engines_and_a_tale_of_desyncs/
https://www.forrestthewoods.com/blog/synchronous_rts_engines_2_sync_harder/
Metagame/Save State
Persistent State: When the players log off, the state is kept, or saved on the server, to be loaded again in the next play session. (as opposed to ephemeral state: When the game ends, ephemeral data is discarded)
Replays: Players can save and re-watch game replays.
Ladder: The server maintains win/loss stats and skill estimates for players.
Lobby, Server Browser: There is a UI to choose a server, start a game, and find or talk to players before the actual game starts.
This is not important to implement right away, but worth keeping in mind.
If your game world is living on the server, and the server is running all the time, you need to use some kind of ACID database to store the game state, or a method to regularly save savegames on the server, in case somebody in the data centre trips over the cable, or, far more likely, your server code crashes. You probably don’t need to save everything, but again, probably things like currency, XP, inventory and quest state are important, mob positions, health, mana and animation state less so.
You might want to have a “lobby“ client that lets you browse and connect to servers, chat with other players, and look up ladder statistics. Sometimes the “lobby“ client doesn’t load the full game engine, but is a regular desktop program built using a normal GUI toolkit, that lets you configure the game and find other players, before the actual game engine is started. SpringLobby is such a “lobby client“.
If your game engine is deterministic, you can just store actions or input data, and if you feed that into the engine again at the right times you have a working replay system. Otherwise you need to think about how replay would work, and what to save in a replay file.
It is especially important to keep such metagame features in mind because if you simplify your game design or deliberately cut some corners in your game design, implementing server-side persistence becomes much easier.
If your game is play-by-email, or has a significant ladder/social component, you need some server-side persistence, to store player profiles, replays of finished games, win/loss statistics, or game states of unfinished games.
It might make sense to have a lobby client while you’re developing an online game, even when you will later want to have everything in one process, one GUI toolkit, and one engine: When you’re using PyGame, you could have one TkInter program that connects to the server browser and chat system, which then launches another process that uses PyGame and no Tk.
There are advanced topics, like detecting de-synchronisation, host migration and streaming game state to late joiners, that you probably won’t need to worry about in your first game. What you need to do is to think about what kind of game you are making, and what kind of networking your game would need.
Would it be a big deal if two players see different things? How badly will lag affect gameplay? Can lag be hidden by starting actions locally before the server confirmed then? What must be computed on the server, and what can be done on the clients?
Then, and only then, can you decide to just use whatever networking comes with your game engine.
13 notes · View notes
breezethegame · 6 years ago
Video
youtube
Dev Log #2 - April 30, 2019
So, it's been a productive couple of weeks! I got some rather disappointing news that might affect my productivity for a while, but gonna keep truckin' along as much as I can. Anyway, here's the current changelog since the last dev update!
I also wanted to start doing some videos as I think that they might cut down on the amount of writing/explaining and might be a little more engaging. I already wrote up a large changelog below, so I'll be adding it too, as I didn't want to add all this content to the video (so lazy, I know).
Anyway, here's a pretty lengthy Changelog:
Updated Unity and Project to a newer version
Platform dropping now requires holding down then pressing jump. This will reduce mistakes when performing directional attacks.  
HP Properly updates now. It will take into account the player’s health.
GameOver works now. It will respawn the character to the last checkpoint.
A character can respawn at his starting position or at a checkpoint depending on if they’ve entered a checkpoint.
Checkpoint system now works. These are triggers that when entered by the player, will inform the relevant system.
Refactored every single script to match a naming convention that makes it easier to know that is doing what
Fixed some issues with the dialogue system
Created a new Actor Editor
Created a new Scene Builder that also makes it easier to create objects
Music looping now takes into account the currently playing song
Hurt/Hitstun works properly now
Much more optimized Statemachine system that’s also much easier to add new states too.
Refactored the animation state machines and have them sharing a common base state machine. This makes it easier to setup animations when new characters are created
Updated RoomManager to evaluate events when moving into new rooms and doing things such as loading and executing cutscenes right when you walk in
Attacks can now spawn/shoot projectiles
UI now includes new animation events thanks to DoTween
File/Asset Clean up. Got rid of a lot of unneeded place holders and scripts written for testing purposes.
Player can now be spawned using a spawner and no longer has to be placed in a scene manually.
Updated framedata to store more information such as independent vibration and camera shake variables
Added Scene Fade in/Out effect. This will play automatically when entering a scene.
Projectiles will now emit particles when they hit stuff.
Added “Pressed Start” to the main menu.
Added a Scene and Game reset button (R&T)
Message Box UI will now wait until the message box is fully rendered before drawing text.
Breeze retains his health between scenes
Cutscenes no longer automatically pause player’s physics.
Created Scriptable Data for Music. This will store the Song’s name, Loop Point, and potentially some other information.
And for some other misc stuff:
Revealed like, 3 characters in one weekend (Hume, Float, and Peb).
Developed Updated Height Chart for the Current cast (this was a lot of work)
Developed Model Sheets for the sprites of the Demo characters
Started Development on Pathfinding/Navigation system for AI.
Selected an Enamel Pin vendor and submitted an Order, then received it the day I wrote up this post!
49 notes · View notes
prontoinfosystem · 2 years ago
Text
Exploring the Top Mobile App Development Software Tools
Introduction:
Tumblr media
Mobile app development has witnessed tremendous growth over the years, and with the increasing demand for mobile applications, developers now have access to a wide range of software tools and platforms. These tools streamline the app development process, making it more efficient and accessible to developers of varying skill levels. In this blog post, we will explore some of the top mobile app development software tools that have gained popularity in the industry.
Android Studio:
Android Studio stands as the official integrated development environment (IDE) for Android app development. It offers a comprehensive set of tools, including a visual layout editor, code editor, and debugging capabilities. With its seamless integration with the Android SDK, developers can efficiently build, test, and deploy Android applications.
Xcode:
Tumblr media
Xcode serves as the primary IDE for iOS app development. Designed by Apple, Xcode provides a wide array of tools and resources for developing applications targeting iPhones, iPads, and other Apple devices. It includes an interface builder, a source code editor, and an iOS simulator for testing and debugging purposes.
Flutter:
Flutter, an open-source UI framework developed by Google, enables developers to create cross-platform applications using a single codebase. By utilizing the Dart programming language, Flutter offers a rich set of customizable widgets and delivers a native-like experience on both Android and iOS platforms. Its hot-reload feature allows for rapid development and real-time code changes.
React Native:
Tumblr media
React Native, a popular cross-platform framework developed by Facebook, empowers developers to build mobile applications using JavaScript. It employs a native rendering engine, allowing developers to create high-performance apps with native-like user interfaces. React Native facilitates code sharing between platforms, reducing development time and effort.
Xamarin:
Owned by Microsoft, Xamarin is a powerful cross-platform development framework that employs C# and .NET. With Xamarin, developers can create native mobile applications for Android, iOS, and Windows using a shared codebase. It provides access to native APIs, ensuring a rich user experience across multiple platforms.
PhoneGap:
PhoneGap, also known as Apache Cordova, is an open-source framework that allows developers to build mobile applications using web technologies such as HTML, CSS, and JavaScript. PhoneGap apps can be deployed on various platforms, including Android, iOS, and Windows Phone, by utilizing a single codebase.
Appcelerator Titanium:
Tumblr media
Appcelerator Titanium offers a platform for developing native mobile apps using JavaScript. With Titanium, developers can leverage a single codebase to create applications for both iOS and Android platforms. It provides extensive access to native device features and allows for rapid prototyping.
Adobe Experience Manager Mobile:
Adobe Experience Manager Mobile provides a suite of tools for building and managing mobile apps. With features like app creation, content management, and analytics, it enables developers to deliver engaging and personalized experiences to users. The platform supports app development for both iOS and Android platforms.
Unity:
Tumblr media
Primarily known for game development, Unity can also be used to build mobile applications. Unity offers multi-platform support, allowing developers to create 2D and 3D apps for iOS, Android, and other platforms. It provides a robust development environment and a wide range of assets and plugins.
Conclusion:
The mobile app development software tools mentioned above provide developers with a range of options to create innovative and feature-rich applications for different platforms. From native development to cross-platform frameworks, each tool has its own strengths and advantages. Depending on the requirements of your project, you can choose the software tool that aligns best with your development goals, preferred programming language, and target platforms. By leveraging these tools, developers can streamline their workflows, save time, and deliver exceptional mobile app experiences to users.
0 notes
lonelygamedev · 2 years ago
Text
Ludum Dare 53 Devlog
So I decided to do the recent Ludum dare that was coming up sense i’ve haven’t done one in awhile. I practice a bit of coding before hand and while doing that I was trying to think of a solution to a typical problem I have in game jams where I get easily distracted by youtube or something, so I thought turning the internet off would help before hand I wrote out a few style’s and do and do not’s 1: No 3D unless if it involves simple models and textures 2: Have game finished on Saturday 3: Sunday be polish And Menus + sound and some graphics 4: Almost No writing 5: Little Music 6: NO COMPLICATED MENUS! UI CODE IS THE WORK OF THE DEVIL! 7: NO RPG'S I also had a few ideas of style’s I could do or gameplay types that I might be able to fit the theme into Idea 1: Temple OS style FPS Idea 2: City Builder Idea 3: NES Zelda Idea(Warning Too Big! most likely) The Jam eventually started at friday on 7 PM with the theme being Delivery The First Idea was A NES zelda where you deliver packages and I immediately had a bad feeling about it sense it’s like many of my other game jams “Oh I have this fantastic open world game idea!“ 7 days later: “oh shit I have 3 hours left and it’s nothing that I wanted!“ But in the end I couldn’t come up with a Idea and I wanted to get started so I went with the Zelda idea where you deliver packages to people I should also mention I will occasionally be using the internet but only for a hard problem and to have a change in Music considering I don’t have much on my computer
Chapter 1: Friday So the first thing I did was made a Sprite sheet for getting some basic graphics by 9:45 PM I got the camera and Movement sorta done On 10:21 PM I created the MapManager where it manages the world and each screen you move too. I also created some Gizmos to tell me where a area is Chapter 2: Saturday 1:21 AM. well it turns out the back end of the code was actually quite complicated. I had to find a way to convert a world position. To a location of a room. then that room as a 2D array with no negative int’s that I also have to convert it too. Made it Incredibly annoying. I needed to do this for enemy AI to move tile by tile so I used a method that was likely incredibly Inefficient and horribly complicated but only did it because it was what I was similar with I also created a Test AI that just Moved Randomly just to Move it can’t go out of a room and collide with walls. Tho some enemies spawn into walls due to the fact that unity’s tile colliders made it hard to tell what is and what isn’t a collider sometimes. I then went to bed 12:49 PM After a Incredibly long sleep I made the Health system like zelda where you have half hearts. Also created the Item interface so I can have a sword with a attack now 2:55 PM The Inventory system. My fucking god what a pain, like I said UI code is the devil. And in the end it didn’t even entirely work, just hard to just convert a 1D array to a 2D grid. Should’ve write it on MS paint or paper to help Now this is where thing’s get a bit Iffy sense I forgot to record alot of stuff I might’ve spend the rest of the day on a Quest sytem + some NPC’s and the entire map Chapter 3: Sunday 12:52 AM So Here I thought up some enemies and coded them. one of them being a Bull that charge’s at you until it crashes into a wall, the other is some kind of zombie that throws at you and the other is a Bear that charges at you. stops and slashes at you and I mostly added him as a excuse to add bear traps. sense while thinking of gameplay I thought of luring and trapping enemys as a gameplay thing 1:00 AM Added money and made enemy flash when you hit them 2:19 AM got the basic UI for the store. sense alot of it was just Reuse inventory code so it’s not too hard. alot of the hard stuff will be the buying code and such 2:44 PM finally made it able to buy items and also equip them
So then I ran out of footage I know I wrote most of the quest. then created the character’s and graphics which took awhile. also the enemies. The Sound. by then it was Monday. I missed the combo deadline but I might be able to do the jam. so I just wanted to get it finished as soon as possible. I sorta felt like it was pointless considering you just deliver pointless packages to NPC’s. I wasn’t able to do the dungeons and I didn’t feel all that invested. Didn’t even did the soundtrack though luckily I didn’t forget the sound. The graphic looks alright. the Main menu was....lacking to say the least and I enter early on monday after spending all night on it. and went to sleep halfway though I came up with a Idea for a Pizza delivery Crazy taxi ripoff that I felt would’ve been better After the game jam I decided to watch a few streams of people playing games. one of them being someone called LittleDoctorGames. and while watching them I noticed that I was able to submit my game and I did just for the hell of it. Eventually I realized I had to create a twitch account and be in chat for them to play. Not really planning on using it much other then lurk and occasionally have fun in chat. I actually had a pretty good time in there with nack’s(I think that’s the person who run’s it). we enjoyed talking about metal, a few movie’s and was just a good place to have joke and chill. honestly too the point where I didn’t really mind that it took awhile for them to get to my game, next night actually. Was sorta worried sense i’m not exactly used to see people looking at my game’s and most of the time it’s a somewhat bland reaction. but it was actually really great somehow they enjoyed my 5 AM quickly slapped together dialogue where I stopped caring. and the gameplay didn’t turned out bad. It was actually fun for some people which is sorta a foreign concept to me. that people actually enjoyed it. I guess I was lucky to pick zelda sense I learnt from that game that even if the AI can be annoying with their random movement. it can be enjoyable from the choices you make and exploring. Which some people seem to enjoyed. being impressed by the size of the map for a game made in Ludum dare In all honestly the more I look back at my abandoned projects I was amazed by how well this came out. Even simple projects sometime can just be left in the dust but this one turned out fine despite it being ludum dare Which is often way too short for me. I guess the turning off the internet work amazingly and sorta made me sad I didn’t gave my all on the game by the end to resolve some of the issues making it a solid ludum dare entry. But I guess that’s more next time A few more fun fact: Most of the music are half recorded song’s for meme’s. 3 rammstein album’s. a tool album and 2 tear’s for fear’s album. and when I had the internet on I was really into Biting Elbows. I think on sunday and monday I listed to the elemental album 4 or 3 time’s alone another fun fact is the funny glitches. one of which happen after the game jam finished which was when I was showing a family member and realized bear traps where Infinite but yeah Ludum dare 53 was surprising fun. I’ll definitely be revisiting and I’ll definitely be using that no internet rule for more of my project so expect more progress soon here’s the game I made https://ldjam.com/events/ludum-dare/53/fetch-quest-simulator
0 notes
projectussle · 7 years ago
Text
The State Of The Game
Greetings, Tusslers! I hope everyone’s been enjoying Smash Bros. Ultimate as much as I have! In a completely unrelated note, I haven’t really gotten much done these past two weeks, so I don’t have any progress to report. However, I’ve been getting some questions from people for a while that I’ve been just answering individually over and over, so I’d like to have a blog post I can refer people to in order to more clearly explain things if new people find this project.
First off, a bit of project history. I started this project shortly after I graduated college, which was around the time Smash 4 was released. I had just gotten my degree in Computer Science, but I mainly just wanted to make games. With no real experience doing so, I figured I’d finally try to follow through on a dream of mine and create a Smash Bros MUGEN to recapture the feeling of discovery I had with Brawl modding back in it’s heyday. I started on the project in Python, mainly because I knew Python and I liked it.
This project eventually picked up a bit of steam, and culminated in the PyTussle build you might find on Gamejolt. Working in Python had its positives and negatives. On the one hand, since Python is a scripting language and not a compiled language, loading code and assets from disk was an absolute breeze. Fighters could be scripted up in Python and the file would just run. On the other hand, 3D was well out of my capabilities, and the software rendering of PyGame meant that the game just didn’t run at a reasonable speed unless your machine had a ballin’ processor.
I made the decision to switch engines to one that would allow for 3D, and would handle the rendering better than Python. Unity made the most sense at the time (UE4 would go free only a few months later, but I found UE4 to be even more impenetrable than Unity), but I hadn’t quite gotten over my hangups about controlling all of the internals of my game and there was quite the adjustment period. I had (and still have) a lot of trouble dealing with the black boxes of things like Physics and UI, which aren’t as customizeable as I’d like, but I’ve been making some huge strides in understanding.
This means, though, that a lot of my early Unity TUSSLE work is an absolute mess of spaghetti code and poor design patterns. It got to the point that working within it to make a character was nearly impossible. At that point, I chose to change the way fighters load actions into a different data type that would make the character builder possible, but that meant that I no longer had a working Action File for Hitboxie to actually play the game with. The new method works easier in the builder, but can’t be edited by hand the way the old XML fighters could, meaning I won’t be able to replace the fighter action file until the builder is done.
What this means is, currently, the most recent version of TUSSLE is not actually playable, while a deprecated version from a few years ago is. You can sort of think of PyTussle as a playable proof-of-concept for the real game, that is still in development. If you just want to see the game in action, check out the Python build. If you want to make characters or stages for the game, please be patient and check back on this blog (or follow my Twitter). If you are a developer and would like to help out with the Unity build, please feel free to join our Discord server and message me.
As for the future, this project is currently just a passion project I’m working on in my free time. When I started this, I was a recent college grad doing temp work part-time. Now, I’m working full-time at an actual career-type job with it’s own bag of stresses and deadlines (hey kids, did you know “salary work” just means “work tons of overtime and we won’t pay you any extra”? Because I didn’t!). As of the time of writing, I am the only active developer on this project, so progress has been slow-going. I’m doing my best to work at a moderate pace, but no one can work constantly. If you’ve been following this project for a while, you know I’ve settled into a sort of feast-or-famine dev cycle. I’ve been trying to move to a more consistent pace recently, so I hope this break phase will be over soon, and that next week I won’t be writing another filler update.
Hope that cleared up a bit of the project’s history, status, and future. If you are interested in the project, please feel free to join our Discord server and hang out! And if you’re as consumed by Smash as I am, maybe we’ll run into each other on the fields of battle!
Until next time, Tusslers!
6 notes · View notes