Advertisement · 728 × 90
#
Hashtag

#WLCG

Advertisement · 728 × 90
Video

I feel like a better artist could really make this shine, but skinned & weighted meshes in Spine 4 are *amazing* for clothing like this!! 🤩

#IndieGameDev #IndieDev #GameDev #WLCG

7 2 0 0
Video

I'm doing my best to fix the card draw and discard animations, and it's getting to a point where I want to rebuild the whole dang card rendering system 😅

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

22 3 2 0
C++ code to calculate the zoom level based on user, quality, and DPI scale, and whether the window is full screen or not. The window scale changes depending on whether the game is in full-screen mode. There's a log() in there, for some reason. It doesn't work without the log() in there.

C++ code to calculate the zoom level based on user, quality, and DPI scale, and whether the window is full screen or not. The window scale changes depending on whether the game is in full-screen mode. There's a log() in there, for some reason. It doesn't work without the log() in there.

Settings for SuccuDeck include Display Mode (Full Screen or Windowed), Windowed Resolution, Rendering (Performance, Balanced, or Quality), and UI Scale (Extra Small, Small, Regular, Large, or Extra Large).

Settings for SuccuDeck include Display Mode (Full Screen or Windowed), Windowed Resolution, Rendering (Performance, Balanced, or Quality), and UI Scale (Extra Small, Small, Regular, Large, or Extra Large).

Calculating a correct zoom level for CEF, used for SuccuDeck's UI, is some truly heinous math, but I do it for the love of the game 😌

#IndieGameDev #GameDev #IndieDev #WLCG

15 3 1 0
A disk usage breakdown of a SuccuDeck build shows a total of 816 MB divided over lib, bin, include, and share folders.

A disk usage breakdown of a SuccuDeck build shows a total of 816 MB divided over lib, bin, include, and share folders.

The same disk usage breakdown of a SuccuDeck build now shows only 418 MB used.

The same disk usage breakdown of a SuccuDeck build now shows only 418 MB used.

Who else up optimizing their packages for deployment to Steam Deck??

#IndieGameDev #GameDev #IndieDev #WLCG

12 2 0 0
SuccuDeck running on a Steam Deck.

SuccuDeck running on a Steam Deck.

I only had to wrangle with flatpak for an entire afternoon, but I can now install the native Linux version of SuccuDeck directly on my Steam Deck!! 🥳

#IndieGameDev #GameDev #IndieDev #WLCG

23 5 2 1
An in-development screenshot of SuccuDeck showcases new card art by Jam.

An in-development screenshot of SuccuDeck showcases new card art by Jam.

A quick shoutout to @wyrdlittleguy.bsky.social, who is doing an absolutely *banger job* on SuccuDeck's new card art!! 😍

And while I have plenty more cards for him to draw, a little birdie tells me he still has commission slots open 🤫

#IndieGameDev #GameDev #IndieDev #WLCG

22 6 2 0
SuccuDeck 1.0.0 build 421 - 167 commits since Monday, December 15th

I got Covid on the 28th, but the work persists! I paid off a lot of tech debt over my holidays. 😁

Cool Stuff 💡
Added Spine actor to the first boss battle
Added more animations and hand options to the Spine model
Actor animations are layered into poses and expressions
Added shove animation
Added more outfits to the Spine actor
Card collection is added to the player's deck on game start
Looted cards are added to the deck directly
Added NPC actor
Added more backgrounds
Added WebView2 renderer for a smaller game install size (eventually)
Started porting the game to Linux
Build libwebp from source

Bugfixes 🐞
Updated Spine runtime to 4.2
Fixed not being able to click to continue the story
Fixed outfits not showing in the preview window
Fixed hand glitches when changing skins
Fixed crash when playing against a sprite-based actor
Fixed error when starting a mission without a deck
Rebuild an actor outfit only when their cue is dirty

Brainworms 🪱
Added ActorAnimation class
List actor animations in preview
Added shake animation to actors
Added reaction animations to battle scripts
Actor signals when action is complete
Split actor into sprite and mesh classes
Command recipe only reinstalls changed files
Added a transparent ImGUI overlay on its own swapchain
Hide overlay when main window loses focus
Reduced flicker on the ImGUI overlay and fixed color keying
Added separate render process exe for CEF
Added getWindowPath() method to all debug windows
Load debug images on the correct renderer
Renamed many debug windows
Added a view scripting interface
Added file dialog service based on portable-file-dialogs library

