Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 37
» Latest member: Ludwig
» Forum threads: 240
» Forum posts: 1,729

Full Statistics

Online Users
There are currently 111 online users.
» 0 Member(s) | 110 Guest(s)
Bing

Latest Threads
Copliot's comment on NaaL...
Forum: Programming
Last Post: luwal
5 hours ago
» Replies: 0
» Views: 8
Final Destination
Forum: NaaLaa 7 Code
Last Post: johnno56
9 hours ago
» Replies: 9
» Views: 1,814
Hangman - Text
Forum: NaaLaa 7 Questions
Last Post: johnno56
9 hours ago
» Replies: 7
» Views: 442
Copliot's comment on NaaL...
Forum: Programming
Last Post: luwal
Yesterday, 01:43 PM
» Replies: 0
» Views: 55
Copliot commented on RCBa...
Forum: Programming
Last Post: johnno56
Yesterday, 06:15 AM
» Replies: 5
» Views: 533
Game programming in Rust
Forum: Programming
Last Post: luwal
06-03-2025, 07:09 AM
» Replies: 0
» Views: 313
Scratch VS Microsoft Make...
Forum: Programming
Last Post: luwal
06-03-2025, 01:25 AM
» Replies: 0
» Views: 306
Javascript Scripting Engi...
Forum: Programming
Last Post: luwal
06-03-2025, 01:18 AM
» Replies: 0
» Views: 294
Three popular Python game...
Forum: Everything else
Last Post: johnno56
06-02-2025, 09:36 PM
» Replies: 5
» Views: 1,453
RCBasic question: this pr...
Forum: Programming
Last Post: luwal
06-02-2025, 01:21 PM
» Replies: 16
» Views: 4,016

 
  Copliot's comment on NaaLaa(call external libraries)
Posted by: luwal - 5 hours ago - Forum: Programming - No Replies

