ICastFist

joined 2 years ago
[–] ICastFist@programming.dev 13 points 1 week ago (4 children)

(that’s good)

Until it gets in the way of your money earning activities

[–] ICastFist@programming.dev 1 points 1 week ago

Is it anything like Action Doom?

[–] ICastFist@programming.dev 4 points 1 week ago

My uneducated guess is that those are from custom stuff found on the servers you visit. Quake 3 and similars (Jedi Outcast/Academy, Unreal Tournament 99/2004) would download any custom maps, player models and skins if the server you were connecting to had any.

[–] ICastFist@programming.dev 4 points 1 week ago

I wish games would release with low/medium, up to 1024x1024 textures and stuff by default and let people choose to download/install higher res stuff. If I'm not going to use the 4k pack, I don't need it sitting on my hard drive

[–] ICastFist@programming.dev 3 points 1 week ago

You probably played Counter Strike 1.5 or 1.6, or both at different times, these are the ones that were made off the original Half Life

[–] ICastFist@programming.dev 2 points 1 week ago

I don't personally remember any game retailing with 5 CDs, 4 was the limit, anything over that and they'd just go for a DVD instead

[–] ICastFist@programming.dev 7 points 1 week ago (1 children)

Congrats on finding your Civ2 disc! Do you have a drive to see if it still works?

[–] ICastFist@programming.dev 1 points 1 week ago

Its pretty neat now while its still new and shiny

The current crop of VR tech dates back to 2012, not exactly what I'd consider new and shiny

[–] ICastFist@programming.dev 4 points 1 week ago

Barely over quarter-century life by now

[–] ICastFist@programming.dev 31 points 1 week ago (3 children)

Belgium can go fuck itself with all the waffles and chocolate it exploits from other countries.

[–] ICastFist@programming.dev 5 points 1 week ago

My passing understanding is that they'd really prefer if the people from their former colonies remained an ocean or two away. Portugal recently passed a new law that made it harder for immigrants (the vast majority are Brazilians) to get a worker visa and full citizenship

[–] ICastFist@programming.dev 2 points 1 week ago

It's kinda like Tor, but different, more secure from what I understand. You also can't access normal internet sites while properly connected to i2p

 

Assume mainstream adoption as used by around 7% of all github projects

Personally, I'd like to see Nim get that growth.

 

My game has options for player customization, it's a number of .png files that are not loaded with the game startup, save for the default ones. Instead, if the player clicks a button, it will load the next file for that part (like, say, hair-2.png)

This works fine on the editor, but I've just tested an exported version and it doesn't work there, completely failing to find any files within the .pck. If I move the executable back to the project's folder, it works as expected.

Trying to figure out the why, I've also exported via Export ZIP/PCK, and found out it doesn't actually export any of the .png files, it only exports the .import files. The actual images are stored in the .godot/imported folder, each with a long, random(?) string attached to their name: hair-1.png becomes hair-1.png-t3g9r2he7783y9hut.tcex

I haven't figured out a way to export the .png files as is, so what are my options here? Besides coupling all of the parts in a single image and separating it by frames of animation, which will require both code and art rework

Tested on both Godot 4.1.1 and 4.1.2-RC1

 

I know they allow scam adverts because it's easy money, but why aren't they held responsible for facilitating obvious scams? You open Edge, there's 3 "Earn money quick" adverts. On Instagram, every 5 ads, one is a scam.

 

I know that plastics (polyurethane, polystyrene, polyethylene, etc) are very different from one another.

What I've been thinking about is, would it be possible to make some sort of powder with a mix of all these plastics, that could then be mixed with a binding agent to make bricks, plates and other, well, plastic things?

For anyone wondering "why", this is a recycling idea, one that, if simply mixing in some binding agent (glue) works, or some glue + another plentiful material (dirt? sand?), wouldn't need heat to give reuse to the plastics, thus eliminating a possible source of toxic fumes and allowing PVC to be thrown into the mix.

I know it is possible to do something like this with heat. You need to heat the mixture, usually to ~300º C, so once the molten plastic cools, most everything is stuck together. Such examples are plentiful around the internet. That's why I wanna know if there's a way to do it without using heat

 

After seeing this other post here and lot of talk about it, I thought it'd be a good idea to make a list of free or FOSS engines for people that were considering using Unity but probably won't anymore, or that want to ditch it ASAP.

Feel free to add your own suggestions in this thread!