SuccuDeck 1.0.0 build 421 - 167 commits since Monday, December 15th I got Covid on the 28th, but the work persists! I paid off a lot of tech debt over my holidays. 😁 Cool Stuff 💡 Added Spine actor to the first boss battle Added more animations and hand options to the Spine model Actor animations are layered into poses and expressions Added shove animation Added more outfits to the Spine actor Card collection is added to the player's deck on game start Looted cards are added to the deck directly Added NPC actor Added more backgrounds Added WebView2 renderer for a smaller game install size (eventually) Started porting the game to Linux Build libwebp from source Bugfixes 🐞 Updated Spine runtime to 4.2 Fixed not being able to click to continue the story Fixed outfits not showing in the preview window Fixed hand glitches when changing skins Fixed crash when playing against a sprite-based actor Fixed error when starting a mission without a deck Rebuild an actor outfit only when their cue is dirty Brainworms 🪱 Added ActorAnimation class List actor animations in preview Added shake animation to actors Added reaction animations to battle scripts Actor signals when action is complete Split actor into sprite and mesh classes Command recipe only reinstalls changed files Added a transparent ImGUI overlay on its own swapchain Hide overlay when main window loses focus Reduced flicker on the ImGUI overlay and fixed color keying Added separate render process exe for CEF Added getWindowPath() method to all debug windows Load debug images on the correct renderer Renamed many debug windows Added a view scripting interface Added file dialog service based on portable-file-dialogs library

Everything I done did over my holiday break! I paid off a crazy amount of tech debt and caught Covid as a reward 🫠

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

15 2 0 0

🌟 Spotlight: @mrhands31.bsky.social

Everything I done did over the past two weeks! I try to write these changelogs every Sunday, but I got really, really busy with work 😅

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

#IndieSpotlight #SmallCommunities

5 1 0 0
SuccuDeck 1.0.0 build 411- 71 commits since Monday, December 8th

It's a double feature because I got busyyyy with woooork

Cool Stuff 💡
Added a new actor using a skinned mesh with animations
Added 3 poses, 6 expressions, and 3 action animations for the actor
Updated Rose's battle to use the skinned mesh actor
Added an animation for the Sensitive status effect
Card collection is now moved to the player's deck on game start for smoother onboarding
Added a shake animation to the actors
Tweaked reactions to player's attacks

Bugfixes 🐞
Fixed a crash when trying to render an invalid skin
Fixed a crash when playing against a sprite actor
Fixed hand glitches when changing skins
Fixed lines not skipping to the end correctly during missions
Fixed a crash when two actors use the same skinned mesh
Fixed actors not resetting after a reaction animation

Brainworms 🪱
Added a skin list to actor outfits
Resolved skin hierarchy for skinned meshes
Fixed debug separators overlapping with the right side of the window
Added dressed values to skinned mesh clothing
Actor preview window can load the selected outfit immediately
Stage actors build their outfits
Actor animations are loaded in separate instances
Mapped actor cue expressions to animations
Preview all actor animations
Fixed previewing custom outfits
Actor definition changes are sent to the preview window
Actor outfit is only rebuilt when actor cue is dirty
Removed shake from the brain system

SuccuDeck 1.0.0 build 411- 71 commits since Monday, December 8th It's a double feature because I got busyyyy with woooork Cool Stuff 💡 Added a new actor using a skinned mesh with animations Added 3 poses, 6 expressions, and 3 action animations for the actor Updated Rose's battle to use the skinned mesh actor Added an animation for the Sensitive status effect Card collection is now moved to the player's deck on game start for smoother onboarding Added a shake animation to the actors Tweaked reactions to player's attacks Bugfixes 🐞 Fixed a crash when trying to render an invalid skin Fixed a crash when playing against a sprite actor Fixed hand glitches when changing skins Fixed lines not skipping to the end correctly during missions Fixed a crash when two actors use the same skinned mesh Fixed actors not resetting after a reaction animation Brainworms 🪱 Added a skin list to actor outfits Resolved skin hierarchy for skinned meshes Fixed debug separators overlapping with the right side of the window Added dressed values to skinned mesh clothing Actor preview window can load the selected outfit immediately Stage actors build their outfits Actor animations are loaded in separate instances Mapped actor cue expressions to animations Preview all actor animations Fixed previewing custom outfits Actor definition changes are sent to the preview window Actor outfit is only rebuilt when actor cue is dirty Removed shake from the brain system