(https://copilot.microsoft.com/)

I asked Copliot a good question about NaaLaa:
What influence will appear if dynamic link library can be called by NaaLaa?

Copliot's answer:
Allowing NaaLaa to call dynamic link libraries (DLLs) would have a significant impact on its capabilities and its appeal to developers. Here are several key influences that such an enhancement might have:

1. Expanded Functionality and Flexibility

  • Access to Native Code: By interfacing with DLLs, NaaLaa could leverage precompiled native code written in languages like C or C++. This means that developers can tap into libraries that offer advanced algorithms, specialized graphics rendering, physics simulations, or access to system-level operations that would otherwise be beyond the reach of a higher-level environment.
  • Feature Rich Ecosystem: The ability to load DLLs opens the door to reusing a vast range of existing libraries. Instead of reinventing the wheel, developers could incorporate well-established libraries for tasks like audio processing, networking, or even artificial intelligence. This modularity makes NaaLaa more attractive as a versatile tool.

2. Performance Enhancements
  • Optimized Operations: Certain computational tasks benefit from being executed as compiled native code. For example, complex mathematical simulations or intensive physics calculations can run much faster when offloaded to a DLL compared to interpreted code. This can lead to smoother gameplay experiences and more sophisticated game mechanics.
  • Reduced Overhead: Integrating performance-critical modules as DLLs can reduce the processing overhead inherent in a higher-level language, allowing NaaLaa to handle more complex or resource-demanding tasks without sacrificing responsiveness.

3. Improved Interoperability and Integration
  • Bridging Technologies: DLL support enables NaaLaa to act as a bridge between its own scripting environment and the broader ecosystem of native libraries. This means that projects that already use specialized software components can be more easily integrated. For developers, this creates a more cohesive development experience and can shorten the time to market for big projects.
  • Platform-Specific Optimizations: With DLL calls, NaaLaa can offer platform-tuned functions, which is especially important when targeting Windows environments. This might include utilizing hardware acceleration features or optimized system calls that elevate the overall performance of applications built with NaaLaa.

4. Community Growth and Plugin Ecosystem
  • Encouraging Extensions: When a tool allows third-party DLL integration, it naturally encourages the community to develop plugins and modules. This kind of ecosystem can lead to a vibrant library of add-ons and specialized tools that improve NaaLaa’s utility and attract a broader audience.
  • Custom Modules and Shared Code: Experienced developers could build and share custom DLLs that extend NaaLaa’s capabilities. Over time, this can create a repository of shared resources, lowering the entry barrier for newcomers and offering powerful building blocks for advanced users.

5. Considerations and Potential Challenges
  • Stability and Security: While calling DLLs provides great power, it also introduces risks. Bugs or memory mismanagement in a native DLL can lead to crashes or security vulnerabilities that are harder to manage in a managed environment. Ensuring robust error handling and secure interfacing will be critical.
  • Cross-Platform Concerns: DLLs are primarily a Windows-centric technology. If NaaLaa aims to be widely portable (for instance, to Android or web browsers), the integration method must either abstract away platform-specific details or provide alternative solutions for non-Windows systems (like shared libraries on macOS/Linux).

Conclusion
Incorporating DLL calling capabilities into NaaLaa could fundamentally transform it from a niche or simplified tool into a more robust and versatile development platform. The benefits include enhanced functionality, improved performance, and a richer ecosystem through community-built plugins and modules. Nonetheless, these advantages come with the need for careful design to manage stability, security, and cross-platform compatibility.

Print this item

  Copliot's comment on NaaLaa(Android games, browser games)
Posted by: luwal - Yesterday, 01:43 PM - Forum: Programming - No Replies

(https://copilot.microsoft.com/)

I wanted know how Copliot would predict the fate of NaaLaa. Therefore, I asked Copliot this question:
How will the fate of NaaLaa be changed if Android games or browser games can also be made with NaaLaa?

Copliot's prediction:
Expanding NaaLaa’s capabilities to include Android and browser game development could have a transformative effect on its future. Here’s how such cross-platform support might change its fate:

1. Expanded Market Reach

  • Larger Audience: By enabling developers to build for Android and web platforms, NaaLaa would tap into enormous and diverse gaming markets. Mobile gaming has a massive global audience, and browser games offer instant accessibility without the friction of downloads. This expanded reach could lead to increased adoption by indie developers and hobbyists who simply want to reach more players.
  • Increased Revenue Opportunities: More platform options mean more revenue streams—whether through mobile ads, in-app purchases, or web-based monetization methods. This can incentivize both developers and the tool’s maintainers to invest in further enhancements.

2. Enhanced Developer Appeal
  • Modernization: Today’s game developers expect cross-platform capabilities as a given. Adding Android and browser support would modernize NaaLaa, positioning it alongside engines like Unity, Godot, and Construct. This not only makes it competitive but also more attractive to developers who want to prototype and publish quickly across multiple platforms.
  • Lowered Barrier to Entry: For newcomers especially, having a single tool that allows the creation of both traditional desktop games and modern mobile or web games is a big plus. It simplifies the workflow, making it easier to learn and iterate without having to switch to entirely different engines.
  • Community Growth: Cross-platform features can energize the community. Developers who see success on multiple platforms are likely to share tutorials, create sample projects, and contribute modules or plugins—fostering a vibrant ecosystem that can drive further innovation and attract even more users.

3. Technical and Competitive Considerations
  • Engine Versatility: Implementing support for Android and browser targets would likely require updates to its runtime, toolchain, and possibly the scripting environment. If done well, these improvements can enhance NaaLaa’s overall architecture, making it more robust and future-proof.
  • Competitive Edge: Currently, many popular engines tout their cross-platform capabilities as a major selling point. By meeting this expectation, NaaLaa not only stays relevant but might even carve out a niche by offering a unique combination of simplicity and versatility—particularly if it can maintain its signature ease of use while extending its reach.
  • Long-Term Sustainability: Increased platform options could lead to a broader developer base and more commercial projects built with NaaLaa. This, in turn, can attract further investment in maintenance and new features, ensuring the tool evolves alongside industry trends.

4. Potential Challenges
  • Performance Optimization: Supporting diverse platforms means ensuring that games run smoothly whether they’re on a mobile device or in a browser. This can be a technical challenge, requiring performance tweaks and possibly even platform-specific optimizations.
  • User Experience Consistency: Developers will expect consistent behavior and a smooth workflow regardless of the target platform. Maintaining that consistency can be demanding, especially when dealing with the varied capabilities of modern mobile hardware and browser environments.
  • Ecosystem Transition: Existing users may need additional documentation and tutorials to help transition projects to these new platforms. However, this also presents a welcome opportunity to build a more robust and supportive community around NaaLaa.

Conclusion
If NaaLaa successfully embraces Android and browser game development, its fate could change dramatically. It would unlock new markets, attract a broader developer base, and position itself as a versatile tool in a competitive landscape. These capabilities could be a game changer—pun intended—transforming NaaLaa from a niche tool into a serious contender among cross-platform game development engines.

Print this item

  Hangman - Text
Posted by: johnno56 - 06-07-2025, 12:20 AM - Forum: NaaLaa 7 Questions - Replies (7)

@Marcus

I had a free morning to spare (I know... How rare, right?) and decided to convert a simple (as in appearance) text version of hangman from QB64pe to N7.

In the compressed file I have included: The font files; current N7 listing; hangman word listing (hangman.txt) and the QB64pe hangman2.bas listing (reference)

I have ironed out the usual obvious code difference; added functions to replicate the "Locate" and "String" commands but I am having an annoying problem with "mid$(" (I know, N7 uses mid() ... lol)

The mid() function seems to be used to replace text in a string. Cool... Use the replace command, right? The only problem is that the replace command uses strings in all of it parameters - replace(main string, string to replace, replacement string).  mid() uses: mid(main string, start position, length)

Line #55 states: mid(Letters, Lp, 1) = "_" and produces a syntax error... I even tried mid(Letters, Lp)

Obviously, mid(), is used to replace a single character at position 'Lp' of the string 'Letters' with "_". 

I cannot see a way to exchange mid() for replace()...  or am I going about this in the wrong way? lol

J



Attached Files
.zip   hangman.zip (Size: 67.15 KB / Downloads: 2)
Print this item

  Copliot commented on RCBasic 4.2(new version)
Posted by: luwal - 06-04-2025, 01:00 AM - Forum: Programming - Replies (5)

A new version of RCBasic was released: https://rcbasic.freeforums.net/thread/88...2-released

Thus, I asked Copliot a question: (https://copilot.microsoft.com/)
Ok....Please make a comment on or a prediction of the fate of RCBasic 4.2 since version 4.2 is so amazing.

Copliot's post:
RCBasic v4.2 looks like a true turning point for the platform, and its fate could be very bright if the community embraces these changes. Here are some thoughts and predictions on the impact of this ambitious update:

A New Era of Capabilities

  • Bundled 2D and 3D Editors: The introduction of Nirvana2D and Serenity3D is a game changer. With a dedicated 2D world editor that includes a sprite editor, animation tools, a complete collision and tileset editor, RCBasic now offers a fully integrated environment for 2D game development. The addition of Serenity3D, with its texture, material, and mesh editors alongside a comprehensive scene editor, means that users can design and preview 3D content within the same ecosystem. This dual-editor approach significantly broadens the scope of what can be accomplished with RCBasic, letting it compete more directly with modern game development platforms—even while it maintains its simplicity and accessible BASIC-like charm.
  • Streamlined and Modernized API: The renaming of collision-related functions and the addition of new ones for sprite offset management demonstrate a commitment to refining the language’s interface. These changes not only simplify the API but also hint at the designer’s desire to make the engine more intuitive and robust for complex game mechanics.
  • Enhanced Visual Effects through Shaders and Projectors: Incorporating shader-based materials that simulate reflections and color distortions, along with the introduction of features like the ProjectorActor, shows a clear intent to embrace modern graphical effects. This could open the door to more visually sophisticated projects, attracting developers interested in both aesthetic quality and performance.

Predictions for RCBasic’s Future
  1. Growth in Community and Adoption: With these new powerful tools, existing users will likely deepen their work with RCBasic, and new users could be drawn in—especially indie developers, retro hobbyists, and educators. The bundled editors lower the entry barrier for creating complete projects, fostering quicker prototyping and more impressive demos that can spread by word of mouth.
  2. Revitalized Niche in Indie Development: RCBasic has always had a sort of nostalgic charm, and this update could very well reinvigorate its niche market. By striking a balance between retro simplicity and modern capabilities, the language may solidify its status as an accessible alternative for developers who prefer scripting and lightweight development workflows over heavy, conventional engines.
  3. Potential for Further Innovations: Beyond the current scope, if the momentum continues, we could see additional integrations such as dynamic library support, enhanced multi-platform compatibility, or even community-driven modules that further extend its functionality. The update signals a willingness to evolve, which is essential for long-term relevance in a rapidly changing digital landscape.
  4. Competitive Edge Through Simplicity: While other engines increasingly focus on feature bloat and complexity, RCBasic’s focus on simple, powerful tools—now with the ability to handle both 2D and 3D—might appeal to developers seeking a leaner, more straightforward approach. This unique positioning could carve out a solid niche amidst more heavyweight alternatives.

Final Thoughts
RCBasic v4.2 is not just an incremental update—it's a bold step toward modernizing the tool while respecting its legacy. By providing robust built-in editors and streamlining key features, it is poised to draw both old-school fans and contemporary developers who value efficiency and direct control. If the momentum continues and future updates build on this foundation, RCBasic could very well secure a lasting place as a versatile tool in the indie game development scene.

Print this item

  Game programming in Rust
Posted by: luwal - 06-03-2025, 07:09 AM - Forum: Programming - No Replies

(https://copilot.microsoft.com/)

The programming language Rust looks popular.

I asked Copliot:
On Itch.io, many games were developed in Rust. Is Rust a very popular programming language for game development nowadays? What is the reason? Which game libraries do these developers use with Rust?

Copliot's answer:
Rust has been steadily gaining popularity among indie game developers, and you’ll often see Rust-based projects on platforms like Itch.io. . Although it isn’t yet the go-to language for AAA titles, its combination of high performance, memory safety without a garbage collector, and modern language features has made it a favorite for many independent studios. Here’s a detailed look at why Rust is attracting game developers and which libraries they typically use:

Why Rust for Game Development?

  1. Performance and Memory Safety Rust is a compiled language that delivers performance comparable to C or C++ but with strong compile-time checks that eliminate many common bugs and crashes. Its ownership model ensures memory safety without the overhead of a garbage collector. In game development—which often demands both speed and reliability—this feature lets developers write highly optimized code while reducing the risk of runtime errors.
  2. Concurrency and Modern Features Modern games, even indie titles, often require efficient use of multi-threading for complex tasks like physics simulation, rendering, or game AI. Rust’s approach to concurrency helps prevent data races, enabling developers to write safe parallel code. This is a significant advantage when pushing performance boundaries in a game.
  3. Robust Tooling and Developer Experience Rust’s package manager and build system, Cargo, makes managing dependencies, compiling projects, and creating modular code straightforward. This streamlined workflow is a boon for developers who prefer a modern, well-organized development environment—a factor that’s contributed to the language’s popularity in the indie game community.
  4. A Growing and Passionate Community Rust consistently ranks as one of the “most loved” languages in community surveys. This enthusiastic community has produced a host of libraries, tutorials, and shared projects that lower the barrier for game development. Indie game developers find this supportive ecosystem invaluable when experimenting with new ideas.

Popular Rust Game Libraries
Developers using Rust for game development typically choose from a few prominent libraries and engines, tailored to different needs:
  • Bevy Bevy is currently one of the fastest-growing game engines in the Rust ecosystem. It uses a data-driven, Entity-Component-System (ECS) architecture that excels in handling both 2D and 3D projects. Its modern design, integrated editor (on the horizon), and rapidly expanding documentation make it a top choice for developers seeking to build complex, maintainable games.
  • ggez Inspired by frameworks like LÖVE2D, ggez is a lightweight game framework that aims to make 2D game development simple and approachable. It abstracts away many of the lower-level details so you can focus on game logic and design, making it ideal for smaller projects or prototypes.
  • Macroquad Macroquad is another lightweight, multi-platform game engine that emphasizes simplicity and ease of use. Its minimal API and fast iteration cycle allow developers to quickly prototype ideas, which is especially appreciated in the indie scene.
  • Additional Options: Some developers also experiment with libraries like Piston or Rust bindings for established C libraries (like raylib-rs). While engines like Amethyst used to be popular for game development in Rust, the community’s momentum has largely shifted toward Bevy due to its modern design and active development.

In Summary
While Rust as a language is enjoying rising popularity among indie game developers—which you can see reflected in many projects on Itch.io—the reason lies in its outstanding blend of speed, safety, and modern development practices. Its ecosystem, supported by libraries like Bevy, ggez, and Macroquad, offers a range of options from rapid prototyping to building more complex and scalable projects. For many developers, this combination translates into a highly productive and innovative environment in which to build games.
Would you like to dive deeper into any of these libraries or discuss specific case studies of Rust-based games to see how developers leverage these tools?

Print this item

  Scratch VS Microsoft MakeCode Arcade
Posted by: luwal - 06-03-2025, 01:25 AM - Forum: Programming - No Replies

(https://copilot.microsoft.com/)

Scratch is popular and MS MakeCode Arcade looks popular.

I asked Copliot:
Can you compare MS MakeCode Arcade with Scratch?

Copliot gave this comparison:
Both MS MakeCode Arcade and Scratch are block‐based, beginner-friendly programming environments that make it simple to create games and interactive projects. However, they have different strengths and design philosophies, which means each is better suited to different types of users and projects. Here’s a detailed comparison:

1. Focus and Specialization

  • MS MakeCode Arcade
    • Game-Centric Design: MakeCode Arcade is engineered specifically for building arcade-style 2D games. It provides built-in features like a sprite editor, collision detection, and sound synthesis that are central to game development.
    • Dual-Mode Coding: While it uses a drag-and-drop, block-based interface, it also supports text-based options (JavaScript/TypeScript). This duality enables newcomers to start with blocks and then progress to code if they want deeper control.
    • Integrated Simulator: Its simulator is designed specifically to test and iterate on arcade game mechanics, making it very convenient for rapid prototyping of game ideas.
  • Scratch
    • General Interactive Projects: Scratch was originally developed by MIT Media Lab to introduce programming through creative storytelling, animations, and simple games. While many games are created in Scratch, its scope is broader—allowing the development of interactive stories, animations, and art projects.
    • Massive Community and Project Sharing: Scratch has a vast global community with millions of projects already available. Its “remix” culture encourages learning through shared ideas and collaboration.
    • Educational Emphasis: With its highly visual and intuitive interface, Scratch places strong emphasis on learning the fundamentals of programming without overwhelming beginners with too many specialized features.

2. User Experience and Learning Curve
  • MS MakeCode Arcade
    • Straight to Game Development: The environment is streamlined for those with a clear goal of making a game. Its layout and tools (like the sprite editor and game loops) are tailored to help users quickly build and test game prototypes.
    • Transition to Text Code: As users grow more experienced or wish to implement features not covered by the blocks, the option to switch to JavaScript/TypeScript is a strong advantage.
    • Focused Curriculum: Tutorials and sample projects in MakeCode Arcade are almost exclusively about game development, which means learning resources are very targeted.
  • Scratch
    • Visual and Open-Ended: Scratch’s drag-and-drop interface makes it wonderfully accessible for absolute beginners. Users can experiment without worrying about syntax errors, and the open-ended nature means creativity isn’t limited to just games.
    • Wider Range of Projects: While this breadth is fantastic for creative exploration, it may deliver less specialized guidance if your goal is to build a game from start to finish.
    • Community Support: The enormous project gallery and community forums provide a wealth of shared knowledge, which is helpful for learners who want to see many different examples and styles.

3. Capabilities and Limitations
  • MS MakeCode Arcade
    • Advanced Game Features: Its built-in functions for handling game logic (e.g., collisions, scoring, animations) and its simulation environment allow for more sophisticated game prototypes, even if the underlying system remains simple.
    • Hardware Integration: Part of the broader MakeCode ecosystem (which extends to devices like the micro:bit), it sometimes offers opportunities for blending physical computing with game development.
    • Niche Scope: While it excels at prototyping 2D arcade games, the environment is specialized and may impose limits if you want to branch into non-game projects or very different system architectures.
  • Scratch
    • Versatility: Scratch is highly versatile, letting users build a wide range of interactive experiences—from simple games to animated stories. Its flexibility, however, can also mean that you might need to implement more things yourself when focusing on certain game mechanics.
    • Performance and Complexity: Scratch is superb for small projects and learning but is not designed for highly complex or resource-intensive games. The simplicity that makes it accessible also means there is a ceiling to how advanced your game can get before you might need to shift platforms.

4. Ideal Use Cases
  • Choose MS MakeCode Arcade if:
    • Your primary goal is to prototype or develop a 2D arcade-style game.
    • You value a focused environment that quickly gets you into game mechanics without distractions from non-game projects.
    • You are interested in eventually exploring text-based coding (JavaScript/TypeScript) from your block-based roots.
  • Choose Scratch if:
    • You're interested in creative exploration beyond just games—such as interactive stories or animations.
    • You appreciate the vast, collaborative community and the opportunity to learn by remixing projects from others.
    • Your projects are intended to be simple and educational rather than pushing the technical boundaries of game development.

Conclusion
Both platforms are excellent for learning and prototyping, but they serve slightly different niches. MS MakeCode Arcade is more specialized for building arcade-style games, offering features that streamline game development and allow for a more seamless transition into coding with JavaScript/TypeScript. In contrast, Scratch is an expansive creative canvas ideal for exploring various types of interactive media with a large community to support you.
Which platform is right for you depends on your goals:
  • If you are focused on creating polished 2D game prototypes and eventually want to dive deeper into game programming, MakeCode Arcade is a fantastic choice.
  • If you are exploring coding in general and want to experiment with a variety of creative projects while learning the basics of programming, Scratch remains an excellent tool.

Print this item

  Javascript Scripting Engine
Posted by: luwal - 06-03-2025, 01:18 AM - Forum: Programming - No Replies

I found this engine and it looks interesting.

https://gotojse.com/commandlist.html#About
https://gotojse.com/

Print this item

  FreeBASIC VS QB64 Phoenix Edition.
Posted by: luwal - 06-02-2025, 12:21 AM - Forum: Programming - Replies (2)

(https://copilot.microsoft.com/)

These two dialects look good so I asked Copliot:
Can you compare these two languages: FreeBASIC and QB64 Phoenix Edition.

Copliot gave this answer:
Below is a comparative analysis of FreeBASIC versus QB64 Phoenix Edition—two modern BASIC dialects that both claim lineage from QuickBASIC but target somewhat different niches and priorities.

1. Origins and Goals

  • FreeBASIC: FreeBASIC is designed as a modern, free BASIC compiler that not only supports much of the original QuickBASIC syntax but also extends it with powerful language features. It’s aimed at both hobbyists and those who need more advanced functionality (like direct C interoperability, pointer support, and user-defined types). The language’s design makes it suitable for both legacy QB projects and more modern programming challenges.
  • QB64 Phoenix Edition: QB64 is developed with an eye toward high compatibility with classic QuickBASIC. Its design philosophy is to allow old QB code to compile and run on modern systems with little or no modification. QB64 Phoenix Edition builds on that by offering a straightforward, sometimes “QB-purist” approach. To maintain this compatibility, QB64 intentionally avoids some advanced features (such as native pointer types) and instead relies on extensions (often prefixed with underscores, e.g.,  _MEM,  _OFFSET) to provide  extra functionality when needed.

2. Language Features & Syntax
  • Syntax Similarities: Both languages present a familiar BASIC syntax—no line numbers, intuitive keywords like  PRINT,  CLS,
    LOCATE , and a procedural, imperative style that harkens back to the QB era.
  • Extended Capabilities in FreeBASIC: FreeBASIC offers several modern enhancements:
    • Pointers & Inline Assembly: Gives you more direct control over memory and performance-critical code.
    • User-Defined Types (UDTs) and Advanced Data Structures: Allow for more complex program architectures.
    • C Interoperability: Lets you interface with external libraries and APIs directly.
  • QB64’s QB-Centric Approach: QB64’s syntax is made to closely emulate QuickBASIC’s behavior:
    • High QB Compatibility: You can usually run legacy QB code with minimal changes.
    • Minimalist Extensions: It adds new functionalities (often using underscore-prefixed keywords), but deliberately avoids introducing certain features—such as pointers—to maintain a simpler, more predictable environment.

3. Compilation and Performance
  • FreeBASIC: FreeBASIC compiles code into native executables typically via GCC. Many users have observed that FreeBASIC produces highly optimized binaries. For example, in certain demos (such as fast loops or graphic routines), FreeBASIC code might run so fast that developers need to introduce explicit delays. This performance is attributed in part to its ability to generate low-level C/C++ code tailored for speed.
  • QB64 Phoenix Edition: While QB64 also compiles to C/C++ behind the scenes, benchmark comparisons (as discussed in community threads 2) sometimes show that QB64-compiled programs run slower—especially in graphics-intensive demos. A contributing factor appears to be differences in the underlying graphic stack; QB64 uses SDL2 for handling graphics, which can offer stable and consistent rendering at the cost of raw processing speed.

4. IDE and Tooling
  • FreeBASIC: FreeBASIC does not come with an official full-featured IDE by default. Many users opt for external editors or community-created IDE solutions. This approach gives you the flexibility to integrate with your preferred tools but may require extra setup for newcomers.
  • QB64 Phoenix Edition: QB64 includes its own text-mode IDE reminiscent of the original QuickBASIC environment. This integrated development environment (IDE) is especially attractive to users who prefer an all-in-one package where editing, compiling, and running code are packaged together.

5. Platform Support and Community
  • Platform Support: Both languages aim at modern platforms:
    • FreeBASIC runs primarily on Windows and Linux—and it even has support for DOS.
    • QB64 Phoenix Edition is designed to be cross-platform, supporting Windows, Linux, and macOS.
  • Community and Ecosystem:
    • FreeBASIC has a long-standing and active community that values its advanced features and open design. Its ecosystem supports a wide range of applications—from simple demos to more complex projects.
    • QB64 Phoenix Edition attracts users who are particularly interested in preserving and extending the QuickBASIC experience. The community tends to focus on educational projects, retro-game development, and ease of transition for those coming from a QB background.

Conclusion
Both FreeBASIC and QB64 Phoenix Edition are strong choices for programmers interested in a modern BASIC dialect, but they serve slightly different goals:
  • Choose FreeBASIC if you want:
    • More advanced features like pointers, structured data types, and direct C interoperability.
    • Maximum performance and flexibility dfor a broader range of applications.
    • A modern take on BASIC that moves beyond strict QB compatibility.
  • Choose QB64 Phoenix Edition if you value:
    • A near drop-in replacement for QuickBASIC, ideal for running legacy code or learning in a familiar environment.
    • An integrated development environment that simplifies coding for beginners or for those with nostalgic ties.
    • Stable and predictable behavior without the complexity of lower-level features.
Which option is best depends on your project needs and whether you prioritize extended language capabilities or faithful QuickBASIC compatibility.

Print this item

  B4X VS PureBasic
Posted by: luwal - 05-30-2025, 11:21 PM - Forum: Programming - No Replies

(https://copilot.microsoft.com/)

B4X is so popular and therefore I asked Copliot this question:
Can you compare B4X with PureBASIC in detail?

Copliot professionally compares them: 
Let's dive deep into a detailed comparison of B4X and PureBasic. Although both stem from the BASIC family—which means they share an emphasis on simplicity and a relatively accessible syntax—their philosophies, ecosystems, and target use cases diverge in meaningful ways.

1. Approach and Ecosystem

  • B4X: B4X isn’t a single product but rather a suite of cross-platform RAD (Rapid Application Development) tools. It features:
    • B4A (Basic4Apndroid), B4J (Desktop/Server), B4i (iOS), and B4R (Embedded systems like Arduino). This unified suite allows developers to write code that can be ported among different platforms with minimal changes—a strong plus for those aiming at mobile and multi-device applications.
    • An active online community, rich documentation, and a vibrant forum environment where ideas, libraries, and even custom views (B4XUI) are exchanged. This community-based evolution makes it easier for beginners to find support and for experienced developers to push the technology further2.
  • PureBasic: PureBasic is a standalone product known for its focus on creating highly optimized, native executables. Its highlights include:
    • A design that caters primarily to desktop development (Windows, macOS, Linux), though it does offer limited cross-platform support.
    • A philosophy centered on providing low-level system access while maintaining a relatively simple BASIC-like syntax. This enables developers to create fast and resource-efficient applications, often important in game development and system utilities.
    • While its user base and community are dedicated, the ecosystem isn’t as expansive as B4X’s when it comes to cross-platform mobile or web app development.

2. Syntax and Development Experience
  • B4X:
    • Offers a clean, structured syntax that’s geared toward clarity and rapid development.
    • The integration of a visual GUI designer (especially in B4A and B4i) simplifies designing interfaces for both mobile and desktop apps—reducing the friction typically associated with coding UI elements.
    • Its event-driven programming model means that application logic is more intuitive for tasks like handling user interactions.
    • Developers benefit from live code swapping in some B4X tools, meaning you can see changes in real time without the full compile cycle—a significant boost to productivity.
  • PureBasic:
    • Maintains a similar BASIC simplicity, yet its syntax is often described as more “low-level” compared to B4X. This can be beneficial in cases where developers need to squeeze performance or interact closely with system hardware.
    • PureBasic’s design allows for highly optimized code generation. Developers are provided with many built-in commands that simplify handling windows, graphics, or even direct API calls.
    • The language gives you a bit more control over system resources, which is ideal for those who want detailed hardware-level behavior and performance tuning.
    • However, PureBasic’s development environment is generally more traditional—without the cross-platform, drag-and-drop interface conveniences found in B4X’s suite.

3. Platform Support and Deployment
  • B4X:
    • Excels in its cross-platform approach. Whether you’re targeting Android, iOS, desktop, or even embedded devices, B4X provides tailored solutions under one umbrella.
    • Its export options make it easy to deploy to a variety of platforms with relatively little extra work—ideal if your projects need to run on multiple devices from the get-go.
  • PureBasic:
    • Primarily focuses on desktop environments, and while it can compile for multiple operating systems, it lacks the mobile and modern embedded support that B4X brings out of the box.
    • The output tends to be lightweight native binaries that are particularly well-suited for performance-critical applications.

4. Pricing and Licensing
  • B4X:
    • Comes with a mix of free and paid options, with an open-source spirit behind certain projects. The licensing model under Apache License 2.0 (or similar) for many components ensures that there’s minimal friction for indie developers and enthusiasts.
    • Its free versions are robust enough for learning and prototyping, though professional use might benefit from the additional features available in paid tiers.
  • PureBasic:
    • Is offered as shareware or commercial software (depending on the version and licensing terms at the time). Although it may require an upfront purchase, it’s a one-time cost rather than a subscription for many users.
    • Some developers see PureBasic as a cost-effective solution for creating high-performance desktop applications, given its lean nature and minimal runtime overhead.

5. Community and Future Growth
  • B4X:
    • Benefits from a highly active and engaged community. The forums and online resources are frequently updated, with member contributions that improve libraries, share tips, and resolve issues.
    • The approachability for beginners—combined with the power to scale to more advanced projects—has cemented its position within various programming and app development circles.
  • PureBasic:
    • Also has a dedicated user base, but its community is generally smaller and more niche, often focusing on performance-critical applications and game development.
    • The historical longevity of PureBasic and its continued updates make it reliable, but the path for future growth is more incremental compared to the multi-platform, community-driven evolution of B4X.

Final Thoughts
Both B4X and PureBasic carry the DNA of BASIC, making them approachable while serving different practical needs:
  • Choose B4X if you’re seeking a unified, cross-platform development environment that lets you rapidly prototype (and then deploy) applications for mobile, desktop, and even embedded systems. Its visual tools, active community, and modern development conveniences make it compelling for a wide range of projects—from business apps to creative prototypes.
  • Choose PureBasic if your focus is on performance and resource efficiency in building native desktop (and game) applications. Its more low-level control makes it the choice for developers who want to squeeze every bit of performance while maintaining the clarity of BASIC syntax—and who may not require the same breadth of cross-platform mobile support.
Both tools have their unique merits; your decision ultimately hinges on your project’s specific needs and your preference for a modern, multi-device approach versus a more traditional, performance-focused development style.

Print this item

  Do you think that RCBasic or NaaLaa is good choice for children to start learning gam
Posted by: luwal - 05-30-2025, 09:09 PM - Forum: Programming - No Replies

(https://copilot.microsoft.com/)

Today I asked Copliot an interesting question:
Do you think that RCBasic or NaaLaa is good choice for children to start learning game development? Or Scratch is better? Or GDevelop is better? Or Python and Pygame are better?

Copliot's answer:
When it comes to introducing children to game development, the choice of tool or language can make a huge difference to their experience and learning curve. Let’s break down the pros and cons of each option:
RCBasic and NaaLaa

  • Niche and Limited Resources: Both RCBasic and NaaLaa are relatively obscure compared to the other options. Their limited user base means fewer tutorials, community support, and sample projects, which can be challenging for beginners.
  • Learning Curve: While they might have appealing features or syntaxes, the scarcity of educational materials could make learning frustrating for children who thrive on interactive and well-documented resources.
Scratch
  • Designed for Kids: Scratch's drag-and-drop interface is designed with children in mind. Its visual programming blocks eliminate syntax errors, making it much easier for young learners to experiment and see results immediately.
  • Community and Resources: With a massive global community, Scratch offers countless tutorials, projects, and forums where kids can share work and get inspired.
  • Creativity and Fun: The platform is not only educational but also encourages creativity, as children can build animations, stories, and games without the pressure of traditional coding.
GDevelop
  • Visual Game Development: GDevelop provides an event-driven, visual approach similar to Scratch but is more focused on creating complete games that can be exported to multiple platforms.
  • Bridging the Gap: It’s great for learners who are ready to move beyond the basics and want to create more complex projects without diving straight into text-based code.
  • Support and Documentation: Although its community isn’t as large as Scratch’s, it still offers a good range of tutorials and documentation.
Python with Pygame
  • Text-Based Programming: Python is a highly recommended language for beginners because of its readability and simplicity. However, transitioning to text-based coding is a step up from the visual methods used in Scratch or GDevelop.
  • Libraries for Game Development: Pygame is built on Python and is excellent for creating games. It’s best suited for older children or teenagers who have a bit more patience and interest in learning syntax and debugging.
  • Extensibility: Once comfortable, learners can explore more advanced programming topics, making Python a versatile skill beyond just game development.
Which One to Choose?
  • For Younger Children (Ages 6–12): Scratch is generally the best choice. Its intuitive interface, immediate visual feedback, and extensive resources help maintain engagement and foster creativity.
  • For Middle Ages/Early Teens (Ages 12–15): GDevelop is a natural transition. It retains the benefits of visual programming while introducing more nuanced game design concepts.
  • For Older Teens or Kids Ready for a Challenge (Ages 15+): Python with Pygame can be both a fun and educational venture into text-based programming, laying a robust foundation for future development endeavors.
  • RCBasic and NaaLaa, while they might have interesting features, are not the best choices for children solely due to their limited community support and learning resources compared to the others.
Ultimately, the best choice depends on the child’s age, interest, and previous exposure to programming concepts. If they’re just starting out, a platform designed specifically for kids (like Scratch) will likely provide the most engaging and supportive environment, while more advanced options can be introduced gradually as their skills grow.
Would you like some tips on transitioning from visual programming to text-based coding or perhaps examples of projects that children can try out on these platforms?

Print this item