Recent Posts

Pages: [1] 2 3 ... 10
Your projects / Re: Quest Log Menu
« Last post by llamazing on May 02, 2021, 04:26:33 PM »
The names of the tabs come from strings.dat and thus are configurable.

The number of tabs is flexible too, but I believe at the moment the data format only supports two types (main and side). The biggest problem with having more than two tabs is screen real-estate, which consumes the precious space available for the rest of the interface (would be a different story if the game were 1920x1080 resolution).

There's also a set of events for side/main quests, and adding new tab types would mean more events are needed as well.

If you need more tabs types for your game then create an issue in the gitlab project and include mock-up screenshots and describe the use-cases for the additional tabs.
Your projects / Re: Quest Log Menu
« Last post by Cluedrew on May 02, 2021, 01:35:36 AM »
Even a single script, a sprite or sound effect can be a project. Maybe project was intended to mean game but I don't think there are any rules about. I might put my big project in scripts but it has no auto/visual component at all, its entirely scripts.

Actually one of my main comments about the project actually might not work depending on the amount of display work the library does. Have you considered making the number/names of menus configurable? To use a The Legend of Zelda example, could I set up "Main Quests", "Side Quests", "Shrine Quests" and "Memories"? Is there a way to do that?
Development / Re: Shaders unavailable [solved]
« Last post by Noobling on April 27, 2021, 04:49:11 PM »
Turns out it was a graphics card issue - the hardware I have is unable to support OpenGL drivers.
Your projects / Re: Ocean's Heart
« Last post by JouBqa on April 27, 2021, 07:47:14 AM »
Thanks! I'm not planning on licensing all the graphics, but I am going to release quite a few after I release the game.

The code though I'm definitely all about sharing : )
My reasoning is I'd like to be able to maintain some identity for my game visually that's unique and marketable, but I definitely want to make creating games easy for others because they're fun to play! If you're interested in any of my code let me know and I'll share it.

Can I have the source code please?
Development / Re: Changing Basic Traits
« Last post by Nintaku on April 06, 2021, 06:06:30 PM »
Alright, so I'm working on two separate concepts at the same time here. First is the aforementioned ranks and equipment, and second is the less mentioned setup for character stats.

Here's my repository for these scripts:

ranked_equipment.lua - I've expanded on the suggested data script, including tables for Ranks 0-5 to apply to my 17 Weapon classes and 4 Armor classes. Still figuring out the language, though, so not sure I've got this right. When I create individual weapons, I really do want to simply call a rank and a weapon class and add them together, with the ability to add in other special modifiers to represent enchantments that will modify things like character traits (we'll get to that) and the weapon's inherent values. It should only require a couple of fields: id, rank, class, and then anything unique to it.

data_loader.lua - I haven't really touched this yet, but been studying it in hopes of getting some insight into how I can phrase my ranked_equipment tables for ease of use.

traits.lua - Here's another important portion of this project. I want the hero and monsters to have Traits, basically RPG stats that can be raised with experience points and have game effects. Most of them don't seem particularly useful to a videogame at first glance, but I have plans. And I can just take out what turns out to not be useful as I move deeper into the project. Point is, I'm not sure how to implement them on the hero. I'm pretty sure I can make good use of the Level and Experience scripts elsewhere to work with these, however. But then I'll need to make my own subscreen for spending points on these traits.

So that's where I'm at so far. At this point I feel I should probably move my updates over to Your Projects, so that'll be where my next post goes.
Development / Re: space shooter games in solarus?
« Last post by Nintaku on April 06, 2021, 04:44:31 PM »
My immediate thought would be to take the script for side-scrollers, particularly the gravity component, and apply gravity to everything except the player. Then I believe there's code to have a sprite always facing a specific direction even when moving. Reskin arrows into pewpews and you should be golden, right?
Development / space shooter games in solarus?
« Last post by Dianthus on April 06, 2021, 10:49:09 AM »
I have sort of given up a major project for now and i am just doing random stuff with solarus for now  :P

Of pure interest is it possible to do space shooter games in solarus?

What I mean is it possible to have basically a space ship that always point forward, while the map scrolls with a constant speed forward?

I am currently doing some science fiction tiles and just wanted to know if its possible to stuff like this in solarus:
Your projects / First Practice Project Ready to Play!
« Last post by Nintaku on April 05, 2021, 01:18:02 AM »
I've taken what I've learned and put it together to create my first ever videogame! It's ready to let people see it, and I'm very excited to see if it works for others and is really in the playable condition I think it's in. And I'm just getting used to GitHub too, after a few years away from it.

The GitHub repository is here:

The .solarus is here:

If this is working just fine, my next projects will be somewhat more ambitious.
Development / Shaders unavailable [solved]
« Last post by Noobling on April 03, 2021, 06:40:18 PM »
Howdy everybody. Since this is my first post, here's a bit of an introduction: I've been trying to get Solarus to run on a couple different computers and phew I am having a time of this. I'm entirely new to programming, and I'm really interested in the Solarus engine as a means to build on some ideas I've had kicking around in my head (for far too long. it's dangerous to have thoughts in your head too long, ya know).