Engines:

  • Godot - Probably the "biggest around", offers programming in both GDScript (very similar to Python) and C# with their Mono executable. Also has bindings for other languages thanks to their GDExtension API, such as Rust, Go and Nim. Has lots of material for learning and a community over programming.dev
  • Solarus - FOSS, for making SNES/GBA Zelda-like games (top down action rpgs). Programming done with Lua
  • GDevelop - FOSS, Similar to Construct2/3, focuses on visual scripting to define the workings of your game.
  • OHRRPGCE OHR - Putting this one here because I'm simply too amused to leave it out. Could work as an alternative to RPG Maker, if you happen to know FreeBASIC and don't mind the really old school look of everything.
  • Stride - Probably one of the best options for high performance 3D games with C# programming. MIT license
  • Fyrox - Rust based engine. Allows both 2D and 3D development. MIT license
  • Bevy - Similar to Fyrox above, it's made with Rust and allows both 2D and 3D. MIT or Apache license

Game specific engines - These are engines made to play a specific game, but they have enough tooling to allow you to make almost any other game with them

  • OpenMW - Should probably be a good option for anyone with experience modding TES games. There is a "new game template" on their docs
  • GZDoom - It's Doom. If you really, absolutely, definitely, must have your game run EVERYWHERE, this is one of the best choices. You aren't stuck to raycast first-person shooters, either, someone made a Donkey Kong Country with Doom and there's also Sonic Robo Blast 2 Kart.
  • Quake 2/3 source ports - Similar to GZDoom above, but for those that need good 3D performance. A good option is YamagiQ2
    • Pretty much any implementation or sourceport of id games fits the bill. The most recent open sourced engine of theirs was tech 4, which ran Doom 3 and Quake 4.

Frameworks - This is for the programmers.

  • LOVE2D - Lua framework for making 2D games. Can also run on Android if the person installs the LOVE2D app
  • MonoGame - Formerly XNA, it should be the go-to option for people with experience in C#. One of its most notable games is Stardew Valley
  • libGDX - For people who want to make a game running in Java. Porting it to several platforms should be easy thanks to the JVM. Two notable games are Mindustry and Unciv (Civ5 clone)
 

I've been looking into some tutorials, mainly this one - https://www.gotut.net/custom-key-bindings-in-godot-4/

My particular problem is that this and every other tutorial of key rebind only deals with 1 action = 1 keybind, while I want my actions to have 3 keybinds: 2 from the keyboard, 1 from a controller. Because of that, I can't simply empty the InputMap of a given action and add the newly pressed key.

After quite some time thinking and testing, I've managed to cobble together this code (based on the one from the link above) that works as I want: it removes the previous keybind and adds the new one, without messing any of the previous keys.

func _input(event):
	if !current_button:
		return
	if event is InputEventKey and $keypress.visible:
		var action: String
		match current_button.name:
			"rebind_jump":
				action = "game_jump"
		#Match repeat for each button/action, also "duplicated" for each of the alternative keys/buttons, as "alt_game_jump", etc
		#The following lines happen after the match defines the action 
		rebind(event,action, current_button.text)
		current_button.text = event.as_text()
		current_button = null


## The rebind function is called by sending the event, a string of the action proper and the button's current text as the "oldkey"
## rebind(event, "game_jump", $rebind_jump.text)
## After the event call, the button's text is set like this: $rebind_jump.text = event.as_text()

func rebind(event: InputEvent, action: String, oldkey:String):
	var existing : Dictionary = {}
	var key: String
	for ia in InputMap.action_get_events(action):
		#The split(" ") below happens because physical key presses are sent as "E (Phyisical)" or "Ctrl (Physical)"
		if ia.as_text().split(" ")[0] != "Joypad":
			key = ia.as_text().split(" ")[0]
		else:
			key = ia.as_text()
		existing[key] = ia
	for acts in InputMap.get_actions():
		#Removes the key from any other events 
		InputMap.action_erase_event(acts, event)
	InputMap.action_erase_event(action, existing[oldkey])
	InputMap.action_add_event(action, event)

While it works as is for keyboard rebind, I haven't tested it with a controller, as I don't have one around to test.

But my main question is: is this "ideal"? Is there a better/easier way to do this, rebind an action substituting only one key?

EDIT: Did a few tweaks on the code. One thing that I haven't figured out yet is a way to update a key that was already bound to another button. For example: if "Ctrl" is bound to jump, and I bind it to attack, it automatically unbinds from jump. If I then try to bind anything to that specific jump button, I'll get a Invalid Index error at the InputMap.action_erase_event(action, existing[oldkey])

 

Since I'm currently dealing with this problem, I'm gonna leave this info here, so anyone that comes across it knows what to do to fix it. Currently working on 4.1.1, should work on 3.x too

