nancygold's Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in nancygold's LiveJournal:

    [ << Previous 20 ]
    Thursday, October 31st, 2024
    6:32 pm
    The Genesis of Morals
    https://youtu.be/Ehv7-T_w9Hw?t=1320

    pretty much this

    Current Mood: amused
    1:00 pm
    Cops came again to harrass me
    Currently ACABs impute me prostitution.
    Last time they claimed I boiled a cat.
    Before that they insisted I have a firearm.
    And then that I'm a racist and a russophobe,
    That I vandalize property and disturb order.
    These transphones make up a reason of every type.

    It is easy to harass trans folk.
    Instead of going after actual criminals.
    Who have real guns, not imaginary ones.
    And if they want a whore, they should arrest their moms.

    But I guess this time municipality unleashed them.
    Since I filled multiple complaints against the municipality,
    which impedes my inburgering.

    Current Mood: annoyed
    Current Music: Howard Drossin - Sendai Enclave
    12:17 pm
    ChatGPT
    [info]necax claims there is a shorter algorithm to sample from a population, but ChatGPT comes with exactly the same algorithm I invented, which it calls "cumulative summing method":
    https://chatgpt.com/share/67236748-da18-800d-bcd1-a7bf2ba9d23c

    It is completely equivalent to my
    list.outcome = $find(s~+=?0; p~^(Me{?0}.z*)<<s~).1
    method, except that it produces a list of K samples, instead of just one.

    import random
    
    def custom_choices(population, weights, k=1):
        cumulative_weights = []
        total = 0
        
        # Build cumulative weights
        for weight in weights:
            total += weight
            cumulative_weights.append(total)
        
        # Generate samples
        samples = []
        for _ in range(k):
            rand = random.uniform(0, total)
            for item, cum_weight in zip(population, cumulative_weights):
                if rand < cum_weight:
                    samples.append(item)
                    break
                    
        return samples
    
    # Test it with your distribution
    population = ['short', 'mid', 'long', 'bald']
    weights = [70, 20, 5, 5]
    samples = custom_choices(population, weights, k=10)
    print(samples)


    Current Mood: contemplative
    12:29 am
    Symta is too difficult even for me
    So as you know already I have to generate a lot of unique characters procedurally.
    And any generation involves some distribution.
    So I pulled out of my ass the following statistics:
    70% of ladies have long hair
    25% have mid hair
    5% have short hair

    70% of men have short hair
    20% have mid hair
    5% have long hair
    5% are fully bald

    In game these are defined as a list
    MaleHairLength: 70,short 20,mid 5,long 5,bald
    These allow me to settle on the hair length of a character.
    I had some code to pick a random sample from such a distribution.

    MaleHairLength.find(s~+=?0; p~^(Me{?0}.z*)<<s~).1

    That is cryptic and it does really cryptic things inside the find's lambda and (implicitly) outside of it.
    Now the problem is that I already forgot the implcit variables semantics I introduced years ago.
    Since most of the code is not command line oneliners or math shit.
    What is worse, I have never documented it.
    So now I had to go over the macros implementing these constructs deciphering them.
    And obviously these macros are not simple.

    TLDR: I need to document at least the harder parts.

    Current Mood: contemplative
    Current Music: Anvil of Dawn OST
    Wednesday, October 30th, 2024
    8:40 pm
    True isometric projection is never used in games
    What everyone call "isometric" is actually is set of unrelated projections.
    Some of these can't be easily rendered without first distorting the model view.

    I found it the hard way, while trying to render the 2:1 oblique cube.




    Current Mood: contemplative
    Current Music: Dragon Rage OST - The Scramble
    12:04 am
    The Spell of Mastery Progress
    Unfortunately one can't reuse the female hairs for males.
    Cuz obsolete cultural standards and males have alopecia.
    So now I have to produce a separate set of male wigs.
    And also a set of beards.
    All while ensuring they look okay with different clothes.
    And all the colors variations.

    In pixelart one can't just use a hue shift for recoloring.
    Since that always looks rubbish and kills the light model.
    So I have to careful pick a set of recolorable colors.
    And the several sets of colors for the hair recolors
    And then arrange pixels so they will look okay with recolors.


    Why do I need all that?
    Because my game mechanics requires unique characters.
    In large quantities. On regular basis.
    These characters should all look distinct enough.
    In fact, their appearance reflects their talents.

    I.e. a wizard guy is more likely to have a beard.
    While a usual soldier will likely have a buzz cut.




    Current Mood: accomplished
    Monday, October 28th, 2024
    2:56 pm
    The most sold progressive rock album ever
    No. It is not your shitfloyd and or shitterson-shit-shiter.
    The most sold one is the Final Fantasy VII OST.

    BTW, in the remake they completely change the game mechanics.
    Yet the soundtrack was left intact, beside being performed by orchestra:
    https://www.youtube.com/watch?v=3zboO7UCUE8&list=OLAK5uy_nlG-_QuIzyFhyo0Z15Pwaln1oEzXHPptU

    It is okay, but I would have changed it into thai rap.
    Or something else completely inappropriate.
    Like say licensing the Tsoy and Letov songs.
    Just to make the dumb chuds angry.

    Current Mood: amused
    12:30 am
    The Spell of Mastery Progress
    Some time ago I introduced a proper humanoid character base.
    Now I have to redraw all my existing human characters to use it.

    Using single base for all character makes them more generic.
    But that can be a good thing.
    Since the characters are guaranteed to take that much spaces.
    And well I can reflect what characters wear.

    Anyway, my pixelart skills improved since then.
    So I have made a nice shield for that knight.
    And the stance is a bit less silly.

    At one point I wanted to steal the Legacy of Kain's Malek design:
    https://www.youtube.com/watch?v=1efmfsKIQfM
    Or make my own unique cool character.
    But really I need just a generic knight/paladin.



    Current Mood: accomplished
    Sunday, October 27th, 2024
    4:06 pm
    German D&D Clone
    Uber alles actually carbon copied the jewish D&D and even made a few PC games based of it.

    https://steamcommunity.com/sharedfiles/filedetails/?id=218956847

    Feels really bootlegy and broken though.
    The graphics is especially muddy and blurry.
    But well, at least no "woke" zoophilia!!!

    Doubt you can even find a single black character in these games.
    Germs haven't even bothered to do basic gamma correction.
    Which is fucking necessary when you modify the compressed RGB.
    Now you know how they lost WW2.



    Current Mood: amused
    Saturday, October 26th, 2024
    1:45 pm
    New Tower Defense Puzzle
    Goal: help the crossdressing president Zelensky desert Ukraine,
    while avoiding the Russian soldiers scavenging the territory for vodka.
    Instead of giving orders, player places or removes obstacles.
    Basically a turnbased Populous.
    https://pauloondra.itch.io/zero-orders-tactics





    Current Mood: amused
    Friday, October 25th, 2024
    11:01 pm
    People who criticize my game for having bad graphics
    What would be good graphics for you?
    For me graphics is good when it is readable.
    I.e. it expresses the game world state.


    For example, my game has relatively detailed characters.
    Yet it is easy to see what equipment character uses.
    Keep in mind that I'm not an artist.
    And I have no money to pay professional artists.

    Still compare my art to the art of professional artists.
    I think my sprites are not as readable as Final Fantasy Tactics.
    After all FFT is the timeless classic.
    Yet my art is definitely more readable than Baldur's Gate 3.
    So I don't understand what more can you expect from me.
    I'm a mentally ill person with a weak connection to reality.

    Please stop your bullying.



    Current Mood: contemplative
    Current Music: Tower Of Druaga Aegis Of Uruk Original Soundtrack
    1:30 pm
    How to determine if a game is for whites or niggers?
    You know nowadays the niggers love to bash Dragon Age Vanguard and praise Baldur's Gate III.

    But how do we know these games are bad/good?

    Obviously we can look for any action oriented gameplay,
    where player controls a single character directly.
    It easily betrays a pure nigger oriented product.
    Niggers are violent, have ADHD and no abstract thinking.
    So they need direct association with the character.
    To go on a power-trip brutally killing people.

    But what if the game has bird's eye view?
    What if player controls several characters?
    Does that guarantee the game is for the white audience?

    Well, of course no!
    There are countless dumbed down strategy RPGs.
    Final Fantasy VII is being a major example.

    These pseudo-white games usually have many characters.
    These characters have many abilities.
    But they are all similar.
    Most are either damage or heal abilities.
    I.e. these games are 1-dimensional.
    There mechanics can be reduced to an HP bar.

    That is either because game mechanics is too primitive.
    Or because designers already decided for you.
    They just want you to passively consume their goyslop.
    Without any dimension door induced sequence breaks.


    So for game to be a non-nigger, it needs to have more dimensions.
    The above mentioned dimension door is a good example.
    Another example will be the Time Stop spell.
    Only a very few games implement these.

    The list is very short:
    * Master of Magic. Has planar shift and time stop ( https://masterofmagic.fandom.com/wiki/Time_Stop ). Both implemented perfectly. None of the MoM clones implement Time Stop. Even Age of Wonders can be considered a degenerate nigger goyslop.
    * Baldur's Gate. Only the classic version conforms. The Extended Edition removed the dimension door, because the new story, Beamdog niggers produced, could be sequence broken by a dimension door. And being niggers, Beamdog decided that people care about their shitty new story more than the important gameplay dimension ( https://baldursgate.fandom.com/wiki/Dimension_Door#Bugs ). That is why BG EE is objectively inferior to the vanilla BG.

    So to answer the question, even the Dragon Age Origins had no timestop, and same way Baldur's Gate III doesn't have it, and none of the Larian games ever had it.

    Stricter criteria would be the availability of the flight spell. That will leave only the Master of Magic.

    Even stricter criteria is the presence of terraforming spells. Again leaves only the Master of Magic (with spells like https://masterofmagic.fandom.com/wiki/Armageddon ).

    Current Mood: contemplative
    2:18 am
    The Spell of Mastery Progress
    Finally implemented the composite sprite system into the game.
    I.e. sprite being dynamically assembled from the body doll and the clothes it wears.
    That should keep it nice and organized, allowing for nice damage model.
    And magic effects will have a well defined shape to follow.

    While I had the graphics for some time,
    it was hard to implement elegantly before the ECS.
    I.e. I needed to differentiate between different humanoid kins.
    Now even the sound effects units produce are dictated by the components.
    Hopefully there will be no more need for the unit types folder.

    TODO0: implement dwarves and midgets
    TODO1: convert all the humanoid sprites to this common base.
    TODO2: implement similar system for the fantastic beasts.



    Current Mood: accomplished
    Thursday, October 24th, 2024
    4:03 pm
    Dumb Gamedev Advices
    Nowadays there are a ton of these "10 advices to the beginning game developers"

    They usually go like this:
    1. Start small. Make Tetris, don't go immediately for your dream game.
    2. Don't overextend. First do the minimum viable prototype (MVP), representing the vertical slice.
    3. Perform market research. Create what people/clients need.
    4. Specialize in one area, don't try to do everything by yourself.
    5. Use existing game engine, don't reinvent the wheel.
    ...
    10. Stay hydrated.

    Well, my dream project was Master of Magic meets XCOM/Lords of Chaos.

    And I pretty much followed the main advice.
    My first project was the Warcraft II engine re-implementation.
    But Warcraft II game logic is really primitive.
    Doing it hasn't taught me the methods required to build my dream game.


    In fact, it set me in the wrong direction.
    I used the classic OOP architecture for the Warcraft II clone.
    That is completely inadequate for anything more complex.
    And both MoM and XCOM style games are exceedingly complex.
    They have multiple systems interplaying in a holistic way.

    So I built the MVP, https://nancygold.itch.io/spell-of-mastery-demo
    Yet when it came to scaling it, I found it really clunky.
    Every unit was defined explicitly, down to the sounds it makes.
    Now imagine creating and maintaining 200 units!
    That is the number required for a Master of Magic game!

    And since I wanted to improve on Master of Magic,
    I wanted to give player ability to create their own fantastic beasts.
    Just like MoM allowing forging artifacts.
    But with the existing system even basic RPG elements were difficult to maintain.

    Same with the site map grid format.
    It was totally okay for Warcraft II engine or simpler RPGs.
    But when I need moving floating islands and physics, it falls apart.
    The UI was not good enough either, requiring to lay out everything manually.
    And the layout was hardcoded inside the game code.

    In the end I had to rewrite the entire prototype from the ground up.
    Starting with introducing ECS and basing everything, including UI, upon it.
    But first I got really depressed, almost giving up and abandoning the project.

    So advises 1 and 2 are absolutely harmful, despite being repeated ad nauseam.
    Advise 3... well, if you want to make money, it makes total sense.
    But you can't make money in gamedev, because competition is just too fierce.
    And people want AAA games, which you don't have money to produce.
    So there are better venues to make money in IT, like AI scam ponzi schemes.
    Or just the plain old hacking and extortion. Or getting hired by AAA

    So only do gamedev if you're passionate about your dream project,
    treat it as art and don't care about anyone but your own vision.
    I.e. you are your own client.

    Advise 4 is solid if you want to work on somebody else's project for a salary.
    Then you need to specialize and create a portfolio.
    But that works only if you already have a university degree.
    And you're not a crazy unemployable lunatic, like me.
    Obviously it won't help you produce your dream project.
    You do need money for that, but leeching welfare while working on your project
    is a far more reliable way than being fired from one job after another,
    while still having no money.

    Following advise 5, you will be depending on other people's work.
    And you will be incentivized adhering to best practices and what engine offers.
    If you're that kind of person who believes experts blabbing aboud covid19,
    then that is good for you.
    But each new Unity version breaks everything and changes license.

    I personally only use SDL. When I began SDL was version 1.
    Now it is SDL3. And I currently use SDL2.
    I would be calling GDI32 directly, but it tends to change too.
    IIRC, Negrosoft even made GDI32 obsolete.
    Unfortunately, I changed several operating systems during these years,
    going from Linux to OSX to Windows.

    I'm not using any of the SDL features, beside
    uploading the already rendered frame to the video DAC.
    Yet even that feature gets broken between versions.
    Now imagine some trash like Godot and Unity, with all its drama.
    I don't even want associating with their communities.

    Kinda miss the times where one could write directly to video memory.
    If my game wasn't that resource intensive, I would be using DOSBox.
    Since DOS is set in stone forever.

    Current Mood: contemplative
    11:09 am
    Anon points Linus Torvalds' anti-Russian sentiments
    https://lj.rossia.org/users/nancygold/222484.html?thread=2469396#t2469396
    "I'm Finnish. Did you think I'd be *supporting* Russian
    aggression? Apparently it's not just lack of real news, it's lack of
    history knowledge too."

    Why I'm not a russophobe anymore?
    Because russophobia became too mainstream.

    Current Mood: amused
    Wednesday, October 23rd, 2024
    1:29 pm
    Multimodal agents controlling Windows 11 are available as a service
    https://www.youtube.com/watch?v=xr0FCUNoy_0

    All these office workers will have to pack up and join me at the unemployment market.


    The engineering breakthrough we have deserved.

    Current Mood: amused
    1:50 am
    The Spell of Mastery Progress
    Ok. I have restored the main loop.
    So now first mob can be killed, gold collected and city developed.
    I also kinda got the city layout, fitting it into 22x22 tiles.
    Togethe with wall and moat.
    Still huge, kinda approaches the base size in typical RTS games.

    Now I have to come with a nice faction-neutral building design.
    For the wall I decided to go with a LoTR style wall.
    The AI model couldn't generate what I want.
    A the palette and few generated elements were okay for a start.

    Dunno if I should add brick or stone pattern.
    Or I can add to the lore that local masons use magic to fuse rocks.
    Or just apply coating.





    Current Mood: accomplished
    Tuesday, October 22nd, 2024
    4:35 pm
    "А также в области балета..."


    Current Mood: amused
    Monday, October 21st, 2024
    11:19 pm
    The Spell of Mastery Progress
    Attempted to produce a nice city layout.
    Goal have up to 4 cities on a 64x64 map.
    Found that buildings needs strict size constraints.
    So had to reduce the tower size to 6x6 down from 7x7.

    And that is with merging several buildings into one!
    I.e. the town portal will be part of this tower now.
    Same with the library.




    So what is this tower for?
    You probably guess from the name already.
    I'm making a few references to the Master of Magic.
    And Age of Wonders for that matter.

    These games had towers serving various purposes.
    And they serve for a nice city focal point.

    Anyway, on the original mockup I made the tower was even smaller.
    Back then it was not planned to be enterable or proportional to anything.
    And in the earliest prototype it was composed out of usual tiles.
    Before I decided to commission the sprite to an artist.

    So now I almost restored the main game loop.
    It was kinda working in the world map heavy prototype.
    Even had quests and a basic story with the ability to win the game.
    But I always wanted that Lords of Chaos vibe and MoM style squads.
    And implementing the squads opened a nicer way to do captives.

    Besides having the city just on the world map was really rubbish.
    Especially when it was auto-generated on every visit.
    And prototypes shown that cities are really a major part of the game.
    So I scrapped the prototype and began re-implemented everything.
    Which required transitioning first to ECS.
    Since multipart buildings spawning and attracting units aint a joke.
    The city itself is a unit now. So I can reuse all the unit code.

    Next I will also have to convert all these units.
    Since I'm now using a standard humanoid base.
    Beside humanoids there are fantastic beasts.
    These follow different rules.
    And need a special "tame" skill or a spell to summon.
    Again, idea is borrowed from Master of Magic





    Current Mood: accomplished
    Current Music: https://www.youtube.com/watch?v=vee8e2BENPo
    1:33 pm
    Why Russians can't make a compelling HoMM3 clone even with 4 attempts
    You know how Japanese can copy and value-add? Here is why Russians can't do that:
    1. Whatever art Russians draw, they end up with the classic "T-34 in a forest of birch trees" vibe.
    2. Forget Timothy Duncan and Charley Watkins well designed puzzle maps. The Russian school of map design consists solely of the myasnoy shturm and the sOrAnDoM type maps. Literally, builtin HoMM3 generator made better maps than Russians have in their games.
    3. Russians believe in turnbased "cybersports", that factions should be balanced to the absolute blandness, and all winning strategies eliminated. Leave only the dragon+armageddon, cuz it is part of the brand recognition and Ubishits told to retain it.
    4. Russians are lazy vodka guzzling retards, who have no work ethics or any desire to create anything of value.

    Current Mood: contemplative
    Current Music: Hitoshi Sakimoto - Dragon's Crown OST
[ << Previous 20 ]
About LJ.Rossia.org