Learned some Bash and C++ from codeacademy, I've ordered some of Ierusalimsky's books on Lua, but, this is all a bit cart-before-the-horse issues, given I can't even open Solarus!

So someone please throw me a bone.


Trying to launch the sample quest (edit: or any other quest I've tried) displays the following in the console:

Info: Solarus 1.6.4 (6d2a11ddd)
Info: Opening quest 'C:/Users/Home-Computer/Downloads/solarus-x64-v1.6.4/sample-quest/'
Info: Joypad support enabled: true
Info: SDL: 2.0.12
Warning: failed to load framebuffer extension
Info: Failed to initialize SDL shader Hack. Shaders unavailable.
Info: Renderer: SDLRenderer : direct3d

On the principle of "try literally anything before you bug people for help," I've tried googling around and downloaded an openGL.dll to throw into the folder to see what happens. Predictably, since I am here, this did not help.

Question 1: What is going wrong here?

Question 2: How do I make it not go wrong?
Development / Re: Changing Basic Traits
« Last post by llamazing on April 01, 2021, 02:15:35 PM »
Here's a script you can use to read the data file:
Code: (lua) [Select]
--local data_loader = require("scripts/data_loader")

local data_loader = {}

function data_loader.load_data(path)
  local weapon_classes = {}
  local weapons = {}
  assert(sol.file.exists(path), "Error: data file not found: "..path)
  --create environment for loading data
  local env = setmetatable({}, {__index = function(self, data_type_name) --default function to handle unknown data entries
    print("WARNING: Unknown data entry: "..tostring(data_type_name))
    return function(properties) end --return dummy function to prevent error because return value will be called
  function env.weapon_class(properties)
    local id =
    assert(type(id)=="string", "Bad weapon_class property 'id' (string expected)")
    assert(not weapon_classes[id], "Bad weapon_class property 'id', must be unique value: "
    local weapon_class_entry = {} --create new weapon entry
    for k,v in pairs(properties) do weapon_class_entry[k] = v end --copy properties to new weapon entry
    weapon_classes[id] = weapon_class_entry
  function env.weapon(properties)
    local id =
    assert(type(id)=="string", "Bad weapon property 'id' (string expected)")
    assert(not weapons[id], "Bad weapon property 'id', must be unique value: "
    local weapon_entry = {} --create new weapon entry
    for k,v in pairs(properties) do weapon_entry[k] = v end --copy properties to new weapon entry
    weapons[id] = weapon_entry
  --load the data file
  local chunk = sol.main.load_file(path)
  assert(chunk, "Error: unable to read file: "..path)
  setfenv(chunk, env)
  --put loaded data into a new table and return it
  return {
    weapon_classes = weapon_classes,
    weapons = weapons,

return data_loader
Pages: [1] 2 3 ... 10