Everything I done did over the past two weeks! I try to write these changelogs every Sunday, but I got really, really busy with work 😅

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

10 4 0 0
A character rig shows off a wide split in underwear. The bones are highlighted in pink and do not match real hip bones. There is a wide gap between the legs, and the attached underwear images no longer cover it correctly.

A character rig shows off a wide split in underwear. The bones are highlighted in pink and do not match real hip bones. There is a wide gap between the legs, and the attached underwear images no longer cover it correctly.

One of the surprising things I learned from a character artist yesterday is that my character should have more bones! 🦴

By adding some fake hip bones, I can create much more range in my animation! As long as I patch up the images 😅

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

19 6 1 0
Video

Trying to get those last animations in before the gamedev meetup tomorrow 😘

#IndieGameDev #GameDev #IndieDev #WLCG

8 5 0 0
Video

I'm insanely proud of this armpit joint I fixed tonight. You can barely even tell I did a Botchgartner restoration on it! 😂

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

10 4 0 0
A woman in gym clothing holds up her hand with a smile. The seams between her joints are highly noticeable, making her look more like a doll than intended.

A woman in gym clothing holds up her hand with a smile. The seams between her joints are highly noticeable, making her look more like a doll than intended.

Today's challenge is to get my girl dressed and moving before we rip off her clothes! And maybe fix the rendering issues with pre-multiplied alpha 😅

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

19 5 1 0
Video

Props to the artists who actually do rigging for a living because going back and forth to tweak these puzzle pieces to line up perfectly is a niiiightmaaaarrreee 😬

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

12 3 2 0
A rigged model in Spine shows a massive seam when their right leg is rotated away from its resting position.

A rigged model in Spine shows a massive seam when their right leg is rotated away from its resting position.

A list of skins for bras, shirts, bottoms, and panties, and four hairstyles. Each clothing option is doubled because there's a regular and a "ripped" version.

A list of skins for bras, shirts, bottoms, and panties, and four hairstyles. Each clothing option is doubled because there's a regular and a "ripped" version.

Whose bright idea was it to have all these clothing options in the game, and then *double them*?? 🥲

#IndieGameDev #GameDev #IndieDev #WLCG

15 2 0 0
Video

I'm definitely not spending this much time on *every* 15-frame animation I have planned, but I wanted to see what would happen if I did 😁

#IndieGameDev #IndieDev #GameDev #SoloDev #WLCG

15 4 0 0
Post image

Le CC-IN2P3 souhaite un joyeux 20ᵉ anniversaire au #WLCG ! Nous sommes fiers de contribuer à l’aventure : 80 % des données que nous traitons viennent du #CERN via WLCG. Nos équipes assurent chaque jour performance et fiabilité pour la recherche.
@cnrs-in2p3.bsky.social
Photo : © CERN

3 1 0 0
Video

If you think indie gamedev is glamorous, know I spent my entire Sunday on these status effect animations 😌

#IndieGameDev #IndieDev #GameDev #SoloDev #WLCG

23 4 4 0
A split-color hairstyle on a faceless dummy reveals a gap between her right bangs and her face.

A split-color hairstyle on a faceless dummy reveals a gap between her right bangs and her face.

The bangs have been separated into a layer and extended use crude color-matching techniques.

The bangs have been separated into a layer and extended use crude color-matching techniques.

The finished bangs are now independent from the main hairstyle and rendered below the dummy's face, hiding any imperfections in the restoration.

The finished bangs are now independent from the main hairstyle and rendered below the dummy's face, hiding any imperfections in the restoration.