This is a problem that happens if you rename or delete files outside the Godot editor. Godot may warn you, or it may simply keep a cached copy and keep you completely unaware of it until you export the game and try to play it. It's always a good thing to check for these once in a while.

Related questions:

HOW TO FIX:

  • Create a dummy file, it can be a.PNG or whatever
  • Open the problematic scenes with a text editor
  • Change the path of the offending files to the dummy. They're usually at the top of the file, loaded as [ext_resource type="Texture" uid="" path=res://graphics/missing.png" id="10_0y2mn"
  • After saving, try to load the scene again. Be sure to run the Debug console version of Godot
  • If everything went well, it should open. Delete the dummy file from within the editor.

If that doesn't work, try this instead:

  • Open the problematic scenes with a text editor
  • Remove any lines that point to the offending files.
  • Run the Godot with the debug console
  • Attempt to open the scene in the editor. If it gives an error, check the debug console, the most likely error will be something like res://scenes/problemscene.tscn:3815 - Parse Error: Can't load cached ext-resource id: 10_0y2mn
  • Back in the text editor, look for that id within the scene. It'll likely be something similar to texture = ExtResource("10_0y2mn"). Delete it
  • Repeat the last 2 steps until the errors stop.
 

I'm making a platformer, so when the player is facing the opposite direction, I just want to mirror the graphics. I've set up a whole Skeleton2D with Bones, then set up InverseKinematics to help animate it.

The problem is that I can't find a way to make the thing work when mirrored. Scaling the target IK doesn't work. Multiplying the IK position by -1 also doesn't work properly. It does change the target bone rotation, but the bone rotates in the reverse direction (it "pushes" the bone away).

The closest I got to get it to work properly is by applying a negative scale to the affected bone after scaling the skeleton to -1, but even then, the image flips back to the right side.

Right now, I'm starting to think I'll have to use the IKs to create the animations only as the means to key the bone positions, as I can't figure out a way to make a flipped animation with IK targets. So, once all bones are keyed into the animations, I can safely delete the IKs

To reproduce:

  • Make a Skeleton2D node, make 3 children Bone2D nodes, one being the parent of the other (B1 -> B2 -> B3)
  • Create a Node2D to use as IK target
  • On the Skeleton2D Inspector, add a new SkeletonModification and enable it
  • Add a new Element to the SkeletonModification, of type TwoBoneIK (third option, from the bottom up)
  • Joint Bone One = B2 (uppermost bone); Joint Bone Two = B3 (farthest most); Target = IK_Target
  • Move the target around to see if it's working properly.
  • Attempt to mirror it in a way that it doesn't break

TLDR - How do I horizontally flip a skeleton2D with IK without breaking the animations?

 

Discoverability is probably the second biggest hurdle when it comes to developing a game (the first is actually having something to publish)

So, title question. I know I could try to throw money at Instagram, TikTok and Youtube (know your target audience), but I think using their built-in advertising is more likely to miss than hit. Youtube is even more problematic, as a significant portion of people smartly avoid their ads (either with extensions or watching from piped or invidious).

Maybe paying to be on top of itch.io might work somewhat? I'd like to know from someone who did that, what was the turnout (number of sales/downloads per number of clicks)

One thing I think about is getting in contact with a number of small-ish (2k or less followers) content creators and work out a deal - free copy of the game, make a video being honest about it, leave a referral link for viewers to buy.

A problem of mine that I'm aware of is that I don't have much of a social media presence, not even Discord servers, thus I completely lack any sort of "organic digital voice".

I really want to know what are some decent strategies that a solo person could attempt to get some attention for their own game, and maybe the prices/budgets needed.

 

I'm aware this has been the case since Windows 3.x, you always need an external program to ensure the executable is created with the icon you want. Why?

Please no mentions of Linux and other OSs, I know it's trivial to do so for them.

 

I made a pause menu, but there seems to be a "dead square" in the middle of the screen, where it doesn't detect the mouse hovering. The deadzone seems fixed in size and place, moving the menu out of the center makes the problem stop. So, something invisible on top?

Video showing the problem - https://files.catbox.moe/92kr8z.mp4

How the node is set up

The "OptionsWin" opens a new UI element, but moving it around doesn't change the deadzone, even if none of its elements are anywhere near the original pause menu.

Any ideas on how to fix this without having to offset the pause menu?

EDIT: Fix is my comment below. Should've tested it as an isolate scene first, that led me to looking into the player node and finding the problem. Hopefully this will help someone else in the future.

view more: ‹ prev next ›