This hairstyle doesn't align perfectly anymore (there's a gap between the right side of her face and her bangs), so I'm doing some light Botchgartner restoration to allow her bangs to swing back and forth eventually 🎨

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

22 4 0 0
Post image

Last week was all about quality over quantity for SuccuDeck! ✨

Although I didn't do a crazy amount of commits, most of them fixed one or more annoying bugs 😘

#IndieGameDev #IndieDev #GameDev #SoloDev #WLCG

10 4 0 0
Video

The part that nobody warns you about when rigging a 2D character is how much time you spend trying to hide their fucked up joints 🥲

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

18 5 1 0
SuccuDeck 1.0.0 build 397 - 65 commits since Monday, November 17th

Cool Stuff 💡
Added a new WIP character rigged with Spine (thanks Emily!)
Dazed is now a status effect that halves an opponent's damage and triggers when a body part becomes Exposed
Improved assigning random weaknesses by shuffling a list of options
Added three phases to the first boss battle and removed Scramble as a reaction
Added a threat indicator and battles from 1 to 5 stars

Bugfixes 🐞
Fixed a crash when loading directly into a battle without a deck
Fixed a crash when forcing a battle to end while a debug player window is open
Fixed an issue where body parts were displayed in the wrong order after the first battle
Fixed variables being shared between scripts of the same type, causing many weird scripting issues
Fixed many crashes in the battle scripts
Fixed status effects being removed before a body part is defeated, causing the part to remain alive because bonuses aren't applied
Fixed opponent not discarding actions correctly

Brainworms 🪱
Updated Stylelint to 16.25.0
Updated inkcpp to 0.1.9
Added banner controls to the battle debug window
Cleaned up selecting a battle scenario
Minion now removes temp files generated by Live++
Added a brain log to the battle player window
Weaknesses are now assigned through battle scripts
Battle scripts are no longer counted for the total word count
Improved logging for stories and Ink bindings
Fixed not being able to remove collapsed debug separators
Sort backgrounds in the picker dialog alphabetically
Fixed not being able to create Quick scenarios
Massively simplified the actor picker widget
Added actor preview to widget
Avoid logspam in the stage actor
Debug text is wrapped automatically
Cityscape victims are split into deck and hand

SuccuDeck 1.0.0 build 397 - 65 commits since Monday, November 17th Cool Stuff 💡 Added a new WIP character rigged with Spine (thanks Emily!) Dazed is now a status effect that halves an opponent's damage and triggers when a body part becomes Exposed Improved assigning random weaknesses by shuffling a list of options Added three phases to the first boss battle and removed Scramble as a reaction Added a threat indicator and battles from 1 to 5 stars Bugfixes 🐞 Fixed a crash when loading directly into a battle without a deck Fixed a crash when forcing a battle to end while a debug player window is open Fixed an issue where body parts were displayed in the wrong order after the first battle Fixed variables being shared between scripts of the same type, causing many weird scripting issues Fixed many crashes in the battle scripts Fixed status effects being removed before a body part is defeated, causing the part to remain alive because bonuses aren't applied Fixed opponent not discarding actions correctly Brainworms 🪱 Updated Stylelint to 16.25.0 Updated inkcpp to 0.1.9 Added banner controls to the battle debug window Cleaned up selecting a battle scenario Minion now removes temp files generated by Live++ Added a brain log to the battle player window Weaknesses are now assigned through battle scripts Battle scripts are no longer counted for the total word count Improved logging for stories and Ink bindings Fixed not being able to remove collapsed debug separators Sort backgrounds in the picker dialog alphabetically Fixed not being able to create Quick scenarios Massively simplified the actor picker widget Added actor preview to widget Avoid logspam in the stage actor Debug text is wrapped automatically Cityscape victims are split into deck and hand

Last week, I fixed a longstanding issue in SuccuDeck where card scripts of the same type were actually *sharing their variables* between instances, causing incredibly hard-to-debug "phantom" issues 😱

Oh, and I guess I made more content 😝

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

16 5 0 0
A screenshot of SuccuDeck with debug windows open shows a battle with a Commuter highlighted, which has a threat level of 4/5. The battle is against a woman in a cheerleader outfit, and features the stripclub exterior as a background.

A screenshot of SuccuDeck with debug windows open shows a battle with a Commuter highlighted, which has a threat level of 4/5. The battle is against a woman in a cheerleader outfit, and features the stripclub exterior as a background.

I still need to figure out the actual progression mechanic, but SuccuDeck's cityscape now features a "deck" from which victims are drawn, each with their own battle behavior 😊

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

10 3 0 0
Video

There is an unbelievable amount of power in making your own debug tools as a solo dev 💪

#IndieGameDev #IndieDev #GameDev #SoloDev #WLCG

19 4 3 1
SuccuDeck 1.0.0 build 395 - 132 commits since Monday, October 27th

Three weeks of changes today, and I will do my best to push these out weekly again!

Cool Stuff 💡
Added Duplicate as a card effect
Added a draw/discard/exhaust cards screen
Added icons for draw/discard/exhaust cards screens
Added new particle effect images
Added card animations on ending turn and drawing from your deck
Added "investor fuck party" as a mission
City dwellers have only a Chest instead of a Head
Added a "skip intro" option when starting new game

Bugfixes 🐞
Fixed crash when victim has set an invalid mission
Fixed runtime errors when updating body parts
Fixed a crash when starting a new game after going back to the main menu
Fixed not being able to lose battles (lol)
Fixed some opponents not being able to calculate their damage
Fixed lust bonus not being applied correctly
Fixed card hand animation
Fixed not being able to load particle effects spread over multiple sheets
Fixed particle effect settings not loading correctly
Fixed the battle banner screen being visible at the end of a battle
Fixed being able to click through the battle banner screen
Fixed fire particle effects
Fixed actor positioning issues caused by the brain system
Fixed queueing brain actions
Improved text outlines to make them much more readable

Brainworms 🪱
Data model list changes can now be animated
Added duration parsing for animations
Added command-line flags for logging
Added debug windows for missions
Move compiled Ink scripts to a dedicated folder
Added dynamic arrows to some tooltips
Enemy actions bob up and down
Improved logging for story scripts
Brains react per body part (or better logic later)
Tweaked visible debug settings for protagonist and opponent
Add option to reset max resistance every turn

SuccuDeck 1.0.0 build 395 - 132 commits since Monday, October 27th Three weeks of changes today, and I will do my best to push these out weekly again! Cool Stuff 💡 Added Duplicate as a card effect Added a draw/discard/exhaust cards screen Added icons for draw/discard/exhaust cards screens Added new particle effect images Added card animations on ending turn and drawing from your deck Added "investor fuck party" as a mission City dwellers have only a Chest instead of a Head Added a "skip intro" option when starting new game Bugfixes 🐞 Fixed crash when victim has set an invalid mission Fixed runtime errors when updating body parts Fixed a crash when starting a new game after going back to the main menu Fixed not being able to lose battles (lol) Fixed some opponents not being able to calculate their damage Fixed lust bonus not being applied correctly Fixed card hand animation Fixed not being able to load particle effects spread over multiple sheets Fixed particle effect settings not loading correctly Fixed the battle banner screen being visible at the end of a battle Fixed being able to click through the battle banner screen Fixed fire particle effects Fixed actor positioning issues caused by the brain system Fixed queueing brain actions Improved text outlines to make them much more readable Brainworms 🪱 Data model list changes can now be animated Added duration parsing for animations Added command-line flags for logging Added debug windows for missions Move compiled Ink scripts to a dedicated folder Added dynamic arrows to some tooltips Enemy actions bob up and down Improved logging for story scripts Brains react per body part (or better logic later) Tweaked visible debug settings for protagonist and opponent Add option to reset max resistance every turn

I'm trying to get back in the saddle with weekly changelogs again, so here are three weeks of changes to reset the counter 🙏

#IndieGameDev #GameDev #IndieDev #SoloDev #WLCG

12 4 0 1
Video

Today's horrible #SuccuDeck bug I need to fix before a demo is that ending turns works fine, but discarding only a few cards gives you "stale" cards that crash the game when you engage with them 😅

#IndieDev #GameDev #IndieGameDev #SoloDev #WLCG

17 3 1 0
Video

I spent my Sunday making buttons for the different card piles and making an animation for your cards flying to the discard pile, in case you were wondering how things are going in the Gamedev Mines 😌

#IndieGameDev #GameDev #IndieDev #WLCG

31 10 1 4
A Mouth card titled "Quick Peck" has the text "Deal 2 Corruption / Add a copy to your discard pile / Free" with the tooltip "Free / Card does not cost Stamina to use."

A Mouth card titled "Quick Peck" has the text "Deal 2 Corruption / Add a copy to your discard pile / Free" with the tooltip "Free / Card does not cost Stamina to use."

A Mouth card titled "Quick Peck" has the text "Deal 2 Corruption / Duplicate / Free" with the tooltips "Duplicate / After playing this card, add a copy to your discard pile." and "Free / Card does not cost Stamina to use."

A Mouth card titled "Quick Peck" has the text "Deal 2 Corruption / Duplicate / Free" with the tooltips "Duplicate / After playing this card, add a copy to your discard pile." and "Free / Card does not cost Stamina to use."

What do you think is clearer for my new card? A text description or a tooltip? 🤔

#IndieGameDev #UIDesign #GameDev #IndieDev #WLCG

16 5 5 0
SuccuDeck 1.0.0 build 384- 87 commits since Monday, October 13th

Two weeks of changes today because I keep struggling to make time to write these 😅

Cool Stuff 💡
Balancing: Dazed is only added when weakness was not exposed
Added two new Mouth cards
Added "duplicate" card effect
Added an icon for the Exposed effect
Added animation for body part Corrupted (defeated)
Collection cards are no longer added to deck by default
Transfer cards between your collection and deck in the card collection screen
Collection is sorted based on cost and then type (Mouth, Hands, Dick)
Added animations when moving cards between collection and deck
Added icon to warn player about minimum deck size
Added banner when starting battles and player turns
Added inline icons in description and tooltip text

Bugfixes 🐞
Fixed defeated body parts still being able to take actions
Fixed Dazed being overwritten by Scramble
Fixed the card art changing size when in Streamer Mode
Fixed a missing tooltip for the Exposed effect
Fixed not being able to disable widgets
Fixed a crash when loading into battle without a deck
Fixed banner showing up on every battle change
Fixed scrollbar not changing the cursor on mouse hover
Fixed story messages not showing up in the log

Brainworms 🪱
Split card collection from the deck
Collection is a separate card pile
Smooth animation between cityscape and deck screens
Moved shouldScramble() to C++
Added debug actions for player windows
Updated shield break animation

SuccuDeck 1.0.0 build 384- 87 commits since Monday, October 13th Two weeks of changes today because I keep struggling to make time to write these 😅 Cool Stuff 💡 Balancing: Dazed is only added when weakness was not exposed Added two new Mouth cards Added "duplicate" card effect Added an icon for the Exposed effect Added animation for body part Corrupted (defeated) Collection cards are no longer added to deck by default Transfer cards between your collection and deck in the card collection screen Collection is sorted based on cost and then type (Mouth, Hands, Dick) Added animations when moving cards between collection and deck Added icon to warn player about minimum deck size Added banner when starting battles and player turns Added inline icons in description and tooltip text Bugfixes 🐞 Fixed defeated body parts still being able to take actions Fixed Dazed being overwritten by Scramble Fixed the card art changing size when in Streamer Mode Fixed a missing tooltip for the Exposed effect Fixed not being able to disable widgets Fixed a crash when loading into battle without a deck Fixed banner showing up on every battle change Fixed scrollbar not changing the cursor on mouse hover Fixed story messages not showing up in the log Brainworms 🪱 Split card collection from the deck Collection is a separate card pile Smooth animation between cityscape and deck screens Moved shouldScramble() to C++ Added debug actions for player windows Updated shield break animation

Discord's message limit is actually a blessing when writing two weeks' worth of changelogs 😌

#IndieGameDev #GameDev #IndieDev #WLCG

12 5 0 1
Video

I've finally added an animation for when an area becomes Exposed (no shields left), and areas can no longer act when they are Corrupted (defeated) 😁

#IndieGameDev #GameDev #IndieDev #WLCG

17 4 0 0